Versión inicial

This commit is contained in:
Mauricio Baeza 2021-08-26 17:40:14 -05:00
parent 80c11d60f1
commit 9ebb4cf7fd
18 changed files with 1172 additions and 0 deletions

View File

@ -0,0 +1,23 @@
## Acerca de las criptomonedas
### o como calmar la ciberconciencia
Si se toman la molestia de leer el "white paper" [1] de Satoichi Nakamoto, podemos leer en el primer párrafo.
> Una forma de dinero en efectivo electrónico puramente peer-to-peer debería permitir enviar pagos online directamente entre las partes y sin pasar a través de una institución financiera.
Eso es todo, repito, esa es toda la idea detrás de las criptomonedas, y funciona. Pero ahora todos los males, incluyendo el apocalipsis, es culpa de estas.
Todos los argumentos en contra son falsos, no, reitero el no, de hecho, creo, reitero el creo, todo son ciertos, "en un contexto y un rango", pero pasa algo muy humano en todo esto, "la cámara de eco", solo vemos, escuchamos y replicamos los argumentos que confirman nuestro punto de vista. Con esto, calmamos nuestro ciberconciencia, que conste que me incluyo.
A mi edad, pocas cosas de "lo humano" me sorprenden, nuestro egoísmo y estupidez han hecho de este mundo lo que es, principalmente. Ya lo dijo la inteligente y certera Greta Tunberg -deberíamos estar aterrados- el problema del cambio climático es un hecho y las criptos son solo una pizca en este gran problema de todos, de nuevo, achacar casi todo el problema a estas, calma la ciberconciencia.
¿Y si en vez de llamar delincuentes y estúpidos a los que usamos criptos, y en vez de llamar hipócritas y obtusos a los a los que las rechazan buscamos (ya las hay) otras opciones menos agresivas con el medio ambiente y al mismo tiempo que podamos evitar a esas instituciones que han llevado a varias crisis mundiales y reales al "mundo entero"?
Un abrazo desde México.
=> https://bitcoin.org/files/bitcoin-paper/bitcoin_es.pdf • [1] https://bitcoin.org/files/bitcoin-paper/bitcoin_es.pdf
=> gemini://elmau.net/blog • Regresar al índice.

View File

@ -0,0 +1,33 @@
Géminis no sirve para nada.
Original en ingles, gracias Alex:
=> gemini://alex.flounder.online/gemlog/2021-01-08-useless.gmi Gemini is useless
He aquí algunas críticas a Géminis extraídas de un reciente y popular post en lobste.rs:
> Así que es casi inútil para todos los casos de uso, excepto los más simples, e incluso allí hace un trabajo muy pobre. Me gustaría tener una imagen en línea de vez en cuando, u organizar las cosas en algunos diseños de varias columnas o similares, o una tabla. Los periódicos del siglo XIX podían hacer esto, y si tu tecnología no puede emular la tipografía producida a diario -a menudo con prisa- hace 150 años, entonces tu tecnología es bastante limitada. Estos protocolos se disparan a sí mismos en la cabeza con cosas como esta, ni siquiera en el pie porque todo esto está muerto para todos, excepto para unos pocos nichos de la tecnología.
=> https://lobste.rs/s/ivryqt/what_is_this_gemini_thing_anyway_why_am_i#c_4tjnxq
Este comentario es, en esencia, correcto. Géminis es inútil: no puede hacer casi nada de lo que puede hacer HTTP/HTML, su diseño ignora la mayor parte del progreso de la tecnología web en los últimos 30 años, y su conjunto de características es tan minimalista que obliga al usuario a salirse de su experiencia normal de lo que debería ser la web. Al principio, el uso de Gemini resulta desorientador y sin sentido.
Sin embargo, yo diría que la "inutilidad" de Gemini es su característica más destacada, y la que la distingue de otros intentos de crear una "nueva web". Uno de mis libros favoritos de los últimos años fue "Cómo no hacer nada" de Jenny Odell. Me gustaría citarla extensamente:
> Empecemos por las colinas que dominan Oakland, la ciudad donde vivo actualmente. Oakland tiene dos árboles famosos: el primero es el Jack London Tree, un gigantesco roble costero frente al Ayuntamiento, del que la ciudad obtiene su logotipo en forma de árbol. El otro, que está escondido entre las colinas, no es tan conocido. Apodado el "Abuelo" o "Viejo Superviviente", es la única secuoya antigua de Oakland que queda en pie, un milagroso remanente de quinientos años de la época anterior a la tala de todas las secuoyas antiguas tras la Fiebre del Oro. Aunque gran parte de las colinas del este de la bahía están cubiertas de secuoyas, todas ellas son de segundo crecimiento, brotadas de los tocones de ancestros que en su momento fueron de los más grandes de toda la costa. Antes de 1969, los habitantes de Oakland daban por hecho que todos los árboles antiguos habían desaparecido, hasta que un naturalista se topó con el Viejo Superviviente, que se alzaba sobre los demás árboles. Desde entonces, el antiguo árbol ha figurado en el imaginario colectivo, suscitando artículos, excursiones en grupo e incluso un documental.
> Antes de su tala, las secoyas antiguas de East Bay Hills incluían también los Árboles de Navegación, secoyas que eran tan altas que los marineros de la Bahía de San Francisco las utilizaban para alejarse de la sumergida y peligrosa Blossom Rock. (Cuando los árboles fueron talados, el Cuerpo de Ingenieros del Ejército tuvo que volar literalmente Blossom Rock). Aunque no era uno de esos árboles, me gusta pensar en el Viejo Superviviente como su propio tipo de ayuda a la navegación. Este viejo árbol tiene algunas lecciones que enseñarnos.
> La primera lección es sobre la resistencia. El estatus algo legendario del Viejo Superviviente tiene que ver no sólo con su edad y su improbable supervivencia, sino con su misteriosa ubicación. Incluso a los que se han criado en las colinas de East Bay les cuesta encontrarlo. Cuando se ve el Viejo Superviviente, no se puede acercarse tanto, porque se encuentra en una empinada ladera rocosa cuyo ascenso requeriría una gran escalada. Esa es una de las razones por las que sobrevivió a la tala; la otra razón tiene que ver con su forma retorcida y su altura: noventa y tres pies, un enano comparado con otras secoyas antiguas. En otras palabras, el Viejo Superviviente sobrevivió en gran medida por parecer inútil a los madereros como árbol maderable.
> A mí me parece una versión real de una historia -cuyo título suele traducirse como "El árbol inútil"- del Zhuangzi, una colección de escritos atribuidos a Zhuang Zhou, un filósofo chino del siglo IV. La historia trata de un carpintero que ve un árbol (en una versión, un roble serrado, un pariente de aspecto similar a nuestro roble de la costa) de tamaño y edad impresionantes. Pero el carpintero pasa de largo, declarando que es un "árbol inútil" que sólo ha llegado a ser tan viejo porque sus ramas nudosas no servirían para la madera. Poco después, el árbol se le aparece en sueños y le pregunta: "¿Me estás comparando con esos árboles útiles?". El árbol le señala que los árboles frutales y los madereros son regularmente arrasados. Mientras tanto, la inutilidad ha sido la estrategia de este árbol: "Esto es de gran utilidad para mí. Si hubiera sido de alguna utilidad, ¿habría crecido tanto?". El árbol se burla de la distinción entre utilidad y valor, hecha por un hombre que sólo ve los árboles como madera potencial: "¿Qué sentido tiene esto de condenar las cosas? Tú, un hombre sin valor a punto de morir, ¿cómo sabes que soy un árbol sin valor?". Me resulta fácil imaginar estas palabras pronunciadas por el Viejo Superviviente a los leñadores del siglo XIX que lo pasaron por alto despreocupadamente, menos de un siglo antes de que empezáramos a darnos cuenta de lo que habíamos perdido.
> Esta formulación -la utilidad de la inutilidad- es típica de Zhuang Zhou, que a menudo hablaba con aparentes contradicciones y sinsentidos. Pero, al igual que sus otras afirmaciones, no es una paradoja por el hecho de serlo: más bien es una mera observación de un mundo social que es en sí mismo una paradoja, definida por la hipocresía, la ignorancia, la incultura y la ilógica. En una sociedad así, un hombre que intentara llevar una vida humilde y ética parecería ciertamente "atrasado": para él, el bien sería el mal, el arriba sería el abajo, la productividad sería la destrucción y, de hecho, la inutilidad sería la utilidad.
> Si me permiten estirar esta metáfora, podríamos decir que el viejo superviviente era demasiado raro o demasiado difícil para avanzar fácilmente hacia el aserradero. De este modo, el árbol me proporciona una imagen de "resistencia en el lugar". Resistir en el lugar es hacerse a sí mismo una forma que no puede ser tan fácilmente apropiada por un sistema de valores capitalista. Hacerlo significa rechazar el marco de referencia: en este caso, un marco de referencia en el que el valor está determinado por la productividad, la fuerza de la propia carrera y el espíritu empresarial individual. Significa abrazar y tratar de habitar ideas algo más borrosas o difusas: del mantenimiento como productividad, de la importancia de la comunicación no verbal y de la mera experiencia de la vida como el objetivo más elevado. Significa reconocer y celebrar una forma del yo que cambia con el tiempo, que supera la descripción algorítmica y cuya identidad no siempre se detiene en la frontera del individuo. En un entorno completamente orientado a la apropiación capitalista incluso de nuestros pensamientos más pequeños, hacer esto no es menos incómodo que llevar la ropa equivocada a un lugar con código de vestimenta. Permanecer en este estado requiere compromiso, disciplina y voluntad. No hacer nada es difícil.
Así es como veo el valor de Géminis: "El árbol inútil" de Internet. La oscuridad y la falta de utilidad de Géminis significan que no hay análisis, ni métricas, ni formas de hacerse viral, de monetizar la atención de la gente, de construir una carrera o incluso una plataforma web mínimamente funcional. Ninguna empresa en su sano juicio construiría sobre Géminis, y es precisamente por eso que es capaz de tener el carácter que tiene. Es una "resistencia en el lugar" a la web existente, a la economía de la atención y al capitalismo de la vigilancia. Mientras la red existente se centraliza y comercializa cada vez más, Géminis seguirá siendo como es, frustrando a cualquiera que intente extraer valor de ella.
Géminis sólo puede desempeñar este papel en virtud de su simplicidad y austeridad. Una vez que se formalice, no añadirá ninguna función nueva. Esto puede molestar a los usuarios, acostumbrados a una web en constante desarrollo y "mejora", pero su falta de nuevas características es lo que le permite ser un espacio online genuinamente diferente, que desafía no sólo nuestro apego a plataformas específicas, sino nuestra relación básica con la web moderna y la tecnología en sí misma.
=> gemini://elmau.net/blog • Regresar al índice.

