Noticias rmgss.net https://www.rmgss.net/rss Sitio personal de Rodrigo Garcia es python Flask - Jinja2 Si del cielo te caen limones https://rmgss.net/posts/si-del-cielo-te-caen-limones https://rmgss.net/posts/si-del-cielo-te-caen-limones Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia reflexión , misceláneo ('... aprende a hacer limonada. Dice una frase que suena hasta en canciones de salsa.\n\nQuiero compartir una reflexión sobre las circunstancias que tocan vivir.\n\n \nEs el caso de un joven que ha tenido el sueño de ser artista desde niño, ahora está en plena juventud pero se siente infeliz por que no ha llegado a ser el artista que siempre ha soñado. Le lastima verse o pensar en eso y también siente "envidia" al ver a sus cercanos rebosantes de alegría y con "éxito".\n\nNo tiene una explicación certera de por que ha sido así, pero cree haber encontrado una explicación. Dice que sus padres no le apoyaron cuando lo necesitaba, cuando era pequeño le querían hacer ver que los artistas en este país se mueren de hambre y están destinados a una vida de miseria. Incluso llegaban a ser agresivos y se burlaban de estas personas refiriéndose a ellos como "buenos para nada" o "ignorantes perdedores".\n\nDesde pequeño le llenaron la cabeza con esas ideas y en algún punto llegó a creerlas, pero él no se conformó completamente con eso por que él quiere hacer las cosas que hacen los artistas.\n\nTerminó el colegio y a la hora de escoger algo que estudiar sus padres trataban aún de imponer su punto de vista, incitándole a estudiar una carrera lucrativa. Pero él no podía aceptarlo y si lo hacía estaría renunciando a lo que es.\n\nSus padres en cierta forma se dieron cuenta de que podrían estar frente a un "caso perdido" y le quitaron el apoyo en casi todo lo referente a su sueño de ser artista. Desafortunadamente, el joven había adquirido ciertos malos hábitos y cuando asistía a eventos artísticos a menudo retornaba a casa muy tarde y embriagado.\n\nSu familia y sus padres, rápidamente empezaron a asociar el arte con estos malos hábitos y se lo echaban en cara. El joven no podía simplemente mantener un trabajo por más de 3 meses y le costaba mucho conseguir algo. Dentro de él crecía un rencor hacia los que le habían rechazado y le han hecho la vida difícil, -- a medida que sus malos hábitos se hacían más frecuentes, mas crecía su rencor.\n\nEl joven llegó a un punto en que comenzó a culpar a sus padres y a su familia por la persona en la que se había convertido, por no confiar en él y por no tomarle en cuenta. Ahora mismo su futuro es incierto y se pasa mucho tiempo encerrado en su habitación haciendo pasar el tiempo en actividades que le ayudan a no recordar su situación, pero a pesar de todo eso aún quiere hacer las cosas que los artistas hacen y de alguna manera tiene esperanza aún cuando no le gusta admitirlo frente a otros.\n\n \nAhora veamos el caso de otro joven, desde pequeño le ha atraído el arte, sus padres le facilitaron una educación favorable para que algún día se convierta en un "artista exitoso". Casi siempre ha tenido lo que quería y ha conseguido tener una vida respaldada completamente por su trabajo artístico.\n\nCuando hace algún trabajo y gracias a que ha ganado fama desde temprana edad, hay personas en sus expocisiones que admiran sus obras y le pagan para que siga haciéndolas. Hasta el otro joven en situación díficil es un admirador de este último.\n\nPero ahora mismo, yo me pregunto ¿Cúal fue el mérito, crucial para que este joven tenga tanto éxito?\n\n \nSin llegar a muchos detalles yo diría que el joven artista exitoso no ha hecho grandes méritos, simplemente ha estado en una situación favorable y lograr lo que ha logrado dadas las condiciones que ha vivido era probablemente sólo cuestión de tiempo.\n\nUna vez un señor de avanzada edad, contempló sus obras y sin conocerlo dijo en voz baja: "Este trabajo no me inspira mucho en especial, para mi le falta carisma y sentido artístico", incluso alguien comentó a una persona cercana al joven: "El talento no lo es todo", quizás viendo lo mismo que el señor de avanzada edad.\n\nEl joven "exitoso" no ha escuchado nada de eso, posiblemente no tiene interés en comprender lo que otr@s pasan o han tenido que pasar para conseguir lo que tienen.\n\n \nYa sea el caso del joven "exitoso" o el joven en "situación no favorable", ninguno de ellos escogío las circusntancias que han vivido. Era algo inevitable en ambos casos y cada uno ha tenido que vivir una vida distinta pero ambos comparten el gusto por el arte.\n\nEstar en situación favorable o desfavorable, no es algo que siempre podamos escoger, para alcanzar aquello que realmente queremos, de seguro las circunstancias están fuera de nuestro poder de decisión.\n\nLo mismo pasa con el estudiante que quiere ser científico pero no puede costearse la educación necesaria, o quién quiere ser atleta y tiene un problema en las rodillas, o el que quiere ser jardinero pero su entorno se lo impide.\n\nPensando en eso he llegado a la conclusión de que lo único que está en nuestras manos realmente es: que vamos a hacer con lo que nos ha tocado.\n\n \nA mi parecer, el mérito verdadero viene de encontrar una salida y aprender a lidiar con situaciones inevitablemente desfavorables para alcanzar aquello que realmente se necesita. De ese sacrificio, viene el mérito de conseguir algo y eso es lo que cambia el mundo, y si a eso se suman buenas intenciones --se cambia el mundo para bien.\n\nEntonces bajo ese razonamiento, puedo decir que quién está en situación NO favorable tiene la oportunidad de superarla y ganar una experiencia valiosa y enriquecedora.\n\nPor eso, si fuese el caso del joven artista en "situación desfavorable", seguramente tendremos que dejar de lamentarnos sobre lo que nos ha tocado o lo que nos han hecho pasar y buscar la manera de hacer arte, teniendo cuidado de no cometer errores que nos hagan perder el rumbo nuevamente.\n\nEn el caso del joven en "situación favorable" y con sólo guardarse el éxito para el mismo, no se provocará ningún cambio significativo. Lo que conviene hacer es apoyar a otros en situación desfavorable compartiendo lo que tiene, ese aporte mejorará sus condiciones significativamente.\n\n----\n\nEntonces para todos aquellos en busca de algo realmente valioso y se les hace difícil, busquen la salida, atrévanse a hackear la situación :)\n', ['reflexión', 'misceláneo'])

]]>
Resistirse a usar ciertos medios comunicacion https://rmgss.net/posts/resistirse-a-usar-ciertos-medios-comunicacion https://rmgss.net/posts/resistirse-a-usar-ciertos-medios-comunicacion Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia medios_de_comunicación , anonimato , reflexión ('categorías: #medios_de_comunicación #anonimato #reflexión\n\n \nAlgunas razones por las que deberíamos considerar no utilizar ciertos medios de comunicación masiva por violar la privacidad de sus usuari@s y otras cosas negativas.\n\nTambién voy a mencionar algunas alternativas y formas de incentivar, apoyar y desarrollar tecnologías que se adapten a las necesidades comunicacionales de las personas -- no adapatar las necesidades comunicacionales de las personas a las tecnologías.\n\n \nEn general de plataformas que funcionan por internet como Facebook, Twitter, Whatsapp, Google+, el motor de búsqueda de google, Telegram y muchos otros más.\n\nEsas plataformas tienen la característica de brindar soluciones comunicacionales rápidas, cómodas y baratas para sus usuari@s, pero las consecuencias que estos últimos sufren incluso sin saberlo, tiene efectos que pone seriamente en riesgo su anonimato y derecho a la privacidad.\n\nAdemás generan una costumbre y tendencia a "sacrificar derechos a cambio de comodidades", esto por que los usuarios acostumbran a permitir que estas plataformas y las compañías detrás se aprovechen exageradamente de su necesidad de comunicación para --imponer condiciones de uso que requieren que los y las usuarias renuncien a ciertos derechos a cambio.\n\nVamos a ver el caso específico de algunas plataformas a continuación.\n\n<span id="facebook"></span>\n \nConocida como la "red social" más grande del mundo, tiene acumulada tanta información sobre sus usuarios que le permite generar ganancias con las que ciertos países solo pueden fantasear.\n\nPero el hecho de lucrar no le quita lo ético, sino la forma en que lo hace. Esto dicen en sus términos de servicio actualizados hasta el 28 de diciembre de 2016 :\n\n1. Recopilamos el contenido y otros datos que proporcionas cuando usas nuestros Servicios\n2. También recopilamos el contenido y la información que otras personas proporcionan cuando usan nuestros Servicios y que puede incluir datos sobre ti.\n3. La información asociada a tu cuenta se conservará hasta que la cuenta se elimine, a menos que ya no necesitemos los datos para proporcionar los productos y servicios.\n4. Cuando eliminas tu cuenta, eliminamos el contenido que publicaste, como tus fotos y actualizaciones de estado\n5. Recuerda que la información que otras personas compartieron acerca de ti no forma parte de tu cuenta y no se retirará cuando la elimines.\n\nEsas son algunas oraciones escritas en los términos de servicio de Facebook, y es lo que Facebook dice hacer con los datos de sus usuarios.\n\nEl punto 1 es habitual en casi cualquier plataforma web, el punto 2 abre ciertas posibilidades, como por ejemplo que alguien que no seas tú comparta supuesta información relacionada a ti y que podría comprometerte de alguna manera, aunque eso también ocurre cuando alguien habla acerca de ti por cualquier otro medio así que no hay cosas demasiado cuestionables allí.\n\nEl punto 3 y 4 parece sugerir que al eliminar tu cuenta los datos se borran también, pero al decir a menos que ya no necesitemos los datos para propocionar productos y servicios hacen entrar en duda sobre si realmente eliminan los datos o sólo lo hace cuando ya no les sirven.\n\nLos punto 2 y 5 dicen que si alguien que no seas tu comprate información tuya en Facebook, a partir de ese momento esa información no es parte de tu cuenta y permanecerá incluso si eliminas tu cuenta. Y eso a mi parecer es una injusticia por que si por ejemplo alguién comparte una foto tuya incluso sin tu permiso no puedes eliminarlo por que según los términos de servicios esa información no te pertenece.\n\n \nNo se y es difícil saberlo, pero según los documentos que Edward Snowden filtró sobre PRISM, Facebook colaboraba con la NSA y le proporciona datos para espiar las acciones de sus usuarios ([^6], [^2]) facilitando la recolección de su tráfico al gobierno estado unidense.\n\nSi Facebook hacía eso a espaldas de los usuarios, es fundamentado sospechar que hace otras cosas como vender datos privados de las personas como chats, publicaciones, fotos, etc. a quién pueda pagar.\n\n \nA parte para expandir su dominio y incrementar el número de usuarios a facebook, este último lleva a cabo campañas de supuesta beneficencia. Cuando en realidad son estrategias que se aprovechan de la escasez de recusos en ciertos lugares para ofrecerles Facebook "gratis", pero a costa de que comiencen a conocer el internet como sinónimo de facebook.\n\nHace tiempo había una campaña para informar de los peligros de esta iniciativa, revisa https://wiki.hacklab.org.bo/wiki/Anti_Internet.org_de_Facebook para más información.\n\n<span id="whatsapp"></span>\n \nLa empresa Facebook no hace mucho ha comprado Whatsapp y ahora sus usuarios han crecido mucho (más 900 millones de usuarios mensuales según wikipedia[^3]). Hay muchas personas que usan esta aplicación para sus comunicaciones más intimas pero no consideran la posibilidad de que esta plataforma este vigilando sus acciones y vendiendo/revelando esta información al igual que Facebook.\n\nAdemás la aplicación Whatssapp es software privativo, y no se puede estudiarla o saber que realmente hace, ni tampoco mejorarla o adaptarla a ciertas necesidades. \n\n<span id="telegram"></span>\n \nA diferencia de Whatsapp, la aplicación para celulares, para computadores de escritorio , y la aplicación web de telegram es código abierto lo que quiere decir que se la puede estudiar, copiar y mejorar [^4], además de brindar seguridad extra al cifrar las comunicaciones de cliente a servidor y otras utilidades para aumentar la privacidad.\n\nPero telegram almacena los datos en servidores y yo creo con ganas de restarle importancia sobre en qué servidores se almacena la información dice que los almacena en la nube [^5].\n\nDespués de leer las preguntas y respuestas frecuentes de telegram no he encontrado menciones concretas de que hacen con las conversaciones y datos que los usuarios suben al usar telegram, en otras palabras el cliente telegram es libre pero telegram no es una red libre. (Si estoy equivocado agradezco te pongas en contacto)\n\nLuego de leer información como la que propociona este hilo en el foro de trisquel, mi pocisión al respecto sobre usar telegram es: Si telegram se resiste a decir que hace con datos míos, entonces yo me resistiré a usarlo.\n\n<span id="google"></span>\n \nEs sin duda el gigante de la información en internet, tanto así que hace ver a Facebook, Twitter, Apple y posiblemente hasta Microsoft como diminutos en comparación con la cantidad de datos que Google posee sobre los usuarios.\n\nBasta con mirar la cantidad de servicios que tiene para suponer la cantidad de información que tiene sobre las personas, podemos citar algunos servicios populares que brinda google:\n\n Motor de búsquedas google.com (la página más visitada en internet)\n gmail (el servicio de correo electrónico más usado)\n youtube\n Google+\n Google Drive\n Traductor Google\n streetview\n Muchos otros más\n\nCon esos servicios le basta como para convertirse en un gigante en la recolección de datos, es difícil imaginar la cantidad de información que solamente youtube, gmail o google.com pueden conseguir sobre las personas en solamente 1 minuto o incluso 1 segundo.\n\nPero la recolección de datos no sería peligrosa en si misma, una vez más según los documentos filtrados por Edward Snowden ([^2], [^6], [^7]), google colaboraba con la NSA para revelar informacíon confidencial de sus usuarios al facilitar la vigilancia de su tráfico para el gobierno estado unidense.\n\n<span id="peligro_como_herramientas"></span>\n \nHay personas que opinan que por ejemplo google, facebook y otros medios similares son herramientas efectivas para llegar a la gente y es cierto, ya que la mayor parte de la gente en internet las utiliza.\n\nPero hacerse dependiente de estas herramientas, hace dependiente a quién las utiliza para contactarte. Si por ejemplo llevas un proyecto de beneficiencia usando facebook, obligas que los beneficiarios sean usuarios de facebook, de igual manera con google, telegram, etc.\n\nSi bién es comprensible que se utilicen estos medios por su gran alcance hacia la gente, si solamente utilizas estos como medios de comunicación para tus actividades, les das mucho poder y en el futuro será cada vez más difícil quitárselo.\n\nUtiliza alternativas libres y descentralizadas y asegúrate de promocionarlas en los medios de comunicación que utilices, libérate de sus cadenas y libera también a tus seguidores.\n\n<span id="que_hacer"></span>\n \nLo ideal sería no utilizar los servicios mencionados o los que son similares, pero esto no es una opción fácil especialmente para personas que dependen mucho de estos servicios.\n\nUna estrategia es gradualmente reemplazar estos servicios por alternativas que reúnen condiciones donde se respeta la privacidad de los usuarios principalmente y con preferencia se pueda ejercer el derecho a la anonimidad.\n\n<span id="alternativas"></span>\n \nSe pueden econtrar muchas alternativas a los servicios mencionados. Esta es una tabla básica:\n\n<table>\n<tr>\n\t<th>\t\t</th>\n\t<th> ALTERNATIVA RECOMENDADA</th>\n</tr>\n<tr>\n\t<td>google.com</td>\n\t<td>\n\t\t<a href="https://duckduckgo.com">duckduckgo.com</a>\n\t\tEste buscador además de ser software libre, no hace seguimiento a los usuarios o las búsquedas que hacen.\n\t</td>\n</tr>\n<tr>\n\t<td> facebook</td>\n\t<td> <a href="https://joindiaspora.com/">diaspora</a> , tiene un uso y apariencia similar a facebook pero es software libre y no es centralizada, cualquier persona puede usarla y cualquiera esta en el derecho de montar un pod (se llaman pods a los servidores que ejecutan disapora y almacenan la informacion de los usuarios que se registran en ellos). Mientras mas pods menos centralizada es la información y más variedad hay.</td>\n</tr>\n\n<tr>\n\t<td> Whatsapp, Telegram </td>\n\t<td>\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<a href="https://www.signal.org/es/">signal</a> Es una aplicación y plataforma de mensajería similar a telegram y whatsapp para dispositivos móviles y computadoras de escritorio. Pero tiene <a href="https://www.signal.org/docs/">cifrado fuerte</a> en las comunicaciones mediante el <a href="https://es.wikipedia.org/wiki/Cifrado_de_extremo_a_extremo"> cifrado de extremo a extremo</a>.\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t\t<a href="https://jami.net/">jami</a> Una plataforma de comunicación libre, realmente descentralizada por que <a href="https://jami.net/why-is-jami-truly-distributed/">no requiere un servidor como punto de intermedio una vez se ha extablecido el enlace de comunicación</a>, aprovecha también tecnologías como <a href="https://jami.net/the-jami-blockchain-switches-from-proof-of-work-to-proof-of-authority/">su cadena de bloques</a> como prueba de autoridad.\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t\t<a href="https://kontalk.org/">kontalk</a> Es una aplicación de mensajería similar a telegram y whatsapp para dispositivos móvilies. Pero es gestionada y mantenida por comunidades, el servidor y el cliente son software libre. \n\t\t\t</li>\n\t\t\t<li>\n\t\t\t\t<a href="https://tox.chat">Tox</a> Una aplicación de mensajería orientada a brindar privacidad, cifra fuertemente las comunicaciones, es software libre del lado del cliente y servidor.\n\t\t\t</li>\n\t\t</ul>\n\t</td>\n</tr>\n\n<tr>\n\t<td>Twitter</td>\n\t<td>\n\t\t<ul>\n\t\t\t<li><a href="https://es.wikipedia.org/wiki/GNU_Social">GNU Social</a> Similar a Twitter y distribuida.\n\t\t\t</li>\n\t\t\t<li><a href="https://joinmastodon.org/">Mastodon</a> Similar a Twitter, pero distribuída.\n\t\t\t</li>\n\t\t</ul>\n\t</td>\n</tr>\n\n</table>\n\n\n[^2]: https://www.theguardian.com/world/2013/jun/06/us-tech-giants-nsa-data\n[^3]: https://es.wikipedia.org/wiki/WhatsApp\n[^4]: https://telegram.org/apps#source-code\n[^5]: https://telegram.org/faq#q-how-is-telegram-different-from-whatsapp\n[^6]: http://www.nytimes.com/2013/06/08/technology/tech-companies-bristling-concede-to-government-surveillance-efforts.html?ref=global-home&_r=1&&pagewanted=all\n[^7]: https://www.wired.com/2013/06/google-uses-secure-ftp-to-feds/\n\n> Seguiré actulizando este post a medida que encuentre información más precisa.\n', ['medios_de_comunicación', 'anonimato', 'reflexión'])

]]>
Nodo Lorena LaOtraRed https://rmgss.net/posts/nodo-Lorena-LaOtraRed https://rmgss.net/posts/nodo-Lorena-LaOtraRed Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia LaOtraRed , redes_libres , reseña ('Desde el 4 de Mayo, hay un nuevo nodo en LaOtraRed\n\nplanto-nodo-lorena\nver más grande\n\nLo hemos bautizado el nodo "Lorena" igual que una de las mascotas de don Arturo, la persona que amablemente nos abrió las puertas de su casa y nos permitío instalar varias antenas y ampliar la red troncal de LOR (LaOtraRed).\n\nEl nodo Lorena se ubica en un punto alto de la ciudad de La Paz en la zona de Cotahuma y resulta un punto estratégico por que tiene línea de vista con varios otros nodos como el nodo Rezo (r00thouse en la zona de Miraflores), Nodo Omar y Gauss en Pampahasi y otros.\n\n \nEste nodo se tenía planificado poco antes de finales del 2018, e hicimos muchos intentos fallidos. Al principio don Arturo nos ayudó adaptando un plato parabólico (el de la foto de arriba) y pintándolo para usarlo, luego pensamos en potenciar un enrutador mío que no estaba usando (CPE-510). En este caso lo pusimos justo en el foco de la antena parabólica, así toda la radiación electromagnética que el plato parabólico concentra llegaría directamente a un enrutador que tiene ganancia de 13 dBi, un experimento que resultó funcional.\n\nLa instalación de la antena no causó problemas, pero surgieron otros. Hay una cancha cercana que tiene enmallado metálico y atenúa en gran medida la radiación electromagnética cuando se apuntaba cerca de ese parque y las señales wifi de los otros nodos LOR casi no se percibían a pesar de la gran antena parabólica.\n\nTambién un día todos los routers dejaron de funcionar debido a fallos en el suministro eléctrico. Tuvimos que conseguir un estabilizador de energía e instalarlo exclusivamente para los enrutadores del nodo Lorena, mover las antenas para que la reja enmallada del parque no interfiera y hacer ajustes en los cables.\n\nHicimos como cuatro visitas al nodo Lorena pasando tardes completas ahí. Finalmente logramos concretar enalces estables, gracias a la colaboración de la familia de don Arturo después de mucho esfuerzo.\n\n \nPor ahora usamos tres antenas en el nodo Lorena, un TP-Link cpe 510, y dos cpe 610, que apuntan directamente al r00thouse, al nodo Gauss y Omar con buena ganancia y conexión estable.\n\nplanto-nodo-lorena2\nEn la pantalla de la computadora se ven algunos nodos con los que se tiene conexión.\n\n\ncpes-nodo-lorena2\nDos enrutadores CPE-610 apuntando a los nodos de Pampahasi.\n\nEl nodo Lorena cubre buena parte del centro de la ciudad y Miraflores, la vista que regala deja contemplar la ciudad desde una agradable perspectiva.\n\nvista-nodo-lorena1\n--> ver más grande\n\nvista-nodo-lorena2\n--> ver más grande\n\n \nLorena es una paraba roja que vive en la casa de don Arturo, es una de sus mascotas favoritas y es grande y fuerte. Nos contarón como intentarón devolverla a su hábitad en el norte de La Paz, pero esta ave ya no pudo readaptarse y don Arturo se la quedó y la hizo parte de su familia. Lorena siempre nos saluda jugando y recibe y se come la fruta qu le llevamos :D\n\nlorena1\n\nFue muy satisfactorio este nodo en particular y también muy trabajoso, pero siempre nos gusta ver a Lorena, vamos a potenciarlo.\n\nDespués de esto LOR se toma un descanso para organizarnos individualmente pero estamos abiertos a nuevas posiblidades para ampliar la red.\n\n\n', ['LaOtraRed', 'redes_libres', 'reseña'])

]]>
Navidad 2018 https://rmgss.net/posts/navidad-2018 https://rmgss.net/posts/navidad-2018 Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia reflexión , navidad (' \nEsta navidad he querido verla desde otro punto de vista, desde donde otras personas no la pasan tan bien.\n\nnavidad2018\n<--tamaño original\n\nEsta es como una continuación a la reflexión de navidad 2017.\n\nÉpoca de descanso y tranquilidad para muchas personas, también de ajetreo y preocupaciones para otras. Tantas matices que tiene esta fecha que quizá pocos se animan a explorar y este año tuve un fuerte impulso por conocer aunque sea un poco esas matices distintas.\n\n \nFuí al hospital de la mujer poco antes de navidad para dar un apoyo a alguien y como siempre en este lugar hay mucho apoyo que dar. Pregunté a la trabajadora social que atiende a las enfermas por un caso que en especial requiera algún apoyo económico y me mostró el caso de una menor de edad que producto de un abuso sexual dió a luz a dos gemelos, en este caso la adolescente sólo contaba con la ayuda de sus padres que ya estaban mas de dos semanas en La Paz con pocos recursos, una ciudad grande que no conocían, una gran preocupación y cansados por estar tantos días sin alimentarse apropiadamente.\n\nNo conseguí muchos más detalles, pero vi un poco de las consecuencias del abuso a una persona indefensa en recuperación. La ayuda que pude dar por cuenta propia fue una parte a la familia y otro al hospital que necesitaba insumos ya que tenía otros casos similares y entre uno de ellos uno de abandono.\n\nRápidamente el dinero que había destinado para esto ĺo gaste en una farmacia comprando todo lo que alcanzó. A mi me parecieron excesivos los precios de los medicamentos e insumos que me indicaron hacían falta, pero aún así tuve que comprarlos. Luego pedí ayuda a algunas personas del trabajo que no se negaron y aportaron de buena gana :) Con ese dinero alcanzó para comprarles ropa, pañales y muchos otros productos de bebés para los recién nacidos y algo para la familia.\n\nEsperando que esta navidad sea mejor para esa familia me despedí cuando se subían al transporte que los llevaba de vuelta a su pueblo lejano en los Yungas de La Paz. Por todo lo demás fue una navidad típica en familia para mi, pero me queda la necesidad de hacer más cosas similares.\n\n \nNo pude evitar pensar en este caso como muchos otros casos de abuso con consecuencias muy fuertes, cuáles son las causas o factores que los disparan. Revise sin muchos detalles algunas estadísticas y luego entendí mejor lo que impulsa a muchos movimientos de lucha contra el abuso y violencia contra la mujer.\n\nLas mujeres viven una situación de desigualdad en nuestro medio y padecen directamente las consecuencias, por que en un caso como este, posiblemente la madre de los dos gemelos tendría que dejar de estudiar y dedicarse al cuidado de los niños aún si fuese en contra de su voluntad.\n\nPienso que entre la gran cantidad de problemas de desigualdad que existen, uno de los peores es la falta de educación equitativa, —tener un grupo de personas "con buen nivel de educación" no garantiza el buen vivir de otro grupo de personas con un nivel de educación inferior.\n\n \nLa desigualdad es tremenda sólo comparando las cenas de navidad que unas familias tienen y cómo otras no las tienen o las dificultades que muchas tienen que vivir. Si la gente que tiene mucho en navidad daría a la gente que no tiene, seguro se verían grandes diferencias en esta celebración. Dar algo nuestro para otras personas que lo necesitan provoca cambios positivos y duraderos.\n\nNo hay razón para que este tipo de actos sean considerados raros, "cursis" o difíciles de hacer, más bien es hora de hacerlo una costumbre más extendida :D \n', ['reflexión', 'navidad'])

]]>
Navidad 2016 https://rmgss.net/posts/navidad-2016 https://rmgss.net/posts/navidad-2016 Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia reflexión , navidad (' \nHoy es víspera de navidad, desde el interior de una casa hay algo de ajetreo pero no hay preocupaciones mayores, se espera una cena agradable y juntarse con la familia y personas cercanas. \n\nEn la mesa se ven adornos y productos alimenticios envasados, con colores y etiquetas brillantes, se ven botellas de bebidas gaseosas y muebles cómodos. Hay luces de colores y adornos por toda la sala. Todo parece tan confortable en este día y se espera sea aún más al día siguiente.\n\nVan muchos años que es así y según parece así seguirá, pero que tal si paramos un poco para pensar en el costo de esta confortable velada.\n\nPara hacerlo habría que pensar también en las personas para quienes la navidad no es tan confortable y no por voluntadad propia, basta con salir a una de las calles en zonas comerciales de la ciudad de La Paz y ver que hay mucha gente que está vendiendo cosas pequeñas y baratas, y con lo que puedan reunir hoy posiblemente les alcance para comprarse una botella de sidra para brindar con su familia o al menos a solas. En el hogar de esas personas seguramente no habrán muebles cómodos ni adornos por todas partes, al menos la misieria económica que sufren no lo permite. Tambíen se puede pensar en quienes tienen la suficiente riqueza monetaria para permitirse grandes banquetes, viajes y caprichos "desmedidos". \n\nSin embargo para no desviar el sentido de esta reflexión trataré de centrarme en la familia de clase media.\n\n \nTodos esos productos y adornos que dan comodidad tienen un costo monetario, y mucha gente invierte mucho dinero en este día para asegurarse una velada confortable. Desde cierto punto de vista mucho del dinero gastado para navidad es un gran derroche, pero parece que para la mayoría de la gente es un gasto necesario o inevitable.\n\nSupuestamente, el 25 de diciembre se recuerda el nacimiento de Jesucristo, pero no parece se piensa en eso a la hora de consumir tanto. -- ¿Cúal es el significado de la navidad?.\n\nEn muchos hogares de La Paz, se preparan para recordar el nacimiento del niño Jesús, y preparan un bonito pesebre en miniatura con una figura del niño al centro y cuando son las 00:00 se juntan para orarle al niñito.\n\nEn otros no hay nada de eso, los regalos y los productos para consumir son lo que más importa a parte de seguramente compartir con la familia.\n\nEn el último caso, ¿qué tal si no habrían esos regalos o cosas que consumir? ¿Sería lo mismo entonces compartir con la familia?. Acaso ¿compartir con la familia es el pretexto para comprar y consumir en navidad? o tal vez, comprar y consumir tanto es un pretexto para compartir con la familia.\n\nEn esta ocasión mas que en otras fechas, me animo a decir que el consumismo alcanza su punto más alto y hasta parece que en navidad se celebra este hábito.\n\n \nNo necesariamente, consumimos productos para satisfacer necesidades o deseos pero -- cuando para satisfacer esas "necesidades" o deseos se tiene que perjudicar mucho a alguien ahí veo algo negativo.\n\nPor ejemplo para tener en la mesa una botella de Coca-Cola, se ha seguido un gran proceso de fabricación que incluye exceso de uso de azúcar y otros ingredientes secretos, además del posible derroche de agua y digo derroche por que para producir un litro de Coca-Cola se desperdicia y contamina una cantidad significativa de agua 1, 2 , 3.\n\nOtro ejemplo para consumir el panetón navideño es posible que se haya usado harina y probablemente esa harina venga de enormes plantaciones de trigo. Y hay mucha probabilidad de que esa plantación sea un mono cultivo que este sobre explotando la tierra o se haya tenido que destruir un bosque natural para plantar el trigo.\n\nTanto el panetón como la Coca-Cola tienen sabor agradable para muchos pero en esos dos casos, -- a costa de la contaminación del agua y la posible destrucción de bosques naturales la gente puede consumir Coca-Cola y comerse el panetón.\n\nLa gente en general no parece consciente de los costos que implican poder comer lo que come o tomar lo que toma. Pero no se puede estar completamente consciente de todo, por ejemplo ahora mismo no estoy seguro del impacto ambiental o la necesidad energética que causa el hecho de que pueda escribir usando una computadora.\n\nEl hecho de consumir algo no es lo negativo, las personas consumen las cosas que les gustan y eso es natural, pero ¿Qué tan conscientes somos de lo que consumimos?\n\n \nNo creo que la navidad haya sido siempre así, por lo menos se pueden ver algunos signos de lo que hablan muchos al decir que la navidad se trata de dar y no de recibir.\n\nHay personas que en navidad sacrifican algo de ese impulso por comprar y consumir y comparten lo que tienen con otr@s, y hay quienes se ocupan enteramente de ayudar a otras personas en navidad. No me animo a decir cúantos ni en que proporción pero si hay.\n\n \nSi en lugar de celebrar el hábito de consumir, la gente se preocuparía más en dar en lugar de recibir al menos en navidad, seguramente habría más alegría y motivos para celebrar.\n\nEn lugar de tergiversar la imagen de un personaje ficticio como "papanoel" para engañar a los niños y hacerles creer que la navidad se trata de recibir regalos, sería mas provechoso recordar las lecciones que Jesucristo trató de dar al decir frases como "ama al prójimo como a ti mismo".\n\n \nRecuerdo me contaban que antes la navidad era mas linda, por que se regalaba dulces y comida a los niños que "adoraban al niño". Según entendí "adorar al niño Jesús" se trataba de cantar y bailar villancicos además de rezar y jugar con otros niños y esa costumbre era muy fuerte especialmente en el campo.\n\nAl menos en la ciudad de La Paz no recuerdo haber visto eso y supongo que en otras grandes ciudades del mundo la cosa es similar. Para mi "adorar al niño Jesús" es mucho más sano que la mayor parte de las cosas se hacen en navidad ahora.\n\nEn navidad se debería incentivar el compartir con otros o -- ¿Cómo te enteras de las necesidades de los demás si no compartes con ellos? y ¿Cómo puedes esperar dar algo que les sirva sin saber lo que necesitan?.\n\nEn cuanto a los hábitos consumistas, es importante estar consciente sus consecuencias , reducir el consumismo navideño es crucial o esas malas costumbres podrían frustrar los esfuerzos para mejorar la navidad.\n\n \nEspero la siguiente navidad sea mejor, deseo que esta reflexión te ayude a ver los hábitos que están degradando esta fiesta y la convivencia entre seres humanos en general. También deseo que tu también pongas tu esfuerzo para mejorarla :)\n\n\n\n\n', ['reflexión', 'navidad'])

]]>
Libro Programming in C https://rmgss.net/posts/libro-Programming-in-C https://rmgss.net/posts/libro-Programming-in-C Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia descargas , libros , software ('descargar.png Descargar versión offline\n\nAquí comparto una versión descargable y offline del libro "Programming in C UNIX System Calls and Subroutines using C" por A. D. Marshall (1999)\n\nLa versión online del libro se encuentra en https://users.cs.cf.ac.uk/Dave.Marshall/C/CE.html, sin embargo para los que no tengan internet todo el tiempo y aun así quieran leer el libro de manera cómoda la versión offline que pongo les servirá.\n\nSolo hace falta descomprimir el .zip y abrir la página ínidice que tiene nombre node1.html con un navegador web, desde allí se puede revisar todo el contenido.\n\n \n wget -r https://users.cs.cf.ac.uk/Dave.Marshall/C/CE.html\n\nQue descarga recursivamente con una profundidad de hasta 5 y afortunadamente wget tambíen descarga las imágenes del libro, luego hay una carpeta llamda Dave.Marshall y dentro otra C, sólo he comprimido esa carpeta como .zip\n\nEspero les sirva.\n', ['descargas', 'libros', 'software'])

]]>
Fotos7 https://rmgss.net/posts/fotos7 https://rmgss.net/posts/fotos7 Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia fotos ('Esta es una serie de fotos de una caminata por la ruta "el Choro" en los Yungas de La Paz - Bolivia.\n\nchoro15\n<- Tamaño original\n\nLa caminata comienza desde las frías montañas que son el inicio de una larga ruta hacia una de las zonas con más humedad en Bolivia.\n\n----\n\nmontañas1\n<- Tamaño original\n\nA medida que se va descendiendo por las montañas de "la cumbre", la neblina de a poco va revelando la ruta que espera.\n\nchoro1\n<- Tamaño original\n\n----\n\nDespués una hora de descenso se empiezan a escuchar ríos y de a poco se camina al lado de riachuelos y vertientes de aguas cristalinas.\n\nchoro2\n<- Tamaño original\n\nchoro3\n<- Tamaño original\n\n----\n\nSiguiendo se va viendo como se deja atrás la cordillera desde donde viene el agua de todo lo que sigue.\n\nchoro4\n<- Tamaño original\n\nchoro5\n<- Tamaño original\n\n----\n\nLuego el paisaje cambia, se respira humedad y olor a vegetación densa entre las montañas.\n\nchoro6\n<- Tamaño original\n\nEn todo el trayecto que normalmente toma tres días siempre se puede conseguir agua.\n\nchoro7\n<- Tamaño original\n\n----\n\nMientras más se baja más por las verdes montañas, más se encuentran cascadas y ríos. \n\nchoro8\n<- Tamaño original\n\nEl cansancio de la marcha sin parar y la sed, hacen que tomar estas aguas sea realmente bueno.\n\nchoro9\n<- Tamaño original\n\nchoro10\n<- Tamaño original\n\nchoro11\n<- Tamaño original\n\n----\n\nHasta las piedras que se encuentran en el camino están llenas de vegetación.\n\nchoro12\n<- Tamaño original\n\n----\n\nEntre los caminos estrechos, las largas y empinadas cuestas, los puntos altos son buena ocasión para tomarse una pausa y contemplar el paisaje.\n\nchoro13\n<- Tamaño original\n\n----\n\nAltas montañas y abundante vegetación, puentes improvisados, senderos resbalosos con paredes de piedras, precipicios a un paso y cascadas cuyas aguas vienen desde las altas y grandes montañas, hacen que al tomar agua de una de estas cascadas se sienta el sabor de todo esto y más.\n\nEs agua tan dulce y refrescante que no puedes olvidar su sabor y tampoco el querer volver a caminar por esta ruta o ir incluso más lejos.\n\nchoro14\n<- Tamaño original\n', ['fotos'])

]]>
Fotos11 https://rmgss.net/posts/fotos11 https://rmgss.net/posts/fotos11 Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia fotos , poemas ('Incesantes momentos capturados en fotos que luego de verlas provocan tanto que solo imágenes no bastan y se quiere intentar usar también palabras. \n\n\nthumb_arboles-altos1.jpg\n<- original\n\n> Estos son los centinelas que quedan de un grupo que atestiguó mi niñez\n\n> Mueven sus hojas con el viento haciendo un sonido que parece anunciarlo\n\n> Bondadosos protectores cuya sombra alivia del intenso sol\n\n> Cúantos viajeros voladores habrán albergado \n\n> Cúantos ojos se agasajaron con su armoniosa grandeza y paciente crecer\n\n> De a poco van quedando menos, algunos ya han caído\n\n> Y eso que hablo de un ahora que es pasado, pero ha quedado en imagen\n\n> ¿Cúanto tiempo mas seguirán allí?\n\n> Tal vez los humanos los talen para evitar que caigan\n\n> O para tomar el espacio que hicieron su hogar\n\n> Tomando y cortando sus cuerpos y darles nuevos propósitos \n\n> O su vieja madera no soporte su propio peso\n\n> Su forma de árboles ya no será mas\n\n> Para ese momento ¿Habrán otros como ellos? ¿Quedará algo de ellos?\n\n> Quizá alguna de las tantas semillas que se han esforzado en crear\n\n> Haya reclamado un lugar donde brotar y afianzar sus raíces\n\n> O unos humanos las hayan plantado\n\n> Y estén viviendo sus orgullosos descendientes\n\n> En todo caso, muchos ahora bendijeron con su presencia\n\n> Con un cielo de fondo, los seres bajo ellos estimularon su vista al verlos\n\n> Por eso y más su esplendor es innegable\n\npalomas1.jpg\n\nEntre las piedras mojadas y hierba crecida estas palomas aprovechan migas, les sacan las energías para ponerlas a volar de nuevo :)\n\nthumb_oreocereus-celsianus.jpg\n<- original\n\nUn Oreocereus celsianus, cuando pregunté como se llamaba esa planta recibí como respuesta «El viejito».\n\n----\n\nthumb_Cotahuma1.jpg\n<- original\n\nVistas desde Cotahuma, una zona que muestra un interesante ángulo de la ciudad de La Paz - Bolivia.\n\nthumb_Cotahuma3.jpg\n<- original\n\nArriba, dos perros patrullando una esquina asfaltada en lo alto.\n\nthumb_Cotahuma2.jpg\n<- original\n\nCerca de ahí en ese lavado de autos alguien ha pintado un mural con un profundo mensaje recordando a los "dueños" de animales no dejar a sus amigos abandonados. Son una parte esencial del alma de la ciudad.\n\n----\n\nthumb_hongo1.jpg\n<- original\n\nEn medio del césped podado una vez por semana, estos hongos se las arreglan para nacer, crecer, abrirse como sombreros dorados brillantes, esparcir sus "semillas" (o más concretamente esporas) y marchitarse en un solo día.\n\nthumb_estanque1.jpg\n<- original\n\nApacible estanque con plantas e insectos flotando.\n\n----\n\nthumb_revancha1.jpg\n<- original\n\nEste mural me recuerda al coronavirus y su relación con el trato a la naturaleza.\n\n----\n\nthumb_Llojeta-noche1.jpg\n<- original\n\nthumb_Llojeta-noche2.jpg\n<- original\n\nComenzando a anochecer por Bajo Llojeta, una zona en la ciudad de La Paz.\n\n----\n\nthumb_arcoiris1.jpg\n<- original\n\nPensar que todos los arcoíris son literalmente únicos para cada observador. Todos estamos en posiciones diferentes y tenemos una percepción única. Este sería el captado por una cámara digital ;)\n', ['fotos', 'poemas'])

]]>
El nodo en la zona norte https://rmgss.net/posts/el-nodo-en-la-zona-norte https://rmgss.net/posts/el-nodo-en-la-zona-norte Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia LaOtraRed , redes_libres ('Estamos construyendo LaOtraRed en la ciudad de La Paz, como son las etapas iniciales es difícil encontrar lugares donde poner nodos y así enlazarnos.\n\nEn esta ocasión, el sábado 1 de Abril nos hemos reunido en casa de Aymatha para asegurar un enlace entre un nodo funcional en Pampahasi.\n\n<a href="../static/imgs/posts/fotos/zona_norte_lp1.jpg">\n <img src="../static/imgs/posts/fotos/thumb_zona_norte_lp1.jpg" title="Vista zona norte La Paz" width="720" heigth="434">\n</a>\n\nVista desde la zona norte de la ciudad de La Paz (se ve como la lluvia viene acercándose).\n\nNo hemos tenido las condiciones más adecuadas, primero se puso a llover fuerte, luego empezó a lloviznar. En plena llovizna nos subimos al techo de la casa de Aymatha para apuntar el enrutador hacia pampahasi y asegurar otro enlace para la red distribuida.\n\n<table width="59%">\n<tr>\n<td><img src="../static/imgs/posts/nano_m5_mastil1.jpg">\n El enrutador Nano station m5, este tiene una antena direccional incluída para hacer enlaces de larga distancia.\n</td>\n<td>\n <img src="../static/imgs/posts/routers_lor_1.jpg" width="362" heigth="233">\n <br>\n Dos enrutadores pequeños que serán usados por Aymatha en su red interna (Estos no son necesarios para montar un nodo)\n </td>\n</tr>\n</table>\n\nLuego de colocarle software libre y configurar los aparatos, empezamos a buscar la señal wifi en 5Ghz lapaz.laotrared.net que la transmite el nodo Gauss en la zona de Pampahasi.\n\nLa encontramos y tratamos de conectarnos, pero la potencia de la señal era a lo mejor de -83 dBm lo que no permite un enlace estable.\n\n \nA la fecha 3 de Abril de 2017, existen 3 nodos en LaOtraRed La Paz:\n\n- Nodo Sopocachi I (Zona de Sopocachi)\n- Nodo Gauss (Zona de Pampahasi)\n- Nodo Chersky (Barrio Gráfico, cerca de Villa Fátima)\n\nSólo el nodo Sopocachi I y el Nodo Gauss tienen conexión y la idea era agregar el nodo en la casa de Aymatha ubicado en la zona Norte de La Paz (como a 5 Km del nodo Gauss) para extender la conexión y empezar a distribuirla en la zona Norte.\n\nEn los siguientes días vamos a intentar mover las antenas en el nodo Gauss para asegurar el enlace pero puede que esto no funcione.\n\nNecesitamos asegurar más nodos para extender la red libre y de control ciudadano :)\n\nSi quieres ayudar poniendo un nodo o sugiriendo uno, hazlo en el foro https://foro.laotrared.net/ toda la comunidad de LaOtraRed estará atenta.\n\n\n\n\n', ['LaOtraRed', 'redes_libres'])

]]>
Construyendo Babeld para enrutadores https://rmgss.net/posts/construyendo-Babeld-para-enrutadores https://rmgss.net/posts/construyendo-Babeld-para-enrutadores Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia proyectos , tutoriales ('Aquí se muestra una manera de construir el programa Babeld mediante compilación cruzada para enrutadores con el sistema operativo LEDE. \n\nterm.png Babeld que es una implementación del protocolo de enrutamiento Babel escrito en lenguage C, se utliza frecuentemente en enrutadores de redes inlámbricas en malla que crecen y se gestionan automáticamente.\n\nContenido:\n\n Como construir programa Babeld para enrutadores de la rama ar71xx que tengan el sistema operativo LEDE por ejemplo para el enrutador TL-MR3020 o TL-MR3040.\n\n Como construir Babeld-lor para enrutadores de la rama ar71xx, Babeld-lor que es una implementación de un método de autenticación para el protocolo Babel que he estado probando y desarrollando.\n\n \nPara poder obtener el ejecutable de Babeld (construirlo) y que se pueda ejecutar en un enrutador básicamente se necesita:\n\n Compilador cruzado Cross compiler de lenguage C.\n Enlazador, bibliotecas y otros utilitarios para lenguage C.\n\n \nComo queremos que el programa se ejecute en un enrutador TL-MR3020, primero debemos obtener el compilador cruzado apropiado. Dentro del Sistema operativo LEDE u Openwrt, el TL-MR3020 esta dentro de la rama objetivo ar71xx.\n\n \nLa primera forma de obtener el cross compiler es descargándolo del repositorio oficial, el proyecto LEDE mantiene un SDK.\n\nEn https://downloads.lede-project.org/releases/17.01.4/targets/ar71xx/generic/ debería haber un archivo que contenga sdk por ejemplo: lede-sdk-17.01.4-ar71xx-generic_gcc-5.4.0_musl-1.1.16.Linux-x86_64.tar.xz.\n\nEn la wiki de LEDE se describe mejor el SDK, básicamente es una cadena de herramientas (toolchain) para hacer compilación cruzada y construir programas para una determinada plataforma objetivo (en nuestro caso ar71xx).\n\nLuego debemos descomprimir este archivo, que contiene el toolchain que necesitamos.\n\n \nSi lo que quieres es construir todo incluyendo el SDK, puedes usar Build root. El proceso de construcción lo he descrito en el post: Construir firmware para enrutadores con Buildroot, no olvides marcar la opción: Build the ... SDK.\n\nUna vez termine el largo proceso de construcción, hay que ubicarse en bin/targets/ar71xx/generic donde debería estar un archivo comprimido con el SDK recién construido.\n\n--> En general, es preferible usar la primera forma y sólo descargar el SDK precompilado desde el repositorio oficial de LEDE.\n\n \nEl código fuente de Babeld se puede obtener desde https://www.irif.fr/~jch/software/files/babeld-1.8.0.tar.gz o descargando la versión de desarrollo con:\n\n git clone git://github.com/jech/babeld.git\n\nCon todo lo necesario, ya podemos empezar a construir Babeld.\n\n<hr id="Babeld">\n \nPrimero como en todo programa nos ubicamos en el directorio raíz del código fuente, luego de clonar u obtener Babeld en el directorio raíz existe un archivo Makefile, con instrucciones básicas para la construcción del programa.\n\nEn el Makefile, la regla con la instrucción de compilación:\n\n babeld: $(OBJS)\n $(CC) $(CFLAGS) $(LDFLAGS) -o babeld $(OBJS) $(LDLIBS)\n\nAhí la variable $(CC) es la que se puede reemplazar para que se utilice el compilador cruzado del SDK de LEDE.\n\nBabeld no utiliza bibliotecas adicionales y todas las necesarias (libc) vienen en el SDK asi que para construirlo solamente apuntamos al compilador cruzado del SDK que tenemos, esto se hace con el comando:\n\nmake CC=/ubicacion/del/SKD/staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl/bin/mips-openwrt-linux-musl-gcc PLATFORM_DEFINES=\&#39;-march=mips32\&#39;\n\nLa parte que dice /ubicacion/del/SKD/ apunta a la ubicación en nuestro compuador donde descomprimimos el SDK, ahí dentro esta staging_dir/ y ahí debería estar el toolchain para la arquitectura, en este caso mips_24kc.\n\nPara comprobar que en este directorio se encuentra el compilador cruzado:\n\n :::bash\n ./ubicacion/del/SKD/staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl/bin/mips-openwrt-linux-gcc --version\n\nUsaremos el compilador gcc-5.4.0 cuyo archivo ejecutable es mips-openwrt-linux-gcc y si en la pantalla aparece un mensaje con la version 5.4.0 el archivo es correcto, por ejemplo:\n\n mips-openwrt-linux-gcc (LEDE GCC 5.4.0 r3664-4124847) 5.4.0\n\nAhora, construimos con:\n\n :::bash\n make CC=/ubicacion/del/SKD/staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl/bin/mips-openwrt-linux-musl-gcc \\n\tPLATFORM_DEFINES=\'-march=mips32\'\n\nEl proceso debería terminar rápidamente y debería haber un archivo ejecutable con nombre babeld. Este archivo se puede ejecutar en un enrutador con LEDE, para comprobar que la arquitectura objetivo del ejecutable es correcta usamos:\n\n :::bash\n file babeld\n\nQue debería mostrar:\n\n :::bash\n babeld: ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked, interpreter /lib/ld-musl-mips-sf.so.1, not stripped\n\nAhora solo hace falta probarlo copiando el archivo babeld al enrutador digamos en el directorio /tmp/ y luego ejecutarlo con:\n\n ./babeld\n\n--> De esta forma hemos usado el compilador cruzado directamente para construir desde el código fuente, de forma similar se construyen programas para los enrutadores y cada programa puede tener sus necesidades específicas. Pero con esto podríamos modificar el código de Babeld y probar estos cambios directamente en el enrutador.\n\n<hr id="Babeld-lor">\n \nAhora podemos usar el SDK para construir una versión modificada de Babeld llamada Babeld-lor, esta versión en desarrollo pretende implementar un método de autenticación en el protocolo Babel para protegerlo contra ataques de suplantación de identidad.\n\n \nBabeld-lor utiliza descifrado RSA y una clave pública RSA generada por una entidad central para autenticación, por eso es necesario copiar o tener instalada la biblioteca mbedtls en el enrutador.\n\nUna forma sencilla de instalarla es mediante el mediante manejador de paquetes de LEDE, en el enrutador:\n\n opkg install libmbedtls\n\nPara más detalles sobre esta biblioteca revisa este post como construir mbedtls.\n\n \nSe puede copiar a la partición /tmp los archivos necesarios para la biblioteca mbedtls. El siguiente procedimiento es una solución temporal y cada que el enrutador se reinicie se debe volver a repetir cierta parte.\n\n :::bash\n # Conectándose al enrutador que digamos tiene la IP: 192.168.1.1\n ssh root@192.168.1.1\n\t# una vez dentro el enrutador\n ### obteniendo mbdetls \n cd /tmp/\n wget https://downloads.lede-project.org/releases/17.01.4/packages/mips_24kc/base/libmbedtls_2.6.0-1_mips_24kc.ipk\n mv libmbedtls_2.6.0-1_mips_24kc.ipk libmbedtls_2.6.0-1_mips_24kc.tar.gz\n tar -zxvf libmbedtls_2.6.0-1_mips_24kc.tar.gz\n tar -zxvf data.tar.gz\n cd usr/lib\n\tmkdir /tmp/mbedtls\n cp libmbedcrypto.so.0 libmbedtls.so.10 libmbedx509.so.0 /tmp/mbedtls\n ######\n # creando un enlace simbolico para que el sistema apunte a los archivos correctos\n cd /usr/lib\n ln -s /usr/lib/libmbedcrypto.so /tmp/mbedtls/libmbedcrypto.so.0\n ln -s /usr/lib/libmbedtls.so /tmp/mbedtls/libmbedtls.so.10\n ln -s /usr/lib/libmbedx509.so /tmp/mbedtls/libmbedx509.so.0\n\nAhora la biblioteca libmbedtls esta instalada temporalmente en el sistema, pero al apagar el equipo la partición temporal /tmp se vaciará y tiene que repetir la parte que dice "### obteniendo mbdtls".\n\n \nComo Babeld-lor utiliza una clave pública RSA de una entidad central, es necesario que el enrutador la tenga para poder descifrar las actualizaciones de rutas y autenticarlas. También, se requiere que cada enrutador cuente con un conjunto de tokens de autenticación.\n\n \nPrimero se debe crear el par de claves pública y privada y lo podríamos hacer en nuestra computadora, esta clave debe ser creada con la biblioteca mbedtls, una forma rápida de construir mbedtls está la sección "construyendo mbedtls" del post: probando mbedtls\n\nUna vez lo tengamos, en el directorio del código fuente de mbedtls:\n\n cd programs/pkey\n ./gen_key\n\nQue generará el par de claves de la entidad central.\n\nAhora podemos utilizar este script para generar tokens cifrados para direcciones IP dadas:\n\n :::bash\n DIR_BASE=$PWD\n DIR_RSA=/Ruta/donde/esta/mbedtls-2.4.2/programs/pkey # modificar esto segun convenga\n ARCH_TOKEN=$DIR_RSA/result-enc.txt\n DIR_DEST=$DIR_BASE/tokens\n PREFIJO=$1\n \n echo "preparando para prefijo $PREFIJO"\n \n if [ ! -e tokens ]\n then\n mkdir tokens\n fi\n \n if [ -e $DIR_DEST/$PREFIJO.ctxt ]\n then\n echo "borrando tokens/$PREFIJO.ctxt"\n rm $DIR_DEST/$PREFIJO.ctxt\n fi\n \n for((i=0;i<100;i++))\n do\n B=$(head -c 19 /dev/urandom | sha1sum | head -c 6 | tr "[a-z]" "[0-9]")\n if [ $i -lt "10" ]\n then\n CAD=$PREFIJO""$B"0"$i\n else\n CAD=$PREFIJO""$B$i\n fi\n \n echo "mensaje: $CAD"\n \n # cifrando\n cd $DIR_RSA\n ./rsa_encrypt_con_clave_privada $CAD > /dev/null\n #$PPK "$CAD" 2> /dev/null\n TOKEN=$(cat $ARCH_TOKEN | tr -d \' \')\n #echo "TOKEN: $TOKEN"\n # quitando newlines\n while read -r linea\n do\n L=$(echo "$linea"| tr -d \' \' )\n #echo -n "$L"\n echo -n "$L" >> $DIR_DEST/$PREFIJO.txt\n done < $ARCH_TOKEN\n echo >> $DIR_DEST/$PREFIJO.txt\n done\n \n # eliminando ^M\n cat $DIR_DEST/$PREFIJO.txt | tr -d $\'\r\' > $DIR_DEST/$PREFIJO.ctxt\n rm $DIR_DEST/$PREFIJO.txt\n \n cp $DIR_RSA/rsa_pub.txt $DIR_DEST/\n \n echo "Hecho."\n exit 0\n\nGuardamos este script como digamos "gk.sh", ahora creamos los tokens con:\n\n :::bash\n bash gk.sh 192.168.1.1\n\nQue generará un total de 100 tokens de autenticación para la dirección ip 192.168.1.1 en una carpeta tokens\n\n \nAhora necesitamos descargar el código fuente de Babeld-lor, por ejemplo de la rama de desarrollo forked-updateTLV:\n\n git clone https://notabug.org/strysg/babeld-lor/src/forked-updateTLV\n\nEste repositorio contiene un Makefile para compilar usando mbedtls y un SDK.\n\nTambién un script llamado set-up.sh que apunta a un SDK en el directorio actual y como podríamos tener el SDK de LEDE en otro directorio podemos crear un enlace simbólico al SDK con:\n\n ln -s /ruta/donde/esta-el-SDK/ SDK\n\nEl script set-up.sh extrae la clave pública, los tokens de autenticación, el ejecutable construido y los copia al enrutador en la carpeta /tmp, no instala Babeld-lor ya que estamos solamente haciendo una prueba.\n\nAntes de ejecutar el script deberíamos copiar el contenido de la carpeta tokens donde se generaron las claves de autenticación al directorio donde descargamos Babeld-lor, concretamente en un directorio pruebas/tokens dentro el código fuente de Babeld-lor.\n\nFinalmente para construir babeld-lor usamos:\n\n ./set-up.sh export 192.168.1.1\n\nQue construirá el programa usando el SDK, y copiará lo necesario al enrutador con la direccíon IP 192.168.1.1.\n\nPara probar que esto funciona en el enrutador:\n\n :::bash\n cd /tmp/\n # para que babeld-lor exporte las rutas por la interfaz wifi wlan0\n ./babeld wlan0\n # o si queremos mas verbosidad\n ./babeld -d 2 wlan0\n # Para utlizar el archivo de configuracion por defecto\n ./babeld -c /var/etc/babeld.conf -d 2\n\nSi funciona ahora se puede probar y modificar Babeld-lor a gusto.\n\n', ['proyectos', 'tutoriales'])

]]>
Construir firmware para enrutadores con buildroot https://rmgss.net/posts/construir-firmware-para-enrutadores-con-buildroot https://rmgss.net/posts/construir-firmware-para-enrutadores-con-buildroot Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia software , tutoriales , redes_libres ('Aquí se muestra una forma de construir una imagen de firmware para grabarla en un dispositivo enrutador o en uno embebido, todo esto usando el sistema de construcción "Build root" de sistemas operativos libres como openwrt, lede o librecmc.\n\nEn otras palabras, construir/compilar el sistema operativo manualmente y ponerlo en un enrutador compatible.\n\nAlgunas ventajas de usar "Build root" son:\n\n La generación de la imagen es altamente personalizable y tendrá los programas que escojamos en el proceso de construcción.\n Construir el conjunto de paquetes e incluirlos en la imagen resultante o en paquetes por separado.\n Constuir y poder usar la cadena de herramientas (en inglés toolchain) para hacer compilación cruzada.\n Obtener el SDK para hacer compilación cruzada desde otra computadora.\n Obtener el Image generator para poder cocinar imágenes de firmware más rápidamente desde otra computadora.\n Constuir los programas y mantenerlos en paquetes instalables o incluirlos por defecto en la imagen generada.\n Generar un repositorio descargable de paquetes e imágenes de firmware personalizadas generadas como este: https://librecmc.rmgss.net\n Hacer modificaciones/mejoras al sistema operativo resultante.\n\nEste alto nivel de flexibilidad es justo lo que se necesita para proyectos de redes libres o para personas que necesitan hacer modificaciones a nivel de sistema operativo en sistemas embebidos.\n\n \nBuild root, es una colección de Makefiles y parches que permiten fácilmente generar una cadena de herramientas y el sistema de archivos raíz para sistemas embebidos, usando una biblioteca C estándar y descargando el kernel linux. [^1]\n\nEste sistema de construcción tiene una interfaz cómoda que permite seleccionar los programas que necesitemos y los dispositivos objetivos. Los Makefiles son archivos con recetas de construcción de software, y el sistema de construcción Build root los utiliza para constuir los programas que seleccionemos.\n\n-- Para el resto de este tutorial se utilizará el sistema de construcción de librecmc, librecmc es una distribución GNU/Linux para sistemas embebidos que contiene solamente software libre.\n\n \nHardware:\n\n De 8 a 10 GB de espacio en disco duro.\n 4 GB de RAM , aunque yo lo he probado con 2 GB de RAM pero ha tardado mucho.\n\nSoftware:\n\n Sistema operativo GNU/Linux\n GNU GCC / GCC-C++\n build-essential\n flex, gawk, wget, unzip\n ncurses-dev (ncurses5-devel, etc..)\n libghc-zlib-dev, libssl-dev, patch, perl5, subversion, git-core\n\nInternet:\n\nUna buena conexión a internet por que la descarga puede tranquilamente superar los 2 GB, en mi caso al no tener internet en casa he usado un Servidor con buena conexión.\n\nAquí esta la referencia oficial.\n\n \nSe instalan los paquetes build-essential, gcc, git-core, etc como se indican en los prerequisitos.\n\nLuego queda descargar el sistema de construcción en si mismo como se indica en el manual de librecmc:\n\n :::bash\n\tgit clone https://gogs.librecmc.org/libreCMC/libreCMC.git\n\nEsto descargará la colección de Makefiles y parches necesarias para el proceso de construcción, la estructura de directorios descargada se divide en carpetas:\n\n tools: Contiene las instrucciones para descargar las herramientas de construcción para la imagen.\n toolchain: Contiene las instrucciones para descargar las cabeceras del kernel, la biblioteca C, binutils, el compilador y el depurador.\n target: Instrucciones de construción para la imagen de fimrware y para el kernel.\n package: Los makefiles y parches para todos los paquetes principales, estos Makefiles tienen su propia sintaxis diferente a la herramienta make.\n scripts: Scripts perl que se encargan del manejo de paquetes openwrt.\n dl: Directorio donde se descargan los tarballs (archivos .tar) con código fuente.\n build_dir: Donde todas las herramientas user-space serán "cross-compiladas".\n bin: Directorio donde se guardan las imágenes de firmware generedas y también los paquetes .ipk\n\nReferencia utilizada: http://www.ccs.neu.edu/home/noubir/Courses/CS6710/S12/material/OpenWrt_Dev_Tutorial.pdf\n\n \nEntramos al directorio donde hemos clonado el código de buildroot, cd libreCMC y ejecutamos:\n\n :::bash\n ./scripts/feeds update -a\n\t./scripts/feeds install -a\n\nEsto actualizará la lista de todos los paquetes y hará que sean disponibles para seleccionar en el menú de construcción.\n\n \nUtilizamos\n\n :::bash\n make menuconfig\n\t\nEsto desplegará un menú con interfaz en modo texto cómodo para configurar la construcción.\n\nmake menuconfig\n\nNavegar por el menú se hace con las flechas del teclado, presionando enter para ingresar a una sección, esc para salir al anterior, espacio para seleccionar un programa para que se incluya en la imagen generada, m para modularizar o marcar un programa y que se genere un paquete .ipk en lugar de incluirlo en la imagen generda por defecto.\n\n \nEl menú desplegado tiene varias secciones y debemos empezar indicando la arquitectura objetivo, esta debe ser la arquitectura del microprocesador del router o dispositivo embebido para el que queremos crear una imagen de firmware.\n\nPara este ejemplo construiremos la imagen para el enrutador TP-Link TL-MR3020, ingresamos al menu "Target System" y marcamos Atheros AR7xxx/AR9xxx que corresponde a la arquitectura para este enrutador.\n\nLuego hay que especificar el objetivo específico en este caso en el menu Target Profile, seleccionaremos TP-LINK TL-MR3020.\n\n \nAntes de continuar para seleccionar los programas que contendrá la imagen vamos a seleccionar las opciones:\n\n Build the librecmc Image Builder: generará el Image Builder para poder descargarlo y generar imágenes desde otra computadora y más rapidamente.\n Inlcude package repositories: Para que el Image Builder generado use a repositorios externos para paquetes .ipk.\n Build the librecmc SDK: Construirá el SDK para poder descargarlo y usarlo en otra computadora, el SDK es útil para compilar programas para el enrutador objetivo.\n Package the librecmc-based toolchain: Empaquetar el toolchain (cadena de herramientas).\n\nEste paso es opcional y la imagen se generaría de igual forma incluso si no lo seleccionamos.\n\n \nHay una gran variedad de programas que podemos incluir, por defecto están seleccionados programas básicos para utlizar el dispositvo y los estrictamente necesarios como libc y algunos controladores no pueden excluirse de la selección ya que el menú no da esa opción.\n\nLos programas están bien clasificados por secciones y debemos ingresar a cada una de ellas para seleccionarlos, por ejemplo en Base System están marcados libc, busybox, uci, firewall, etc. Se puede prescindir de algunos de ellos por ejemplo no incluir el firewall desmarcándolo.\n\nLa selección de programas es enteramente nuestra responsabilidad y podemos experimentar con muchas opciones, por ejemplo no incluir una interfaz de configuración luci, no incluir controladores para wifi, no incluir un servidor dhcp, incluir módulos para controlar dispositovs usb, manejar los leds del aparato, incluir utilidades para monitorizar tráfico de red, estadísticas de conexión como iperf3, etc. Las combinaciones serán a nuestra elección y tenemos toda la libertad de probar bajo nuestro propio riesgo.\n\nLo que se debe tener en cuenta es que no todos los paquetes pueden ser incluidos en la imagen del firmware generada esto por limitaciones de espacio del mismo dispositivo. En el caso del TL-MR3020 este sólo cuenta con 4MB de memoria FLASH, y no se puede hacer caber todos esos programas en tan pequeño espacio de almacenamiento.\n\nPor eso existe la opción de modularizar los programas, esto es presionando M para que estos programas se empaquten como .ipk y luego se puedan instalar manualmente con opkg install nombre_del_paquete en el dipositivo una vez se haya transferido la imagen y si tiene espacio disponible.\n\nUna vez termines de seleccionar los programas presiona esc hasta salir y aparecerá un mensaje que pregunta si va a guardar las configuraciones y tenemos que indicarle que SI lo haga. Estas configuraciones se guardarán en un archivo con nombre .config en el mismo directorio y es buena idea hacerle copias para recuperar configuraciones.\n\n \nPara aprovechar al máximo estos 4MB de memoria donde se debe almacenar el sistema operativo base y programas, openwrt y otros como librecmc y lede utlizan un layout especial en la memoria [^2].\n\nDurante el arranque del sistema cuando instalemos la imagen generada, se crea un sistema de archivos de sólo lectura squashfs para comprimir el sistema base y un sistema de archivos JFFS2 de lectura/escritura para datos adicionales. Ambos se combinan y montan en un punto de montaje /overlay, para el usuario del sistema se ve como un sistema de archivos único y usable. [^3]\n\nSquashFS es un sistema de archivos de sólo lectura y está pensado para su uso como sistema de archivos genérico de solo lectura y en dispositivos de bloques/sistemas de memoria limitados [^4], en SquashFS además se incluye un sistema de recuperación en caso de "mal configurar" el router, con esta utilidad se puede entrar a un modo de recuperación para arreglar el sistema. Además algunos programas y datos de SquashFS y JFFS2 se descomprimen en la memoria RAM para ser ejecutados desde alli. En el caso del TL-MR3020 se tiene 32 MB de RAM.\n\nPuedes revisar https://wiki.openwrt.org/doc/techref/flash.layout para ver la distrubición de la memoria FLASH con mayor detalle.\n\n \nAhora solo queda emepezar la construcción y se hace con:\n\n :::bash\n\tmake\n\nO para una visión mucho más completa de lo que pasa:\n\n :::bash\n make V=s\n\nEste proceso puede tardar mucho y es un trabajo intensivo para el CPU que puede tomar muchas horas dependiendo la cantidad de programas seleccionados y dispositivos objetivos.\n\nSi quieres dejar este trabajo como tarea en segundo plano y además necesitas cerrar la terminal actual, puedes utilizar:\n\n nohup make &\n\t\nQue enviará el proceso de construcción en segundo plano y continuará incluso si cerramos la terminal actual, además puedes usar ionice para aumentar/reducir prioridad a la tarea o cpulimit para limitar el uso del CPU.\n\nEl proceso puede fallar y si así lo hace debes usar la opción make V=s para ver el detalle.\n\nCuando hagas make, se hará:\n\n1. Construir - automake , autoconf, sed, cmake.\n2. Construir los binutils - ld, as ,etc\n3. Construir el toolchain - gcc, g++, etc\n4. Construir los módulos del kernel linux.\n5. Constuir los paquetes base y feed.\n6. Constuir la imagen del kernel.\n7. Generar la imagen del firmware.\n\nReferencia: https://wiki.openwrt.org/about/toolchain#openwrt_build_system_build_sequence\n\n \nLa imagen generada debería estar en la carpeta bin/targets del directorio raíz donde hemos descargado Build Root, más concretamente targets/ar71xx/ por ser la arquitectura ar71xx.\n\nUn ejemplo del resultado está en https://librecmc.rmgss.net/\n\nAhora seleccionaremos la imagen con nombre librecmc-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin, cuando termina -factory.bin se trata de la imagen que podemos grabar en el enrutador TL-MR3020 para reemplazar el sistema operativo actual.\n\nEl proceso de grabación no esta contemplado en este tutorial pero puedes revisar los siguientes enlaces:\n\n https://wiki.lapaz.laotrared.net/guias/instalar_openwrt#paso_0\n http://lamurraydemas.blogspot.com/2014/03/actualizar-tp-link-tl-mr3020-con-openwrt.html\n http://kurup87.blogspot.com/2014/09/installing-open-wrt-in-tp-link-mr3020.html\n\n\n----\n\n \nEl proceso de construción no se limita a generar la imagen de firmware, tambíen tengamos en cuenta lo siguiente:\n\n staging_dir/: Contiene el compilador y el toolchain (la cadena de herramientas) para la arquitectura seleccionada, el toolchain está en este caso en staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl-1.1.16/bin/ y podemos usarlo para hacer compilación cruzada y crear/construir programas para que se ejecuten en el router.\n bin/packages/: Contiene los paquetes .ipk que hemos seleccionado para instalarlos manualmente.\n bin/targets/: Contiene el Image Generator o Image Builder para construir firmware desde otras computadoras con GNU/Linux, usando los paquetes y programas que acabamos de construir, también contiene el SDK para usarlo en otras computadoras con GNU/Linux y construir/compilar programas para el dispositivo objetivo que hemos selccionado.\n* dl/: Contiene los tarballs con el código fuente de los programas seleccionados.\n\nCon Build root hemos generado una serie de herramientas para generar sistemas operativos a medida gracias a las herramientas libres que proveen proyectos como openwrt, lede o librecmc.\n\nAdemás tenemos la posiblidad de tener el control y conocimiento entero de todo el sofware que opera en el enrutador.\n\nEspero este tutorial te haya servido, lo actualizaré con información adicional o haciendo correcciones.\n\n[^1]: https://wiki.openwrt.org/about/toolchain\n[^2]: https://wiki.openwrt.org/doc/techref/flash.layout\n[^3]: https://wiki.openwrt.org/doc/techref/filesystems#boot_process\n[^4]: http://squashfs.sourceforge.net/\n\n', ['software', 'tutoriales', 'redes_libres'])

]]>
Accediendo a equipos de casa mediante vpn wireguard https://rmgss.net/posts/accediendo-a-equipos-de-casa-mediante-vpn-wireguard https://rmgss.net/posts/accediendo-a-equipos-de-casa-mediante-vpn-wireguard Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia software , tutoriales ('Una forma sencilla de acceder a equipos de casa que tienen conexión a internet pero no tienen IP pública. Se usa software para redes privadas virtuales VPN, en este caso Wireguard.\n\nDe esta manera podemos acceder a un equipo por ejemplo en nuestra casa usando como "puente" a un servidor con IP pública, la ventaja de usar una VPN como Wireguard es que es muy rápida, fácil de configurar, usa criptografía asimétrica y además se pueden agregar pares (equipos en la vpn) de manera sencilla. Wireguard establece un túnel de conexiones fu3ertemente cifradas entre pares.\n\n \nvpn-1\n\n \n- Un servidor con IP pública al que tengamos acceso.\n- Una computadora en casa con conexión a internet a la que queremos acceder.\n- Se asume que tanto el servidor como la computadora funcionan con alguna distribución de GNU/Linux, aunque wireguard está disponible para otros sistemas operativos.\n\n \nLa guía oficial están en https://www.wireguard.com/install/, sin embargo para no agregar ppas a nuestro repositorio de paquetes, lo conveniente es instalar construyendo desde el código fuente, los pasos que seguí:\n\n :::bash\n sudo apt-get install libmnl-dev libelf-dev linux-headers-$(uname -r) build-essential pkg-config\n\t# clonando el repositorio\n\tgit clone https://git.zx2c4.com/WireGuard\n\t# construyendo\n\tcd WireGuard/src\n\tmake\n\t# instalando en el sistema\n\tsudo make install\n\n \nUsaremos archivos de configuración, recordando que para esta vpn sólo habrán dos pares; el servidor y la computadora en casa.\n\nPara una guía mas detallada se puede seguir https://www.wireguard.com/quickstart/\n\n \nPrimero se deben generar el par de claves pública y privada usando wireguard en ambos equipos.\n\n :::bash\n\t# clave privada\n sudo wg genkey > private.txt\n\t# clave publica\n\tsudo wg pubkey < private.txt > public.txt\n\nUsaremos el contenido de private.txt y public.txt para copiarlo en los archivos de configuración y permitir el acceso de los equipos a nuestra VPN.\n\n \nAhora creamos el archivo /etc/wireguard/10-mivpn.conf donde \n\n [Interface]\n\t# La clave privada es el contenido del archivo private.txt \n PrivateKey = eI0Tf4v...\n ListenPort = 10100\n\n # Peer equipo de casa\n [Peer]\n\t# Aqui copiamos la llave publica del equipo de casa (archivo public.txt)\n PublicKey = Aoc0F8e...\n # indicamos que se aceptan conexiones de cualquier IP\n AllowedIPs = 0.0.0.0/0\n\nLuego es conveniente crear un script bash para configurar la interfaz de red y aplicar las configuraciones a wireguard directamente. Por ejemplo en el script setup-vpn.sh:\n\n :::bash\n\t#!/bin/bash\n\tinterface=wg0\n\tconf=/etc/wireguard/10-mivpn.conf\n # configuracion de interfaces de red del tipo "wireguard"\n\tip link del dev $interface 2>/dev/null || true\n\tip link add $interface type wireguard\n\tip addr add 50.50.50.49 dev $interface\n\tip link set $interface up\n # aplicando configuracion a wireguard\n\twg setconf $interface $conf\n\twg show\n\n\texit 0\n\nAhora ejecutamos el script para configurar las interfaces de red y configurar la VPN.\n\n :::bash\n\tsudo ./setup-vpn.sh\n\n \nCreamos el archivo /etc/wireguard/10-mivpn.conf con:\n\n [Interface]\n\t# La clave privada es el contenido del archivo private.txt \n PrivateKey = C8M-25...\n ListenPort = 10100\n\n # Peer Servidor\n [Peer]\n\t# Aqui copiamos la llave publica del servidor (archivo public.txt)\n PublicKey = 9Fvpn4...\n # indicamos que se aceptan conexiones de cualquier IP\n AllowedIPs = 0.0.0.0/0\n\t# indicamos la IP publica del servidor y el puerto en que este escucha\n\tEndpoint = <IP pública del servidor>:10100\n\t# ajustamos intervalo de tiempo para enviar un paquete para mantener la conexion\n\tPersistentKeepalive = 120\n\nDe igual manera creamos un script para levantar la vpn fácilmente por ejemplo setup-vpn.sh:\n\n :::bash\n\t#!/bin/bash\n\tinterface=wg0\n\tconf=/etc/wireguard/10-mivpn.conf\n # configuracion de interfaces de red del tipo "wireguard"\n\tip link del dev $interface 2>/dev/null || true\n\tip link add $interface type wireguard\n # importante la mascara en este caso /24\n\tip addr add 50.50.50.50/24 dev $interface\n\tip link set $interface up\n # aplicando configuracion a wireguard\n\twg setconf $interface $conf\n\twg show\n\n\texit 0\n\nLuego ejecutamos el script sudo bash setup-vpn.sh\n\n \nPodemos comprobar en ambos equipos la configuración de wireguard con:\n\n sudo wg show\n\t\nQue debería mostrar los cambios que hemos aplicado, es importante también asegurarse que las interfaces de red estén funcionales con:\n\n ip a\n\t\nQue debería mostrarnos una interfaz del tipo wg0 con ipv4 50.50.50.x según sea el servidor o la computadora de casa.\n\nFinalmente abrimos la conexión de la VPN, desde el equipo de casa con:\n\n :::bash\n\tping 50.50.50.49\n\t\nQue debería responder positivamente. Hay que notar que el único equipo capaz de abrir la conexión en este caso es la computadora de casa por que sabe como llegar al servidor, esto por la línea Endpoint = &lt;IP pública del servidor&gt;:10100 en su archivo de configuración. Como este apunta a una IP pública accesible por internet, el equipo de casa puede llegar al servidor y al recibir las peticiones, wireguard en el servidor también establece un túnel hacia el equipo de casa.\n\nPara renovar automáticamente la conexión se usa PersistentKeepalive = 120 para enviar un paquete cada 120 segundos, también por ejemplo en /etc/crontab del equipo de casa se puuede hacer que se envien peticiones ICMP (ping) al servidor para que vaya constantemente reavivando la conexión y guardando en archivos el resultado del intento de conexión.\n\nFinalmente si el resultado es positivo ya podemos conectarnos al equipo de casa a través del servidor primero, solo bastaría acceder al servidor desde cualquier lugar y apuntar al equipo de casa (IP: 50.50.50.50) para establecer comunicación "directa".\n\nHay gran cantidad de usos para este tipo de conexiones, por ejemplo servir una página web alojada en un equipo en nuestra casa y usar un servidor sólo como proxy que dirija todas las peticiones desde internet a nuestro equipo de casa, y las respuestas del equipo de casa hacia internet, los ejemplos de uso son muy variados, por ejemplo salir a internet a través de VPN. Más allá de ellos, espero esta guía te haya servido.\n\n\n\n', ['software', 'tutoriales'])

]]>
Sincronizando contenidos remotos con Syncthing https://rmgss.net/posts/Sincronizando-contenidos-remotos-con-Syncthing https://rmgss.net/posts/Sincronizando-contenidos-remotos-con-Syncthing Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia tutorial , software ('Muchas veces tenemos la necesidad de mantener copias de nuestros archivos digitales y existe una forma sencilla y descentralizada usando Syncthing.\n\nSyncthing cluster\n\nEste post muestra una forma de instalación y configuración sencilla de Syncthing para tener varias copias de nuestros archivos en equipos propios.\n\n \nSyncthing es un programa de sincronización de archivos que no requiere un servidor centralizado y usa una estrategia p2p donde los archivos se sincronizan entre los participantes directamente. En Syncthing los dispositivos participantes forman un cluster donde cada dispositivo tiene una o mas carpetas que sincroniza con los demás dispositivos, mediante protocolos específicos estos se descubren, intercambian información sobre sus carpetas y sincronizan sus archivos.\n\nSyncthing funciona para varios sistemas operativos entre ellos, Windows, GNU/Linux, Android, etc. y cuenta con una cómoda interfaz web de configuración.\n\n \nEsquema syncthing 1\n\nPara esta demostración sincronizaremos 3 equipos: una laptop, una pc de escritorio y un servidor remoto. La laptop y la pc de escritorio están dentro una red de área local (LAN) y el servidor remoto en internet y tiene un dominio de ejemplo servidor.algo.net.\n\n \nSyncthing se puede instalar en diferentes sistemas operativos como Windows y android, en un sistema basado en debian se puede instalar en cada equipo con:\n\n :::bash\n sudo apt install syncthing\n\nCada dispositivo en el cluster syncthing tiene un device id o identificador único que se genera a partir de certificados digitales, syncthing los puede generar y para este ejemplo usaremos el directorio de guardado por defecto.\n\n :::bash\n # crea un directorio para syncthing\n mkdir ~/.config/syncthing\n \n # genera un nuevo device id y los certificados correspondientes\n syncthing -generate=~/.config/syncthing\n\t\n\t# para comprobar el device-id\n\tsyncthing -device-id\n\nDentro de la carpeta ~/.config/syncthing también se generará un archivo de configuración config.xml con configuraciones iniciales. En principio tenía la intención de editar este archivo y agregar las configuraciones ahí directamente, pero tuve dificultades y decidí usar la interfaz gráfica que es muy versátil y fácil de manejar.\n\nPara iniciar syncthing con exponiendo una interfaz gráfica en el navegador usaremos el siguiente comando en cada equipo:\n\n :::bash\n # en la laptop\n syncthing -no-browser -home="~/.config/syncthing/" -verbose\n \n # en la pc de escritorio\n syncthing -no-browser -home="~/.config/syncthing" -verbose \\n\t -gui-address="0.0.0.0:8384"\n \n # en el servidor remoto\n syncthing -no-browser -home="~/.config/syncthing" -verbose \\n\t -gui-address="0.0.0.0:8384"\n\nLa opción -gui-address=&#34;0.0.0.0:8384&#34; inicia una aplicación para atender a peticiones desde un navegador web desde un equipo en cualquier red por eso 0.0.0.0. No es seguro mantener este servidor web escuchando a cualquier equipo ya que cualquier persona podría ingresar, por ello solo mantendremos este acceso para configurar y cuando terminemos de configurar quitaremos el acceso irrestricto.\n\nAhora podemos acceder a cada panel de administración de syncthing en cada equipo, en la laptop lo haríamos desde un navegador web ingresando a http://localhost:8384, en la pc de escritorio sería http://ip-pc-escritorio:8384 y en el servidor remoto asumiendo que esta disponible en el dominio servidor.algo.net desde http://servidor.algo.net:8384.\n\n \nLa interfaz desde el navegador web debería ser:\n\ngui1\n\nIngresaremos a Acciones &gt; Ajustes &gt; General ahí podemos ajustar el nombre del equipo para mejor entendimiento.\n\ngui2\ngui3\n\nHaremos lo mismo con cada dispositivo en este caso nombrando lpatop, pc-escritorio y servidor.\n\n \nSyncthing por defecto define una carpeta y una ruta donde se guardan las carpetas sincronizadas y la llama default folder, se puede cambiar estas rutas y nombres y también agregar mas carpetas pero para esta demostración no modificaremos nada de eso.\n\nPara enlazar dos dispositivos es necesario que ambos conozcan el device id del otro y así puedan conectarse. Para ver este valor en la interfaz ingresamos a Acciones &gt; Mostrar ID.\n\ngui4\ngui5\n\nAhora copiamos el ID que se muestra y usaremos el botón Agregar nuevo dispositivo en los demás equipos para pegar este ID. Podemos marcar las opciones Auto Acept y Default Folder para aceptar contenido del nuevo dispositivo y que carpetas propias compartir con este.\n\ngui6\ngui7\n\nEs importante agregar los dispositivos de esta manera de forma mutua, es decir si agregamos el ID de la laptop en la pc de escritorio, también debemos agregar el ID de la pc de escritorio en la laptop o no se podrá establecer conexión.\n\nUna vez enlazados, en la interfaz gráfica debería mostrarse el nuevo dispositivo agregado.\n\n \nAhora probaremos la sincronización, en el Default Folder de la laptop que en mi caso es /home/usuario/Sync copiaremos algunos archivos, unos segundos después los demás equipos deberían detectar que ha habido un cambio en esta carpeta y empezarán a sincronizar sus contenidos. Cuando esto pase en la interfaz gráfica se mostrará el progreso de la sincronización.\n\nLo mismo pasará cuando por ejemplo agreguemos contenido en el Default Folder del servidor, los demás dispositivos en el cluster detectarán este cambio y en la interfaz gráfica se mostrará el resultado de la sincronización.\n\ngui8\n\n \nHe notado que para que se apliquen los cambios parece ser necesario una vez configurado y probado todo reiniciar syncthing desde la interfaz gráfica (Acciones &gt; Reiniciar) y estos cambios se escribirán en el archivo config.xml en cada dispositivo.\n\n \nEs importante notar que syncthing tiene muchas opciones de configuración, por ejemplo podríamos definir que el equipo servidor sea solamente de respaldo y que los cambios en su carpeta no se propaguen a los demás equipos del cluster. Hay muchas otras opciones como por ejemplo definir una contraseña de acceso a la interfaz gráfica, limitar el ancho de banda para sincronización, excluir carpetas, definir direcciones IP fijas por ejemplo con tcp://ip-equipo, etc. Para mayor información se puede consultar la documentación oficial de syncthing o revisar sus manuales con man syncthing, man syncthing-config y otros.\n\n \nEn la documentación oficial hay ejemplos de como configurar el auto arranque. Si vas a hacer este paso recuerda primero detener cualquier proceso syncthing y no usar la opción -gui-address=&#34;0.0.0.0:8384&#34; a menos que configures buenos credenciales de acceso.\n\nPara este caso usaré systemd y creando el archivo /etc/systemd/system/syncthing@usuario.service se puede iniciar syncthing para que inicie con las configuraciones guardadas en el archivo ~/.config/syncthing/config.xml.\n\n :::conf\n [Unit]\n Description=Syncthing - Open Source Continuous File Synchronization for usuario\n Documentation=man:syncthing(1)\n After=network.target\n\n [Service]\n User=usuario\n ExecStart=/usr/bin/syncthing -home=/home/usuario/.config/syncthing -no-browser -no-restart -logflags=0\n Restart=on-failure\n RestartSec=5\n SuccessExitStatus=3 4\n RestartForceExitStatus=3 4\n\n # Hardening\n ProtectSystem=full\n PrivateTmp=true\n SystemCallArchitectures=native\n MemoryDenyWriteExecute=true\n NoNewPrivileges=true\n\n [Install]\n WantedBy=multi-user.target\n\t\nUna vez creado el archivo es necesario decirle a systemd que habilite este como nuevo servicio de inicio con\n\n :::bash\n systemctl enable syncthing@myuser.service\n systemctl start syncthing@myuser.service\n\t\nEl mismo procedimiento se puede hacer en la pc de escritorio y el servidor.\n\nAYUDA: Si fallas al editar el archivo /etc/systemd/system/syncthing@usuario.service y haces modificaciones para corregir, recuerda que debes usar sudo systemctl daemon-reload y systemctl restart syncthing@myuser.service para que los cambios tengan efecto.\n\n \nComo vimos Syncthing es un programa muy útil y de fácil configuración para tener carpetas sincronizadas entre varios equipos a nuestro control, esta en constante desarrollo, tiene buen soporte de su comunidad y podemos aprovecharlo para tener un servicio de respaldo como alternativa libre a los servicios centralizados como dropbox, google y otros.\n\nEspero este pequeño tutorial te haya servido :)\n', ['tutorial', 'software'])

]]>
Preguntándose si más puede ser menos https://rmgss.net/posts/Preguntándose-si-más-puede-ser-menos https://rmgss.net/posts/Preguntándose-si-más-puede-ser-menos Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia reflexión , ensayo , progreso ('Vivimos en un entorno social que nos enseña que mientras más se consiga, más felicidad y bienestar hay. ¿Conseguir más, es realmente beneficioso al final de cuentas?\n\n¿Por qué parece que la mayor parte de la humanidad se la pasa buscando obtener más? Parece que la sociedad valora y premia a quien tiene por demás. \n\n \nResulta que quien tiene más se considera una persona exitosa, se la respeta más y entre otras cosas se le abren más oportunidades. Como un tipo de acuerdo social —destinado a beneficiar a las personas que acumulan más y quitar a quien tiene menos—, o al menos dejarles con lo suficiente para que sigan "alimentando a los sectores más beneficiados".\n\n¿En qué momento la sociedad ha aceptado este acuerdo? Quizá desde los tiempos de las monarquías, sistemas feudales u otra forma de organización que normalizaba los abusos y la explotación del hombre hacia otros hombres y animales de este mundo. Validando comportamientos deplorables como la esclavitud o las invasiones para hacerse con los recursos o habitantes de otros pueblos. O quizá el impulso de supervivencia llevó a los seres humanos al extremo de tomar actitudes egoístas como estrategia crucial para mantenerse vivos.\n\nEn la actualidad sin embargo, la supervivencia es mucho más viable que en tiempos antiguos, ya se rompieron las monarquías legitimadas (al menos en gran parte del planeta) y ya es más factible pensar en que el egoísmo puro, no es necesario para vivir y peor para vivir bien. Por eso pienso que este «acuerdo social» es más una tendencia difícil de eludir que una necesidad sin remedio.\n\n \nLa presión social es fuerte, a tal punto ha hecho que este comportamiento de querer tener más se transmita de padres a hijos, hermanos a hermanitos y también entre amistades. Desde que somos pequeños se nos entrena para conseguir cosas, para siempre "tener hambre", ser ambiciosos, desear crecer, superarse, incrementar, acumular, tener más, incluso cuando no hace falta y tal vez sin razón justificada. Desde las escuelas se dirige buena parte de la educación para generar riquezas encaminando actividades tan naturales como el arte, la investigación o incluso la curiosidad, hacia el progreso económico que incluso es usado como mero sinónimo de bienestar. Y esta educación no viene sólo desde el sistema educativo, también de nuestras propias familias, el núcleo mismo de la sociedad.\n\nTanto se nos repite y empuja que asumimos que lo normal es vivir para hacerse rico, alcanzar estatus o sobresalir. Con esa idea, salimos al mundo para aprender a hacerlo y dependiendo de los principios éticos de cada persona, este camino podría ser una cruzada donde se aniquile cualquier obstáculo sin detenerse a pensar en el daño ocasionado.\n\n \nSabemos que el consumismo está orientado a acumular bienes materiales y servicios incitando al gasto desmedido en cosas que no son siempre necesarias. Pero no sólo gastar en exceso y consumir es de lo que intento hablar, también de intentar obtener cosas más allá, por ejemplo bienes o logros que aseguren estatus.\n\nPor la narrativa de la «superación constante» que dice que la meta es siempre "mejorar" y exceder expectativas anteriores, hay muchas personas que interiorizan tanto este comportamiento que están todo el tiempo buscando superar récords o logros de otras personas, intentar ser el mejor en algo y cuando parece que ya no hay nadie más con quien competir, la competencia se torna contra ellos mismos.\n\nQuizá esto se refleja claramente en el ámbito profesional, por ejemplo cuando un ingeniero de software está aprendiendo nuevas tecnologías, tomando cursos y obteniendo certificados para mejorar su hoja de vida y así pueda mostrar cuanto conocimiento tiene y cuan hábil es. Si bien contar con acreditaciones que de alguna forma validen el conocimiento o experiencia pueden ser necesarias para aspirar a mejores oportunidades laborales, cuando ya se cuentan con las suficientes para ir creciendo y aún así se las intenta obtener sin descanso, podría ser una señal de que este ingeniero no se siente suficientemente valioso o que simplemente va muy rápido y no se toma el tiempo necesario para pensar en qué gana realmente.\n\nO un deportista o jugador empedernido que sólo busca romper marcas o ganar. ¿Será para mejorar su autoestima?, para poder decirse a sí mismo que ahora es mejor que antes. O quizá esta narrativa de «superación constante» tiene la irremediable consecuencia de que quien la sigue está constantemente intentando alimentar su ego y engrandecerse a sí mismo para no sentirse por debajo de sus propias expectativas. Muchas personas pueden caer en esta trampa —competir constantemente, sin detenerse a pensar en las consecuencias.\n\nY también puede pasar que en el intento de superarse y no siempre o "nunca" lograrlo, la persona se frustra tanto que la misma finalidad de aumentar el autoestima no se cumple y provoca lo contrario. Es decir, frustrarse excesivamente y sentirse inferior, incapaz y hacerse la idea de que vale poco como persona por que tiene tan arraigado este discurso de la auto-superación que se percibe como una persona sin valor. Así —reduciendo su persona a «que tan bueno puede ser en algo en particular».\n\nLo peor es que incluso si fuese una persona que aparentemente siempre logra "superarse", podría caer en lo mismo. En quererse a si mismo no en un sentido equilibrado y completo, sino sólo a su capacidad de superarse en algo concreto sin detenerse a considerar que la vida y el amor propio son inherentemente más grandes y tienen significados más profundos. En todo caso y eventualmente, la persona podría perder la capacidad de "auto superarse" y no habría aprendido a quererse tal y con todo lo que es.\n\n \nPues sí, si hay una cosa que no tiene límites es el querer. Jugando un poco se puede: querer algo o querer querer algo. o también: querer que una persona quiera no querer algo y así sucesivamente. \n\nPero los recursos no son ilimitados, y tampoco nuestra capacidad de hacer cosas, entonces en algún punto se tiene que ser realista y entender que no se puede tener todo lo que se quiere. La idea de esta reflexión no es contraria a querer cosas, a tener sueños, sino a tratar de entender lo que se puede provocar al intentar obtener algo sin detenerse a pensar en lo que está a nuestro alcance o está disponible. Los deseos son muy importantes, nos dan razones fuertes para seguir adelante más no lo son todo.\n\n \nHay muchas definiciones de progreso que van en constante cambio y adaptación, podrían los capitalistas pensar en que el progreso es obtener riquezas económicas, o alguien que sigue un pensamiento marxista dirá que el progreso sólo es posible en una sociedad comunista. Una definición de progreso aceptada a viva voz sería la del desarrollo sostenible de la organización de naciones unidas [1] que dice:\n\n> El desarrollo sostenible implica cómo debemos vivir hoy si queremos un futuro mejor, ocupándose de las necesidades presentes sin comprometer las oportunidades de las generaciones futuras de cumplir con las suyas.\n\nTambién dice:\n\n> Es una especie de acto de malabarismo. Hay que mantener en el aire tres bolas diferentes a la vez: crecimiento económico, inclusión social y protección del medio ambiente.\n\nEsta definición es en cierta forma equilibrada aunque a mi parecer está más orientada a nivel de «nación occidental», aquí la economía es crucial porque permite la obtención de recursos que a su vez pueden invertirse en el bienestar de los habitantes. Esta es contrastada por la importancia del medio ambiente y su cuidado, para no poner al desarrollo económico por encima de la misma fuente de las riquezas, esta fuente es el medio ambiente y finalmente el desarrollo social apuntando a mejorar la calidad de vida y convivencia entre los habitantes del mundo.\n\nSin embargo, esta definición de desarrollo viene de la "idea de progreso moderna", parece que esta idea pretende reemplazar a otra en la que el ser humano es un ser insignificante y limitado a quien se le impone cierto destino. En la definición de hombre moderno, el ser humano no tiene límites en su progreso y es creador de historia. Así progresivamente evolucionando en una búsqueda constante de un progreso que se traducía en la acumulación de conocimientos, virtudes, fuerzas productivas o riquezas que acercan al hombre a un estado de armonía y perfección. —“Más” pasará a ser equivalente a “mejor”— [2]. Pero como no hay recursos infinitos y no todas las personas tienen acceso igualitario a estos, surgen los conflictos sociales derivados de factores económicos que son acentuados por una falta de conciencia social y solidaridad por parte de quienes poseen o mejor dicho controlaban el acceso a los recursos. La división de clases se hace evidente y Karl Marx abordó desarrollando su perspectiva en el "Manifiesto Comunista" y otros textos para eliminar las injusticias perpetuadas por las clases dominantes hacia las clases trabajadoras.\n\nTal vez el progreso desde el punto de vista moderno desarrollado en Europa, se base en el crecimiento económico como el motor principal sin tomar mucho en cuenta otros principios como la convivencia armoniosa entre seres humanos, respeto a la naturaleza, espiritualidad, estudio y compresión del universo como lo hacían muchas otras culturas y civilizaciones. Quizá la mayoría de estas culturas fueron menospreciadas por su supuesta "falta de desarrollo". Me parece importante comprender que la idea de "progreso occidental" ha sido desarrollada en sociedades que han sometido a otros pueblos a nivel filosófico, moral y en su visión respecto a progreso. Es decir en lugar de enriquecerse intentando desarrollar ideas nuevas como resultado de la interacción y convivencia entre pueblos diferentes, han impuesto su visión de progreso y también intentado eliminar otras ideas que entren en conflicto con la búsqueda permanente de superioridad a partir de la economía que promete bienestar, situaciones favorables y abre un gran número de expectativas sobre qué hacer con esas riquezas.\n\nLa economía es muy importante claro que sí, si no se consiguen recursos ¿Cómo se va a poder evitar hambrunas o malnutrición?. Estamos forzados a contar con recursos y tenemos que ver la forma de conseguirlos, pero con moderación y no como un fin en sí mismo. El desarrollo económico es una necesidad en nuestras sociedades actuales, sin embargo, es indispensable determinar las razones que hacen que los más necesitados no puedan acceder a las riquezas económicas. ¿No será que hay todo un sistema que lo impide?.\n\nHay movimientos que se hacen llamar liberales que defienden ante todo la libertad individual y limitación de poderes del estado. Dan una importancia crucial al derecho a la propiedad privada y el libre mercado. El problema es que ahora mismo hay un gran desbalance en la propiedad de los recursos y medios de producción, es decir hay un grupo de pocos individuos que poseen gran cantidad de propiedades y por ende quienes no las tengan se ven obligados a someterse a estos grupos aventajados. En cuanto al libre mercado, no es realmente libre ni igualitario, ya que hay quienes poseen grandes ventajas y aparentemente sin quebrantar ninguna ley, tienen la capacidad de imponer reglas y controlar el comportamiento de este.\n\nSerá muy difícil conseguir un progreso colectivo equitativo si se siguen solamente estos principios porque estamos en un escenario con serias diferencias que no se van a solucionar por sí solas, esto porque los «dueños de la propiedad» tienden a tener más control y mantener los privilegios con los que cuentan, dificultando o bloqueando a otros individuos que intenten acceder a la propiedad o los medios de producción.\n\nPienso que lo que está esencialmente mal en estos modelos liberales capitalistas o más extremos como el anarcocapitalismo, es que el derecho y progreso individual es lo más importante, y esto provoca que las personas constantemente se centren en sí mismas restando importancia a los intereses colectivos. Lo comunitario pierde valor y los logros personales o familiares son lo más importante, por eso tanta importancia a la propiedad privada y menos a la propiedad colectiva. Sin embargo, incluso si todos empezarán con la misma cantidad de recursos, habrían inevitablemente individuos que encuentren maneras de controlar, recursos, mercados o trabajo ajeno rompiendo la premisa que afirma que el mercado tiende a autorregularse. Pienso no sería ilógico decir que poner el progreso individual como lo más importante, causará que cada individuo lo intente conseguir sin importarle los demás.\n\nEn un análisis [3] se menciona un ironía que dice: El progreso es concebido originalmente como la desvinculación de la experiencia y la apertura de un amplio horizonte de expectativas. Pero a medida que aumentan las experiencias llevadas a cabo con el progreso posible, menores son las expectativas de que tenga lugar un progreso real. \n\nA mi parecer, las experiencias serían la comprensión de la realidad, los saberes y el experimentar la vida intentando entenderla. Y las expectativas todas esas cosas que se desean. Entonces si el progreso se enfoca en lo que se quiere tener mucho más que el intentar comprender la realidad mediante las experiencias, tarde o temprano esos deseos son frustrados por el fuerte desbalance entre lo que se quiere y lo que hay. Y nuestro sueño de progreso constante será interrumpido por el duro y crudo golpe de la realidad.\n\n \nQue obtener riquezas económicas, estatus social u otros privilegios sean el objetivo común, hace que la sociedad se este dirigiendo a un falso progreso, la realidad es que hay todo un sistema establecido y diseñado para enriquecer a "los dueños de las tierras" que ahora se están convirtiendo también en dueños incluso de nuestras interacciones a través de las plataformas digitales.\n\nDurante el capitalismo se han privatizado las tierras cultivables o con recursos explotables. Luego de que se aboliera la esclavitud y el pongueaje (servidumbre agraria), los dueños de las tierras ni siquiera tenían que trabajarlas ya que empezaron a cobrar rentas por el uso de "sus" tierras. Luego por el uso de fórmulas, técnicas o ideas que probablemente ni siquiera inventaron ellos mismos mediante algo llamado sistema de patentes y propiedad intelectual, es decir — han privatizado hasta las ideas.\n\nPara seguir maximizando sus ganancias, se están privatizando las comunicaciones a través de las plataformas digitales, toda interacción entre seres humanos pasa en su mayoría por un grupo de servicios en manos de gigantes tecnológicos como google, meta, amazon, microsoft y otros. Nuestros datos son el nuevo oro y "los nuevos señores" se están apropiando de todo [4], además muchas personas lo entienden y defienden como progreso de la humanidad.\n\nLos poderosos han arrinconado al pueblo a través del control económico o incluso de nuestra necesidad natural de interacción privatizando las comunicaciones en los medios digitales, y de paso nos han metido la idea «por la fuerza» de que eso es progreso, de que tener más es la meta. El neoliberalismo, ha hecho que ahora los señores capitalistas tengan a los gobiernos como sus capataces y todo sigue evolucionando ¿Nos estamos dirigiendo hacia un tecno feudalismo?.\n\n \nCada realidad es diferente y sin embargo más allá de una retórica de auto-superación extrema o de progreso con tendencia a lo privado, intentar comprender la situación actual y reflexionar para reformular una sólida base de ideas hará una gran diferencia.\n\nNuestro valor como personas no debería ser algo que dependa de cuanto tenemos o conseguimos, ni tampoco de que tan productivos somos. En lugar de obsesionarse con «siempre mejorar», aprendamos primero a querernos a nosotros mismos tal cual somos, respetar y valorar nuestro entorno, revalorizar la importancia de la comunidad y —lo demás vendrá por nuestra voluntad natural de mejorar y descubrir. Detenerse e incluso volver atrás para entender o explorar soluciones sería más beneficioso que avanzar ciegamente sólo para decir que tan lejos hemos llegado.\n\n¿Hacia dónde nos están dirigiendo las ideas de progreso de la sociedad actual? ¿Vale la pena "enriquecerse" sin importar en el efecto sobre los demás? ¿Acaso el ser humano tiene que ser siempre el ser superior? ¿Qué hay de otros seres como los animales y plantas, se piensa en su bienestar también o se los ha empezado a ver como meros instrumentos para satisfacer una necesidad de sentirse superiores? ¿Qué hay de otras ideas de progreso que intentan dar más importancia al ser humano y su papel cómo otro ser vivo más y no dueño del mundo?\n\nPara terminar y sin darle menos importancia a otros temas sobre los que he intentado reflexionar en este ensayo, me gustaría citar una frase que se le atribuye a Pepe Mujica.\n\n> "Pobres no son los que tienen poco. Pobres son los que quieren más, infinitamente más y nunca les alcanza"\n\n \n1. https://www.un.org/sustainabledevelopment/es/2023/08/what-is-sustainable-development/ - Objetivos del desarrollo sostenible de Naciones unidas.\n2. https://es.wikipedia.org/wiki/Progreso#El_surgimiento_de_la_idea_moderna_del_progreso - El progreso humano, el surgimiento de la idea moderna del progreso.\n3. https://revistas.um.es/sh/article/view/243631/224361 - Progreso y modernidad: el problema con la autonomía.\n4. https://maxmurphy.xyz/p/goodbye-surveillance-capitalism-hello - Ensayo sobre el fin de la vigilancia capitalista y la llegada de la vigilancia fascista.\n\n', ['reflexión', 'ensayo', 'progreso'])

]]>
Clasificación mensajes correo debian parte 2 https://rmgss.net/posts/Clasificación-mensajes-correo-debian-parte-2 https://rmgss.net/posts/Clasificación-mensajes-correo-debian-parte-2 Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia python , machine_learning , software , tutorial ('Continuando con la clasificación de mensajes de correo de debian en la parte 1, en esta parte aplicaremos dos técnicas de aprendizaje automático para generar modelos de predicciones, estas son Multinomial Naive Bayes y Random Forest Classifier.\n\nMachineLearningD1.jpg\n\nTodo el procedimiento se puede revisar en notebook de jupyter en la PARTE 2:\n\n> jupyter notebook: debian-2015-2019-NaiveBayes-RandomForest.ipynb\n\n \nUna forma de entender esta técnica es calcular la ocurrencia de cada palabra en un documento (mensaje de correo) contando las veces que se repiten y aplicando este procedimiento a todos los documentos en el conjunto de datos. A partir de ese conteo de ocurrencias y usando el teorema de Bayes con las probabilidades condicionales se puede calcular la probabilidad de ocurrencia de un evento que no conocemos. En este caso la probabilidad de que un documento (correo electrónico) pertenezca a una categoría, entonces las categorías que tengan la mejor probabilidad serán nuestran predicciones. Una explicación más detallada se puede revisar en [1] \n\nEn el post anterior se ha obtenido la bolsa de palabras (bag of words) como se explica en [2] entonces tenemos todo listo para aplicar la técnica.\n\nEn el notebook se define una función obtenerModeloMultinomialNB() donde se tienen varios pasos.\n\nPrimero recibe como se muestra en la figura de arriba conjuntos de datos de entrenamiento (x_train y_train) y prueba (x_test y_test). Notarás que se dividen en x (mensajes) e y (categorías de mensajes), esto es por la forma que la biblioteca sklearn hace el cálculo de probabilidades.\n\n :::python\n labelencoder_y = LabelEncoder()\n y = labelencoder_y.fit_transform(y_train)\n\nEl algoritmo Naive Bayes trabaja solamente con valores numéricos, esta primera parte se encarga de representar las el arreglo de categorías de entrenamiento en forma numérica.\n\n debian-science --> 8\n debian-vote --> 9\n debian-edu --> 2\n debian-legal --> 5\n debian-python --> 7\n ...\n\nLuego se usa CountVectorizer que hace el procedimiento de contar la ocurrencia de palabras en los documentos y ajustar este conteo a una conveniente matriz con documentos, palabras y número de ocurrencias por palabra.\n\n (0, 1025)\t2 # documento 0, palabra con indice 1025 tiene 2 ocurrencias\n\t...\n (25977, 1121)\t5 # documento 25977, palabra con indice 1121 tiene 5 ocurrencias\n\nCon esta matriz se puede aplicar el entrenamiento y realizar un ajuste entre la matriz obtenida y el arreglo de categorías usando la técnica Naive Bayes.\n\n :::python\n mnb = MultinomialNB()\n\tpredictions = mnb.predict(x_testcv)\n\t\nmnb.predict() devuelve el conjunto de predicciones aplicadas sobre el conjunto de prueba que también se ha procesado con CountVectorizer. Lo que sigue es hacer el conteo de las predicciones correctas y armar un diccionario para mostrar gráficas con los resultados de las predicciones por categorías. El resultado de las predicciones usando Naive Bayes se puede ver en la siguiente gráfica.\n\nPredicciones Naive Bayes 1\n\nLa gráfica muestra en rojo las predicciones que tienen menos del 61% de precisión, es decir las categorías debian-science debian-jobs debian-desktop debian-cli debian-firewall. Siendo un total de 5 categorías con predicciones mayores a 61% de precisión y 5 por debajo. La causa común de estas imprecisiones es la cantidad reducida de mensajes de entrenamiento en estas categorías, sin embargo es necesario realizar un mayor análisis del contenido mismo de los mensajes que podrían por ejemplo tener muchas palabras técnicas para las cuales la aplicación de Naive Bayes podría no ser la adecuada.\n\n \nLa técnica del clasificador Random Forest aprovecha los árboles de decisión para generar varios árboles con muestras aleatorias formando un bosque de árboles de decisión, del resultado de este bosque se obtienen los más comunes como las predicciones finales. Una descripción más detallada se puede ver en [3] .\n\nAl igual que el caso anterior usaremos representaciones numéricas de las categorías y también usaremos CountVectorizer para obtener una matriz con el conteo de ocurrencias de palabras. Una diferencia es que Random Forest require que se indique cuantos árboles de decisión se van a generar antes de lanzar las predicciones.\n\n\t:::python\n # creando el objeto clasificador random forest para crear un número dado de árboles\n clf = RandomForestClassifier(n_estimators=trees)\n # Al aplicar fit se crean los árboles con los datos de entrenamiento\n clf.fit(x_traincv, y_train)\n\n # realizando las predicciones\n randomForest_predictions = clf.predict(x_testcv)\n\t\nLuego de aplicar esta técnica tenemos varios resultados dependiendo de la cantidad de árboles generados.\n\nPredicciones Random Forest con 10 árboles\nPredicciones Random Forest con 80 árboles\n\nSe puede ver la mejora de predicciones entre la creación de 10 y 80 árboles de decisión, también se ve que siempre se tienen predicciones erróneas para la categoría debian-firewall y en el entrenamiento con 80 árboles se elimina la categoría debian-cli.\n\nUna desventaja de esta técnica es que para la generación de múltiples árboles se requiere mucho más tiempo de procesamiento que aplicando Navie Bayes.\n\n \nAl parecer la técnica Random Forest produce mejores resultados que la técnica Naive Bayes aplicada a la lista de correos de debian en las categorías presentadas. Hay que considerar que no se hace un preprocesamiento exhaustivo de los mensajes de correo por ser demasiados (más de 20000) y que cada categoría en la lista de correos de debian puede tener tipos de mensajes muy distintos.\n\nPor ejemplo debian-python o debian-firewall contienen muchos mensajes con contenido técnico lo que resulta en palabras poco comunes que inicialmente se eliminan en CountVectorizer (ver parte 1) y estas palabras podrían ser clave para identificar una categoría con contenido técnico de otra con mensajes con lenguaje más común.\n\nSería interesante aplicar estas técnicas a otras secciones de la lista de debian y cambiar el criterio de selección o limpieza de datos e incluso ajustes a los algoritmos Naive Bayes y Random Forest. Usando la herramienta de descarga descrita en la parte 1.\n\nEn la parte 3 se procederá a usar estos modelos generados para y usarlos en cualquier mensaje. El modelo generará predicciones e indicará a qué categoría podría pertenecer ese mensaje de manera más directa.\n\n \n1. https://towardsdatascience.com/algorithms-for-text-classification-part-1-naive-bayes-3ff1d116fdd8\n2. https://web.stanford.edu/class/cs124/lec/naivebayes.pdf\n3. https://dataaspirant.com/2017/06/26/random-forest-classifier-python-scikit-learn/\n', ['python', 'machine_learning', 'software', 'tutorial'])

]]>
Bajo Llojeta y un poco de sus perros https://rmgss.net/posts/Bajo-Llojeta-y-un-poco-de-sus-perros https://rmgss.net/posts/Bajo-Llojeta-y-un-poco-de-sus-perros Wed Jun 18 03:46:42 2025 text/html Rodrigo Garcia reseña , reflexión , ciudades ('thumb_perrosEscoltaBajoLlojeta2.jpg\nOriginal\n\nEl fin de semana del 12 de junio a la hora del almuerzo se escucharon los gritos de dolor y susto de un perro que se acercó a un radiotaxi y mordió el aro de la rueda delantera derecha. La fuerza del avanzar del automóvil arrancó varios dientes del perro y el quedó atascado gritando sin poder zafar el hocico de la rueda. La gente miraba y gritaba, y del radiotaxi que se detuvo salieron los pasajeros y el conductor. Yo salí corriendo y vi al perrito atrapado, otros perros le ladraban y uno le mordió la espalda quizá para animarlo a zafarse por si solo.\n\nEl conductor dijo hay que sacar la llanta y yo exclamé que sí mientras la sangre de la boca del perro manchaba el asfalto. El perro no paraba de gritar y yo no estaba seguro de qué hacer sino también intentar animar al perro a que se zafe. Alrededor de dos minutos después (aunque ahora pienso que tal vez fué mucho menos), el perro con mucho esfuerzo y gritos de dolor logró sacar hocico de la rueda. \n\nAlcancé a ver que le faltaban al menos 2 dientes entre ellos el colmillo inferior izquierdo y unas muelas flojas que parecía estaban a poco de salirse, su lengua estaba afuera y de la boca, no paraba de sangrar. Con todo eso el perro camino rápido alejándose de esa esquina y subiendo una calle empedrada y no sin dejar puntos rojos en el asfalto y acera por donde caminaba.\n\nLe perseguimos con el conductor por esa calle y luego en una avenida. Siendo un perro grande y peludo se lo veía a lo lejos sin mucho esfuerzo, como se alejaba mas lejos el conductor dijo que iría por su auto y yo le dije que teníamos que llevarlo al veterinario porque los dientes podrían infectarse. Mientras iba por su auto, llegaron 2 mujeres preguntando por el perro y poco después volvió el conductor y salió del taxi junto con una mujer joven. El perro paró al lado de una tienda de abarrotes y ahí nos conseguimos acercar, también. Lo vimos sangrar con la lengua afuera y sabíamos que lo importante era agarrarlo para llevarle al veterinario.\n\nEl conductor se acercó al perro haciendo ese sonido que hacemos para llamar con cariño a los perros, algo parecido a un "tic" pero de modo en que se presiona la punta de la lengua en el paladar y luego se suelta la presión dirigiendo la lengua hacia adelante (o hacia atrás), haciendo eso seguidas veces y rápido suena como "tic tic tic tic ...". Alzó la mano y la puso en la cabeza del perro que bajo un poco las orejas y parecía relajarse por unos 3 segundos. Pero el conductor se precipitó y subió la mano hasta la nuca del perro tal vez para tratar de agarrarle la piel del cuello y poder así meterlo en el auto, el perro se asustó, se safó rápidamente y comenzó a alejarse más lejos y rápido hacia arriba. Mientras se alejaba se hablaba sobre el perro y la mujer acompañante (o tal vez pasajera) del taxista decía con a mi parecer un tono de reclamo, que ¡fue un accidente! y que el conductor no tenía la culpa.\n\nperrito Lastimado\n\nNos pusimos a seguirle, pero eso hacía que el perro se alejara y me adelanté un poco trotando. Esperaba que el conductor esté tras de mí y cuando se acerque decirle que a pesar de que fue un accidente, estas cosas pasan y no podía dejar al perro así y que yo iba a ayudarle a cubrir con los gastos de curación. Lo que recuerdo es que él se quedó atrás con el taxi junto con la mujer joven, no lo volví a ver y no pude decirle nada de eso.\n\nPoco después llegó mi pareja corriendo preguntando como estaba todo y le dije que perdimos de vista al perro. Preguntábamos a dueñas de las tiendas si conocían al perro y decían que parecía que no tenía dueño, les dije que en lo posible intenten conseguir una correa o manta para una vez nos acerquemos lo podamos agarrar. Una chica joven vio al perro y sintió que tenía que ayudarlo y se puso también a seguirlo al trote, pero él más se alejaba. Poco a poco las demás personas también lo iban a buscar, nos separamos, y mi pareja escribió a un grupo de whatsapp de cuidado de animales callejeros de Bajo Llojeta (que es una zona grande en la ciudad de La Paz). En el grupo luego de mandar fotos del perro, decían que era callejero y no tenía dueño pero que había un dueño de un lavado de trajes en la avenida que le daba comida. Fui al lavado mientras las demás buscaban al perro.\n\nVi que estaba abierto y me acerqué, vi a un señor descansando sentado y luego de saludarle le conté sobre el perro y le mostré fotos, su sonrisa inicial iba desapareciendo de a poco hasta ponerse más serio. Me dijo que conocía al perro y que junto con otros 4 o 5 perros, les daba comida y agua, pero que no era su perro y que solo sabía que andaba con ese grupo de perros por estas calles que parecían ser "sus dominios", que él no vivía aquí y tampoco conocía si el perro tenía o no dueño. Nos pasamos los números de teléfonos y también me dio el teléfono del administrador de un grupo de WhatsApp de la zona que ayudaban a perros de la calle. Con esos datos, le dije que me avise si lo vuelve a ver y decidí volver a salir a buscarlo y bajando un poco me volví a encontrar con mi pareja.\n\nAsí con ella intentamos caminar tras el perro y vimos que se metió por una calle que bajaba a por un costado de la avenida principal, lo seguimos y una señora nos acompañó por esas calles empedradas, empinadas y con cruces perpendiculares aún más empinados. Mi pareja aprovechó en tomar algunas fotos del perro y escribir por ayuda a animales S.O.S, un grupo de voluntarios que trabaja varias décadas ayudando a animales desprotegidos. Le dijeron que intentemos atrapar al perro o apaciguarlo para que puedan ir hasta el lugar para atenderlo, les mandó la ubicación y otros detalles, pero el perro se movía por un barranco.\n\nthumb_bajoLLojetaBarranco1.jpg\nOriginal\n\nLa señora se separó y nos dijo que intentaría traer una correa para agarrar al perro y seguimos tras el perro, finalmente llegamos al final de la calle donde solo había un barranco que iba a un camino a las faldas de un cerro donde no se veían casas, solo un tractor inmóvil. Dos señoras que subían por el barranco, vieron al perro y a nosotros en la meseta y gritaron si era nuestro perro. Yo grité que no, y que queríamos agarrarlo para rescatarlo y se acercaron. Nos dijeron que lucía mal y que no lo vieron antes mientras también lo buscaban con la vista.\n\nMientras las señoras se quedaron mirando el barranco otra vez perdimos de vista al perro, lo último que vimos fue al perro que bajó el barranco y tras escuchar el ladrido de otro perro, empezó a huir bajando ese camino que era difícil para nosotros. El sol de la tarde, el polvo y la caminata ya empezaban a fatigar y decidimos rodear el barranco por otras calles adyacentes. Eran calles vacías de personas, pero si se veía alguno que otro perro echado y que nos miraba fijamente y a veces ladraba, habían casas pequeñas de ladrillo, gradas y pasillos que conectaban calles similares. Así mientras andábamos mandé un mensaje al dueño del grupo de whatsapp que me pasó el señor del lavado. Al no recibir respuesta, mandé un audio intentando explicar la situación y pidiendo ayuda a los vecinos para agarrar o encontrar al perro. Al no recibir respuesta le llamé, me contestó y le dije lo mismo, quizá por la frustración o el cansancio, no expliqué bien los detalles o elaboré un plan concreto para rescatarlo y su respuesta solo fue un "Está bien, gracias por comunicarlo vamos a avisar en el grupo".\n\nthumb_bajoLLojetaBarranco1.jpg\nOriginal\n\nCaminamos muchas calles y noté más nuestro cansancio y frustración, volvimos de regreso a la meseta y poco antes de llegar las dos señoras que se quedaron vigilando nos gritaron señalando una de las calles por las que vieron al perro recientemente, agradecimos y fuimos tras él. Al llegar a la avenida nos volvimos a separar y mi pareja dijo iría a conseguir algo de comida y tromadol porque los de animales SOS le recomendaron que se lo administremos al perro para calmar el dolor que podría estar sintiendo.\n\nVolví a subir la avenida y poco después vi al perro sentado en un pequeño montón de pasto en la acera cerca del lavado donde le daban comida. Le vi con la lengua afuera y me acercaba lentamente sin estar muy seguro de cómo agarrarlo. El perro me vio a lo lejos, me reconoció y de nuevo empezó a alejarse. Así iba por calles de subida y bajada, se detenía para descansar, yo me acercaba con cautela y a veces él también, pero acababa de forma similar. Parecía que el perro ya asociaba mi figura con el accidente y el miedo y el dolor que sentía hacía que se aleje. Lo perdí de vista como unas 3 veces y volvía a encontrarlo casi por los alrededores o en la avenida misma. No tenía un buen plan para atraparlo, tan solo esperaba a que él me empezara a tolerar y deje que me acerque, tristemente él solo se alejaba de mí cuando me percibía muy cerca.\n\nVolví a encontrarme con mi pareja y ella trajo algo de pollo para intentar darle al perro junto con una pastilla y como se dio cuenta que el perro volvía a donde estaba la tienda de lavado, fuimos a hablar con el dueño. Ella le pidió que en cuanto lo viese le dé la comida e intente hacer que coma las pastilla también, él dijo que dentro de poco tenía que cerrar la tienda, pero que esperaría un poco más. Mientras hablaba otra perrita se acercó y el dueño le dio unas croquetas que ella empezó a comer con muchas ansias. Recuerdo vi en su cabeza una mancha de sangre con saliva, entonces temí que el perro se encontró con ella y trato de defenderse. O a lo mejor era su amiga, se acercó a olerlo y ahí goteó en su cabeza la sangre del perro. \n\nDejando a los demás en el lavado salí de nuevo a buscarlo para no perderle el rastro, pero esta vez ya no pude encontrarlo por las calles donde lo ví antes, aunque sí lo vi ir hacia el barranco y parecía mirar hacia atrás como buscando si alguien —en este caso yo, lo estaba siguiendo. Decidí dejarle de perseguir, para que deje de huir y no se estrese más de lo que ya vivió.\n\nPoco después volví al lavado y hablamos con mi pareja de que quizá no encontraremos al perro de nuevo en ese día y que dejemos a personas o dueños de tiendas la comida con pastillas para que se la dieran al perrito si se acercaba. Como el señor del lavado dijo que cerraba la tienda, le pedimos el plato de comida y que nos avise si se enterara de algo. Inmediatamente después que salimos de la tienda el señor la cerró.\n\nFinalmente dejamos el plato de comida a la dueña de una tienda de abarrotes al frente de lavado, no habían más tiendas cerca y tampoco respuestas en los grupos de WhatsApp, entonces nos fuimos. \n\nNo dormí tranquilo esa noche pensando en el dolor intenso que podría estar sintiendo el perro. ¿Se le habrán infectado las heridas? ¿Cuanta sangre habrá perdido? ¿Habrá comido algo? Si a lo mejor tenía dueño o consiguió volver, ¿su dueño le atendió al ver su estado?.\n\nAl día siguiente salí a buscar al perro, esta vez con más comida y más pastillas, quizá esta vez si estaría más tranquilo y con el hambre suficiente como para aceptar un plato de comida y así yo o pudiera atraparlo para en lo posible hacer que lo curen. Como era domingo, el señor del lavado no abrió, estaba todo más vació y por la avenida no vi al perro. Volví a la tienda de abarrotes y la señora me dijo que no volvió a ver al perro, me devolvió el plato de comida y decidí buscarlo hasta más lejos.\n\nthumb_bajoLLojetaBarranco1.jpg\nOriginal\n\n\nBajé por las calles empedradas con mucha calma y mirando a todos lados. A pesar de que me acercaba en silencio, otros perros me vieron a mí y al plato de comida que tenía en mis manos y me empezaron a seguir. Con "amabilidad" les decía que se alejen pero uno de ellos muy pacientemente me siguió varias calles. Su mirada hambrienta e insistencia hizo que le lanzara un poco de la comida de rato en rato. Él iba a comer y volvía y así hasta que llegamos cerca al barranco. Pareció reconocer los límites de su territorio o el comienzo del territorio de otros perros y se quedó en una esquina inmóvil y de a poco se empezó a alejar. Y era cierto, otros dos perros se me acercaron y me miraban igual. Uno de ellos era grande, peludo, viejo y tenía un ojo lastimado. El otro era mediano delgado y mucho más joven.\n\nMientras seguía buscando, estos dos compañeros me escoltaron hasta el barranco mientras yo aproveché en darles parte de la comida que comieron con mucho gusto. Me quedé mirando el barranco por varios minutos y de a poco a bajarlo. Mientras más bajaba, menos me seguían los perros. \n\nthumb_bajoLLojetaBarranco1.jpg\nOriginal\n\nLlegué casi al camino y tras varios minutos de inspeccionar, no encontré ningún rastro del perro. Noté un niño a lo lejos que jugaba con una vara de madera y se contemplaba el atardecer por el cerro. Poco después me vio también parado y se iba acercando de a poco. A una distancia prudente dudó en seguir acercándose y volvió a su casa a jugar con su vara y mirar el paisaje.\n\n\nthumb_bajoLLojetaBarranco1.jpg\nOriginal\nthumb_bajoLLojetaBarranco1.jpg\nTamaño original\n\nVolví a subir el barranco triste por no haber encontrado al perro preguntándome si seguía vivo, o su cuerpo yacía en algún rincón inmóvil luego de que esta su vida de perro hubiese terminado. Al subir de vuelta volví a ver a mis anteriores perros escolta y les di más de los restos de comida. Luego me escoltaron amablemente de vuelta y en una de las calles se detuvieron al frente de una puerta luego de escuchar que se abría. Salió una señora de la tercera edad, una "viejita" que tenía una olla de una sopa parecida a "lawa" de perro que poco a poco iba vaciando en un plato al lado de su puerta. Los perros esperaban pacientes a que terminara y luego fueron a comer. Ahí me ajelé y algunas migajas que tenía todavía, se las daba a otros perros del camino que también las recibían agradecidos.\n\nDos días después, me comuniqué con el dueño del lavado preguntando sobre el perro y me dijo que no lo volvió a ver, pero que me escribiría en otro caso. Una semana después pasé de nuevo por la avenida y no vi rastros del perrito que vivió su vida entre las calles de Bajo Llojeta, zona donde socializaba, caminaba, dormía, contemplaba con la nariz y los ojos lo que aparecía y donde algunas personas le daban comida, y quizá algunas le acariciaban la cabeza.\n\n \nSi acabó la vida de un perro hambriento, es fácil darse cuenta de que hay muchas otras más. La ciudad de La Paz en Bolivia tiene una gran cantidad de perros y la tenencia irresponsable de animales es uno de sus más grandes problemas.\n\nAlgunas estimaciones indican que hay más de 250000 animales en condición de calle, sin embargo pocas acciones se toman para mejorar su situación. Hay gran diversidad de causas y cada causa tiene su efecto, las consecuencias como lo que le pasó al perrito de esta historia no son casos aislados, están ocurriendo a diario.\n\nUna cadena con muchísimos eslabones que puede empezar con personas irresponsables que descuidan a sus mascotas dejándolas en la calle donde pueden enfermarse, pelear, hambrear, sufrir accidentes, perderse o ser víctimas de agresiones o delincuencia. Además pueden también procrear y multiplicar la cantidad de perros callejeros o abandonados, empeorando la situación.\n\nUna ciudad donde las autoridades se jactan de proyectos de "modernizaciones" inconclusas y uso de la tecnología como un fin en sí misma y reducen los recursos e importancia a la vida y buen vivir de los omnipresentes y nobles animales que la habitan. Esos incorrectamente llamados "seres inferiores" que fielmente ofrecen sus vidas para hacer compañía a personas como nosotros, que soportan maltratos y sufren las consecuencias de la irresponsabilidad colectiva e individual.\n\nPero como siempre, cambiar esta situación esta a nuestro alcance. Justo la misma noche de lo ocurrido con el perro, pude ver a otra viejita que con su compañero alimentaban a —al menos cuatro perros callejeros. Con sus pasos lentos cerca de las 11 de la noche. \n\nthumb_comiendolawa.jpg\n\nEso muestra que hay voluntad y amor para mejorar la vida de los animales por parte de muchas personas que saben que más allá de las riquezas económicas, el trato a los animales es una riqueza más importante.\n\nActuando, exigiendo y esforzándonos podemos hacer de esta y otras ciudades un lugar próspero de verdad.\n', ['reseña', 'reflexión', 'ciudades'])

]]>