15
source/blog/index.gmi Normal file
View File

@ -0,0 +1,15 @@
## Para mis (dos) admiradoras
Las únicas que me leen. :)
=> gemini://elmau.net • Regresar al inicio
=> gemini://elmau.net/blog/vitae.gmi • [2021-06-19] Vitae - una película especial
=> gemini://elmau.net/blog/gemini-no-sirve-para-nada.gmi • [2021-06-13] Gemini no sirve para nada
=> gemini://elmau.net/blog/soberania-tecnologica2-intro.gmi • [2021-05-31] Soberanía tecnológica 2
=> gemini://elmau.net/blog/acerca-de-las-criptos.gmi • [2021-05-22] Acerca de las criptomonedas
=> gemini://elmau.net/blog/por-una-web-mejor.gmi • [2021-04-10] Por una web mejor
=> gemini://elmau.net • Regresar al inicio

View File

@ -0,0 +1,16 @@
## Por una web mejor
### No es simple nostalgia
Las web actual es increíble, llena de maravillosos proyectos e iniciativas, pero, un puñado de compañías no puede determinar el rumbo de esta. Los dos problemas principales que estas compañías han explotado son: los rastreadores y la publicidad, un alto porcentaje de recursos se usa solo para esto y los mejores ingenieros del mundo están trabajando para ver quien rastrea mejor o para ver quien crea las mejores atracciones y distracciones, lamentable.
Gemini es un gran paso, falta camino por recorrer (muy poco) pero tiene buenos cimientos. Mi apuesta, es que NO tenga éxito, que no le guste a las grandes empresas, que seamos solo personas conversando sin miradas por encima del hombro. La web actual y la "nueva" web pueden convivir sin problemas.
Animamos a todos a usarlo, tanto en clientes como en servidores, ya tenemos la mínima documentación necesaria para empezar.
Por favor, corre la voz.
Un abrazo desde México.
=> gemini://elmau.net/blog • Regresar al índice.

View File

@ -0,0 +1,85 @@
## Soberanía tecnológica 2
### ¿De qué estamos hablando?
Puedes encontrar el texto completo en el siguiente vínculo[1], te recomiendo leerlo completo, pero si eres perezosa como yo, aquí tienes el resumen de la introducción que es una maravilla.
=> https://sobtec.gitbooks.io/sobtec2/content/es/ • [1] Soberanía tecnológica 2
Por Margarita Padilla
> Dice la Wikipedia que la «soberanía» es el poder político supremo y que es soberano quien tiene el poder de decisión, el poder de dar las leyes sin recibirlas de otro.
> Trasladando la cuestión de la soberanía a las tecnologías, la pregunta sobre la que queremos conversar es quién tiene poder de decisión sobre ellas, sobre su desarrollo y su uso, sobre su acceso y su distribución, sobre su oferta y su consumo, sobre su prestigio y su capacidad de fascinación…
> intento desplazar un poco la cuestión hacia otro terreno un poco más, político ya que creo firmemente que lo que una persona «suelta» sepa o no, en realidad no es tan significativo en un planteamiento global sobre tecnologías.
> Hay una cadena, un circuito de confianza, que hace insignificante lo que yo, personalmente, pueda saber o no saber. Me apoyo en el saber colectivo y en lo que ese saber compartido enuncia como verdades sociales.
> No creo que el sujeto de la soberanía tecnológica sea el individuo (ya sabes, ese hombre joven, guapo, blanco, inteligente, exitosos... más que nada porque no existe).
> Como todas las otras, la soberanía tecnológica se hace, sobre todo, en comunidades. Las comunidades existen. Están por todas partes, haciéndose y rehaciéndose sin parar.
> Como toda construcción simbólica, las comunidades no se pueden ver con los ojos de la cara. Tienen que verse con los ojos de la mente. Y sentir su vínculo con los ojos del corazón.
> si no ves por dónde andan las comunidades, corres el riesgo de pisotearlas. Aunque, con frecuencia, a lo que aspira la industria de las tecnologías no es a pisotearlas, sino a controlarlas.
> Para las personas que luchamos por la soberanía tecnológica, las comunidades son una realidad palpable. Están ahí, las vemos y las sentimos. Aunque el estereotipo relacione tecnologías con consumismo, elitismo, pijadas, individualismo aislado... Esto es sólo la visión que dibujan la industria y el mercado. Un mercado que quiere consumidores aislados y que ofusca la realidad.
> En la lucha por la soberanía, la cosa va de comunidades. Nadie inventa, construye o programa en solitario, sencillamente porque la complejidad de la tarea es tal que eso resultaría imposible.
> La premisa de una comunidad que aspira a ser soberana es que el conocimiento debe ser compartido y los desarrollos individuales deben ser devueltos al común. El conocimiento crece con la cooperación. La inteligencia es colectiva y privatizar el conocimiento es matar la comunidad. La comunidad es garante de la libertad, es decir, de la soberanía.
> Dicho brevemente: la comunidad, en su versión radical, se autoorganiza y se autorregula con autonomía y es la garante de la soberanía. Si tienes comunidad tendrás libertad y soberanía. O más aún: sólo dentro de las comunidades podemos ser personas libres y soberanas.
> «Meterse» en una comunidad no significa necesariamente saber programar ni ir a reuniones ni tener responsabilidades. Las comunidades son generosas. Permiten distintos grados de pertenencia y ofrecen distintos tipos de contribución.
> Puedes colocarte en el ángulo desde el que se contempla todo el valor.
> Estamos hablando no del valor económico, instrumental, empresarial o de marca, sino del valor social. Si contemplas el valor, estás dando y tomando valor.
> Por eso, además de todas las cosas prácticas que puedas hacer, tu visión puede hacer que las comunidades sean más fuertes. Y ya estás contribuyendo.
> La tecnología, desde el fuego o la piedra de sílex hasta las prodigiosas construcciones que usamos, casi sin reparar en ello, por todas partes, es el cuerpo de la cultura. Sin tecnología no habría cultura.
> La relación con la tecnología es paradójica. Te permite hacer más cosas (autonomía), pero dependes de ella (dependencia). Dependes de quienes la desarrollan y distribuyen, de sus planes de negocio o de sus contribuciones al valor social. Y cambias con ella. ¿No está cambiado Whatsapp o Telegram la cultura relacional? ¿No está cambiando Wikipedia la cultura enciclopédica? Y también la cambias a ella. Por eso, es tan importante sostener abierta la pregunta colectiva sobre qué horizonte tecnológico deseamos y cómo lo estamos construyendo.
> En el boom de las crisis financieras y de una cultura del emprendimiento obligatorio, la industria de las tecnologías, a la que no se le escapa la potencia de las comunidades, empieza a utilizar arquitecturas de participación para aprovecharse de la inteligencia colectiva y obtener valor de mercado.
> La industria de las tecnologías quiere naturalizar tus elecciones. Quiere que te adhieras a sus productos-servicios sin hacerte preguntas. Así que, para resistir a la sumisión tecnológica te propongo que, en tus elecciones, valores:
> Que la comodidad no sea el único criterio. Es más cómodo no separar las basuras.
> la comodidad no siempre es el mejor criterio
> Que la gratuidad no sea el único coste. Está bien que haya servicios públicos gratuitos, que es una manera de decir que están costeados por todo el mundo, en un fondo común.
> Pero, cuando hablamos de la industria de las tecnologías, la gratuidad es solamente una estrategia para conseguir mayores beneficios por otras vías. Esa gratuidad tiene un altísimo coste no sólo en términos de pérdida de soberanía (ya que nos quedamos al albur de lo que la industria nos quiera «regalar» en cada momento), sino en términos medioambientales y sociales.
> Todo cuesta algo. Por eso, quizás deberíamos pensar en ese tipo de «gratuidad» como un coste que estallará por otro lado.
> Nadie vive en una soberanía tecnológica absoluta. La soberanía es un camino. Pero, no podemos aceptar eso de que, como no podemos hacerlo todo, no hagamos nada.
> Hay muchas cosas que se pueden hacer. Por supuesto, puedes usar más software libre.
> También puedes participar activamente en alguna comunidad. Sin embargo, hay muchas más cosas que se pueden hacer
> Si tienes inquietudes respecto a tus prácticas tecnológicas, socialízalas, convérsalas, hazlas circular. Las prácticas tecnológicas no son asuntos individuales. Tienen una dimensión social que debemos problematizar. Las tecnologías tienen que estar en la agenda común, tanto como la salud, el trabajo o la participación política. Hay que hablar de tecnologías.
> La decisión sobre qué tecnologías usar no es solamente práctica. También es ética.
> Público no es lo mismo que gratis.
> No se trata de perseguir la última tendencia del mercado, sino de estar al día en los debates políticos y sociales sobre soberanía tecnológica, que son muchos y constantes.
> Las tecnologías también son fuente de alegría y placer.
> Las tecnologías no sólo sirven para trabajar duro o para aislar a las personas. Como hemos dicho antes, son el cuerpo de la cultura. Y cultura es mucho más que trabajo.
> Si eres mujer, busca a otras para preguntar, en común, cómo la construcción de género nos está separando de una relación activa, creativa y de liderazgo con las tecnologías. La presencia activa de las mujeres en la construcción de soberanía tecnológica es escasa. Ahí hay mucho trabajo por hacer.
> Y, si no sabes por dónde tirar, busca ayuda. Además, de toda la gente que conoces personalmente, hoy en día, podemos entrar en comunicación con personas que no conocemos.
=> gemini://elmau.net/blog • Regresar al índice.

32
source/blog/vitae.gmi Normal file
View File

@ -0,0 +1,32 @@
## Vitae
### Una película especial
> La posesión completa sólo se demuestra dando. Todo cuanto no podemos dar nos posee. - André Gide
Tavo recién cumplió 18 y acaba de graduarse de la escuela. No quiere ser más una carga para su madre, así que empieza a buscar trabajo. ¿Que se pone en el CV (Curriculum Vitae) cuando no se ha "hecho nada"?, o tal vez se han hecho cosas importantes que no valen para otros, como andar en bicicleta o aprender a tocar la batería.
Pero lo importante de "Vitae", aparte de tu trama sencilla pero honesta, es como llego a `mauflix`. "Mauflix" [2] es un grupo privado de amigos donde compartimos nuestro gusto por el cine, por el cine del bueno, o sea, aquel que no te deja indiferente.
Tenemos un poco más de un año y ya somos un grupo plural, abierto y divertido, somos principalmente de Hispanoamerica y el ambiente es de lo más cordial.
No recuerdo que desencadeno el tema del cine chileno, como casi siempre, uno desconoce una gran cantidad de producciones de otros países, una lastima en un mundo globalizado. Los chilenos del grupo, mencionaron películas y directores que vale la pena ver, y así, sin más, como pasan muchas cosas interesantes en la vida, una compañera (Pachi Araya) propuso "donar" para `mauflix` una película en la que fue productora. Después de ponerme en contacto con ella para tener claro el alcance y concepto de "donar", ahora esta en el catálogo de `mauflix` para que todo el grupo pueda disfrutarla.
¡Es tan lindo todo lo que se desencadena cuando se comparten las cosas! Como el apoyar para "La ciudad de los Cesares" [1] la nueva película del director Lucho Villegas que hace su cameo en "Vitae" y al cual también agradecemos el compartir su trabajo.
Siendo una opera prima, "Vitae" tiene sus defectos, como todos, pero como con los amigos, uno puede quererlos también.
Si alguna vez has disfrutado de "mauflix" te invitamos a apoyar "La ciudad de los Cesares", pregúntame como.
Un abrazo desde México.
P.D. Mauflix en Matrix: #mauflix:matrix.cuates.net
=> https://www.laciudaddeloscesares.cl/ [1] "La ciudad de los Cesares"
=> https://t.me/mauflix [2] "mauflix" en Telegram
=> gemini://elmau.net/blog • Regresar al índice.

18
source/chuletas.gmi Normal file
View File

@ -0,0 +1,18 @@
# Acordeones/Chuletas
## Porqué la memoria ya no es la misma
=> gemini://elmau.net/notes/jetforce.gmi • [JetForce - Servidor Gemini]
=> gemini://elmau.net/notes/nginx.gmi • [Nginx - Servidor web]
=> gemini://elmau.net/notes/ffmpeg.gmi • [ffmpeg]
=> gemini://elmau.net/notes/iredmail.gmi • [iRedMail]
=> gemini://elmau.net/notes/ubuntuserver.gmi • [Ubuntu Server 20.04]
=> gemini://elmau.net/notes/nebula.gmi • [Nebula VPN Mesh]
=> gemini://elmau.net/notes/vim.gmi • [Vim]
=> gemini://elmau.net Regresar el inicio

24
source/contacto.gmi Normal file
View File

@ -0,0 +1,24 @@
## Contacto
Vivo en la ciudad de México. Soy desarrollador de software libre y por convicción, ateo.
Lo que más me gusta en todo el universo es conversar, porque para lo
verdaderamente importante en la vida; amar y conversar, se requieren dos.
Además, me gusta la literatura, el cine, la música y los gatos (sobre todo cuando son amigos de los perros).
En mis ratos libres, también trabajo un poco. :)
=> https://cuates.net/
Puedes conversar conmigo en:
* Mastodon: @mstdn.mx@elmau
* Matrix: @elmau:matrix.cuates.net
* Telegram: @mauriciobaeza
* XMPP: gemini_es@salas.suchat.org
* Correo eletrónico: hola1@correolibre.net
=> gemini://elmau.net Regresar el inicio

33
source/hispanas.gmi Normal file
View File

@ -0,0 +1,33 @@
# Índice de Capsulas Hispanas
Si no esta tu sitio, por favor, envíamelo para agregarlo.
Ordenadas en orden alfabético.
=> gemini://bucareli.online/gemlog/ • de Bucareli
=> gemini://c3po.aljadra.xyz • de c3po
=> gemini://capsula.pabs.xyz/ • de Pabs
=> gemini://caracolito.mooo.com/ • de caracolito
=> gemini://caracolito.mooo.com/~maleza/ • Mateada pachapunk
=> gemini://caracolito.mooo.com/~sejo/ • de ISO simpleza
=> gemini://cosmic.voyage/ • Bot en deriva
=> gemini://enteka.xyz/ • de Enteka
=> gemini://gem.juancastro.xyz/indice.gmi • de Juan Castro
=> gemini://gemini.bmesh.org/ • BMesh
=> gemini://gemini.elbinario.net/ • El Binario
=> gemini://gemlog.blue/users/miya/ • de Miya
=> gemini://gemlog.gamifi.cat/ • de Gamifi [Catalán]
=> gemini://michan.noho.st/ • de Roboron
=> gemini://monmac.flounder.online/ • de Manuel Monroy Correa
=> gemini://moribundo.flounder.online/ • de Moribundo Insurgente
=> gemini://my32.flounder.online/ • de My32
=> gemini://sl1200.flounder.online/ • de sl1200
=> gemini://soviet.circumlunar.space/sejo/ • La Cabañita
=> gemini://srlobo.gorritodeplata.xyz • del Sr. Lobo
=> gemini://gemlog.blue/users/monika/ • de Monika
Otros idiomas
=> gemini://gemini.circumlunar.space/ • Proyecto Gemini (Inglés)
=> gemini://translate.metalune.xyz/ • Simply Translate

BIN
source/img/nebula.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

37
source/index.gmi Normal file
View File

@ -0,0 +1,37 @@
# Bienvenidas a mi Capsula Gemini
## ¡Podrido Mundo!
> De omnibus dubitandum, «hay que dudar de todo»
Aquí puedes leer como instale este servidor y de que va esto de Gemini, entre otras vainas.
> La posesión completa sólo se demuestra dando. Todo cuanto no podemos dar nos posee.
André Gide
> Quien recibe una idea de mí, recibe instrucción sin disminuir la mía; igual que quien enciende su vela con la mía, recibe luz sin que yo quede a oscuras. Las invenciones no pueden, por naturaleza, ser objeto de propiedad
Thomas Jefferson
=> gemini://elmau.net/blog • Gemini Blog
=> gemini://elmau.net/chuletas.gmi • Acordeones/Chuletas
=> gemini://elmau.net/contacto.gmi • Contacto
### Proyectos
=> https://cuates.net
> ¿Necesitas apoyo informático y no sabes por donde empezar? Precios justos y solidarios.
=> https://mauflix.club
> ¿Te gusta el cine? te comparto mi amplia biblioteca
### Enlaces
Sobre Gemini en español
=> gemini://gemini.bmesh.org/gemini_faq.gmi • FAQ Preguntas Frecuentes
=> gemini://elmau.net/hispanas.gmi • Capsulas hispanas

40
source/notes/ffmpeg.gmi Normal file
View File

@ -0,0 +1,40 @@
## ffmpeg
1] Cortar un video
```Cortar un video
ffmpeg -i ENTRADA.mp4 -ss 00:00:00 -to 00:10:00 -c copy SALIDA.mp4
-ss = empezar en
-to = terminar en
```
2] Descargar y fusionar un video desde un enlace m3u8, no debe estar encriptado.
```Descargar y fusionar un video
ffmpeg -i "URL.m3u8" -c copy -bsf:a aac_adtstoasc output.mp4
```
3] Escalar un video a la mitad
```Escalar un video
ffmpeg -i input.mp4 -vcodec libx265 -crf 28 -vf "scale=iw/2:ih/2" output.mp4
```
4] Concatenar videos.
```Concatenar videos
ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4
```
El archivo files.txt debe contener las rutas de los videos en el formato:
```
file 'path/video1.mp4'
file 'path/video2.mp4'
```
5] Extraer el audio de un video
```Extraer el audio
ffmpeg -i video.mp4 -q:a 0 -map a audio.ogg
```
=> gemini://elmau.net/chuletas.gmi Regresar el índice
=> gemini://elmau.net Regresar el inicio

58
source/notes/iredmail.gmi Normal file
View File

@ -0,0 +1,58 @@
## iRedMail
> Manejar listas con
```
su
cd /opt/iredapd/tools
wblist_admin.py -h
```
> Desactivar recepción para USER@DOMAIN
```
\c vmail
UPDATE mailbox
SET enablelda=0, enabledeliver=0
WHERE username='USER@DOMAIN';
```
> Bloquear spam por cabeceras, algunos ejemplos.
```
vim /etc/postfix/header_checks
/^Subject: =?big5?/ REJECT Chinese encoding not accepted by this server
/^Subject: =?EUC-KR?/ REJECT Korean encoding not allowed by this server
/^Subject: ADV:/ REJECT Advertisements not accepted by this server
/^Subject: =?Windows-1251?/ REJECT Russian encoding not allowed by this server
/^Subject: =\?KOI8-R\?/ REJECT Russian encoding not allowed by this server
/^Subject:.*=\?(big5|euc-kr|gb2312|ks_c_5601-1987)\?/ REJECT Language not accepted by this server as it is probably spam
/[^[:print:]]{8}/ REJECT Sorry, ascii characters only permitted by this server
/^From:.*\@.*\.cn/ REJECT Sorry, Chinese mail not allowed here
/^From:.*\@.*\.kr/ REJECT Sorry, Korean mail not allowed here
/^From:.*\@.*\.tr/ REJECT Sorry, Turkish mail not allowed here
/^From:.*\@.*\.ru/ REJECT Sorry, Russian mail not allowed here
/^From:.*\@.*\.ro/ REJECT Sorry, Romanian mail not allowed here
/^(Received|Message-Id|X-(Mailer|Sender)):.*\b(AutoMail|E-Broadcaster|Emailer Platinum|Thunder Server|eMarksman|Extractor|e-Merge|from stealth[^.]|Global Messenger|GroupMaster|Mailcast|MailKing|Match10|MassE-Mail|massmail\.pl|News Breaker|Powermailer|Quick Shot|Ready Aim Fire|WindoZ|WorldMerge|Yourdora|Lite)\b/ REJECT No mass mailers allowed. You are probably sending spam
/^X-Mailer:.*\b(Aristotle|Avalanche|Blaster|Bomber|DejaVu|eMerge|Extractor|UltraMail|Sonic|Floodgate|GeoList|Mach10|MegaPro|Aureate|MultiMailer|Bluecom|Achi-Kochi Mail|Direct Email|Andrew's SuperCool Blastoise|MailerGear|Advanced Mass Sender|SpireMail|MailWorkZ|UltimDBMail|Mabry|Lite)\b/ REJECT No mass mailers allowed. You are probably sending spam.
/^(To|From|Cc|Reply-To):.*@optonline/ REJECT Sorry, your message is probably spam
```
=> gemini://elmau.net/chuletas.gmi Regresar el índice
=> gemini://elmau.net Regresar el inicio

175
source/notes/jetforce.gmi Normal file
View File

@ -0,0 +1,175 @@
## JetForce Servidor Gemini
Hay varios servidores Gemini que se pueden usar en diferentes lenguajes con diferentes características.
=> gemini://gemini.circumlunar.space/software/ Servidores y clientes Gemini
El que usa este servidor es Jetforce escrito en Python
=> https://github.com/michael-lazar/jetforce Jetforce en Github
No es necesario que tengas un VPS exclusivo para Gemini, dado que ocupa pocos recursos. Este VPS tiene como sistema operativo Ubuntu Server 20.04 que es bastante sólido y es con el que se hizo esta guía. Asumo que sabes conectarte a su servidor y que tienes un usuario con privilegios de "sudo". Asegurate de dominar un editor mínimo de texto como vim o nano.
Debes de tener ya un dominio apuntando a la IP de tu VPS, puedes usar un subdominio también. Si no cuentas con uno escríbeme para ayudarte con uno.
1] Actualiza el servidor.
```
sudo apt update
sudo apt upgrade
```
2] Instala los requerimientos previos.
```
sudo apt install python-is-python3 python3-pip python3-venv
sudo pip install --upgrade pip
```
3] Crea un entorno virtual.
```
sudo python -m venv /opt/jetforce
```
4] Cambia el usuario dueño del directorio, reemplaza USER por tu usuario.
```
sudo chown -R USER:USER /opt/jetforce
```
5] Cambia al directorio.
```
cd /opt/jetforce
```
6] Activa el entorno virtual.
```
source bin/activate
```
7] Instala este requerimiento primero.
```
pip install wheel
```
8] Instala jetforce
```
pip install jetforce
```
9] Crea el directorio y cámbialo de dueño
```
sudo mkdir /opt/gemini
sudo chown USER:USER /opt/gemini
```
10 ] Crea tu primer archivo gemini.
```
vim /opt/gemini/index.gmi
```
10.1 ] Con el contenido que quieras, por ejemplo:
```
# Mi super servidor Gemini
Sin la basura GAFAM
```
11] Prueba el server, reemplaza DOMINIO por tu dominio
```
./bin/jetforce --host 0.0.0.0 --hostname DOMINIO --dir /opt/gemini
```
Si no ves algo como el siguiente mensaje y obtienes un error, revisa cada paso de nuevo.
```
Generating ad-hoc certificate files...
You are now riding on...
_________ _____________
______ /______ /___ __/_______________________
___ _ /_ _ \ __/_ /_ _ __ \_ ___/ ___/ _ \
/ /_/ / / __/ /_ _ __/ / /_/ / / / /__ / __/
\____/ \___/\__/ /_/ \____//_/ \___/ \___/
An Experimental Gemini Server, v0.9.0
https://github.com/michael-lazar/jetforce
Server hostname is gemini.cuates.net
TLS Certificate File: /tmp/localhost.crt
TLS Private Key File: /tmp/localhost.key
Listening on 127.0.0.1:1965
```
Si vez algo similar a esto, todo esta funcionando correctamente. Con cualquier cliente Gemini, ya deberías poder ver tu servidor.
12] Presiona CTRL+C para terminar el proceso del servidor jetforce
13] Vamos a crear el servicio.
```
sudo vim /etc/systemd/system/jetforce.service
```
13.1] Con el siguiente contenido.
```
[Unit]
Description=Jetforce Server
[Service]
Type=simple
Restart=always
RestartSec=5
Environment="PYTHONUNBUFFERED=1"
ExecStart=/opt/jetforce/bin/jetforce \
--host 0.0.0.0 \
--port 1965 \
--hostname gemini.cuates.net \
--dir /opt/gemini \
[Install]
WantedBy=default.target
```
14] Activa e iniciamos el servicio.
```
sudo systemctl enable jetforce
sudo systemctl start jetforce
```
En este punto ya debe estar tu servidor accesible por cualquier cliente Gemini, al menos los que acepten certificados autofirmados.
Hasta ahora, Jetforce nos crea automáticamente los certificados autofirmados para nuestro servidor Gemini que son perfectamente válidos y reconocidos por la mayoría de los clientes.
En caso de que tu cliente no los acepte, genera un par de certificados para tu dominio como detalle en el siguiente artículo [1]
Entonces, modifica el servicio. Reemplaza DOMINIO por tu dominio.
```
[Unit]
Description=Jetforce Server
[Service]
Type=simple
Restart=always
RestartSec=5
Environment="PYTHONUNBUFFERED=1"
ExecStart=/opt/jetforce/bin/jetforce \
--host 0.0.0.0 \
--port 1965 \
--hostname DOMINIO \
--dir /opt/gemini \
--tls-certfile /etc/letsencrypt/DOMINIO/fullchain.pem \
--tls-keyfile /etc/letsencrypt/DOMINIO/privkey.pem
[Install]
WantedBy=default.target
```
¡Disfrutalo, presume tu servidor y publica mucho!
No dejes de compartir el vínculo a tu capsula para agregarlo al listado hispano de sitios Gemini.
Un abrazo desde México.
=> https://elmau.net/posts/certificados-wildcard-con-lets-encrypt/ [1] Generar certificados Wildcard con Let's Encrypt
=> gemini://elmau.net/chuletas.gmi Regresar el índice
=> gemini://elmau.net Regresar al inicio

372
source/notes/nebula.gmi Normal file
View File

@ -0,0 +1,372 @@
## Nebula
=> https://github.com/slackhq/nebula Nebula en Github
Nebula es una VPN Mesh (en malla), su principal característica y ventaja es que una vez comunicados los nodos, esta es directa entre ellos, aún se requiere un nodo central pero su único trabajo es poner en comunicación los clientes y monitorear que estén en comunicación por lo que los requerimientos para este nodo central son mínimos.
En la terminología de Nebula, a este nodo central se le conoce como "faro" (ligthouse) y es el único que necesita una IP fija.
Nebula esta hecho en Go por lo que solo se requiere un binario para el faro y los clientes y uno más para generar los certificados. Asegurate de descargar la versión correcta para la arquitectura del servidor y los clientes.
=> https://github.com/slackhq/nebula/releases/ Descargar Nebula
Todo el procedimiento se puede realizar tanto el servidor como en algunos de los clientes, para este ejemplo todo se genera en un cliente y solo se suben los archivos necesarios al servidor.
Una vez descargado, descomprimelo y deberás ver dos archivos:
```
.rwxr-xr-x 17M mau 10 May 20:27 nebula
.rwxr-xr-x 6.6M mau 10 May 20:27 nebula-cert
```
1] Primero generamos los certificados CA (Certificate Authorities)
```
./nebula-cert ca -name "Nebula para Cuates"
```
Ahora debes de tener.
```
.rw------- 255 mau 4 Jun 22:14 ca.crt
.rw------- 174 mau 4 Jun 22:14 ca.key
.rwxr-xr-x 17M mau 10 May 20:27 nebula
.rwxr-xr-x 6.6M mau 10 May 20:27 nebula-cert
```
2] Generamos los certificados para el faro y para los clientes, en este paso debes de decidir que subred vas utilizar, para este ejemplo usaré: 10.10.1.0/24
Certificados para el faro.
```
./nebula-cert sign -name "faro" -ip "10.10.1.1/24"
```
Certificados para los clientes.
```
./nebula-cert sign -name "oficina" -ip "10.10.1.2/24"
./nebula-cert sign -name "casa" -ip "10.10.1.3/24"
```
Cada uno de estos certificados, es firmado por los certificados CA del primer paso. Guarda el ca.key en un lugar seguro después de generar todos los certificados de cliente que necesites.
Ahora debes de tener.
```
.rw------- 255 mau 4 Jun 22:14 ca.crt
.rw------- 174 mau 4 Jun 22:14 ca.key
.rw------- 292 mau 4 Jun 22:26 casa.crt
.rw------- 127 mau 4 Jun 22:26 casa.key
.rw------- 292 mau 4 Jun 22:26 faro.crt
.rw------- 127 mau 4 Jun 22:26 faro.key
.rwxr-xr-x 17M mau 10 May 20:27 nebula
.rwxr-xr-x 6.6M mau 10 May 20:27 nebula-cert
.rw------- 296 mau 4 Jun 22:26 oficina.crt
.rw------- 127 mau 4 Jun 22:26 oficina.key
```
3] Configuración
Nebula utiliza el formato YAML para su archivo de configuración, es muy importante respetar correctamente la sintaxis de este formato.
Primero configuramos el servidor. Sube el archivo "nebula" al servidor o descargalo de nuevo si usa una arquitectura diferente a tu cliente. En el servidor solo requerimos el binario "nebula" por lo que si lo descargas puedes borrar el binario "nebula-cert". También debes subir el "ca.crt" y los certificados del "faro", estos son los archivos que deberás de subir a tu servidor.
```
ca.crt
faro.crt
faro.key
nebula
```
IMPORTANTE: Asegurate de NO subir el archivo ca.key, recuerda, este guárdalo en un lugar privado y seguro.
Puedes ver el archivo de configuración de ejemplo en:
=> https://github.com/slackhq/nebula/blob/master/examples/config.yml
Este es el archivo de configuración (config.yml) para nuestro servidor.
IMPORTANTE: NO intentes usar esta IP, debes de usar la real de servidor y, asegurate de abrir el puerto usado en tu firewall.
```
pki:
# Cada nodo necesita una copia del certificados público CA
# y sus propios certificados. Asegurate de usar solo rutas absolutas
ca: /home/mau/ca.crt
cert: /home/mau/faro.crt
key: /home/mau/faro.key
static_host_map:
# La direccion del faro
# formato "Nebula IP": ["IP pública o hostname:port"]
"10.10.1.1": ["165.69.125.144:4242"]
lighthouse:
interval: 60
# true = si es faro, false = si es cliente
am_lighthouse: true
hosts:
# Si es faro esta sección debe ir vacía o comentada
# Si es cliente va la dirección de uno o más faros.
# formato:
#
# - "192.168.98.1"
listen:
# 0.0.0.0 significa "todas las interfaces,"
#
host: 0.0.0.0
port: 4242
# "punchy" básicamente significa "enviar paquetes keepalive frecuentes"
# para que tu router no expire y cierre los túneles NAT.
#
punchy: true
# "punch_back" allows the other node to try punching out to you,
# if you're having trouble punching out to it. Useful for stubborn
# networks with symmetric NAT, etc.
#
punch_back: true
tun:
# sensible defaults. don't monkey with these unless
# you're CERTAIN you know what you're doing.
#
dev: nebula1
drop_local_broadcast: false
drop_multicast: false
tx_queue: 500
mtu: 1300
routes:
logging:
level: info
format: text
# you NEED this firewall section.
#
# Nebula has its own firewall in addition to anything
# your system has in place, and it's all default deny.
#
# So if you don't specify some rules here, you'll drop
# all traffic, and curse and wonder why you can't ping
# one node from another.
#
firewall:
conntrack:
tcp_timeout: 120h
udp_timeout: 3m
default_timeout: 10m
max_connections: 100000
# since everything is default deny, all rules you
# actually SPECIFY here are allow rules.
#
outbound:
- port: any
proto: any
host: any
inbound:
- port: any
proto: any
host: any
```
Ejecuta en el servidor.
```
sudo ./nebula -config config.yml
```
Debes de ver.
```
INFO[0000] Firewall rule added firewallRule="map[caName: caSha: direction:outgoing endPort:0 groups:[] host:any ip: proto:0 startPort:0]"
INFO[0000] Firewall rule added firewallRule="map[caName: caSha: direction:incoming endPort:0 groups:[] host:any ip: proto:0 startPort:0]"
INFO[0000] Firewall started firewallHash=21716b47a7a140e448077fe66c31b4b42f232e996818d7dd1c6c4991e066dbdb
INFO[0000] Main HostMap created network=10.10.1.1/24 preferredRanges="[]"
INFO[0000] UDP hole punching enabled
INFO[0000] Nebula interface is active build=1.4.0 interface=nebula1 network=10.10.1.1/24 udpAddr="0.0.0.0:4242"
```
Ahora configuramos el cliente (config.yml), asegurate de hacer los cambios correctamente.
```
pki:
# Cada nodo necesita una copia del certificados público CA
# y sus propios certificados. Asegurate de usar solo rutas absolutas
ca: /home/mau/ca.crt
cert: /home/mau/oficina.crt
key: /home/mau/oficina.key
static_host_map:
# La direccion del faro
# formato "Nebula IP": ["IP pública o hostname:port"]
"10.10.1.1": ["165.69.125.144:4242"]
lighthouse:
interval: 60
# true = si es faro, false = si es cliente
am_lighthouse: false
hosts:
# Si es faro esta sección debe ir vacía o comentada
# Si es cliente va la dirección de uno o más faros.
# formato:
#
# - "192.168.98.1"
- "10.10.1.1"
listen:
# 0.0.0.0 significa "todas las interfaces,"
#
host: 0.0.0.0
port: 4242
# "punchy" básicamente significa "enviar paquetes keepalive frecuentes"
# para que tu router no expire y cierre los túneles NAT.
#
punchy: true
# "punch_back" allows the other node to try punching out to you,
# if you're having trouble punching out to it. Useful for stubborn
# networks with symmetric NAT, etc.
#
punch_back: true
tun:
# sensible defaults. don't monkey with these unless
# you're CERTAIN you know what you're doing.
#
dev: nebula0
drop_local_broadcast: false
drop_multicast: false
tx_queue: 500
mtu: 1300
routes:
logging:
level: info
format: text
# you NEED this firewall section.
#
# Nebula has its own firewall in addition to anything
# your system has in place, and it's all default deny.
#
# So if you don't specify some rules here, you'll drop
# all traffic, and curse and wonder why you can't ping
# one node from another.
#
firewall:
conntrack:
tcp_timeout: 120h
udp_timeout: 3m
default_timeout: 10m
max_connections: 100000
# since everything is default deny, all rules you
# actually SPECIFY here are allow rules.
#
outbound:
- port: any
proto: any
host: any
inbound:
- port: any
proto: any
host: any
```
Y ejecutamos.
```
sudo ./nebula -config config.yml
```
Debes de ver.
```
INFO[0000] Firewall rule added firewallRule="map[caName: caSha: direction:outgoing endPort:0 groups:[] host:any ip: proto:0 startPort:0]"
INFO[0000] Firewall rule added firewallRule="map[caName: caSha: direction:incoming endPort:0 groups:[] host:any ip: proto:0 startPort:0]"
INFO[0000] Firewall started firewallHash=21716b47a7a140e448077fe66c31b4b42f232e996818d7dd1c6c4991e066dbdb
INFO[0000] Main HostMap created network=10.10.1.2/24 preferredRanges="[]"
INFO[0000] UDP hole punching enabled
INFO[0000] Nebula interface is active build=1.4.0 interface=nebula0 network=10.10.1.2/24 udpAddr="0.0.0.0:4252"
```
En una nueva ventana de tu terminal, prueba la conexión con un simple "ping".
```
ping -c 3 10.10.1.1
PING 10.10.1.1 (10.10.1.1) 56(84) bytes of data.
64 bytes from 10.10.1.1: icmp_seq=1 ttl=64 time=150 ms
64 bytes from 10.10.1.1: icmp_seq=2 ttl=64 time=151 ms
64 bytes from 10.10.1.1: icmp_seq=3 ttl=64 time=150 ms
--- 10.10.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 149.650/150.172/150.638/0.405 ms
```
Presiona CTRL+C en cada terminal para terminar la ejecución de nebula.
4] Crear el servicio
Por ultimo, podemos mover los archivos, el binario, los certificados y el archivo de configuración a una mejor ubicación y crear el servicio correspondiente para su fácil control, para este ejemplo movemos todo a "/opt/nebula"
Creamos el servicio.
```
sudo cat /etc/systemd/system/nebula.service
```
Con el siguiente contenido.
```
[Unit]
Description=nebula
Wants=basic.target network-online.target
After=basic.target network.target network-online.target
[Service]
SyslogIdentifier=nebula
StandardOutput=syslog
StandardError=syslog
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/opt/nebula/nebula -config /opt/nebula/config.yml
Restart=always
[Install]
WantedBy=multi-user.target
```
Activamos e iniciamos.
```
sudo systemctl enable nebula
sudo systemctl start nebula
```
Esto es todo, disfruta.
Un abrazo desde México.
PD: Si eres parte de un colectivo y quieres tener tu propia red Nebula, cuentame lo que hacen, es probable que podamos apoyarles.
=> gemini://elmau.net/chuletas.gmi Regresar el índice
=> gemini://elmau.net Regresar el inicio

12
source/notes/nginx.gmi Normal file
View File

@ -0,0 +1,12 @@
## Nginx
> Evitar la nueva pendejada de Google llamada FLoC
```
vim /etc/letsencrypt/options-ssl-nginx.conf
add_header Permissions-Policy interest-cohort=();
```
=> gemini://elmau.net/chuletas.gmi Regresar el índice
=> gemini://elmau.net Regresar el inicio

View File

@ -0,0 +1,107 @@
## Ubuntu Server 20.04
Establecer el uso horario
```Establecer el uso horario
sudo timedatectl set-timezone America/Mexico_City
```
Mantener actualizado el servidor
```Mantener actualizado
sudo apt update
sudo apt upgrade
```
Establecer locales
```Establecer locales
sudo localectl set-locale LANG=en_US.UTF-8 LANGUAGE="en_US:en"
sudo vim /etc/environment
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
```
Limpiar locales no utilizados
```Limpiar locales no utilizados
sudo vim /var/lib/locales/supported.d/en
sudo dpkg-reconfigure locales
```
Establecer un mejor prompt
```Establecer un mejor prompt
vim .bashrc
PS1="┌─[\e[0;32m\H\e[m][\e[1;31m\u\e[m]->{\[\e[34;1m\]\w\[\e[0;1m\]}\n└──> \[\e[0m\]"
source .bashrc
```
Establecer el hostname
```Establecer el hostname
sudo hostnamectl set-hostname elmau.net
sudo vim /etc/hostname
elmau.net
sudo vim /etc/hosts
127.0.0.1 elmau.net localhost
```
Establecer configuración para `ssh`
```Establecer configuración para ssh
sudo vim /etc/ssh/sshd_config
Port 2274
AllowUsers USER
PermitRootLogin no
LoginGraceTime 1m
ClientAliveInterval 600
ClientAliveCountMax 0
MaxAuthTries 3
IgnoreRhosts yes
PermitEmptyPasswords no
PasswordAuthentication no
LogLevel INFO
```
Desactivar los mensajes de Ubuntu al entrar
```Desactivar los mensajes de Ubuntu al entrar
sudo chmod +x /etc/update-motd.d/50-motd-news
```
Instalar certbot
```
sudo apt install certbot
sudo certbot register
```
Instalar firewall
```Instalar firewall
sudo apt install ufw
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
```
=> gemini://elmau.net/chuletas.gmi Regresar el índice
=> gemini://elmau.net Regresar el inicio

92
source/notes/vim.gmi Normal file
View File

@ -0,0 +1,92 @@
## Vim
### Mi archivo .vimrc
```
set number
set hidden
```
### Comando más usados
* Salir
```
:q
```
* Guardar
```
:w
```
* Abrir pestaña
```
:tabnew
```
* Listar buffers
```
:ls
```
* Buffer siguiente
```
:bn
* Buffer previo
```
:bp
```
* Dividir ventana horizontalmente
```
:split
```
* Dividir ventana verticalmente
```
:vsplit
```
* Moverte entre ventanas
```
CTRL+W Flecha
```
* Cerrar ventana
```
CTRL+W c
```
### Para tener la barra de estado PowerLine.
* Instalamos
```
pip install -U powerline-status
```
* Configuramos en .vimrc
```
set rtp+=/home/mau/.local/lib/python3.9/site-packages/powerline/bindings/vim/
set laststatus=2
set t_Co=256
```
### Para instalar cualquier plugin.
* Creamos el directorio
```
mkdir -p ~/.vim/pack/vendor/start
```
* Clonamos el repositorio
```
git clone URL_GIT_PLUGIN ~/.vim/pack/vendor/start/NOMBRE_PLUGIN
```
=> gemini://elmau.net/chuletas.gmi Regresar el índice
=> gemini://elmau.net Regresar el inicio