commit 24cd5520caa52f33d6b180f2bff90c62e117b96e parent dfaa13570ac461d2e974c9ded9a66deeeb4250ae Author: fjbalon <fbalon@templier.es> Date: Sun, 7 Jun 2026 00:20:34 +0200 Subida masiva de artículos antiguos, pendientes de revisión Diffstat:
155 files changed, 5530 insertions(+), 86 deletions(-)
diff --git a/apologia-monarquia/herodoto.png b/apologia-monarquia/herodoto.png Binary files differ. diff --git a/apologia-monarquia/index.html b/apologia-monarquia/index.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>La monarquía tradicional y hereditaria</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">La monarquía tradicional y hereditaria</p> +<p class="date">24 de junio de 2023 • fjbalon</p> +</header> +<img src="monarquia.jpg" /> +<p>Si bien hoy día es común encontrarse algunas personas monárquicas, es preciso saber qué entendemos como monarquía en su sentido más amplio y filosófico. De lo contrario, no atenderíamos a la realidad conceptual y nos limitaríamos a estériles definiciones que no llevan a conclusión lógica. Dicho esto, me atrevo a sostener que hoy día, prácticamente no existen monárquicos, pese a que muchos así lo crean.</p> +<p>Como sabemos ya de mi <a href="../critica-democracia">crítica a la democracia</a>, la monarquía responde a una de las tres formas clásicas de gobierno: monarquía, aristocracia y politeia, siendo el principio monárquico aquel que concreta el poder en una persona. Si tenemos en cuenta que el fin del gobierno es ser un medio por el cual se elige al gobernante, se delimite la forma y alcance de dicho gobierno, tenemos que tener en cuenta que el fin último, recibido del pensamiento clásico, es el bien de los gobernados mediante la virtud. A tener en cuenta también que, si bien el Rey sería el medio para facilitar las condiciones adecuadas para lograr dicho fin, entendiendo que el medio de la sociedad para que el hombre lo logre no es el gobierno, sino la Iglesia. Por ello es necesario comprender las separaciones entre la naturaleza natural (valga la redundancia) y temporal del gobierno monárquico y aquella sobrenatural e intemporal, que derivaría de la Iglesia.</p> +<p>Entendemos, por otro lado, que lógicamente que no se puede ser demócrata y monárquico, siendo principios incompatibles y siendo que uno no puede existir sin agotar al otro en el mismo plano. En el artículo predecesor ya esquematicé sobre los atributos que critico de la democracia y que concluyen en que se trata de una mala forma de gobierno. En este, haré lo propio con la monarquía.</p> +<p>En primer lugar, de cara al Principio de autoridad y la obediencia, la monarquía saldría beneficiada ya que, al fundarse en la tradición de la familia real, que corona la sociedad -compuesta a su vez por familias-, prescinde del ineficaz proceso electivo. Ineficaz, en este caso, respecto la lealtad de los súbditos y gobernados. Esto permite a la monarquía abrazarse al Principio de Estabilidad, que crea una durabilidad necesaria en la creación de lazos afectivos entre la institución y el pueblo, debido a la continuidad natural en la sucesión: la herencia. Así, la lealtad y obediencia del pueblo serían reforzadas en la forma de la monarquía hereditaria<sup>1</sup>.</p> +<p>Así, el Principio de estabilidad sería reforzado, siendo primeramente por experiencia histórica la más invariable y robusta forma de gobierno, soportando simultáneamente cuestiones teóricas. Si bien la ausencia de proceso electivo la hace menos dependiente, aunque no indiferente, del apoyo popular o de cualquier influencia externa, la propia sucesión hereditaria:</p><ul> +<li>Consolida la formación del futuro gobernante, educado y vinculado bajo la tutela del actual; no existe mayor grado de continuidad política, y por ende, estabilidad, puesto que el gobernante recibe en herencia el poder, asegurando adhesión al legado recibido.</li> +<li>Aporta serenidad y placidez a las medidas, puesto que no existe tiempo límite ni caducidad al gobierno, permitiendo así aplicar medidas a largo plazo, sin que dichas medidas sean desarticuladas por su predecesor.</li> +<li>Debido a que, de nuevo, el poder se da en herencia, las consecuencias políticas se miden con respeto al vínculo del heredero. Al contrario de lo que ocurre en sistemas electivos temporales, donde es conveniente no medir las consecuencias para que sean absorbidas por el siguiente gobierno, probablemente contrario, y tener así en la siguiente elección una ventaja estratégica.</li> +<li>Cuando la sucesión se sustenta en el Derecho, ésta se declara con franqueza desde el principio, evitando la incentivación de luchas algunas por ella.</li> +</ul> +<p>Observamos que la monarquía hereditaria sería el sistema de gobierno más estable<sup>2</sup>. Por otro lado, al otorgar al Rey su puesto por derecho de nacimiento y no por factores circunstanciales o externos, no introduce de primeras deuda o dependencia alguna, por lo que el Principio de justicia y libertad sería más fácil de alcanzar. Y al tratarse de un sistema personalista, en el que no existe Estado abstracto, sino un sistema natural <i>per se</i> en el que un conjunto de familias -base de la sociedad- es gobernada por una familia, prolongación natural de las sociedades que, mediante su desarrollo a través de cuerpos intermedios, alcanzan la propia institución familiar como base y culminación la propia sociedad. El reino, por tanto, ve en los reyes aquellos que tienen la vocación divina del gobierno, y sobre ellos pesa la responsabilidad del bien de sus súbditos (al igual que sobre el padre pesa el bien de sus hijos). Es por esta razón, que en caso de existir alguna demanda popular, existen caminos y medios físicos para actuar contra la familia real, pues es una familia existente y no abstracta, lo que aporta un mayor grado de justicia de los gobernados sobre los gobernantes, que no existe en regímenes abstractos y contractuales como los actuales.</p> +<img style="width: 50%; float: left; filter: sepia(30%); margin-right: 1em;" src="san-fernando.jpg" /> +<p>La consecuencia del espíritu desvinculandor e individualista, engendró lo que podríamos llamar el apartamiento de la sociedad respecto del hombre concreto. La sociedad fue en otro tiempo algo que, impalpablemente, estaba entre los hombres constituyendo su profesión, su familia, su pueblo. No obstante, la sociedad moderna ha convertido al hombre en una criatura al servicio del Estado, el cual le hace creer que es dueño de la libertad que el propio Estado le otorga. Libertad que para obtenerla ha sido despojado de sus libertades concretas. La monarquía tradicional viene a diferenciar que el concepto de sociedad no es sólo el Estado, sino que hay sociedades previas al mismo. El rey, por tanto, sabe que está sustentado por unas sociedades, que configuran otras sociedades dando todo ello lugar a un sistema presidido por el propio monarca. La monarquía tradicional constituye pues el Régimen contrario a la libertad abstracta, y garante de las libertades concretas.</p> +<p>Definiríamos además a la monarquía tradicional como un sistema representativo. Anclado y basado en el Principio de subsidiariedad que cristaliza en los fueros, manifestación legal y política de la visión de la comunidad a la manera del <i>corpus mysticum</i> del que hablan nuestros clásicos. Los fueros son un concepto fundamental en la monarquía, pues es el revestimiento legal de esas sociedades. Por ellos, las sanas costumbres cristalizan en leyes que pasarán a formar parte de la esencia de la sociedad. Siendo misión de la política no definir abstracciones irrealizables, sino hacer posible para cada hombre el ejercicio de la libertad en elegir su destino trascendente, desenvolviendo su naturaleza libérrima de modo que no sea lesivo para sí ni perjudicial para el orden social; lo cual sólo será posible cuando se articule la convivencia humana en sistemas orgánicos de libertades concretas. La realidad histórica y la raigambre metafísica del hombre proclaman su condición de ser concreto, capaz de usar apenas de libertades políticas concretas.</p> +<p>El Principio eficiente es la condición que suele usarse como argumentación contra la monarquía hereditaria, pues aun admitiendo que es la forma de gobierno que mejor encarna el Principio de Autoridad en la obediencia, la estabilidad y la justicia; no compensa -según defienden- la ausencia de meritocracia que provoca que el gobernante lo sea por derecho de nacimiento, introduciendo una ineficiencia al no elegirse como gobernante al mejor para el cargo. El problema con dicho argumento es doble:</p> +<ol> +<li>Hace una falsa identificación entre la persona con mejores dotes para gobernar y la persona que daría mejor resultado como gobernante: un buen gobernante sin medios (otorgados por la estabilidad y la obediencia) daría resultados más ineficientes que un gobernante poco dotado con medios más adecuados. Incluso aunque mediante un proceso electivo fuera uno capaz de elegir a una persona muy dotada para el gobierno, esta contaría con peores medios que un Rey por nacimiento por lo que hemos expuesto antes, ya que tendría que gobernar con una legitimidad más volátil que la que ofrece la monarquía hereditaria y con una situación de mayor inestabilidad.</li> +<li>Presupone que existe alguna forma de gobierno que asegura meritocracia en el proceso electivo, cuando la experiencia demuestra que suelen hacerlo más por retórica sofística que otros méritos para el cargo. Cabe destacar y repetir que la capacidad del Rey para gobernar está lejos de ser algo arbitrario, precisamente al existir la sucesión y conocerse por Derecho, lo que permite una educación desde el primer instante de su vida, en las dotes necesarias para el gobierno.</li> +</ol> +<img style="width: 30%; float: left; filter: sepia(50%); margin-right: 1em;" src="herodoto.png" /> +<p>Al aportar como hemos visto la monarquía hereditaria una mayor estabilidad que otras formas de gobierno permite al gobernante la aplicación de políticas necesarias aunque impopulares sin tener que temer a la pérdida de su cargo, igualmente permite un pensamiento a largo plazo que se ve desincentivado en las formas de gobierno donde hay un proceso electivo cada cierto periodo de tiempo, pues en ese caso hay incentivos para tomar o dejar de tomar medidas políticas no buscando lo mejor para el pueblo sino lo mejor para la reelección, introduciendo así una actitud cortoplacista en los gobernantes que es claramente ineficiente.</p> +<p>Heródoto de Halicarnaso propone el principio monárquico como superior sobre otras formas de gobierno, haciendo una ácida crítica a la democracia. Y es que los tres gobiernos propuestos, el del vulgo -politeia, democracia-, el de los nobles -aristocracia- y el de un monarca, aun cuando se suponga cada cuál en un género es mejor, el de un rey -opina Heródoto- excede en mucho a los demás:</p> +<cita> +<p>«Y opino así, porque no veo que pueda darse persona más adecuada para el gobierno que la de un varón en todo grande y sobresaliente, que asistido de una prudencia política igual a sus eminentes talentos, sepa regir el cuerpo entero de la monarquía de modo que en nada se le pueda reprender; y tenga asimismo la ventaja del secreto en las determinaciones que fuere preciso tomar contra los enemigos de la corona. Paso a la oligarquía, en la cual, siendo muchos en dar pruebas de valor y en granjear méritos para con el público, es consecuencia natural que la misma emulación engendre aversión y odio de unos hacia los otros; pues queriendo cada cual ser el principal autor y como cabeza en las resoluciones públicas, es necesario que den en grandes discordias y mutuas enemistades, que de las enemistades pasen a las sediciones de los partidos, y de las muertes a la monarquía, dando con este último recurso una prueba real de que es este el mejor de todos los gobiernos posibles. ¿Qué diré del estado popular, en el cual es imposible que no vayan anidando el cohecho y la corrupción en el manejo de los negocios? Adoptada una vez esta lucrativa iniquidad y familiarizada entre los que administran los empleos en vez de odio no engendra sino harta unión en los magistrados de una misma gavilla que se aprovechan privadamente del gobierno y se cubren mutuamente por no quedar en descubierto ante el pueblo. De este modo suelen andar los negocios de la república, hasta tanto que un magistrado les aplica el remedio, y logra que el desorden público cese y acabe. Con esto, viniendo a ser objeto de la admiración del vulgo, ábrese camino con ella para llegar a ser monarca, dando en esto una nueva prueba de que la monarquía es el gobierno más acertado. Y, para decirlo en una palabra, ¿de dónde vino a la Persia, pregunto, la independencia y libertad pública? ¿Quién fue el autor de su imperio? ¿Fue acaso el pueblo? ¿Fue por ventura la oligarquía? ¿O fue más bien un monarca? En suma, mi parecer es que nosotros los persas, hechos antes libres y señores del imperio por un varón, por el gran Ciro, mantengamos el mismo sistema de gobierno, sin alterar de ningún modo las leyes y fueros de la patria, lo más útil que contemplo para nosotros.»</p> +<p>Heródoto de Halicarnaso, Historias, LXXXII.</p> +</cita> +<p>El mismo santo Tomás de Aquino viene a defender el principio monárquico mediante un detenido estudio filosófico y teológico en <i>De regimine principum</i>, culminando la revitalización de la filosofía política clásica por medio de la medieval (aunque el santo seguirá a Aristóteles). Por otro lado, el estudio detallado de la teología cristiana y la <a href="../teologia-historia-monarquia">teología de la historia</a> no tendrían, para un cristiano, ninguna otra respuesta válida más que la primacía espiritual de la monarquía; y por ello la monarquía debe ser católica, pues católica es la esencia del pensamiento monárquico medieval y la sacralización del pensamiento clásico, siendo la defensa de la Fe la causa y fin de la propia monarquía hispánica. Además, la monarquía tradicional debe estar integrada en la Cristiandad (materialización civil de la unidad católica). Para ello debe ser un régimen en el cual la gracia pueda operar, es decir, debe ser un régimen natural. Y por eso debe estar integrada en el orden natural de la Creación, de tal suerte que respete el origen divino del poder y de la justicia, y por lo tanto, la subordinación indirecta de lo civil a lo religioso. Por ello, no se concibe la monarquía tradicional sin su esencia católica (de hecho, la monarquía hispánica también fue conocida como la monarquía católica).</p> +<p>No por casualidad, durante toda la Historia hasta la Revolución imperaba el régimen monárquico: es el análisis detenido de las formas de gobierno, unido al deber de transmisión que imprime la Tradición, lo que cristalizó el conjunto orgánico de monarquias que integraban la Cristiandad. Así, considero elemental la recuperación de una opción política, correcta y demostrada a la que es preciso aferrarse para la restitución del orden clásico. Dicha opción no podría ser otra que la monarquía tradicional, nacida al amparo de la Iglesia y arraigada en la historia. Monarquía que ha padecido el liberalismo tanto en lo personal (con la usurpación) como en lo doctrinal (con la Revolución), generando ese engendro paradójico que hoy llaman monarquía parlamentaria, que no puede ser otra cosa que liberalismo disfrazado de cetro y corona.</p> +<p>En conclusión, la monarquía hereditaria además de ser la forma de gobierno tradicional de España se muestra también como la opción más práctica para lograr un buen gobierno, debido a su mayor predisposición para crear lealtad en la población y su mayor estabilidad, incorruptibilidad y eficiencia. El hecho de que muchas personas sean reacias a siquiera considerar esta forma de gobierno como aceptable se deriva más que de un análisis serio de sus características, de una falsa presuposición de que es injusto que el gobernante tenga su cargo por nacimiento en vez de por méritos, pero aparte de ser seguramente algo iluso suponer que otras formas de gobierno implican esa meritocracia, el fin que se busca lograr al establecer una forma de gobierno es facilitar lo más posible un buen gobierno, y si eso lo logra la monarquía hereditaria, no hay nada injusto en ello que nos obligue a usar otras formas de gobierno aun siendo peores, el cargo de gobernante no es algo que se deba por justicia al que mayores capacidades tenga para gobernar, el fin del cargo es como expusimos en el principio el bien común del pueblo gobernado, y si eso se consigue mejor con un sistema no meritocrático no hay nada de malo en ello.</p> +<p><sup>1</sup> Los regímenes dictatoriales serían, por la experiencia, los más adecuados para lograr obediencia -a parte de las posibles disidencias-. Sin embargo, su principal debilidad parece estar en el hecho de la sucesión del poder, ya que, la legitimidad del gobernante pasa por méritos concretos, hecho que produce mayor debilidad e inestabilidad. Se introduce en dicha sucesión de nuevo, el proceso electivo.</p><p><sup>2</sup> En los regímenes dictatoriales también hay inestabilidad, aunque menor, pues el gobernante depende en buena parte del apoyo popular, que puede ser volátil, y de aquellos que han favorecido su llegada al poder en primera instancia. En este caso la sucesión no suele conllevar ese giro en el ideario político, sin embargo sí es fuente de influencias externas e internas que le pueden producir mayor inestabilidad.</p> +</body> +</html> +\ No newline at end of file diff --git a/apologia-monarquia/monarquia.jpg b/apologia-monarquia/monarquia.jpg Binary files differ. diff --git a/apologia-monarquia/san-fernando.jpg b/apologia-monarquia/san-fernando.jpg Binary files differ. diff --git a/aquino/index.html b/aquino/index.html @@ -14,49 +14,39 @@ </header> <p>Tiempo llevo analizando y contemplando, si ese verbo puede ser usado al respecto, la gigantesca obra de Tomás de Aquino. Y tiempo llevo comprobando, casi experimentalmente, que el vulgo no conoce realmente su obra más que resúmenes y apéndices existentes en las clases y los libros de filosofía. La nula profundización en el santo medieval no hace sino acrecentar la sospecha y reducir, a menudo absurdamente, todo su pensamiento. Es llamativo, pues pocos han arrojado tanta luz filosófica y teológica, que tan pocos han comprendido. No me las doy, Dios me libre, de conocedor del pensamiento tomista en su totalidad, sino simplemente un mero lector. Si bien las cinco vías propuestas por Tomás son y han sido mal explicadas, malinterpretadas, leídas y analizadas desde errores de fundamento, etc; lo único que ha logrado es dar una imagen equivocada, ya no sólo de dichas proposiciones tomistas, sino de arrojar desconocimiento de toda su metafísica.</p> <p>Primero, el lector debe comprender que para Tomás, las cinco vías no se trataban de una obra apologética, sino sirven como manual introductorio para principiantes en filosofía, por lo que da por supuesto que los términos empleados ya eran conocidos y estaban familiarizados con ellos. Las vías tampoco querían servir para convencer al escéptico, ni para demostrar si quiera la existencia de Dios. Tampoco son una justificación detallada de las premisas de su pensamiento; porque las vías parten de la visión y el convencimiento previo de la existencia de Dios, y segundo, porque son esbozos de su pensamiento, no una formulación definitiva y acabada. Las cinco vías no son autónomas: no pueden comprenderse sin su contexto dentro de la propia Summa, ni sin el conjunto del pensamiento tomista.</p> -<p>En definitiva, las vías son resúmenes, por lo que el santo presupone algunos conceptos que pretendo contextualizar para que sean más comprensibles, como:</p> -<h2>Del Principio de razón suficiente</h2> -<p>Uno de los presupuestos filosóficos básicos en las vías es el principio de razón suficiente, que busca la explicación última de un fenómeno que comparece en la experiencia, lo que presupone que debe haber una explicación a éste. Es decir, un hecho bruto no puede carecer de razón de su existencia.</p> -<h2>De la justificación de los atributos de Dios</h2> +<p>En definitiva, las vías son resúmenes, por lo que el santo presupone algunos conceptos que pretendo contextualizar para que sean más comprensibles, como:</p><h2>Del Principio de razón suficiente</h2> +<p>Uno de los presupuestos filosóficos básicos en las vías es el principio de razón suficiente, que busca la explicación última de un fenómeno que comparece en la experiencia, lo que presupone que debe haber una explicación a éste. Es decir, un hecho bruto no puede carecer de razón de su existencia.</p><h2>De la justificación de los atributos de Dios</h2> <p>Por otro lado, la conclusión de la identificación de la primera causa de cada una de ellas en Dios, es objeto de crítica por parte de muchos lectores, que ven injustificada tal identificación con Dios, siendo Éste omnipotente, omnisciente, inteligente, inmaterial... De hecho, dentro de la lógica de las vías, ¿por qué no podría haber más de un motor inmóvil? como así lo defendía Aristóteles ¿por qué no podría ser un ser impersonal? ¿un fenómeno físico desconocido?. Entonces, el lector debe comprender que las vías continúan desarrollándose en las siguientes veinticinco cuestiones, más de trescientas páginas a doble columna en las que el santo desgrana y deduce lógicamente cada uno de los atributos que dicha causa debe tener, que coincide, evidentemente, con aquello que todos llaman Dios y sus atributos. Como decíamos anteriormente, las vías son sólo resúmenes que no pueden ser estudiadas de forma autónoma, hacerlo es ignorante, o deshonesto.</p> <p>Dicho esto, me parece oportuno hacer un pequeño análisis de las vías, desde este marco de pensamiento:</p> <h1>Estructura de las cinco vías</h1> <p>Habiendo introducido brevemente el pensamiento del Aquinate, el lector deberá comprender que las 5 vías siguen una estructura similar; es más, la estructura es base para su estudio, pues no se le debe conceder al número de vías una importancia crucial. El propio Tomás, en su <i>Summa Contra Gentiles</i>, reduce las vías a cuatro, y en su <i>Compendium Theologiæ</i> a una sola.</p> -<p>Así, todas las vías siguen la estructura de:</p> -<h2>1. Efecto observable en la Naturaleza</h2> +<p>Así, todas las vías siguen la estructura de:</p><h2>1. Efecto observable en la Naturaleza</h2> <p>Así, todas las vías inician con un punto de partida empírico, algo que se descubre simplemente observando a la Naturaleza. En esencia, este punto de partida es siempre elmismo: el ente sensible, compuesto de potencia y acto, objeto propio del entendimiento. Formalmente, el punto de partida de cada una de las vías es distinto, caad una toma al ser finito bajo una modalidad específcamente diversa.</p> -<p>Tomás parte siempre de un dato conocido empíricamente porque considera que sólo de una existencia real dada puede deducirse una existencia no dada empíricamente. Éste es el motivo por el cual rechaza el <i>Argumento ontológico anselmiano</i>, que salta de la idea de Dios a la afirmación de su existencia.</p> -<h2>2. Principio de causalidad</h2> -<p>La aplicación del Principio de causalidad es esencial con el fin de buscar la causa que dé razón de la existencia del efecto observado. Partiendo de la experiencia, esto le permite al santo remontarse más allá de ella. Es más, sin la aplicación de este principio las vías se tornarían intransitables. El paso del efecto a la causa es crucial.</p> -<h2>3. Imposibilidad de una regresión al infinito</h2> +<p>Tomás parte siempre de un dato conocido empíricamente porque considera que sólo de una existencia real dada puede deducirse una existencia no dada empíricamente. Éste es el motivo por el cual rechaza el <i>Argumento ontológico anselmiano</i>, que salta de la idea de Dios a la afirmación de su existencia.</p><h2>2. Principio de causalidad</h2> +<p>La aplicación del Principio de causalidad es esencial con el fin de buscar la causa que dé razón de la existencia del efecto observado. Partiendo de la experiencia, esto le permite al santo remontarse más allá de ella. Es más, sin la aplicación de este principio las vías se tornarían intransitables. El paso del efecto a la causa es crucial.</p><h2>3. Imposibilidad de una regresión al infinito</h2> <p>Si la causa a la que se ha accedido en el segundo paso no tiene en sí la razón de su existencia, deberemos remontarnos entonces a su causa.</p> <p>Otro punto a tener en cuenta también es que Tomás de Aquino presupone que es imposible un regreso infinito ¿por qué debe haber una primera causa? ¿no puede el universo ser eterno? se preguntará el lector. Pues bien, esta es -con diferencia- la objeción más malinterpretada actualmente: primero, indicando que Tomás defiende injustificadamente que sea imposible, y en segundo término, que bien podría ser que el universo sea eterno sin primera causa. Si bien, de nuevo, Tomás no justifica su premisa en las vías -por lo que ya venimos diciendo de la naturaleza de las vías-, esto ya lo ha tratado anteriormente y lo obvia.</p> <p>Lo más llamativo llega cuando conocemos que Tomás, de hecho, estaba de acuerdo con la eternidad del universo (<i>aeternitate mundi</i>). No es extraño, pues así lo defendía Aristóteles. Tomás no creía que fuera posible demostrar filosóficamente que el universo tuviera un comienzo, siendo detractor del <i>argumento cosmológico Kalām</i>, defendido por su amigo San Buenaventura.</p> -<p>Quizá esto sea confuso para muchos, pues el medieval no veía en Dios la primera causa en el pasado, en la línea temporal, sino en el presente. Es una distinción que en la era actual se pasa por alto, pero que no pasaría por alto por el promedio medieval, donde dicha distinción es base, siendo los tipos de series causales:</p> -<ul> -<li><i>Per accidents</i>; siendo ésta accidentalmente ordenada, horizontal y lineal. <p>En ella, la actividad causal de los miembros posteriores no depende esencialmente de los miembros anteriores: cada miembro de la serie tiene el poder causal intrínsecamente, y por lo tanto puede actuar en independencia a los demás. Véase una sucesión abuelo, padre, hijo, nieto... El poder generativo de cada miembro es independiente de los miembros anteriores; siguiendo con el ejemplo, no necesito de la presencia de mi padre y mi abuelo para generar un hijo, no necesito si quiera que estén vivos. Puesto que el poder de engendrar es intrínseco.</p></li> -<li><i>Per se</i>; siendo ésta esencialmente ordenada, jerárquica y vertical. <p>En ella, sus miembros no se extienden atrás en el pasado, sino que existen y actúan simultáneamente aquí y ahora. Por ejemplo, una hoja está sujeta por una rama, y ésta a un árbol, y el árbol a la tierra. En este caso, los miembros posteriores dependen de los anteriores, si éstos desaparecieran, los posteriores no podrían seguir produciendo su efecto. La causa está sostenida sucesivamente y derivando el poder causal.</p><p>Si en una serie así, los miembros posteriores sólo pueden producir aquí y ahora el efecto, porque derivan el poder para ello de los miembros anteriores; entonces, ni la serie ni el efecto podrían existir si no hubiera, aquí y ahora, un miembro que sostuviera el poder causal intrínseco, no derivado, incorporado y por esencia; y sin tener que derivarlo de ningún otro. Así, una serie causal jerárquica sin un primer miembro sería absurdo; han de tener por necesidad un primer miembro.</p></li> +<p>Quizá esto sea confuso para muchos, pues el medieval no veía en Dios la primera causa en el pasado, en la línea temporal, sino en el presente. Es una distinción que en la era actual se pasa por alto, pero que no pasaría por alto por el promedio medieval, donde dicha distinción es base, siendo los tipos de series causales:</p><ul> +<li><i>Per accidents</i>; siendo ésta accidentalmente ordenada, horizontal y lineal.<p>En ella, la actividad causal de los miembros posteriores no depende esencialmente de los miembros anteriores: cada miembro de la serie tiene el poder causal intrínsecamente, y por lo tanto puede actuar en independencia a los demás. Véase una sucesión abuelo, padre, hijo, nieto... El poder generativo de cada miembro es independiente de los miembros anteriores; siguiendo con el ejemplo, no necesito de la presencia de mi padre y mi abuelo para generar un hijo, no necesito si quiera que estén vivos. Puesto que el poder de engendrar es intrínseco.</p></li> +<li><i>Per se</i>; siendo ésta esencialmente ordenada, jerárquica y vertical.<p>En ella, sus miembros no se extienden atrás en el pasado, sino que existen y actúan simultáneamente aquí y ahora. Por ejemplo, una hoja está sujeta por una rama, y ésta a un árbol, y el árbol a la tierra. En este caso, los miembros posteriores dependen de los anteriores, si éstos desaparecieran, los posteriores no podrían seguir produciendo su efecto. La causa está sostenida sucesivamente y derivando el poder causal.</p><p>Si en una serie así, los miembros posteriores sólo pueden producir aquí y ahora el efecto, porque derivan el poder para ello de los miembros anteriores; entonces, ni la serie ni el efecto podrían existir si no hubiera, aquí y ahora, un miembro que sostuviera el poder causal intrínseco, no derivado, incorporado y por esencia; y sin tener que derivarlo de ningún otro. Así, una serie causal jerárquica sin un primer miembro sería absurdo; han de tener por necesidad un primer miembro.</p></li> </ul> <p>Por lo tanto, cuando Santo Tomás deduce que es imposible una regresión al infinito, siempre se refiere a una serie causal <i>per se</i>, jerárquica; y nunca a una <i>per accidents</i> o lineal. La primera causa a la que Tomás quiere llegar no está en un punto remoto del tiempo pasado, sino que es y está aquí y ahora sosteniendo en el Ser a todo lo demás, sin necesidad de derivar su propia existencia de ninguna otra cosa. La llama primera, pero no por temporal (donde sucesivamente le seguirían la segunda, tercera, cuarta...), sino porque todas las causas siguientes son segundas.</p> -<p>Como conclusión, el plano en el que se mueve la reflexión, y por tanto el plano en el que se aplica aquí el Principio de Causalidad, es el metafísico y no el físico.</p> -<h2>4. Existencia de una causa primera</h2> +<p>Como conclusión, el plano en el que se mueve la reflexión, y por tanto el plano en el que se aplica aquí el Principio de Causalidad, es el metafísico y no el físico.</p><h2>4. Existencia de una causa primera</h2> <p>Cada una de las vías concluye afirmando la existencia de la causa primera del efecto tomado como punto de partida, siendo una sucesión -como decíamos antes- de causas segundas.</p> -<h1>Breve desarrollo de las vías</h1> -<h2>I. Vía del movimiento</h2> +<h1>Breve desarrollo de las vías</h1><h2>I. Vía del movimiento</h2> <cita> <p>«La primera y más clara es la que se deduce del movimiento. Pues es cierto, y lo perciben los sentidos, que en este mundo hay movimiento. Y todo lo que se mueve es movido por otro. De hecho, nada se mueve a no ser que en cuanto potencia esté orientado a aquello para lo que se mueve. Por su parte, quien mueve está en acto. Pues mover no es más que pasar de la potencia al acto. La potencia no puede pasar a acto más que por quien está en acto. Ejemplo: el fuego, en acto caliente, hace que la madera, en potencia caliente, pase a caliente en acto. De este modo la mueve y cambia. Pero no es posible que una cosa sea lo mismo simultáneamente en potencia y en acto; sólo lo puede ser respecto a algo distinto. Ejemplo: Lo que es caliente en acto, no puede ser al mismo tiempo caliente en potencia, pero sí puede ser en potencia frío. Igualmente, es imposible que algo mueva y sea movido al mismo tiempo, o que se mueva a sí mismo. Todo lo que se mueve necesita ser movido por otro. Pero si lo que es movido por otro se mueve, necesita ser movido por otro, y éste por otro. Este proceder no se puede llevar indefinidamente, porque no se llegaría al primero que mueve, y así no habría motor alguno pues los motores intermedios no mueven más que por ser movidos por el primer motor. Ejemplo: Un bastón no mueve nada si no es movido por la mano. Por lo tanto, es necesario llegar a aquel primer motor al que nadie mueve. En éste, todos reconocen a Dios.»</p> <p>Tomás de Aquino, <i>Summa Theologiae I, q. 2, a. 3</i></p> </cita> <p>En el mundo las cosas que se mueven (hecho de experiencia) y todo lo que se mueve es movido por otro (causalidad), siendo que la refresión infinita es imposible, tiene que haber al menos un motor inmóvil que se mueva sin ser movido por otro.</p> <p>Evidentemente, no hablamos del movimiento local y físico sino al <i>motus</i> del léxico aristotélico, que es sinónimo de cambio. El cambio, en el análisis de Aristóteles, es el paso de la potencia al acto. Así podríamos reformularlo con lenguaje más moderno -y menos rico- en que todo lo que pasa de la potencia al acto es actualizado por algo que ya está en acto, como es imposible la regresión al infinito, debe haber un actualizador puramente actual.</p> -<p>Incluso si negáramos el cambio en la realidad, estaríamos obligados a reconocer racionalmente que sí lo hay con respecto a nuestros estados mentales, por lo que es un punto de partida bastante sólido.</p> -<h2>II. Vía de la causa eficiente</h2> +<p>Incluso si negáramos el cambio en la realidad, estaríamos obligados a reconocer racionalmente que sí lo hay con respecto a nuestros estados mentales, por lo que es un punto de partida bastante sólido.</p><h2>II. Vía de la causa eficiente</h2> <cita> <p>«La segunda es la que se deduce de la causa eficiente. Pues nos encontramos que en el mundo sensible hay un orden de causas eficientes. Sin embargo, no encontramos, ni es posible, que algo sea causa eficiente de sí mismo, pues sería anterior a sí mismo, cosa imposible. En las causas eficientes no es posible proceder indefinidamente porque en todas las causas eficientes hay orden: la primera es causa de la intermedia; y ésta, sea una o múltiple, lo es de la última. Puesto que, si se quita la causa, desaparece el efecto, si en el orden de las causas eficientes no existiera la primera, no se daría tampoco ni la última ni la intermedia. Si en las causas eficientes llevásemos hasta el infinito este proceder, no existiría la primera causa eficiente; en consecuencia no habría efecto último ni causa intermedia; y esto es absolutamente falso. Por lo tanto, es necesario admitir una causa eficiente primera. Todos la llaman Dios.»</p> <p>Tomás de Aquino, <i>Summa Theologiae I, q. 2, a. 3</i></p> </cita> -<p>Encontramos en el mundo causas eficientes subordinadas (hecho de experiencia) y nada es causa de sí mismo (causalidad), puesto que no es posible una regresión infinita de causas, tiene que haber una causa incausada. Por ejemplo, la existencia de la materia es causa de la existencia de sus moléculas, y éstas son causas de la existencia del átomo, y éste... Finalmente debe haber una causa incausada, un primer miembro causal que exista por sí mismo, sin ser causado.</p> -<h2>III. Vía de la contingencia o del ser necesario</h2> +<p>Encontramos en el mundo causas eficientes subordinadas (hecho de experiencia) y nada es causa de sí mismo (causalidad), puesto que no es posible una regresión infinita de causas, tiene que haber una causa incausada. Por ejemplo, la existencia de la materia es causa de la existencia de sus moléculas, y éstas son causas de la existencia del átomo, y éste... Finalmente debe haber una causa incausada, un primer miembro causal que exista por sí mismo, sin ser causado.</p><h2>III. Vía de la contingencia o del ser necesario</h2> <cita> <p>«La tercera es la que se deduce a partir de lo posible y de lo necesario. Y dice: Encontramos que las cosas pueden existir o no existir, pues pueden ser producidas o destruidas, y consecuentemente es posible que existan o que no existan. Es imposible que las cosas sometidas a tal posibilidad existan siempre, pues lo que lleva en sí mismo la posibilidad de no existir, en un tiempo no existió. Si, pues, todas las cosas llevan en sí mismas la posibilidad de no existir, hubo un tiempo en que nada existió. Pero si esto es verdad, tampoco ahora existiría nada, puesto que lo que no existe no empieza a existir más que por algo que ya existe. Si, pues, nada existía, es imposible que algo empezara a existir; en consecuencia, nada existiría; y esto es absolutamente falso. Luego no todos los seres son sólo posibilidad; sino que es preciso algún ser necesario. Todo ser necesario encuentra su necesidad en otro, o no la tiene. Por otra parte, no es posible que en los seres necesarios se busque la causa de su necesidad llevando este proceder indefinidamente, como quedó probado al tratar las causas eficientes (núm. 2). Por lo tanto, es preciso admitir algo que sea absolutamente necesario, cuya causa de su necesidad no esté en otro, sino que él sea causa de la necesidad de los demás. Todos le dicen Dios.»</p> <p>Tomás de Aquino, <i>Summa Theologiae I, q. 2, a. 3</i></p> @@ -64,15 +54,13 @@ <p>Encontramos que pueden ser o no ser, seres que se generan y se corrompen. Se suele usar el término contingente, que significa que en el mundo hay seres no permamentes, tienen una tendencia intrínseca a dejar de ser (hecho de experiencia). Todo lo que es capaz de no ser, en algún momento, es (causalidad). Si no es posible una regresión infinita, en algún momento no sería nada (lo lógico es que no fuera nada, porque lo que no existe no empieza a existir más que en virtud de lo que ya existe) debe haber un ser necesario no transitorio, un ser que no pueda no ser.</p> <p>Recordemos que en el pensamiento tomista el universo puede ser eterno, por lo que el universo podría no ser transitorio. Dicho esto, probar la existencia de un ser necesario no es equivalente de por sí a probar la existencia de Dios para Tomás, por lo que continúa con que un ser necesario o bien tiene la razón de su existencia en sí mismo, o bien la recibe de otro; no puede haber una regresión infinita y jerárquica de seres necesitados por otro, por lo que debe haber un ser necesario por sí mismo.</p> <p>La preposición de que si todos los seres fueran capaces de no ser, alguna vez no habría nada en la realidad, es controvertida. Pues algunos ven en ella una falacia de composición. Para evitarlo, algunos comentaristas sugieren que la preposición de Tomás asume un tiempo infinito; pues, si fuera posible que todos los seres transitorios dejen de ser, dado un tiempo infinito en el que se dan todas las posibilidades, también se daría aquella en algún momento. Y si alguna vez no hubiera nada, no puede venir algo de la nada, pues la nada, nada genera. Por lo que concluye con que es necesario un ser necesario por sí mismo.</p> -<p>Otros esquivan dicha problemática acudiendo a la <i>Summa contra gentiles</i>, donde el santo desarrolla el principio de causalidad sobre los seres contingentes, siendo que: encontramos en el mundo seres que pueden ser o no ser, que se generan y se corrompen (hecho de experiencia). Todo lo que puede ser o no ser, si es, tiene una causa (causalidad). De suyo, un ser posible está abierto tanto a ser como a no ser, por lo tanto, si existe, tiene que haber alguna otra cosa que de cuenta de su existencia, debe tener una causa. Es imposible una regresión infinita de causas, ergo tiene que haber un ser necesario que no pueda no ser.</p> -<h2>IV. Vía de los grados de perfección</h2> +<p>Otros esquivan dicha problemática acudiendo a la <i>Summa contra gentiles</i>, donde el santo desarrolla el principio de causalidad sobre los seres contingentes, siendo que: encontramos en el mundo seres que pueden ser o no ser, que se generan y se corrompen (hecho de experiencia). Todo lo que puede ser o no ser, si es, tiene una causa (causalidad). De suyo, un ser posible está abierto tanto a ser como a no ser, por lo tanto, si existe, tiene que haber alguna otra cosa que de cuenta de su existencia, debe tener una causa. Es imposible una regresión infinita de causas, ergo tiene que haber un ser necesario que no pueda no ser.</p><h2>IV. Vía de los grados de perfección</h2> <cita> <p>«La cuarta vía se toma de los grados que se encuentran en las cosas. Pues se encuentra en las cosas algo más y menos bueno, y verdadero, y noble, y así otras cosas semejantes. Pero este más y este menos se dice de las cosas en cuanto que se aproximan más o menos a lo máximo. Así, caliente se dice de aquello que se aproxima más al máximo calor. Hay algo, por tanto, que es verísimo y óptimo y nobilísimo; y, en consecuencia, es el máximo ser; pues las cosas que son máximamente verdaderas, son máximamente seres, como se dice en II Metaphys.. Pero lo que es máximamente tal en algún género es la causa de todas las cosas que son de ese género, como el fuego, que es el máximo calor, es causa de todos los calores, como se explica en el mismo libro —, del mismo modo hay algo que en todos los seres es causa de su ser, de su bondad, de cualquier otra perfección, y a éste le llamamos Dios.»</p> <p>Tomás de Aquino, <i>Summa Theologiae I, q. 2, a. 3</i></p> </cita> <p>Encontramos en las cosas perfecciones puras trascendentales (lo bueno, verdadero, noble...) realizadas en distintos grados (hecho de experiencia), como que un ser humano es más perfecto que un animal, y éste que una planta, y ésta que una roca... Ninguna perfección que pertenezca a la esencia de una cosa puede tenerse de modo limitada (causalidad). Puesto que es imposible una regresión infinita tiene que existir un ser máximamente perfecto, que posea estas perfecciones por su propia esencia y no por causa de otro.</p> -<p>Quizá esta sea la vía más compleja, que presupone doctrina de los trascendentales y cierta idea de la participación, que no son objeto de análisis en este escrito.</p> -<h2>V. Vía de la finalidad o de la teleología</h2> +<p>Quizá esta sea la vía más compleja, que presupone doctrina de los trascendentales y cierta idea de la participación, que no son objeto de análisis en este escrito.</p><h2>V. Vía de la finalidad o de la teleología</h2> <cita> <p>«La quinta se deduce a partir del ordenamiento de las cosas. Pues vemos que hay cosas que no tienen conocimiento, como son los cuerpos naturales, y que obran por un fin. Esto se puede comprobar observando cómo siempre o a menudo obran igual para conseguir lo mejor. De donde se deduce que, para alcanzar su objetivo, no obran al azar, sino intencionadamente. Las cosas que no tienen conocimiento no tienden al fin sin ser dirigidas por alguien con conocimiento e inteligencia, como la flecha por el arquero. Por lo tanto, hay alguien inteligente por el que todas las cosas son dirigidas al fin. Le llamamos Dios.»</p> <p>Tomás de Aquino, <i>Summa Theologiae I, q. 2, a. 3</i></p> diff --git a/archlinux/index.html b/archlinux/index.html @@ -17,15 +17,13 @@ <p>Realmente, el uso de Arch es muy simple, siendo incluso más simple que distribuciones basadas en Debian (sobretodo, por su gestor de paquetes, que lo hace excesivamente sencillo de utilizar incluso para un novato). Sin embargo, si hay una barrera de entrada para comenzar a usar este sistema operativo no es otra que cosa que la instalación. La instalación del sistema no cuenta con formularios gráficos ni diálogos que guien al usuario; sino simplemente ofrece una sesión de shell y otorga libertad total sobre ella al usuario.</p> <p>Es por esta razón que he compendiado los pasos que realizó personalmente a la hora de construir mi sistema de Arch.</p> <p>El inicio es sencillo, el console keymap por defecto es US (inglés americano). Para modificar el diseño, agregue el nombre de layout correspondiente. Por ejemplo, para establecer una distribución de teclado en español utilice:</p> -<pre><code># loadkeys es</code></pre> -<h2>Verificación de modo de arranque (boot mode)</h2> +<pre><code># loadkeys es</code></pre><h2>Verificación de modo de arranque (boot mode)</h2> <p>En términos simples, la BIOS (Sistema Básico de Entrada/Salida) y UEFI (Interfaz de Firmware Extensible Unificada) son dos tecnologías diferentes utilizadas para iniciar un sistema operativo en una computadora.</p> <p>La BIOS, que significa Sistema Básico de Entrada/Salida, ha sido la interfaz estándar durante décadas. Se encarga de las operaciones básicas del sistema, incluido el proceso de arranque. Sin embargo, tiene limitaciones en cuanto a la capacidad de manejar discos duros grandes y sistemas operativos modernos.</p> <p>Por otro lado, UEFI, que significa Interfaz de Firmware Extensible Unificada, es una tecnología más reciente que reemplaza gradualmente a la BIOS. UEFI proporciona una interfaz más avanzada y versátil, permitiendo un arranque más rápido y una mayor capacidad para gestionar hardware y sistemas operativos modernos. Además, UEFI supera las limitaciones de tamaño de disco asociadas con la BIOS. <p>Para verificar el modo de arranque, liste el directorio <emb>efivars</emb>:</p> <pre><code># ls /sys/firmware/efi/efivars</code></pre> -<p>Si la salida muestra el contenido del directorio (stdout) sin error, entonces el sistema de inicio es UEFI. Si por el contrario ofrece error (stderr) debido a que el directorio no existe, entonces el sistema se inicia en modo BIOS (ó CSM).</p> -<h2>Conexión a Internet</h2> +<p>Si la salida muestra el contenido del directorio (stdout) sin error, entonces el sistema de inicio es UEFI. Si por el contrario ofrece error (stderr) debido a que el directorio no existe, entonces el sistema se inicia en modo BIOS (ó CSM).</p> <h2>Conexión a Internet</h2> <p>Si tenemos comunicación ethernet con salida a Internet, conéctelo. De lo contrario será necesario establecer conexión con la red a través de WiFi (siempre que el equipo cuente con el hardware necesario). Utilizaremos <emb>iwctl</emb> para autenticarnos a la red inalámbrica.</p> <p>Para obtener un prompt interactivo haga:</p> <pre><code># iwctl</code></pre> @@ -38,14 +36,12 @@ <pre><code>[iwd]# station d get-networks</code></pre> <p>Finalmente, para conectar con una de estas redes conociendo su SSID indique:</p> <pre><code>[iwd]# station d connect SSID</code></pre> -<p><emb>iwd</emb> le indicará que indique la contraseña en caso de contar con seguridad (lo que es altamente recomendable).</p> -<h2>Particionado de discos</h2> +<p><emb>iwd</emb> le indicará que indique la contraseña en caso de contar con seguridad (lo que es altamente recomendable).</p><h2>Particionado de discos</h2> <p>Cuando son reconocidos por el sistema live, los discos son asignados a un dispositivo de bloques como <emb>/dev/sda</emb>, <emb>/dev/nvme0n1</emb> ó <emb>/dev/mmcblk0</emb>. Para identificar estos dispositivos, utilice <emb>lsblk</emb> ó <emb>fdisk</emb>. El siguiente presupondrá la siguiente partición de discos:</p> <pre><code>boot /dev/sda1 /boot 150MB *Bootable root /dev/sda2 / - home /dev/sda3 /home - -swap /dev/sda4 /swap 2GB Type: Linux Swap / Solaris</code></pre> -<h2>Formateo de particiones</h2> +swap /dev/sda4 /swap 2GB Type: Linux Swap / Solaris</code></pre><h2>Formateo de particiones</h2> <p>Una vez particionados los discos y sus particiones, éstas deben ser formateadas con un sistema de archivos apropiado.</p> <p>En caso de contar con un sistema UEFI, formatearemos la partición de <emb>/boot</emb> en <emb>VFAT</emb>:</p> <pre><code>mkfs.vfat -F32 $boot</code></pre> @@ -55,8 +51,7 @@ swap /dev/sda4 /swap 2GB Type: Linux Swap / Solaris</code></pre> <pre><code>mkfs.ext4 $root mkfs.ext4 $home mkswap $swap -swapon $swap</code></pre> -<h2>Montaje de sistema de archivos</h2> +swapon $swap</code></pre><h2>Montaje de sistema de archivos</h2> <p>Monte primero el volumen raíz en /mnt: </p> <pre><code>mount $root /mnt if [ $uefi = true ]; then @@ -67,8 +62,7 @@ else mount $boot /mnt/boot fi mkdir /mnt/home -mount $home /mnt/home</code></pre> -<h2>Instalación del sistema base</h2> +mount $home /mnt/home</code></pre><h2>Instalación del sistema base</h2> <p>Los paquetes a instalar se descargarán de los servidores espejo, que se definen en /etc/pacman.d/mirrorlist. Cuanto más alto se coloca un espejo en la lista, más prioridad se le da al descargar un paquete; por lo que es posible que desee inspeccionar el archivo para ver si se encuentra en una prioridad deseable. Si no fuera así, edite el archivo en consecuencia y mueva los espejos geográficamente más cercanos a la parte superior de la lista (aunque existen otros criterios).</p> <p>Use el script pacstrap para instalar el paquete base, el kernel de Linux y el firmware para hardware común: </p> <pre><code># pacstrap /mnt base linux linux-firmware</code></pre> @@ -76,12 +70,11 @@ mount $home /mnt/home</code></pre> <pre><code>pacstrap /mnt base-devel grub networkmanager nano dhcpcd if [ $uefi = true ]; then pacstrap /mnt efibootmgr -fi</code></pre> -<h2>Configuración del sistema base</h2> +fi</code></pre><h2>Configuración del sistema base</h2> <p>Genere el archivo fstab (use -U ó -L para definir por UUID o labels, respectivamente):</p> <pre><code># genfstab -U -p /mnt >> /mnt/etc/fstab</code></pre> <p>Enjáulese ahora (chroot) en su nuevo sistema montado en /mnt:</p> -<pre><code># arch-chroot /mnt </code></pre> +<pre><code># arch-chroot /mnt</code></pre> <p>Indique la zona horaria, localización y keymap (en mi caso para una localización española):</p> <pre><code>ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime echo "LANG=es_ES.UTF-8" >> /etc/locale.conf @@ -111,22 +104,19 @@ pamixer # battery acpi -acpid</code></pre> -<h2>Configuración de usuario</h2> +acpid</code></pre><h2>Configuración de usuario</h2> <p>La nueva instalación le dejará sólo con una cuenta de superusuario (root). Iniciar sesión como root durante períodos prolongados de tiempo o exponerlo a través de SSH en un servidor es altamente inseguro. Por ello, le recomiendo (según sus necesidades) crear y usar una cuenta de usuario sin privilegios, que empleará en la mayoría de las tareas de usuario, dejando la cuenta root para la administración del sistema.</p> <pre><code># useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power,scanner -s /bin/bash $username # passwd $username</code></pre> <p>Si desea poder acceder con sudo desde usuario creado:</p> <pre><code># echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers</code></pre> <p>Indique la clave también para el usuario root: </p> -<pre><code># passwd</code></pre> -<h2>Arch User Repository [AUR]</h2> +<pre><code># passwd</code></pre><h2>Arch User Repository [AUR]</h2> <p>Si bien el Sistema de Compilación de Arch (Arch Build System) permite la capacidad de compilar software disponible en los repositorios oficiales, el Repositorio de Usuarios de Arch (Arch User Repository - AUR) es el equivalente para los paquetes enviados por el usuario. Para poder usarlo es necesario un software de gestión de paquetes especializado, como yay:</p> <pre><code># git clone https://aur.archlinux.org/yay.git # cd yay # makepkg -si -# yay -Syu</code></pre> -<h2>Configuración del gestor de arranque (bootloader)</h2> +# yay -Syu</code></pre><h2>Configuración del gestor de arranque (bootloader)</h2> <p>Elija e instale un gestor de arranque compatible con Linux. En este caso yo uso grub:</p> <pre><code>if [ $uefi = true ]; then grub-install --efi-directory=/boot/efi --bootloader-id='Arch Linux' --target=x86_64-efi @@ -134,8 +124,7 @@ else grub-install /dev/sda # TODO: GRUB se instala a pelo en SDA, cambiar por variable fi -grub-mkconfig -o /boot/grub/grub.cfg</code></pre> -<h2>Initframs</h2> +grub-mkconfig -o /boot/grub/grub.cfg</code></pre><h2>Initframs</h2> <p>Por lo general, no es necesario crear un nuevo initramfs, ya que mkinitcpio se ejecutó en la instalación del paquete del kernel con pacstrap. Tenga en cuenta que para LVM, cifrado del sistema o RAID será necesario modificar mkinitcpio.conf y volver a crear la imagen initramfs.</p> <pre><code># mkinitcpio -p linux</code></pre> </body> diff --git a/asesinato-dos-amantes/index.html b/asesinato-dos-amantes/index.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Asesinato de dos amantes (2020) de Robert Machoian</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Asesinato de dos amantes (2020) de Robert Machoian: una película en el lenguaje de los hombres</p> +<p class="date">3 de marzo de 2021 • fjbalon</p> +</header> +<p>Primeramente, he de reconocer que detesto los sentimentalismos, generalmente no suelo valorar aquello que una película puede hacerme sentir, ya que incluso un anuncio en televisión puede provocar hambre, indignación, satisfacción. Las emociones son algo maleable si no las sabes controlar, como cualquier ingeniero social comprende; y por ello el cine se puede convertir en un arma para generar emociones concretas en la audiencia con el objetivo que fuera. En esta era de superestímulos y sensiblería, tiendo a bloquear y a no estimar algo tan subjetivo.</p> +<p>Sin embargo, esta película me ha hecho sentir, me ha provocado emoción, y en este caso lo he valorado bastante. Clayne Crawford ha logrado hacerme vivir bajo su piel la situación que plantea la obra: un hombre desesperado por restaurar un matrimonio -y por ende, una familia- hundido, mientras la que fuera su esposa intenta rehacer su vida con otro hombre.</p> +<p>Como en «La integridad de Joseph Chambers», el director Robert Machoian continúa explorando la masculinidad decadente. Una masculinidad denostada en el mundo de hoy, una masculinidad lastrada, que carga con los problemas de su propia naturaleza como Atlas carga con el mundo. En este caso, un hombre sin autoridad, un hombre al que no le permiten mantener su familia, un hombre afectado por la demolición del principio de autoridad. La obra muestra, exquisitamente, las emociones del protagonista: la soledad, la frustación, el abandono, la fragilidad. Elegido como escenario la soledad del medio oeste americano y bajo una banda sonora compuesta de engranajes, mecánica y maquinaria; eleva la tensión para preparar al espectador para el más que plausible clímax del hombre primitivo, el hombre que desata su ira y violencia; pero que a la vez se presenta vulnerable, pretende respetar los sentimientos de su mujer, busca cortejarla como antaño, reedificar su familia, recuperar el control de su vida.</p> +<p>Comprendo que la película pueda no convencer, o no dar entendmiento para algunas mujeres o hombres deconstruidos. Comprendo que una película tan solitaria e independiente pueda aburrir a muchos, que esperarían el melodrama clásico. Sin embargo, tanto Machoian como Crawford se esfuerzan en presentar una psicología realista, verosímil, íntegra. Es una película que me creo absolutamente; una película masculina, que habla en el lenguaje de los hombres. Una película realista. Una joya del cine independiente.</p> +</body> +</html> +\ No newline at end of file diff --git a/autodefensa/index.html b/autodefensa/index.html @@ -0,0 +1,94 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Autodefensa en tiempos de guerra híbrida tecnocrática</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="/css/article.css" /></head> +<body> +<header> +<p class="title">Autodefensa en tiempos de guerra híbrida tecnocrática</p> + +<p class="date">13 de noviembre de 2020 • fjbalon</p> +</header> +<p>La guerra ha cambiado, pero no su esencia. La guerra está impregnada en el ADN del hombre. Puede cambiar la tecnología y el conocimiento científico, puede cambiar de magnitud y consecuencia, pero la naturaleza de la guerra se sostiene. Sin embargo, la capacidad de fuerza física, de daño, es hoy prácticamente total. Hoy, las potencias son potencias nucleares, son potencias en inteligencia, en recursos electrónicos, informáticos, mecánicos...</p> +<p>Y cada vez más enemigos se ciernen, ya no a nivel geopolítico únicamente, sino también a nivel social. Es por esta razón que es imprescindible acorazar el núcleo personal y familiar contra el entorno, que cada vez es más artificial y menos natural.</p> +<p>La oscilación entre estrategias tradicionales e irregulares para hacer la guerra es en la actualidad parte constitutiva de la doctrina militar. Así como la proliferación de guerras internas, la generalización de las operaciones especiales, insurgencia y generalización de actores armados no estatales, la importancia que han adquirido las tareas de información y propaganda, o el papel preponderante que tienen las poblaciones civiles en los conflictos actuales, así como el uso de tecnologías avanzadas en ciberataques con diversos objetivos y tipologías. Nos encontramos en la guerra quizá, más compleja de la historia, en cuanto a campo y técnica.</p> +<p>Se hace cada vez más difícil identificar al enemigo y las batallas iniciadas. Lo característico de la época en que vivimos es que los conflictos contemporáneos se desarrollan en una zona gris entre la paz y la guerra. Ese intersticio o zona de indefinición abarca aspectos espaciales, temporales y, por último, pero no menos importante, posibilita la producción de sentidos sociales en los que se diluye el ámbito civil y militar, así como la experiencia de conflictividad bélica que se normaliza en la cotidianidad. De hecho, el enemigo no tiene por qué provenir de una potencia extranjera, a menudo, son los propios gobernantes y compatriotas los que se convierten temporal y circunstancialmente en enemigos, haciendo la batalla híbrida afectados por el dominio mental y el neuromarketing de los que les gobiernan.</p> +<p>Como sabemos, desde el inicio de la crisis cov-id se ha formalizado el sistema tecnocrático global. Pero no nos engañemos, el sistema lleva más tiempo en construcción, y lo hemos permitido, sustentándose en la aquiescencia de la mayoría.</p> +<p>La naturaleza de la tecnocracia fue formalizada en 1932 por científicos e ingenieros de Columbia University. El movimiento se definió a sí mismo en 1938 de su edición The Technocrat: "La tecnocracia es la ciencia de la ingeniería social, la operación científica de todo el mecanismo social para producir y distribuir bienes y servicios a toda la población". El problema de basar el sistema político y económico en un sistema tecnocrático, es que basado en la ciencia y la ingeniería social reniega de todo sobrenatural. De hecho, niega toda estructura política que no sustente el propio sistema como parte fundamental del tejido de inferencia de ingeniería social contra la población; y digo contra, pues el hombre sirve de combustible al sistema; que tiene como fin el propio sistema. ¿Podría decir que la tecnocracía es la consecuencia final del materialismo? Probablemente; el hombre como ser meramente -defienden- material no tiene más razón de ser que formar parte este sistema altamente tecnificado (con lo que ello conlleva para las capacidades físicas e intelectuales del hombre), que enfrenta a las estructuras sociales fundamentales -de lo contrario, sería ilógico- como la familia o la comunidad, privando al hombre de trascendencia, religión o, por supuesto, moral.</p> +<p>Es en este escenario en el que se hace evidente la necesidad de alcanzar una serie de principios que permitan, en mayor o medida, garantizar seguridad y defensa ante terceros.</p><h2>Principio de independencia</h2> +<p>Mucha literatura existe sobre la importancia de mantener una independencia tecnológica en amplios ámbitos y espacios de la geopolítica. Una dependencia tecnológica conlleva una sumisión a los intereses relacionados del poseedor y proveedor de ésta. El mundo europeo mantiene una dependencia total, a nivel tecnológico, de los gigantes de China y Estados Unidos; existen por esta misma problemática proyectos que aumenten la independencia de aquellos, como los proyectos <a href="https://www.european-processor-initiative.eu/">EPI</a> (European Processor Initiative), <a href="https://eprocessor.eu/">eProcessor</a> (proyecto europeo basado en RISC-V y liderado por el BSC) o <a href="https://architecnologia.es/union-europea-destina-145-000-millones-impulsar-industria-semiconductores">el aumento de gasto en la industria de los semiconductores.</a></p> +<p>Quien controla la tecnología controla al usuario, y en los tiempos actuales, es necesario controlar la tecnología propia en contraposición de grandes empresas y gobiernos, que con ejemplos como <a href="https://es.wikipedia.org/wiki/XKeyscore">XKeyscore</a> o <a href="https://www.genbeta.com/seguridad/prism-cronologia-que-es-y-que-explicaciones-han-dado-los-implicados">Prism</a>, delatan el espionaje y monitorización a los que se tiene sometida la sociedad. Ya ni entramos en las organizaciones supranacionales que abstraen las naciones con objetivos similares.</p> +<p>Como individuos la supervivencia e independencia se complica conforme avanza el sistema tecnocrático, ¿cómo podemos mantener una independencia tecnológica?</p> +<ol type="I"> +<li>Si bien es casi utópico mantener una independencia informática total, puesto individualmente es una rareza tener capacidad de fabricación de componentes hardware y de obtención semiconductores, es necesario rebajar todo lo posible esta dependencia en cuanto a hardware.</li> +<li>A nivel de software y sistema operativo es más sencillo implementar independencia, debido a sistemas operativos libres (véase GNU y Linux) y abiertos que garantizan el uso legítimo y el servicio de las máquinas, haciendo necesario comprender y emplear licencias libres o, al menos, control sobre la compilación, distribución y código fuente del software a usar. Se aplicarían aquí principios de confianza.</li> +<li>Considero evitar la abstracción computacional, y a consecuencia el uso desmedido de «cloud» o «nube», así como software como servicio. Véase <a href="../idiotizacion-computacional">la «idiotización computacional» fruto de la abstracción</a> para más información.</li> +<li>Es interesante buscar alcanzar un autoalojamiento de servicios, obteniendo control sobre el dominio informático y administrando un cosmos computacional compuesto de servidores VPN, intranets, protocolos seguros como SSH, servicios web, comunicaciones, seguridad, etc.</li> +<li>En el uso de IoT, es altamente recomendable utilizar «tecnología tonta» siempre que no se pueda garantizar la seguridad y control de estas máquinas. En caso de no poder evitarlo, capar y bloquear tantas opciones como se pueda.</li> +</ol> +<p>Así, aplicamos el principio de independencia no sólo a la informática, sino a diversos campos:</p> +<ol type="I"> +<li>Independencia energética, que cada día es más factible de cara a reducir drásticamente el uso de red eléctrica, autoconsumo y autogeneración, sea mediante tecnología fotovoltáica u otros modelos de generación eficiente. Que además se puede acompañar con uso de baterías para garantizar suministro autosuficiente en el tiempo. De tal forma que el usuario pueda garantizar consumo energético fuera de la dependencia de la red eléctrica.</li> +<li>Independencia en seguridad y defensa, algo complicado en el Estado español, pues monopoliza en él mismo la seguridad y la defensa, castigando e impidiendo al individuo garantizar su propia seguridad, no sólo contra terceros sino contra el propio Estado. Es deseable contar con tus propios sistemas de securización, sean cámaras de seguridad, alarmas, sistemas de control de desastres, sistemas de contingencias, sistemas de seguridad perimetral y física, etc.</li> +<li>Independencia de transporte, en cuanto los Estados persiguen y buscan regular vehículos en base a hidrocarburos (y posteriormente eléctricos) y limitan aun más su uso, en pos del transporte público que funciona bajo su control, la tenencia de uno o varios medios de transporte independientes será necesario para la supervivencia; así como medios alternativos (eléctricos, cinemáticos, etc.).</li> +<li>Independencia de recursos, que se entiende como la capacidad de generar tus propios bienes, así como materias primas como madera o piedra, alimento, etc. Esto es más complicado de llevar a cabo en grandes urbes, por razones obvias.</li> +<li>Independencia educacional o intelectual, que garantice la obtención de conocimiento y ciencia a partir de libros no reglados, es decir, conocimiento clásico, historia, filosofía, etc.</li> +<li>Independencia social, entendida como la creación de subsociedades afines y con principios de comunidad.</li> +</ol><h2>Principio de baja exposición</h2> +<p>El principio de baja exposición se basa, en teoría de la inteligencia, es rebajar al mínimo usable el tiempo de estancia en el que se es o se encuentra expuesto. Analógicamente, podríamos compararlo al tiempo que un agente pasa encubierto en terreno hostil. Entendido esto, todo sistema informático en la nube o como servicio debe ser, por defecto y hasta que no se demuestre lo contrario, entendido como territorio hostil.</p> +<p>Esto también es extrapolable al uso de software o hardware del que no conocemos el código fuente o diseño, en la medida de lo posible. Pues no podemos confiar en que el código emplee únicamente las funciones necesarias al propósito para el que lo requiere su usuario. Tampoco podemos estar seguros, aun confiando en su programador, a que una actualización implemente código malicioso o en que su distribución sea ilegítima. Todo código no confiable debe ser tratado automáticamente como malware; así como todo servicio en la nube.</p> +<p>Así, el principio de baja exposición sugiere que es mejor compartir la menor cantidad de información posible, y mantener espacios seguros a los que sacamos provecho. Así, cualquier cuenta online de la que no se obtiene rendimiento, debería ser automáticamente eliminada.</p> +<p>La idea final del principio, sería la de ofrecer la mínima información posible, durante el menor tiempo posible, a los trackers y espías.</p><h2>Técnicas de contraespionaje</h2> +<p>En un principio, los particulares no tenemos capacidad de disuasión, ni acceso a técnicas de represalia. La falta de poder y recurso es un factor determinante a tener en cuenta, pues será muy difícil tener capacidad para determinar la identidad de un atacante, por lo que no sería práctico perder tiempo y recursos ello. Por estas razones, las técnicas de contraespionaje y contramedidas serán de bajo recurso. Esto no implica claro, que sean inefiencientes o ineficaces, sino que se centrarán en dedicar los recursos a evitar el espionaje.</p> +<p>El principal y más eficaz objetivo en este aspecto es el uso de criptografía para proteger la información, tanto en transmisiones como en almacenamiento de información. Otras técnicas de contraespionaje que se pueden emplear en el uso cotidiano es la aplicación de técnicas de esteganografía.</p> +<p>El principio de baja exposición, que anteriormente hemos expuesto, es base para mantener un nivel de contraespionaje adecuado, debiendo ser complementado con el uso de contraseñas robustas y únicas, cifrado de datos sensibles, etc.</p><h2>Principio de seguridad</h2> +<p>Es necesario comprender que los pilares de la seguridad son:</p> +<ol type="I"> +<li>Confidencialidad: se garantiza que la información sólo es accesible por quien debe ser accesible.</li> +<li>Integridad: se garantiza que la información no ha podido sufrir modificaciones o alteraciones desde el origen.</li> +<li>Disponibilidad: la información está accesible en todo momento, al menos en todo momento en el que debe estarlo.</li> +</ol> +<p>Sobre estos pilares, se ordena lo que consideramos un sistema seguro dentro de la teoría de la seguridad clásica.</p> +<h2>Principio de defensa perimetral</h2> +<p>Ante tal espacio, la primera línea a tener en cuenta debe ser siempre la defensa del perímetro -sea familiar o institucional-, con el objetivo de garantizar seguridad y resiliencia, evitando y mitigando riesgos antes de que ocurran, y estableciendo políticas y medidas para una vez ocurrido un incidente. Con el objetivo de lograr reducir el ciber-riesgo crítico y el posible impacto de un compromiso, se hace necesaria la implementación inmediata de:</p> +<ol type="I"> +<li>Medidas de reducción de probabilidad de intrusión</li> +<ol type="I"> +<li>Validación de todo acceso remoto a la red familiar y acceso privilegiado, a ser posible con autenticación multifactor.</li> +<li>Mantenimiento actualizado de software, priorización de actualizaciones que aborden las vulnerabilidades explotadas conocidas e identificadas.</li> +<li>Deshabilitación de puertos y protocolos no esenciales.</li> +<li><a href="../idiotizacion-computacional/">Evitar «la nube»</a>. En caso de necesidad, asegurar e implementar controles estrictos.</li> +<li>Realización de análisis de vulnerabilidades periódicos, para reducir la exposición a las amenazas.</li> +</ol> +<li>Medidas de detección de posible intrusión</li> +<ol type="I"> +<li>Identificación y evaluación de cualquier comportamiento de red inesperado o inusual.</li> +<li>Habilitación de registro de logs para investigar mejor los problemas o eventos.</li> +</ol> +<li>Medidas de garantía de preparación de respuesta</li> +<ol type="I"> +<li>Designación de respuesta a crisis con los principales puntos de contacto para un supuesto incidente de ciberseguridad y roles/responsabilidades dentro de la organización, incluida las áreas de tecnología, comunicaciones, legal y continuidad comercial.</li> +<li>Asegurar la disponibilidad del personal clave; identificar los medios para proporcionar apoyo de emergencia para responder a un incidente.</li> +<li>Realización de ejercicios de simulación para garantizar la interiorización de roles.</li> +</ol> +<li>Medidas de resiliencia ante un incidente destructivo</li> +<ol type="I"> +<li>Procedimientos de respaldo, tanto de servicios como de datos (copias de seguridad) para asegurar restauración en caso de ataque ransomware o ciberataque destructivo; asegúrese de que las copias de seguridad estén aisladas de las conexiones de red y del apartado físico.</li> +<li>Si utiliza sistemas de control industrial o tecnología operativa, realice una prueba de controles manuales para asegurarse de que las funciones críticas permanezcan operativas si la red de la organización no está disponible o no es de confianza.</li> +</ol> +</ol> +<p>Estas medidas tienen como objetivo dotar al perímetro de una mayor seguridad, atendiendo a los pilares de confidencialidad, integridad y disponibilidad. Y para ello, estas medidas deben ser implementadas y tomadas, no sólo desde los estados, sino en desconfianza a ellos y sus institiuciones.</p> +<h2>Bibliografía y recomendaciones</h2> +<ul> +<li>«Guerras híbridas, aproximación indirecta al cambio de régimen» de Andrew Korybko</li> +<li><a href="https://www.geopolitica.ru/es/article/cibergeopolitica-el-quinto-elemento-del-nuevo-mundo">«Cibergeopolítica, el quinto elemento del nuevo mundo»</a> de Enrique J. Refoyo (geopolitica.ru)</li> +<li>«Manifiesto "La revolucion industrial y sus consecuencias han sido un desastre para la raza humana"» de Theodore Kaczynski</li> +<li>«El dominio mental» del Coronel Pedro Baños</li> +<li>«Mundo Orwell» del Coronel Ángel Gómez de Ágreda</li> +<li><a href="https://www.cisa.gov/sites/default/files/publications/CISA_Insights-Implement_Cybersecurity_Measures_Now_to_Protect_Against_Critical_Threats_508C.pdf">«Implement Cybersecurity Measures Now to Protect Against Potential Critical Threats</a>, CISA, January 18, 2022</li> +</ul> +</body> +</html> +\ No newline at end of file diff --git a/automate.sh b/automate.sh @@ -67,8 +67,7 @@ do cat <<EOF <a href="./$dir/" class="article"> <p class="title">$title</p> - <p class="info">$date · $author</p> - <p>$excerpt...</p> + <p class="info">$date · $author</p><p>$excerpt...</p> </a> EOF diff --git a/bateria/index.html b/bateria/index.html @@ -0,0 +1,157 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Diagnóstico de batería de litio desde software</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Diagnóstico de batería de litio desde software</p> +<p class="date">8 de diciembre de 2022 • fjbalon</p> +</header> +<p>La siguiente sección del cuaderno de bitácora detalla la investigación que he llevado a cabo para determinar el estado de salud de la batería de litio de mi ordenador portátil, la cual mantiene desde hace algo de tiempo un comportamiento extraño. Primero de todo, he querido omitir pruebas eléctricas directamente sobre el hardware, para detallar los pasos sobre el software y el sistema operativo que he seguido para determinar el diagnóstico.</p> +<p>La única información realmente útil para el lector es, entonces, que utilizo el sistema operativo GNU/Linux (con el kernel <emb>6.0.11-arch1-1</emb>) en su distribución archlinux.</p> +<p>Para leer el porcentaje de batería utilizada uso ACPI (<emb>acpi 1.7</emb>), concretamente los valores que se encuentran en <emb>/sys/class/power_supply/BAT0/</emb> (siendo <emb>BAT0</emb> la interfaz de batería de mi equipo).</p> +<p>Concretamente, el fragmento del código que obtiene el valor de batería es:</p> + +<pre><code>int perc; +char path[PATH_MAX]; + +if (esnprintf(path, sizeof(path), "/sys/class/power_supply/BAT0/capacity", bat) < 0) { + return NULL; +} + +if (pscanf(path, "%d", &perc) != 1) { + return NULL; +} + +return bprintf("%d", perc);</code></pre> +<p>Que recibe el valor del fichero <emb>capacity</emb>. Llegados a este punto, es necesario aclarar los distintos ficheros del directorio <emb>/sys/class/power_supply/BAT0/</emb> (que se resumen en el fichero <emb>uevent</emb>):</p> + +<pre><code>POWER_SUPPLY_NAME=BAT0 +POWER_SUPPLY_TYPE=Battery +POWER_SUPPLY_STATUS=Discharging +POWER_SUPPLY_PRESENT=1 +POWER_SUPPLY_TECHNOLOGY=Li-ion +POWER_SUPPLY_CYCLE_COUNT=0 +POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11400000 +POWER_SUPPLY_VOLTAGE_NOW=11759000 +POWER_SUPPLY_CURRENT_NOW=1089000 +POWER_SUPPLY_CHARGE_FULL_DESIGN=4100000 +POWER_SUPPLY_CHARGE_FULL=900000 +POWER_SUPPLY_CHARGE_NOW=675000 +POWER_SUPPLY_CAPACITY=75 +POWER_SUPPLY_CAPACITY_LEVEL=Normal +POWER_SUPPLY_MODEL_NAME=standard +POWER_SUPPLY_MANUFACTURER=OEM +POWER_SUPPLY_SERIAL_NUMBER=00001</code></pre> +<p>Para un mayor detalle, es posible que desee ver cómo se define la clase del dispositivo power-supply en <a href="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/linux/power_supply.h?h=v6.0.11">include/linux/power_supply.h</a>. Sin embargo en esta entrada iré al grano.</p> +<p>Por lo que todos los valores <emb>charge_*</emb> (<emb>charge_full_design</emb>, <emb>charge_full</emb> y <emb>charge_now</emb>) se mide en microamperios/hora (µAh), mientras que <emb>current_now</emb> se mide en microamperios (µA).</p> + +<pre><code>POWER_SUPPLY_CHARGE_FULL_DESIGN=4100000 +POWER_SUPPLY_CHARGE_FULL=900000 +POWER_SUPPLY_CHARGE_NOW=675000</code></pre> +<p>Cuando era nueva, la batería afirma haber tenido una capacidad de carga completa de 4,10Ah (<emb>charge_full_design</emb>), pero desde entonces se ha degradado dando lugar a una capacidad de carga completa actual de 0,9Ah. Actualmente, le quedan 0,675Ah de carga. Que realizando un simple cálculo de porcentaje:</p> + + <math xmlns="http://www.w3.org/1998/Math/MathML" alttext="100\frac{0,675}{0,9}=75" display="block"> + <mrow> + <mrow> + <mn>100</mn> + <mo></mo> + <mfrac> + <mrow> + <mn>0</mn> + <mo>,</mo> + <mn>675</mn> + </mrow> + <mrow> + <mn>0</mn> + <mo>,</mo> + <mn>9</mn> + </mrow> + </mfrac> + </mrow> + <mo>=</mo> + <mn>75</mn> + </mrow> + </math> +<p>Da como valor el porcentaje de batería restante, que también se obtiene de <emb>capacity</emb>:</p> + +<pre><code>cat /sys/class/power_supply/BAT0/capacity +75</code></pre> +<p>Por otro lado, el voltaje mínimo de diseño (nunca debería descargarse por debajo de este voltaje) se mide en microvoltios (µV):</p> + +<pre><code>POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11400000 +POWER_SUPPLY_VOLTAGE_NOW=11759000</code></pre> +<p>Siendo <emb>voltage_min_design</emb> 11400000µV, sea 11,4V. El voltaje actual según la medida en este momento es de 11,759V. La batería en este momento proporciona 1,089A de corriente:</p> + +<pre><code>POWER_SUPPLY_CURRENT_NOW=1089000</code></pre> +<p>Como una simple estimación, con la corriente que está tomando de la batería en este momento:</p> + + <math xmlns="http://www.w3.org/1998/Math/MathML" alttext="\frac{0,675Ah}{1,089A}=0.62h=37m" display="block"> + <mrow> + <mfrac> + <mrow> + <mn>0</mn> + <mo>,</mo> + <mrow> + <mn>675</mn> + <mo></mo> + <mi>A</mi> + <mo></mo> + <mi>h</mi> + </mrow> + </mrow> + <mrow> + <mn>1</mn> + <mo>,</mo> + <mrow> + <mn>089</mn> + <mo></mo> + <mi>A</mi> + </mrow> + </mrow> + </mfrac> + <mo>=</mo> + <mrow> + <mn>0.62</mn> + <mo></mo> + <mi>h</mi> + </mrow> + <mo>=</mo> + <mrow> + <mn>37</mn> + <mo></mo> + <mi>m</mi> + </mrow> + </mrow> + </math> +<p>Le quedan unos 37 minutos de energía.</p> +<p>Sin embargo y como es evidente, no se puede diagnosticar por los valores concretos de un momento t en el tiempo, sin tener más valores estadísticos. Por lo que para ello, he implementado monitorización a través de un servidor Zabbix que gestione todos estos campos (concretamente para obtener una vez por minuto). Los <emb>UserParameters</emb> de Zabbix usados por el agente son:</p> + +<pre><code>UserParameter=ChargeNow,cat /sys/class/power_supply/BAT0/charge_now +UserParameter=ChargeFull,cat /sys/class/power_supply/BAT0/charge_full +UserParameter=ChargeFullDesign,cat /sys/class/power_supply/BAT0/charge_full_design +UserParameter=VoltageMin,cat /sys/class/power_supply/BAT0/voltage_min_design +UserParameter=VoltageNow,cat /sys/class/power_supply/BAT0/voltage_now +UserParameter=CurrentNow,cat /sys/class/power_supply/BAT0/current_now +UserParameter=Capacity,cat /sys/class/power_supply/BAT0/capacity +UserParameter=Status,if [ "$(cat /sys/class/power_supply/BAT0/status)" = "Charging" ]; then echo 1; else echo 0; fi</code></pre> +<p>De tal forma, monitorizamos los valores de la batería, como el amperaje degradado y la corriente la corriente a través del tiempo:</p> +<img class="color-invertible" style="width: 100%;" src="resources/graph-charge.png" /> +<p>Por otro lado, comprobamos la capacidad porcentual (y bruta). Esto nos muestra valores interesantes, como que la batería tarda en desgastarse prácticamente lo mismo que al rellenarse, sin embargo, al llegar al umbral de 8% de capacidad, ésta se vacía a una velocidad mucho más lenta hasta el 0%, lo que constituye un primer indicador del funcionamiento extraño de la batería:</p> +<img class="color-invertible" style="width: 100%;" src="resources/graph-perc.png" /> +<p>Otro de los indicadores más extraños proviene al apagar el equipo durante unas horas. Éste al encenderse de nuevo, marca una batería que no se corresponde con el valor de apagado. En el ejemplo registrado, se observa como la batería se encontraba aproximadamente marcando un 10% de capacidad, pero tras 1,45h sin interacción de ningún tipo (lógicamente no estuvo conectado a la red eléctrica en este tiempo) vuelve a marcar un valor entre el 60-70% de capacidad:</p> +<img class="color-invertible" style="width: 100%;" src="resources/graph-poweroff.png" /> +<p>Como sabemos, el valor mínimo establecido por diseño que indica la batería es de 11.4V. Sin embargo y tal como se ve, sólo excede el mínimo cuando está conectado a AC:</p> +<img class="color-invertible" style="width: 100%;" src="resources/graph-voltage.png" /> + + <br/> + <h1>Conclusiones</h1> +<p>Por lo tanto y con toda la información recopilada, concretamente la pronunciada degradación de la batería (diferencia entre <emb>charge_full_design</emb> y <emb>charge_full</emb>) y la evidencia de que baja regularmente del voltaje mínimo establecido por diseño (<emb>voltage_min_design</emb>) sugiere que la batería probablemente esté en un estado crítico, y que podría fallar en cualquier momento.</p> + +</body> +</html> +\ No newline at end of file diff --git a/bateria/resources/graph-charge.png b/bateria/resources/graph-charge.png Binary files differ. diff --git a/bateria/resources/graph-perc.png b/bateria/resources/graph-perc.png Binary files differ. diff --git a/bateria/resources/graph-poweroff.png b/bateria/resources/graph-poweroff.png Binary files differ. diff --git a/bateria/resources/graph-voltage.png b/bateria/resources/graph-voltage.png Binary files differ. diff --git a/blade-runner/index.html b/blade-runner/index.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>¿Sueñan los androides con ovejas eléctricas?</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">¿Sueñan los androides con ovejas eléctricas?</p> +<p class="date">22 de mayo de 2023 • fjbalon</p> +</header> +<p>Si bien considero Dune como el mayor referente y la obra magna del género de ciencia ficción en la Literatura, he de decir que considero a Blade Runner (1982) como la gran obra de ciencia ficción en cine. Sin desmerecer claro está otras obras como Alien (1979), Metrópolis (1927), Matrix (1999), Ghost in the Shell (1995) o Stalker (1979), y desmereciendo deliberadamente otras como Star Wars (1977 - 1983) y 2001: Una odisea del espacio (1968). Blade Runner, que se mueve entre el <i>film noir</i> y <i>cyberpunk</i>, propone una atmósfera viciada, tenebrosa y eléctrica del futuro, ya pasado: 2019. Si bien la década de los 70 fue marcada por El Padrino (1972), los 80 fue marcada por Blade Runner.</p> +<p>Antes de continuar leyendo, el lector debe conocer que no me baso en el corte inicial cuando me refiero a la película de 1982. Para poner en contexto, en 1992 el director propuso su propio corte (<i>Director's Cut</i>), en el que suprime la voz en off explicativa, dejando que el espectador aporte sus neuronas y emociones, algo que siempre se agradece; inserta la secuencia onírica del unicornio y elimina el tibio final feliz impuesto por la productora. 25 años después de la primera cinta, en 2007 se estrenaba el corte final (<i>Ridley Scott's Final Cut</i>) con nuevos cambios: se le aplican algoritmos y técnicas de digitalización, mejorando la nitidez de la imagen y ganando en matices (especialmente en el detalle de los ojos), la banda sonora es remezclada y se añade una escena -totalmente prescindible- de bailarinas orientalizadas.</p> +<p>Aclarados los cortes de la versión de 1982, es necesario contextualizar que dicha cinta se trata de una libre -muy libre- adaptación de la novela ¿Sueñan los androides con ovejas eléctricas? (1968), del autor Philip K. Dick. Ésta se ambienta en 1992 (un futuro ya pasado) varios años después de la lluvia radioactiva provocada por la Guerra Mundial Terminus, que destruyó gran parte de la Tierra. ¿Puede una adaptación cinematográfica ser mejor que la novela que adapta? Generalmente, la respuesta es negativa; sin embargo viendo Blade Runner no podemos sino afirmar que dicha dicotomía, en ocasiones, produce adaptaciones notablemente superiores, como es el caso. La novela de Philip K. Dick plantea temas muy interesantes obviados por Blade Runner, como la presencia de polvo radiactivo (que obliga a los varones a llevar protectores de plomo en los genitales para no quedar estériles), la presencia de ciertos dispositivos tecnológicos, la poca presencia humana<sup>1</sup>, la oveja eléctrica de Deckard<sup>2</sup>, el matrimonio de Deckard, algunas denominaciones<sup>3</sup> y, sobretodo, el núcleo del mercerismo, un núcleo religioso dentro del mundo que propone el escritor.</p> +<p>Si bien, en la novela, Deckard pasa sin problemas el test Voight-Kampff, éste se pone en duda en alguna ocasión. Aún así, en la novela no parece existir duda razonable sobre si el protagonista es o no es un «andy», como sí parece evocar la película de 1982: cuando Rick Deckard (Harrison Ford) se desliza de la viga, Roy (Rutger Hauer) lo agarra del brazo y grita «Kinship!» (parentesco, lazo de sangre). Curiosamente, no aparece la palabra ni su traducción en los subtítulos. Este hecho, unido a la secuencia onírica del unicornio, y también a la secuencia en la que Gaff (Edward James Olmos) deja la figura de origami en su apartamento, darían a entender que Deckard es un replicante. Si bien la interpretación de Harrison Ford se asume como un policía con graves problemas de conciencia, nunca parece evocar que no sea humano (al igual que los replicantes, todo sea dicho). Así, el director siembra la duda razonable en el espectador, genialmente tratada y no disipada en ningún momento en el tiempo. En mi opinión, no tengo duda en que Deckard sí es un replicante, sin embargo, no puedo sino plegarme ante el trato que se da a este tema.</p> +<p>Y así como he iniciado el texto, tanto la película como el libro se centran en una duda: ¿qué es un ser humano? ¿qué nos hace serlo? ¿qué nos hace ser?, y a consecuencia de tal duda existencial y filosófica, explora temas como la vida y la muerte, como el amor (de una forma mucho más pura en la película que en la novela), la belleza y la verdad, la memoria y los recuerdos. Estéticamente, la cinta es un prodigio; y no hay mayor filosofía que la estética; estética que recupera lo humano en un futuro tecnocrático, capitalista extremo y casi nacional-socialista, en apariencia. Pero, ¿qué es lo humano? ¿una máquina en imitación perfecta del hombre, se convierte en hombre? ¿tiene alma? Si el alma no puede provenir ni ser generada por la materia, pues ninguna de sus interacciones físicas puede explicar la exportación de nada no-físico, ¿cómo puede un replicante como Rachel amar? ¿es que acaso puede un ser desalmado, amar? ¿quizás imite a la perfección las consecuencias físicas del amor? ¿en qué momento o bajo qué proceso ganaría, una máquina, un alma?. Sería difícil y pretencioso tratar de dar respuesta en una simple entrada a todas estas preguntas, que darían para tesis doctoral y filosófica, sin embargo la cinta no te hace sino elevar el espíritu a la filosofía y la metafísica, a hacerte estas preguntas... ¿qué me hace ser?.</p> +<p>La película, por motivos evidentes elevada a culto, nos deja citas y escenas para la posteridad y la memoria, como la de Tyrell y Roy, momento álgido entre el dios de la electromecánica y su perfecta creación, desencantada y hastiada al conocer la ausencia de divinidad, la miseria, de su creador; la del test de Voight-Kampff a Rachel (interpretada deliciosamente por Sean Young, y que parece la parte más fiel a la novela), el monólogo de Roy a Deckard, tan conocido como noble:</p> + +<cita> +<p>«Yo he visto cosas que vosotros no creeríais. Atacar naves en llamas más allá de Orión. He visto rayos-C brillar en la oscuridad cerca de la Puerta de Tannhäuser. Todos esos momentos se perderán en el tiempo, como lágrimas en la lluvia. Es hora de morir.»</p> +<p>Monólogo «Lágrimas en la lluvia», de Roy Batty (Rutger Hauer), Blade Runner (1982), Ridley Scott</p> +</cita> +<img src="resources/roy.jpeg" /> +<p>Con esta secuencia tan desaforadamente bella, Rutger Hauer aseguró su inmortalidad, en un ramalazo de inspiración poética. Falleció el mismo año -2019- en el que muere el replicante. La naturaleza imita al arte. Y «todos esos momentos se perderán en el tiempo, como lágrimas en la lluvia». Y es que precisamente, el deseo de vivir, el castigo de la muerte son también temas principales en la exploración filosófica de la obra. El hombre busca su trascendencia, pues su alma como desapegada a la materia, es inmortal; y si no la encuentra cae, necesariamente, en un existencialismo que le llevará, inevitablemente, a un vacío nihilista. Sin embargo, el replicante encuentra su trascendencia, reconoce su vida y su muerte, perdona a aquel que le da caza para ser comprendido, para dejar un legado, para trascender la materia. Y es usando el lenguaje cinematográfico magistralmente, con aquella paloma que se eleva de las manos de Roy, que vuela hacia el cielo, haciendo quizás imagen de su alma, que encuentra su redención en la muerte.</p> +<p>Deckard y Rachel deciden huir, enamorados, de la policía. Escena clave en la que se da a entender que Gaff conoce los sueños de Deckard: debe ser un replicante. Poniendo fin a una película que no deja indiferente, dejando al espectador con la duda razonable, con la mente embriagada de pensamientos filosóficos. Un cierre perfecto, y redondo. Y es entonces, cuando viajamos más al futuro -de 2019 a 2049-, que de manos del talentoso director Denis Villeneuve, en 2017 (35 años después de la adaptación de Ridley Scott), recibimos una secuela. Pero, ¿es posible dar una secuela a semejante obra? Mi primera impresión, cómo no, es de desconfianza absoluta, de escepticismo, de recelo por la obra original; incluso de enfado, por atreverse nadie a hacer una secuela<sup>4</sup> de una película que no lo necesita. Es más -pensé-, ¿de qué demonios puede tratar una secuela de Blade Runner? ¿cómo vas a hacerlo, construyendo algo nuevo, y respetando todo el tratado filosófico anterior? O bien 'rizas el rizo', o bien destruyes el tono y el legado de la anterior; sea como sea, una secuela es mala idea.</p> +<p>Y cuán equivocado estuve, y cuánto me alegro de ello. Blade Runner 2049 (2017) es una digna secuela, quizás, una de las mejores de la historia del cine; una rareza en su tiempo y en la mentalidad superficial del siglo XXI. Uno de los mejores directores en activo del mundo, Denis Villeneuve, ha hecho todo lo humanamente posible para que la secuela estuviese a la altura de la primera, y lo ha logrado.</p> +<p>Estéticamente -uno de los elementos fundamentales que ha hecho de la primera un clásico de culto- es colosal en todos los sentidos, cada plano es pura perfección, el diseño artístico de los escenarios es fascinante y memorable, la fotografía es simplemente una de las mejores de la historia del cine, todas las escenas están rodadas de forma asombrosa, no es una locura decir que 2049 supera a su precursora en este aspecto. El ambiente sonoro, producto del Hans Zimmer más eléctrico y experimental, embriaga al espectador y sirve de apoyo perfecto a la imagen.</p> +<img src="resources/2049.jpg" /> +<p>Filosóficamente, no sólo trata los mismos temas, sino que los amplía y desarrolla en mayor profundidad, mientras que añade otros nuevos. Incluso defendería que es una obra, metafísicamente hablando, más compleja y profunda que la anterior. En este caso, seguimos al Blade Runner K (Ryan Gosling), un replicante especializado en dar de baja a otros replicantes. Tras retirar a un Nexus-8, descubre los huesos de una replicante que ha sido madre: ¡Rachel ha tenido un hijo con Deckard! Es una sorpresa asombrosa, ¿pueden los replicantes tener hijos? ¿en qué implica ser hijo de un humano y una replicante? ¿o de dos replicantes? ¿es replicante o humano? El viaje de K, que se conoce replicante, planteará una serie de dudas más notables y profundas que la primera película. K, en 2049, bucea más profundo que Deckard, en 2019.</p> +<p>La película profundiza aún más en el mundo tecnocrático que la ambienta, presentando un personaje que exquisitamente escrito como es Joi (Ana de Armas) -una suerte de inteligencia artificial holográfica- y su relación -¿amorosa?- con K, el trabajo de arquitecto de sueños, etc. Y amplía todo su 'lore' filosófico con la maternidad, la procreación <i>versus</i> reproducción, la soledad, la genética...</p> +<p>Como conclusión; las adaptaciones cinematográficas de Blade Runner son muy superiores a la novela de Philip K. Dick, si bien hay elementos de la novela que me hubiera gustado ver en las adaptaciones, no podemos sino dar al César, lo que es del César. La profundidad de Blade Runner la ha elevado, tanto en la historia del cine como en el género de la ciencia ficción, como una de las obras magnas de la historia moderna.</p> +<p><sup>1</sup> El planeta ha perdido la mayor parte de la población mundial a causa de la Guerra Mundial Terminus y la posterior huida a las colonias en Marte. Edificios de miles de apartamentos están vacíos o, en muchos casos, solo viven un centenar de personas. En la película, sin embargo, la ciudad de Los Ángeles, en la que se ambienta, es presentada como una metrópolis con millones de habitantes, similar a Tokio en la vida real.</p><p><sup>2</sup> Poseer y cuidar un animal es considerado signo de alto estatus social, pero como son sumamente costosos debido a su escasez tras la Guerra Mundial Terminus, se suelen utilizar réplicas artificiales. Una de las obsesiones de Deckard es la de reemplazar su oveja eléctrica por un animal vivo. Incluso acepta el trabajo de eliminar a los Nexus-6 para obtener las recompensas y así poder comprarlo.</p><p><sup>3</sup> Las denominaciones blade runners y replicantes son propias del lenguaje de la película. En la novela, se les denominan como «cazadores de recompensas» y «andys» («androides»).</p><p><sup>4</sup> Y más conociendo la cultura moderna, antioriginal, de hacer secuelas, precuelas, orígenes, reinvenciones, etc. De todo producto que propicie negocio. Quizás, la mayor crisis de la historia del cine.</p> + +</body> +</html> diff --git a/ble/index.html b/ble/index.html @@ -0,0 +1,275 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Experimentos, análisis y mapeo de radiación BLE</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Experimentos, análisis y mapeo de radiación BLE</p> +<p class="date">17 de noviembre de 2021 • fjbalon</p> +</header> +<p>Desde hace unos meses se viene reportando la aparición de múltiples MACs pertenecientes a dispositivos BLE (Bluetooth Low Energy) captadas por algunos teléfonos y dispositivos. Parece que el aumento exponencial de descubrimiento BLE se debe a su aumento de uso; quizás propiciado con el avance inexorable del IoT, pero esta aparición coincide también con el inicio de ciertas estrategias globales, habría relación?. ¿Podría tener quizás que ver con el uso de esta tecnología por parte de los gobiernos para controlar los flujos sociales y tener así un mayor control sobre las relaciones de sus gobernados?.</p> +<p>¿Es posible que pueda tener que ver con la patente <a href="https://patentimages.storage.googleapis.com/68/80/73/6a17a66e9ec8c5/US11107588.pdf">US11107588 - «Métodos y sistemas para priorizar tratamientos, vacunación, pruebas y/o actividades mientras se protege la privacidad de las personas»</a>, por Gal Ehrlich y Maier Fenster? En la misma, se desarrolla la utilización de las interacciones de Bluetooth (¿BLE?) entre los teléfonos de los individuos con el objetivo de determinar cuáles son las personas más activas socialmente y que por ello deberían ser objetivo prioritario de las medidas para evitar la propagación de ciertos virus. La fecha de la patente coincide además con el anuncio de Apple y Google de colaboración mutua en el desarrollo de una API para el uso por parte de aplicaciones de rastreo utilizando, precisamente, la tecnología BLE. ¿Están todos los dispositivos modernos emitiendo BLE con este propósito?.</p> +<p>No entro en la supuesta privacidad de este método, algo ridículo de defender. La patente israelí presenta similitudes con la tecnología BLE que estamos exponiendo, especialmente en la creación de mapeos de grupos de personas en scatternets, como unión de piconets (véase que los nodos no conectan con más de 7 nodos unitariamente).</p> +<p>Antes de realizar experimentos, conviene dejar claro algunos conceptos teóricos.</p> +<h2>Contextualización teórica</h2> +<p>BLE utiliza solo 40 canales en la banda de 2,4GHz, con un espaciado de canales que va de 1-2MHz. Entre los 40 canales proporcionados por el BLE, tres de ellos están reservados exclusivamente para el proceso de pblicidad, a saber, los canales 37, 38 y 39. Los 37 canales restantes, en cambio, se utilizan para la transferencia de datos entre maestro y esclavo en modo conexión. Estos tres canales de publicidad están ubicados en los puntos finales y en el medio de la banda de 2.4GHz, para limitar la interferencia con las redes Wi-Fi.</p> +<p>Los paquetes BLE son, en contraposición con Bluetooth Classic, más pequeños (en particular los paquetes publicitarios) con el fin de minimizar el tiempo de activación de la radio para la transmisión y recepción y, por lo tanto, el consumo de energía. La estructura del paquete BLE típico es visible a continuación y, como puede ver, hay cuatro partes: Preámbulo (8 bits), Dirección de acceso (32 bits), Unidad de datos de protocolo (entre 2 y 39 bytes) y un Código de redundancia cíclica (CRC) final (24 bits).</p> +<p>El preámbulo consta de 8 bits y el receptor lo utiliza para la sincronización. También es útil para identificar qué paquetes se emiten en los canales de publicidad (advertising) y en los canales de datos (data). La Dirección de Acceso consta de 32 bits y tiene diferentes valores según el tipo de canal: canales de publicidad o de datos. Por ejemplo, la dirección de acceso de cualquier paquete transmitido en los canales de publicidad tiene un valor hexadecimal igual a 8E89BED6. El campo Protocol Data Unit (PDU) tiene una longitud variable (de 2 a 39 bytes) y tiene una estructura diferente según el tipo de canal de destino (Datos o Publicidad). Para los canales de publicidad, la PDU está compuesta por dos campos: un encabezado de 2 bytes y un campo de carga útil de 0 a 37 bytes. En cambio, para los canales de datos, la estructura de la PDU tiene tres componentes: un encabezado de 2 bytes y una carga útil con un tamaño de hasta 255 bytes, que podría incluir un campo de verificación MIC.</p> +<p>La direccción de un dispositivo BLE se identificará como Public o Random y esto podrá verse en un bit adicional que se añade para notificarlo en todos los paquetes BLE. Todas las direcciones MAC indiferentemente de si son Public o Random disponen de 48 bits (6 bytes). Las direcciones MAC públicas se componen de 24 bits que identifican a la compañia que ha fabricado el dispositivo, estos 24 bits los designa el IEEE; los otros 24 restantes los establece el fabricante para identificar el dispositivo. Sin embargo, muchos dispositivos, especialmente los smartphones, utilizan de forma predeterminada una dirección de tipo aleatorio (random) que, por supuesto, no es la dirección MAC real del dispositivo, este método se creó para evitar que se monitorice el tráfico que esta realizando un dispositivo bluetooth. Por ello se crearon direcciones estáticas (reestablecida por cada ciclo de encendido-apagado) o privadas, que cambian periódicamente.</p> <p>Las de tipo resoluble se dividen en dos partes, el hash y el prand, mientras que las de tipo no resoluble contienen 46 bits totalmente aleatorios. La característica de capacidad de resolución está indicada por el bit 47, que identifica una dirección no resoluble (valor 0) o una dirección resoluble (valor 1), como se ve a continuación.</p> +<ul> +<li>Static device address, random part of static address(46bits), 11</li> +<li>Non-resolvable device address, random part of static address (46bits), 00</li> +<li>Resolvable devide address, hash (24bits), prand (22bits), 10</li> +</ul> +<p>Por ejemplo, teniendo la dirección BLE-MAC:</p> +<pre><code>4D:3E:0C:F5:C4:42==01001101:00111110:00001100:11110101:11000100:01000010</code></pre> +<p>Como termina en 10, es resolvable, es decir:</p> +<pre><code>hash: 010011010011111000001100 +prand: 1111010111000100010000</code></pre> +<p>Y teniendo la dirección:</p> +<pre><code>59:37:5F:E4:9A:A0 -> 01011001:00110111:01011111:11100100:10011010:10100000</code></pre> + <p>Como termina en 00, es non-resolvable, es decir:</p> +<pre><code>random:0101100100110111010111111110010010011010101000</code></pre> +<p>Algunos conceptos a tener en cuenta:</p> +<ul> +<li>RSSI (Received Signal Strength Indicator) es la fuerza de la señal de la baliza como se ve en el receptor. La intensidad de la señal depende de la distancia y el valor de la potencia de transmisión. Bluetooth funciona con señales de radiodifusión y ese valor de potencia de radiodifusión es de alrededor de 2-4dBm, la intensidad de la señal RSSI será pues de entre -26 (unos pocos cm) a -100 (40-50m). A este valor le llamaremos N. Debido a factores externos que influyen en las ondas de radio, como la absorción, la interferencia o la difracción, el RSSI tiende a fluctuar. Cuanto más lejos está el dispositivo de la baliza, más inestable se vuelve el RSSI.</li> +<li>La potencia medida es una constante de sólo lectura calibrada de fábrica que indica cuál es el RSSI esperado a una distancia de 1m a la baliza. Combinado con RSSI, permite estimar la distancia entre el dispositivo y la baliza. Sin embargo, hay que tener en cuenta que este valor puede ser modificado en el chip bruto, siempre que haya acceso a los comandos AT del chip BLE.</li> +<li>Las balizas no emiten constantemente como Wifi; éstas "parpadean". El intervalo de publicidad (advertising) describe el tiempo entre cada parpadeo, que oscila entre 100ms y 2000ms. Cuanto más corto sea el intervalo, más estable será la señal.</li> +</ul> +<p>Con estos conceptos podemos calcular la distancia a la que se encuentra la baliza, Siendo que D es distancia, PM es potencia media, RSSI y N (rango de 2-4):</p> + +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="d=10(\frac{PM-RSSI}{10N})" display="block"> + <mrow> + <mi>d</mi> + <mo>=</mo> + <mrow> + <mn>10</mn> + <mo></mo> + <mrow> + <mo stretchy="false">(</mo> + <mfrac> + <mrow> + <mrow> + <mi>P</mi> + <mo></mo> + <mi>M</mi> + </mrow> + <mo>-</mo> + <mrow> + <mi>R</mi> + <mo></mo> + <mi>S</mi> + <mo></mo> + <mi>S</mi> + <mo></mo> + <mi>I</mi> + </mrow> + </mrow> + <mrow> + <mn>10</mn> + <mo></mo> + <mi>N</mi> + </mrow> + </mfrac> + <mo stretchy="false">)</mo> + </mrow> + </mrow> + </mrow> +</math> + +<p>He hecho un pequeño programa en C que hace este cálculo, en base a esta fórmula, donde recibe los argumentos del RSSI y la potencia medida, respectivamente.</p> +<pre><code>#include <stdio.h> +#include <stdlib.h> +#include <math.h> + +int main (int argc, char *argv[]) +{ + double rssi = atof(argv[1]); + double txp = atof(argv[2]); + + double n = 2; + double base = 10.0; + + double distance = pow(base, ((double) txp - rssi) / (10 * n)); + printf("%fm\n",distance); + + return 0; +}</code></pre> +<p>Sin embargo, es muy poco preciso. Sirve para determinar y calibrar al dispositivo en laboratorio. No es preciso para experimentación en mundo real. Por lo que no calcularemos en el resto del texto la distancia en base a esta fórmula, sino nos basaremos directamente en el bruto de RSSI.</p> +<h2>Redes bluetooth</h2> +<p>La tecnología Bluetooth está basada en piconets consistentes en una unidad central y hasta 7 unidades dedicadas ubicadas en un radio de 10 metros de la unidad central. Las piconets pueden ser unidas en scatternets (red que se produce cuando se conectan dos dispositivos pertenecientes a piconets distintas). La unidad central se comunica con las unidades dedicadas; no existe comunicación directa entre las unidades dedicadas.</p> +<h2>Experimentos</h2> +<p>Caso 1: Nadie a 3 metros a la redonda, posible contaminación por viandantes en la calle cercana. Enciendo y apago bluetooth clásico de OPPO. Valor recogido:</p> +<pre><code>[NEW] Device FC:04:1C:C4:1F:01 OPPO Find X3 Neo 5G +[DEL] Device FC:04:1C:C4:1F:01 OPPO Find X3 Neo 5G + + +Device FC:04:1C:C4:1F:01 (public) +Name: OPPO Find X3 Neo 5G +Alias: OPPO Find X3 Neo 5G +Class: 0x005a020c +Icon: phone +Paired: no +Trusted: no +Blocked: no +Connected: no +LegacyPairing: no +UUID: OBEX Object Push (00001105-0000-1000-8000-00508f3f34bc) +UUID: Audio Source (0000110a-0000-1000-8000-00508f3f34bc) +UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00508f3f34bc) +UUID: A/V Remote Control (0000110e-0000-1000-8000-00508f3f34bc) +UUID: Headset AG (00001112-0000-1000-8000-00508f3f34bc) +UUID: PANU (00001115-0000-1000-8000-00508f3f34bc) +UUID: NAP (00001116-0000-1000-8000-00508f3f34bc) +UUID: Handsfree Audio Gateway (0000111f-0000-1000-8000-00508f3f34bc) +UUID: Phonebook Access Server (0000112f-0000-1000-8000-00508f3f34bc) +UUID: PnP Information (00001200-0000-1000-8000-00508f3f34bc) +UUID: Message Access Server (00001132-0000-1000-8000-00508f3f34bc) +UUID: Vendor specific (00000000-0000-0000-0000-000000000000) +RSSI: -57 + +# Usando servicio externo obtengo fabricante de dirección MAC pública: +# GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD</code></pre> +<p>10:00h. Accede sujeto 1 con iPhone sin Bluetooth activado.</p> +<pre><code>[NEW] Device 56:FC:D8:00:3F:7F 56-FC-D8-00-3F-7F +[CHG] Device 56:FC:D8:00:3F:7F RSSI: -70 +[CHG] Device 56:FC:D8:00:3F:7F RSSI: -78 +[CHG] Device 56:FC:D8:00:3F:7F RSSI: -57 +[CHG] Device 56:FC:D8:00:3F:7F RSSI: -67 +[CHG] Device 56:FC:D8:00:3F:7F RSSI: -76 +[CHG] Device 56:FC:D8:00:3F:7F RSSI: -64 +[CHG] Device 56:FC:D8:00:3F:7F ManufacturerData Key: 0x004c +[CHG] Device 56:FC:D8:00:3F:7F ManufacturerData Value: + 10 06 73 1d b5 71 a8 48 ..s..q.H +[CHG] Device 56:FC:D8:00:3F:7F ManufacturerData Key: 0x004c +CHG] Device 56:FC:D8:00:3F:7F ManufacturerData Value: + 10 06 7f 1d b5 71 a8 08 .....q.. +[CHG] Device 56:FC:D8:00:3F:7F ManufacturerData Key: 0x004c +[CHG] Device 56:FC:D8:00:3F:7F ManufacturerData Value: + 10 06 73 1d b5 71 a8 78 ..s..q.x + +------------------------------------------------------------------------------ + +Device 56:FC:D8:00:3F:7F (random) + Alias: 56-FC-D8-00-3F-7F + Paired: no + Trusted: no + Blocked: no + Connected: no + LegacyPairing: no + ManufacturerData Key: 0x004c # Apple Inc. + ManufacturerData Value: + 10 06 37 1d b5 71 a8 78 ..7..q.x + RSSI: -70 + TxPower: 8 + +------------------------------------------------------------------------------ + +56:FC:D8:00:3F:7F => 01010110:11111100:11011000:00000000:00111111:01111111 + +# Como termina en 00, es static. Es decir: + +random: 0101011011111100110110000000000000111111011111</code></pre> +<p>11:30h. Caso segundo, identifico segundo dispositivo. Inicio análisis de nuevo.</p> +<pre><code>[NEW] Device 51:3B:DA:9B:F7:DE 51-3B-DA-9B-F7-DE +[CHG] Device 51:3B:DA:9B:F7:DE RSSI: -59 +[CHG] Device 51:3B:DA:9B:F7:DE RSSI: -47 +[CHG] Device 51:3B:DA:9B:F7:DE RSSI: -60 +[CHG] Device 51:3B:DA:9B:F7:DE RSSI: -51 +[CHG] Device 51:3B:DA:9B:F7:DE RSSI: -61 +[CHG] Device 51:3B:DA:9B:F7:DE RSSI: -51 +[CHG] Device 51:3B:DA:9B:F7:DE RSSI: -67 +[CHG] Device 51:3B:DA:9B:F7:DE RSSI: -58 +[CHG] Device 51:3B:DA:9B:F7:DE RSSI: -71 +[CHG] Device 51:3B:DA:9B:F7:DE RSSI: -57 + +------------------------------------------------------------------------------ + +Device 51:3B:DA:9B:F7:DE (random) +Alias: 51-3B-DA-9B-F7-DE +Paired: no +Trusted: no +Blocked: no +Connected: no +LegacyPairing: no +ManufacturerData Key: 0x004c # Apple Inc. +ManufacturerData Value: + 10 06 38 1d 57 68 aa 58 ..8.Wh.X + +------------------------------------------------------------------------------ + +51:3B:DA:9B:F7:DE => 01010001:00111011:11011010:10011011:11110111:11011110 + +# Como termina en 10, es resolvable. Es decir: + +hash: 010100010011101111011010 +prand: 1001101111110111110111</code></pre> +<p>Dispositivos no responden a l2ping. Esto confirma que se trata de dispositivos BLE, ya que L2CAP no soporta BLE.</p> +<pre><code>[NEW] Device 51:3B:DA:9B:F7:DE 51-3B-DA-9B-F7-DE +[NEW] Device 56:FC:D8:00:3F:7F OPPO Find X3 Neo 5G + +root ~ # l2ping 51:3B:DA:9B:F7:DE +Can't connect: Host is down + +[DEL] Device 51:3B:DA:9B:F7:DE 51-3B-DA-9B-F7-DE +[NEW] Device 51:3B:DA:9B:F7:DE 51-3B-DA-9B-F7-DE + +root ~ # l2ping 56:FC:D8:00:3F:7F +Ping: 56:FC:D8:00:3F:7F from xx:xx:xx:xx:xx:xx (data size 44) ... +44 bytes from 56:FC:D8:00:3F:7F id 0 time 861.02ms +44 bytes from 56:FC:D8:00:3F:7F id 1 time 296.03ms +44 bytes from 56:FC:D8:00:3F:7F id 2 time 318.75ms</code></pre> +<p>Nos situamos ahora en zona transitada. Múltiples vehículos y viandantes. Al iniciar el escaneo, detecta y pierde numerosos dispositivos BLE. Cabe destacar que he eliminado los dispositivos conocidos, como teléfonos o auriculares:</p> +<pre><code>[NEW] Device 58:F2:C8:F7:10:29 58-F2-C8-F7-10-29 +[NEW] Device D0:4F:7E:17:64:30 D0-4F-7E-17-64-30 +[NEW] Device 47:C4:46:9A:BF:31 47-C4-46-9A-BF-31 +[NEW] Device 5E:E8:24:4E:1A:1B 5E-E8-24-4E-1A-1B +[NEW] Device 40:5A:56:14:70:2B 40-5A-56-14-70-2B +[NEW] Device 78:2D:39:DB:54:2A 78-2D-39-DB-54-2A +[CHG] Device 47:C4:46:9A:BF:31 ManufacturerData Key: 0x004c +[CHG] Device 47:C4:46:9A:BF:31 ManufacturerData Value: +10 06 54 1e a6 68 36 b1 ..T..h6. +[DEL] Device 5E:E8:24:4E:1A:1B 5E-E8-24-4E-1A-1B +[DEL] Device 40:5A:56:14:70:2B 40-5A-56-14-70-2B +[NEW] Device 5E:E8:24:4E:1A:1B 5E-E8-24-4E-1A-1B +[NEW] Device 6A:01:11:B5:2D:6E 6A-01-11-B5-2D-6E +[NEW] Device 40:5A:56:14:70:2B 40-5A-56-14-70-2B +[CHG] Device 47:C4:46:9A:BF:31 RSSI: -85 +[CHG] Device 47:C4:46:9A:BF:31 ManufacturerData Key: 0x004c +[CHG] Device 47:C4:46:9A:BF:31 ManufacturerData Value: +10 06 58 1e a6 68 36 b1 ..X..h6. +[DEL] Device 78:2D:39:DB:54:2A 78-2D-39-DB-54-2A +[NEW] Device 78:2D:39:DB:54:2A 78-2D-39-DB-54-2A +[CHG] Device 58:F2:C8:F7:10:29 ManufacturerData Key: 0x004c +[CHG] Device 58:F2:C8:F7:10:29 ManufacturerData Value: +10 06 73 1d c6 b6 13 48 ..s....H +[DEL] Device 5E:E8:24:4E:1A:1B 5E-E8-24-4E-1A-1B +[DEL] Device 6A:01:11:B5:2D:6E 6A-01-11-B5-2D-6E +[DEL] Device 40:5A:56:14:70:2B 40-5A-56-14-70-2B +[NEW] Device 6A:4D:0E:0B:83:F2 6A-4D-0E-0B-83-F2 +[NEW] Device 6C:16:4E:1C:DD:36 6C-16-4E-1C-DD-36 +[DEL] Device 58:F2:C8:F7:10:29 58-F2-C8-F7-10-29 +[NEW] Device 40:5A:56:14:70:2B 40-5A-56-14-70-2B +[DEL] Device 47:C4:46:9A:BF:31 47-C4-46-9A-BF-31 +[NEW] Device 47:C4:46:9A:BF:31 47-C4-46-9A-BF-31 +[NEW] Device 6A:01:11:B5:2D:6E 6A-01-11-B5-2D-6E +[DEL] Device 6C:16:4E:1C:DD:36 6C-16-4E-1C-DD-36 +[CHG] Device 6A:4D:0E:0B:83:F2 RSSI: -77 +[DEL] Device 40:5A:56:14:70:2B 40-5A-56-14-70-2B +[CHG] Device 6A:01:11:B5:2D:6E ManufacturerData Key: 0x004c +[CHG] Device 6A:01:11:B5:2D:6E ManufacturerData Value: +10 06 4b 1e f6 84 55 ff ..K...U.</code></pre> +<p>En prácticamente todos los casos, ManufacturerData Key devuelve el valor de Apple Inc. 0x004c. ¿Tantos iPhone hay emitiendo BLE?. He obtenido 2 iPhone, Bluetooth Classic apagado en ambos, dispuestos sobre una mesa. Puede haber contaminación electromagnética externa. Selecciono dirección concreta en base a su baja RSSI y realizo mediciones de distancia:</p> +<ul> +<li>A menos de 1m del target, RSSI marca 40-56dbm.</li> +<li>Misma superficie, hardware en contacto, RSSI marca 21-36dbm.</li> +<li>Receptor sobre emisor, RSSI marca 12-16dbm.</li> +</ul> +<p>Con estas pruebas, observamos que los que smartphones -prácticamente monopolio de Apple Inc.- son los que emiten esta radiación BLE.</p> +</body> +</html> +\ No newline at end of file diff --git a/caballo-turin/index.html b/caballo-turin/index.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>El caballo de Turín (2011), de Béla Tarr</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">El caballo de Turín (2011), de Béla Tarr</p> +<p class="date">4 de diciembre de 2023 • fjbalon</p> +</header> +<p>Obra maestra de Béla Tarr que emerge como una sinfonía visual que encuentra belleza en la cotidianidad de la miseria del ocaso del tiempo. Tarr pinta cuadros donde la luz y la sombra se entrelazan, grabado como no podría ser de otro modo en blanco y negro, transformando cada fotograma en una obra de arte impresionista y pictorialista. Cada instante de la película parece ser una fotografía de Henry Peach Robinson.</p> +<p>Sin embargo, tenga en cuenta el espectador que el uso del tiempo que emplea Tarr no es, para nada, convencional. El tiempo es un elemento omnipresente y excesivamente realista en su obra, caracterizada por largos y aburridos planos secuencias que se deslizan lenta y reflexivamente, en los que, efecitvamente, no ocurre prácticamente nada (lo que promueve al espectador sumergirse en cada detalle, cada gesto...). Éstas pueden resultar soporíferas para muchos, de nuevo evocando a la inmovilidad de la fotografía; más aún cuando apenas hay texto ni doálogo y la banda sonora se torna repetitiva, contribuyendo a crear aquella atmósfera apocalíptica, pero no parusíaca. Una experiencia única en la que, como aquel ruso, Tarr esculpe en el tiempo.</p> +<img style="width: 80%;" src="resources/caballo-turin.jpg" /> +<p>En este contexto apocalíptico, Dios parece haber abandonado a la Creación a su suerte; un mundo que el hombre, en su soberbia, ha rechazado. Si Dios da la espalda al mundo, como afirmaría el filósofo loco; si la Divinidad y lo sagrado abandona el mundo, ¿dónde irá la humanidad? A la deriva hacia la oscuridad de la nada, del vacío. Así torna una filosofía nietzscheana: consecuente nihilista, suicida y desoladora.</p> +<p>La desolación es palpable a través de la fotografía y del tiempo. Los sellos han sido abiertos, y no hay visión alguna de la marca del Cordero. La condena será la rutina monótona, vacía y desesperada de unos protagonistas que tratan, ya no de sobrevivir, pues el propio instinto natural les ha abandonado a él y a los animales; sino de permanecer eternamente en elementos como el viento furioso y la tormenta de polvo, productos del desmoronamiento de un mundo que se precipita voluntariamente hacia el abismo.</p> +<p>Todo queda en ausencia: el agua, la luz y el calor huyen del mundo. El animal está cansado de no tener voz, de que el hombre no sea su verbo; por ello grita en silencio y se subleva contra el hombre. Niestzche quizá lo vio en sus ojos en aquel curioso hecho de Turín que vehicula la cinta y de su descenso final a la locura; ¿acaso no es la locura la única salida posible ante la espaldas a Dios? ¿o mejor hubiera sido el suicidio?. Nietzsche es el profeta del apocalipsis, el que anticipa la caída de la Civilización, la caída de Roma. Por eso los gitanos, sin ley, huyen a América ¿el séptimo imperio innominado que habrá de durar poco tiempo?. Alrededor todo es noche y niebla; es ausencia. No está Dios. ¿O acaso está al llegar?.</p> +<p>Es la poesía del condenado, grito silencioso del alma desalentada, pretendiendo lavar sus vestiduras. Hay belleza en la miseria porque hay alma. No es cine para todos, pero aquellos dispuestos a sumergirse en la contemplación del tiempo y la desesperanza apocalíptica, a las consecuencias de la filosofía nihilista de «este patético esperma de Lucifer», como se referiría León Bloy a Nietszche; encontrarán en esta obra un viaje cinematográfico cuanto menos interesante.</p> + +</body> +</html> +\ No newline at end of file diff --git a/ciberguerra/index.html b/ciberguerra/index.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Apuntes sobre la naturaleza geopolítica del ciberespacio y de la ciberguerra</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Apuntes sobre la naturaleza geopolítica del ciberespacio y de la ciberguerra</p> +<p class="date">30 de noviembre de 2019 • fjbalon</p> +</header> +<p>El mundo se organiza estratégicamente en un sistema geopolítico, en el que -actualmente- sólo las potencias tecnológicas tienen cabida. La geopolítica es el estudio de las interacciones de poder entre los distintos Estados o Reinos, estudiados como seres vivos -como definirían Kjellen, Ratzel, Mahan, Mackinder o Haushofer-, entendiéndose como una metodología de análisis y una herramienta epistemológica; siendo pues una forma de comprender la realidad nacional e internacional, para después trazar planes estratégicos y tácticos desde el poder de cada régimen político mediante los que asegurar su propia existencia.</p> +<p>La tecnología informática, su avance y su adopción ha supuesto que sea tan relevante su estudio en geopolítica como lo eran los cuatro elementos. Muchos postulan que la cosmología computacional se ha convertido esencialmente en el quinto elemento y quinto campo de áreas de interacción, conflicto e intercambio del ámbito militar y geopolítico. Cabe definir primero cuáles son los cuatro dominios anteriores:</p> +<ul> +<li>Tierra: principal dominio humano, se originan las primeras interacciones entre humanos con los desplazamientos por diferentes tierras allá donde lleven los pies u otros medios de transporte terrestre.</li> +<li>Agua: iniciado en los albores de la historia y empleando formas y tecnologías para traspasar obstáculos geográficos hídricos que después se convirtió en espacio para la interacción mediante la construcción de artefactos con los que permanecer a flote, y así cruzar sobre el agua, pescar, comerciar y, finalmente, guerrear.</li> +<li>Aire: el primer avión fue construido por los hermanos Wright a principios del siglo XX en los Estados Unidos y con ello se desató la carrera aérea por fabricar aviones que volaran más alto, durante más tiempo, con más carga, etc. Una situación similar al dominio del agua.</li> +<li>Cosmos: apenas 50 años después de la construcción del primer avión (década de 1950), mediante el desarrollo de nuevos artefactos voladores, el satélite soviético Sputnik fue lanzado al espacio y tras él, la carrera espacial que culminó con la misión del Apolo 11. Tras la Guerra Fría, el dominio del cosmos sigue siendo aprovechado en beneficio de las grandes potencias, proporcionando comunicación, vigilancia civil y militar, etc.</li> +</ul> +<p>Así, irrumpe el denominado ciberespacio -que iniciaría en las décadas de los 1980 y 1990-, de naturaleza geográfica virtual y artificial, que requiere de base física (hardware), a menudo obviada debido a la abstracción de la interfaz humano-máquina.</p> +<p>A consecuencia, nacen necesidades geopolíticas de independencia computacional y ciberguerra, relacionadas entre sí en base a recursos materiales y humanos que permitan realizar operaciones militares, de espionaje, comerciales, científicas...</p> +<p>Pero, ¿qué ocurre cuando el ciberespacio se mueve entre todos los dominios?. Los grandes servidores, CPDs y superordenadores se encuentran en tierra, también la mayoría de nodos conectados que forman parte de Internet. No obstante, las máquinas de transporte en agua, aire y cosmos también han sido informatizadas y conectadas, manteniendo nodos en todos los dominios. Las comunicaciones por cable son terrestres, pero también superan las barreras oceánicas y marítimas mediante los cables de fibra submarinos. Por otro lado, las ondas electromagnéticas empleadas en comunicaciones inalámbricas viajan por el aire. Otras tecnologías requieren del campo del cosmos, como es el GPS.</p> +<p>El ciberespacio representa entonces una nueva era en la que ha cambiado la forma de hacer la guerra, siendo el nuevo paradigma de la guerra asimétrica y fundamento de la guerra híbrida, aquella en la que se utilizan toda clase de medios y procedimientos ya sea la fuerza convencional o cualquier otro medio irregular como la insurgencia, el terrorismo, la migración, los recursos naturales e incluso otros más sofisticados mediante el empleo de las últimas tecnologías con otros métodos de influencia como las noticias falsas, diplomacia, guerra jurídica e intervención electoral del extranjero y en las que la influencia sobre la población resulta vital.</p> +<p>Por lo tanto, ¿se puede considerar a la ciber-geopolítica como un 4+1?. En mi opinión, no se puede sino considerar como un cambio paradigmático completo, dos mundos paralelos: el mundo real, compuesto por los cuatro dominios y el mundo virtual, compuesto por la cosmología computacional, sistemas de creación y difusión, sistemas informáticos, Web 2.0 e Internet, dispositivos de acceso, etc. Todo un cosmos hilemórfico y dominante.</p> +<h2>Bibliografía y recomendaciones</h2> +<ul> +<li>Guerras híbridas, aproximación indirecta al cambio de régimen - Andrew Korybko</li> +<li>Cibergeopolítica, el quinto elemento del nuevo mundo - Enrique J. Refoyo (<a href="https://www.geopolitica.ru/es/article/cibergeopolitica-el-quinto-elemento-del-nuevo-mundo">geopolitica.ru</a>)</li> +<li>Manifiesto "La revolucion industrial y sus consecuencias han sido un desastre para la raza humana", Theodore Kaczynski</li> +<li>El dominio mental - Coronel Pedro Baños</li> +<li>Mundo Orwell - Coronel Ángel Gómez de Ágreda</li> +<li><a href="https://www.cisa.gov/sites/default/files/publications/CISA_Insights-Implement_Cybersecurity_Measures_Now_to_Protect_Against_Critical_Threats_508C.pdf">Implement Cybersecurity Measures Now to Protect Against Potential Critical Threats</a> - CISA, January 18, 2022</li> +</ul> +</body> +</html> +\ No newline at end of file diff --git a/ciencia-tecnologia/index.html b/ciencia-tecnologia/index.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Sobre la naturaleza de la tecnología y de la ciencia</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Sobre la naturaleza de la tecnología y de la ciencia</p> +<p class="date">15 de octubre de 2021 • fjbalon</p> +</header><p>Tiempo atrás se lleva buscando una unificación conceptual de las naturalezas de ciencia y tecnología. A esta unificación se la denomina comúnmente como tecnociencia, pero tal distinción de naturalezas radicalmente opuestas genera un problema. Las naturalezas de ambos objetos difieren en términos conceptuales semánticos, epistemológicos, lógicos, ontológicos e incluso axiológicos. Si bien sí es cierto que comparten una clara impronta metodológica (diferente entre sí, pero común), no son expresiones situadas al mismo nivel.</p> +<p>A menudo se confunden ambas naturalezas, como si se tratase de una única, sin tener en cuenta siquiera la aplicatividad de la tecnociencia. Esto parece ser incrementado hoy día, en parte por el desconocimiento científico generalizado, en parte por la democratización -en el sentido filosófico, no politológico- de la tecnología, no habiendo habido nunca una sociedad tan tecnocratizada y desconocedora de su propia tecnología.</p> +<p>La consecuencia directa de la aplicación de la naturaleza de la ciencia es, en términos generales, la introducción de un nuevo conocimiento de la realidad. A menudo es denominado progreso científico, pero personalmente tengo serias discrepancias con el término, ya que éste conlleva semánticamente positivismo tal, que no es propio de una adquisición de conocimiento, puesto que la pérdida de este conocimiento, a nivel personal o cultural afecta directamente al planteamiento de desarrollo continuo, gradual y generalizado; podría postular que la ciencia se acaba con la cultura -entendida como método de transmisión de información- a no ser que exista un método de almacenamiento de datos que permita su perpetuación, la ciencia es tan volátil como su medio; algo conceptualmente contrario al progreso. Desde el punto de vista social, la aplicación de la ciencia es de marcado carácter positivo, puesto que un mayor conocimiento de la realidad no puede tener, en absoluto, consecuencias morales o éticas -por más que la sociedad modernista lo pretenda-, sino un mayor acercamiento y entendimiento del entorno, sin entrar en un debate sobre la cognoscencia de la realidad, claro.</p> +<p>Si bien la ciencia, entendida como la entienden los clásicos -scientia-, tiene más peso epistemológico; siendo considerada como tal la filosofía, el derecho o la teología, hay que tener en cuenta que el concepto de ésta ha sido relegado a un ámbito más concreto y especializado desde el Renacimiento, postergado únicamente como ciencia a las disciplinas científicas empíricas, experimentales, matematizables (englobado en el método científico). En lo personal destacar que no veo problema alguno en esta concretización de la ciencia, siempre que se respete el saber lógico de las disciplinas científicas descartadas, evitando caer en un cientificismo filosófico nocivo.</p> +<p>En contraposición, la consecuencia directa de la aplicación de la técnica es la innovación tecnológica, cuyo objetivo es la aplicación de técnicas lógicas transformadoras del medio para la obtención de un beneficio concreto. Fundamentalmente, la innovación tecnológica si bien no puede considerarse desde el pensamiento moral; ya que la técnica es la aplicación de una habilidad o destreza -τεχνικός-, propia de la herramienta; sí que tiene un impacto consecuencial en el éste. Para dar cuerpo a este argumento, reduciré la naturaleza de la innovación tecnológica a la simplicidad de la fabricación de una espada, cuya naturaleza es ajena a toda moral, como cualquier herramienta. Sin embargo, la hoja de la espada puede ser empleada de forma que sus consecuencias obliguen a pensar en una problemática dentro de la filosofía moral: una espada puede ser usada para ejecutar a un inocente, al igual que para cortar carne que sirve de alimento o para defender al mismo inocente. Llevando esta argumentación a una complejidad mayor de técnica: la innovación tecnológica producida a partir del conocimiento científico adquirido denominado relatividad especial y general han permitido la tecnificación de la fusión nuclear, que ha dado lugar a la implementación de generación de energía, así como a la fabricación de armamento de destrucción masiva. De nuevo, ajeno a la moral excepto en el impacto sus consecuencias concretas.</p> +<p>Entonces, la ciencia tiene una naturaleza contemplativa de un aspecto concreto de la realidad, así como las órdenes contemplativas reflexionan con serenidad, detenimiento y profundidad sobre la divinidad, sus atributos y los misterios de la fe, el científico observa con los mismos atributos la realidad material, sus relaciones y reacciones; y esta contemplatividad puede ser, por supuesto, asociada en relación de ayuda y apoyo de las consecuencias del avance en la técnica, que tiene una naturaleza activa en el medio. Esta es la relación simbiótica entre las naturalezas de la ciencia y de la tecnología.</p> +<p>Concluyo con que el intento de diluir ambas naturalezas reduciéndolas en una sola, tiene como fin único la subordinación absoluta de la ciencia ante la tecnología, delegando a la ciencia a una mera disciplina con el único objetivo de dar base a la innovación de la tecnología. Ciencias puras como la matemática o la astronomía quedarían obsoletas, puesto que no tendrían aplicatividad en la tecnología. Siendo la tecnociencia la destrucción última de la ciencia.</p> + +</body> +</html> +\ No newline at end of file diff --git a/democracia/index.html b/democracia/index.html @@ -0,0 +1,103 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Del por qué no participo del sistema democrático</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article2.css" /> +</head> +<body> +<header> +<p class="title">Del por qué no participo del sistema democrático</p> +<p class="date">22 de mayo de 2023 • fjbalon</p> +</header> +<p>¿Por qué no voto? es una pregunta a la que me tengo que enfrentar regularmente, especialmente en ocasiones elevadas a los altares del mundo moderno como son las elecciones. El hecho de que no participe en el sistema democrático es anatema para el vulgo, para la sociedad que se deifica a sí misma y que, por lo tanto no puede sino elevarse como soberano. Es por eso que he decidido compendiar los argumentos en los que me baso, no sólo para abstenerme de participar en el sistema democrático, sino para confrontarme a él.</p> + + <h1>Crítica a la democracia</h1> +<h2>Contextualización terminológica</h2> +<p>La democracia responde a una de las tres formas clásicas de gobierno: monarquía, aristocracia y politeia -o democracia-; división que se realiza en función del número de hombres que ostentan el poder. Mientras que el principio monárquico vendría a concretar el poder en una persona concreta, el resto de principios buscaría generalizarlo de forma iterativa: la aristocracia en unos pocos, y la politeia en todos.</p> +<p>Ahora bien, hemos de tener en cuenta que el fin de toda forma de gobierno es el gobierno mismo, siendo un medio por el cual no sólo se decide al gobernante sino que delimita la forma y alcance de dicho gobierno. A su vez, debemos considerar como fin último el bien común, traducido en el pensamiento clásico como el bien de los gobernados mediante la virtud. Ateniendo, claro está, que el medio de la sociedad para que el hombre logre no es el gobierno (sino que debe someterse a poderes intemporales, sean religiosos y filosóficos), el gobernante de la comunidad política debe crear las condiciones adecuadas para facilitar el logro de este fin, que no es natural ni temporal, sino sobrenatural y eterno.</p> +<p>Existe gran confusión terminológica sobre la democracia, por lo que considero elemental hacer algunos apuntes al respecto, siendo un término ampliamente usado desde la antigüedad y habiendo sido usado -deliberadamente- con el objetivo de confundir, creando una dimensión de errores y malinterpretaciones; es necesario apelar a sus distintas connotaciones:</p> +<p>Primero, la democracia es entendida como participación en la vida política, refiriéndonos a que la comunidad tome parte activa en ella. Esto no plantea ni mucho menos un problema, de hecho, al referirnos a la política como ciencia moral prudente cuyo fin es el bien común de la comunidad, sería absurda la exclusión de los integrantes de dicha comunidad.</p> +<p>Segundo, la democracia como forma de gobierno, refiriéndonos a que sirve como medio para la elección de un gobernante.</p> +<p>Tercero, la democracia como fundamento del gobierno, refiriéndonos a que la Verdad, el Bien y la Justicia quedan determinados por la mayoría en sufragio. Planteamiento que constituye, de base, desorden contrario a la doctrina política histórica y tradicional.</p> +<p>Como vemos, las distintas acepciones distan fundamentalmente entre ellas. Habiendo sido la primera secuestrada por el liberalismo, evitando que se use dicho término legítimo en la modernidad sin opción de no empujar a las masas a participar de dicho sistema, viciando la opinabilidad y el juicio. Por lo tanto, si bien dicha definición democrática es un bien, no emplearemos de ahora en adelante dicho término para referirnos a esta participación.</p> +<p>En el otro extremo, tenemos la democracia como fundamento del gobierno; concepto -con origen en el liberalismo- se basa en la eliminación de todo vínculo, producto de la separación filosófica del orden natural y sobrenatural. Al no haber vínculos, se tiende a desarrollar una libertad cuyo fin es la misma libertad, es decir, se transforma en una libertad viciada y viciosa. Como además, la democracia se convierte en el fundamento del gobierno, el número se convierte en un instrumento de poder; y así, las esferas superior no se dedican a gobernar, sino a convencer para gobernar.</p> +<p>Heródoto de Halicarnaso hace una ácida crítica a la democracia en cuanto a que «nada hay más temerario en el pensar que el imperito vulgo, ni más insolente en el querer que el vil y soez populacho», pues «el soberano sabe lo que hace cuando obra, pero el vulgo obra según le viene a las mientes, sin saber lo que hace ni por qué». Para el clásico, es lógico que el vulgo no sepa, pues ¿cómo iba a saber, cuando no ha aprendido de otro lo que es útil y laudable, ni de suyo es capaz de entenderlo?. «Haga Dios que no los persas, sino los enemigos de los persas dejen el Gobierno en manos del pueblo!» indica con sagacidad.</p> +<p>Dicho esto, el lector comprenderá que la crítica se centra principalmente en la democracia como fundamento del gobierno, única forma imperante a día de hoy y que hace absurda cualquier discusión sobre la democracia como forma de gobierno, que será citada simplemente por los clásicos, aunque también será ésta sujeto de crítica formal en este análisis.</p> +<h2>Del Principio de autoridad: obediencia</h2> + <p>La primera característica fundamental para que se de un buen gobierno, o al menos un gobierno conveniente es la obediencia de los gobernados -que parte directamente del Principio de autoridad-, pues es obvio que si el gobernante carece de autoridad y cada individuo se 'ordena' a sí mismo, no existe forma de gobierno alguna más que anarquía. Si bien la obediencia se puede lograr de dos formas, sea mediante coacción o logrando la concordancia entre la voluntad del gobernado y la del gobernante, es fácil ver cómo evitar la coacción es preferible a aplicarla, en primer lugar porque otorga mayor estabilidad al sistema, y en segundo lugar porque la obediencia fundamentada hacia el amor a un bien produce mayor fruto que el se fundamenta en el miedo a un mal.</p> +<p>Tomando pues en cuenta que la obediencia por concordancia de voluntades entre gobernante y gobernado es preferible, dentro de ella también parece lógico que sea ésta fundada en una adhesión racional del bien de lo mandado, pues hace que el fin se presente de forma más clara a la voluntad que con una mera aprehensión emocional de dicho bien. Platón, en la <i>República</i>, reserva dicha aprehensión a los gobernantes, mientras que para los gobernados les basta lealtad a las tradiciones, basada no en <i>Episteme</i> sino en <i>Doxa</i>. Si bien la adhesión racional a cada ley es difícil de lograr, el sentimiento de lealtad, no en una base puramente voluntarista propia de movimientos como el fascismo, sino en una experiencia de lo bueno, que moldee el apetito y, con ello, el juicio; sea más factible.</p> +<p>Encontramos entonces que aquellas formas de gobierno en las que está presente el proceso electivo, presentan una dificultad de base para lograr la lealtad de los gobernados. Esto es debido a que los que no fueron elegidos, así como los que los apoyaban, tienen de partida un incentivo a la deslealtad. Esto es más acusado a mayor número de electores que les sea permitido participar en dicho proceso. De esta forma, descartaríamos la democracia como forma y fundamento del gobierno, que con su sufragio -pretendidamente- universal queda peor parada, así como otras formas de monarquías electivas o ciertas repúblicas aristocráticas, aunque el número de electores sea menor.</p> +<p>Bien es cierto que podría argumentarse cómo hoy día gran parte de la población, o la amplia mayoría, no considera válido ningún otro fundamento del gobierno que sea el del sufragio, y que cualquier otra forma de gobierno provocaría deslealtad. Es algo paradójico y problemático, por supuesto, pues el Principio de autoridad es base fundamental de cualquier forma de gobierno; sin embargo, también podríamos argumentar que, si bien la deslealtad actual a estas formas sería circunstancial al tiempo; la deslealtad a las formas de elección es esencial en su sistema, no existiendo cambio posible. Por otro lado, la obediencia es un medio para que el gobierno ejecute su fin, siendo este la perpetuación y permisividad del desarrollo de la virtud en sus gobernados<sup>1</sup>, sin embargo la estructura de gobierno tiene que perseguir legítimamente su fin, retroactivo de pervivencia, incluso cuando no hay obediencia, o al menos, estaría obligado a garantizarla.</p> +<p>Para Léon Bloy, el sufragio universal no es sino «la inmolación frenética, sistemática y mil veces insensata de la conciencia en aras de la Cantidad». Pues, en efecto, se nos demanda que amordacemos nuestra conciencia, para preocuparnos simplemente por superar numéricamente al adversario. Así, «las elecciones constituyen, cada vez más, el testimonio de una aceleración inaudita, fatal, verdaderamente simbólica y profética hacia la pequeñez de espíritu, la bajeza de corazón y la idiotez».</p> +<p>Sin embargo, el sistema demcratico se presenta a sí mismo como el único modo de evitar males innumerables en una sociedad ideológicamente dividida. Se pretende que dentro de él cabe dar apoyo a cualquier doctrina política, evitando la confrontación y la violencia. Sin embargo, la experiencia demuestra que tal sistema conduce inexorablemente a la degeneración de las costumbres, al deterioro de la convivencia y al desorden en todos los aspectos de la vida social. Lo cual hoy no es sólo evidente para cualquier español, incluso descreído, que observe la realidad que le rodea, sino que era algo previsible a priori. Porque la partitocracia se funda esencialmente en la búsqueda de voto, para lo cual no hay más eficaz procedimiento que el halago de las pasiones individuales y la permisividad del vicio.</p> +<h2>Del Principio de estabilidad</h2> +<p>La segunda condición necesaria para el gobierno conveniente sería la estabilidad y perdurabilidad. Es evidente que una forma de gobierno donde el gobernante depende del mantenimiento de pactos o coaliciones con otras personas o formaciones, carece de estabilidad; así mismo en una forma de gobierno donde exista el ya mentado proceso electivo, que conlleva a su vez que el gobierno cambie cada cierto período de tiempo, provocando incluso cambio ideológico completo y destructor del anterior. Ante este panorama, también es común que el gobernante, sabido que su fin de gobierno se acerca y será sustituido por el contrario, pretenda dejar el gobierno en las peores condiciones posibles para que se la encuentre así su sucesor. Sea como sea, el gobierno actúa contra los intereses de sus gobernados.</p> +<p>El cortoplacismo se convierte también en característica inestable del gobierno, pues carece de tiempo suficiente para ordenar y aplicar medidas que requieren tiempo, reduciendo las propias medidas de éste a anécdotas y cambios sustanciales para dar apariencia de cambio, sino destrucción del orden anterior: no hay continuidad.</p> +<p>Por otro lado, la perdurabilidad de la democracia se sostiene en el número de votantes. Esto le supone otro problema de estabilidad, pues si el vulgo no participa del sistema electivo, el sistema cae. Esto no ocurre con otras formas de gobierno que persisten por sí mismas.</p> +<h2>Del Principio de justicia y libertad</h2> +<p>La tercera condición para el buen gobierno es la justicia, pues de poco sirve un pueblo leal y un gobierno estable si éste no cumple su fin, siendo injusto. Para que un gobernante sea justo, debe necesariamente mirar por el bien común de su pueblo, y dicho bien debe primar sobre cualquier otro bien privado. Dicha condición parece no existir hoy día, en cuanto que en el sistema democrático los candidatos contraen deudas con determinados grupos de presión, patrocinadores, potencias extranjeras, partidos políticos, etc.</p> +<p>Estamos acostumbrados a la pertenencia contractual a un Estado, que ostenta la soberanía a través del orden abstracto al que no podemos dirigirnos, pues no es más que un concepto; que sumado a la consecuencia del espíritu desvinculandor e individualista, que engendró lo que podríamos llamar el alejamiento de la sociedad respecto del hombre concreto. La sociedad fue en otro tiempo algo que, impalpablemente, estaba entre los hombres constituyendo su profesión, su familia, su pueblo. No obstante, la sociedad moderna ha convertido al hombre en una criatura al servicio del Estado, el cual le hace creer que es dueño de la libertad que el propio Estado le otorga. Libertad que para obtenerla ha sido despojado de sus libertades concretas. Así, si el concepto de sociedad es absorbido por el Estado, cuya libertad y justicia quedan abstraídas: no existe libertad ni justicia concretas.</p> +<p>Además, tal y como lo definiría Max Weber el Estado se constituye como <i>monopolio de la violencia</i>, es decir, única autoridad para el ejercicio de la violencia. De base, esto constituye un problema para la seguridad del gobernado, que no tiene forma de defensa legítima contra aquél ente abstracto que debe defenderle, pero en la experiencia conocemos que no siempre es así. Esto constituye, de nuevo, otro problema para el Principio de justicia, constituyendo al Estado como un ente injusto. No obstante, este no es un tratado sobre el Estado, sino sobre la democracia, que aunque de alguna forma relacionados, no ahondaré más en el tema.</p> +<h2>Del Principio de subsidiariedad</h2> +<p>Si bien el propio principio queda sometido -y demolido- a la mayoría y al sufragio, es fácil ver el problema que conlleva una justicia abstracta en una voluntad abstracta. Además, al carecer de representatividad real, el Principio de subsidiariedad queda también demolido, y no queda sino un centralismo desvinculante, cada vez más global y menos concreto, sin manifestación legal y política de la visión de la comunidad como <i>corpus mysticum</i>, del que hablan nuestros clásicos políticos.</p> +<p>Primero, porque es necesario que exista una voluntad hacia al bien común que no puede existir tras la abstracción y el sometimiento de la Verdad a la mayoría. Segundo, porque la propia naturaleza del gobierno democrático tiende a centralizar y a absorber todas las competencias, incluso las que no le competen legítimamente, como la Familia o la Religión, cuando el principio defiende que el gobierno sólo debe ejecutar una labor cuando se advierte que los particulares o los organismos intermedios no la realizan correctamente.</p> + <h2>Del Principio eficiente</h2> +<p>La cuarta condición introduce la eficiencia, es decir, que el gobernante sea el más apropiado y mejor para el cargo. Suele reducirse vulgarmente en el término meritocracia, sin embargo, presupone que existe mérito en cualquier forma de gobierno producto del proceso electivo. La experiencia demuestra que aquel que vence en el proceso electivo lo hace por retórica sofística más que por méritos propios para el cargo.</p> +<p>Además, teniendo en cuenta que, como hemos visto antes los medios para el buen gobierno son más ineficientes e ineficaces, es lógico pensar que incluso si garantizáramos que el gobernante es el más eficiente y meritorio para el cargo, los medios de los que dispondrían harían sino defecto de gobierno.</p> + + <h1>¿Puede un cristiano ser demócrata?</h1> +<p>Como cristiano, defiendo que un correligionario no puede sino ser profundamente monárquico. Un cristiano no puede ser demócrata, pues en ella radica el gobierno anticrístico: la rebelión y desacralización de todo orden natural y sobrenatural, de todo vínculo y de toda potestad sobrenatural y Real de Cristo Rey. He reflexionado más profundamente al respecto en <a href="../teologia-historia-monarquia/">Teología de la Historia: <i>Ergo rex es tu?</i></a> y <a href="../teologia-historia-kathejon/">Teología de la Historia: kathejon</a>.</p> +<p>Es por esto, que considero que un cristiano no puede participar del sistema democrático sin ser, en el mejor de los casos, contradictorio con las propias enseñanzas de Cristo y de la Iglesia, y en el peor, sin caer en una deificación de la voluntad del hombre contra la Voluntad de Dios. Sin embargo, los cristianos han dado su consentimiento a ese proceso de degradación gracias a la aplicación de tres principios morales, malentendidos cada uno por separado y cuya conjunción ha dado muestras de una inmejorable eficacia para dejar en la más completa inoperancia política a la Cristiandad.</p> +<h2>Del Principio del mal menor</h2> +<p>Rectamente entendido establece que, cuando no hay más posibilidad que elegir entre dos males, se ha de procurar el mal menor.</p> +<p>Se trata de un argumento poderoso que enlaza con nuestra vida cotidiana donde, a cada paso, elegimos el menor de los males. Quien compra elige, en igualdad de condiciones, lo que menos vacíe sus bolsillos y, en el buen gobierno de sí mismo, de su casa o de su negocio prevemos prudencialmente los males que pueden seguirse de cada decisión y elegir el de menor riesgo. Si esto es así de manera aparentemente universal ¿cómo no va a conmovernos quien nos exige aplicar ese principio a la elección del gobierno?</p> +<p>Evidentemente, la elección del mal menor no produce problema alguno cuando nos referimos a males triviales. Sin embargo, el problema viene cuando lo buscamos aplicar al verdadero mal que es el pecado. Porque el mal es, como el bien, de clases diversas: no es igual la situación de quien se ve obligado a elegir entre seguir un tratamiento médico agresivo o no seguirlo (males ambos entre los cuales puede el hombre elegir prudentemente sin pecado), que la situación del que se ve obligado a elegir entre pecar de una manera o pecar de otra. Entonces, ¿son las elecciones una mera puesta en acción de preferencias personales? ¿sólo hay que sopesar las ventajas prácticas de los distintos programas? Recordemos que no, pues ya en un inicio hemos distinguido entre la democracia como forma de gobierno, y la democracia como fundamento del gobierno.</p> +<p>Tomás de Aquino<sup>2</sup> y los ejemplos medievales distan mucho de la situación en que se halla quien tiene derecho a voto, pero la doctrina es perfectamente aplicable. La democracia como fundamento del gobierno da un poder irrestricto a los gobernantes electos. Poder ejercido en nombre de la voluntad popular que no ha de someterse a ninguna otra instancia ni divina ni humana, dejando de lado, por consiguiente, tanto la ley natural como la voluntad de Dios enseñada por la Iglesia. Bien es verdad que muchos confunden las votaciones con un supermercado de futuros derechos, con un timba donde esperan salir gananciosos o, incluso, con un concurso de belleza donde se eligen las estrellas de futuros espectáculos. Quizás estos últimos, los más necios o los más sardónicos, se aproximen mejor que ninguno a la realidad de un sistema, no sólo institucionalmente depravado, sino corrupto en su depravación. Pero, si nos atenemos a lo oficial, a la liza de partidos y a sus programas, quien vota a un partido favorable (más o menos) al aborto, a las leyes contra la familia, a la degeneración sexual, a la corrupción en la escuela, a la disolución de la Patria, a la esclavitud práctica del asalariado, al totalitarismo, al estatismo o a tantas otras infamias del sistema, peca. Peca, primero, por acatar la soberbia satánica del sistema mismo, y peca por hacerse cómplice de cuantos desmanes pueda cometer el partido votado. Y a ese votante no le vale escudarse en el principio del mal menor, a no ser que su voto favorezca a un partido cuyo programa coincida totalmente con los principios del orden social cristiano, lo cual supondría la desaparición del sistema liberal mismo. Y si tal cosa no existe, siempre le queda abstenerse.</p> +<p>Transliterando a Castellani: «El principio moral de que es lícito elegir un mal menor vale en determinados casos, por ejemplo el de la legítima defensa, <i>servato moderamine inculpatae tutelae</i>, como dicen. No vale en todos. En el caso de conciencia propuesto por el film <i>El mar no perdona</i>, por ejemplo, el capitán del bote salvavidas que da muerte directamente a algunos de los náufragos para salvar al resto, procede inmoralmente».</p> +<p>El mal uso de este principio suele consistir en eliminar posibilidades realmente existentes por razones diversas.</p> +<h2>Del Principio pacifista</h2> +<p>Rectamente entendido establece que la paz es un bien deseable y elevado dentro de los bienes socialmente perseguibles.</p> +<p>Sin embargo, no olvidemos que no es un bien absoluto, pues las contiendas y enfrentamientos no sólo son permitidos, sino obligatorios, cuando se trata de salvar un bien mayor que la propia paz. Su mal uso consiste en hacer de la paz humana el bien primero e irrenunciable.</p> +<p>Además, aunque tomemos como cierto que la paz sea un bien absoluto, seguimos en la misma tesitura pues, ya hemos ido viendo anteriormente cómo la democracia, si bien se presenta como el único modo de evitar males en la sociedad dividida -como la paz-, supone realmente polarización y aún más división social, produce en último término mayor violencia e injusticia, inestabilidad, proliferación del vicio y represión a la virtud, deterioro de la convivencia y desorden en todos los aspectos. Por lo que incluso si aspiramos a la paz como bien último, la democracia no sería el método para alcanzarlo.</p> +<h2>Del Principio de sagacidad</h2> +<p>Rectamente entendido establece que el cristiano, como Hijo de la Luz, ha de obrar con prudencia, diligencia e inteligencia en las cosas, especialmente las cosas de Dios, como es el ordenamiento de la sociedad política hacia el fin último del hombre.</p> +<p>Sin embargo, dicha prudencia se convierte en maquiavelismo bien cuando se busca un fin bueno por medios moralmente ilícitos, bien cuando se tergiversan los fines con razones que ocultan un interés mundano o carnal.</p> + +<cita> +<p>«Hechas las primeras elecciones, de las cuales sólo salieron gananciosos los partidos laicistas, entró en juego la mezcla de los tres principios citados: el del pacifismo impedía considerar ni siquiera la posibilidad de un enfrentamiento ante poderes legalizados y enseñoreados. Los otros dos juntos dieron como resultado que se recomendara a los católicos el voto al menos malo de los partidos. Según el principio del mal menor mezclado con el de sagacidad, el voto no se había de realizar conforme a las creencias de los católicos, sino según el astuto cálculo de los votos probables y la elección entre los dos partidos más favorecidos por ese cálculo, despreciando a los partidos opuestos al sistema y defensores del orden político cristiano, porque supuestamente no iban a ser votados. La sagacidad del éxito hizo olvidar el deber. Las disquisiciones sobre las posibilidades de victoria postergaron la obligación de testimoniar las verdaderas creencias. Y así, por poner el ejemplo de la cuestiones familiares (que no son las únicas, ni las básicas), los católicos se acostumbraron a dar su apoyo, primero a los defensores de cierto tipo de divorcio, luego al divorcio indiscriminado y al aborto, para acabar votando al que, según cálculos sagaces de intenciones (siempre errados por cierto), menos infantes pensaran liquidar. Acabarán votando a quienes sólo defiendan el "matrimonio" homosexual y no el bestial o a quienes sólo legalicen la blasfemia y no el sacrilegio. E introducirán por última vez su papeleta cuando elijan entre quienes piensen eliminar limpiamente a los católicos y quienes prefieran usarlos antes como diversión en el circo. Y eso con la bendición episcopal y con la conciencia tranquila del que hace lo que puede y, por tanto, lo que debe.»</p> +<p><a href="https://carlismo.es/el-abstencionismo-militante-de-la-comunion-tradicionalista/">El abstencionismo militante de la Comunión Tradicionalista</a>, Comunión Tradicionalista, 16 de noviembre de 2011</p> +</cita> +<h2>Del «voto útil»</h2> +<p>Sin embargo, hoy día se ha desacralizado tanto el orden social incluso entre los cristianos, que con gran perplejidad somos testigos de los debates que se han suscitado en torno al llamado «voto útil», debates que antes al menos tenían la cuestión moral que acabamos de ver como base. Es hilarante que el «voto útil» sea incluso llamado desde los gobernantes con el objetivo de frenar al adversario.</p> +<p>Como nos enseña Chesterton, la labor de los progresistas es cometer errores; mientras que la labor de los conservadores es evitar que los errores sean arreglados. Y todos sabemos que los conservadores, al evitar que los errores de los progresistas sean arreglados, contribuyen más que nadie a consolidarlos, haciendo infinitamente más difícil su reversión. Pero lo más llamativo de la actual campaña en favor del «voto útil» es que sus promotores no invocan cuestiones morales asociadas al «mal menor», sino que se limitan a enarbolar cálculos y proyecciones estadísticas. Ya nadie aspira a convencer al votante de que hay una causa proporcionada que permite forzar la conciencia, sino que se apela al más crudo sectarismo del número.</p> +<p>Tan feroz como de costumbre, León Bloy afirmaba que la gente ingenua «espera la Salvación mediante el sufragio universal porque, habiendo perdido la fe, cree que un mal árbol puede dar frutos buenos».</p> +<h2>De la abstención</h2> +<p>Así, concluyo con la que el único «voto útil» y auténticamente moral sería la abstención. Es falso que sólo exista la posibilidad de voto a alguno de los partidos mayoritarios, como es falso que pueda confrontar al sistema democrático mediante sus propios métodos.</p> +<p>Espero que el lector, tras tales argumentaciones y diatribas, no vea mi abstención a la participación del sistema democrático como una abstención apática e irresponsable, pues nada más lejos de mi intención lo sería; sino una acción voluntaria y política, así como una defensa de los principios clásicos y tradicionales, de la razón y el buen hacer político. Defiendo, entonces, la abstención como única forma, de momento, de lucha contra el sistema anticrístico, ilógico y desnaturalizador de la sociedad. Considero, que incluso en mi conciencia incurriría en pecado personal el hecho de pecar, por todo lo aquí escrito.</p> + + <h1>Bibliografía y referencias</h1> + <ul> +<li>«Historias, III», Heródoto de Halicarnaso</li> +<li>«De Regno», Tomás de Aquino</li> +<li>«Summa theologica», Tomás de Aquino</li> +<li>«De regimine principum», Tomás de Aquino</li> +<li>«La Monarquía en la Teología de la Historia», Javier Barraycoa, Verbo, núm. 535-536 (2015)</li> +<li>«Carta Encíclica <a href="https://www.vatican.va/content/leo-xiii/es/encyclicals/documents/hf_l-xiii_enc_15051891_rerum-novarum.html">Rerum Novarum</a>», León XIII, 15 de mayo de 1891</li> +<li>«Cristianismo y política, Louis Salleron», Verbo, núm. 99 (1971)</li> +<li>«El orden político cristiano en la doctrina de la Iglesia», Miguel Ayuso, Verbo, núm. 267-268 (1988)</li> +<li>«La constitución cristiana de los Estados», Miguel Ayuso</li> +<li>«La democracia atea», Francisco Canals</li> +<li>«Modernidad y posmodernidad: inflexión del pseudoprofetismo», Francisco Canals, Verbo, núm. 329-330 (1994)</li> +<li><a href="https://circulohispalense.wordpress.com/2019/09/16/que-es-la-democracia-concepto-y-alternativa/">«¿Qué es la democracia? Concepto y alternativa»</a>, Miguel Quesada, Círculo Hispalense</li> +<li><a href="https://circulohispalense.wordpress.com/2020/04/02/apuntes-sobre-la-monarquia-hereditaria/">«Sesión juvenil IV: Monarquía hereditaria como forma de gobierno»</a>, Manuel Blanco, Círculo Hispalense</li> +<li><a href="https://carlismo.es/el-abstencionismo-militante-de-la-comunion-tradicionalista/">«El abstencionismo militante de la Comunión Tradicionalista»</a>, Comunión Tradicionalista, 16 de noviembre de 2011</li> +<li><a href="https://carlismo.es/jose-miguel-gambra-elecciones-mal-menor-y-culpa/">«Elecciones, mal menor y culpa»</a>, José Miguel Gambra, 25 de mayo de 2019</li> +<li><a href="https://carlismo.es/el-voto-util-articulo-de-juan-manuel-de-prada/">«El "voto útil"»</a>, Juan Manuel de Prada, 26 de abril de 2019</li> +</ul> +<p><sup>1</sup> Teniendo en cuenta siempre la razón de ser de lo que debemos considerar un buen gobierno. Pues si bien la democracia como fundamento del gobierno pervierte dicha razón, fomentando el vicio y la dependencia entre los gobernados en lugar de la virtud y la independencia, esto no hace sino convertirlo en una pésima forma de gobierno.</p><p><sup>2</sup> Contra lo que pensaban algunos autores anteriores, Santo Tomás defendió que el hombre inocente nunca puede hallarse moralmente perplejo. Hoy en día los moralistas suelen llamar «dilema moral» a la situación que provoca lo que Santo Tomás llamaba «perplejidad». Esa circunstancia se daría si un hombre estuviera obligado a elegir, sin más salida, entre dos acciones pecaminosas. Un ejemplo, entre los muchos que usaron los medievales, es el del sacerdote que, celebrando la Santa Misa, se da cuenta de que está en pecado mortal y se ve en la tesitura de comulgar sacrílegamente o escandalizar a los fieles interrumpiendo la celebración. Santo Tomás rechazaba que un inocente de conciencia rectamente formada (pues la falta de esa conciencia ya es pecaminosa) pueda verse absolutamente en la perplejidad de un dilema semejante, porque eso evidentemente supondría que el inocente estaría obligado a pecar. Puede, sin embargo, hallarse en esa perplejidad «en cierto modo» (secundum quid) quien previamente ha cometido un pecado, como en el caso del mencionado sacerdote. Pero, incluso en ese caso, no está obligado a cometer un segundo pecado, pues siempre cabe que el cristiano rectamente formado resuelva la cuestión sin añadir una nueva culpa. En nuestro ejemplo, bastaría que el sacerdote hiciera un acto de contricción perfecto. En otras palabras, siguiendo la mente de Santo Tomás, la máxima «del mal, el menos» no tiene aplicación cuando el mal se entiende en el sentido primordial del pecado. Lo cual no impide que, por ejemplo, según la doctrina clásica de la tolerancia, un gobernante, sin incurrir en culpa alguna, haya de tolerar ciertos males para evitar otros mayores en beneficio del bien común.</p> + +</body> +</html> diff --git a/dialogo-carmelitas/index.html b/dialogo-carmelitas/index.html @@ -0,0 +1,42 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Diálogo de Carmelitas (1960)</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Diálogo de Carmelitas (1960) «Liberté, Égalité, Fraternité... ou la Mort»</p> +<p class="date">11 de enero de 2023 • fjbalon</p> +</header> +<p>En esta sociedad post-revolucionaria, que encumbra el Reinado del Terror y la guillotina y que entroniza a la diosa razón. En esta sociedad que se escandaliza por las atrocidades del nazismo y el comunismo, pero que tolera y defiende las atrocidades de la Revolución, el genocidio de La Vendée, de Lyon y de Nantes; el asesinato de la Casa Real y la matanza de septiembre. En esta sociedad heredera de la Ilustración. En esta sociedad enferma, sólo que exista esta película es una rareza.</p> +<img style="width: 50%; float: left; filter: sepia(30%); margin-right: 1em;" src="resources/martires-compiegne.jpg" /> +<p>La película es sobresaliente, de una finura y una fotografía excelentes, con un blanco y negro que contrasta con el blanco y negro del hábito monacal. El diálogo -como demanda el título de la película- es docto y de un mimo literario, y transmite perfectamente la vivencia de sus personajes.</p> +<p>Es una cinta histórica, sí, pero también es una cinta católica. Es una película sobre la vida consagrada, que se es en Cristo hasta las últimas consecuencias. Es una película sobre la muerte, una muerte que como la Parcae se acerca y acecha conforme la Revolución avanza, algunas protagonistas la temen por su juventud, otras por su debilidad humana; pero todas la enfrentan con gallardía. Es una película sobre la obediencia, obediencia a la autoridad real, a la Madre Superiora, a la Voluntad de Dios; que se contrapone a la voluntad revolucionaria, la autoridad del terror y del Estado que se rebela a la verdadera autoridad: de la Iglesia, del Rey, de Dios. Es una película sobre la virtud, la virtud monástica y heroica, cristiana y evangélica, una glorificación de la Santa Regla de San Benito, una postración a la doctrina de Santa Teresa de Ávila. Una obra de arte.</p> +<p>La película se inspira en la historia real de las 16 monjas carmelitas de Compiègne (conocidas como las «Mártires de Compiègne»), que fueron arrestadas en junio de 1794 por alta traición. ¿Su crimen? Rechazar la Constitución Civil del Clero del gobierno revolucionario, que les mandaba secularizarse, exclaustrarse y suprimir el monasterio. Fueron encarceladas en Cambrai junto con otra comunidad de monjas benedictinas inglesas. Finalmente fueron trasladadas a París, donde fueron guillotinadas en la plaza del Trône-Renversé, el 17 de julio de 1794.</p> +<p>El cardenal arzobispo de París inició el proceso de su beatificación el 23 de febrero de 1896. El 16 de diciembre de 1902 fueron declaradas venerables por Su Santidad León XIII, y finalmente beatificadas el 27 de mayo de 1905 por Su Santidad San Pío X. El 3 de marzo de 2022 el Santo Padre Papa Francisco las declaró santas por equivalencia. Nunca olvidemos sus nombres, ni su gesta heroica y mártir, tesoro de la Iglesia francesa y universal.</p> +<ul> +<li>Sœur Constance de Jésus (29 años, novice)</li> +<li>Sœur Saint Louis (42 años, sous-prieure)</li> +<li>Sœur Euphrasie de l’Immaculée Conception (58 años, choriste)</li> +<li>Sœur Julie-Louise de Jésus (53 años, choriste)</li> +<li>Sœur Sainte Marthe (51 años, converse)</li> +<li>Sœur de Jésus Crucifié (78 años, choriste jubilaire)</li> +<li>Sœur Marie du Saint Esprit (52 años, sœur converse)</li> +<li>Sœur Saint François-Xavier (33 años, sœur converse)</li> +<li>Sœur Thérèse de Saint Ignace (51 años, choriste)</li> +<li>Sœur Charlotte de la Résurrection (78 años, choriste jubilaire)</li> +<li>Sœur Thérèse du Cœur de Marie (52 años, choriste)</li> +<li>Sœur Catherine (52 años, tourière)</li> +<li>Sœur Thérèse (49 años, tourière)</li> +<li>Mère Henriette de Jésus (49 años, maîtresse des novices)</li> +<li>Sœur Marie-Henriette de la Providence (34 años, choriste)</li> +<li>Mère Thérèse de Saint-Augustin (41 años, prieure)</li> +</ul> + + +</body> +</html> +\ No newline at end of file diff --git a/dialogo-carmelitas/resources/martires-compiegne.jpg b/dialogo-carmelitas/resources/martires-compiegne.jpg Binary files differ. diff --git a/diccionario-dni/index.html b/diccionario-dni/index.html @@ -0,0 +1,76 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Descifrado de .zip protegido mediante diccionario de DNIs</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Descifrado de <i>.zip</i> protegido mediante diccionario de DNIs</p> +<p class="date">12 de septiembre de 2016 • fjbalon</p> +</header> +<p>Me he encontrado con esta prueba de concepto: debía descifrar un archivo comprimido ZIP que contenía un PDF secreto, que sólo podría abrir la persona propietaria. Llevando a cabo una breve investigación, descubro que la clave es siempre el DNI (Documento Nacional de Identidad -en España-), formado por ocho dígitos y un carácter alfabético de control, del propietario. Esto facilita las cosas, pues sabemos cómo se compone:</p> +<p>El carácter alfabético se obtiene a partir del resto de la división entre número completo y 23. Así, donde n es el número:</p> + + <math xmlns="http://www.w3.org/1998/Math/MathML" alttext="n\bmod 23=n-23\lfloor\frac{n}{23}\rfloor" display="block"> + <mrow> + <mrow> + <mi>n</mi> + <mo lspace="2.5pt" rspace="2.5pt">mod</mo> + <mn>23</mn> + </mrow> + <mo>=</mo> + <mrow> + <mi>n</mi> + <mo>-</mo> + <mrow> + <mn>23</mn> + <mo></mo> + <mrow> + <mo stretchy="false">⌊</mo> + <mfrac> + <mi>n</mi> + <mn>23</mn> + </mfrac> + <mo stretchy="false">⌋</mo> + </mrow> + </mrow> + </mrow> + </mrow> + </math> + <p>Al resto resultante de dicha división, que estará comprendido entre 0 y 22, se le asigna la letra de control según una equivalencia. Las equivalencias son:</p> + +<pre><code>mod 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 +array T R W A G M Y F P D X B N J Z S Q V H L C K E</code></pre> +<p>Entonces, escribimos un pequeño código en Python que itera todas las posibilidades de DNI habidas (100.000.000), y de cada una calcula su carácter de control. Además, escribirá cada opción en un fichero dni.code, obteniendo así el diccionario.</p> + <pre><code>#!/bin/python +def calculate_letter(nif): + seq = 'TRWAGMYFPDXBNJZSQVHLCKE' + return seq[nif % len(seq)] + +def generate_nif(d): + return str(d).rjust(8,'0') + calculate_letter(d) + "\n" + +with open("dni.code","w") as f: + for i in range(100000000): + print(generate_nif(i)) + f.write(generate_nif(i)) +f.closed</code></pre> +<p>Después, usaremos la herramienta <a href="https://www.kali.org/tools/fcrackzip/">fcrackzip</a> para probar cada una de las palabras del diccionario.</p> + +<pre><code>$ fcrackzip -v -u -D -p dni.code crypted.zip +found file 'secret.pdf', (size cp/uc 254198/262378, flags 9) +checking pw 00000000T +checking pw 00000001R +checking pw 00000002W + +[...] + +PASSWORD FOUND!!!!: pw == 84671735H</code></pre> +<p>Owned!</p> + +</body> +</html> +\ No newline at end of file diff --git a/distributismo/index.html b/distributismo/index.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Breve ensayo sobre el distributismo informático</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Breve ensayo sobre el distributismo informático</p> +<p class="date">17 de julio de 2023 • fjbalon</p> +</header> <p>El distributismo de G.K. Chesterton y Hilaire Belloc no tiene aplicación en el cosmos económico actual. Sin embargo, sí ha tenido aplicación en la antigüedad clásica, donde encontramos elementos cercanos al estudio y los principios distributistas. En Grecia y en Roma, la propiedad de los medios de producción estaba ampliamente distribuida entre los gobernados, defendiéndose la independencia económica y la autarquía. Más concretamente, en las ciudades-estado griegas, los campesinos tenían acceso a la tierra y poseían sus propias parcelas; en Roma, la Ley de las XII Tablas protegía la propiedad de los agricultores y limitaba la acumulación excesiva de tierras por parte de los ricos. La mentalidad clásica ilustra aquella noción de justa distribución de la propiedad y la importancia de la independencia económica.</p> +<p>En la Edad Media, el feudalismo puede ser visto como una forma rudimentaria de distributismo, basado en las obligaciones de los vasallos y los señores, sistema en el que existía una distribución de la propiedad de la tierra entre los siervos y propietarios. Los siervos tenían el derecho de cultivar sus propias tierras, con capacidad de poseer, lo que otorgaba independencia económica incluso contra sus señores. Además, dicho período se enfocaba en la artesanía y la producción localizada, lo que permitía una mayor participación de la población en la economía. Los gremios, por ejemplo, promovían la propiedad y el trabajo independiente. Este énfasis en la propiedad y la independencia se asemeja también a los principios distributistas.</p> +<p>Estas líneas evidenentemente constituyen un reduccionismo de figuras y eras tan complejas y longevas, sin embargo no es propósito de este texto ofrecer una visión político-social e histórica del distributismo, sino comentar simplemente cómo éste ha tenido aplicación histórica, que posteriormente ha sido desarrollada -en conjunto a la Doctrina Social- por Chesterton y Belloc. No así actualmente, donde la dicotomía de la aplicatividad económica sólo se sostiene en el socialismo y el capitalismo. El distributismo, hoy día, no tiene aplicación, no existe ¿o quizá sí se haya desarrollado orgánicamente en algún ámbito? Así lo creo.</p> +<p>Aunque el distributismo de Chesterton y Belloc no ha sido específicamente diseñado para el mundo de la computación, me parece que existen argumentos que pueden probar que, dentro de algún ámbito del logos computacional, se da ciertamente. Por ponerle un nombre, le denominaré distributismo informático.</p> +<p>¿Qué características debería tener el distributismo informático para verse como heredero del de los apologetas del siglo XX? En primer lugar, debe promover la descentralización y la propiedad distribuida tanto del hardware como del software. Si bien es cierto que en la actualidad, el mercado de la tecnología está dominado por unas pocas empresas, a menudo extranjeras, que concentran el poder económico y político; lo que provoca la limitación de acceso a la tecnología, lo que se traduce en un control de la información por parte de dichos casimonopolios, que mediante cruces de bases de datos, convierte al que concentra el poder en absolutizador del control y la monitorización. Se opone el distributismo informático a esta situación, fomentando la propiedad colectiva y el control democrático (en una acepción de participación) de los datos y el uso de la tecnología.</p> +<p>La organización informática y de servidores debe ordenarse de forma armónica, o parafraseando a Ernst Friedrich Schumacher (<i>Small Is Beautiful: A Study Of Economics As If People Mattered</i> o <i>Lo pequeño es hermoso: Economía como si la gente importara</i>, 1973), en un conjunto armónico de unidades más pequeñas dotadas de la mayor autonomía posible, recurriendo para ello al Principio de subsidiariedad. La consecuencia sería la misma, una descentralización y distribución de la propiedad, tendencia que existió fundamentalmente en los inicios del Internet, y que sin embargo, ha cambiado y derivadoa a una concentración de la propiedad de Internet por parte de grandes capitales, controlando cada vez más 'parcelas' digitales.</p> +<p>Otra característica esencial sería la forma de distribución del software, que tanto la filosofía Unix como las comunidades de software libre defienden. Es necesario que existan las licencias que permitan su distribución, modificación y redistribución, propiedad colectiva y comunitaria de software, con el aumento de la seguridad y la privacidad que conlleva. El caso concreto de la forma de distribución de GNU/Linux es palpable: se basa en una amplia variedad de distribuciones (o 'distros'), cada una con su propia configuración, parametrización, conjunto de software e incluso enfoques específicos, lo que permite a los usuarios adaptar el sistema operativo a sus necesidades reales y no al contrario, ganando a su vez independencia. La personalización o customización se vuelve parte del diseño, otorgando al usuario libertad de modificación y adaptación del sistema, sea en aspecto visual y estético o añadiendo y eliminando módulos de software. Es un enfoque orientado al usuario, no a la empresa desarrolladora, hecho que da el control a éste y no al monopolizador.</p> +<p>De cara al programador, se basa en el modelo de desarrollo colaborativo y cooperativo. Base de ello es la apertura del código fuente, y aún más como exponente de la filosofía del software libre. Finalmente, son las comunidades y familias de programadores las que sostienen y contribuyen a la mejora y expansión del software y del sistema operativo. Las bifurcaciones de software permiten garantizar la justicia contra la tiranía de ciertas prácticas de empresa.</p> +<p>Como conclusión, defiendo que el cosmos de Unix es prueba suficiente para demostrar la viabilidad del ideal distributista, que existe en él y se explora en el Internet.</p> + +</body> +</html> +\ No newline at end of file diff --git a/dune/index.html b/dune/index.html @@ -0,0 +1,58 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Dune, de Frank Herbert</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Dune, de Frank Herbert</p> +<p class="date">20 de mayo de 2023 • fjbalon</p> +</header> +<p>Me atrevo a asegurar que Dune es la obra magna de la ciencia ficción; no hay nada parecido en la literatura moderna en cuanto a magnitud y madurez; a excepción de la <a href="../tolkien-mythopoeia/"><i>mythopoeia</i> de J.R.R. Tolkien</a><sup>1</sup>. Es una obra complejísima e inabarcable que elevó, intemporalmente, el género de la ciencia ficción a pura Literatura, literatura que entrelaza y relaciona tantos temas y disciplinas que hacen pensar que no ha podido ser fruto de un solo escritor, dando lugar a una cosmología inmensamente rica y robusta. Más que una obra literaria, se trata de un sistema orgánico vivo, un espacio-tiempo autónomo subordinado a sus propias leyes físicas. Todo su universo parece funcionar sin necesidad de sus propios personajes, que parecen simples actores que sirven a su <i>Universo conocido</i> y que beben del enorme ensayo de teoría política, del principio de autoridad, de la religión y su uso político, de la influencia y la ingeniería social, de la espiritualidad, de la tradición, de la estrategia militar, de las matemáticas, la ciencia y la tecnología, de la adaptación al entorno, del sistema económico... Y el máximo exponente de la obra: de la ecología.</p> +<p>La sociedad de Dune es una sociedad tecnológicamente avanzada, pero cuya tecnología se ha desarrollado al margen de la informática desde los acontecimientos de la Yihad Butleriana.</p> + +<cita> +<p>Yihad Butleriana: (ver también Gran Revolución) - la cruzada contra los ordenadores, máquinas pensantes y robots conscientes iniciada en el año 201 B.G. y terminada en el 108 B.G. Su principal mandamiento ha quedado registrado en la Biblia Católica Naranja como «No construirás una máquina a semejanza de la mente humana.»</p> +<p>Apéndice <i>Terminología del Imperio</i>, glosario de la novela <i>Dune</i></p> +</cita> +<p>Dicha cruzada propulsó el cambio de paradigma humano que es base del propio mundo propuesto por Herbert, mundo que no se comprende sin este hecho y que ofrece una profundidad como pocas obras de ciencia ficción han dado.</p> +<p>Desde un punto de vista cerril, podemos manifestar que la Yihad fue una guerra contra las máquinas, a un modo de ver similar a Terminator. Sin embargo, en honor a la razón, no podemos sino defender que fue algo muy distinto. Para Herbert, las máquinas no presentan un problema en sí mismo, sino que se convirtieron en un problema debido a la dependencia de la sociedad a éstas. Aquel que controla la máquina controla la humanidad; citando a la Reverenda Madre Gaius Helen Mohiam:</p> + +<cita> +<p>«Una vez los hombres entregaron su pensamiento a las máquinas con la esperanza de que esto los liberara, pero eso solo permitió que otros hombres con máquinas los esclavizaran»</p> +<p>Madre Gaius Helen Mohiam</p> +</cita> +<p>Así, Herbert entendió que las máquinas pensantes hacían de muleta que impedía a la humanidad alcanzar su verdadero potencial.</p> +<p>El autor ofrece un enfoque a la guerra harto interesante, evitando caer en tópicos de guerra contra malvadas máquinas (valga el oxímoron), un ejército inteligente y metálico<sup>2</sup>. No es única y necesariamente una guerra física (que no pongo en duda que existiría en tal plano), sino una yihad, una cruzada (entiéndase la diferencia entre los términos, por favor) que produjo un cambio paradigmático y filosófico del pensamiento de la sociedad. Una cruzada más espiritual e intelectual que bélica. Herbert extiende y amplía las ideas contrarrevolucionarias (principalmente aquellas existentes en las revoluciones industriales del siglo XIX), describiendo una sociedad esclavizada y en condiciones inhumanas, una sociedad sumida en una tecnocracia que no diferencia entre humano y máquina, siendo todos engranajes del mecanismo del sistema autoritario y transhumanista. De hecho, ni si quiera debió ser una revolución contra las máquinas en sí mismas, sino contra aquellos que controlaban las máquinas; que eran, de hecho, humanos. Tras la revolución, se estableció una nueva moral, un nuevo paradigma que establece la humanidad como el valor más alto.</p> +<p>Frank Herbert plasmaba así una suerte de escepticismo hacia el peligroso y potencial uso que ciertos humanos dan a las máquinas, así como gran parte de la sociedad que prefiere doblegarse ante el pensamiento de la máquina, sumiéndose en el algoritmo, reduciendo la sociedad a datos e información, cediendo su raciocinio e intelecto a los programas.</p> + +<cita> +<p>«Mi charla estaba básicamente dirigida a desacreditar la imagen antropomórfica de las computadoras [...] Muchos de los llamados científicos tienen un impulso psicológico muy fuerte para creer que las computadoras 'piensan' y tienen personalidad. [...] Esto es una completa tontería. Las computadoras son herramientas mecánicas que no tienen experiencia ancestral humana. Pueden hacer cosas maravillosas, pero no van a evolucionar en humanos.»</p> +<p>Citando a Frank Herbert, de "It's the end of the world—and the beginning of a novel" por Ronn Ronck, Honolulu Star Bulletin, 5 de septiembre de 1982</p> +</cita> +<p>Si bien sus argumentos anteriores están poco desarrollados, los amplía en el propio Dune, haciendo de efigie de su propio pensamiento; compensa. Para los materialistas el cerebro no es sino una suerte (he elegido esta palabra deliberadamente) de patrones eléctricos que producen todo. Sin embargo, Herbert no es materialista, y prueba de ello es su cita de «no tienen experiencia ancestral humana», frase que puede leerse desde muchos prismas, pero ninguno materialista. Como bien dice Herbert, las máquinas carecen de cultura, de experiencia real, de cognosciencia, de razón; al fin y al cabo las máquinas carecen de consciencia. Existen elementos que no pueden ser producidos meramente por reacciones químicas o interacciones físicas de la materia, debido a la simple razón de que la materia no puede generar nada que no sea materia. No obstante no pretendo hacer de esta entrada un ensayo sobre la inmaterialidad de la consciencia.</p> + +<cita> +<p>«Desde la época de la Yihad Butleriana cuando las "máquinas pensantes" fueron eliminadas de la mayor parte del universo, los ordenadores han inspirado desconfianza.»</p> +<p>Tleilaxu Scytale, <i>El Mesías de Dune (1969)</i></p> +</cita> +<p>Entonces, viéndolo así parece evidente que para Herbert, la existencia de la inteligencia artificial está obviada en Dune y en los períodos anteriores a la Yihad. Sin embargo, no parece tratarse de una o varias inteligencias que someten al hombre, sino un uso indebido por parte de los gobiernos de la tecnología y la informática. Los ordenadores han inspirado desconfianza, así como la tecnología relacionada. ¿Se encuentra la IA en esta dicotomía? Yo creo que si atendemos a la definición formal de inteligencia artificial, ésta si cumpliría un papel elemental en cuanto a a su control; sin embargo, evade las implicaciones ficticias propias del género: no existe consciencia, no existe una máquina que supera al hombre, no existe 'evolución darwiniana informática'. La IA, para Herbert, formará parte de dichos ordenadores como modelos de programación, seguramente conocidos como el <i>machine learning</i> o el <i>deep learning</i>, evadiendo a los seres humanos de pensar, provocando la decadencia humana y su sumisión.</p> + + <br/> +<p>Por otro lado, er en la novela de culto una alegoría o crítica al cambio climático, o un panfleto político ideológico; no me parece sino una bajeza y un descrédito a la propia Literatura. Entiendo que el hombre contemporáneo no sepa separar 'ideologismos' del arte lingüístico, pero por favor, alejadlos de tan magnas obras, muchos <i>best-sellers</i> existen a los que desbordar con vanidades. La narrativa de Herbert se aleja prácticamente de todo lo que se entiende como convencional en el género de la ciencia ficción, manteniendo un tono y estilo más propio de un ensayo filosófico y metafísico que novelesco. La presciencia que otorga la Melange y el poderoso poder de Paul Atreides potenciado por sus genes con tendencia al Kwisatz Haderach y su exquisita formación como Mentat y gobernante, no hacen sino mecanizar el espacio-tiempo, como si de un fluido se tratase, abstrayendo el mundo en sus infinitas posibilidades y explorando profundamente la psicología del hijo de Leto. La abisal introspección que hace Herbert de sus personajes desdibuja incluso el antagonismo y el protagonismo en su mitología. También es comprensible que todos somos hijos de nuestro tiempo, y es evidente que el autor tuvo inferencias del mundo y de su propio pensamiento al desarrollar su obra. Así, la carrera armamentística nuclear, la ecología, el fanatismo religioso, la autoridad, etc. Se materializan en su <i>Universo conocido</i>.</p> +<p>La naturaleza tiene un papel fundamental en su obra, siendo ésta, en primera instancia, el conjunto de ecosistemas y medio físico en el que coexisten los seres vivos e inertes. Como un reloj, cada elemento de la naturaleza en Dune tiene razón de ser, autonomía y autoexplicación. Cada elemento forma parte de la maquinaria, en la que en la cúspide se encuentra Shai' Hulud, responsables de producir la especia y con ello todo el ecosistema de Arrakis. La tecnología usada en Dune se encuentra orgánicamente ligada a la naturaleza ecóloga, viéndose los cazadores de viento, los destiltrajes, escudos de Holtzman, etc.</p> +<p>Sin embargo, la naturaleza tiene una serie de connotaciones y definiciones que se alejan de lo que se conoce coloquialmente, una etimología (<i>natura</i>, latina) que referencia más bien al origen de las cosas, desde un punto de vista metafísico. Herbert explora en su obra, a modo de ensayo, todas las formas de la naturaleza. Ver en Dune un tratado sobre la naturaleza como mundo físico me parece, en exceso, pobre. Herbert explora la naturaleza como principio generador de la armonía y la plenitud de cada ser, como conjunto de lo que existe y se desarrolla bajo sus propias leyes, como virtud y cualidad de las cosas, como su inclinación natural hacia su conservación.</p> +<p>A través de la psicología de sus personajes, explora también la naturaleza humana, el estado natural del hombre, el temperamento y templanza de cada actor. Reconoce también el parentesco y el linaje, principalmente llevado por las dinastías y los planes de la Bene Gesserit, cuyo objetivo final es alcanzar el fin -valga la redundancia- de la naturaleza humana.</p> +<p>Por lo tanto, Herbert reflexiona sobre toda la naturaleza en todos sus accidentes, siendo Dune un <u>ensayo absoluto sobre la naturaleza de la naturaleza</u>. En este aspecto, el género de ciencia ficción es ideal para el autor, ya que le permite superar las limitaciones del tiempo y del espacio, y de la 'casa' de la humanidad. Es entonces cuando entendemos la importancia de la ecología para Herbert, que trasciende su significado. Prueba de ello es la materialización de esta idea en Liet-Kynes<sup>3</sup>, el planetólogo y ecólogo imperial destinado en Arrakis, que abanderando la causa Fremen, acabará fundiendo su propia naturaleza con la naturaleza del desierto, la naturaleza de Dune, la tendencia y virtud, el fin de todo, su inclinación natural.</p> +<p>Paul Atreides es en sí mismo un ensayo sobre la naturaleza corrompida del hombre, una naturaleza que, incluso como Emperador Padishah, como Duque Atreides, como Kwisatz Haderach, como Muad'Dib; es superado por su propia potencia y ser. Una naturaleza absoluta de monarca, de aristócrata, de científico, de líder religioso, de mesías. Un hombre endiosado que trasciende el espacio y el tiempo. Una naturaleza humana deshumanizada.</p> +<p>Comprendo que la lectura densa que presenta Dune no es para todos, pues es necesario cierto bagaje y cierta dureza mental para abarcar aquello que el autor propone. Aquel que busque una lectura de ciencia ficción sencilla no recogerá sino el fruto de su decepción. Pero aquél que busque oro, lo encontrará en tal plurisifnificativo ensayo. Por ello, no puedo recomendar Dune, sino exhortar a que cada uno reflexione si debe ser sujeto de recomendación o no. Y con esto acabo.</p> + + <hr/> +<p><sup>1</sup> No en vano el propio Tolkien indicó en la Carta a John Bush del 12 de marzo de 1966, que Frank Herbert trabajaba <i>along the same lines</i>, además de mostrar su desagrado por la obra. El motivo y el significado de <i>along the same lines</i> es y ha sido objeto de debate y estudio que no puede pasar de mera especulación.</p><p><sup>2</sup> Es por esta razón por la que no me interesan -ni mucho menos considero canon- las precuelas escritas por Brian Herbert y Kevin J. Anderson, que reducen la Yihad Butleriana a un simple Terminator, en el que una especie de inteligencia artificial maligna (¿skynet?) derrocó a los gobiernos humanos y estableció su propio gobierno usurpador y autoritario.</p><p><sup>3</sup> Cuya raza y sexo es elemental dentro de la obra, por ello me parece imperdonable que en la película de Denis Villeneuve los hayan cambiado arbitrariamente para someterse a las cuotas modernistas.</p> + +</body> +</html> +\ No newline at end of file diff --git a/dwm-howto/index.html b/dwm-howto/index.html @@ -0,0 +1,105 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Del por qué uso gestor de ventanas en lugar de un entorno de escritorio y del por qué dwm</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Configuración y uso personal de dwm</p> +<p class="date">9 de octubre de 2021 • fjbalon</p> +</header> +<p>En orden a construir <emb>dwm</emb> necesita los archivos de cabecera de Xlib. Edite config.mk para localizar tu configuración local (<emb>dwm</emb> es instalado en usr/local por defecto). La instalación se realiza directamente compilando el código, para ello dispone de un archivo <emb>makefile</emb>. Para limpieza de archivos compilados y temporales en directorio de trabajo, dispone de la orden <emb>clean</p>emb>.</p> +<p><emb>dwm</emb> se configura mediante el archivo <emb>config.h</emb> y (re)compilando.</p> +<p>Existen parches ya programados y publicados por la comunidad de suckless que permiten extender fácilmente el windows manager según los parámetros requeridos por el usuario. En mi caso, utilizo éstos de base:</p> +<ul> +<li>Parches estéticos</li> + <ul> +<li><a href="https://dwm.suckless.org/patches/actualfullscreen">actualfullscreen</a>: Alterna la pantalla completa para una ventana, en lugar de alternar la barra de estado y el diseño monocle2.</li> +<li><a href="https://dwm.suckless.org/patches/titlecolor">titlecolor</a>: Añade un nuevo esquema de color utilizado por el título de la ventana en la barra, de modo que sus colores (primer plano y fondo) se pueden cambiar de forma independiente.</li> +<li><a href="https://dwm.suckless.org/patches/noborder">noborderfloating</a>: Elimina el borde cuando sólo haya una ventana visible.</li> + </ul> +<li>Parches funcionales</li> + <ul> +<li><a href="https://dwm.suckless.org/patches/movestack">movestack</a>: Permite mover clientes en la pila e intercambiarlos con el maestro.</li> +<li><a href="https://dwm.suckless.org/patches/pertag">pertag</a>: Mantiene layout, mwfact, barpos y nmaster por etiqueta (tag).</li> + </ul> +</ul> +<p>Basado en el artículo <a href="https://ratfactor.com/dwm">Dave's Visual Guide to dwm</a> y usando, con su permiso, algunas imágenes de su autoría; voy a exponer cómo uso, o conduzco, <emb>dwm</emb> obteniendo toda su potencia gráfica. A priori, puede parecer un uso complejo y complicado, y de hecho así lo es en un inicio. Sin embargo, como aquel que controla maquinaria pesada o programas complejos, con el uso rutinario que se convierte en hábito, se convierte en un poderoso arma de productividad y enfoque táctico.</p> +<p>Lo primero que hay que definir es la tecla principal, que en mi caso es <kbd>Mod4</kbd>. Cabe destacar que por defecto es <kbd>Alt</kbd>.</p> +<h2>Layouts</h2> +<p>Un layout, en el contexto de diseño gráfico y de interfaces de usuario, es la disposición visual y organizativa de los elementos en una pantalla. <emb>dwm</emb> cuenta con 3 layouts:</p> +<ol start="0"> +<li> + <p><kbd>Mod4</kbd>+<kbd>t</kbd> Tiled (mosaico): reorganiza las ventanas en la configuración maestra/pila de mosaicos dinámicos.</p> + + <img style="width: 45%;" src="resources/tiled_layout.png"/> + + <p>Es el layout por defecto al abrir una tag. La ventana creada comienza a pantalla completa. A medida que se agregan ventanas, se abren en el área master (zona izquierda); mientras que las más antiguas se empujan al área stack(zona derecha, apiladas).</p> + <img style="width: 60%;" src="resources/dwm_master_stack_layout.png"/> + </li> +<li> + <p><kbd>Mod4</kbd>+<kbd>f</kbd> Floating (flotante): las ventanas pueden superponerse, moverse y dimensionarse manualmente.</p> + + <img style="width: 20%;" src="resources/floating_layout.png"/> + </li> +<li> + <p><kbd>Mod4</kbd>+<kbd>m</kbd> Monocle (monóculo): una sóla ventana completa enfocada se empuja hacia el frente, el resto, esperan detrás a ser enfocadas.</p> + + <img style="width: 45%;" src="resources/monocle_layout.png"/> + </li> +</ol> +<p>Además, alterna entre los dos layouts más actuales con <kbd>Mod4</kbd>+<kbd>Space</kbd>. Para cambiar entre los estados de mosaico y flotante en la ventana enfocada <kbd>Mod4</kbd>+<kbd>Shift</kbd>+<kbd>Space</kbd>.</p> +<img style="width: 45%;" src="resources/toggle_window_floating.png"/> +<h2>Administración de ventanas</h2> +<p>De forma predeterminada, hay dos formas de abrir una nueva ventana: abrir una shell (por defecto <emb>st</emb>) o ejecutar <emb>dmenu</emb>. Ambas son aplicaciones separadas que se construyeron específicamente y modularmente para trabajar con <emb>dwm</emb> (aunque pueden usarse fuera de éste sin problemas). En mi caso uso ambas, cuyas combinaciones de teclas predeterminadas para cada una son:</p> +<p><kbd>Mod4</kbd>+<kbd>Return</kbd> abre específicamente <emb>st</emb>, si desea que abra otra terminal, como <emb>xterm</emb> o <emb>urxvt</emb>, deberá configurar <emb>config.h</emb>.</p> +<img style="width: 45%;" src="resources/new_term.png"/> +<p><kbd>Mod4</kbd>+<kbd>r</kbd> ejecuta el pequeño menú dinámico llamado dmenu en la barra superior de <emb>dwm</emb>.</p> +<p>Para cerrar una ventana, puede cerrarla desde la aplicación o indicar que cierre la ventana con <kbd>Mod4</kbd>+<kbd>Shift</kbd>+<kbd>c</kbd> sobre la ventana enfocada. No podemos empezar a usar un programa si no sabemos terminarlo o salir de él. En el caso de <emb>dwm</emb>, saldremos de él mediante <kbd>Mod4</kbd>+<kbd>Shift</kbd>+<kbd>q</kbd>.</p> +<img style="width: 45%;" src="resources/close_window.png"/> +<h2>Administración del foco</h2> +<p>Para mover el foco entre ventanas, utilizo <kbd>Mod4</kbd>+<kbd>j</kbd> para moverlo hacia la siguiente. Esto sirve para todos los layouts. En modo mosaico, vamos en dirección de la agujas del reloj.</p> +<img style="width: 45%;" src="resources/focus_next_tiled.png"/><img style="width: 45%;" src="resources/focus_next_floating.png"/> +<p>Para mover el foco a la ventana anterior utilizo <kbd>Mod4</kbd>+<kbd>k</kbd>.</p> +<img style="width: 45%;" src="resources/focus_prev_tiled.png"/><img style="width: 45%;" src="resources/focus_prev_floating.png"/> +<h2>Administración de mosaico (tiled layout)</h2> +<p>Para aumentar el número de ventanas divididas en el área master (lo que moverá las ventanas en caso de haberlas fuera del área de pila según sea necesario) utilizo <kbd>Mod4</kbd>+<kbd>i</kbd> (increment master).</p> +<img style="width: 70%;" src="resources/master_increase.png"/> +<p>Del mismo modo a la inversa, para reducir el número de ventanas divididas utilizo <kbd>Mod4</kbd>+<kbd>d</kbd> (decrement master).</p> +<img style="width: 70%;" src="resources/master_decrease.png"/> +<p>Para incrementar el área física que ocupa master utilizo <kbd>Mod4</kbd>+<kbd>l</kbd>.</p> +<img style="width: 45%;" src="resources/master_bigger.png"/> +<p>Para reducir el área física que ocupa master utilizo <kbd>Mod4</kbd>+<kbd>h</kbd>.</p> +<img style="width: 45%;" src="resources/master_smaller.png"/> +<p>Para aplicar zoom, o en palabras más técnicas, alternar la ventana entre las áreas master y stack, utilizo <kbd>Mod4</kbd>+<kbd>Shift</kbd>+<kbd>Return</kbd>. Si la ventana enfocada está en stack se moverá a master y viceversa.</p> +<img style="width: 45%;" src="resources/zoom.png"/> +<h2>Administración de etiquetas (tags)</h2> +<p>Si esta familiarizado con el concepto de escritorios múltiples o escritorios virtuales lo entenderá rápidamente. Las etiquetas o tags brindan la misma funcionalidad, pero con más flexibilidad y velocidad. Cada etiqueta es un escritorio, que administra un conjunto específico de ventanas que tiene abiertas.</p> +<p>Si hay alguna diferencia con los escritorios virtuales clásicos, es que una ventana puede pertenecer a más de una tag, e incluso puede ver todas las etiquetas a la vez, combinarlas, etc.</p> +<p>Para movernos entre tags, basta con <kbd>Mod4</kbd>+<kbd>1...n</kbd>, donde <emb>n</emb> es el número de tag que queremos visualizar. <kbd>Mod4</kbd>+<kbd>Tab</kbd> conmuta entre las 2 tags más recientes.</p> +<img style="width: 45%;" src="resources/view_tagged_windows.png"/> +<p>Para asignar un nuevo tag a una ventana, en otras palabras, mover una ventana entre tags, uso <kbd>Mod4</kbd>+<kbd>Shift</kbd>+<kbd>1...n</kbd>, que moverá la ventana enfocada al tag <emb>n</emb>.</p> +<img style="width: 45%;" src="resources/assign_window_tag.png"/> +<p>Para universalizar la ventana enfocada, uso <kbd>Mod4</kbd>+<kbd>Shift</kbd>+<kbd>0</kbd>; de tal forma que la ventana se mostrará en todos los escritorios. Para agregar o eliminar la visualización del foco en una tag <emb>n</emb> concreta, en lugar de en todas, uso <kbd>Mod4</kbd>+<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>1...n</kbd>.</p> +<img style="width: 45%;" src="resources/assign_all_window_tags.png"/> +<p>Para visualizar todas las ventanas de todas las tags uso <kbd>Mod4</kbd>+<kbd>0</kbd>. Si lo que queremos es combinar x tags concretas en lugar de todas, podemos conmutarlas con <kbd>Mod4</kbd>+<kbd>Ctrl</kbd>+<kbd>1...n</kbd>.</p> +<img style="width: 45%;" src="resources/view_all_windows.png"/> +<h2>Administración de barra (bar)</h2> +<p>La barra o bar puede ocultarse o mostrarse simplemente usando <kbd>Mod4</kbd>+<kbd>b</kbd>. Es muy útil a veces.</p> +<img style="width: 45%;" src="resources/toggle_bar.png"/> +<h2>Administración del ratón (mousing)</h2> +<p>Aunque como sabemos, <emb>dwm</emb> está diseñado para que no se requiera el ratón. A veces puede ser un añadido muy útil, en especial cuando ya estamos usándolo en programas que por diseño lo requieren, como el navegador, programas gráficos o algún juego.</p> +<p>Si queremos activar la administración del ratón, sólo tenemos que mantener pulsado <kbd>Mod4</kbd> durante su uso.</p> +<p><kbd>Mod4</kbd>+<kbd>Button1</kbd> mueve la ventana en modo flotante. Si la ventana se encontraba incrustada en el mosaico, cambiará su modo a flotante.</p> +<img style="width: 20%;" src="resources/mouse_controls.png"/> +<p><kbd>Mod4</kbd>+<kbd>Button2</kbd> alterna la ventana entre el estado flotante y mosaico. <kbd>Mod4</kbd>+<kbd>Button3</kbd> redimensiona la ventana. Al igual que con el movimiento, si la ventana estaba embaldosada, se flotará. Otro uso del ratón a tener en cuenta es como enfocador. Si el ratón se superpone sobre una ventana esta adquirirá automáticamente el foco. Igual en varios monitores.</p> +<h2>Administración de monitores</h2> +<p>En ocasiones, trabajamos con más de un monitor. En ese caso, cada monitor extenderá el escritorio de <emb>dwm</emb>, manteniendo 9 tags independientes -por defecto- en cada escritorio.</p> +<p>Cada escritorio puede ser comportado como una tag superior, moviendo el foco de escritorio con <kbd>Mod4</kbd>+<kbd>,</kbd> y <kbd>Mod4</kbd>+<kbd>.</kbd>. Para enviar una ventana a la tag enfocada del siguiente escritorio uso <kbd>Mod4</kbd>+<kbd>Shift</kbd>+<kbd>,</kbd>, <kbd>Mod4</kbd>+<kbd>Shift</kbd>+<kbd>.</kbd> para enviarla al escritorio anterior.</p> + +</body> +</html> +\ No newline at end of file diff --git a/dwm-howto/resources/assign_all_window_tags.png b/dwm-howto/resources/assign_all_window_tags.png Binary files differ. diff --git a/dwm-howto/resources/assign_window_tag.png b/dwm-howto/resources/assign_window_tag.png Binary files differ. diff --git a/dwm-howto/resources/close_window.png b/dwm-howto/resources/close_window.png Binary files differ. diff --git a/dwm-howto/resources/dwm_master_stack_layout.png b/dwm-howto/resources/dwm_master_stack_layout.png Binary files differ. diff --git a/dwm-howto/resources/floating_layout.png b/dwm-howto/resources/floating_layout.png Binary files differ. diff --git a/dwm-howto/resources/focus_next_floating.png b/dwm-howto/resources/focus_next_floating.png Binary files differ. diff --git a/dwm-howto/resources/focus_next_tiled.png b/dwm-howto/resources/focus_next_tiled.png Binary files differ. diff --git a/dwm-howto/resources/focus_prev_floating.png b/dwm-howto/resources/focus_prev_floating.png Binary files differ. diff --git a/dwm-howto/resources/focus_prev_tiled.png b/dwm-howto/resources/focus_prev_tiled.png Binary files differ. diff --git a/dwm-howto/resources/master_bigger.png b/dwm-howto/resources/master_bigger.png Binary files differ. diff --git a/dwm-howto/resources/master_decrease.png b/dwm-howto/resources/master_decrease.png Binary files differ. diff --git a/dwm-howto/resources/master_increase.png b/dwm-howto/resources/master_increase.png Binary files differ. diff --git a/dwm-howto/resources/master_smaller.png b/dwm-howto/resources/master_smaller.png Binary files differ. diff --git a/dwm-howto/resources/monocle_layout.png b/dwm-howto/resources/monocle_layout.png Binary files differ. diff --git a/dwm-howto/resources/mouse_controls.png b/dwm-howto/resources/mouse_controls.png Binary files differ. diff --git a/dwm-howto/resources/new_term.png b/dwm-howto/resources/new_term.png Binary files differ. diff --git a/dwm-howto/resources/tiled_layout.png b/dwm-howto/resources/tiled_layout.png Binary files differ. diff --git a/dwm-howto/resources/toggle_bar.png b/dwm-howto/resources/toggle_bar.png Binary files differ. diff --git a/dwm-howto/resources/toggle_window_floating.png b/dwm-howto/resources/toggle_window_floating.png Binary files differ. diff --git a/dwm-howto/resources/view_all_windows.png b/dwm-howto/resources/view_all_windows.png Binary files differ. diff --git a/dwm-howto/resources/view_tagged_windows.png b/dwm-howto/resources/view_tagged_windows.png Binary files differ. diff --git a/dwm-howto/resources/zoom.png b/dwm-howto/resources/zoom.png Binary files differ. diff --git a/dwm/index.html b/dwm/index.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Del por qué uso gestor de ventanas en lugar de un entorno de escritorio y del por qué dwm</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Del por qué uso gestor de ventanas (dwm) en lugar de un entorno de escritorio</p> +<p class="date">8 de octubre de 2021 • fjbalon</p> +</header> +<p>Desde que me inicié en el mundo GNU/Linux y sus distribuciones, allá por 2011, no he parado, como es costumbre en esta comunidad, de moverme entre distribuciones, sabores entornos gráficos... Como es frecuente, inicié con Ubuntu (juraría que inicie con Ubuntu 10.10 Maverick Meerkat, pero no lo tengo del todo claro), y desde ese momento salté por otras distribuciones derivadas de Debian. No fue hasta que instalé Arch GNU/Linux y todo el proceso de aprendizaje que eso conllevó, que me quedé en ella (quizás por 2013) hasta ahora, como distro en mi equipo principal.</p> +<p>Pero las distribuciones no son las protagonistas de este texto, sino los entornos gráficos y los gestores de ventanas. Paralelamente a las distribuciones, mi indecisión y búsqueda sin fin se centraba en los entornos gráficos. He pasado por Gnome (y vuelto a Mate, considerándome tradicionalista del entorno viejo de Gnome antes de la llegada de Shell), he pasado por KDE y después por Plasma, he usado LXDE y XFCE, también Enlightenment, Cinnamon... Por supuesto Unity cuando Canonical lo implementó. Incluso he experimentado con CDE, y me ha gustado hacerlo. Pero ninguno se quedó conmigo. Si bien con una buena capa, Mate y LXDE pueden ser mis favoritos, las limitaciones físicas y la dependencia del ratón de estos entornos me pueden.</p> +<p>Fue entonces que dejé de usar, paulatinamente entornos de escritorio para usar, directa y simplemente los gestores de ventana (WM). Un gestor de ventanas -o Windows Manager- es el programa encargado de manejar la disposición de las ventanas en la interfaz gráfica de usuario en el sistema operativo, siendo responsable de determinar cómo las ventanas se organizan en el espacio y cómo interactúan entre sí. Esto dota al usuario una capacidad matemática y computacional mayor, en cuanto a la interfaz humano-máquina, puesto que controlas la geometría para determinar cómo las ventanas se superponen o se organizan en mosaicos, pilas, etc. El código interactúa directamente con las bibliotecas gráficas para dibujar y manipular estas ventanas.</p> +<p>Es una pregunta frecuente: ¿por qué usar un gestor de ventanas a pelo en lugar de un entorno de escritorio? Lo primero que hay que saber, es que un gestor de ventanas ya forma parte de un entorno de escritorio. Ya hemos mencionado antes cómo el gestor de ventanas es el programa que actúa como motor para el modelo matemático-geométrico del comportamiento de la interfaz gráfica. Las razones por las que utilizar un gestor de ventanas 'a pelo' son variadas, e incluso contradictorias según el usuario. En mi caso, me he quedado con el uso de gestor de ventanas por:</p> +<ul> +<li>El software empleado es mínimo, tanto a nivel técnico como a nivel estético. Haciendo que sea fácil su modificación y que funcione de la misma forma en máquinas de bajos recursos hardware. Además, ocupan muy poco en memoria.</li> +<li>Como programador, la capacidad de tener control absoluto sobre su software, en este caso sobre la matemática y la geometría de sus ventanas, y la interfaz humano-máquina, es absoluta.</li> +<li>Al carecer de añadidos estéticos como animaciones, la velocidad de uso es exponencial a la experiencia adquirida. El ahorro de tiempo y la mejora en productividad es un valor añadido.</li> +<li>Los distintos modos de pantalla (mosaico, flotante...) permiten una personalización y adaptación de uso como ningún otro entorno.</li> +<li>La primacía del teclado, la independencia del ratón.</li> +</ul> +<p>Y por supuesto, el hecho de pertenecer a ese selecto grupo de 'hackers del mosaico', esa comunidad descentralizada que a los ojos de los profanos son hackers de intelecto superior, es también -retóricamente- un añadido a tener en cuenta.</p> +<p>También es un método de aprendizaje de informática y de programación muy bueno. Al final, un gestor de ventanas simplemente reordena ventanas, sin contar con ningún programa gráfico de personalización, haciéndose todo en código o ficheros de configuración, lo que obliga a su usuario a aprender -si no los conocía ya- los fundamentos de programación, a administrar ficheros de configuración Unix, a utilizar el intérprete de comandos, etcétera.</p> +<p>Mis primeras pruebas las realicé sobre i3 y Openbox, pero no fue hasta que probé <emb>AwesomeWM</emb>, que su velocidad, personalización en Lua y complementación para con mi uso diario le hicieran el gestor de ventanas que comenzaría a utilizar (a eso de 2014) hasta principios de 2020. Son unos 6 años de uso diario y exclusivo de este gestor de ventanas, por lo que tengo un cariño especial a éste y su mítico fondo por defecto.</p> + + <a href="#"><span class="info"></span></a> +<p>A principios de 2020 migré, paulatinamente, a <emb>dwm</emb> (dynamic windows manager) de suckless. No considero éste un cambio de pensamiento o conversión, en absoluto, sino más bien el haber alcanzado una plenitud más a bajo nivel de <emb>AwesomeWM</emb>; una evolución. <emb>dwm</emb> es la base de <emb>AwesomeWM</emb>, siendo el último un fork el primero con <emb>XCB</emb>, <emb>EWMH</emb>, <emb>Lua script</emb>, <emb>Xft</emb>, <emb>D-Bus</emb>, <emb>multihead support</emb>..., y al estar a más bajo nivel, he ganado simplificación de código (éste está íntegramente escrito en C, y no cuenta con archivos de configuración en Lua), velocidad (<emb>dwm</emb> es absurdamente rápido), mejor rendimiento y eficiencia.</p> +<p><emb>dwm</emb> cuenta con una serie de bondades que para mí, en mi experiencia de usuario diaria son fundamentales:</p> + <ul> +<li>Mantiene prácticamente el 100% de la superficie de pantalla usable.</li> +<li>Se inicia casi instantáneamente, incluso en máquinas de baja potencia.</li> +<li>Es prácticamente independiente, pudiendo ser ejecutado tal cual en casi cualquier *nix Like.</li> +<li>Implementa el reflejo perfecto de mis propios patrones de uso:</li> + <ul> +<li>No quiero redimensionar o mover una ventana manualmente si no tengo que hacerlo.</li> +<li>Normalmente tengo al menos dos ventanas abiertas una al lado de la otra. + </li> +<li>A veces quiero mutar una ventana a pantalla completa rápidamente, y volver al estado anterior con la misma rapidez.</li> +<li>Siempre quiero usar todo el espacio de pantalla disponible para mostrar contenido. De hecho ni si quiera tengo fondo de pantalla.</li> +<li>Me gusta usar varios escritorios para trabajar.</li> +<li>Quiero atajos de teclado para todo. La primacía del teclado sobre el ratón es fundamental. El ratón queda relegado a tareas indispensables, como el uso del navegador o de otras aplicaciones concretas.</li> + </ul> +<li><emb>dwm</emb> coloca las ventanas exactamente donde yo las hubiera colocado, sin yo mover un dedo. Es como si hubiera sido hecho específicamente para mí.</li> +<li>De hecho, <emb>dwm</emb> hace que sea tan fácil mover ventanas que casi nunca echo de menos tener varios monitores. En mi casa o trabajo los tengo, pero cuando viajo no.</li> +</ul> +<p>También he de decir que la filosofía de suckless me ha cautivado, así como su modelo de implementación de parches y minimalismo.</p> + +</body> +</html> +\ No newline at end of file diff --git a/espejo-tarkovsky/index.html b/espejo-tarkovsky/index.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>El espejo de Tarkovsky</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">El espejo de Tarkovsky</p> +<p class="date">13 de diciembre de 2022 • fjbalon</p> +</header> +<p>El cine de Andréi Tarkovsky es complejo. A menudo, se le critica por su ininteligibilidad o inexplicabilidad de sus cintas, y la que quizás es su cinta más difícil, «Espejo», de la que tomo el nombre para aludir el artículo, no es la excepción sino la cima. Ojo, esto no es una crítica ni análisis a dicha obra concreta, sino un ensayo a toda la filmografía del que, para mí, es el mayor cineasta de la historia del cine; y probablemente no vuelva a haber uno igual jamás. Lo admito, el cine de Tarkovsky ha cambiado mi percepción del llamado séptimo arte, y con ella, toda mi visión, intención y forma de disfrutarlo.</p> +<p>La obra menciona de Tarkovsky es crípticamente biográfica, a menudo no sigue un esquema clásico, en pos de un esquema poético, en el que prescinde de cronología y causalidad. Hay que tener en cuenta que Tarkovsky exige al espectador trabajo, elevándolo a co-autor de su obra, que ve como un producto inacabado. «¿Se tiene derecho a hacer que el espectador contemple los problemas personales de uno? ¿Es cierto que una historia de este tipo puede expresar algo general?» se pregunta Tarkovsky sobre la que es su película más personal. Toda su obra corresponde a una necesidad interna, estética y artística.</p> +<p>Lo principal que llama la atención al espectador, de cualquier obra de Tarkovsky pero -al menos para mí- en «Espejo», especialmente; es su belleza. El cine de Tarkovsky es bello, armonioso, fino; en el sentido más clásico: estético. El componente estético es casi fundamental en toda su obra, pues en la estética busca ascética. Es cierto que esa belleza se obnubila con una incomprensión y misterio característico, como en muchas obras de arte histórica que exigen esfuerzo ¿acaso alguien ha entendido íntegramente a Tomas de Aquino en la primera lectura? ¿se captan todos los matices de una obra de Bach en la primera audición? ¿por qué pedírselo a Tarkovsky? ¿o al cine en general? «La belleza es difícil», dicen que dijo Sócrates. Aunque no se comprenda, trasciende. Es complicado apartar los ojos de la pantalla, igual que es complicado apartar la mirada del fresco de la bóveda de la Capilla Sixtina de Miguel Ángel, a pesar de ser imposible de comprender en su totalidad en un primer vistazo; y menos si no se está versado en la teología que encierra. Más allá de la intelección superficial, captar el sentido profundo exige participar los presupuestos intelectuales, en este caso de Tarkovsky, que no tienen nada que ver con los criterios vigentes o dominantes en la sociedad contemporánea.</p> +<p>Primero, es necesario comprender que su forma de entender el cine es más metafísica que clásica (en el sentido cinematográfico, claro); el cine como poesía, como haiku; causa de que el espacio-tiempo no sea lineal, sino que existe como movimiento en un presente eterno. Pasado y futuro se unen ontológicamente en la eternidad, y no en una cronología superficial. La temporalidad y la espacialidad se convierten en cualitativas y no en cuantitativas. Tarkovsky busca «esculpir el tiempo».</p> +<p>Los planos buscan plasmar el espíritu, buscando transmitirlo a través del estado psicológico de los personajes, que no necesariamente está subordinado a un guión o diálogo. Así, es posible entender a Tarkovsky desde un prisma clásico-medieval, bajo los pretextos de la tradición en el arte sagrado, como la música sacra o la iconografía ortodoxa.</p> +<p>Segundo, no se puede entender el cine de Tarkovsky sin entender, primero, que es cristiano viejo, pero no como se comprende obtusamente la religión en la actualidad, reducida a mera ideología o pretexto político; sino desde una comprensión sagrada, clásica y medieval, en el sentido viejo, que se debe una vivencia cosmológica de la sacralidad, donde hasta lo más mínimo y cotidiano tiene un sentido trascendente. Tarkovsky es un hombre de oración y silencio, partícipe de la ortodoxia y la catolicidad (aunque no fuera formalmente católico).</p> +<p>A consecuencia, su visión y cognosciencia se impregna de metafísica y alquimia que envuelve etéreamente por los cuatro elementos fundamentales (agua, fuego, aire, tierra) su filmografía, que como Tales de Mileto parece ver arkhé en el agua. Así, la creación refleja las virtudes de Dios; y así, el hombre se encuentra con Dios en la creación; en el sonido de la lluvia, en el fuego que consume, el aire que acaricia, la tierra mojada que se pisa...</p> +<p>Tercero, Tarkovsky es ruso. Pero no en un sentido materialista, o porque lo indique así su pasaporte. Tarkovsky es ruso tradicional, se siente plenamente partícipe del alma rusa y de la patria, quizá, los últimos europeos en perder su alma frente al materialismo moderno. La visión tradicional de la nación y los pueblos impregna en la vida y obra de Tarkovsky, que ve a su patria bajo un dominio enemigo a los que hay que resistir heróicamente, como el pueblo ruso resistió a los tártaros.</p> +<p>Comprendiendo así a Tarkovsky como un hombre, que como el Quijote, lucha contra el espíritu de su tiempo, que se eleva sobre las ruinas de una civilización que hubo, y de la que es partícipe. Un hombre de una profunda religiosidad.</p> +<p>En definitiva, cada película de Tarkovsky es una obra de contemplación, de oración, de elevación del espíritu, una obra para «esculpir el tiempo». Ante un mundo apocalíptico que le es ajeno, Tarkovsky reflexiona en recogimiento; fuera del tiempo y del espacio, fuera de la materia.</p> + + <h1>Bibliografía y filmografía</h1> +<ul> +<li>«Esculpir en el tiempo», Andréi Tarkovsky</li> +<li>«Sacrificio» (1986), Andréi Tarkovsky</li> +<li>«Nostalghia» (1983), Andréi Tarkovsky</li> +<li>«Stalker» (1979), Andréi Tarkovsky</li> +<li>«El Espejo» (1975), Andréi Tarkovsky</li> +<li>«Solaris» (1972), Andréi Tarkovsky</li> +<li>«Andrei Rublev» (1966), Andréi Tarkovsky</li> +<li>«La infancia de Iván» (1962), Andréi Tarkovsky</li> +<li>«El violín y la apisonadora» (1961), Andréi Tarkovsky</li> +</ul> + +</body> +</html> +\ No newline at end of file diff --git a/exorcista/index.html b/exorcista/index.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>El Exorcista (1973), William Friedkin</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">El Exorcista (1973), William Friedkin</p> +<p class="date">3 de marzo de 2021 • fjbalon</p> +</header> +<p>Es cierto que ha podido envejecer algo mal (han pasado casi 50 años), y que muchos de los efectos que utiliza pueden no sorprender o incluso, para algunos, ser hilarantes. Esto es un denominador común en el género del terror, por lo es muy estúpido valorar el género únicamente por la animadversión o sobresaltos que provoque, pues en el tiempo la tolerancia y las temáticas que ofrezcan estas sensaciones cambiarán. La sociedad que vio «El Exorcista» era una sociedad más religiosa y temerosa del demonio, algo que se ha perdido hoy día aparentemente, convirtiendo la cinta en película de culto, no por sus efectos, sino por el impacto que tuvo.</p> +<p>Con esa premisa, «El Exorcista» causó un gran revuelo y terror en la sociedad, siendo prohibida en muchos lugares, provocando desmayos y vómitos en las salas de cine. Por su realismo y relativa fidelidad a la teología y demonología, incluso fue censurada por sectores protestantes, que veían en ella una exaltación eclesiástica y católica. Era de hecho, la película favorita de Gabriele Amorth, insigne exorcista de la Diócesis de Roma. Por otro lado, también fue criticada desde sectores cientificistas como un ataque a la medicina, y especialmente a la psicología.</p> +<p>Sin duda, una obra controvertida que incluso hoy día es capaz de conservar un ambiente terrorífico que une terror psicológico y demonológico, y que no he vuelto a ver en prácticamente ninguna película contemporánea. La angustia y desesperación de la madre, las palabras blasfemas de la poseída, la debilitada fe del Padre Karras y la maestría del Padre Merrin (un excelentísimo Max Von Sydow) no hacen sino evocar pavor en el espectador, que como los personajes, se sienten superados por el mal.</p> +<p>El trato que se da a la figura del sacerdote es igualmente respetuoso, evitando la típica caricaturización propia del cine comercial, y mostrándolos como hombres, con sus debilidades y miserias, pero también con su virtud y el carisma propio de su ordenación. Es una cinta prudente y correcta.</p> +<pre style="text-align: center;">CRUX SACRA SIT MIHI LUX +NON DRACO SIT MIHI DUX +VADE RETRO SATANA +NUMQUAM SUADE MIHI VANA +SUNT MALA QUAE LIBA +IPSE VENENA BIBAS</pre> +</body> +</html> +\ No newline at end of file diff --git a/flujo-texto/index.html b/flujo-texto/index.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>La universalidad del flujo de texto</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">La universalidad del flujo de texto</p> +<p class="date">15 de junio de 2021 • fjbalon</p> +</header> +<p>Al no aplicar la metodología simple, sea por ejemplo la de la <a href="../unix-filosofia/">Filosofía de Unix</a>, radicalmente y al tratar de forzar nuevas características de las computadoras sobre los principios de Unix, los blobs binarios evolucionaron en una complejidad que ningún programador joven puede entender, viéndose obligado a acceder a la industria prematuramente y degradado a robot que sólo aplica lo aprendido en la escuela de programación, adhiriéndose a un circulo vicioso que produce agujeros negros binarios cada vez más grandes y complejos.</p> +<p>La historia es testigo de la universalidad del flujo de texto, aun las diferencias lingüísticas y dialécticas existentes, la escritura y el intercambio de mensajes se mantiene como constante. Incluso las matemáticas son, al fin y al cabo, un lenguaje transversal que engloba el pensamiento lógico. Podemos discutir si el lenguaje, propio de la naturaleza humana, es y ha sido el fundamento de la civilización y de la transmisión de cultura, de la preservación de la historia y del perfeccionamiento del intelecto, desde el jeroglífico y el alfabeto rúnico hasta el lenguaje matemático formal y los lenguajes de programación modernos. El lenguaje constituye una potencia, que en su simplicidad y naturalidad constituye casi el fundamento de la naturaleza humana, que basa los vínculos (necesariamente comunicativos), que ha alcanzado en la computación una universalidad y aplicación sin precedentes en la historia.</p> +<p>Así, el modelo tradicional de comunicación (emisor-receptor) se trasladó al Unix primigenio, a modo de interfaz que simula, de alguna forma, la comunicación entre el usuario y el sistema operativo en forma de conversación; transformando el emisor y receptor en input y output. Precisamente, la versatilidad de este modelo y la propia estructura lógica de la computación permite jugar con los inputs y outputs con la que Douglas McIlroy fabricó las tuberías: la entrada de un programa puede ser la salida de otro y la salida de un programa puede procesarse para mostrar sólo lo que quieres ver. Al fin y al cabo, todos son flujos de texto, interfaz universal, deductiva y lógica, que se materializa en tres flujos de texto estándar abiertos por proceso, siendo estos el flujo de salida entrada ó <i>stdin</i> (0), el flujo de salida estándar ó <i>stdout</i> (1) y el flujo de error estándar ó <i>stderr</i> (2). Siendo la entrada por teclado que introduce el administrador el <i>stdin</i>, mientras que la salida que ofrece ese mismo comando por pantalla es el <i>stdout</i>. En caso de haber un error, saldrá también por pantalla como <i>stderr</i>. De tal forma que esta arquitectura (de pipeline) consiste en ir transformando un flujo de datos en un proceso comprendido por varias fases secuenciales, aprovechando en el sistema operativo (o aplicaciones de alto nivel) las capacidades de los procesadores segmentados para permitir al usuario ganar un mejor rendimiento y mayor velocidad en el desarrollo de los comandos.</p> +<p>Mediante esta estructura, es sencillo mantener una arquitectura de sistemas de ficheros y programas, tanto a nivel de sistema operativo y a nivel de aplicación, modular y comunicable. Ya que permite que el programador no requiera de implementar continuamente funciones que ya puede realizar la máquina anfitriona, delegando las tareas a los programas adecuados y evitando la repetición innecesaria de código.</p> +<p>Fuera de la potencia que constituye el modelo de flujos de texto para la interfaz humano-máquina, no debemos olvidar que para la interfaz máquina-máquina tiene una utilidad aún más robusta e imprescindible, permitiendo a diversos nodos comunicativos comunicarse entre sí, encadenando flujos estándar y comunicaciones de red byte-a-byte, sin necesidad de periféricos ni interacción humana. Esto es algo base en el desarrollo de la web semántica, la inteligencia artificial, la automatización, etc; donde la interfaz gráfica es únicamente un obstáculo para la interfaz máquina-máquina, y a menudo para el desarrollo humano-máquina.</p> +<p>Es entonces cuando descubrimos la universalidad del texto, principal núcleo de estudio para la filología, que ha permitido la transmisión de la cultura y la tradición. No podemos sino ver en el flujo de texto potenciado por la evolución una posible nueva era en el estudio lingüístico potenciado por la computación, así para la filosofía analítica, la matemática y el propio lenguaje en general.Y es por ello que defiendo que el software siempre debe contar con una interfaz de línea de comandos, comunicable si fuera necesario mediante tuberías. La simplicidad y potencia de la interfaz de comandos no puede ser alcanzada en una interfaz gráfica; la primacía del teclado sobre el ratón debe prevalecer. El intercambio de comandos y texto entre máquina y humano es encumbrable a todos los niveles, es fácil de implementar y fácil de escalar (añadiendo capas externas o internas que mejoren el software). El software se comunica entre sí de la misma forma, el acceso más simple para comunicaciones remotas es por líneas de comandos.</p> +<p>Así, concluyo con que es conveniente a la vuelta de la filosofía de Unix, a la simplificación de la computación y a la <a href="../idiotizacion-computacional/">des-abstrahere</a> de la interfaz humano-máquina. ¿Acaso no es lo más natural, en el ser humano, aprender a conversar con la máquina? ¿no es la conversación el elemento más natural innato al hombre?.</p> +<p>En un artículo de 1981, Don Norman criticó la filosofía de diseño de Unix por su falta de preocupación por la interfaz de usuario. Escribiendo desde su formación en ciencia cognitiva y desde la perspectiva de la entonces actual filosofía de la ingeniería cognitiva, se centró en cómo los usuarios finales comprenden y forman un modelo cognitivo personal de sistemas, o en el caso de Unix, no lo entienden, con el resultado de errores desastrosos. Pero repito, ¿no hay nada más cognitivamente humano que la conversación y el intercambio de palabras entre dos comunicadores? ¿no es más naturalmente cognitivo ello, en lugar de complejas pantallas de parametrización y ajuste?</p> +<p>Evidentemente, el usuario debe esforzarse para comprender dicha interfaz, al igual que debe esforzarse para comprender un lenguaje distinto, la matemática, la física, etc. La abstracción no hace sino bloquear la capacidad del usuario para comprender la interfaz universal: el flujo de texto.</p> + +</body> +</html> diff --git a/gasoil/index.html b/gasoil/index.html @@ -0,0 +1,216 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Monitorización de capacidad de tanque de gasoil mediante sensor de ultrasonido</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Monitorización de capacidad de tanque de gasoil mediante sensor de ultrasonido</p> +<p class="date">21 de junio de 2022 • fjbalon</p> +</header> +<p>Este proyecto consiste en desarrollar un método para monitorizar la capacidad utilizada en un tanque de gasoil, que nutre una caldera. Existen diversas técnicas para lograrlo, pero la que considero más sencilla y más técnica es hacerlo a través de un sensor ultrasónico. Este sensor enviará los datos digitalizados a una Raspberry Pi 3B, que los procesará y almacenará, de tal forma que permita mantener un registro de monitorización y estadísticas de tiempo.</p> +<p>¿Cómo funciona el sensor de ultrasonido y cómo calculamos la distancia?. El funcionamiento es simple. El sensor crea un pulso de disparo en TRIG (trigger), enviando pulsos de 40kHz (manteniendo el estado de TRIG en HIGH durante un mínimo de 10µs). Inmediatamente, el circuito de control en el sensor cambiará el estado del pin de ECHO a HIGH, y manteniéndose así hasta que el pulso ultrasónico rebote con un objeto y regresa al receptor. En función del tiempo durante el cual el pin de ECHO permanece HIGH, esperando recibir de vuelta el pulso enviado, podemos calcular la distancia entre sensor y objeto. El emisor de pulsos es T, y el receptor es R.</p> +<p>Por poner un ejemplo, si calculamos el tiempo para el cual el ECHO es HIGHT como 588µs, y tomando que la velocidad del sonido en la atmósfera terrestre es de 343,2m/s:</p> +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="D=\frac{\upsilon}{(t/2)}=\frac{343,2}{(588\mu/2)}=5656565656" display="block"> +<mrow> + <mi>D</mi> + <mo>=</mo> + <mfrac> + <mi>υ</mi> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <mi>t</mi> + <mo>/</mo> + <mn>2</mn> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + </mfrac> + <mo>=</mo> + <mfrac> + <mrow> + <mn>343,2</mn> + <mi>m/s</mi> + </mrow> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <mrow> + <mn>588</mn> + <mo></mo> + <mi>μs</mi> + </mrow> + <mo>/</mo> + <mn>2</mn> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + </mfrac> + <mo>=</mo> + <mn>1,17cm</mn> +</mrow> +</math> +<h2>Conexiones electrónicas</h2> +<p>Conectamos el pin TRIG del sensor ultrasónico al pin físico 16, es decir, el pin GPIO23 de la raspy. Usamos posteriormente una combinación de resistencia de 1kΩ y 2kΩ para convertir el pin de ECHO a 3.3V (aproximadamente) y conéctelo al pin físico 18 (GPIO24). Finalmente proporcionamos las conexiones de +5V y GND. El esquema de comunicaciones electrónicas quedaría tal que:</p> +<img class="color-invertible" style="width:50%" src="resources/ultrasonido01.png"/> +<h2>Cálculo de distancia contra objeto</h2> +<p>Una vez sabemos cómo calcular la distancia y tenemos conectado el sensor a nuestra CPU, el siguiente paso consiste en probar las ecuaciones anteriores bajo un código (usaremos Python), que muestre por stdout cada segundo la distancia medida. El código será:</p> +<pre><code>import RPi.GPIO as GPIO +import time + +GPIO.setmode(GPIO.BCM) +GPIO_TRIGGER = 23 +GPIO_ECHO = 24 +GPIO.setup(GPIO_TRIGGER, GPIO.OUT) +GPIO.setup(GPIO_ECHO, GPIO.IN) + +GPIO.output(GPIO_TRIGGER, True) +time.sleep(0.00001) +GPIO.output(GPIO_TRIGGER, False) + +StartTime = time.time() +StopTime = time.time() + +while GPIO.input(GPIO_ECHO) == 0: + StartTime = time.time() + +while GPIO.input(GPIO_ECHO) == 1: + StopTime = time.time() + +TimeElapsed = StopTime - StartTime +distance = (TimeElapsed * 34320) / 2 + +print ("Distance = %.1f cm" % distance)</code></pre> +<p>Obteniendo unos resultados positivos como:</p> +<pre><code>$ ./distance.py +Distance = 85.8 cm</code></pre> +<h2>Cálculo de subcuboide</h2> +<p>Dado un cuboide de 112x100x71, que corresponde a las medidas aproximadas del tanque de gasoil:</p> +<img class="color-invertible" style="width:25%" src="resources/cuboide.png"/> +<p>Y recibido el valor de distancia entre sensor y gasoil, es sencillo calcular las medidas del subcuboide resultante. Por ejemplo, dada una distancia de 85cm:</p> +<img class="color-invertible" style="width:50%" src="resources/subcuboide.png"/> +<p>Obtendríamos un subcuboide de 15x112x71 que corresponde a +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="x*(y-d)*z=112*(100-85)*71=119280cm^{3}=119L"> +<mrow> + <mrow> + <mi>x</mi> + <mo>*</mo> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <mi>y</mi> + <mo>-</mo> + <mi>d</mi> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + <mo>*</mo> + <mi>z</mi> + </mrow> + <mo>=</mo> + <mrow> + <mn>112</mn> + <mo>*</mo> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <mn>100</mn> + <mo>-</mo> + <mn>85</mn> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + <mo>*</mo> + <mn>71</mn> + </mrow> + <mo>=</mo> + <mrow> + <mn>119280</mn> + <mo></mo> + <mi>c</mi> + <mo></mo> + <msup> + <mi>m</mi> + <mn>3</mn> + </msup> + </mrow> + <mo>=</mo> + <mrow> + <mn>119</mn> + <mo></mo> + <mi>L</mi> + </mrow> +</mrow> +</math> +de un total de +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="112*100*71=795200cm^{3}=795L"> +<mrow> + <mrow> + <mn>112</mn> + <mo>*</mo> + <mn>100</mn> + <mo>*</mo> + <mn>71</mn> + </mrow> + <mo>=</mo> + <mrow> + <mn>795200</mn> + <mo></mo> + <mi>c</mi> + <mo></mo> + <msup> + <mi>m</mi> + <mn>3</mn> + </msup> + </mrow> + <mo>=</mo> + <mrow> + <mn>795</mn> + <mo></mo> + <mi>L</mi> + </mrow> +</mrow> +</math> +<p>, un 14% de capacidad.</p> +<p>Una vez obtenidos los datos, adaptamos el script de forma simple stdin/stdout (para monitorización) de forma que devuelva un float con los litros restantes según los parámetros de entrada:</p> +<pre><code>ancho=112 # Coordinate axis x: ancho / width +alto=100 # Coordinate axis y: alto / height +profundidad=71 # Coordenate axis z: profundidad / depth + +def volumenCuboide(x,y,z): + return x * y * z + +def subcuboide(x,y,z,d): + s = y - d + return volumenCuboide(x,s,z) + +l = subcuboide(ancho,alto,profundidad,distance)/1000 # Divsion by 100 for cm^3 to liters +print ("%.1f" % l)</code></pre> +<p>Así:</p> +<pre><code>$ ./gasoil40kHz.py +119.4</code></pre> +<p>Script final en servidor git en <a href="/git/lab/file/programming-python/gasoil/gasoil.py.html">gasoil.py</a>.</p> +<h2>Implementación en tanque</h2> +<p>Me valgo de uno de los tapones del tanque para colocar, usando adhesivos, y de la forma más perpendicular posible al eje x del tanque, el sensor de ultrasonido. Aprovecho que los cable son finos para pasarlos por el aislante de la propia prensa del tapón, quedando el resto del circuito fuera.</p> +<img style="width:100%" src="resources/tanque-gasoil.png"/> +<p>Una vez instalado, para realizar la obtención de datos gráficos configuramos la máquina receptora de los datos del sensor en un agente de <a href="https://zabbix.com">Zabbix</a>. Añadimos un UserParameter que contenga la llamada al script, de forma que obtengamos los valores directamente desde el servidor de Zabbix.</p> +<pre><code># /etc/zabbix/zabbix_agentd.conf +PidFile=/var/run/zabbix/zabbix_agentd.pid +LogFile=/var/log/zabbix/zabbix_agentd.log +LogFileSize=0 +AllowKey=system.run[*] +Server=172.16.0.1 +ServerActive=172.16.0.1 +Hostname=gasoil40kHz +Include=/etc/zabbix/zabbix_agentd.d/*.conf +UserParameter=Gasoil,/home/pi/gasoil.py</code></pre> +<p>Con esto y en monitorización a través de Zabbix de estos valores, podemos configurar y dibujar gráficas.</p> +<img class="color-invertible" style="width:100%" src="resources/graph.png"/> +<p>El margen de error presente se encuentra en unos 6l. Pero con dicho margen se puede hacer una aproximación fidedigna del rango de capacidad y consumo del tanque.</p> +</body> +</html> +\ No newline at end of file diff --git a/gasoil/resources/cuboide.png b/gasoil/resources/cuboide.png Binary files differ. diff --git a/gasoil/resources/graph.png b/gasoil/resources/graph.png Binary files differ. diff --git a/gasoil/resources/subcuboide.png b/gasoil/resources/subcuboide.png Binary files differ. diff --git a/gasoil/resources/tanque-gasoil.png b/gasoil/resources/tanque-gasoil.png Binary files differ. diff --git a/gasoil/resources/ultrasonido01.png b/gasoil/resources/ultrasonido01.png Binary files differ. diff --git a/gasoil/resources/ultrasonido02.jpg b/gasoil/resources/ultrasonido02.jpg Binary files differ. diff --git a/git/index.html b/git/index.html @@ -0,0 +1,202 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Construcción de servidor Git propio</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Construcción de servidor Git propio</p> +<p class="date">22 de noviembre de 2020 • fjbalon</p> +</header> +<p>Una buena razón para alojar tus propios repositorios git es tener y mantener el control sobre tu propia infraestructura informática, tanto a nivel de sistema como a nivel de código, guardando incluso el secreto de aquellos códigos que quieras mantener en secreto. Considero que los servidores de git comúnmente utilizados como github, gitlab, bitbucket... No son de fiar, en cuanto son propietarios desconocidos y sostenedores de tu código. No es secreto que estos servicios analizan el código, aplican telemetría e inteligencia sobre ellos, analizan las conexiones de sus usuarios y aplican restricciones y limitaciones. Al fin y al cabo son empresas con fines comerciales, y a menudo en el sistema actual con fines ocultos. En el caso de Microsoft, como propietario de github es mucho más lamentable y peligrosa la situación.</p> +<p>En cuanto a economía doméstica, estos servicios también tienen diferentes planes de precios y varias restricciones (arbitrarias en muchos casos). Sin embargo cuando usted mismo lo aloja, las restricciones son los límites de recursos del sistema y su conexión, por lo tanto, es una solución mucho más flexible, adaptada y convergente con el usuario.</p> + + <h1>Creación de servidor git - ssh</h1> +<p>El primer paso sería crear el usuario git, encargado de gestionar todos los procesos referentes a los repositorios y al servidor. Además, con el objetivo de dotar acceso mediante SSH añadimos authorized_keys y añadimos al fichero las claves públicas de los clientes.</p> + +<pre><code># adduser git +# su git +$ cd +$ mkdir .ssh && chmod 700 .ssh +$ touch .ssh/authorized_keys +$ chmod 600 .ssh/authorized_keys</code></pre> +<p>Los repositorios pueden estar en el directorio que se quiera. En este caso, se encontrarán en el directorio git en la raíz del sistema. Para lo que tendremos que crearlo. Por cada repositorio, se crea un directorio (aconsejable es que terminen con .git). Para iniciar un repositorio como server usamos el parámetro init --bare.</p> + +<pre><code>$ mkdir /git +$ cd /git +$ mkdir code.git +$ chown git:git code.git +$ cd code.git +$ git init --bare +Initialized empty Git repository in /git/code.git/</code></pre> + + <h1>Publicando repositorios</h1> +<p>El proceso anterior acepta comunicación SSH, por lo que el cliente necesitará o bien acceso por clave o acceso mediante RSA. En caso que queramos que alguno de estos repositorios sean clonables desde cualquier comunicación, y usando el eficiente protocolo git://, debemos publicarlos.</p> +<p>Para ello empleamos git-daemon, indicándole el directorio donde se encuentran los repositorios.</p> + +<pre><code>$ git daemon --reuseaddr --base-path=/git/ /git/</code></pre> +<p>Esto no basta para publicar el repositorio, ya que el demonio de git iterará en el directorio anteriormente pasado en busca de repositorios exportables, éstos son aquellos que tengan el fichero git-daemon-export-ok en su raíz.</p> + +<pre><code>$ touch /git/code.git/git-daemon-export-ok</code></pre> + + <h1>Externalización con stagit</h1> +<p>A veces es agradable navegar por el registro del historial de git en un navegador web o en algún otro programa sin tener que mirar el repositorio local. Es además una forma de mantener un registro de los repositorios que sean públicos, a modo de currículum o expositor de código.</p> +<p>Para ello uso <a href="https://codemadness.org/git/stagit">stagit</a>, que es un static page generator para git. Su uso es simple. Manualmente consta de dos partes, que son la creación de directorios html (que deben ser accesibles mediante servidor web) y su enlace con el directorio del servidor git:</p> + +<pre><code>$ mkdir -p /srv/git/htmlrepo1 && cd /srv/git/htmlrepo1 +$ stagit /git/gitrepo1</code></pre> +<p>Y la formación del índice y el htmlroot:</p> + +<pre><code>$ cd /srv/git +$ stagit-index /git/gitrepo1 /git/gitrepo2 /git/gitrepo3 > index.html</code></pre> +<p>Ejemplos de resultados son:</p> +<ul> +<li><a href="/git/">balong.es/git</a></li> +<li><a href="https://codemadness.org/git/">codemadness.org/git</a></li> +<li><a href="https://git.suckless.org/">git.suckless.org</a></li> +</ul> +<p>Para automatizar la actualización del directorio en función de los cambios de push añadimos a htmlroot (/srv/git) el script:</p> + +<pre><code># /srv/git/create.sh +reposdir="/git" +curdir="$(pwd)" + +# make index. +stagit-index "${reposdir}/"*/ > "${curdir}/index.html" + +# make files per repo. +for dir in "${reposdir}/"*/; do + # strip .git suffix. + r=$(basename "${dir}") + d=$(basename "${dir}" ".git") + printf "%s... " "${d}" + + mkdir -p "${curdir}/${d}" + cd "${curdir}/${d}" || continue + stagit -c ".cache" -u "/git/$d/" "${reposdir}/${r}" + + # symlinks + ln -sf log.html index.html + ln -sf ../style.css style.css + ln -sf ../logo.png logo.png + ln -sf ../favicon.png favicon.png + + echo "done" +done</code></pre> +<p>Por supuesto, el script anterior debe contar con permisos de ejecución; y el directorio htmlroot debe tener permisos adecuados para su manipulación, que siendo en este caso el usuario git el que genere de nuevo los HTML, debería éste tener permisos totales.</p> + +<pre><code>drwxr-xr-x 19 git git 4096 Dec 14 15:46 git</code></pre> +<p>Además, por cada repositorio del servidor debemos añadir el hook post-receive tal que:</p> + +<pre><code>#!/bin/sh +# /git/code.git/hooks/post-receive + +export LC_CTYPE="en_US.UTF-8" + +name="$1" +if test "${name}" = ""; then + name=$(basename "$(pwd)") +fi + +# config +# paths must be absolute. +reposdir="/git" +dir="${reposdir}/${name}" +htmldir="/srv/git" +stagitdir="/" +destdir="${htmldir}${stagitdir}" +cachefile=".htmlcache" +# /config + +if ! test -d "${dir}"; then + echo "${dir} does not exist" >&2 + exit 1 +fi +cd "${dir}" || exit 1 + +# detect git push -f +force=0 +while read -r old new ref; do + test "${old}" = "0000000000000000000000000000000000000000" && continue + test "${new}" = "0000000000000000000000000000000000000000" && continue + + hasrevs=$(git rev-list "${old}" "^${new}" | sed 1q) + if test -n "${hasrevs}"; then + force=1 + break + fi +done + +# strip .git suffix. +r=$(basename "${name}") +d=$(basename "${name}" ".git") +printf "[%s] stagit HTML pages... " "${d}" + +mkdir -p "${destdir}/${d}" +cd "${destdir}/${d}" || exit 1 + +# remove commits and ${cachefile} on git push -f, this recreated later on. +if test "${force}" = "1"; then + rm -f "${cachefile}" + rm -rf "commit" +fi + +# make index. +stagit-index "${reposdir}/"*/ > "${destdir}/index.html" + +# make pages. +stagit -c "${cachefile}" -u "/git/$d/" "${reposdir}/${r}" + +ln -sf log.html index.html +ln -sf ../style.css style.css +ln -sf ../logo.png logo.png + +echo "done"</code></pre> + +<pre><code>$ chmod +x hook/post-receive</code></pre> +<p>Lo que hará que en cada push recibido, el contenido HTML de stagit se actualice. Para una correcta impresión de los datos, es necesario que cada directorio de repositorio tenga en su raíz los ficheros owner, description y url:</p> + +<pre><code>$ cd /git/code +$ echo "Fco Javier Balón" > owner +$ echo "Description code" > description +$ echo "git://balong.es/code.git" > url</code></pre> +<p>Las imágenes por defecto empleadas son favicon.png y logo.png, que irán en la raíz de htmlroot (/srv/git). También style.css.</p> + +<pre><code>$ cp stagit/style.css /srv/git/ +$ cp stagit/favicon.png /srv/git/ +$ cp stagit/logo.png /srv/git/</code></pre> + + <h1>Autodespliegue con hooks</h1> +<p>En este ejemplo damos al hook post-receive del repositorio del sitio web la capacidad de autodesplegarse al recibir push. </p> + +<pre><code>#!/bin/sh +# /git/arrakis.git/hooks/post-receive + +echo "Ejecutando hook postreicive: desplegando a producción el static-site" +git --work-tree=/srv/http --git-dir=/tex/arrakis.git checkout -f master</code></pre> +<p>Por supuesto, los permisos del directorio htmlroot deben tener los permisos para git.</p> + +<pre><code>drwxr-xr-x 3 git git 4096 Dec 14 15:53 http</code></pre> + + <h1>Configuración de cliente</h1> + <pre><code>$ git config --global user.name "balon" +$ git config --global user.email fcojavierba@protonmail.com +$ git config --global core.editor emacs</code></pre> + +<pre><code># ~/.gitconfig +[user] + email = fcojavierba@protonmail.com + name = balon +[core] + editor = emacs</code></pre> +<p>La descarga mediante ssh y git-daemon se hará tal que:</p> + +<pre><code>$ git clone git@balong.es:/git/code.git +$ git clone git://balong.es/code.git</code></pre> + +</body> +</html> +\ No newline at end of file diff --git a/hijas-kernel/index.html b/hijas-kernel/index.html @@ -0,0 +1,118 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Las fechas de nacimiento de Torvalds y sus hijas en las cabeceras del kernel</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Las fechas de nacimiento de Torvalds y sus hijas en las cabeceras del kernel</p> +<p class="date">1 de marzo de 2019 • fjbalon</p> +</header> +<p>Me han propuesto un reto: encontrar las fechas de nacimiento de Torvalds y de sus tres tres hijas en las cabeceras del kernel. Es un easter egg que dejó Linus para los más curiosos. Vamos allá.</p> +<p>Encontrar las fechas es relativamente sencillo para quien sabe dónde buscar. No es mi caso, que tras una breve búsqueda en Internet identifiqué la localización de dichas fechas en la ruta /usr/include/linux/, encontrándose con la extensión .h. Es fácilmente localizable utilizando la conocida herramienta grep y buscando las cadenas de texto 'LINUX REBOOT MAGIC'.</p> +<pre><code># grep LINUX_REBOOT_MAGIC /usr/include/linux/*.h +/usr/include/linux/reboot.h:#define LINUX_REBOOT_MAGIC1 0xfee1dead +/usr/include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2 672274793 +/usr/include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2A 85072278 +/usr/include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2B 369367448 +/usr/include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2C 537993216</code></pre> +<p>Encontramos entonces que nos devuelve una información en un formato quizás extraño, que corresponde a los siguientes ¿enteros?: 672274793, 85072278, 369367448 y 537993216.</p> +<p>En un principio supuse que se trataba de timestamp, un formato de tiempo utilizado frecuentemente por los sistemas Unix y derivados; éste cuenta la cantidad de segundos transcurridos desde el EPOCH (fecha 1970-01-01 00:00:00 GMT). Por lo que, transformándolo con una simple línea Perl a formato localtime bastaría.</p> +<pre><code>$ perl -e 'print localtime(672274793). "\n";' +Mon Apr 22 00:59:53 1991 +$ perl -e 'print localtime(85072278). "\n";' +Mon Sep 11 16:11:18 1972 +$ perl -e 'print localtime(369367448). "\n";' +Tue Sep 15 04:04:08 1981 +$ perl -e 'print localtime(537993216). "\n";' +Sun Jan 18 19:33:36 1987</code></pre> +<p>Obtenemos las fechas: 22/04/1991, 11/09/1972, 15/09/1981 y 18/01/1987.</p> +<p>¿He conseguido el reto? Nada más lejos... Al corroborar la fecha de nacimiento de Linus Torvalds hay algo que no me cuadra. Torvalds nació el 28 de diciembre de 1969. La primera fecha podría pasar; pero las 3 siguientes que correspondieran a las fechas de nacimiento de las 3 hijas me hacen pensar: ¿Tordvals tuvo su primera hija con 3 años?. Algo no cuadra.</p> +<p>Tras un tiempo de investigación he dado con la tecla: es necesario pasar a hexadecimal para poder leer la fecha. Siendo</p> +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="0x672274793=2812196928/12/1969" display="block"> + <mrow> + <mrow> + <mn>0</mn> + <mo></mo> + <mi>x</mi> + <mo></mo> + <mn>672274793</mn> + </mrow> + <mo>=</mo> + <mrow> + <mn>28121969; 28</mn> + <mo>/</mo> + <mn>12</mn> + <mo>/</mo> + <mn>1969</mn> + </mrow> + </mrow> +</math> +<p>el nacimiento de Linus Tordvals,</p> +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="0x85072278=51219965/12/1996" display="block"> + <mrow> + <mrow> + <mn>0</mn> + <mo></mo> + <mi>x</mi> + <mo></mo> + <mn>85072278</mn> + </mrow> + <mo>=</mo> + <mrow> + <mn>5121996; 5</mn> + <mo>/</mo> + <mn>12</mn> + <mo>/</mo> + <mn>1996</mn> + </mrow> + </mrow> +</math> +<p>el nacimiento de Patricia Miranda,</p> +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="0x367369448=1604199816/04/1998" display="block"> + <mrow> + <mrow> + <mn>0</mn> + <mo></mo> + <mi>x</mi> + <mo></mo> + <mn>367369448</mn> + </mrow> + <mo>=</mo> + <mrow> + <mn>16041998; 16</mn> + <mo>/</mo> + <mn>04</mn> + <mo>/</mo> + <mn>1998</mn> + </mrow> + </mrow> +</math> +<p>el nacimiento de Daniela Yolanda y</p> +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="0x537993216=2012200020/12/2000" display="block"> + <mrow> + <mrow> + <mn>0</mn> + <mo></mo> + <mi>x</mi> + <mo></mo> + <mn>537993216</mn> + </mrow> + <mo>=</mo> + <mrow> + <mn>20122000; 20</mn> + <mo>/</mo> + <mn>12</mn> + <mo>/</mo> + <mn>2000</mn> + </mrow> + </mrow> +</math> +<p>el nacimiento de Celeste Amanda, las 3 hijas de Tordvals respectivamente.</p> +<p>Estos elementos se tratan de números mágicos; es decir cadenas de caracteres alfanuméricos que identifican un archivo (ID). El objetivo de estos números mágicos concretos, grosso modo, es el de proteger la llamada verdadera REBOOT del sistema, ya que es una llamada destructiva que puede arrojar graves errores de programa. Linux ofrece una protección extra de esta forma.</p> +</body> +</html> +\ No newline at end of file diff --git a/hombre-tranquilo/index.html b/hombre-tranquilo/index.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>El hombre tranquilo (1952), de John Ford</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">El hombre tranquilo (1952), de John Ford: la gran obra maestra sobre el matrimonio</p> +<p class="date">17 de noviembre de 2022 • fjbalon</p> +</header> +<p>Mucho se ha escrito de la técnica, del color, de la música y de la magia de la maravillosa -para mí- gran obra maestra de John Ford. Mucho se ha escrito también de las innegables grandes interpretaciones del gallardo John Wayne y la bellísima Maureen O'Hara, y también de un reparto de lujo como Barry Fitzgerald, Victor McLaglen y Ward Bond. Poco puedo añadir antes tales magestuosas críticas.</p> +<p>El Hombre Tranquilo es una película sobre el Matrimonio, una defensa a la institución social elevada a sagrada; es quizás el mayor epitalamio de la historia del cine, un poema pletórico al amor conyugal y a la naturalización de las relaciones humanas.</p> +<p>La representación de Innisfree (Irlanda), idílica y amable, en la que la tradición y la naturaleza imperan en un verdadero orden comunitario -y que me recuerda mucho al pensamiento de Chesterton-, se contrapone al mundo moderno del que viene el protagonista (América). Es llamativo además ver cómo, en tales circunstancias sociales, la autoridad recae en su totalidad sobre la figura del sacerdote, y no sobre el Estado, ayuntamiento, ejército o policía; retrato fiel de la autoridad natural tradicional.</p> +<p>La sociedad que presenta protege y promueve el Matrimonio -que como institución social y política, la fundamenta- y enaltece el noviazgo. Es una atmósfera verdaderamente comunitaria, que choca frontalmente con la sociedad actual (que pervierte aún más la sociedad moderna de la que proviene Sean Thorton), en la que los matrimonios deben fortalecerse y robustecerse contra los contínuos ataques a la familia, la maternidad, la fidelidad... Envuelto en un individualismo absoluto.</p> +<p>La obra se inicia con el enamoramiento: exaltación del amor y admiración en la belleza y la estética. Enamorarse es crear una mitología privada con la otra persona, un universo personal que debe ordenarse en el noviazgo, conocimiento el uno del otro. Si bien es cierto que, por motivos de dinámica cinematográfica el noviazgo es algo corto, es también enseñanza fundamental, pues no ha dado tiempo que Thorton y Danaher se conozcan realmente, ignorando tras el matrimonio lo que cada uno tiene en su interior y ocasionando el conflicto entre ellos que vertebra la película.</p> +<p>Sean Thorton huye del mundo y de su pasado, no quiere volver a luchar y, para evitar nefastas consecuencias pretende, egoístamente, reprimir su virilidad y masculinidad, y frenar su deseo e impulso de defender la causa de su esposa. No comprende, por su formación americana y liberal, el significado y trascendencia que tiene para ella la dote, que no es sino la tradición y símbolo de la honra y dignidad que la mujer ofrece.</p> +<p>Mary Kate Danaher es una mujer orgullosa, brava y de gran carácter, sabe lo que quiere y lucha por ello, pugna por obtener lo que es suyo por derecho y tradición y no cede hasta conseguirlo. Sin embargo, ignora las razones por las que su esposo evita la confrontación, viéndole como un cobarde o, peor, un hombre que no respeta su honorabilidad de esposa. Danaher abandera la tradición sobre la modernidad de su esposo, y llega al extremo de negarle consumar el matrimonio (escándalo para la autoridad).</p> +<p>El conflicto tiene su clímax en una divertidísima pelea, en la que finalmente Thorton explota en masculinidad y defensa por la justicia y la dignidad de su esposa y ésta, dócilmente y en un alarde cómico en la que se muestra ternura y entereza orgullosa, va a casa hacer la cena a su marido. El matrimonio ha superado el conflicto.</p> +<p>Las feministas, habitualmente obtusas, han acusado al Hombre Tranquilo de ser una película misógina, sin embargo no puedo sino defender lo contrario, como prueba el retrato que hace de feminidad y voluntad altiva de la figura de la mujer, que finalmente somete la voluntad del esposo y le insta a ser consecuente con su hombría y su naturaleza, así como ella lo es a la suya. Evidentemente, en la sociedad enferma actual -donde las mujeres se masculinizan y los hombres se feminizan- es algo que choca; pero en la gran obra maestra de John Ford, se engalana y entroniza, de una forma muy sencilla, la dualidad sexual; la masculinidad y la feminidad: pilares naturales del matrimonio.</p> + + <h1>Filmografía</h1> +<ul> +<li>«El hombre tranquilo» (1952), John Ford</li> +</ul> + +</body> +</html> +\ No newline at end of file diff --git a/idiotizacion-computacional/index.html b/idiotizacion-computacional/index.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>La «idiotización computacional» fruto de la abstracción</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">La «idiotización computacional» fruto de la abstracción</p> +<p class="date">29 de mayo de 2021 • fjbalon</p> +</header> +<p>Vivimos inmersos en las redes de software complejo, que recibe nuevas versiones y actualizaciones día tras día. El consumo de RAM y CPU no sólo nunca se reduce, sino que va en aumento. Todo parece nuevo y moderno, pero el software ofrece las mismas características que hace años, y a esto se le llama «avance» y «progreso». La computación y la informática son ciencias conservadoras, aunque para cualquier no versado parezca lo contrario; al final, no nos equivoquemos, no hemos dejado de utilizar la misma informática que hace 70 años: la arquitectura von Neumann vitaminada y con un tamaño cada vez menor y con mayor capacidad. Esto se une al consumismo, que convierte y pervierte la capacidad de pensar por uno mismo, en producir por uno mismo aplicando formas lógicas y prácticas de ser y tener. Esta «enfermedad» afecta gravemente a la tecnología, y aún más a la ciencia de la computación. Las computadoras a menudo hacen cosas que sus usuarios no quieren ni necesitan, habiendo sin duda, una hiperinflación de objetos que conduce a su proliferación explosiva.</p> +<p>Incluso en la comunidad hacker, a menudo se da la falsa sensación de progreso proporcional a las líneas de código escritas, desarrollando soluciones complejas innecesariamente. La complejidad del código es la madre de un software hinchado, difícil de usar y totalmente inconsistente e inestable, los problemas se resuelven mediante parches, que dan lugar a otros problemas, que son resultados mediante otros parches; obteniendo finalmente una pequeña porción de código fundamental en contraposición de código parcheado. Los recursos se atan sin fin, explotando innecesariamente el rendimiento de la máquina, y las vulnerabilidades se hacen norma. La única solución es, a menudo, desechar todo el código y reescribirlo desde cero. Sin embargo, los hackers rara vez hacen reescrituras de calidad, ya que hay orgullo en la escritura de grandes cantidades de código: muchos se sienten superiores intelectualmente entendiendo la complejidad de su propio código, algo que otros no podrán entender; o será demasiado tedioso. Para muchos, el software complejo es ideal, y proporcional a su ego.</p> +<p>Unido a la complejidad, la industria informática y técnica se ha volcado en el desarrollo del teléfono móvil, dejando paulatinamente de lado el desarrollo de infraestructuras informáticas más simples y controlables. Un smartphone, no es más que un ordenador sobrevitaminado de sensores y controlado por su fabricante; un arma ideal de espionaje masivo, el sueño de Stalin (Richard Stallman). La tecnología se convierte así en prisión para su usuario, de sensores interconectados de vigilancia y control, incluso de aspectos tan íntimos como el sueño. Los infómatas se convierten en informadores.</p> +<p>Esto es así también para la informática general de usuario, de consumo. Se ha «smartizado» de forma masiva, en imitación al teléfono móvil. La computadora clásica se alimenta con sensores que no son, a menudo, necesarios; con sistemas operativos obscuros y software privados, colmados de telemetría y sistemas de control.</p> +<p>Entonces, la mayoría de máquinas ejecutan código que sus usuarios no conocen, confían ciegamente en los equipos de programadores de las compañías que los comercializan. Esto es especialmente peligroso en compañías oscurantistas que trafican con los datos de los usuarios y favorece el espionaje masivo, la supremacía de las grandes compañías, la devaluación de los propios datos... Alimentando a la maquinaria consumista de la que hablamos.</p> +<p>Y en conjunto al auge del llamado Internet de las Cosas (Internet of Thinks, IoT), informatizamos todo siguiendo el modelo del smartphone, y arrastrando evidentemente todos sus problemas.</p> +<p>Por otro lado, la industria se ha esforzado en dotar cada vez de más abstracción humano-máquina, si bien la paulatina aparición del entorno gráfico en la historia de la computación provocó una democratización de la informática, rebajando la curva de aprendizaje inicial y acercando la intuición al uso de la máquina a los usuarios menos doctos, también podemos decir que abstrajo al usuario de la verdadera interfaz del equipo, haciéndolo menos comprensible a los profanos. Y como en cualquier sistema democrático, la complejidad base aumentó innecesariamente, obteniendo programas simples con necesidad de interfaz gráfica (programas en las que el código referente a dibujarse ocupa más que el propio código de negocio) e iniciando una serie de problemas de estabilidad, compatibilidad, eficiencia... Las interfaces están sujetas al cambio continuo, a la estética cambiante de las modas... Pero su problema fundamental radica -pienso- en la «idiotización computacional» de los profanos.</p> +<p>La «idiotización computacional» surge de aquella abstracción, que separa al usuario de la máquina y convierte la interfaz en una mera pantalla de recepción, que limita su comprensión del sistema y, a consecuencia, una mayor confiabilidad, pasividad y conformismo por parte de los usuarios. Esto le lleva a una incredulidad ante problemas de privacidad e intimidad, que unido a conceptos vagamente denominados como la nube provoca un uso condicionado y esclavizado de la informática al servicio de las corporaciones y los Estados, que trafican y utilizan sus datos.</p> +<p>No estoy en contra de la interfaz gráfica, eso sería absurdo en prácticamente la mayoría de los casos. El uso que le doy a la informática es también gráfico (visionado y edición de fotografía, navegación por la web, visionado de películas...), por lo que tengo necesidad de una interfaz gráfica; pero considero la supremacía y la utilidad fundamental de la línea de comandos con respecto las aplicaciones gráficas.</p> +<p>A no ser que haya una razón verdaderamente buena para hacer gráfico un programa, una aplicación verdaderamente útil que requiera la representación y dibujo, sea como interfaz o como resultado, no veo necesidad real de GUI. El 90% de uso que le doy a mi capacidad de cómputo es texto. Pero evidentemente, existen aplicaciones o necesidades de las que obtengo beneficio usando la gráfica. Por lo tanto, esto no es un texto radical opuesto al desarrollo de interfaz gráfica, sino un manifiesto o declaración al uso real (¿o ideal?) de ésta.</p> +<p>Dentro de la «idiotización computacional», un elemento fundamental es también la llamada nube. La nube sólo existe en la mente de aquellos creen en ella (Richard Stallman). Es un manido mantra transversal, un concepto abstracto y ambiguo, un agente oscurecedor y encubridor de su verdadera naturaleza, la cual es simple: la nube es ceder tu informática al ordenador de otro.</p> +<p>Si abstrahere consiste en aislar conceptualmente una propiedad de un objeto, ignorando otras propiedades del objeto en cuestión; mi objetivo de des-abstrahere es dar propiedad y conocimiento de causa a lo que este concepto representa, así como desmitificarla y darle cuerpo a tal concepto tan abstracto. Lo primero a decir pues (y valga la redundancia), es que es un concepto deliberadamente abstraído, de forma que ante la no-corporeidad de la nube -que no se forma de partículas de agua ni cristales de hielo, en suspensión-, sino de un conjunto de computadores, de alta accesibilidad y disponibilidad, con un propietario y una programación concreta, conectados a través de las tecnologías de redes (tanto a nivel de hardware como de protocolo y software). La idea de oscurecer el sistema bajo el lenguaje (ordinario), es evitar que el usuario se haga algunas preguntas pertinentes: ¿a quién pertenece los sistemas informáticos que me propone usar? ¿qué datos obtendrás de mí? ¿cómo usarás mis datos? ¿dónde y bajo qué medidas de seguridad y privacidad se emplearán? ¿bajo qué leyes operas? ¿bajo qué filosofía?.</p> +<p>Y sobretodo, la cuestión que más importante considero: ¿por qué debo utilizar tu servicio «en la nube» y no mi propio equipo?.</p> +<p>La primera razón por la que el establecimiento induce a la adopción generalizada de la nube, es precisamente obtener control sobre la computación de los usuarios, despojando a los usuarios del control, ya no sólo sobre sus propios datos, sino sobre su propia función de computación. Algo grave, pues un usuario podría perder la capacidad computacional -por ejemplo la capacidad de ejecutar un programa- en caso de no ser del agrado del proveedor de la nube.</p> +<p>Considero que, en amparo de la libertad, es conveniente rechazar (o reducir, en la medida de lo posible) todo lo relativo a la nube, en el sentido abstracto en el que se presenta. Al igual que con la interfaz gráfica. Evidentemente me reitero en que no estoy en contra del concepto en sí, sino de su utilización deliberadamente abstracta; en muchas ocasiones, utilizar servicios externos es vital y beneficioso. Sin embargo en la mayoría de los casos actuales no lo es, y es lo que veo necesario rechazar.</p> + +</body> +</html> diff --git a/index.html b/index.html @@ -10,48 +10,352 @@ <header> <img class="logo" src="logo.png" alt="Bernardo de Borgoña"> <h1 class="title">Bernardo de Borgoña</h1> -<p class="subtitle">Caballero. Cristiano Viejo. Unixismo.</p> <nav class="menu"> -<a href="./git">git</a> +<span>Caballero. Cristiano Viejo. Unixismo. </span> +<a href="./git">/git</a> </nav> </header> <section class="blog"> +<a href="./static-site/" class="article"> + <p class="title">Cómo gestionar un sitio web estático (HTML+CSS)</p> + <p class="info">23 de abril de 2024 · fjbalon</p><p>Es complicado a menudo explicar el por qué utilizar una web estática es algo conveniente, ya que en el imaginario del vulgo sigue viéndose como algo arcaico, del Internet del siglo pasado quizás, ...</p> +</a> + +<a href="./xz-liblzma/" class="article"> + <p class="title">Del backdoor de SSH por xz/liblzma</p> + <p class="info">1 de abril de 2024 · fjbalon</p><p> La biblioteca de lzma comprometida activaría a través de un enlace de openssh a sd_notify (systemd notify) para obtener código oculto en liblzma para crear una puerta trasera a cualquier servidor...</p> +</a> + +<a href="./slackware/" class="article"> + <p class="title">Bitácora de instalación y uso de slackware</p> + <p class="info">16 de marzo de 2024 · fjbalon</p><p>Bueno, en un afán de aprendizaje y de purificación de mi sistema, tras problemas sufridos en X por las últimas actualizaciones de Archlinux, y el hartazgo producido por el obtuso sistema tentacular...</p> +</a> + +<a href="./caballo-turin/" class="article"> + <p class="title">El caballo de Turín (2011), de Béla Tarr</p> + <p class="info">4 de diciembre de 2023 · fjbalon</p><p>Obra maestra de Béla Tarr que emerge como una sinfonía visual que encuentra belleza en la cotidianidad de la miseria del ocaso del tiempo. Tarr pinta cuadros donde la luz y la sombra se entrelazan, ...</p> +</a> + <a href="./anillos-poder/" class="article"> <p class="title">La perversión de los personajes de J.R.R. Tolkien</p> - <p class="info">27 de septiembre de 2023 · fjbalon • fjbalon</p> - <p>Sinceramente, no comprendo el afán de protección ante las malas críticas hacia este producto de Amazon. ¿Tanto miedo hay a que se catalogue como un mal producto? ¿vamos a primar el marketing y la...</p> + <p class="info">27 de septiembre de 2023 · fjbalon</p><p>Sinceramente, no comprendo el afán de protección ante las malas críticas hacia este producto de Amazon. ¿Tanto miedo hay a que se catalogue como un mal producto? ¿vamos a primar el marketing y la...</p> +</a> + +<a href="./mujer/" class="article"> + <p class="title">Sobre la Mujer</p> + <p class="info">20 de septiembre de 2023 · fjbalon</p><p>Soy plenamente consciente que las reflexiones que estoy apuntando en el presente texto constituyen, en este mundo moderno, una herejía o incluso una blasfemia multidimensional; pues primeramente soy ...</p> +</a> + +<a href="./leopardo-nieves/" class="article"> + <p class="title">Vincent Munier es un verdadero cazador</p> + <p class="info">8 de septiembre de 2023 · fjbalon</p><p>Algún estoico decía que los pensamientos templan el alma, por lo que es deber del hombre racional dirigir sus pensamientos hacia un fin, fuera del deseo y placer momentáneo y de las circunstancias ...</p> +</a> + +<a href="./distributismo/" class="article"> + <p class="title">Breve ensayo sobre el distributismo informático</p> + <p class="info">17 de julio de 2023 · fjbalon</p><p>En la Edad Media, el feudalismo puede ser visto como una forma rudimentaria de distributismo, basado en las obligaciones de los vasallos y los señores, sistema en el que existía una distribución de...</p> +</a> + +<a href="./apologia-monarquia/" class="article"> + <p class="title">La monarquía tradicional y hereditaria</p> + <p class="info">24 de junio de 2023 · fjbalon</p><p>Si bien hoy día es común encontrarse algunas personas monárquicas, es preciso saber qué entendemos como monarquía en su sentido más amplio y filosófico. De lo contrario, no atenderíamos a la r...</p> +</a> + +<a href="./teologia-historia-monarquia/" class="article"> + <p class="title"><i>Ergo rex es tu?</i></p> + <p class="info">20 de junio de 2023 · fjbalon</p><p>Basándome en la estructura propuesta por Barraycoa en La Monarquía en la Teología de la Historia, que utiliza como base para desarrollar el carácter político del Reino de Cristo, y también del A...</p> +</a> + +<a href="./democracia/" class="article"> + <p class="title">Del por qué no participo del sistema democrático</p> + <p class="info">22 de mayo de 2023 · fjbalon</p><p>¿Por qué no voto? es una pregunta a la que me tengo que enfrentar regularmente, especialmente en ocasiones elevadas a los altares del mundo moderno como son las elecciones. El hecho de que no partic...</p> +</a> + +<a href="./blade-runner/" class="article"> + <p class="title">¿Sueñan los androides con ovejas eléctricas?</p> + <p class="info">22 de mayo de 2023 · fjbalon</p><p>Si bien considero Dune como el mayor referente y la obra magna del género de ciencia ficción en la Literatura, he de decir que considero a Blade Runner (1982) como la gran obra de ciencia ficción e...</p> +</a> + +<a href="./sparse-files/" class="article"> + <p class="title">Dispersión de archivos (sparse files) como método eficiente de uso del espacio</p> + <p class="info">20 de mayo de 2023 · fjbalon</p><p>En informática, un archivo disperso es un tipo utiliza más eficientemente el espacio del sistema de archivos cuando los bloques asignados a los archivos están en su mayor parte vacíos. Esto se con...</p> +</a> + +<a href="./dune/" class="article"> + <p class="title">Dune, de Frank Herbert</p> + <p class="info">20 de mayo de 2023 · fjbalon</p><p>Me atrevo a asegurar que Dune es la obra magna de la ciencia ficción; no hay nada parecido en la literatura moderna en cuanto a magnitud y madurez; a excepción de la mythopoeia de J.R.R. Tolkien1. E...</p> +</a> + +<a href="./dialogo-carmelitas/" class="article"> + <p class="title">Diálogo de Carmelitas (1960) «Liberté, Égalité, Fraternité... ou la Mort»</p> + <p class="info">11 de enero de 2023 · fjbalon</p><p>En esta sociedad post-revolucionaria, que encumbra el Reinado del Terror y la guillotina y que entroniza a la diosa razón. En esta sociedad que se escandaliza por las atrocidades del nazismo y el com...</p> </a> <a href="./secretos-matrimonio/" class="article"> <p class="title">Secretos de un matrimonio (1973), de Ingmar Bergman</p> - <p class="info">2 de enero de 2023 · fjbalon</p> - <p>Formalmente, como todo lo que hace Bergman es refinado y pulcro. De los diálogos sobreviene una educación y una elegancia que lo separa de cualquier telenovela o serie, y que al dividirlo en capítu...</p> + <p class="info">2 de enero de 2023 · fjbalon • fjbalon</p><p>Formalmente, como todo lo que hace Bergman es refinado y pulcro. De los diálogos sobreviene una educación y una elegancia que lo separa de cualquier telenovela o serie, y que al dividirlo en capítu...</p> </a> <a href="./browser-sucks/" class="article"> <p class="title">Todos los navegadores web son basura</p> - <p class="info">2 de enero de 2023 · fjbalon</p> - <p>Me he inspirado en el artículo every web browser absolutely sucks, de Luke Smith, con el que -debo decir- estoy radicalmente de acuerdo, tanto que he querido hacer mi propio «browser sucks»....</p> + <p class="info">2 de enero de 2023 · fjbalon</p><p>Me he inspirado en el artículo every web browser absolutely sucks, de Luke Smith, con el que -debo decir- estoy radicalmente de acuerdo, tanto que he querido hacer mi propio «browser sucks»....</p> +</a> + +<a href="./paganismo/" class="article"> + <p class="title">El paganismo nuevo contra el cristianismo en la tradición europea</p> + <p class="info">13 de diciembre de 2022 · fjbalon</p><p>Vivimos un florecimiento de una búsqueda de religiosidad identitaria europea, fruto probablemente del vacío dejado por la caída de la Cristiandad y de las consecuencias de la deriva liberal en el v...</p> +</a> + +<a href="./espejo-tarkovsky/" class="article"> + <p class="title">El espejo de Tarkovsky</p> + <p class="info">13 de diciembre de 2022 · fjbalon</p><p>El cine de Andréi Tarkovsky es complejo. A menudo, se le critica por su ininteligibilidad o inexplicabilidad de sus cintas, y la que quizás es su cinta más difícil, «Espejo», de la que tomo el n...</p> +</a> + +<a href="./bateria/" class="article"> + <p class="title">Diagnóstico de batería de litio desde software</p> + <p class="info">8 de diciembre de 2022 · fjbalon</p><p>La siguiente sección del cuaderno de bitácora detalla la investigación que he llevado a cabo para determinar el estado de salud de la batería de litio de mi ordenador portátil, la cual mantiene d...</p> +</a> + +<a href="./septimo-sello/" class="article"> + <p class="title">El séptimo sello (1957), de Ingmar Bergman: memento mori</p> + <p class="info">17 de noviembre de 2022 · fjbalon</p><p>Voy a empezar indicando lo que no me gusta de esta obra, que básicamente se resume en la visión protestante-ilustrada de mostrar la Edad Media mediante sus típicos tópicos. Los hombres que hablan ...</p> +</a> + +<a href="./hombre-tranquilo/" class="article"> + <p class="title">El hombre tranquilo (1952), de John Ford: la gran obra maestra sobre el matrimonio</p> + <p class="info">17 de noviembre de 2022 · fjbalon</p><p>Mucho se ha escrito de la técnica, del color, de la música y de la magia de la maravillosa -para mí- gran obra maestra de John Ford. Mucho se ha escrito también de las innegables grandes interpret...</p> +</a> + +<a href="./unix-filosofia/" class="article"> + <p class="title">De la Filosofía de Unix</p> + <p class="info">29 de septiembre de 2022 · fjbalon</p><p>Sin pretender hacer un trabajo histórico sobre Unix, el artículo De la Leyenda de Unix y las Grandes Casas nos permite comprender mejor la propia filosofía, derivada de este tiempo y contexto. Si b...</p> +</a> + +<a href="./gasoil/" class="article"> + <p class="title">Monitorización de capacidad de tanque de gasoil mediante sensor de ultrasonido</p> + <p class="info">21 de junio de 2022 · fjbalon</p><p>Este proyecto consiste en desarrollar un método para monitorizar la capacidad utilizada en un tanque de gasoil, que nutre una caldera. Existen diversas técnicas para lograrlo, pero la que considero ...</p> +</a> + +<a href="./interpolacion-lineal/" class="article"> + <p class="title">Interpolación lineal simple para calcular la temperatura de termorresistencias Pt100</p> + <p class="info">25 de noviembre de 2021 · fjbalon</p><p>El principio básico de un RTD es que su sensor de cable, hecho de un metal con una resistencia eléctrica conocida, cambia su valor de resistencia a medida que la temperatura sube o baja. Aunque las ...</p> +</a> + +<a href="./lighthouse/" class="article"> + <p class="title">Mitología griega en The Lighthouse (2019) de Robert Eggers</p> + <p class="info">20 de noviembre de 2021 · fjbalon</p><p>La segunda obra de Robert Eggers, revestimiento de mitos griegos, que se entolda de dos fareros que luchan contra la fiereza de la naturaleza y la superstición del mar. Es una película lenta y ahoga...</p> +</a> + +<a href="./siervos/" class="article"> + <p class="title">Siervos (2020), de Ivan Ostrochovský</p> + <p class="info">18 de noviembre de 2021 · fjbalon</p><p>La jerarquía eclesiástica, congregados en Pacem In Terris, se someten al Estado y traicionan al Papa, la Doctrina y el Magisterio. Sin embargo, en el clero existe una resistencia, una oposición que...</p> +</a> + +<a href="./vvitch/" class="article"> + <p class="title">The VVitch (2015), de Robert Eggers</p> + <p class="info">17 de noviembre de 2021 · fjbalon</p><p>The VVitch, o la bruja, se trata de una película profundamente religiosa, aunque parezca contraria a ésta. La estética -en un sentido profundamente ascético- y la fotografía engalanan la ópera p...</p> +</a> + +<a href="./ble/" class="article"> + <p class="title">Experimentos, análisis y mapeo de radiación BLE</p> + <p class="info">17 de noviembre de 2021 · fjbalon</p><p>Desde hace unos meses se viene reportando la aparición de múltiples MACs pertenecientes a dispositivos BLE (Bluetooth Low Energy) captadas por algunos teléfonos y dispositivos. Parece que el aument...</p> +</a> + +<a href="./systemd-syllabus/" class="article"> + <p class="title"><i>Syllabus</i> de <i>systemd</i> y alternativas <i>init</i></p> + <p class="info">1 de noviembre de 2021 · fjbalon</p><p>systemd -como muyahidín- expande su propio orden, su estado, su gran complejidad monumental, haciendo la guerra contra la filosofía Unix. Su inherente naturaleza dominante y viral le convierte en un...</p> +</a> + +<a href="./ciencia-tecnologia/" class="article"> + <p class="title">Sobre la naturaleza de la tecnología y de la ciencia</p> + <p class="info">15 de octubre de 2021 · fjbalon</p><p>A menudo se confunden ambas naturalezas, como si se tratase de una única, sin tener en cuenta siquiera la aplicatividad de la tecnociencia. Esto parece ser incrementado hoy día, en parte por el desc...</p> +</a> + +<a href="./dwm-howto/" class="article"> + <p class="title">Configuración y uso personal de dwm</p> + <p class="info">9 de octubre de 2021 · fjbalon</p><p>En orden a construir dwm necesita los archivos de cabecera de Xlib. Edite config.mk para localizar tu configuración local (dwm es instalado en usr/local por defecto). La instalación se realiza direc...</p> +</a> + +<a href="./temporalidad-codigo/" class="article"> + <p class="title">Sobre la temporalidad del código</p> + <p class="info">8 de octubre de 2021 · fjbalon</p><p>Recientemente, he leído el post Why I Write Games in C (yes, C). Me ha llamado poderosamente la atención, y me he visto identificado con su argumentación. Soy un amante de la programación en C, y ...</p> +</a> + +<a href="./dwm/" class="article"> + <p class="title">Del por qué uso gestor de ventanas (dwm) en lugar de un entorno de escritorio</p> + <p class="info">8 de octubre de 2021 · fjbalon</p><p>Desde que me inicié en el mundo GNU/Linux y sus distribuciones, allá por 2011, no he parado, como es costumbre en esta comunidad, de moverme entre distribuciones, sabores entornos gráficos... Como ...</p> +</a> + +<a href="./kathejon/" class="article"> + <p class="title">Del Kathejon</p> + <p class="info">1 de octubre de 2021 · fjbalon</p><p>Antes de cualquier lectura, hay que tener en cuenta que las Escrituras deben ser leídas literalmente, el elemento literal es el básico y fundamental en cualquier interpretación. Que posteriormente ...</p> +</a> + +<a href="./mechanic-keyboard/" class="article"> + <p class="title">Proyecto de montaje, soldadura y programación de firmware de teclado mecánico ortolineal y dividido</p> + <p class="info">17 de junio de 2021 · fjbalon</p><p>El proyecto consiste, como bien indica el título, en el montaje, soldadura y programación de un teclado mecánico dividido (un componente para cada mano), compacto y ortolineal....</p> +</a> + +<a href="./malmkrog/" class="article"> + <p class="title">Malmkrog (2020) de Cristi Puiu: cuando el cine se funde con la literatura, la filosofía y la teología...</p> + <p class="info">15 de junio de 2021 · fjbalon</p><p>Cuando el cine se funde con la literatura, la filosofía y la teología, usando como fuente las finas proposiciones y argumentos de Vladímir Soloviov (1853-1900), considerado por muchos como uno de l...</p> +</a> + +<a href="./flujo-texto/" class="article"> + <p class="title">La universalidad del flujo de texto</p> + <p class="info">15 de junio de 2021 · fjbalon</p><p>Al no aplicar la metodología simple, sea por ejemplo la de la Filosofía de Unix, radicalmente y al tratar de forzar nuevas características de las computadoras sobre los principios de Unix, los blob...</p> +</a> + +<a href="./idiotizacion-computacional/" class="article"> + <p class="title">La «idiotización computacional» fruto de la abstracción</p> + <p class="info">29 de mayo de 2021 · fjbalon</p><p>Vivimos inmersos en las redes de software complejo, que recibe nuevas versiones y actualizaciones día tras día. El consumo de RAM y CPU no sólo nunca se reduce, sino que va en aumento. Todo parece ...</p> +</a> + +<a href="./machine-id/" class="article"> + <p class="title">Del <i>machine-id</i> en relación al clonado de discos</p> + <p class="info">22 de marzo de 2021 · fjbalon</p><p>¿Qué es el machine-id? Desde las páginas de man se define como un identificador exclusivo de la máquina. «Este debe considerarse confidencial y no debe exponerse en entornos que no sean de confia...</p> </a> <a href="./dd/" class="article"> <p class="title">Sobre el tamaño de bloque en dd</p> - <p class="info">16 de marzo de 2021 · fjbalon</p> - <p>dd es una de las herramientas invaluables de cualquier arsenal Unix, y quizás una de las herramientas más potentes que existen en esta familia. Forma parte de las core utils y su objetivo principal ...</p> + <p class="info">16 de marzo de 2021 · fjbalon</p><p>dd es una de las herramientas invaluables de cualquier arsenal Unix, y quizás una de las herramientas más potentes que existen en esta familia. Forma parte de las core utils y su objetivo principal ...</p> +</a> + +<a href="./exorcista/" class="article"> + <p class="title">El Exorcista (1973), William Friedkin: Vade Retro Satana</p> + <p class="info">3 de marzo de 2021 · fjbalon</p><p>Es cierto que ha podido envejecer algo mal (han pasado casi 50 años), y que muchos de los efectos que utiliza pueden no sorprender o incluso, para algunos, ser hilarantes. Esto es un denominador...</p> +</a> + +<a href="./jerusalen/" class="article"> + <p class="title">Retórica de la escatología de Jerusalén</p> + <p class="info">13 de febrero de 2021 · fjbalon</p><p>El conflicto en las tierras de Palestina para unos, Israel para otros, se intensifica. Los israelíes bombardean las zonas libres (como las llamaría Aleksandr Duguin) de Palestina, los cohetes lanzad...</p> +</a> + +<a href="./seleccion-natural/" class="article"> + <p class="title">Selección natural y mutaciones</p> + <p class="info">2 de diciembre de 2020 · fjbalon</p><p>La selección natural es el mecanismo propuesto por Charles Darwin que explicaría la transición de mono a hombre y de todas las especies animales y vegetales del planeta. Para muchos, es el pilar fu...</p> +</a> + +<a href="./git/" class="article"> + <p class="title">Construcción de servidor Git propio</p> + <p class="info">22 de noviembre de 2020 · fjbalon</p><p>Una buena razón para alojar tus propios repositorios git es tener y mantener el control sobre tu propia infraestructura informática, tanto a nivel de sistema como a nivel de código, guardando inclu...</p> +</a> + +<a href="./autodefensa/" class="article"> + <p class="title">Autodefensa en tiempos de guerra híbrida tecnocrática</p> + <p class="info">13 de noviembre de 2020 · fjbalon</p><p>La guerra ha cambiado, pero no su esencia. La guerra está impregnada en el ADN del hombre. Puede cambiar la tecnología y el conocimiento científico, puede cambiar de magnitud y consecuencia, pero l...</p> +</a> + +<a href="./tex-maths/" class="article"> + <p class="title">Cómo escribo matemáticas en HTML: LaTeX, latexmlmath y MathML</p> + <p class="info">15 de junio de 2020 · fjbalon</p><p>LaTeX -ó TeX- es un lenguaje de marcas y un sistema de tipografía, escrito por Donald E. Knuth muy popular entre las comunidades de matemáticos, físicos e informáticos. Una de las característica...</p> +</a> + +<a href="./tolkien/" class="article"> + <p class="title">La <i>mythopoeia</i> de J.R.R. Tolkien</p> + <p class="info">15 de mayo de 2020 · fjbalon</p><p>J.R.R. Tolkien indiscutiblemente se ha convertido en el exponente supremo de su campo en términos de magnitud, excelencia y madurez, incluso sin haber concluido su obra en vida, ha descubierto un myt...</p> +</a> + +<a href="./swap/" class="article"> + <p class="title">Sobre la necesidad de la memoria Swap</p> + <p class="info">27 de febrero de 2020 · fjbalon</p><p> El caso que hoy me ocupa, nace de la necesidad de apagar la memoria de intercambio (o swap) en mi equipo portátil para poder gestionar varias pruebas sobre clústers de kubernetes. Algo curioso, pue...</p> +</a> + +<a href="./the-rider/" class="article"> + <p class="title">The Rider (2017) de Chloé Zhao, «Dios nos da a cada uno un propósito, el del caballo es correr por la pradera; el del vaquero es montar»</p> + <p class="info">26 de enero de 2020 · fjbalon</p><p>Sacrificio proviene de sacrum facere; es decir, hacer lo sagrado, entregarse, honrarlo. Por el uso y la costumbre -en este caso no tan positiva-, la vinculamos hoy día con dolor y pérdida, sin ser...</p> +</a> + +<a href="./kernel-compression/" class="article"> + <p class="title">Demostración empírica de tipo de compresión usada en el kernel de Linux</p> + <p class="info">19 de noviembre de 2019 · fjbalon</p><p>Para la realización de una práctica de preparación de LPIC-1/2, debía averiguar el tipo de compresión del kernel de Linux empleado en mi sistema. En ese momento, usando la distribución archlinux...</p> +</a> + +<a href="./segundo/" class="article"> + <p class="title">De la primacía del segundo en el cómputo del tiempo</p> + <p class="info">7 de junio de 2019 · fjbalon</p><p>«¿Qué es, pues, el tiempo? Si nadie me lo pregunta, lo sé; pero si quiero explicárselo al que me lo pregunta, no lo sé. Lo que sí digo sin vacilación es que sé que si nada pasase no habría t...</p> +</a> + +<a href="./ssh-tunneling/" class="article"> + <p class="title">SSH Tunneling</p> + <p class="info">28 de marzo de 2019 · fjbalon</p><p>El tunneling es un proceso por el que se utiliza el protocolo SSH para fortificar la comunicación entre otros protocolos inseguros, por ejemplo para realizar peticiones HTTP, SMTP, etc....</p> +</a> + +<a href="./soloviov-papado/" class="article"> + <p class="title">Argumentos de Vladímir Soloviov a favor del papado</p> + <p class="info">4 de marzo de 2019 · fjbalon</p><p>Vladímir Soloviov (1853-1900), considerado por muchos como uno de las mayores pensadores de la historia (Hans Urs von Balthasar se refirió a él como el segundo, sólo después de Santo Tomás de Aq...</p> +</a> + +<a href="./hijas-kernel/" class="article"> + <p class="title">Las fechas de nacimiento de Torvalds y sus hijas en las cabeceras del kernel</p> + <p class="info">1 de marzo de 2019 · fjbalon</p><p>Me han propuesto un reto: encontrar las fechas de nacimiento de Torvalds y de sus tres tres hijas en las cabeceras del kernel. Es un easter egg que dejó Linus para los más curiosos. Vamos allá....</p> +</a> + +<a href="./ssh/" class="article"> + <p class="title">Robustecimiento y securización del protocolo SSH</p> + <p class="info">20 de febrero de 2019 · fjbalon</p><p>SSH es uno de los protocolos más interesantes de los que dispone el administrador de sistemas, permitiendo acceder a otros equipos de forma remota; pero sobretodo, de forma segura. Con SSH creamos un...</p> +</a> + +<a href="./qemu/" class="article"> + <p class="title">Virtualización y emulación con qemu</p> + <p class="info">1 de enero de 2019 · fjbalon</p><p>Qemu, que yo pronuncio como Khemu /xɛ̃mu/ -sí, el hijo de Bayek de Siwa-, es un potente software de virtualización y emulación....</p> +</a> + +<a href="./unix-simplicidad/" class="article"> + <p class="title">Unix es simple. Sólo se necesita un genio para entender su simplicidad</p> + <p class="info">2 de julio de 2018 · fjbalon</p><p>No será secreto para nadie que el título es citado de Dennis Ritchie. Unix es un sistema, aunque pensemos en éste de una forma abstracta y conceptual de cara a la filosofía, que se basa en módulo...</p> +</a> + +<a href="./tor/" class="article"> + <p class="title">Contextualización teórica sobre la técnica de Tor y sus problemas de seguridad</p> + <p class="info">26 de abril de 2018 · fjbalon</p><p>Tor son las siglas de The Onion Routing, algo que podríamos traducir al español como enrutamiento cebolla; denominado así por su criptografía en capas, como veremos más adelante. Se trata de un p...</p> +</a> + +<a href="./ntp/" class="article"> + <p class="title">El tiempo unix</p> + <p class="info">22 de agosto de 2017 · fjbalon</p><p> También Epoch time, Posix time, Unix time ó time_t, es un sistema para la descripción de instantes de tiempo: se define como la cantidad de segundos transcurridos desde la medianoche UTC del 1 de ...</p> +</a> + +<a href="./watchdog/" class="article"> + <p class="title">Síntesis del Linux kernel watchdog</p> + <p class="info">12 de junio de 2017 · fjbalon</p><p>El watchdog (perro guardían o vigilante) del kernel de Linux se utiliza para monitorizar y vigilar un sistema que se está ejecutando, de forma que pueda ser reiniciado automáticamente en caso de fa...</p> +</a> + +<a href="./diccionario-dni/" class="article"> + <p class="title">Descifrado de <i>.zip</i> protegido mediante diccionario de DNIs</p> + <p class="info">12 de septiembre de 2016 · fjbalon</p><p>Me he encontrado con esta prueba de concepto: debía descifrar un archivo comprimido ZIP que contenía un PDF secreto, que sólo podría abrir la persona propietaria. Llevando a cabo una breve investi...</p> +</a> + +<a href="./unix-leyenda/" class="article"> + <p class="title">De la Leyenda de Unix y las Grandes Casas</p> + <p class="info">13 de junio de 2016 · fjbalon</p><p>La filosofía es aquel conjunto de saberes que busca establecer, de manera racional, los principios más generales que organizan y orientan el conocimiento de la realidad, así como el sentido del obr...</p> +</a> + +<a href="./permissions/" class="article"> + <p class="title">Permisos y propietarios en la familia Unix</p> + <p class="info">2 de abril de 2016 · fjbalon</p><p>Un fichero o archivo (file) es una colección de bytes agrupados bajo el mismo nombre y almacenados en el sistema de archivos. Se agrupan en directorios (directory), que no es más que la estructura l...</p> +</a> + +<a href="./openvpn/" class="article"> + <p class="title">Construcción de servidor OpenVPN propio</p> + <p class="info">2 de abril de 2016 · fjbalon</p><p>Antes de realizar cualquier comprobación es necesario tener claros unos conceptos teóricos referentes a las interfaces de redes virtuales TUN y TAP, interfaces de red virtuales a nivel de kernel....</p> </a> <a href="./aquino/" class="article"> <p class="title">De las cinco vías de Tomás de Aquino</p> - <p class="info">29 de marzo de 2016 · fjbalon</p> - <p>Tiempo llevo analizando y contemplando, si ese verbo puede ser usado al respecto, la gigantesca obra de Tomás de Aquino. Y tiempo llevo comprobando, casi experimentalmente, que el vulgo no conoce rea...</p> + <p class="info">29 de marzo de 2016 · fjbalon</p><p>Tiempo llevo analizando y contemplando, si ese verbo puede ser usado al respecto, la gigantesca obra de Tomás de Aquino. Y tiempo llevo comprobando, casi experimentalmente, que el vulgo no conoce rea...</p> </a> <a href="./archlinux/" class="article"> <p class="title">Guía de instalación de arch linux base</p> - <p class="info">22 de marzo de 2016 · fjbalon</p> - <p>Adentrándonos en el vasto universo de Unix y GNU/Linux, en especial en su distributismo característico; Arch Linux se presenta como una distro recomendada a usuarios avanzados y con cierto conocimie...</p> + <p class="info">22 de marzo de 2016 · fjbalon</p><p>Adentrándonos en el vasto universo de Unix y GNU/Linux, en especial en su distributismo característico; Arch Linux se presenta como una distro recomendada a usuarios avanzados y con cierto conocimie...</p> +</a> + +<a href="./passwd/" class="article"> + <p class="title">Hardening de passwd y shadow</p> + <p class="info">12 de febrero de 2016 · fjbalon</p><p>El contenido del fichero /etc/passwd determina el esqueleto de usuarios del sistema, constituyéndose como la primera linea de defensa del sistema contra accesos no deseados, por lo que debe manteners...</p> </a> </section> diff --git a/interpolacion-lineal/index.html b/interpolacion-lineal/index.html @@ -0,0 +1,203 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Interpolación lineal simple para calcular la temperatura de termorresistencias Pt100</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Interpolación lineal simple para calcular la temperatura de termorresistencias Pt100</p> +<p class="date">25 de noviembre de 2021 • fjbalon</p> +</header> +<p>El principio básico de un RTD es que su sensor de cable, hecho de un metal con una resistencia eléctrica conocida, cambia su valor de resistencia a medida que la temperatura sube o baja. Aunque las termorresistencias tienen ciertas limitaciones, que incluyen una temperatura de medición máxima de alrededor de 1,100°F (600°C), en general, son la solución de medición de temperatura ideal para una multitud de procesos.</p> +<p>Los cables de detección en un RTD pueden estar hechos de níquel (Ni), cobre (Cu) o tungsteno (W), pero el platino (Pt) es, con mucho, el metal más popular usado en la actualidad. Es más caro que otros materiales, pero el platino tiene varias características que lo hacen particularmente adecuado para las mediciones de temperatura, que incluyen:</p> +<ul> +<li>Relación temperatura-resistencia casi lineal.</li> +<li>Alta resistividad (59Ω/cmf en comparación con 36Ω/cmf para níquel).</li> +<li>Resistencia eléctrica no degradable en el tiempo.</li> +<li>Excelente estabilidad.</li> +<li>Muy buena pasividad química.</li> +<li>Alta resistencia a la contaminación.</li> +</ul> +<p>Entre los sensores RTD de platino, Pt100 y Pt1000 son los más comunes. Los sensores Pt100 tienen una resistencia nominal de 100Ω en el punto de hielo (0°C). La resistencia nominal de los sensores Pt1000 a 0°C es de 1.000Ω. La linealidad de la curva característica, el rango de temperatura de operación y el tiempo de respuesta son los mismos para ambos. El coeficiente de temperatura de resistencia es también el mismo.</p> +<p>Sin embargo, debido a la diferente resistencia nominal, las lecturas de los sensores Pt1000 son mayores en un factor de 10 en comparación con los sensores Pt100. Esta diferencia se hace evidente cuando se comparan configuraciones de 2 cables, donde se aplica el error de medición del cable. Por ejemplo, el error de medición en un Pt100 podría ser <emb>+1.0ºC</emb>, y en el mismo diseño, un Pt1000 podría ser <emb>+0.1ºC</emb>.</p> +<p>Tras contextualizar expongo el problema: leyendo mediante modbus los datos recibidos de un par de termorresistencias Pt100, me percaté que recibía, evidentemente, los datos raw. Pero no encontraba en documentación de los sensores ni en Internet el factor de conversión de esta unidad a grados. Mi única pista era la interfaz web del aparato, que establecía el rango de limitación como <emb>-100~100ºC</emb>.</p> +<p>Tengo entonces, por comprobación o por determinación (<emb>"By default, the High Alarm value is +32767 (0x7FFF) and the low alarm value is -32768 (0xFFFF)"</emb>) que el valor límite absoluto es <emb>32768</emb>; siendo entonces un rango de <emb>-32768~32767</emb>.</p> +<pre><code>$ ./modpoll -r2 -1 -t3 172.16.20.13 + +Protocol configuration: MODBUS/TCP, FC4 +Slave configuration...: address = 1, start reference = 2, count = 1 +Communication.........: 172.16.20.13, port 502, t/o 1.00 s, poll rate 1000 ms +Data type.............: 16-bit register, input register table + +-- Polling slave... +[2]: 6372 + + +$ ./modpoll -r3 -1 -t3 172.16.20.13 + +Protocol configuration: MODBUS/TCP, FC4 +Slave configuration...: address = 1, start reference = 3, count = 1 +Communication.........: 172.16.20.13, port 502, t/o 1.00 s, poll rate 1000 ms +Data type.............: 16-bit register, input register table + +-- Polling slave... +[3]: 8388 +</code></pre> +<p>Y obteniendo los valores raw de cada sensor, necesitaría reproducir lo más fiel posible una función a la representada con estos valores. Para ello, realizaría una interpolación lineal simple, consiste en trazar una recta que pasa por dos puntos conocidos <emb>y = r(x)</emb> y calcular los valores intermedios según esta recta.</p> +<p>La ecuación de una recta conocido dos puntos <emb>(x1,y1)</emb> y <emb>(x2,y2)</emb> es:</p> + +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="\frac{(y-y_{1})}{(y_{2}-y_{1})}=\frac{(x-y_{1})}{(x_{2}-x_{1})}" display="block"> + <mrow> + <mfrac> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <mi>y</mi> + <mo>-</mo> + <msub> + <mi>y</mi> + <mn>1</mn> + </msub> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <msub> + <mi>y</mi> + <mn>2</mn> + </msub> + <mo>-</mo> + <msub> + <mi>y</mi> + <mn>1</mn> + </msub> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + </mfrac> + <mo>=</mo> + <mfrac> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <mi>x</mi> + <mo>-</mo> + <msub> + <mi>y</mi> + <mn>1</mn> + </msub> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <msub> + <mi>x</mi> + <mn>2</mn> + </msub> + <mo>-</mo> + <msub> + <mi>x</mi> + <mn>1</mn> + </msub> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + </mfrac> + </mrow> +</math> +<p>Que despejando la y, valor que querríamos obtener, tenemos:</p> +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="y=y_{1}+\frac{(y_{2}-y_{1})}{(x_{2}-x_{1})}(x-x_{1})" display="block"> + <mrow> + <mi>y</mi> + <mo>=</mo> + <mrow> + <msub> + <mi>y</mi> + <mn>1</mn> + </msub> + <mo>+</mo> + <mrow> + <mfrac> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <msub> + <mi>y</mi> + <mn>2</mn> + </msub> + <mo>-</mo> + <msub> + <mi>y</mi> + <mn>1</mn> + </msub> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <msub> + <mi>x</mi> + <mn>2</mn> + </msub> + <mo>-</mo> + <msub> + <mi>x</mi> + <mn>1</mn> + </msub> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + </mfrac> + <mo></mo> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <mi>x</mi> + <mo>-</mo> + <msub> + <mi>x</mi> + <mn>1</mn> + </msub> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + </mrow> + </mrow> + </mrow> +</math> +<img class="color-invertible" style="width: 40%;" src="resources/grafico-interpolacion-lineal.png" /> +<p>Por deformación profesional, en lugar de hacer estos cálculos a mano he desarrollado un pequeño programa en C que calculase esta ecuación, donde los valores de x corresponden a los valores raw y los valores de y a los valores en grados; siendo la y precisamente el valor a obtener:</p> +<pre><code>#include <stdio.h> +#include <stdlib.h> + +int main(int argc,char *argv[]) +{ + float x, x1 = -32768.0, x2 = 32768.0; + float y, y1 = -100.0, y2 = 100.0; + + if( argc > 1 ) { + x = atof(argv[1]); + } + + y = y1 + ((y2 - y1)/(x2 - x1)) * (x - x1); + + printf("Interpolación lineal = %f\n",y); + return(0); +}</code></pre> +<p>De tal forma que, pasando como parámetro el valor obtenido por modbus, y estando x1, x2, y1, e y2 calibrados en código, sólo cabría obtener la variable esperada y.</p> +<pre><code>$ ./interpolacion-lineal 6372 +Interpolación lineal = 19.447624 +$ ./interpolacion-lineal 8388 +Interpolación lineal = 25.600060</code></pre> +<p>Es decir, obtendríamos 19,45ºC y 25,60ºC, respectivamente.</p> +</body> +</html> +\ No newline at end of file diff --git a/interpolacion-lineal/resources/grafico-interpolacion-lineal.png b/interpolacion-lineal/resources/grafico-interpolacion-lineal.png Binary files differ. diff --git a/jerusalen/index.html b/jerusalen/index.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>De la escatología de Jerusalén</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Retórica de la escatología de Jerusalén</p> +<p class="date">13 de febrero de 2021 • fjbalon</p> +</header> +<p>El conflicto en las tierras de Palestina para unos, Israel para otros, se intensifica. Los israelíes bombardean las zonas libres (como las llamaría Aleksandr Duguin) de Palestina, los cohetes lanzados por Hamás impactan ciudades israelíes. La Ciudad Santa es testigo de la inmaterialidad. Como bien decía Juan Donoso Cortés todos los acontecimientos históricos tienen su explicación y origen en un fundamento teológico. Y así es, pues Dios es Señor de la Historia y cada movimiento en el tablero es un movimiento de la Providencia o de las ordas contrarias a Él. Y no en vano es Jerusalén, la Ciudad Santa, núcleo del apokalypsis. Cristianos, judíos y musulmanes concordamos en la metafísica de Israel, concordamos en su escatología, la de Yerushaláyim y la de al-Quds. El fin de los tiempos, o al menos de ciertos tiempos escatológicos, comenzarán tras una gran guerra en Tierra Santa.</p> +<p>El 10 de agosto del 70 d.C. las legiones romanas comandadas por el Emperador Tito tomaron Jerusalén y masacraron a los zelotes, quienes se habían alzado contra el Imperio. El Segundo Templo de Salomón (construido por Zorobabel, nieto de Jeconías, penúltimo rey de Judá; tras el regreso de miles de judíos liberados del cautiverio babilónico) fue destruido. La caída de Jerusalén fue precedida por una terrible hambruna -provocada por el implacable asedio romano- que mató a miles de sus habitantes y, como cuenta detalladamente el historiador judío Tito Flavio Josefo (nacido Yosef ben Matityahu), muchos de ellos se vieron forzados a cometer toda clase de atrocidades, incluido el canibalismo.</p> +<img src="resources/caida-jerusalen.jpg" /> +<p>Los judíos consideran la caída de Jerusalén una de las peores catástrofes de su historia sagrada, que dio comienzo a la cuarta diáspora (Galut), dispersando a los judíos por todo el mundo, apátridas, así como los Khazâd del mito de Tolkien. Un castigo de Dios, Yahveh (יהוה en su Tetragrámaton) por los pecados de su pueblo y que culminará únicamente con la llegada del Mashíaj. Sólo entonces los judíos volverán a la Tierra Prometida, con la proclamación del Mesías como Rey de los judíos, que entrará por Sha'ar Harahamim (la Puerta Dorada) y construirá el Tercer Templo. Sin embargo, mientras él no venga, todas las puertas permanecerán cerradas, excepto la Puerta de las Lágrimas. Es por eso que el Muro Occidental, vestigio del Segundo Templo, es llamado por los judíos el Kotel, Ḥā'iṭ al-Burāq para los árabes: el Muro de las Lamentaciones; único lazo que los judíos conservan con aquel mundo espiritual: llantos y lamentos de un pueblo.</p> +<img src="resources/caida-jerusalen2.jpg" /> +<p>Para los cristianos la caída de Jerusalén tiene un significado muy distinto. El pueblo judío fue perfeccionado y elevado en Cristo, el Mashíaj esperado, pero muchos mantuvieron la fe ancenstral. La caída no fue más que el fin de la Antigua Alianza -que no fue terminada, sino perpetuada en la Nueva Alianza-, la constatación de Cristo como Mashíaj, Rey de los judíos (<i>Iesvs Nazarenvs Rex Ivdæorvm</i>) en el trono de la Cruz, coronado de espinas; que entró por Sha'ar Harahamim (la Puerta Dorada) montado en un burro y construyó el Tercer Templo: la Santa Iglesia. Los judíos que se unieron en Cristo formaban parte de los Llamados, del Tercer Templo, Universal (καθολικός katholikos) y Santo, que borraba las diferencias entre judíos y helenos. La destrucción del Segundo Templo no sería más que esta demostración, destruido por Cristo y reconstruido en 3 días, en cuerpo glorioso. Poco después, el emperador romano Juliano abrazó el paganismo y persiguió a los cristianos. Intentó reconstruir el templo de Jerusalén y deshacer la obra de sus predecesores, pero el proyecto fracasó, los cimientos del Tercer Templo se incendiaron y Juliano «el Apóstata» murió. Los cristianos entonces consideraron esto como una prueba de la irreversibilidad de la decisión de Dios: por esta razón, de hecho, era inútil que los judíos siguieran esperando por la llegada de Aquel que ya había venido, era una constatación más de que el Tercer Templo es la Iglesia.</p> +<img style="width: 30%; float: left; filter: sepia(50%); margin-right: 1em;" src="resources/theodore-herzl.jpg" /> +<p>La caída de Jerusalén volvió a ser relevante durante el siglo XX. Tras la II guerra mundial y a causa de la monstruosa persecución de los judíos por parte del régimen de Adolf Hitler, los judíos tomaron por la fuerza Palestina y recuperaron Jerusalén bajo el manto teológico del sionismo, movimiento surgido allá por el siglo XIX, que insistía en el hecho de que sí el Mashíaj seguía posponiendo su venida, entonces los judíos debían actuar sin él, pues habrían sido abandonados por Dios. Y esto significaba volver a la tierra entonces conocida como Palestina y ponerle fin a la última diáspora, que se decía que sólo finalizaría El que había de llegar. Quizás, adelantando esos acontecimientos mediante la ocupación, el cabildeo, el uso de la economía y la usura... Adelantarían esa llegada esperada. No por nada el sionismo se encuentra íntimamente ligado al capitalismo, al comunismo, al pragmatismo y al secularismo. Y así, durante el siglo XX, el Estado de Israel fue construido sobre cimientos materialistas y sionistas, y en uso de metodologías modernas como las limpiezas étnicas, las operaciones especiales militares (donde destacan impecablemente), la inteligencia (encarnada principalmente en el poderoso HaMosad leModi'in ulTafkidim Meyuhadim, o simplemente Mossad), la ingeniería social y campañas publicitarias de gran escala, etc.</p> +<p>¿Pero no es el propio Estado de Israel una ofensa a Dios a los ojos de los teólogos judíos?; un Estado que anticipa el fin de los tiempos. No nos engañemos, el Estado fue creado bajo estas ideas teológicas. Después de recuperar, sin יהוה, la Tierra Prometida, vendría el esperado Mashíaj. Preparaban el terreno para su llegada, y para él crearon el pre-Estado. Convirtieron así Jerusalén en su capital (1950, y controlada totalmente tras la Miljemet sheshet ha-yamim ó Guerra de los Seis Días en 1967) bajo el apoyo de la comunidad internacional -subterfugio de la masacre en el III Reich-. Lo único que faltaba para muchos era derribar la mezquita Al-Aqsa, tercer enclave sagrado para los musulmanes (tras la Meca y Medina), para construir el Tercer Templo (el número tres se repite a menudo), para el que según la tradición judía, precede a su construcción el sacrificio ritual de una vaca roja. Incluso algunas corrientes judías -como los Fieles al Templo- se han venido preparando para ello y han excavado túneles subterráneos bajo el Har Ha-Bayit (Monte del Templo, Haram esh-Sharif, Noble Santuario para los árabes). Pero el Mashíaj se demora demasiado -la corriente Neturei Karta sostiene que el Mashíaj no llega debido a los mismos judíos sionistas, que usurpan la Ley y la legitimidad que sólo pertenece al Ungido de יהוה-, ¿provocará esto el colapso, no sólo de Israel, sino de todo el judaísmo?</p> +<img style="width: 50%; float: right; margin-left: 1em;" src="resources/patmos.jpg" /> +<p>Para los mahometanos, para los que Filastin (Palestina) y Al-Quds (Jerusalén) les ha pertenecido mil años y que consideran suyo al Ash-sharq-l-awsat (Medio Oriente), el fin de los tiempos irá precedido por una gran guerra santa en las tierras que se extienden desde Sūriyā (Siria) hasta Miṣr (Egipto). El mundo árabe debe reaccionar violentamente ante los judíos que ocupan las tierras que por temporalidad y usufructo les pertenece, justificada no sólo por la indignante ocupación y el duro comportamiento étnico israelí, sino por esta Última Batalla (desarrollada en Dabiq, según algunas creencias musulmanas); batalla donde intervendrá Al-Masih ad-Dajjal, el falso profeta que entre sus ojos -el derecho tuerto- lleva la palabra kāfir, que es blasfemo y ateo. Es además estéril y le acompaña un monstruo peludo, pero no es capaz de entrar en las ciudades santas; Al-Masih ad-Dajjal dominará el mundo, en especial el islámico, hasta que aparezcan ʿĪsā (Jesús de Nazaret) y el Mahdī y le den batalla. Los chiítas y sunitas se han preparado para ello, y en ello están unidos, coinciden en la escatología y ven como solución a ello la destrucción del Estado-nación Judío. Anecdóticamente, Daesh perdió la ciudad apocalíptica de Dabiq a manos de los rebeldes sirios con el en apoyo de la artillería turca en octubre de 2016, tras 2 años de conquista.</p> +<p>Estos signos no serían para los cristianos más que signos revelados a Juan en Patmos; la ocupación por parte de los Sabios de Sion del Santo Suelo que pisó Cristo, lugar de la Instauración de la Eucaristía, de la Pasión, Muerte y Resurreción, hogar del Santo Sepulcro, de Getsemaní y del Gólgota; cuna de la Iglesia. Tierra donde Aquel a quien los judíos llaman el Mashíaj se Encarnó hace siglos ¿quizás aquél a quien esperan será el Anticristo?. Lo que sucede en el Oriente no podría ser sino una advertencia revelada.</p> +<p>La Cristiandad siempre ha comprendido la escatología de Jerusalén, su importancia teológica y apocalíptica. El 27 de noviembre de 1095, el Papa Urbano II pronunció el -quizá- más influyente de los discursos de la Edad Media, llamó a los pueblos cristianos a la guerra al grito de «Deus lo vult». El 14 de julio de 1099 los ejércitos cruzados tomaron la Ciudad Santa, arrebatándosela a los sarracenos. La primera cruzada, liderada por Godofredo de Bouillon, apenas había comenzado. Una poderosa fuerza religiosa y heroica arrastró a la caballería de la Cristiandad y la lanzó a liberar el Santo Sepulcro. En las cruzadas existía una realidad superior, que la separaban de otras guerras justas, un horizonte más elevado; en la guerra santa, la carne se eleva a espíritu y lo secular en un principio sagrado. Fue una gesta católica -en la que los ortodoxos no jugaron un papel relevante, lamenta Alexandr Dugin-, medieval y europea. La captura triunfal de Jerusalén es parte fundamental de la historia medieval, no podemos desde nuestra época más que admirar la victoria de los que lucharon bajo el signo de la Cruz y dieron su vida por liberar el Santo Sepulcro. Como cuenta el poeta Torquato Tasso, fue el espíritu del Arcángel San Gabriel quien poseyó a Godofredo de Bouillón con el ímpetu de liberar al Santo Sepulcro, en manos de sarracenos. No se necesita mucho para derrotar sinvergüenzas, cobardes y hombres de voluntad débil. Un verdadero héroe necesita enemigos dignos y así Dios lo dispuso. Jerusalén debía ser liberada en una gran batalla contra un poderoso y formidable enemigo.</p> +<img src="resources/primera-cruzada.jpg" /> +<p>Los cruzados no fueron sino la constatación de la filosofía clásica y heroica, la filosofía y el pensar medieval, la lealtad y los ideales caballerescos, el respeto a la reliquia sagrada. La metahistoria y los acontecimientos que suceden dentro del tiempo hacen siempre referencia a la realidad eterna. Sólo las naturalezas más bajas y pobres espiritualmente tratan de empañar tal hazaña, recurriendo a razones económicas o meramente políticas -de las que nadie discute su impacto-. Los intelectuales de hoy derraman ríos de tinta con el objetivo de menospreciar y relativizar la grandeza de la caballería cristiana. No entienden la religión, como no entienden Jerusalén.</p> +<img src="resources/civilizacion.jpg" /> +<p>El materialista occidental, el neopagano, aquel que venera y adora a Moloch, Mammón, Príapo y Belfegor; no verá en estos hechos sino una estrategia meramente geopolítica de Netanyahu, un agravamiento de las condiciones socioeconómicas, los precios del petróleo, la crisis del COVID... Todo se ha tornado en vana ambición. Pero todo muerto en estas tierras encierra una poderosa revelación religiosa, advertida en todas ellas. Los materialistas no comprenden las dimensiones teológicas que mueven los acontecimientos, no comprenderán jamás la metafísica de la Historia y no comprenderán jamás Jerusalén. Es curioso cuanto menos, cómo el oriente del Telón de Acero, esas naciones soviéticas mantienen ahora una espiritualidad relativamente más elevada que aquellos pueblos libres del occidente, enfermos de materialismo. El sueño medieval es más sólido que la realidad moderna, decía Chesterton. No somos más que bárbaros viviendo sobre las ruinas de una Civilización. En el siglo XXI, los cristianos no podemos más que preguntarnos: ¿Y Jerusalén, en manos de quién está? ¿No habrá llegado el momento de liberarla de nuevo?. Lo sublime de la Edad Media despierta algo en nuestros corazones: esta es la verdadera Europa, la Cristiandad, la Europa de los cruzados, los caballeros, las guerras santas, las damas hermosas y los poetas exquisitos. La Europa de las grandes hazañas, el amor y la filosofía, la escolástica y las órdenes contemplativas, la Europa que existió bajo el signo de la Cruz.</p> +<p>O acaso nuestro papel no debería ser otro, hacer guardía esperando el Retorno del Rey, como aquellos de Gondor: <i>«Hacen guardia porque tienen esperanza. Una tenue y fugaz esperanza en que aglún día florecerá, en que un Rey llegue y esta ciudad vuelva a ser la que fuera antes de su decadencia. Las viejas enseñanzas del oeste cayeron en el olvido. Los reyes construyeron tumbas más espléndidas que las casas para los vivos. Y atesoraban los antiguos nombres de su ascendencia más que los de sus propios hijos. Señores sin heredero habitaban añejos palacetes obnubilados por su heráldica o en al tas torres frias entregados a la astrología. Por eso el pueblo de Gondor conoció la ruina. El linaje real fracasó. El Árbol Blanco se secó. El gobierno de Gondor fue entregado a hombres menores.»</i></p> + +</body> +</html> +\ No newline at end of file diff --git a/jerusalen/resources/caida-jerusalen.jpg b/jerusalen/resources/caida-jerusalen.jpg Binary files differ. diff --git a/jerusalen/resources/caida-jerusalen2.jpg b/jerusalen/resources/caida-jerusalen2.jpg Binary files differ. diff --git a/jerusalen/resources/civilizacion.jpg b/jerusalen/resources/civilizacion.jpg Binary files differ. diff --git a/jerusalen/resources/patmos.jpg b/jerusalen/resources/patmos.jpg Binary files differ. diff --git a/jerusalen/resources/primera-cruzada.jpg b/jerusalen/resources/primera-cruzada.jpg Binary files differ. diff --git a/jerusalen/resources/theodore-herzl.jpg b/jerusalen/resources/theodore-herzl.jpg Binary files differ. diff --git a/kathejon/index.html b/kathejon/index.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Del Kathejon</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Del Kathejon</p> +<p class="date">1 de octubre de 2021 • fjbalon</p> +</header> +<p>Antes de cualquier lectura, hay que tener en cuenta que las Escrituras deben ser leídas literalmente, el elemento literal es el básico y fundamental en cualquier interpretación. Que posteriormente el elemento literal no es el único elemento a considerar, y que la lectura debe hacerse en función y en complementariedad del género literario nadie lo discute (regla sobre la interpretación de las Escrituras en <i>Divino Afflante Spiritu</i>, Pío XII). El Apocalipsis es pues, un libro literal, simbólico y profético, que no es histórico ni especifica una crónica anticipada, sino que se describen acontecimientos presentes, plurisignificados a todo tiempo y con un significado escatológico y teológico (especialmente en la Teología de la Historia).</p> +<p>Es necesario, por supuesto, fundamentarse en la distinción patrística y exegética entre <i>tipo</i> y <i>antitipo</i>. Esta distinción, aunque puede parecer evidente, no lo es tanto. El <i>antitipo</i> no es lo contrario que el <i>tipo</i>. Al respecto, podemos encontrar muchas definiciones teológicas con sus respectivos matices pero lo dejaremos establecido de la siguiente forma: el <i>tipo</i> es una <i>figura</i> que contiene alguna realidad futura, por tanto es profético, y especialmente lo que prefigura se habrá de manifestar plenamente tras la venida de Cristo. El término se encuentra numerosas veces en el Nuevo Testamento con diferentes significaciones En el sentido que lo consideramos se halla en <a class="element">1Cor. 10, 6 y 11<span class="info">«Estas cosas sucedieron en figura para nosotros, para que no codiciemos el mal como lo codiciaron ellos.» «Todo esto les sucedía alegóricamente y fue escrito para escarmiento nuestro, a quienes nos ha tocado vivir en la última de las edades.»</span></a>. El cumplimiento del <i>tipo</i> es el <i>antitipo</i>, siendo que toda profecía se desenvuelve en dos planos y se refiere a la vez a dos sucesos: uno próximo (<i>typo</i>) y uno remoto (<i>antitypo</i>). El profeta describe sucesos lejanos en el tiempo para los cuales hasta las palabras resultan deficientes, pero proyectándolos analógicamente desde sucesos cercanos. No se podrían entender las cosas por venir, sin haber escudriñado las pasadas, sin descubrir el <i>tipo</i>, difícilmente comprenderemos el <i>antitipo</i> que se nos presenta en la revelación. Para John H. Newman, la historia avanza como un círculo siempre creciente, de modo similar, cada era presenta su propia imagen de aquellos sucesos, todavía futuros, que serán, ellos y sólo ellos, el verdadero cumplimiento de la profecía que se encuentra a la cabeza de todos.</p> + +<cita> +<p>«Es manifiesto cómo la Escritura describe las sucesiones de los tiempos [...] los dos Testamentos resplandecen uno sobre el otro [...] porque no puede conocer lo futuro el que ignora lo pasado. Pues si no conozco de qué árbol es una semilla, no puedo saber qué árbol tiene que venir de ella. De donde el conocimiento de las cosas futuras depende del conocimiento de las cosas pasadas. Por esto, Moisés, profetizando sobre las cosas futuras, refirió por revelación las cosas pasadas»</p> + <p style="text-align:right">San Buenaventura, Obras XVI (BAC), 491,457</p> +</cita> +<p>Por tanto el <i>antitipo</i> está relacionado con el modo anagógico (o místico) de interpretar las Escrituras. Los diversos usos de la tipología a lo largo de la época patrística pueden sintetizarse en el díptico latino: <i>Littera gesta docet, quid credas allegoria, moralis quid agas, quo tendas anagogia</i> (lo literal enseña los hechos, lo alegórico lo que hay que creer, lo moral lo que hay que hacer y lo anagógico adónde ir).</p> +<p>Así pues, el estudio escatológico del kathejon proviene de la Segunda Carta a los Tesalonicenses, II, 6-7, donde San Pablo anuncia la futura irrupción del Anticristo en la Historia:</p> + +<cita> +<p>«<sup>6</sup>Sabéis lo que ahora lo retiene, para que se manifieste a su debido tiempo. <sup>7</sup>Porque el misterio de la iniquidad está ya en acción; apenas se quite de en medio el que por el momento lo retiene.»</p> + <p style="text-align:right">Tesalonicenses II 6-7, Sagrada Biblia de la Conferencia Episcopal Española</p> +</cita> +<p>Con esta afirmación legó el Apóstol a la posteridad un problema histórico-escatológico crucial: ¿qué es «el obstáculo» y «el obstaculizante», «lo que ataja» y «el Atajador» (Leonardo Castellani, El Apokalypsis de San Juan, 184-185), aquello que detiene, contiene, retrasa el reinado del Anticristo?</p> +<p>Prácticamente por unanimidad, la interpretación de los Padres de la Iglesia se inclinó en identificar el kathejon con el Imperio Romano (John H. Newman, Cuatro sermones sobre el Anticristo, I), así como también la teología medieval (Josef Pieper, El fin del tiempo, 135). Ésta última fue, precisamente, la posibilidad exegética que Santo Tomás de Aquino consideró en primer término (Super II Epistolam Sancti Pauli ad Thess., II, II). Es curioso cuanto menos la doctrina que uniría al kathejon con el Imperio, siendo éste el perseguidor de los cristianos, el que tortura y martiriza a la Iglesia de Cristo, el mismo que retiene la llegada del que ha de venir en nombre del demonio. Desde una perspectiva cristiana, la figura del kathejon constituye uno de los ejes de la Teología de la Historia así como de una Teología Política rectamente entendida; y considerando la fuerza y autoridad teológica y fundamental de los Padres de la Iglesia así como su Sabiduría proveniente del Paráclito, parece soberbio descartar el pensamiento de los mismos alegremente.</p> +<p>Y en muy alta estima debe estar el estudio del kathejon en los tiempos contemporáneos, que parece que busca ser removido finalmente, si no lo ha sido ya. Y tan vigente y presente es, en cuanto surge patentemente por poco que se repare en que el orden político cristiano, concretado providencialmente en el Imperio Romano que confiesa a Cristo, como paradigma y núcleo político-institucional de la Cristiandad, ya no existe. Los herederos y representantes del Sacro Imperio Romano desaparecieron como consecuencia de los brutales hechos provocados en la segunda década del siglo XX, que terminaron con los tronos de ambos Césares; el de Occidente y el de Oriente, los herederos de Carlomagno y de Bizancio, el Kaiser de Viena y el Czar de San Petesburgo, Beato Carlos I de Austria y IV de Hungría y Nicolás II Romanov de Rusia. Luego, si la doctrina común a los Padres y a los escolásticos es correcta, ¿no existe ya el obstáculo que impidiese la irrupción anunciada del impío?.</p> +<p>Y digo más, ¿qué hace para los Padres y los teólogos que el Imperio sea el obstáculo? ¿cuál es la naturaleza que así lo mantiene?. Se asegura que se debe a que es el cuerpo del orden político-jurídico; en tal sentido y mentando a uno de los más agudos y sugerentes teóricos del Estado del siglo XX, Carl Schmitt, que extendió sus preocupaciones políticas hasta esta ardua cuestión teológica, y la abordó con manifiesto interés en algunas de sus obras (Felix Grossheutschi, Carl Schmitt und die Lehre vom Katechon, 57-121), los Estados modernos herederos de órdenes cristianos -y que subsistían todavía en los años '60-, serían de alguna forma herederos del kathejon, en atributos pero no en esencia. Esta tesis también es respaldada por el Prof. Mario Caponnetto. Estados que no sustituyen al más puro Imperio Romano cristianizado; y, a partir de la <i>translatio Imperii</i> de los griegos a los alemanes, el Sacro Imperio Romano de Occidente, refundado por Carlomagno y extinguido con el Beato Carlos (otros defenderían la tesis -destaco al Padre José Orlandis y al Padre Leonardo Castellani- que data la fecha de defunción del Sacro Imperio en 1806, cuando Napoleón obliga a despojarse del título al Emperador austríaco), como así lo identificaron los Padres y Doctores, y que ha constituido el eje de la Cristiandad, reconocido su soberano primus inter pares entre los príncipes cristianos. El Imperio también simbolizó la continuidad política milenaria del orden romano, civilizador de Europa -un orden cuya existencia providencial para el cristianismo es un tópico de la teología-. Piénsese además en el papel que tuvo el Emperador en los grandes Concilios, cuando se definió el dogma católico. Y todavía en el siglo XX era el Emperador -como cabeza de un Estado que se sabe servidor de Cristo y defensor de la Iglesia, y encarnando la más alta expresión política de confesión de la Fe- quien poseía facultad de veto en la elección papal. Todos signos contundentes de la efectiva participación del laicado en la vida cristiana; de un laicado que hoy sólo puede ser espectador pasivo de cismas, herejías y apostasías dentro de la Iglesia jerárquica. Desde la Edad Media se mantuvo pues, el Sacro Imperio -y, en menor medida, la Rusia imperial, heredera de Bizancio-; y multiplicidad de reinos católicos, cual una variedad de analogados secundarios que, sin la significación histórica, política y eclesial del Imperio, han luchado para instaurare <i>omnia in Christo</i>.</p> +<p>Hay que tener en cuenta que la asimilación del obstáculo y del obstaculizante, del kathejon en neutro y en masculino, al orden romano, tiene que ver con la idea -propiamente romana- de <i>auctoritas</i>. El derrumbamiento actual de la <i>auctoritas</i>, con la consiguiente desnaturalización de la <i>potestas</i>, que se convierte en pura <i>potentia</i> -la sustitución del poder por la violencia es la definición misma de la tiranía- es uno de los rasgos salientes de la crisis política global actual. El concepto de la autoridad romana fue recogido por la Iglesia y de algún modo el Estado moderno (<i>simia Ecclesiae</i> en ese sentido) trató de copiarlo circunscribiéndolo en un territorio y sobre una población determinada. Ahora bien, el propio Agustín señala que el kathejon podría ser la propia Iglesia Católica, Romana, verdadera heredera del Imperio Romano y del Orden Natural y Sobrenatural, bajo la autoridad humana del Papa; que así, sería la Tradición cristiana el obstáculo que culminaría gradualmente con la emergencia del último -y breve- gran imperio, sea el anglo-americano. Sin embargo, hay alta discrepancia teológica en identificar a la Iglesia con el kathejon, puesto que aunque pueda sufrir toda clase de males en su naturaleza humana y militante, es indefectible, en cuanto a Ella -y no a los papas- le ha sido dada la promesa: <i>portae inferii non praevalebunt</i>. Precisamente esta indefectibilidad y la defectibilidad del laicado es un argumento más contra la identificación que estamos tratando. La misma realidad de la historia de la Iglesia da pábulo a la identificación del kathejon con el Imperio, y explica la posición de algunos Padres: el protagonismo del Emperador en los primeros siglos de vida dogmática e institucional de la Iglesia es realmente revelador.</p> +<p>Otra argumentación dice que el Sacro Imperio, en su naturaleza de Orden, subyace y subsiste en el Principio de Autoridad, precisamente cuestionado y demolido en nuestra época, entre los años '68 y los '90. Para René Girard no vería la naturaleza del kathejon sino en el Derecho y la Justicia, emanada de la Ley Natural y perfeccionada en el Evangelio; también no sólo cuestionado en nuestra época sino sustituida por un Derecho Positivista Absoluto, que vuelve a racionalizar los mecanismos de violencia mimética contrarios a la naturaleza; que se materializaría en una sociedad perseguidora de cristianos, como chivos expiatorios, para alcanzar un pretendido equilibrio social (al igual que en los inicios del propio Imperio Romano).</p> +<p>Entonces nos planteamos, ¿qué pasa ahora que ya no existe el Sacro Imperio, sea que tomemos como fecha de defunción 1806 ó 1918?. El Ánomos, el misterio de la iniquidad y el hombre de la iniquidad, tiene hoy un campo de actuación, el capitalismo ulterior al comunismo; el capitalismo que, consumido al comunismo -heredero del liberalismo-, propone un Nuevo Orden Mundial -pasar del pluriverso político al uni-verso, dominación con negación de lo político, como apuntó Schmitt-, que precisamente si tomamos su tesis en la que los Estados cumplen su función de kathejon en atributo -recordamos que no en esencia-, no estaríamos ante la absorción de tales funciones por poderes globalistas que los debilitarían y eliminarían en fundamento de ser. Es decir, fuere como fuere, estaríamos ante la eliminación del kathejon, sea en el Imperio Romano ya difunto, sea en el orden político heredado por el Estado moderno, sea en Principio de Autoridad o Derecho Natural.</p> + + <h1>Bibliografía y referencias</h1> +<ul> +<li>El apokalipsys de San Juan, Leonardo Castellani</li> +<li>El Apocalipsis según Leonardo Castellani, Alfredo Sáenz</li> +<li>Obras, San Buenaventura</li> +<li>Quas primas, Pío XI</li> +<li>La Monarquía en la Teología de la Historia, Javier Barraycoa, Verbo, núm. 535-536 (2015)</li> +</ul> + +</body> +</html> +\ No newline at end of file diff --git a/kernel-compression/index.html b/kernel-compression/index.html @@ -0,0 +1,95 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Demostración empírica de tipo de compresión usada en el kernel de Linux</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Demostración empírica de tipo de compresión usada en el kernel de Linux</p> +<p class="date">19 de noviembre de 2019 • fjbalon</p> +</header> +<p>Para la realización de una práctica de preparación de LPIC-1/2, debía averiguar el tipo de compresión del kernel de Linux empleado en mi sistema. En ese momento, usando la distribución <emb>archlinux</emb>.</p> +<p>Ejecutando file sobre el fichero de kernel obtengo:</p> + +<pre><code>$ file /boot/vmlinuz-linux +/boot/vmlinuz-linux: Linux kernel x86 boot executable bzImage, version 5.14.16-arch1-1 (linux@archlinux) #1 \ +SMP PREEMPT Tue, 02 Nov 2021 22:22:59 +0000, RO-rootFS, swap_dev 0X9, Normal VGA</code></pre> +<p>Y revisando la documentación teórica, observo que bzImage debería ir comprimido por <emb>gzip</emb> (<emb>z</emb>). Véase <a href="http://www.linfo.org/vmlinuz.html">vmlinuz.html</a>. De hecho, existe la idea errónea popular de que el prefijo <emb>bz</emb> significa que se utiliza la compresión <emb>bzip2</emb>, pero este no es el caso, por lo que el bz en bzImage no tiene relación con <emb>bzip2</emb>, y <emb>bzImage</emb> no tiene que ser comprimido con <emb>bzip2</emb>, como algunas veces se postula. De hecho, el modo de compresión predeterminado del kernel sigue siendo <emb>gzip</emb>, y hay pocas razones para usar bzip2 hoy en día: es más lento que <emb>LZMA</emb> y <emb>xz</emb>, pero no se comprime tan bien.</p> + + <h1>Pero, ¿cómo puedo probarlo empíricamente?</h1> +<p>Para determinar de manera concluyente qué compresión se utilizó para una imagen dada del kernel, sin necesidad de ejecutarla o encontrar su configuración, podemos seguir el enfoque utilizado por el propio script <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/scripts/extract-vmlinux">extract-vmlinux</a> del kernel.</p> +<p>Buscando primero la firma del compresor en la imagen:</p> +<ul> +<li>gunzip: \037\213\010</li> +<li>xz: \3757zXZ\000</li> +<li>bzip2: BZh</li> +<li>lzma: \135\0\0\0</li> +<li>lzo: \211\114\132</li> +<li>lz4: \002!L\030</li> +<li>zstd: (\265/\375</li> +</ul> +<p>Pretendiendo extraer los datos de la imagen, comenzando por el desplazamiento de cualquier firma que haya encontrado y comprobando que el resultado (si lo hubiera) sea una imagen de ELF. Con una breve adaptación del script -por <a href="https://gist.github.com/skitt/288c0c52b51b5863947a5d6c1180c9f3">Stephen Kitt</a>-. para sólo reportar el tipo de compresión, obtenemos sencillamente el tipo:</p> + +<pre><code>4c4 +< # extract-vmlinux - Extract uncompressed vmlinux from a kernel image +--- +> # check-vmlinux - Identify compression used for a kernel image +8d7 +< # +9a9 +> # © 2019 Stephen Kitt <steve@sk2.org> +20,22c20,22 +< cat $1 +< exit 0 +< } +--- +> echo The image was compressed using $2 +> exit 0 +> } +34c34 +< check_vmlinux $tmp +--- +> check_vmlinux $tmp $4 +52,58c52,58 +< try_decompress '\037\213\010' xy gunzip +< try_decompress '\3757zXZ\000' abcde unxz +< try_decompress 'BZh' xy bunzip2 +< try_decompress '\135\0\0\0' xxx unlzma +< try_decompress '\211\114\132' xy 'lzop -d' +< try_decompress '\002!L\030' xxx 'lz4 -d' +< try_decompress '(\265/\375' xxx unzstd +--- +> try_decompress '\037\213\010' xy gunzip gzip +> try_decompress '\3757zXZ\000' abcde unxz xz +> try_decompress 'BZh' xy bunzip2 bzip2 +> try_decompress '\135\0\0\0' xxx unlzma lzma +> try_decompress '\211\114\132' xy 'lzop -d' lzop +> try_decompress '\002!L\030' xxx 'lz4 -d' lz4 +> try_decompress '(\265/\375' xxx unzstd zstd +61c61 +< check_vmlinux $img +--- +> check_vmlinux $img none + +-------------------------------------------------------------------- + +$ ./nuevo /boot/vmlinuz-linux +The image was compressed using zstd</code></pre> +<p>Otra forma de validarlo es comprobar qué métodos de compresión soporta el núcleo. Sólo puede haber uno seleccionado, el cual determinará el algoritmo empleado:</p> + +<pre><code>$ zgrep CONFIG_KERNEL_ /proc/config.gz +# CONFIG_KERNEL_GZIP is not set +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +# CONFIG_KERNEL_LZ4 is not set +CONFIG_KERNEL_ZSTD=y</code></pre> +<p>Como conclusión, a pesar de que en la teoría, por defecto es usado el algoritmo de gzip, en ocasiones como la que ocupa al caso actual no se corresponde con ésta, requiriendo una demostración concluyente antes de tomar conclusiones erróneas fundamentadas únicamente en la teoría.</p> + +</body> +</html> +\ No newline at end of file diff --git a/leopardo-nieves/index.html b/leopardo-nieves/index.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Vincent Munier es un verdadero cazador</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Vincent Munier es un verdadero cazador</p> +<p class="date">8 de septiembre de 2023 • fjbalon</p> +</header> +<p>Algún estoico decía que los pensamientos templan el alma, por lo que es deber del hombre racional dirigir sus pensamientos hacia un fin, fuera del deseo y placer momentáneo y de las circunstancias que no controlamos. Al parecer, incluso la neurociencia moderna prueba que esta sucesión de pensamientos es capaz de cambiar, en cierta medida, la estructura plástica cerebral. Es por ello que es necesario consumir, en mayor medida, aquello a lo que queremos que nuestra mente y espíritu se aproxime. Es necesario pararse, dar un momento para la reflexión y para la contemplación, para observar lo sagrado que hay en la naturaleza, en la Creación. Y por esta razón me obligo, cinematográficamente -y también literariamente- a consumir obras que verdaderamente constituyan una edificación intelectual y espiritual. Y ello parece ser el propósito de esta obra maestra.</p> +<p>Este visionado, más que un documental, constituye un retiro cinematográfico de 92 minutos, un camino espiritual a través de la Creación, un ejericio de acechamiento y vigilancia que se materializa en la búsqueda del leopardo de las nieves; un ser que se presenta como mitológico; un ser que, en su maiestas, encarna el propósito y el fin del viaje.</p> +<p>Sin embargo, dicho fin es una apuesta. ¿Lo encontrarán o no lo harán? Da lo mismo; la estética, la ascética, el crecimiento... Esta en el propio viaje. El leopardo, como monarca, unifica la metáfora del encuentro, la esperanza paciente, el signo de unidad del viaje. El leopardo no es el fin, es todo el entorno salvaje que reina, es el imponente yak, el baral y el antílope, el zorro, el lobo y el manul... Son las regias montañas, las estáticas nieblas y los niños tibetanos. Es la banda sonora salvaje que se somete a la grandeza de la naturaleza.</p> +<p>El hombre es cazador por naturaleza, pero éstos hombres no cazan por la carne ni por la piel, sino que cazan el tiempo; lo congelan y lo paralizan, lo atrapan en la cinta de la cámara y en la luz de la imagen, vigilan los sonidos del entorno, magníficamente grabados y las escenas únicas logradas que demuestran que el hombre es el verbo torcido de la Creación. El hombre, que ha perdido la conexión con la naturaleza, sigue siendo parte de ella, sigue podiendo hablar a través de ella y por ella, que canta y expresa la belleza del Creador. El hombre puede hacer obras de arte, que como este documental, da voz al cosmos de la tierra, al entorno salvaje.</p> +<p>He admirado, visionando esta obra, la sabiduría natural y primitiva de Vincent Munier. El conocimiento zoológico y climático que demuestra, la ciencia que manifiesta para el rastreo, el conocimiento del comportamiento de cada especie. Cómo conoce el terreno y sabe moverse por él, cómo demuestra la virtud paciente del tirador invisible. Munier es un animal, entre animales, es un depredador que caza con la cámara.</p> +<p>Y finalmente, nos regala el leopardo de las nieves, corona de este viaje espiritual. El depredador ha llegado a la presa, ha cazado al rey de las montañas del Tíbet. Con unas imágenes que empequeñecen al hombre, al cazador; que asombran y dejan sin aliento al espectador paciente; una realidad que podemos ver y fotografiar, «pero con la que tenemos prohibido comunicarnos, desde que el destino nos expulsó de esa edad de oro, en la que las bestias, hombres y Dios, compartían una conversación común».</p> +<p>Una obra maestra.</p> + + +</body> +</html> +\ No newline at end of file diff --git a/lighthouse/index.html b/lighthouse/index.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Mitología griega en The Lighthouse (2019) de Robert Eggers</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Mitología griega en The Lighthouse (2019) de Robert Eggers</p> +<p class="date">20 de noviembre de 2021 • fjbalon</p> +</header> +<p>La segunda obra de Robert Eggers, revestimiento de mitos griegos, que se entolda de dos fareros que luchan contra la fiereza de la naturaleza y la superstición del mar. Es una película lenta y ahogante, grabada en 4/3 y en blanco y negro y cargada de referencias e inspiraciones.</p> +<p>Como la verdadera y aterradora historia de Thomas Griffin y Thomas Howell (1801), también la historia de dos fantasmas que cuidan de un faro (Max Eggers), el relato homónimo de Edgar Allan Poe donde dos marineros se quedan varados en un faro, el espíritu de Moby-Dick (Herman Melville) e incluso un tono lovecraftiano (la isla es una referencia a los profundos (?)). También vemos retazos del expresionismo cinematográfico alemán, si nos ponemos pedantes. Las mejores interpretaciones, quizá, de las carreras de Williem Dafoe y Robert Pattinson.</p> +<p>La película se desarrolla en una 'roca' de Nueva Inglaterra, allá por 1980, con sólo dos actores y un par de escenarios, pero cargada de mito y espíritu. Durante todo el transcurso del filme, que parece transcurrir sin tiempo, el joven Ephraim y el viejo Thomas sirven durante unas semanas como fareros, pero Ephraim comienza a tener pensamientos extraños al encontrarse con un pequeño <i>scrimshaw</i> de una sirena y comienza a sospechar de Thomas, que no le permite subir a la luz del faro, que guarda para él.</p> +<p>Ephraim es un leñador atormentado, que huye de su pasado y su crimen. Rechaza el favor del anciano (rechaza su bebida y comida), y no se somete a su sabiduría y experiencia. Esto supone el enfado caprichoso de Thomas, que unido a la tortura que supone a Ephraim la prohibición por parte del anciano de subir al faro, desencadena una caída en la locura y la desesperación del joven farero, el tiempo no pasa, los sucesos no ocurren, la tormenta crece, la naturaleza es implacable. Thomas parece conocer demasiado bien a Ephraim, y delata que su nombre verdadero nombre es también Thomas, que es continuamente tentado, en forma de desesperación atlántica, de locura e incluso en forma sexual con la sirena que el mar le regurgita. Y bajo la eterna vigilancia de las gaviotas (una de ellas tuerta), que parecieran los espías de Odín en el mar (¿de Zeus, quizás?).</p> +<p>Finalmente, en su locura, Ephraim ataca al viejo, lo que provoca que el <i>cambiaformas</i> muestre su verdadera forma: él es un dios del océano, el viejo del mar (Homero), un hijo de Poseidón (teogonía olímpica); él es Proteo. Según el mito, Proteo reside en la Isla de Faro (Egipto, allá donde el famoso Faro de Alejandría, curiosamente), posee gran sabiduría que le permite predecir el futuro, pero es celoso del conocimiento que solamente él atesora y se resiste a compartirlo (la luz del faro, el fuego de los dioses), así que se defiende cambiando constantemente de forma para despistar a sus perseguidores. Proteo atormenta al joven Thomas por su impertinencia, cambiando de forma, jugando con las ansias del joven. Prohíbe pero también tienta. Juega con él, pero también advierte que pretender obtener por la fuerza un conocimiento reservado a dioses de mayor rango es una idea peligrosa. Pero todo en la isla -desde las gaviotas hasta, irónicamente, el propio Proteo- parece ejercer su influencia para que el joven desafíe la prohibición (¿Zeus habrá convertido la isla en una trampa donde el joven contravendrá la voluntad de los dioses?).</p> +<p>El joven Thomas es un titán, un dios menor, un efebo (véase la referencia descarada de Hypnose, Sascha Schneider) que acaba aplastado bajo el poder de Proteo.</p> +<p>Thomas el joven es Prometeo, que ansioso del fuego de los dioses alcanza llegar a éste (al faro) y robarlo. En el mito, Zeus por tal ofensa castiga a Prometeo a ser encadenado a una roca, donde un águila devora sus entrañas mientras éstas se regeneran, en un ciclo de dolor eterno. Cambiemos el águila por las gaviotas de Proteo, sus protegidas.</p> +<cita> +<p>«O las formas proteanas que nadan desde la mente de los hombres y se funden en el caliente saqueo prometeico».</p> +<p>Thomas, The Lighthouse (2015), Robbert Eggers</p> +</cita> +</body> +</html> +\ No newline at end of file diff --git a/machine-id/index.html b/machine-id/index.html @@ -0,0 +1,80 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Del machine-id en relación al clonado de discos</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Del <i>machine-id</i> en relación al clonado de discos</p> +<p class="date">22 de marzo de 2021 • fjbalon</p> +</header> +<p>¿Qué es el <emb>machine-id</emb>? Desde las páginas de <a href="https://www.man7.org/linux/man-pages/man5/machine-id.5.html">man</a> se define como un identificador exclusivo de la máquina. «Este debe considerarse confidencial y no debe exponerse en entornos que no sean de confianza» se encuentra escrito en la documentación, lo que de primeras nos presenta algunos problemas que he desarrollado más adelante.</p> +<p>Lo primero que hay que entender es que éste se genera en el momento de la instalación del sistema operativo sobre el hardware concreto. Cuando, como administradores de sistemas nos dedicamos a clonar discos, es común que éstos mantengan el mismo identificador, generado a partir del hardware inicial del primer elemento de la clonación. Esto puede provocar conflicto a posteriori, por ejemplo, cuando generamos una interfaz de red bridge, que generará la MAC a partir del <emb>machine-id</emb>, y podría ocasionar conflicto en la red por simultaneidad.</p> +<p>Lo segundo, quizá, es su uso. El uso que da <emb>systemd</emb> al <emb>machine-id</emb> parece ambiguo, sirviendo a:</p> +<ul> +<li>La creación de identificador de host DHCP (probablemente causando que varias máquinas peleen por la misma dirección IP en el servidor DHCP).</li> +<li>GNOME almacena la configuración del diseño de pantalla firmada por el identificador.</li> +<li>El gestor de arranque EFI de <emb>systemd-boot</emb> almacena los kernels de instalación del sistema operativo en un directorio con el nombre del identificador para evitar colisiones.</li> +</ul> +<p>Aunque probablemente tenga más usos obtusos que no serán conocidos hasta estudiar profundamente el código.</p> +<p>El fichero que almacena dicho <emb>machine-id</emb> es <emb>/etc/machine-id</emb>. Observará que este valor también se almacena en <emb>/var/lib/dbus/machine-id</emb> y que existe un enlace simbólico entre los dos. Cualquier cambio en un archivo, se reflejará en el otro.</p> + + <code><pre> +$ cat /etc/machine-id +35f7f8a5f915453782892638656ad9fd +$ cat /var/lib/dbus/machine-id +35f7f8a5f915453782892638656ad9fd +$ ls -l /var/lib/dbus/machine-id +lrwxrwxrwx 1 root root 15 nov 11 2021 /var/lib/dbus/machine-id -> /etc/machine-id + </pre></code> +<p>Como decíamos, el <emb>machine-id</emb> se genera aleatoriamente en la instalación del sistema utilizando la utilidad <emb>systemd-machine-id-setup</emb>, que llama a su vez a <emb>dbus-uuidgen</emb>. Cambiarlo manualmente es muy sencillo y puede hacerse desde cualquiera de las utilidades citadas:</p> + + <code><pre> +sudo rm /etc/machine-id +sudo systemd-machine-id-setup + +sudo rm /etc/machine-id +sudo dbus-uuidgen --ensure=/etc/machine-id</code></pre> + + <h1>De la privacidad del <i>machine-id</i></h1> +<p>Conocemos el <a href="../systemd-machine-id/"><emb>machine-id</emb></a>, pero, ¿qué tiene que decir dicho identificador en cuanto a la privacidad? En un esfuerzo por asegurar la privacidad, tener un identificador único e inmutable vinculado directamente al dispositivo no parece un enfoque adecuado.</p> +<p>Recordamos además que el propio manual indica que el contenido es confidencial y no debe ser compartido. Sin embargo, no existe mecanismo ni inconveniente en que cualquier software tenga acceso a estos ficheros, permitiendo leer y almacenar el <emb>machine-id</emb> para el uso que fuera, sea accidental o malintencionado. Es cierto que también es accesible /sys, que contiene información sobre cada dispositivo conectado al sistema -inclusive las series de dispositivos USB únicas-. Por lo que si se requiere protección de confianza contra aplicaciones locales, se requerirá una solución de espacio aislado. Aún así, mantener o asegurar la no-integridad -de cara a terceros- del identificador parece algo deseable.</p> +<p>De nada sirve que nos indiquen que debe guardarse confidencialmente, cuando los permisos son de lectura para todos:</p> + + <code><pre> +$ ls -hal /etc/machine-id +-r--r--r-- 1 root root 33 jul 11 14:28 /etc/machine-id +$ cat /etc/machine-id +9f00b9e6f49f45299a05a5ff8fd697df + </pre></code> +<p>Su exclusión o eliminación en un sistema basado en <emb>systemd</emb> tampoco parece ser una acción conveniente, pues este identificador se utiliza para identificar máquinas en <emb>journalctl</emb>, así como para identificar máquinas en comunicaciones D-Bus. ¿Quizá podamos ponerlo a 0? Tampoco, espera una cadena de 32 caracteres.</p> +<p>Sabiendo entonces la facilidad que hay para cambiarlo, ¿por qué no automatizar un <emb>cronjob</emb> para que se cambie cada cierto tiempo? Por poner un modo paranoico, se podría hacer para que cambie cada minuto:</p> + + <code><pre> +sudo crontab -e + +*/1 * * * * rm /etc/machine-id && dbus-uuidgen --ensure=/etc/machine-id + </pre></code> +<p>Dicha automatización presentaría una solución a los problemas de privacidad que surgen de mantener un identificador accesible a todos. Sin embargo, ¿es seguro hacer algo así?. Aparentemente, parece que generar nuevas identificaciones en caliente pueden presentar inconvenientes. Tal y como indica la documentación:</p> + +<cita> +<p>«Si intenta cambiar un id de máquina existente en un sistema en ejecución, es probable que sucedan cosas inconvenientes. No intente cambiar este archivo. Además, no lo haga igual en dos sistemas diferentes; debe ser diferente cada vez que haya dos núcleos diferentes en ejecución.»</p> +<p><a href="https://dbus.freedesktop.org/doc/dbus-uuidgen.1.html">dbus-uuidgen</a></p> +</cita> +<p>No parece entonces, muy conveniente, automatizar la actualización del <emb>machine-id</emb> dentro de la misma ejecución temporal: podría causar problemas. Puede generar, por ejemplo, discrepancias en su identificador por parte de los servidores DHCP, que identifican a la máquina a raíz última del <emb>machine-id</emb>; especialmente en configuraciones de red que utilicen bridges.</p> +<p>Por otro lado, es llamativo saber que Whonix OS no genera un nuevo <emb>machine-id</emb> tras cada reinicio, sin embargo, mantiene el mismo para todos los usuarios. Algo que sí hace Tails. Quizá, una mejor opción para garantizar de alguna forma la privacidad es la de generar un nuevo identificador en cada inicio, tal y como hace Tails:</p> + + <code><pre> +sudo crontab -e + +@reboot rm /etc/machine-id && dbus-uuidgen --ensure=/etc/machine-id + </pre></code> +<p>De tal forma que durante la sesión temporal que dura el uptime el sistema sea identificado de una manera, pero al iniciar de nuevo el sistema sea identificado de otra. Aunque si la privacidad relacionada con el <emb>machine-id</emb> preocupa, quizá, la mejor forma de solventar el riesgo es utilizar un sistema sin <emb>systemd</emb>.</p> + + +</body> +</html> +\ No newline at end of file diff --git a/malmkrog/index.html b/malmkrog/index.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Malmkrog (2020) de Cristi Puiu</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Malmkrog (2020) de Cristi Puiu: cuando el cine se funde con la literatura, la filosofía y la teología...</p> +<p class="date">15 de junio de 2021 • fjbalon</p> +</header> +<p>Cuando el cine se funde con la literatura, la filosofía y la teología, usando como fuente las finas proposiciones y argumentos de Vladímir Soloviov (1853-1900), considerado por muchos como uno de las mayores pensadores de la historia (Hans Urs von Balthasar se refirió a él como el segundo, sólo después de Santo Tomás de Aquino, «mayor artista del orden y organización en la historia del pensamiento»), además de ser poeta, escritor, pensador político y crítico literario, amigo de Fiódor Dostoyevski y pensador ruso ortodoxo (con mucho de católico); no podemos sino obtener una exquisita obra grabada con una finura y una elegancia clásica tal, que recuerda a una obra teatral contemporánea a Soloviov, constituyendo un continente digno de la dignidad y la estética del gran pensador oriental.</p> +<p>No obstante, es una obra que no es para todo el mundo. Primero, porque quizá sea necesario estar algo versado en la filosofía clásica y la teología, también en la política y en el contexto histórico. No estoy seguro que sea necesario conocer la obra de Soloviov para poder disfrutarla, al contrario pienso que es una perfecta primera toma de contacto, sin embargo, la película sí exige estar preparado intelectualmente para seguirla.</p> +<p>Segundo, porque se trata de una película en la que prácticamente todo es diálogo, siendo éste el hilo conductor absoluto de la cinta. Lo que provoca, en mi caso, que haya leído tantos subtítulos como los que leí directamente en «Tres conversaciones y el Breve relato sobre el anticristo», haciendo que el tiempo en la película no haya transcurrido -insisto, para mí- de forma lineal, pues he ido moviéndome para revisitar las escenas, estudiar mejor la interpretación, etc. Me reafirmo en que no es una película para cualquiera.</p> + +</body> +</html> +\ No newline at end of file diff --git a/mechanic-keyboard/index.html b/mechanic-keyboard/index.html @@ -0,0 +1,115 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Ortholinear mechanical keyboard</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Proyecto de montaje, soldadura y programación de firmware de teclado mecánico ortolineal y dividido</p> +<p class="date">17 de junio de 2021 • fjbalon</p> +</header> +<p>El proyecto consiste, como bien indica el título, en el montaje, soldadura y programación de un <a href="https://www.xataka.com/basics/teclado-mecanico-que-ventajas-principales-diferencias">teclado mecánico</a> dividido (un componente para cada mano), compacto y <a href="https://hardzone.es/reportajes/que-es/teclado-ortolineal/">ortolineal</a>.</p> +<p>Para ello el primer paso consiste en hacerse con una placa de circuito impreso (aka PCB), que es sencillamente el soporte físico de los componentes electrónicos y eléctricos, interconectándolos entre sí empleando una serie de pistas conductoras de cobre extremadamente finas, generando así un carril conductor. El modelo utilizado de PCB será <a href="https://github.com/MakotoKurauchi/helix">Helix</a>, de Makoto Kurauchi. Concretamente en este artículo empleamos de dos modelos de PCBs distintas: una de ellas swapable (los switches pueden quitar y ponerse sin necesidad de soldar) y la otra con los switches directamente a soldar en placa.</p> +<p>Acabo de mencionar los switches, que son cada uno de los interruptores sobre los cuales se colocan las teclas. Su mecanismo hace efectiva cada pulsación, enviando señal eléctrica correspondiente al circuito integrado de la PCB. Estos elementos tienen un impacto profundo en la experiencia de escritura que proporciona el teclado al usuario, y son prácticamente la razón por la que muchos usuarios prefieren los teclados mecánicos. Determinan en gran manera el sonido que produce cada pulsación, la profundidad de pulsación o el tipo de pulsación.</p> +<h2>Componentes base</h2> +<p>Evidentemente y como en prácticamente cualquier proyecto que requiera electrónica, los componentes a obtener son varios y variados. Primeramente, será necesario por supuesto contar con las PCBs, que como ya adelanté usaré <a href="https://www.littlekeyboards.com/collections/helix-pcb-kits/products/helix-hotswap-pcb-kit">Helix Hotswap PCB Kit</a> y x2 <a href="https://www.littlekeyboards.com/collections/helix-pcb-kits/products/helix-pcb-kit">Helix PCB Kit</a>.</p> +<p>Aunque vienen en los kits, serán necesarios también un <a href="https://stackskb.com/store/pj-320a-jack/">conector TTRS Jack</a> por cada PCB, que se soldará en cada una y que comunicará cada mano a través de un <a href="https://42keebs.eu/shop/parts/plain-braided-metal-trrs-cable/">cable TRRS, además de un <a>reset switch</a> por cada una.</a></p> +<p>Necesitaremos 64 diodos, que son un componente electrónico de dos terminales que permite la circulación de la corriente eléctrica a través de él en un solo sentido, bloqueando el paso si la corriente circula en sentido contrario, no solo sirve para la circulación de corriente eléctrica sino que este la controla y resiste.</p> +<img class="color-invertible" style="width: 10%; margin-top: 2%; margin-bottom: 2%;" src="resources/diodo00.png" /> +<p>Y en el caso de la PCB hotswapable, requeriremos por supuesto 64 <a>Kailh MX Hotswap Socket</a>. A parte, serán necesarios 64 switches, que en mi caso he usado y probado las <a href="https://www.cherrymx.de/en/cherry-mx/mx-original/mx-blue.html">Cherry MX Blue</a> y las <a href="https://www.littlekeyboards.com/collections/keyboard-switches/products/kailh-choc-low-profile-switches?variant=31008074924099">Kailh Choc Low Profile Switches White</a>, para la PCB hotswapable y para soldar directamente a PCB, respectivamente.</p> +<p>Como cerebros de cada teclado dividido, cada PCB contará con un microcontrolador. He usado y probado dos modelos:</p> +<ul> +<li>El microcontrolador <a href="https://www.littlekeyboards.com/collections/mcus/products/elite-c-v3">MCU Elite-Cv4</a> fue diseñada como una alternativa a las MCU Pro Micro que se usan más comúnmente en teclados personalizados. El Elite-C cuenta con un cargador de arranque DFU y un conector USB Tipo C. Los controladores Elite-C v4 tienen un grosor de 1,6mm. Los controladores B-Stock tienen un grosor de 2,0mm. No hay diferencia de funcionalidad entre los dos tipos de variantes Elite-C. La única diferencia es el grosor de la PCB. No olvide que al flashear, será necesario usar dfu en lugar de avrdude.</li> + + <img style="width: 60%; margin-top: 2%; margin-bottom: 2%;" src="resources/material02.jpg" /> + +<li>El microcontrolador es un <a href="https://customkbd.com/products/sea-micro-pro-micro-alternative">sea-micro</a>, que cuenta con conector USB Tipo C y botón reset incorporado.</li> +</ul> +<p>Y para complementar, necesitaremos un cable USB-C a USB2.0, que comunicará el teclado con el PC. Como opcional, se puede añadir una <a href="https://www.littlekeyboards.com/collections/oled-screens/products/oled-screen">OLED Screen</a> a cada microcontrolador para mostrar información. Será de 128x32 con conector de 4 pines.</p> +<h2>Componentes de carrocería</h2> +<p>Por llamarlos de esta forma, corresponde a los elementos necesarios para montar el teclado, fuera de los elementos electrónicos detallados anteriormente.</p> +<p>El primero de ellos es la carcasa o case, la cual se corresponde a <a href="https://www.littlekeyboards.com/collections/helix-cases/products/helix-technician-five-row-keyboard-case?variant=12417577517103">Helix Technician Five Row Keyboard Case</a>, que consiste en una carcasa en base de polimetilmetacrilato [poli(metil 2-metilpropenoato) ó PMMA]. Compite en cuanto a aplicaciones con otros plásticos como el policarbonato (PC) o el poliestireno (PS), pero el acrílico se destaca frente a otros plásticos transparentes en cuanto a resistencia a la intemperie, transparencia y resistencia al rayado. Las métricas son:</p> + <img class="color-invertible" style="width: 60%;" src="resources/acrylic03.png" /> +<p>Cuenta con unas propiedades magníficas para el efecto y uso deseado en nuestro teclado:</p> +<ul> +<li>Transparencia de alrededor del 93%. El más transparente de los plásticos.</li> +<li>Alta resistencia al impacto, de unas diez a veinte veces la del vidrio.</li> +<li>Resistente a la intemperie y a los rayos ultravioleta. No hay un envejecimiento apreciable en diez años de exposición exterior.</li> +<li>Excelente aislante térmico y acústico.</li> +<li>Ligero en comparación con el vidrio (aproximadamente la mitad), con una densidad de unos 1190 kg/m³ es sólo un poco más denso que el agua.</li> +<li>Dureza similar al vidrio y fácil pulido usando pasta de pulir.</li> +</ul> +<p>Que la hacen una carcasa perfectamente útil para nuestro caso.</p> +<p>Por otro lado, requeriremos de 64 keycaps, que son las teclas al uso que se colocan sobre los switches.</p> +<h2>Equipamiento necesario</h2> +<ul> +<li>Estación de Soldadura 80W de estaño (80-480ºC)</li> +<li>Alambre de estaño para soldaduras</li> +<li>Pasta de soldar</li> +<li>Isopropanol (Alcohol Isopropílico)</li> +<li>Polímetro digital</li> +</ul> +<img src="resources/equipament.jpg" /> +<h2>Soldadura de microcontrolador y controles</h2> +<p>Los primeros elementos a soldar se harán mediante el siguiente orden:</p> +<ul> +<li>TTRS Jack y Reset switch</li> + <img src="resources/soldering00.jpg" /> + <img src="resources/soldering01.jpg" /> +<li>Conector de Oled Screen y puentes</li> +<li>Conectores de microncontrolador y microcontrolador</li> + <img src="resources/soldering02.jpg" /> + <img src="resources/soldering03.jpg" /> + <img src="resources/soldering04.jpg" /> +<li>Oled Screen</li> + <img src="resources/soldering041.jpg" /> +</ul> +<p>Posteriormente y ya que tenemos soldada la Oled Screen y flasheamos el firmware (si no lo hemos hecho previamente), si conectamos el USB-C a un PC -y todo ha ido bien- obtenemos output de datos en pantalla.</p> +<h2>Flash de firmware en microcontrolador</h2> +<img src="resources/flash00.jpg" /><img src="resources/flash01.jpg" /> +<p>Una ventaja añadida del sea-micro es que cuenta con botón reset integrado. Esto nos permite flashear el firmware sin necesidad de puente hardware o estar soldado ya en PCB de teclado.</p> + +<pre><code>$ python3 -m pip install --user qmk +$ export PATH=$PATH:/home/balon/.local/bin +$ qmk setup +$ cd qmk_firmware +$ make helix/rev3_5rows:default:clean +$ make helix/rev3_5rows:default:dfu +$ qmk compile -kb helix/rev3_5rows -km default</code></pre> +<img src="resources/soldering05.jpg" /> +<h2>Soldadura de diodos</h2> +<img src="resources/soldering06.jpg" /> +<h2>Soldadura de hotswaps</h2> +<img src="resources/soldering07.jpg" /> +<h2>Comprobación de tecla hotswapable pulsada con xev</h2> + <img src="resources/soldering08.jpg" /> + +<pre><code>$ xev + +KeyRelease event, serial 32, synthetic NO, window 0x3200001, + root 0x597, subw 0x0, time 3258717, (603,685), root:(604,705), + state 0x44, keycode 37 (keysym 0xffe3, Control_L), same_screen YES, + XLookupString gives 0 bytes: + XFilterEvent returns: False + +KeyPress event, serial 32, synthetic NO, window 0x3200001, + root 0x597, subw 0x0, time 3259183, (603,685), root:(604,705), + state 0x40, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, + XLookupString gives 0 bytes: + XmbLookupString gives 0 bytes: + XFilterEvent returns: False</code></pre> +<h2>Gestión de problemas encontrados</h2> +<ul> +<li>En placa negra, la tecla correspondiente al número 2 no funciona</li> +<p>Usando el polímetro, descubro las comunicaciones internas de la PCB para hacer un puente usando un cable, soldándolo y obteniendo de nuevo funcionalidad en la tecla.</p> + + <img src="resources/black-puente.jpg" /> +</ul> + + +</body> +</html> +\ No newline at end of file diff --git a/mechanic-keyboard/resources/acrylic00.jpg b/mechanic-keyboard/resources/acrylic00.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/acrylic01.jpg b/mechanic-keyboard/resources/acrylic01.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/acrylic02.jpg b/mechanic-keyboard/resources/acrylic02.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/acrylic03-dark.png b/mechanic-keyboard/resources/acrylic03-dark.png Binary files differ. diff --git a/mechanic-keyboard/resources/acrylic03.png b/mechanic-keyboard/resources/acrylic03.png Binary files differ. diff --git a/mechanic-keyboard/resources/black-puente.jpg b/mechanic-keyboard/resources/black-puente.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/diodo00-dark.png b/mechanic-keyboard/resources/diodo00-dark.png Binary files differ. diff --git a/mechanic-keyboard/resources/diodo00.png b/mechanic-keyboard/resources/diodo00.png Binary files differ. diff --git a/mechanic-keyboard/resources/equipament.jpg b/mechanic-keyboard/resources/equipament.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/flash00.jpg b/mechanic-keyboard/resources/flash00.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/flash01.jpg b/mechanic-keyboard/resources/flash01.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/material00.jpg b/mechanic-keyboard/resources/material00.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/material01.jpg b/mechanic-keyboard/resources/material01.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/material02.jpg b/mechanic-keyboard/resources/material02.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/polymethylmethacrylat-dark.png b/mechanic-keyboard/resources/polymethylmethacrylat-dark.png Binary files differ. diff --git a/mechanic-keyboard/resources/polymethylmethacrylat.png b/mechanic-keyboard/resources/polymethylmethacrylat.png Binary files differ. diff --git a/mechanic-keyboard/resources/soldering00.jpg b/mechanic-keyboard/resources/soldering00.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/soldering01.jpg b/mechanic-keyboard/resources/soldering01.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/soldering02.jpg b/mechanic-keyboard/resources/soldering02.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/soldering03.jpg b/mechanic-keyboard/resources/soldering03.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/soldering04.jpg b/mechanic-keyboard/resources/soldering04.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/soldering041.jpg b/mechanic-keyboard/resources/soldering041.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/soldering05.jpg b/mechanic-keyboard/resources/soldering05.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/soldering06.jpg b/mechanic-keyboard/resources/soldering06.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/soldering07.jpg b/mechanic-keyboard/resources/soldering07.jpg Binary files differ. diff --git a/mechanic-keyboard/resources/soldering08.jpg b/mechanic-keyboard/resources/soldering08.jpg Binary files differ. diff --git a/mujer/index.html b/mujer/index.html @@ -0,0 +1,42 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Sobre la mujer</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Sobre la Mujer</p> +<p class="date">20 de septiembre de 2023 • fjbalon</p> +</header> +<p>Soy plenamente consciente que las reflexiones que estoy apuntando en el presente texto constituyen, en este mundo moderno, una herejía o incluso una blasfemia multidimensional; pues primeramente soy un hombre que escribe sobre aquel otro sexo, algo no permitido por los censores contemporáneos (evidentemente evitaré usar, como a menudo se utiliza por parte de los modernos, términos que rondan la 'inquisición', pues la higiene intelectual me impide denostar el término). En términos generales, uno de los núcleos de pensamiento más extendidos hoy día, que considero a su vez como uno de los mayores errores del mundo moderno -con nefastas consecuncias- es, igualitar al Hombre y a la Mujer.</p> +<p>No pretendo que se me malinterprete, pues no digo que uno quede sometido al otro en cuanto a dignidad, siendo evidentemente iguales ontológicamente. Es más, para el corpus que conforma la Tradición, la mujer queda elevada filosóficamente en cuanto que ella entiende el amor y tiene sobre sí una facilidad natural para las virtudes que la moderan, en especial la castidad. </p> +<p>«La mujer entiende el amor y tiene como una facilidad natural para las virtudes que lo moderan, en especial la castidad. Y estas virtudes son las últimas, las que se manifiestan más hacia afuera, las que vuelven espiritualmente hermosa a la persona, como la modestia o la fineza exterior. Por eso la fisonomía espiritual de una buena mujer es más manifiesta y más hermosa que la del buen varón. Tiene más hermosa apariencia una virtuosa madre de familia, refugio de los afligidos, que un virtuoso militar que le parte la cabeza a los enemigos de la Iglesia»</p> + +<p>Comenzamos con una apreciación etimológica de la palabra sexo, que no es sino <i>secare</i> (cortar) o <i>sectus</i> (separación, sección), una apreaciación que desde el inicio indica diferencia entre ambos. Para Platón en <i>El Banquete</i> (380 a.C.) dicha separación se debió a un castigo de Zeus a que los seres andróginos quedasen divididos en dos.</p> + + <!-- BIOLOGIA --> + <!--<p>No pretendo hacer un tratado sobre las diferencias biológicas, de explicación evolutiva (usando en el término de la palabra una acepción coloquial y no darwinista)</p> --> + + <!-- TEOLOGIA --><p>«No es bueno que el hombre esté solo» se transcribe del Génesis, que pontifica sobre la naturaleza humana y su caida. Aquel hombre, que puso nombre -con todo aquello que conlleva poner nombre en la teología judía- a todos los animales, pero que no encontró en la Creación ayuda adecuada. Entonces, Dios le hizo caer en un profundo sueño y, quitándole una de las costillas, de ésta se formó la mujer. «Esta vez sí que es hueso de mis huesos y carne de mi carne. Esta será llamada mujer, porque del varón ha sido tomada.Por eso deja el hombre a su padre y a su madre y se une a su mujer, y se hacen una sola carne.».</p> +<p>A este respecto, de la cita bíblica parece evidente, en términos más precisos, que la mujer no es sierva del bien personal del hombre, sino auxiliar para el bien común de la familia y de la sociedad. La mujer está sujeta al hombre, pero no porque el hombre sea fin de la mujer.</p> +<p>«Asimismo, las mujeres estén sujetas a sus maridos, para que si algunos no se rinden a la palabra, sin palabra sean ganados por el comportamiento de sus mujeres»</p> + + + <!-- El problema del feminismo --><p>El feminismo es un movimiento revolucionario que busca la aniquilación de la feminidad natural mediante la sustitución de los patrones propiamente masculinos. Es decir, la sustitución de la mujer por el hombre, 'masculinizar' a las mujeres (y a consecuencia, 'feminizar' a los hombres). El fondo del error consiste en que, desconociendo la peculiaridad de la criatura femenina, no se ha dedicado a reivindicar para la mujer lo que le es propio mediante la contemplación de la naturaleza humana, sino aquello que pertenece a la naturaleza humana considerando al varón. La relación con el varón ofende a la mujer, porque la pasión, divorciada del atractivo espiritual, se vuelve egoísta y despreciativa; por lo tanto para atraer al varón sólo cuenta con el acelerador del deseo y el freno de su resistencia para lograr respeto.</p> +<p>Este panorama es, evidentemente, inasumible para la concepción cristiana de la realidad. «La esposa viene a ser como el sol que ilumina a la familia. […] Es el sol que con su generosidad y abnegación, con su constante prontitud, con su delicadeza vigilante y previsora en todo cuanto puede alegrar la vida a su marido y a sus hijos».</p> + + <!-- Eriz Zemmour --><p></p> + + <h1>Bibliografía y referencias</h1> +<ul> +<li><a href="https://circulohispalense.wordpress.com/2020/03/11/el-problema-de-la-mujer-feminidad-y-feminismo/">El problema de la mujer: feminidad y feminismo</a>, Ramiro León, Círculo Hispalense.</li> +<li>«El primer sexo», Éric Zemmour</li> +<li><a href="https://www.filosofia.org/hem/187/reu/r0620326.htm">La mujer comparada con el hombre</a>, Santiago González Encinas</li> +</ul> + +</body> +</html> +\ No newline at end of file diff --git a/ntp/index.html b/ntp/index.html @@ -0,0 +1,200 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>El tiempo unix</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">El tiempo unix</p> +<p class="date">22 de agosto de 2017 • fjbalon</p> +</header> + <p>También Epoch time, Posix time, Unix time ó time_t, es un sistema para la descripción de instantes de tiempo: se define como la cantidad de segundos transcurridos desde la medianoche UTC del 1 de enero de 1970, sin contar segundos intercalares. Es universalmente usado no solo en sistemas operativos tipo-Unix y en muchos sistemas computacionales.</p> +<p>No se trata ni de una representación lineal del tiempo, ni de una representación verdadera de UTC (a pesar de que frecuentemente se le confunde con ambos), pues el tiempo que representa es UTC, pero no tiene forma de representar segundos bisiestos de UTC (por ejemplo, 1998-12-31 23:59:60). El tiempo en Unix es un entero con signo que incrementa cada segundo, sin realizar cálculos necesarios para determinar el año, el día del mes, la hora y el minuto, midiendo a partir de 00:00:00 UTC del 1 de enero de 1970. Hay un problema con esta definición, puesto que UTC no existió en su forma actual sino hasta 1972, cuando se establece como referencia 1970-01-01T00:00:00Z. El viernes 13 de febrero de 2009, exactamente a las 23:31:30 (UTC), el tiempo Unix igualó a 1234567890.</p> +<p>Entrando ya más en código, el tipo de dato time_t es un tipo de dato de la biblioteca ISO-C definido para el almacenamiento de valores de tiempo del sistema. Estos valores se devuelven desde la función time() de la biblioteca estándar. Este tipo es un typedef definido en la cabecera <time.h>. ISO-C define time_t como un tipo aritmético, pero no especifica ningún rango, resolución, o codificación en particular de la misma. Tampoco especifica los significados de las operaciones aritméticas aplicadas a los valores de tiempo. Unix y los sistemas compatibles con POSIX, implementan time_t como un entero (generalmente de 32 o 64 bits), que representa el número de segundos de Epoch time. Los sistemas que utilizan un tipo time_t entero de 32 bits son susceptibles a los problemas del año 2038.</p> +<p>Usando GNU date o BSD date un valor dado time_t se puede convertir en su equivalente en la fecha del calendario:</p> +<pre><code>$ date +%s # GNU date +1638548288 + +$ date -ur 1234567890 # BSD date +Mon Oct 07 23:31:30 UTC 2016</code></pre> +<p>He aquí un programa C que traduce una fecha en formato humano a su valor en Epoch Unix con time_t, sea una fecha pasada como argumento o la fecha actual:</p> +<pre><code>#include <stdio.h> +#include <time.h> + +time_t human_date_to_unix_time(const char *human_date) +{ + struct tm tm; + time_t unix_time; + int r; + + if (human_date == NULL) { + printf("null argument\n"); + return (time_t)-1; + } + r = sscanf(human_date, "%d-%d-%d %d:%d:%d", &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec); + if (r != 6) { + printf("expected %d numbers scanned in %s\n", r, human_date); + return (time_t)-1; + } + + tm.tm_year -= 1900; + tm.tm_mon -= 1; + tm.tm_isdst = 0; + unix_time = mktime(&tm); + if (unix_time == (time_t)-1) { + printf("reading time from %s failed\n", human_date); + } + + return unix_time; +} + +int main(int argc, char *argv[]) +{ + + char *dateh; + time_t t; + + if( argc > 1 ) { + dateh = argv[1]; + t = human_date_to_unix_time(dateh); + } else { + t = time(NULL); + } + + printf("%ld\n", t); + + return(0); +}</code></pre> +<p>En la web, una buena herramienta para convertir entre unidades de tiempo Epoch y humano es <a href="https://www.epochconverter.com/">epochconverter.com</a>.</p> +<h2>Network Time Protocol</h2> +<p>Network Time Protocol (NTP) es un protocolo de Internet para sincronizar los relojes de los sistemas informáticos a través del enrutamiento de paquetes en redes con latencia variable. NTP utiliza UDP como su capa de transporte, usando el puerto 123. Está diseñado para resistir los efectos de la latencia variable.</p> +<p>NTP utiliza el algoritmo de Marzullo con la escala de tiempo Tiempo universal coordinado (UTC), incluyendo soporte para características como segundos intercalares. NTPv4 puede mantenerse sincronizado con una diferencia máxima de 10 milisegundos (1/100 segundos) a través de Internet, y puede llegar a acercarse hasta 200 microsegundos (1/5000 segundos) o más en redes de área local sobre condiciones ideales. NTP utiliza un sistema de jerarquía de estratos de reloj, en donde los sistemas de estrato 1 están sincronizados con un reloj externo tal como un reloj GPS o algún reloj atómico. Los sistemas de estrato 2 de NTP derivan su tiempo de uno o más de los sistemas de estrato 1, y así consecutivamente (cabe mencionar que esto es diferente de los estrato de reloj utilizados en los sistemas de telecomunicaciones).</p> +<p>El proceso que realiza el protocolo NTP es el siguiente:</p> +<ol> +<li>Se envía un primer mensaje (petición de sincronización) en el instante T0 del lado del cliente que comprueba si el desfase de tiempo entre el servidor y el solicitante es mayor de 17 minutos.</li> +<li>El mensaje llega en el instante T1 al servidor: </li> +<ol> +<li>En caso de que el desfase sea mayor que 17 minutos el proceso no continuaría, finalizando sin sincronización.</li> +<li>Si por el contrario el tiempo es menor que 17 minutos la sincronización continúa. El servidor envía un mensaje con su tiempo en el instante T2.</li> +</ol> +<li>El paquete se recibe en el cliente en el instante T3. Se realiza un ajuste gradual del tiempo cada minuto hasta aproximarse a 128 ms del tiempo del servidor. El retardo (θ) entre ambos relojes se calcula como: +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="0=\frac{(T1-T0)+(T2-T3)}{2}" display="block"> +<mrow> + <mn>0</mn> + <mo>=</mo> + <mfrac> + <mrow> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <mrow> + <mi>T</mi> + <mo></mo> + <mn>1</mn> + </mrow> + <mo>-</mo> + <mrow> + <mi>T</mi> + <mo></mo> + <mn>0</mn> + </mrow> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + <mo>+</mo> + <mrow> + <mo stretchy="false">(</mo> + <mrow> + <mrow> + <mi>T</mi> + <mo></mo> + <mn>2</mn> + </mrow> + <mo>-</mo> + <mrow> + <mi>T</mi> + <mo></mo> + <mn>3</mn> + </mrow> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + </mrow> + <mn>2</mn> + </mfrac> +</mrow> +</math> +</li> +<li>A partir de los 128 ms el desfase va ajustándose cada 17 minutos.</li> +</ol> +<p>Cuando dos dispositivos se sincronizan entre ellos se genera un desfase de tiempo entre ambos, ya que la precisión se establece en unos 128 ms. La sincronización en cadena de múltiples dispositivos resulta inexacta a partir de la decimosexta vez debido al desfase acumulado cercano a los dos segundos (16 x 0,128=2,048 seg).</p> +<p>Una ventaja que presenta este protocolo es la posibilidad de implementar cifrado para tener una conexión segura entre servidor y cliente, y así asegurarse de la autenticidad de la fuente.</p> +<p>Comprobar el estado de NTP en la máquina es sencillo utilizando el programa ntpdq, que monitoriza las operaciones del demonio NTP (ntpd) y determina su rendimiento. Para imprimir la lista de los pares conocidos por el servidor y ver su estado use el parámetro -p y para mostrar las direcciones de host en formato numérico de cuatro puntos en lugar de convertirlas a los nombres de host canónicos use -n, así:</p> +<pre><code>$ ntpq -p +remote refid st t when poll reach delay offset jitter +============================================================================== +ns4.turbodns.co 94.130.184.193 3 u 2 64 1 47.387 -129744 0.000 +190.pool90-165- 150.214.94.5 2 u 4 64 1 22.167 -129743 0.000 +rs-project.org 185.102.185.67 3 u 1 64 1 86.338 -129735 0.000 +time.cloudflare 10.89.8.6 3 u 4 64 1 19.047 -129744 0.000 + + +$ ntpq -pn +remote refid st t when poll reach delay offset jitter +============================================================================== +81.21.65.169 94.130.184.193 3 u 10 64 1 47.387 -129744 0.000 +90.165.120.190 150.214.94.5 2 u 12 64 1 22.167 -129743 0.000 +213.231.2.124 185.102.185.67 3 u 9 64 1 86.338 -129735 0.000 +162.159.200.123 10.89.8.6 3 u 12 64 1 19.047 -129744 0.000</code></pre> +<p>Otra fuente fiable es:</p> +<pre><code>$ ntpq -c rv +associd=0 status=c018 leap_alarm, sync_unspec, 1 event, no_sys_peer, +version="ntpd 4.2.8p15@1.3728-o Wed Jul 1 17:02:17 UTC 2020 (1)", +processor="x86_64", system="Linux/5.15.5-arch1-1", leap=11, stratum=16, +precision=-24, rootdelay=0.000, rootdisp=2.070, refid=STEP, +reftime=(no time), +clock=e554ba53.4a2d4ec5 Fri, Dec 3 2021 16:46:27.289, peer=0, tc=6, +mintc=3, offset=+0.000000, frequency=+0.000, sys_jitter=0.000060, +clk_jitter=0.000, clk_wander=0.000</code></pre> +<p>Donde debe buscar el código leap de tal forma que:</p> +<pre><code>Code Message Description +----------------------------------------------------------------------- +0 leap_none normal synchronized state +1 leap_add_sec insert second after 23:59:59 of the current day +2 leap_del_sec delete second 23:59:59 of the current day +3 leap_alarm never synchronized</code></pre> +<p>Sincronizar manualmente el reloj del sistema con NTP -omitiendo las desviaciones grandes entre UTC local y UTC de red- mediante ntpd y después pasar el horario UTC obtenido al reloj hardware del clock, es tal que:</p> +<pre><code># ntpd -qg +[sudo] password for balon: + 9 Dec 09:25:05 ntpd[3196]: ntpd 4.2.8p15@1.3728-o Wed Jul 1 17:02:17 UTC 2020 (1): Starting + 9 Dec 09:25:05 ntpd[3196]: Command line: ntpd -qg + 9 Dec 09:25:05 ntpd[3196]: ---------------------------------------------------- + 9 Dec 09:25:05 ntpd[3196]: ntp-4 is maintained by Network Time Foundation, + 9 Dec 09:25:05 ntpd[3196]: Inc. (NTF), a non-profit 501(c)(3) public-benefit + 9 Dec 09:25:05 ntpd[3196]: corporation. Support and training for ntp-4 are + 9 Dec 09:25:05 ntpd[3196]: available at https://www.nwtime.org/support + 9 Dec 09:25:05 ntpd[3196]: ---------------------------------------------------- + 9 Dec 09:25:05 ntpd[3196]: proto: precision = 0.186 usec (-22) + 9 Dec 09:25:05 ntpd[3196]: basedate set to 2020-06-19 + 9 Dec 09:25:05 ntpd[3196]: gps base set to 2020-06-21 (week 2111) + 9 Dec 09:25:05 ntpd[3196]: Listen and drop on 0 v6wildcard [::]:123 + 9 Dec 09:25:05 ntpd[3196]: Listen and drop on 1 v4wildcard 0.0.0.0:123 + 9 Dec 09:25:05 ntpd[3196]: Listen normally on 2 lo 127.0.0.1:123 + 9 Dec 09:25:05 ntpd[3196]: Listen normally on 3 wlo1 192.168.0.143:123 + 9 Dec 09:25:05 ntpd[3196]: Listen normally on 4 tun0 172.16.0.75:123 + 9 Dec 09:25:05 ntpd[3196]: Listen normally on 5 lo [::1]:123 + 9 Dec 09:25:05 ntpd[3196]: Listen normally on 6 wlo1 [fdd9:cbf6:173c::ced]:123 + 9 Dec 09:25:05 ntpd[3196]: Listen normally on 7 wlo1 [fdd9:cbf6:173c:0:51f5:b559:1c03:c0b2]:123 + 9 Dec 09:25:05 ntpd[3196]: Listen normally on 8 wlo1 [fe80::3b09:cd24:2c89:1e1c%3]:123 + 9 Dec 09:25:05 ntpd[3196]: Listen normally on 9 tun0 [fe80::1180:2123:b7da:b824%4]:123 + 9 Dec 09:25:05 ntpd[3196]: Listening on routing socket on fd #26 for interface updates + 9 Dec 09:25:00 ntpd[3196]: ntpd: time set -12.974225 s +ntpd: time set -12.974225s + +# hwclock --systohc</code></pre> +</body> +</html> +\ No newline at end of file diff --git a/openvpn/index.html b/openvpn/index.html @@ -0,0 +1,484 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Construcción de servidor OpenVPN propio</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Construcción de servidor OpenVPN propio</p> +<p class="date">2 de abril de 2016 • fjbalon</p> +</header> +<p>Antes de realizar cualquier comprobación es necesario tener claros unos conceptos teóricos referentes a las interfaces de redes virtuales TUN y TAP, interfaces de red virtuales a nivel de kernel.</p> +<p>Aunque TUN y TAP tienen el mismo propósito de «tunneling» divergen en su funcionamiento técnico. TUN simula un dispositivo de capa de red y opera en la capa 3 del modelo OSI transportando paquetes IP mientras que TAP simula un dispositivo en la capa de enlace y opera en la capa 2 del modelo OSI, creando un puente (bridge) de red.</p> +<p>Los paquetes enviados por un sistema operativo a través de un dispositivo TUN/TAP son entregados a un programa de espacio de usuario que se conecta al dispositivo. Un programa de espacio de usuario también puede pasar paquetes en un dispositivo TUN/TAP. En este caso el dispositivo TUN/TAP inyecta estos paquetes a la pila de red del sistema operativo simulando así su recepción desde una fuente externa.</p> +<p>En el caso de sistemas Linux, el soporte a TUN puede habilitarse de forma nativa en el kernel desde la versión <a href="https://github.com/torvalds/linux/blob/master/Documentation/networking/tuntap.txt">2.1.60</a>. Debemos pues, comprobar si el kernel de nuestro servidor tiene habilitado este soporte, ya que al utilizar un servicio VPS algunas capas de virtualización vServers y OpenVZ requieren que TUN esté habilitado en la máquina host y podría ser necesario contactar con el administrador o proveedor del servicio para ser habilitado y así poder continuar. Debemos asegurar pues que el módulo CONFIG\_TUN está habilitado en el kernel, esto lo podemos ver rápidamente con la siguiente línea de comandos:</p> + +<pre><code>test ! -c /dev/net/tun && echo openvpn requires tun support || echo tun is available</code></pre> +<p>Entonces, para OpenVPN debemos crear:</p> +<ul> +<li>Una clave privada y un certificado para la autoridad de certificación (CA) de firma.</li> +<li>Una clave privada y un certificado firmado para el servidor.</li> +<li>Una clave privada y un certificado firmado para cada cliente.</li> +<li>Un grupo <i>Diffie-Hellman</i> para el servidor.</li> +</ul> +<p>Descarga de <emb>easy-rsa</emb>:</p> + +<pre><code>wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz +tar xvf EasyRSA-unix-v3.0.6.tgz +cd EasyRSA-v3.0.6/</code></pre> +<p>En el directorio <emb>easy-rsa</emb> crearemos el subderectorio <emb>vars</emb>:</p> + <pre><code>cp vars.example vars</code></pre> +<p>Con el contenido:</p> + +<pre><code># vars +set_var EASYRSA_REQ_COUNTRY "AR" +set_var EASYRSA_REQ_PROVINCE "Arrakis" +set_var EASYRSA_REQ_CITY "Arrakeen" +set_var EASYRSA_REQ_ORG "Dune" +set_var EASYRSA_REQ_EMAIL "paul_muaddib@atreides" +set_var EASYRSA_REQ_OU "arrakis"</code></pre> +<p>Posteriormente, realizaremos las distintas acciones de inicialización y generación de claves RSA y certificados para servidor y clientes.</p> + +<pre><code>./easyrsa init-pki # Inicialización del entorno PKI de EasyRSA +./easyrsa gen-dh # Generación de parámetros de Diffie-Hellman +./easyrsa build-ca nopass # RSA key and CA certificate + + # Clave RSA y certificado de servidor (arrakis) +./easyrsa gen-req arrakis nopass +./easyrsa sign-req server arrakis + + # Clave RSA y cliente de servidor (oldscizor) +./easyrsa gen-req oldscizor nopass +./easyrsa sign-req client oldscizor + +openvpn --genkey --secret ta.key # Generación de clave TLS</code></pre> + + <h1>Distribución de claves</h1> +<p>En este punto ya tenemos estos archivos generados y listos para usar:</p> +<ul> +<li>pki/dh.pem (para el servidor arrakis)</li> + <pre><code>-----BEGIN DH PARAMETERS----- +MIIBCAKCAQEApjAQiuMycSId2FAZ4NE0XV7df7dr7dpBdnknV7Qlm4j8U2P5RAIM +XRGkvcNotsMU+7KlNGDpb3IpUwI7PqyWDXqMbDxnSD2dQEIhUWKNGf7M44HOPlRZ +68nv0mtMjKVFTs6dR54Ls1Vtn8hGRtYR37w7+ZGUDHj09pZbu6H0DMbgV8xa3w40 +rAqLntOsWRfCmnQFUSo5WsKMyZo6muYuWaAk6CCezB9s4hYHj1rCEktyc+bzYNUl +bOXvqGKQpLSGTSlxD4jpm4JQkmy8YZbhzs2c9SDeJAbCEg6d6s+uPs5uPF6Db4Ig +yR0TYXnzxhrduR3913F8ObnH5RpS/1aj2wIBAg== +-----END DH PARAMETERS----- +</code></pre> +<li>pki/ca.crt (para el servidor arrakis y sus clientes)</li> + <pre><code>-----BEGIN CERTIFICATE----- +MIIDPzCCAiegAwIBAgIUUsznqWLj39zqrv/7zzjKxXGOy24wDQYJKoZIhvcNAQEL +BQAwEjEQMA4GA1UEAwwHYm9ycmFtZTAeFw0yMTExMTkyMjU4MzNaFw0zMTExMTcy +MjU4MzNaMBIxEDAOBgNVBAMMB2JvcnJhbWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDUKxAELgW2HIfcR1XUmmnbMm+5zuP9Vr8EJK48QAA4e2fxkKgT +bKeAp9Qvf70vXwZSHy1R6GB4cgL8WTQK+MlWkbpSqAOQnDA+00k4PLWYgAH1igKz +aC2DAo/vKGquTNw8s+6iXj6+mD9qoCNI7EQdhhLDVlpRZuTY0XVqLYe/b59RTZgD +JsDIrZBAbdmekJvAxZS2WLTPR3OqMQee3bX83mMGZWvEB2FBoIGFqTFGeKmoBWNa +8jGqKO79Ctu70NhZmYcWo9jjMS7u8IumgbXWnGUs9Ls6Az59uqBEzW/nNjicZedm +EdwRBZwjvWC4Jd00ycJXgAoZraVAL+l2IsEVAgMBAAGjgYwwgYkwHQYDVR0OBBYE +FK/VNL2AA5kYY5iIJdBRhq5gl9H4ME0GA1UdIwRGMESAFK/VNL2AA5kYY5iIJdBR +hq5gl9H4oRakFDASMRAwDgYDVQQDDAdib3JyYW1lghRSzOepYuPf3Oqu//vPOMrF +cY7LbjAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AQEAd9h22YXkgNrmzYOSVoE3oL8VoFZ7PwWvZ5FOPL9GjzO8YIRjCEO+LRVCFawX +qfIMZMN6usG05TNnHHPMj0bLs24wE3TQYCK4hJazH+sZQVUqr8nsU2Z4N3TYBAgq +7DMZrBI6I+LKk1BWYv7z3idYA+cWDY9b3b8bDbezugp9k+truAke0U8X7vSeiVlV +Gdm9510W43YpnTuXALkl/S1WDwQWl8035ZfMdcukdUWjM/TD2euwdd29Aj4BKpv9 +tk9fpoxef/Ju0YbHRcgtXJc9VHodc4cq+zCSGq1j7eJ27hFGn4rIOAF6eTFT/lK7 +QbrEG1umBi/qSosL9vtOKV85aQ== +-----END CERTIFICATE----- +</code></pre> +<li>pki/private/ca.key (para firmar en la máquina de la CA)</li> + <pre><code>-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA1CsQBC4FthyH3EdV1Jpp2zJvuc7j/Va/BCSuPEAAOHtn8ZCo +E2yngKfUL3+9L18GUh8tUehgeHIC/Fk0CvjJVpG6UqgDkJwwPtNJODy1mIAB9YoC +s2gtgwKP7yhqrkzcPLPuol4+vpg/aqAjSOxEHYYSw1ZaUWbk2NF1ai2Hv2+fUU2Y +AybAyK2QQG3ZnpCbwMWUtli0z0dzqjEHnt21/N5jBmVrxAdhQaCBhakxRnipqAVj +WvIxqiju/Qrbu9DYWZmHFqPY4zEu7vCLpoG11pxlLPS7OgM+fbqgRM1v5zY4nGXn +ZhHcEQWcI71guCXdNMnCV4AKGa2lQC/pdiLBFQIDAQABAoIBAGxckhGQb9pTOBCJ +Xoz3UJljaSy9PjRl2amEEnkzNumiHbSC7VT+aY6MKRMZasaHAfNvePYceSkLEftQ +lAQGjM5qH3+X0DpLi1iLERpn51e8CUQe+MIosxX2eQzs14+uMc3PGFJVUDaIC9up +blwQT7nEgFDECd0JcFhMomtYVbyvl8qvJvGAAy4K38A2lGrb9Ju7QXcLvj54ss6n +zCF0bK3XGfjsujsnpb0ZvGNDG5mUyrJinVFMvyn7jI2W2JsA3sZ6lgJ2W7pN6kwy +IgiNqoms46i3jNUb2SGSFAf1qXJmkUOxfmacbRV96XwLYE1xY97LcS1LPk5jzV3a +KTmeQQECgYEA7ykfmrKdYQql467lMwCxFYbixLQoout2G6IxDwPLS0M28TkFID5h ++puczQD6dwImk4yykJeZQ2d16FHbhZwzRw7UYDevt5Mr+l4i5eoa1z9vqZlOi0/+ +FBtIh4GDl3isWAA6KUf1zcu9aKQInALnYlnYgxeNlklHCRqwRWmD2OcCgYEA4xtm +Y9tAhwnK32PXTMkRNgOtPEoKdifs3hfzCigJ/NGcIGzliGcJ+6j0lLmM9kEDfdKI +i+FfqFXUYiHb1QINN6kL6LqjImiqXvN2Km066ijcmaMaw6QzzWcCku9Ekp5isM6R +DL154tB0wIQyWVI7p8OTJN+L0RwCiwB8KQmgaqMCgYBFScnBPNxBoB8djq8SjrG/ +RdvvFy7qvIL0UJIcAoJkZK3HRzjH9arXOzw7XHwz/GiGuO2G3JTnpVLQot6RoAZv +IMnAsoFzEu1b1OgRajiqgdNs9GCAFgXLd3gU4h3oxWpQ+IfhK9r3634NkfB4mpLE +uLj0id9YWhR9e8Dz6zTqowKBgQCrN+AUzpqydDaH/py2HiyknVcAyg1jESyqMEIi +WRdWjKz5YUAXex9ypOloKw/UJCW+uXgKhWp53eOV7FLxH2/Zk9APsI4HBgPUPBbN +W7Z8DTxrdCVcdDI93Dh7kHoRU+mxxLpkcYEv99rdvYy7/JxPGcqYlRSzHTvpkf8J +bWGMowKBgQDr86QJkIx614U5uXh7cf+b7fLL9cfdtt2Niyhlvjn9Qb+F9ohhW4qO +mWLiGcNTzCcC/kC/Ao+aWeHwwEdW1OXOIMmqW1gEhTD4s1/TgszpOWStBiNsyABz +L3FdzCbX6aERkx/vZHJ7XWuvfcEMc+/36H7JeRfZzB1ZPyK8d2Jrww== +-----END RSA PRIVATE KEY----- +</code></pre> +<li>pki/private/arrakis.key (para el servidor arrakis)</li> + <pre><code>-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDKePacVhI1vkgF +wpHFLe9FfnNbopgscMA2w2aAsPvXOA2ATwvTLFxXccqtfx3A4BrWD+LmOU6WXU41 +3uofi15Wq2RCNb1q5exHnFHeHol15UOjpHvarZYAmYuAJ47HnSu3QXwuLeNuvE5x +muJLisP2hBh2bggIxm8aGapbjJdyPi4ri6WRwFScIcxQLmOethzDRbVUemGXbwhK +UQLhYtmcx0Y0KXiuzqECZgh7S6M2+vSEzDYTHT+fXa+N/0QGvPYQm2cZjcHUp5hs +gPCAk4/T4A76kaAowJSB/rHFsyPXzjHpiwBqBZL805OLJhSo1w9iXdaUCCpfZRgE +BaJ+KVvFAgMBAAECggEBAL/G4XdlAyyKhfeGusG0Z41AX42tLUvyo+17GUzN1kyd +GBSvSnkD7Jca/illXM5CtsiJFZaRM0GzMRBPixzDymB3SKh59GcbTrjpdJXaAMN9 +m5qVgoa3onwA86Q4U8H4ud6DFVc8Oc66Z+atGKkKz+BgcDdEszF0muly4+yA9zXJ +w6XMqBYUndbPulE+pljegmSEW2CJgGh6dE81uv3/d+B3svOBTcV0DpMXXyN7+l/u +UQ91GGu21A7zOyt1ta2eCu9ixDoPFNfB5aFSOpxIlwpx0FhWZAjXC/cRMQu7Czbh +Y3oBimX2LtQOEeqQ9Q1PtU0mBnH+cL0g8qjMRy92KkUCgYEA/xqCq/jp2gfazEf/ +PsnTouHk0fou+Mzn9tm+nl7wp9kvjlbfmEy4bqru+7woVCkIxSTnTj3wjC5jhzH7 +Cj3csCY9HIC2YYRo/bdslQFnyh/Wp7OKr1oM8tjC+mACHmTCCASeYHfJrx9av0DO +dRgOTFFqgqvFxqV2992DbsBrRLsCgYEAyy8bOGDgMgXs5tBFQBwoMBa5WFs8P+Sg +CCZPXins+uTWm7AnbFAdZakgHS+Hriv6hRCc54hON82sD2XbYn7yC6MKQ/7C+7VE +qCWOHa740YGSSAMwDC6PhJ58QMpBhAAHknY8I4i9D2S3XtjufZpbbD07roERZ7+/ +EjVE0Nf0GX8CgYB8+xQCBRUtCKQdaTiYHnFdX6anaRcSNfF/cvZ8yK7GzRULe2xY +RV4megBTvL9VXDU7wPTB1H7Bbwi797SyM9SnSFSwXi78X87AXtkHt4SN9kNILiJH +/qpRX/lGiTsAgQS+wOSHBqj87zOad7mujHaU1V6FXnqq8+3xSclWvVbQeQKBgQCx +U9pw2POyFMPOKeTWb/yPA7YdK/soVDNrCWxpZTPjQEcgt5ugh0cwy2swraO/2bgZ +3Abkd2y0fTb2dVID44EBsPiroTOxFGHoUmZ295dG2cu+N7H+X8B34Q3WSe7l8lSp +ebFA3f0K6z6yc6epTUcO714gDZsQLiPnE0CM+HycpwKBgQC6Cuygg8TFFdT2Cg4K +bUmNPVRPeE/klijZCcSCfUnlAFU1Y0NIJxGnY+o+293GZRRzwyee6yeptc27AMH6 +5XLwiciqCKq6y0XBN3dRRWG4pJNFXZ/mfdHy6eTC5lgjS1oaQO5Zc3HY1/TNbZsn +RIEjfcJGNOyjQeW5QYx9zE3ebQ== +-----END PRIVATE KEY----- +</code></pre> +<li>pki/issued/arrakis.crt (para el servidor arrakis)</li> + <pre><code>Certificate: + Data: + Version: 3 (0x2) + Serial Number: + 92:05:11:0c:a7:1d:b2:3e:bb:24:93:e9:8a:82:09:d7 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=borrame + Validity + Not Before: Nov 19 22:58:59 2021 GMT + Not After : Feb 22 22:58:59 2024 GMT + Subject: CN=borrame + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:ca:78:f6:9c:56:12:35:be:48:05:c2:91:c5:2d: + ef:45:7e:73:5b:a2:98:2c:70:c0:36:c3:66:80:b0: + fb:d7:38:0d:80:4f:0b:d3:2c:5c:57:71:ca:ad:7f: + 1d:c0:e0:1a:d6:0f:e2:e6:39:4e:96:5d:4e:35:de: + ea:1f:8b:5e:56:ab:64:42:35:bd:6a:e5:ec:47:9c: + 51:de:1e:89:75:e5:43:a3:a4:7b:da:ad:96:00:99: + 8b:80:27:8e:c7:9d:2b:b7:41:7c:2e:2d:e3:6e:bc: + 4e:71:9a:e2:4b:8a:c3:f6:84:18:76:6e:08:08:c6: + 6f:1a:19:aa:5b:8c:97:72:3e:2e:2b:8b:a5:91:c0: + 54:9c:21:cc:50:2e:63:9e:b6:1c:c3:45:b5:54:7a: + 61:97:6f:08:4a:51:02:e1:62:d9:9c:c7:46:34:29: + 78:ae:ce:a1:02:66:08:7b:4b:a3:36:fa:f4:84:cc: + 36:13:1d:3f:9f:5d:af:8d:ff:44:06:bc:f6:10:9b: + 67:19:8d:c1:d4:a7:98:6c:80:f0:80:93:8f:d3:e0: + 0e:fa:91:a0:28:c0:94:81:fe:b1:c5:b3:23:d7:ce: + 31:e9:8b:00:6a:05:92:fc:d3:93:8b:26:14:a8:d7: + 0f:62:5d:d6:94:08:2a:5f:65:18:04:05:a2:7e:29: + 5b:c5 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + E0:66:B9:0A:80:55:5E:38:F8:F4:E4:48:05:03:01:91:C8:DF:31:AB + X509v3 Authority Key Identifier: + keyid:AF:D5:34:BD:80:03:99:18:63:98:88:25:D0:51:86:AE:60:97:D1:F8 + DirName:/CN=borrame + serial:52:CC:E7:A9:62:E3:DF:DC:EA:AE:FF:FB:CF:38:CA:C5:71:8E:CB:6E + + X509v3 Extended Key Usage: + TLS Web Server Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:borrame + Signature Algorithm: sha256WithRSAEncryption + 20:50:34:d1:0a:7c:21:d4:ba:ac:82:34:c2:bf:95:56:15:e3: + f1:24:b6:a1:4a:48:8a:f8:eb:12:8b:a7:58:6a:a0:77:a0:67: + 66:1a:0f:b0:b0:e0:04:ef:59:38:54:10:46:8b:35:18:c3:92: + b8:79:cb:c1:0b:96:f1:b9:81:8a:8e:00:01:07:4d:f4:b1:cf: + 7b:35:36:1d:78:c2:42:28:06:0e:9f:c9:28:1b:c7:a7:a1:d3: + 24:c0:07:d1:d4:3d:a5:8e:f2:fa:fc:87:e7:c6:54:0c:bb:48: + 14:8d:5a:cf:7c:d7:91:1d:4f:a1:bf:8e:a9:3f:45:f2:98:b1: + 8b:cc:75:dc:b1:47:8f:1e:ca:4f:51:21:f4:c5:e3:bd:ff:e1: + 0f:b1:e2:29:35:c5:17:ef:5e:7a:3d:d0:88:af:47:4b:9e:33: + bd:20:15:56:a8:09:64:83:2b:ec:67:f6:4b:fd:7c:ca:80:07: + ef:8c:f8:d1:e2:64:4a:48:0d:a2:88:f1:df:9c:14:3b:83:a7: + 3f:2a:99:b4:42:76:17:23:89:24:07:ad:38:d0:7a:5b:95:bb: + 62:dc:a4:84:6a:1d:95:32:d7:ec:21:0f:62:c0:03:fe:00:c7: + db:3c:da:9e:49:2e:61:a3:54:94:86:27:48:04:35:c6:d9:c9: + 72:6f:52:28 +-----BEGIN CERTIFICATE----- +MIIDYjCCAkqgAwIBAgIRAJIFEQynHbI+uyST6YqCCdcwDQYJKoZIhvcNAQELBQAw +EjEQMA4GA1UEAwwHYm9ycmFtZTAeFw0yMTExMTkyMjU4NTlaFw0yNDAyMjIyMjU4 +NTlaMBIxEDAOBgNVBAMMB2JvcnJhbWUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDKePacVhI1vkgFwpHFLe9FfnNbopgscMA2w2aAsPvXOA2ATwvTLFxX +ccqtfx3A4BrWD+LmOU6WXU413uofi15Wq2RCNb1q5exHnFHeHol15UOjpHvarZYA +mYuAJ47HnSu3QXwuLeNuvE5xmuJLisP2hBh2bggIxm8aGapbjJdyPi4ri6WRwFSc +IcxQLmOethzDRbVUemGXbwhKUQLhYtmcx0Y0KXiuzqECZgh7S6M2+vSEzDYTHT+f +Xa+N/0QGvPYQm2cZjcHUp5hsgPCAk4/T4A76kaAowJSB/rHFsyPXzjHpiwBqBZL8 +05OLJhSo1w9iXdaUCCpfZRgEBaJ+KVvFAgMBAAGjgbIwga8wCQYDVR0TBAIwADAd +BgNVHQ4EFgQU4Ga5CoBVXjj49ORIBQMBkcjfMaswTQYDVR0jBEYwRIAUr9U0vYAD +mRhjmIgl0FGGrmCX0fihFqQUMBIxEDAOBgNVBAMMB2JvcnJhbWWCFFLM56li49/c +6q7/+884ysVxjstuMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAsGA1UdDwQEAwIFoDAS +BgNVHREECzAJggdib3JyYW1lMA0GCSqGSIb3DQEBCwUAA4IBAQAgUDTRCnwh1Lqs +gjTCv5VWFePxJLahSkiK+OsSi6dYaqB3oGdmGg+wsOAE71k4VBBGizUYw5K4ecvB +C5bxuYGKjgABB030sc97NTYdeMJCKAYOn8koG8enodMkwAfR1D2ljvL6/IfnxlQM +u0gUjVrPfNeRHU+hv46pP0XymLGLzHXcsUePHspPUSH0xeO9/+EPseIpNcUX7156 +PdCIr0dLnjO9IBVWqAlkgyvsZ/ZL/XzKgAfvjPjR4mRKSA2iiPHfnBQ7g6c/Kpm0 +QnYXI4kkB6040Hpblbti3KSEah2VMtfsIQ9iwAP+AMfbPNqeSS5ho1SUhidIBDXG +2clyb1Io +-----END CERTIFICATE----- +</code></pre> +<li>pki/private/oldscizor.key (para el cliente oldscizor)</li> + <pre><code>-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4jweH+SP7WRcl +/0CLgn/NVoWmokRmgqFa+pURpt9KzZvXXSPRE2AhTO5YuX//NPd17QFJTMpvowC4 +AqwBTvVkFI9LpUNVNvIoVmMGy2rleUdwiZra2k2Q/Nyk6rbWSbYKelNwl4BzR671 +217f5tuoXsPsDk4Qd7f3GP4peFBRFXy4tbHXIaKpOIHnvzFBlOPJ5g+w3fdH5f3c +6mMEvPqBgpBRcBfntZKWLw0IyMbetVA7Tvp6XhpOjvR7P/64lcmTJiu9/h10CBcO +TX1cvh3P9K9NOrBUl1UuMXwjuKCWoGVebZo3evD2OFRNv7XYcjpSQCDpq2l9YvRH +WCbPdfhZAgMBAAECggEBAJZsBQBfIGOQ9lwC0fGjGFUc6uuon8VJPQfw6qSrdJz8 +PcNnZ3TVrOkXUcBA2MEBw5t64yyCCRC6MzDHBLhASaMbWruV4+5FTVNxLV7xVpvX +oFFp5ivv935vicpkf0biZxvdHbrL0GalC0XZWVd2SpvNOTRhaGDloqwj06urIxMh +4ohf5jPr38ly2yaoAygHEXa4xRc0JUed4n+wgdCAaUU//+9LwSaDl2xa3GX/6B4Y +NLpzYVGysgqR+CP7T4OFLMdwYuRFWSWkfwTAZL8840W9OMPOZ1j1P+q8CNnHZAVT +86LvEI6K8aD/UOwUnujMkUZoIUY5Pq77bBdTrcol1oECgYEA8/dHWXi/VVJpLhd1 +g2QEbj5p5xbYOzpRv84j0qcLXMwtHajLpeCZtjawTmIsUwoJuigJxCLpRUm9Y9Iq +qqzmfTb5Jghadg8SuiWDb0ih8XPZtnt3Ayo3NKWqeDri3Rw8MK9gWpRL3SQCoHbK +D4RZR5tW+1HeqDat9gVtaGUMqWkCgYEAwamTbZO7EYGHUJXw8GvFZEmZYpkHeNUS +o4LEgWYCDC5I7ba11zRQf7nyFNBfeFcznf/K3wEsjOl2SRKezubK1xwFQE+gVxQ5 +FbkGDUtY45lxuygpLfFOcVjktEaKO3HNmLnyaEa7Jta0n0SG25oKDVoruSXReehY +Aqr+DE/GiXECgYEA3zZuB4ScurnuFgfMsux9yUg9qPuT14ziYvV+fSvtD3iYBrz7 +psc6nCapZO4Z09gpUjNzzAqNF6ICMCSIeSQ8tm/nwU5/RelAnyPXf6ga00nF9lo8 +Z57mZ7rzn5FxJBDDWV/8bqOkTa624I4PDedvsD6GdOdRKuLsg14v3gYmcZECgYB3 +La9PkMlfhZHLUuraWcg45l4hYkFJ5/43Z8McSrVZ36X7vCP9kvEzGTBUBMOr4CYg +xoiHYkaTVRz47R+T/k23wUOuBxKKZCSZLKr/xW2nawelgJqO7mAyutzL4FkzKd63 +bT8zUsvbo+e118sSG6KyAtrDbvWRix2WTrpWw0VP0QKBgGTiq7IoHrR6FURR3DLR +xAhMnXgOzLtENgCWxcRoapsaM1BaAQBnjCys06MoG1BX3qQAzIy+BTYMAUHhYoRn +/lZdhJGS6OGfzdyGTyHzHzfTr2Jknisksww3LOYkYdpfco+BlWF9CV0ST1jj9v00 +AlVH0P5K3lFKD9q5/8oIcWDm +-----END PRIVATE KEY----- +</code></pre> +<li>pki/issued/oldscizor.crt (para el cliente oldscizor)</li> + <pre><code>Certificate: + Data: + Version: 3 (0x2) + Serial Number: + e4:e7:35:27:0e:39:9b:a0:0a:38:c0:3e:89:a9:a2:44 + Signature Algorithm: sha256WithRSAEncryption + Issuer: CN=borrame + Validity + Not Before: Nov 19 22:59:14 2021 GMT + Not After : Feb 22 22:59:14 2024 GMT + Subject: CN=oldscizor + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:b8:8f:07:87:f9:23:fb:59:17:25:ff:40:8b:82: + 7f:cd:56:85:a6:a2:44:66:82:a1:5a:fa:95:11:a6: + df:4a:cd:9b:d7:5d:23:d1:13:60:21:4c:ee:58:b9: + 7f:ff:34:f7:75:ed:01:49:4c:ca:6f:a3:00:b8:02: + ac:01:4e:f5:64:14:8f:4b:a5:43:55:36:f2:28:56: + 63:06:cb:6a:e5:79:47:70:89:9a:da:da:4d:90:fc: + dc:a4:ea:b6:d6:49:b6:0a:7a:53:70:97:80:73:47: + ae:f5:db:5e:df:e6:db:a8:5e:c3:ec:0e:4e:10:77: + b7:f7:18:fe:29:78:50:51:15:7c:b8:b5:b1:d7:21: + a2:a9:38:81:e7:bf:31:41:94:e3:c9:e6:0f:b0:dd: + f7:47:e5:fd:dc:ea:63:04:bc:fa:81:82:90:51:70: + 17:e7:b5:92:96:2f:0d:08:c8:c6:de:b5:50:3b:4e: + fa:7a:5e:1a:4e:8e:f4:7b:3f:fe:b8:95:c9:93:26: + 2b:bd:fe:1d:74:08:17:0e:4d:7d:5c:be:1d:cf:f4: + af:4d:3a:b0:54:97:55:2e:31:7c:23:b8:a0:96:a0: + 65:5e:6d:9a:37:7a:f0:f6:38:54:4d:bf:b5:d8:72: + 3a:52:40:20:e9:ab:69:7d:62:f4:47:58:26:cf:75: + f8:59 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + ED:06:85:8E:70:F2:2E:F4:46:68:AE:5D:A8:97:8D:63:84:DB:1E:3D + X509v3 Authority Key Identifier: + keyid:AF:D5:34:BD:80:03:99:18:63:98:88:25:D0:51:86:AE:60:97:D1:F8 + DirName:/CN=borrame + serial:52:CC:E7:A9:62:E3:DF:DC:EA:AE:FF:FB:CF:38:CA:C5:71:8E:CB:6E + + X509v3 Extended Key Usage: + TLS Web Client Authentication + X509v3 Key Usage: + Digital Signature + Signature Algorithm: sha256WithRSAEncryption + af:30:c2:94:52:f0:01:0f:3b:e9:93:47:b0:bf:9e:9a:d5:e0: + 07:21:af:b8:3f:1e:80:b1:37:bf:89:f6:d3:9d:07:da:27:9b: + ce:3c:e6:54:14:a2:7b:8f:4c:43:67:b3:1c:12:a9:4e:5f:e3: + 6f:f6:a6:48:94:9a:f6:a4:75:d6:31:0e:2b:ab:18:7c:54:c1: + ae:82:09:d6:1f:2d:2d:c3:3a:1d:5b:7a:92:b7:13:16:40:da: + 69:3a:47:52:b0:cb:f5:53:71:ba:53:a6:3e:77:33:04:d7:ae: + d7:8a:09:56:23:6b:2c:2c:29:a6:eb:b9:54:79:10:40:4b:d4: + db:71:ed:fd:5d:cc:9f:bc:fd:9a:dc:58:ed:de:c2:62:9d:bc: + fc:3e:13:7e:9b:f5:8c:02:cf:aa:30:e4:86:68:7b:f0:0a:83: + 18:03:af:50:c2:ed:8c:c0:63:cf:48:38:e1:c5:10:a2:06:40: + 09:d9:63:31:b8:0f:c4:b6:2d:8f:0b:ee:b8:29:a5:e5:30:2e: + 48:63:f6:20:27:38:3c:22:e3:52:7b:bf:29:50:82:3e:b1:b6: + 80:bd:3b:f0:a3:ba:1b:4f:22:40:07:e0:4c:89:13:68:32:b0: + d0:a8:32:6b:3a:f5:1d:10:8d:26:34:10:c7:5d:ec:1a:5a:6d: + c3:e8:0e:db +-----BEGIN CERTIFICATE----- +MIIDUDCCAjigAwIBAgIRAOTnNScOOZugCjjAPompokQwDQYJKoZIhvcNAQELBQAw +EjEQMA4GA1UEAwwHYm9ycmFtZTAeFw0yMTExMTkyMjU5MTRaFw0yNDAyMjIyMjU5 +MTRaMBQxEjAQBgNVBAMMCW9sZHNjaXpvcjCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBALiPB4f5I/tZFyX/QIuCf81WhaaiRGaCoVr6lRGm30rNm9ddI9ET +YCFM7li5f/8093XtAUlMym+jALgCrAFO9WQUj0ulQ1U28ihWYwbLauV5R3CJmtra +TZD83KTqttZJtgp6U3CXgHNHrvXbXt/m26hew+wOThB3t/cY/il4UFEVfLi1sdch +oqk4gee/MUGU48nmD7Dd90fl/dzqYwS8+oGCkFFwF+e1kpYvDQjIxt61UDtO+npe +Gk6O9Hs//riVyZMmK73+HXQIFw5NfVy+Hc/0r006sFSXVS4xfCO4oJagZV5tmjd6 +8PY4VE2/tdhyOlJAIOmraX1i9EdYJs91+FkCAwEAAaOBnjCBmzAJBgNVHRMEAjAA +MB0GA1UdDgQWBBTtBoWOcPIu9EZorl2ol41jhNsePTBNBgNVHSMERjBEgBSv1TS9 +gAOZGGOYiCXQUYauYJfR+KEWpBQwEjEQMA4GA1UEAwwHYm9ycmFtZYIUUsznqWLj +39zqrv/7zzjKxXGOy24wEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgeA +MA0GCSqGSIb3DQEBCwUAA4IBAQCvMMKUUvABDzvpk0ewv56a1eAHIa+4Px6AsTe/ +ifbTnQfaJ5vOPOZUFKJ7j0xDZ7McEqlOX+Nv9qZIlJr2pHXWMQ4rqxh8VMGuggnW +Hy0twzodW3qStxMWQNppOkdSsMv1U3G6U6Y+dzME167XiglWI2ssLCmm67lUeRBA +S9Tbce39XcyfvP2a3Fjt3sJinbz8PhN+m/WMAs+qMOSGaHvwCoMYA69Qwu2MwGPP +SDjhxRCiBkAJ2WMxuA/Eti2PC+64KaXlMC5IY/YgJzg8IuNSe78pUII+sbaAvTvw +o7obTyJAB+BMiRNoMrDQqDJrOvUdEI0mNBDHXewaWm3D6A7b +-----END CERTIFICATE----- +</code></pre> +<li>ta.key (para el servidor arrakis y sus clientes)</li> + <pre><code>-----BEGIN OpenVPN Static key V1----- +c7a3b92eea6eaf2392b8610c05e9fe87 +4b69bdaa948b136098d953681e3bc71b +c33a32c2936952af6ad02faf64148da9 +40f4bbfb5d8e97c0404702c618af2668 +8e7adf84d37343ce5ab6d13e4e5a7dd3 +5351c90db4c04dd6794088625cbb7238 +8fb03663b5cffc00626d7acc00a44f3b +157edd5f98c3e7b04f8815a98801d34e +e38c2fb39608d8658d528a65879326f0 +8c501f46b8cfa3e6520e5e116263fad9 +1e28fe1c4f949d8117b190f800e70614 +7d5cfc6c8312e566971f83115087497d +f23803399d963ad9653e56845a610d4c +886fba216f71ae6d87fc3b07c2bd288f +4eb81dff04ffd2dede81993cb29bd470 +3e0a42728ae814f08694d4be46bdbd74 +-----END OpenVPN Static key V1----- +</code></pre> +</ul> +<p>Enviando claves al servidor (en este caso es la misma máquina):</p> + +<pre><code>cp pki/dh.pem /etc/openvpn/server/ +cp pki/ca.crt /etc/openvpn/server/ +cp pki/private/arrakis.key /etc/openvpn/server/ +cp pki/issued/arrakis.crt /etc/openvpn/server/ +cp ta.key /etc/openvpn/server/</code></pre> +<p>Enviando claves al cliente oldscizor (mediante SCP):</p> + +<pre><code>scp pki/private/oldscizor.key oldscizor.es:/tmp +scp pki/issued/oldscizor.crt oldscizor.es:/tmp +scp pki/ca.crt oldscizor.es:/tmp +scp ta.key oldscizor.es:/tmp</code></pre> +<p>Entonces, en el cliente oldscizor, los movemos a su localización final:</p> + +<pre><code>sudo mv /tmp/oldscizor.key /etc/openvpn +sudo mv /tmp/oldscizor.crt /etc/openvpn +sudo mv /tmp/ca.crt /etc/openvpn +sudo mv /tmp/ta.key /etc/openvpn</code></pre> + + <h1>Configuración de servidor arrakis</h1> + +<pre><code>port 1194 +proto udp +dev tun +ca /etc/openvpn/server/ca.crt +cert /etc/openvpn/server/arrakis.crt +key /etc/openvpn/server/arrakis.key +dh /etc/openvpn/server/dh.pem +server 10.10.0.0 255.255.255.0 +ifconfig-pool-persist ipp.code +keepalive 10 120 +tls-auth ta.key 0 +cipher AES-256-CBC +persist-key +persist-tun +status openvpn-status.log +log /var/log/openvpn +verb 3 +explicit-exit-notify 1</code></pre> + + <h1>Configuración de cliente oldscizor</h1> + +<pre><code>client +dev tun +proto udp +remote arrakis 1194 +resolv-retry infinite +nobind +persist-key +persist-tun +ca /etc/openvpn/ca.crt +cert /etc/openvpn/oldscizor.crt +key /etc/openvpn/oldscizor.key +remote-cert-tls server +tls-auth /etc/openvpn/ta.key 1 +cipher AES-256-CBC +verb 3</code></pre> + + <h1>Asignación de una dirección IP fija al cliente oldscizor</h1> + +<pre><code>echo "client-config-dir ccd" >> /etc/openvpn/server/arrakis.conf +mkdir /etc/openvpn/server/ccd +echo "ifconfig-push 10.10.0.100 255.255.255.0" >> /etc/openvpn/server/ccd/oldscizor</code></pre> + + <h1>Permiso de comunicación 'client to client'</h1> + +<pre><code>echo "client-to-client" >> /etc/openvpn/server/arrakis.conf</code></pre> + + <h1>Generación de nuevo cliente maquina</h1> +<p>En el servidor arrakis:</p> + +<pre><code>./easyrsa gen-req maquina nopass +./easyrsa sign-req client maquina +cp pki/private/maquina.key /tmp +cp pki/issued/maquina.crt /tmp +cp pki/ca.crt /tmp +cp ta.key /tmp +echo "ifconfig-push 10.10.0.101 255.255.255.0" >> /etc/openvpn/server/ccd/maquina</code></pre> +<p>En el nuevo cliente:</p> + +<pre><code>scp arrakis:/tmp/maquina.key /etc/openvpn +scp arrakis:/tmp/maquina.crt /etc/openvpn +scp arrakis:/tmp/ca.crt /etc/openvpn +scp arrakis:/tmp/ta.key /etc/openvpn +echo "client +dev tun +proto udp +remote arrakis 1194 +resolv-retry infinite +nobind +persist-key +persist-tun +ca /etc/openvpn/ca.crt +cert /etc/openvpn/maquina.crt +key /etc/openvpn/maquina.key +remote-cert-tls server +tls-auth /etc/openvpn/ta.key 1 +cipher AES-256-CBC +verb 3 +auth-nocache" > /etc/openvpn/maquina.conf +chmod 700 /etc/openvpn/*</code></pre> + +</body> +</html> +\ No newline at end of file diff --git a/paganismo/index.html b/paganismo/index.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Paganismo y tradición europea</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">El paganismo nuevo contra el cristianismo en la tradición europea</p> +<p class="date">13 de diciembre de 2022 • fjbalon</p> +</header> +<p>Vivimos un florecimiento de una búsqueda de religiosidad identitaria europea, fruto probablemente del vacío dejado por la caída de la Cristiandad y de las consecuencias de la deriva liberal en el viejo continente. Esta pretensión espiritual pretende contrarrestar aparentemente al materialismo filosófico propio del occidente contemporáneo, también pretende enfrentarse a la propia Cristiandad, buscando renovar las costumbres paganas de la Europa pre-cristiana.</p> +<p>Sin embargo, no puedo ver en ello sino un error teológico, estético e de fundamento. Me esforzaré en estas líneas en desbrozar mi pensamiento sobre estas nuevas formas religiosas, que consisten en una concepción realmente materialista, lo que constituye ya una ruptura entre el paganismo antiguo y el paganismo nuevo (o neopaganismo), que observa al primero desde un prisma antropocéntrico e ilustrado. Los paganos modernos defienden el retorno a un estado anterior a la concebida como una ruptura paradigmática y cultural que supuso, sostienen, el cristianismo en Europa. Buscan entonces, de una forma indeterminada, sentar un nuevo vínculo cultural entre el mundo moderno y la antigüedad europea, a menudo incluso importando creencias y prácticas orientales sustitutivas.</p> +<p>¿Es entonces el cristianismo una ruptura con la tradición europea? Un cristiano así lo podría defender, pues entendería la irrupción de la Salvación y el Plan de Dios sobre Europa como una ruptura. Sin embargo, muchos cristianos modernos lo ven como una ruptura cultural, al igual que los paganos modernos, ven en ésta la pérdida del alma europea y de la identidad de los pueblos, que fue sustituida, defienden, por una religión del desierto, cambiando la dirección etnológica y antropológica europea.</p> +<p>Lo primero que hay que tener en cuenta, es que desde una visión cristiana, todas las grandes intervenciones de la Divina Providencia en los tiempos de la Antigua Alianza estaban orientadas y ordenadas a la intervención definitiva y plena de Dios en la historia, hacia «Aquel que había de venir». Es cierto que la Antigua Alianza se formalizó con un pueblo del desierto, sin embargo la intervención de Dios puede verse en el mundo europeo, en una preparación filosófica (griega) y formal (romana). De hecho no se observa ruptura alguna en la irrupción del cristianismo con el pensamiento pagano que, primero en Roma y después en el resto de Europa, constituye un perfeccionamiento y desarrollo (sin precedentes históricos) de su cosmología y teología: Todas las corrientes intelectuales se entrelazaron con el cristianismo de una forma orgánica y natural, respetando de hecho las diferencias entre los pueblos y culturas (romana, egipcia, hebrea...). La propia naturaleza de la intelectualidad cristiana es la única que ha buscado la conservación cultural, lingüística y religiosa de los ideales y principios pre-cristianos, elevándolos a la concepción de universalidad, sin la cual, por cierto, hoy día no podríamos considerar el pensamiento científico.</p> +<p>No podríamos, naturalmente, considerar esta ruptura sin descartar también toda esta tradición filosófica en su conjunto. De hecho, desde el punto de vista clásico no se concibió alejamiento ni separación alguna, sino que fue visto desde un punto de vista de transformación teológica y conservación de la tradición y folklore. Cosa que podemos poner en contraposición del verdadero cambio de paradigma perpetrado por la Revolución a finales del siglo XVIII, donde sí hubo ruptura de toda estructura, teología y antropología del la cosmovisión europea tradicional. Sin embargo, esta separación no es objeto de análisis por parte del neopaganismo, pues sus ideologías heredan directamente de ésta.</p> +<p>Aprender sobre teología y filosofía cristiana es, de hecho, introducirse en una sabiduría de milenios de aprendizaje y reflexión; a menudo sin delimitación entre el mundo cristiano y el pre-cristiano. Para muchos, el propio estudio profundo de la filosofía moderna, secular y atea le llevará, irremediablemente, al teismo, y a consecuencia, al cristianismo. Es la religión cristiana efigie de la tradición, que permite mantener un vínculo y un contacto estrecho con ella, expresada en conocimiento y sabiduría, pero también en espacio físico: ésta te permite acceder a los templos, a sacerdotes, a Sacramentos palpables. Así, la Iglesia es el único hilo conductor que existe con el mundo antiguo, y por lo tanto la única forma de comprender y estudiar la cosmovisión de las personas del pasado.</p> +<p>Y me pregunto ahora, ¿un neopagano habría visto en el mitraísmo o el hermetismo una ruptura, como así lo ha visto en el cristianismo que rechaza? ¿lo verían como una desviación radical del paganismo? ¿lo verían como una intromisión del desierto? Nótese que el hermetismo tiene un origen egipcio y el mitraísmo un origen oriental-persa. Sinceramente, no lo creo. ¿Y no es precisamente una ruptura con la tradición europea la creación de una nueva religión basada en ideologías surgidas en la Revolución?</p> +<p>Este nuevo paganismo no proviene sino de planteamientos arbitrarios, de una simplificación folclórica y de una adaptación de superficialidades del paganismo antiguo, sin filosofía ni teología, sin reflexión alguna. A menudo, dichos planteamientos provienen de foros de Internet, de particulares y gurús, que realizan encuentros para poner en común un mismo sentimiento, pero nunca en unidad, puesto que la fe neopagana es un sentimiento personal y no universal. Rara vez se encontrará un pensador neopagano que no pertenezca a este siglo, o a finales del pasado (¿se ve clara la verdadera ruptura?), que construyen, en el mejor de los casos una mala filosofía práctica; en el peor, una ideología mágica, en la que los gurús configuran sus vicios degenerados, sexuales y libertinos, apoyándose en pocas evidencias que muestran a los antiguos paganos como tales.</p> +<p>Es llamativo como los neopaganos, que reniegan del cristianismo, ven en el protestantismo una suerte de legitimidad europea. Sospecho que por su origen germánico, o quizá también por su fundamentación relativista y falta de atadura a tradición ni legitimidad.</p> +<p>De hecho, Varg Vikernes demuestra esta filiación luterana en contraposición con el cristianismo europeo y primitivo (algo caprichoso y producto de invenciones históricas). El paganismo particular de Vikernes es, de hecho, una especie de euhemerismo cientificista: no cree en dioses de la forma en que lo hicieran los paganos de la antigüedad, sino que los abstrae a una suerte de representación de conocimiento científico, reduciendo conceptos filosóficos clásicos a materia, hormonas y relaciones neuronales, compatibilizando finalmente el materialismo moderno con su neopaganismo. Lo más hilarante de su argumentación es que pretende defender que en la antigüedad existía la misma comprensión de los dioses, creyendo en ellos metafóricamente en una religión meta-irónica.</p> +<p>Partiendo sobre estas premisas, entendemos que un neopagano realmente no busca la Verdad -máxima filosófica y religiosa-, sino que parte de su pensamiento subjetivo para construir, a su medida, una pseudo-religión -que en realidad es una ideología- que satisfaga sus vicios y pasiones, convirtiéndose en algo absolutamente irracional. De hecho, ¿qué les diferencia a aquellos que piensan que pueden decidir su sexo?.</p> + +</body> +</html> +\ No newline at end of file diff --git a/passwd/index.html b/passwd/index.html @@ -0,0 +1,82 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Hardening de passwd y shadow</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Hardening de passwd y shadow</p> +<p class="date">12 de febrero de 2016 • fjbalon</p> +</header> +<p>El contenido del fichero <emb>/etc/passwd</emb> determina el esqueleto de usuarios del sistema, constituyéndose como la primera linea de defensa del sistema contra accesos no deseados, por lo que debe mantenerse escrupulosamente y libre de errores y fallos de seguridad. En él mantenemos registrados las cuentas de usuarios, asi como las claves de accesos y privilegios. Separado por :, indica respectivamente el nombre del usuario, la clave cifrada, UID, GID, nombre completo del usuario, directorio de trabajo (<emb>/home</emb>) e intérprete usado. Si el campo de contraseña, en lugar de contener la clave cifrada contiene una x indica que la clave se encuentra cifrada en el archivo <emb>/etc/shadow</emb>, dando un mayor grado de seguridad. La sintaxis de passwd es:</p> + +<pre><code>usuario1:FXWUuZ.vwXttg:500:501:usuario pepito:/home/usuario1:/bin/bash</code></pre> +<p>Los permisos predeterminados de passwd son 644 y los propietarios son root:root, evitando modificaciones erróneas, de modo que cualquier usuario sólo pueda leer el archivo.</p> +<p>Por otro lado, el archivo <emb>/etc/shadow</emb> almacena información sensible de los usuarios; que separados por :, indica respectivamente el nombre del usuario, la clave cifrada, el lastchanged o último cambio de contraseña en días transcurridos desde el 1 de enero de 1970, el mínimo número de días entre cambios de contraseña, el máximo número de días de validez de la cuenta, los días que avisa antes de caducar la cuenta, los días desde que caduca una contraseña para deshabilitar la cuenta y la fecha de caducidad de la cuenta en días transcurridos desde el 1 de enero de 1970. Su sintaxis es:</p> + +<pre><code>test:$1$CQoPk7Zh$370xDLmeGD9m4aF/ciIlC.:14425:0:99999:7:::</code></pre> +<p>Los permisos predeterminados de passwd son 400 y los propietarios son root:root, sólo puede leer root. La contraseña se puede cifrar utilizando diferentes métodos, que son reconocidos por el identificador presente después del primer carácter $$. A continuación puedes tener el valor del id y la técnica de cifrado correspondiente que indica:</p> + +<pre><code>$1$: MD5: $1$5df9f63916ebf8528697b629022993e8/li> +$2a$: blowfish (pez globo): $2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy</li> +$5$: SHA-256: $5$93fa3e4624676f2e9aa143911118b4547087e9b6e0b6076f2e1027d7a2da2b0a +$6$: SHA-512: $6$6859f96680702a57a951eabe43fec49964ea51dde72df97e43a1fcf6f8b41b89a51cae8f3162c0cbb3e7fd0850577759aa653e25c4bdfd57264015fa6588360f</code></pre> +<p>De la misma forma que se organiza y componen los ficheros anteriores sobre los usuarios, tenemos los ficheros <emb>/etc/group</emb> (similar a <emb>/etc/passwd</emb>) y <emb>/etc/gshadow</emb> (similar a <emb>/etc/shadow</emb>); ambos con la diferencia que no se centran en los usuarios, sino en los grupos, que separados por :, indica respectivamente el nombre de grupo, la clave cifrada, GID y la lista de usuarios que pertenecen al grupo separados por ,. La sintaxis es:</p> + +<pre><code>root:x:0:root</code></pre> + + <h1>Verificación de integridad de passwd</h1> +<p><emb>pwck</emb> comprueba la integridad y la información de autenticación, comprobando que cada entrada de passwd y shadow tienen el formato adecuado y que los datos sean válidos:</p> + +<pre><code># pwck /etc/passwd +usuario malvado: el directorio /home/malvado no existe +pwck: sin cambios</code></pre> + + <h1>Descifrando claves con john</h1> +<p>En caso de tener acceso a passwd y shadow, algo que por lo general ya supone un reto debido a la estructura de permisos, podemos unshadow y buscar descifrarla mediante fuerza bruta o diccionario, usaremos john the ripper para ello.</p> + +<pre><code># unshadow /etc/passwd /etc/shadow > unshadowed</code></pre> +<p>De tal forma que obtenemos las líneas passwd puras, en fusión con los datos necesarios secretos de shadow. De al forma que este nuevo fichero podemos pasarlo a john:</p> + +<pre><code># john unshadowed # Fuerza bruta +# john --incremental unshadowed # Fuerza bruta +# john --wordlist=diccionario.lst --rules unshadowed # Diccionario + +Using default input encoding: UTF-8 +Loaded 4 password hashes with 4 different salts (sha512crypt, crypt(3) $6$ [SHA512 128/128 AVX 2x]) +Remaining 1 password hash +Cost 1 (iteration count) is 5000 for all loaded hashes +Will run 2 OpenMP threads +Proceeding with single, rules:Single +...</code></pre> +<p>Una vez finalizado el proceso, si todo ha ido bien, podremos revisar las claves cracked desde:</p> + + +<pre><code># john --show passwords + +maria:Passw0rd2233:1006:1006::/home/maria:/bin/bash + +1 password hashes cracked, 3 left</code></pre> + + <h1>Descifrando claves con hashcat</h1> +<p>Hashcat es otra herramienta archi-conocida de craking para una amplia variedad de tipos de hashes de passwords, soportando los algoritmos de hash comunes de GNU/Linux y sus códigos hashcat:</p> +<ul> +<li>DES (Unix) = 1500</li> +<li>MD5 = 0</li> +<li>MD5 (Unix $1$) = 500</li> +<li>Blowfish (Unix $2*$) = 3200</li> +<li>SHA1 = 100</li> +<li>SHA-256 = 1400</li> +<li>SHA-256 (Unix $5$) = 7400</li> +<li>SHA-512 = 1700</li> +<li>SHA-512 (Unix $6$) = 1800</li> +</ul> + +<pre><code># hashcat -m 1800 -a 0 passwords diccionario.code -r /usr/share/hashcat/rules/InsidePro-PasswordsPro.rule -o cracked.code --force</code></pre> + +</body> +</html> +\ No newline at end of file diff --git a/permissions/index.html b/permissions/index.html @@ -0,0 +1,150 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Permisos y propietarios en la familia Unix</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Permisos y propietarios en la familia Unix</p> +<p class="date">2 de abril de 2016 • fjbalon</p> +</header> +<p>Un fichero o archivo (file) es una colección de bytes agrupados bajo el mismo nombre y almacenados en el sistema de archivos. Se agrupan en directorios (directory), que no es más que la estructura lógica de catalogación, siendo tratado en Unix como un fichero especial. Se ordenan en jerarquía, y al tronco de directorios se le denomina árbol.</p> +<p>Las extensiones de los ficheros son una simple convención que determina un subnombre o cadena de caracteres anexa separada mediante un punto, que ayudan a diversos softwares y al humano a diferenciar entre distintos tipos de datos o contenido.</p> +<p>Para mantener esta jerarquía, el sistema se maneja mediante rutas (paths), que indican el árbol de directorios y el fichero objetivo separados por /. En función de si la ruta comienza en la raíz del sistema o desde un punto variable, hablamos de rutas absolutas (/home/balon/fichero) o rutas relativas (../../balon/fichero), respectivamente.</p> +<p>Algunos comodines referidos en las rutas son . (directorio actual), .. (directorio padre), $\sim$ (directorio home del usuario actual).</p> +<p>Introducida la estructura lógica de ficheros y directorios, ahondamos en la simple pero poderosa estructura de permisos de Unix, que es uno de los pilares sobre el que descansa la seguridad en estos sistemas operativos; aplicándose a todo el sistema y a todo archivo, y construyendo un sistema robusto, fiable y estable en cuanto accesos y niveles de permisos, así como propietarios de cada archivo.</p> +<p>Así, los permisos asociados a un archivo:</p> +<ul> +<li>Lectura (read - r): un usuario con permiso de lectura sobre un fichero podrá ver su contenido. Si fuera un directorio, el usuario con permiso de lectura podrá listar el contenido del mismo. Esto no quiere decir poder ver el contenido de cada fichero, para ello necesitará el permiso sobre dicho fichero. </li> +<li>Escritura (write - w): un usuario con permiso de escritura podrá editar, añadir o eliminar el contenido de un fichero. Un usuario con permiso de escritura sobre un directorio podrá crear, eliminar o mover archivos del mismo.</li> +<li>Ejecución (execute - x): un usuario que intente ejecutar un programa deberá tener el permiso de ejecución.</li> +</ul> +<p>Según los métodos de visualización, dividimos los permisos de un fichero o directorio en 3 grupos de rwx (lectura, escritura y ejecución). En caso de haber un guión en lugar de la letra representativa del permiso, no existirá tal permiso.</p> +<ul> +<li>El primer grupo rwx indica los permisos que tiene el usuario propietario.</li> +<li>El segundo grupo rwx indica los permisos que tienen los usuarios que pertenecen al grupo propietario.</li> +<li>El tercer grupo rwx indica los permisos que tienen el resto de usuarios.</li> +</ul> +<p>El primer caracter indicará el tipo de archivo, como indicación al usuario, que se catalogan en:</p> +<ul> +<li>Regular files: -</li> +<li>Directory files: d</li> +<li>Block file: b</li> +<li>Character device file: c</li> +<li>Named pipe file or just a pipe file: p</li> +<li>Symbolic link file: l</li> +<li>Socket file: s</li> +</ul> + + <h1>Método de manipulación de permisos: modo octal</h1> +<p>Los permisos rwx son representaciones de un valor binario, que determina con 1 que existe dicho permiso y con 0 que no existe. Entonces, cada trío de permisos tendría un valor binario como: rwx = 111, r-x = 101, r-- = 100. El trío binario traducido a octal nos devuelve un valor entre 0 y 7.</p> + +<pre><code>rwx => 111 binary => digit 7 because r is 4, w is 2 and x is 1, so 4+2+1=7 +r-x => 101 binary => digit 5 because r is 4 and x is 1 so 4+0+1=5 +-wx => 011 binary => digit 3 because w is 2 and x is 1 so 0+2+1=3 +--- => 000 binary => digit 0 because no permissions are set so 0+0+0=0 + +7 = binary 111 = rwx +6 = binary 110 = rw- +5 = binary 101 = r-x +4 = binary 100 = r-- +3 = binary 011 = -wx +2 = binary 010 = -w- +1 = binary 001 = --x +0 = binary 000 = ---</code></pre> +<p>De tal forma que es posible indicar con sólo 3 dígitos octales los permisos de un fichero o directorio.</p> + +<pre><code>rwxr-x-wx is rwx|r-x|-wx is 111|101|011 ==> 753 +---r----x is ---|r--|--x is 000|100|001 ==> 041 +--------- is ---|---|--- is 000|000|000 ==> 000 +rwxrwxrwx is rwx|rwx|rwx is 111|111|111 ==> 777</code></pre> +<p>Usamos la herramienta chmod:</p> + +<pre><code># Asigna únicamente permisos de ejecución al fichero +$ chmod 111 nombre_del_fichero + +# Asigna todos los permisos para el usuario, únicamente ejecución para el grupo y ninguno para el resto +$ chmod 710 nombre_del_fichero + +# Asigna todos los permisos para el usuario, únicamente lectura para el grupo y ejecución y escritura para el resto +$ chmod 743 nombre_del_fichero </code></pre> + + <h1>Método de manipulación de permisos: modo simbólico</h1> +<p>Utiliza operadores para modificar (asignar o desasignar) los diferentes modos de los permisos. Existen 3 operadores: + (añade un modo), - (elimina un modo) y = (especifica un modo). Los usuarios son representados mediante: u (user, primer grupo rwx), g (group, segundo grupo rwx), o (others, tercer grupo rwx), a (all, todos los grupos rwx).</p> +<p>Usamos la herramienta chmod:</p> + +<pre><code># Añade todos los permisos de ejecución al fichero +$ chmod +x nombre_del_fichero + +# Elimina todos los permisos de escritura al fichero +$ chmod -w nombre_del_fichero + +# Elimina permisos de lectura a otros +$ chmod o-r nombre_del_fichero + +# Únicamente deja permisos de ejecución +$ chmod =x nombre_del_fichero + +# Añade todos los permisos al usuario pero vacía el resto, dejando únicamente permiso de ejecución para otros +$ chmod u+rwx,g-rwx,o=x nombre_del_fichero</code></pre> +<p>Esto son sólo 5 ejemplos del uso de chmod en este modo, podemos realizar todas las combinaciones que necesitemos.</p> + + <h1>Método de cambio de propietario</h1> +<p>Lo más esencial antes de iniciar la manipulación de permisos es gestionar el cambio de propietarios. Como ya se ha adelantado, un fichero tiene un usuario propietario y un grupo propietario. Generalmente por defecto es el creador de dicho fichero o directorio.</p> +<p>Usamos la herramienta chown:</p> + +<pre><code># Cambiamos el propietario del fichero a root +$ chown root nombre_del_fichero + +# Cambiamos el propietario a juan y el grupo a administradores +$ chown juan:administradores nombre_del_fichero + +# Cambiamos sólo el grupo propietario a controladores +$ chown :controladores nombre_del_fichero</code></pre> + + <h1>Permisos de bits especiales</h1> +<p>Fuera del predominio de rwx, pueden existir otros permisos especiales asignables a archivos y directorios en el sistema de archivos. Se referencia a estos permisos especiales como un dígito adicional agregado al comienzo del modo.</p> +<p>Los siguientes bits especiales están disponibles para el uso del sistema de archivos de Linux:</p> +<ul> +<li>SUID: el permiso "Set User Id" permite a los usuarios ejecutar un programa como si fueran el usuario propietario del programa, siendo en la mayoría de los casos root. El valor numérico de este conjunto de permisos es 4XXX, donde XXX corresponde a los valores rwx.</li> +<li>SGID: "Set Group Id", similar al anterior pero otorga automáticamente la propiedad de grupo. El valor numérico de este conjunto de permisos es 2XXX, donde XXX corresponde a los valores rwx.</li> +<li>Pedazo pegajoso: este conjunto de permisos se usa para evitar que los «no propietarios» eliminen archivos en un directorio común (numérico = 1XXX). En un directorio de bits adhesivos, solo el propietario del archivo o el propietario del directorio puede eliminar el archivo (la raíz siempre puede eliminar archivos también).</li> +</ul> + +<pre><code>$ chmod 4755 ejemplo +$ ls -l ejemplo + +-rwsr-xr-x 1 root root 5747 Apr 25 01:45 ejemplo</code></pre> + + <h1>Enmascaramiento de permisos</h1> +<p>umask (abreviatura de user mask, máscara de usuario) es una orden y una función en entornos POSIX que establece los permisos por defecto para los nuevos archivos y directorios creados por el proceso actual. por defecto, los directorios tienen una base octal de 777 (111 111 111)(rwx rwx rwx) mientras que los ficheros de 666 (110 110 110)(rw- rw- rw-). La razón por la que los ficheros carecen de permisos de ejecución es sencilla, por seguridad, no conviene que le demos este permiso a todo archivo nuevo. Partiendo de esta base, la operación para determinar los permisos de creación de nuevos archivos y directorios es la resta del valor dado por umask al permiso base:</p> + +<pre><code># Directory +base 777 111 111 111 rwxrwxrwx +umask 022 000 010 010 ----w--w- +result 755 111 101 101 rwxr-xr-x + +# File +base 666 110 110 110 rw-rw-rw- +umask 022 000 010 010 ----w--w- +result 644 110 100 100 rw-r--r--</code></pre> +<p>Para corroborar la umask que estamos utilizando en este preciso momento, simplemente deberemos lanzar el comando umask, que te devolverá el valor.</p> + <pre><code>$ umask +0022</code></pre> +<p>Para personalizar la máscara tenemos 3 opciones. La primera de ellas consiste en cambiar la máscara en la sesión que tenemos, siendo un cambio temporal.</p> + +<pre><code>$ umask 066</code></pre> +<p>Si queremos hacer permanente el cambio, la segunda de ellas consiste en modificar la umask en .bashrc, por lo que afectaría al usuario en cuestión.</p> + +<pre><code>$ echo "umask 022" >> ~/.bashrc</code></pre> +<p>Y la tercera opción consiste en editar el fichero de configuración /etc/profile, afectando a todos los usuarios.</p> + +<pre><code># echo "umask 022" >> /etc/profile</code></pre> +<p>Cabe destacar que si que, el sistema (/etc/profile) tiene una máscara de -por ejemplo- 026 y el usuario (.bashrc) de 002 la prioridad del usuario siempre será la de su configuración propia. De hecho su funcionamiento es el siguiente: el usuario busca en su fichero de configuración la línea umask, en caso de no haber busca en el sistema. Por lo que en el caso de no configurar umask en el usuario, la configuración del mismo será la del sistema.</p> + +</body> +</html> +\ No newline at end of file diff --git a/qemu/index.html b/qemu/index.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Virtualización y emulación con qemu</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="article.css" /></head> +<body> +<header> +<p class="title">Virtualización y emulación con qemu</p> +<p class="date">1 de enero de 2019 • fjbalon</p> +</header> +<p>Qemu, que yo pronuncio como Khemu /xɛ̃mu/ -sí, el hijo de Bayek de Siwa-, es un potente software de virtualización y emulación.</p> +<p>Como emulador, puede correr sistemas operativos o programas con una arquitectura concreta -p.e. ARM- sobre una máquina diferente -p.e. x86-. Usando la traducción dinámica consigue un rendimiento muy bueno.</p> +<p>Como virtualizador, puede utilizar hipervisores como Xen o KVM para utilizar las extensiones del procesador. Qemu alcanza un performance cercano a el rendimiento nativo ejecutando el código de invitado directamente en el CPU host.</p> +<p>A diferencia de otros programas de virtualización como VirtualBox y VMware, Qemu no proporciona una interfaz gráfica de usuario para administrar máquinas virtuales, tampoco proporciona una forma de crear una máquina virtual persistente con valores guardados, ya que todos los parámetros de ejecución se especifican en la línea de cada puesta en marcha.</p> +<h2>Gist</h2> +<p>Creación de disco virtual qcow2.</p> + +<pre><code>qemu-img create -f qcow2 arch.cow 10G</code></pre> +<p>Iniciación de imagen ISO sobre disco creado (instalación de sistema operativo).</p> + +<pre><code>qemu-system-x86_64 -cdrom Descargas/arch.iso -boot order=d -drive file=arch.cow,format=qcow2 -m 2G -enable-kvm</code></pre> +<p>Inicialización regular de sistema.</p> + +<pre><code>qemu-system-x86_64 -boot order=d -drive file=arch.cow,format=qcow2 -m 2G -enable-kvm</code></pre> +<p>Acceso por SSH a través de host forwarding sin necesidad de cambiar la red.</p> + +<pre><code>qemu-system-x86_64 -boot order=d -drive file=arch.cow,format=qcow2 -m 2G -enable-kvm -nic user,hostfwd=tcp::8888-:22</code></pre> + +</body> +</html> +\ No newline at end of file diff --git a/secretos-matrimonio/index.html b/secretos-matrimonio/index.html @@ -16,18 +16,12 @@ <p>En ella, el sueco juega magistralmente reproduciendo las consecuencias de la desnaturalización de la institución, que desde que ha degenerado en un puro formalismo legal se ha convertido en una carga intolerable para mucho. Los cónyuges se han rebelado contra la institución en una búsqueda de «libertad» o realización «personal» en la que el amor pasa a ser una especie de velo que disfraza o maquilla la idolatría. El amor conyugal ha dejado de ser unión íntima de dos almas para convertirse en un ansia nunca satisfecha de felicidad inmediata, y así, creyendo ser más libre se ha hecho más esclavo de la veleidad, de la vanidad, del hastío, de la búsqueda de experiencias nuevas y necias.</p> <p>Amor y egoísmo están cada vez más embrollados en las relaciones de los sexos, y así los cónyuges no llegan a conocerse realmente. Aman un fantasma que crean a imagen de su deseo, o en todo caso avanzan hacia una simbiosis de egoísmos. A esta entronización del deseo personal y egoísta se suma una ruptura entre sexualidad y matrimonio, entre sexualidad y procreación e incluso entre sexualidad y amor, que ha terminado por malherir la institución matrimonial, y a consecuencia, las relaciones conyugales verdaderas.</p> <p>Tras estas palabras basadas en doctas reflexiones de Juan Manuel de Prada, volvemos a Bergman, que usa una exquisita ironía para sugerir la ruptura del matrimonio, desde su punto de vista existencialista, que termina provocando un lamentable nihilismo y pesimismo. Hay quien ve en ella una oda al amor conyugal, la reconciliación y las relaciones sexuales. No lo veo así en absoluto, sino una suerte de una lamentable desamor.</p> -<p>La primera sorna que Bergman induce son las profesiones de los protagonistas, ambos de alta clase social: un profesor de psicología y una abogada de derecho familiar, experta irónicamente en divorcios. Él, que debe conocer los entresijos de la mente y la conducta humana y ella, que debe conocer las causas y razones de la familia -aunque su trabajo consista en demolerla-. Ambos, de una gran educación y erudición, y de un acomodado estilo de vida, seguros de sí mismos e incluso virtuosos en apariencia. Son personajes perfectamente construidos, y con un desarrollo -irónicamente de nuevo, destructivo- muy bien llevado, en el que se verá que no son lo que parecen por la superficie.</p> -<h2>1. Inocencia y pánico (Oskuld och panik)</h2> -<p>Cada conflicto que azota a los desposados es barrido bajo la alfombra, como aquella insegura conversaciones sobre sus relaciones sexuales, que distan de ser ideales. Cada conflicto, si no es movido bajo el tapete, es solucionado de común acuerdo, ocultando y reprimiendo las verdades incómodas, obteniendo así una falta de sinceridad y unidad generosa que tambalea la relación y la enfría. Esta frialdad se proyecta en la nueva cliente de la abogada, que quiere romper su matrimonio pues no experimenta en él amor, tampoco ama a sus hijos, consecuencias de una indiferencia absoluta.</p> -<h2>2. El arte de meter asuntos bajo el tapete (Konsten att sopa under mattan)</h2> -<p>Cada conflicto que azota a los desposados es barrido bajo la alfombra, como aquella insegura conversaciones sobre sus relaciones sexuales, que distan de ser ideales. Cada conflicto, si no es movido bajo el tapete, es solucionado de común acuerdo, ocultando y reprimiendo las verdades incómodas, obteniendo así una falta de sinceridad y unidad generosa que tambalea la relación y la enfría. Esta frialdad se proyecta en la nueva cliente de la abogada, que quiere romper su matrimonio pues no experimenta en él amor, tampoco ama a sus hijos, consecuencias de una indiferencia absoluta.</p> -<h2>3. Paula</h2> -<p>La noticia de que él se ha enamorado de otra y que se irá a París con ella la mañana siguiente es recibida por Marianne con amargura pero con una tal impasibilidad (algo chocante en España), que incluso le ayuda a hacer la maleta para su partida. Marianne se entera además que gran parte su círculo social estaba al corriente de la situación -desde hace bastante tiempo-, que se convierte en cómplice al no informar a Marianne, así como la sociedad actual es cómplice de la destrucción de la familia.</p> -<h2>4. El valle de lágrimas (Tåredelen)</h2> -<p>Aproximadamente un año después Marianne y Johan vuelven a encontrarse; ella parece haber rehecho su vida con algunos amantes, él está apunto de alcanzar un ascenso social como catedrático, sin embargo está empezando a cansarse de su amante. A pesar de los intentos de acercamiento de ambos, que comienzan a mostrar inseguridad, vuelven a separarse; Marianne vuelve a quedarse sola.</p> -<h2>5. Los analfabetos (Analfabeterna)</h2> -<p>Somos analfabetos emocionales, dice Johan en el que es el capítulo más desgarrador de la serie. Han pasado unos años más y finalmente deciden poner fin a su contrato matrimonial mediante el divorcio. Pero antes de firmar, se acuestan en un intento último de unidad, pero después se desencadena un enfrentamiento horroroso en el que se muestran tal cual son; un hombre inseguro y afeminado y una mujer desgraciada y vulnerable. El enfrentamiento alcanza un climax tal, que llega a las manos en una desesperación absoluta, y que saca a la luz agresiones reprimidas durante mucho tiempo, barridas bajo la alfombra. Y en un ambiente de absoluto odio y desprecio, firman los papeles del divorcio.</p> -<h2>6. En plena noche, en una casa oscura (Mitt i natten i ett mörkt hus)</h2> +<p>La primera sorna que Bergman induce son las profesiones de los protagonistas, ambos de alta clase social: un profesor de psicología y una abogada de derecho familiar, experta irónicamente en divorcios. Él, que debe conocer los entresijos de la mente y la conducta humana y ella, que debe conocer las causas y razones de la familia -aunque su trabajo consista en demolerla-. Ambos, de una gran educación y erudición, y de un acomodado estilo de vida, seguros de sí mismos e incluso virtuosos en apariencia. Son personajes perfectamente construidos, y con un desarrollo -irónicamente de nuevo, destructivo- muy bien llevado, en el que se verá que no son lo que parecen por la superficie.</p><h2>1. Inocencia y pánico (Oskuld och panik)</h2> +<p>Cada conflicto que azota a los desposados es barrido bajo la alfombra, como aquella insegura conversaciones sobre sus relaciones sexuales, que distan de ser ideales. Cada conflicto, si no es movido bajo el tapete, es solucionado de común acuerdo, ocultando y reprimiendo las verdades incómodas, obteniendo así una falta de sinceridad y unidad generosa que tambalea la relación y la enfría. Esta frialdad se proyecta en la nueva cliente de la abogada, que quiere romper su matrimonio pues no experimenta en él amor, tampoco ama a sus hijos, consecuencias de una indiferencia absoluta.</p><h2>2. El arte de meter asuntos bajo el tapete (Konsten att sopa under mattan)</h2> +<p>Cada conflicto que azota a los desposados es barrido bajo la alfombra, como aquella insegura conversaciones sobre sus relaciones sexuales, que distan de ser ideales. Cada conflicto, si no es movido bajo el tapete, es solucionado de común acuerdo, ocultando y reprimiendo las verdades incómodas, obteniendo así una falta de sinceridad y unidad generosa que tambalea la relación y la enfría. Esta frialdad se proyecta en la nueva cliente de la abogada, que quiere romper su matrimonio pues no experimenta en él amor, tampoco ama a sus hijos, consecuencias de una indiferencia absoluta.</p><h2>3. Paula</h2> +<p>La noticia de que él se ha enamorado de otra y que se irá a París con ella la mañana siguiente es recibida por Marianne con amargura pero con una tal impasibilidad (algo chocante en España), que incluso le ayuda a hacer la maleta para su partida. Marianne se entera además que gran parte su círculo social estaba al corriente de la situación -desde hace bastante tiempo-, que se convierte en cómplice al no informar a Marianne, así como la sociedad actual es cómplice de la destrucción de la familia.</p><h2>4. El valle de lágrimas (Tåredelen)</h2> +<p>Aproximadamente un año después Marianne y Johan vuelven a encontrarse; ella parece haber rehecho su vida con algunos amantes, él está apunto de alcanzar un ascenso social como catedrático, sin embargo está empezando a cansarse de su amante. A pesar de los intentos de acercamiento de ambos, que comienzan a mostrar inseguridad, vuelven a separarse; Marianne vuelve a quedarse sola.</p><h2>5. Los analfabetos (Analfabeterna)</h2> +<p>Somos analfabetos emocionales, dice Johan en el que es el capítulo más desgarrador de la serie. Han pasado unos años más y finalmente deciden poner fin a su contrato matrimonial mediante el divorcio. Pero antes de firmar, se acuestan en un intento último de unidad, pero después se desencadena un enfrentamiento horroroso en el que se muestran tal cual son; un hombre inseguro y afeminado y una mujer desgraciada y vulnerable. El enfrentamiento alcanza un climax tal, que llega a las manos en una desesperación absoluta, y que saca a la luz agresiones reprimidas durante mucho tiempo, barridas bajo la alfombra. Y en un ambiente de absoluto odio y desprecio, firman los papeles del divorcio.</p><h2>6. En plena noche, en una casa oscura (Mitt i natten i ett mörkt hus)</h2> <p>Muchos años después, cada uno ha rehecho su vida y se ha vuelto a casar. Sin embargo enseguida nos percatamos que cada uno tiene un amante; y para culminar con la mayor de las ironías, descubrimos que Johan y Marianne son los amantes, que van a pasar un fin de semana juntos arpvechando que sus cónyuges están de viaje al mismo tiempo. Cumbre que se corona con «¿crees que [todos] vivimos en la absoluta confusión?», alcanzando el nihilismo y pesimismo que antes vaticinábamos.</p> <p>Rizando un poco el rizo quizá, me gusta ver en la separación de cada capítulo un pilar demolido, siendo la procreación y educación (1), unidad (2), fidelidad (3), ayuda mutua, amor y generosidad conyugal (4) e indisolubilidad (5), que provocan la ocurrente ironía final (6).</p> </body> diff --git a/segundo/index.html b/segundo/index.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>De la primacía del segundo en el cómputo del tiempo</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">De la primacía del segundo en el cómputo del tiempo</p> +<p class="date">7 de junio de 2019 • fjbalon</p> +</header> + +<cita> +<p>«¿Qué es, pues, el tiempo? Si nadie me lo pregunta, lo sé; pero si quiero explicárselo al que me lo pregunta, no lo sé. Lo que sí digo sin vacilación es que sé que si nada pasase no habría tiempo pasado; y si nada sucediese, no habría tiempo futuro; y si nada existiese, no habría tiempo presente. Pero aquellos dos tiempos, pretérito y futuro, ¿cómo pueden ser, si el pretérito ya no es y el futuro todavía no es? Y en cuanto al presente, si fuese siempre presente y no pasase a ser pretérito, ya no sería tiempo, sino eternidad. Si, pues, el presente, para ser tiempo es necesario que pase a ser pretérito, ¿cómo deciros que existe éste, cuya causa o razón de ser está en dejar de ser, de tal modo que no podemos decir con verdad que existe el tiempo sino en cuanto tiende a no ser?»</p> + <p style="text-align:right">San Agustín de Hipona, Confesiones, XI, XIV, 17</p> +</cita> +<p>Respecto al tiempo y antes de mentar nada más sobre él, tras las palabras de San Agustín de Hipona, valga decir que nadie sabe en realidad qué es. No se conoce su naturaleza, si es absoluto o relativo. Después de la teoría de la Relatividad su condición de absoluto parece por lo menos opinable. Pero más allá de estas disquisiciones, si bien no conocemos su naturaleza, sí podemos computarlo.</p> +<p>La historia de la relojería es la secuencia de eventos que han ocurrido en torno a los guardatiempos (dispositivos mecánicos capaces de fraccionar, contar y guardar memoria de secuencias en el tiempo). Estos dispositivos han sido creados para proporcionar la hora en situaciones donde los astros no podían verse. Algunos de los dispositivos tienen unos orígenes claros en ciertas técnicas y tecnologías bien datadas, como puede ser el caso de los relojes de arena cuya construcción está ligada al soplado de vidrio. Muchas culturas han tenido curiosidad por medir el tiempo y las fechas del calendario con la simple observación de los fenómenos naturales y astronómicos, este conocimiento les ha proporcionado una prosperidad económica debido en parte a que eran capaces de predecir con precisión el tiempo de las cosechas, las plantaciones y demás actividades agrícolas.</p> +<p>Los métodos de medida del tiempo se fundamentan desde sus comienzos en el sistema sexagesimal (base 60), muy común en el mundo occidental y originarios hace cerca de 4000 años en Mesopotamia y Egipto. El primer calendario, no obstante, pudo haberse creado en el último periodo glacial, por una sociedad de cazadores-recolectores quienes emplearon herramientas tales como palos y huesos para trazar mediante alineamientos de la sombra de los mismos o las apariciones de ciertos astros o como conteo de las fases de la luna o de las estaciones. Se construyen por esta época disposiciones en forma de círculos de piedra, tales como el famoso Stonehenge, que fueron construidos en diferentes partes del mundo, especialmente en la Europa prehistórica y están considerados como uno de los primeros calendarios empleados para predecir las estaciones y los eventos anuales tales como los equinoccios o los solsticios.</p> +<p>El uso de los sistemas horarios ha ido parejo a la historia de la relojería. Los primeros sistemas horarios dividían el día (el arco diurno del sol) en 12 horas, lo que hacía que las horas fuesen más largas en verano, y más cortas en invierno. Esta división del tiempo proporcionó el denominado sistema horario temporario. El sistema de horas itálicas (Horae ab Occasu) y las horas babilónicas (Horae ab Ortu). Las horas canónicas (así como su subdivisión en dos grupos de horas menores y horas mayores) empleadas en las comunidades cristianas, hasta llegar hasta al tiempo medio de Greenwich o GMT.</p> + + <h1>Tecnologías de cómputo de tiempo primitivas</h1> +<p>Los dispositivos que inicialmente midieron el tiempo estaban directamente ligados a la observación de los movimientos regulares de los astros en el cielo; un ejemplo de ello son los relojes solares. La regularidad mostrada por los astros poco a poco se fue simulando con algunos dispositivos básicos de conteo tales como relojes de arena, clepsidras (relojes de agua), relojes de fuego, etc. Algunos de ellos se fundamentaban en la observación de fenómenos regulares en la naturaleza como puede ser el relojes de marea. Estos dispositivos primitivos eran capaces de medir el transcurso del tiempo con muy poca precisión, y en estas primeras etapas puede que no llegaran a medir más allá de un cuarto de hora.</p> +<p>Los primeros relojes solares en occidente fueron construidos gracias a los conocimientos astronómicos de los egipcios que les permitió orientar la pirámide de Keops, c. 2550 a. C., mediante referencias estelares. Mil años después, en la época del faraón Tutmosis III (c. 1500 a. C.), se diseña un instrumento denominado sechat; se trata de un pequeño reloj solar para medir el tiempo mediante la longitud de las sombras que constaba de dos piezas prismáticas, pétreas, de unos tres decímetros de longitud, situadas perpendicularmente, donde una tenía marcadas las horas y otra servía de aguja. Los primeros relojes solares se construían mediante la proyección de la sombras de un ortostilos sobre una superficie reglada.</p> +<p>En el caso de los relojes de arena la gravedad fuerza a deslizar los finos granos de arena procedentes de una ampolleta de vidrio que caían deslizándose por una oquedad a una ampolla inferior. Este tiempo se medía en forma de intervalo cuando cesaban de caer los granos de arena debido al vaciado de la ampolleta superior. Este tipo de relojes podía llegara medir hasta un cuarto de hora. Los relojes de agua (clepsidras) tenían un funcionamiento similar mediante el empleo de líquidos en lugar de arena y de esta forma el goteo iba marcando el transcurso del tiempo, en algunos casos un flotador con un índice de nivel hacía de indicador de la hora. La mejora y estudio detallado de los mecanismos que regulaban estos primeros dispositivos hizo que fuera poco a poco apareciendo un mecanismo rudimentario capaz de oscilar mecánicamente: se trataba de los primeros relojes antes de la introducción del péndulo en el mecanismo.</p> +<h2>Reloj mecánico</h2> +<p>El tiempo era algo flexible en la Alta Edad Media, Entre las laudes, transcurrían muchas horas en verano, y pocas en invierno. Los instrumentos para medir el tiempo eran imprecisos y poco fiables, pues dependían de factores externos que no siempre propiciaban su funcionamiento; de noche o con el cielo encapotado, el reloj de sol no marcaba la hora, en zonas del norte las clepsidras se congelaban, etc. Parece que entonces los monjes comenzaron a aplicar ciertas técnicas (estudiadas de China, siglo X y Siria, siglo XII) y se comenzaron a construir relojes de piezas mecánicas móviles a finales del siglo XIII (uno de los primeros fue el del abad Richard de Wallingford). Debido a su tamaño y coste, se colocaban frecuentemente sobre los campanarios, para que fueran visibles para todo el mundo. Hay razones para pensar que el invento del reloj mecánico servía a los monjes en sus horas de oración, que frecuentemente hacía perder la noción del tiempo.</p> +<p>Es muy posible que en las primeras épocas de aparición de los relojes mecánicos estos se ajustaran mediante el uso de relojes de sol o meridianas para mantener la precisión. Este tipo de reloj utiliza procedimientos mecánicos para marcar el paso del tiempo, distinguiéndose de aquellos que miden el tiempo a partir de un fenómeno natural mensurable. Técnicamente hablando, la maquinaria que está en el interior de un reloj se llama calibre, y es producto del diseño relojero. La parte externa y sus ornamentos (llamada caja) pueden ser considerados más bien un producto de la joyería o estética.</p> +<p>Alfonso X el Sabio dentro de sus obras astronómicas menciona un conjunto de posibilidades de medir el tiempo. En una recopilación sobre los libros sobre relojes habla de los relojes de sol y de las clepsidras, así como relojes elaborados con fuego, mercurio (relogio del argent vivo), etc. Siendo una poderosa fuente de información al respecto. Destacar los ingeniosos diseños de Alī Ibn Khalaf al-Murādī (siglo XI), de الأندلس Al-Ándalus, de relojes de agua y mercurio</p> + + <h1>La primacía del segundo en los relojes electrónicos: cuarzo y atómico</h1> +<p>El segundo (s) es una unidad de tiempo en el Sistema Internacional de Unidades, el Sistema Cegesimal de Unidades y el Sistema Técnico de Unidades.</p> +<p>Como hemos visto, en un inicio el segundo no era más que una fracción de otras medidas, especialmente de una hora. Se le consideraba 1/60 de minutos, o 1/3600 de hora, para los latinos la hora se dividía en 60 fracciones a las que se denominaba pars minuta prima -primera parte pequeña: minuto-, que a su vez se dividían de nuevo en 60 partes llamadas pars minuta secunda -segunda parte pequeña: segundo-. La primacía era la hora, la vigésima cuarta parte de un día solar medio.</p> +<p>Los relojes siempre se han calibrado para determinar la hora, y a consecuencia calcular los minutos y segundos. El segundo mecánico, que no depende de la medición de la posición de rotación relativa de la Tierra, mantiene un tiempo uniforme llamado tiempo medio, dentro de la precisión que le es intrínseca. Esto significa que cada segundo, minuto y cualquier otra división de tiempo contada por el reloj tendrá la misma duración que cualquier otra división de tiempo idéntica, pero siempre como fracción de minuto y ésta, de hora. El segundo solar mide la posición relativa del sol en el cielo, llamada tiempo aparente, no mantiene un tiempo uniforme. El tiempo guardado por un reloj de sol varía según la época del año, lo que significa que los segundos, los minutos y cualquier otra división del tiempo tienen una duración diferente en distintas épocas del año.</p> +<p>No es hasta la llegada de los relojes electrónicos, especialmente el reloj de cuarzo (1920, por Warren Morrison y J. W. Horton en Bell Telephone Laboratories), cuando el segundo adquiere una naturaleza primera sobre la hora y el minuto, siendo base de ésta, calibrando el segundo en base a la vibración constante del cristal de cuarzo al ser excitado con corriente alterna, y a consecuencia calculando los minutos y horas con una precisión sin precedentes. En los relojes electrónicos la exactitud depende de la base de tiempos (electrónica o electromecánica), que puede consistir en un oscilador o en un adaptador que, a partir de una referencia, genera una señal periódica. El divisor de frecuencia es un circuito digital formado por una sucesión de contadores hasta obtener una frecuencia de 1 Hz, que permite mostrar segundos. Si se quiere mostrar décimas, la división se detiene al llegar a los 10 Hz. El tipo de base de tiempos utilizada es tan importante que suele dar nombre al tipo de reloj. En el caso del cuarzo, se sustituye el diapasón por un resonador de cuarzo, habitualmente a 32768 Hz, por ser potencia exacta de dos, lo que simplifica el divisor de frecuencia. el impulso lo genera un cristal de cuarzo que vibra cuando se le aplica una corriente eléctrica. A esto se le denomina efecto piezoeléctrico inverso. La forma del cristal de cuarzo del reloj se suele asemejar a un diapasón. La mayoría de las veces, la frecuencia es de 32.768 Hz, es decir, muchísimo mayor que la de un reloj mecánico. Por eso los relojes de cuarzo son considerablemente más precisos. Un circuito divide la frecuencia entre dos hasta que se alcanzan intervalos de un segundo. Este es el motivo por el que el segundero se mueve una vez por segundo.</p> +<p>Un ejemplo práctico del uso de esta clase de relojes es el empleado en real-time clock o RTD, siendo el reloj del ordenador, incluido en un circuito integrado, que mantiene la hora actual. La mayoría de ellos usan un oscilador de cristal, y casi siempre, cuarzo, ya que mantienen la frecuencia del oscilador en 32.768kHz, ó 2<sup>15</sup> ciclos por segundo, que es un ratio muy práctico para usar con circuitos de contadores binarios simples. La baja frecuencia ahorra energía, mientras permanece por encima del rango de audición humana. El diapasón de cuarzo de estos cristales no cambia mucho de tamaño debido a la temperatura, por lo que las frecuentes altas temperaturas del ordenador no cambian mucho su frecuencia. Algunos RTC utilizan un resonador micromecánico en el chip de silicio del RTC, lo que reduce el tamaño y el costo de un RTC al reducir el número de piezas. Los resonadores micromecánicos son mucho más sensibles a la temperatura que los resonadores de cuarzo. Entonces, estos compensan los cambios de temperatura usando un termómetro electrónico y lógica electrónica. Además, los RTC a menudo tienen una fuente de alimentación alternativa, por lo que pueden seguir midiendo el tiempo mientras la fuente de alimentación principal está apagada o no está disponible.</p> +<p>No hay que confundir los RTC con los relojes hardware (clock signal o clock), que sólo son señales binarias, que sirven para coordinar las acciones de varios circuitos, en especial para la sincronización de biestables en sistemas digitales complejos, y no cuentan el tiempo en unidades humanas.</p> +<p>Esto ha sido ampliamente mejorado con la aparición del reloj atómico, que se basan en incluir en el lazo de realimentación una cavidad con moléculas de la sustancia adecuada, de manera que se excite la resonancia de alguno de sus átomos, siendo el segundo atómico es la duración de 9.192.631.770 oscilaciones de la radiación emitida en la transición entre los dos niveles hiperfinos del estado fundamental del isótopo 133 del átomo de cesio (Cs), a una temperatura de 0K. Debido a que la rotación de la Tierra varía y también se ralentiza ligeramente, se agrega periódicamente un segundo intercalar a la hora del reloj para mantener sincronización.</p> +<p>Esto ha cambiado la definición estándar de tiempo, que ya no se basa en la rotación de la Tierra alrededor del Sol, sino en el tiempo atómico, donde prima el segundo. Así, los submúltiplos y múltiplos del segundo serían:</p> + +<pre><code>10<sup>-1</sup>s ds décima de segundo 10<sup>1</sup>s das decasegundo +10<sup>-2</sup>s cs centisegundo 10<sup>2</sup>s hs hectosegundo +10<sup>-3</sup>s ms milisegundo 10<sup>3</sup>s ks kilosegundo +10<sup>-6</sup>s µs microsegundo 10<sup>6</sup>s Ms megasegundo +10<sup>-9</sup>s ns nanosegundo 10<sup>9</sup>s Gs gigasegundo +10<sup>-12</sup>s ps picosegundo 10<sup>12</sup>s Ts terasegundo +10<sup>-15</sup>s fs femtosegundo 10<sup>15</sup>s Ps petasegundo +10<sup>-18</sup>s as attosegundo 10<sup>18</sup>s Es exasegundo +10<sup>-21</sup>s zp zeptosegundo 10<sup>21</sup>s Zs zettasegundo +10<sup>-24</sup>s ys yoctosegundo 10<sup>24</sup>s Ys yottasegundo</code></pre> +<p>Así, el uso del segundo y sus múltiplos permite hacer una simplificación matemática al cómputo de tiempo, especialmente en su uso por la computación y la electrónica, ya que es posible, como hemos visto, aplicar estos múltiplos para obtener relojes precisos y monitorear las señales de elementos en el tiempo, pudiendo calcular cronogramas. Así, el segundo se ha convertido en el factor base del cómputo del tiempo moderno, pues a la máquina, le da igual el giro de la tierra alrededor del sol o la rotación.</p> + +</body> +</html> +\ No newline at end of file diff --git a/seleccion-natural/index.html b/seleccion-natural/index.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Reductio ad absurdum Darwin</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Selección natural y mutaciones</p> +<p class="date">2 de diciembre de 2020 • fjbalon</p> +</header> +<p>La selección natural es el mecanismo propuesto por Charles Darwin que explicaría la transición de mono a hombre y de todas las especies animales y vegetales del planeta. Para muchos, es el pilar fundamental en el que se sostiene toda su hipótesis y se erige como uno de los mantras y dogmas más inatacables del evolucionismo. Sin embargo, no se sostiene en lo más mínimo a un análisis estético, que no provoca más que confusión.</p> +<p>Para empezar, no existe una definición clara: se le relaciona con reproducción diferencial, en cuanto a que los más aptos tienen mayor descendencia y son favorecidos por la ésta, mientras que los menos aptos tienen menor descendencia y son eliminados; pero, ¿cuál es el criterio de aptitud?. Los más aptos tienen mayor descendencia porque son más aptos, la tautología (Conrad Hal Waddington) y el oxímoron (Emilio Cervantes) son obvios, y degenera en un vocablo con incompetencia semántica que prolifera por su indiscutible utilidad para la ingeniería social.</p> +<p>Al igual pasa con la denominación propia de 'selección', pues para seleccionar (elegir, preferir) es imprescindible una inteligencia que discierna. Al decir selección natural estamos atribuyendo a la naturaleza propiedades que no tiene, «la estamos 'humanizamos' al modo en que lo hacen las religiones primitivas o las películas de Walt Disney» (Juan Manuel de Prada). Sin embargo, no se trataría sólo de un problema definitorio, sino que arrastra un inexistente rigor científico, algo obvio, pues no se puede observar, ni determinar la intensidad, ni predecir sus efectos, ni reproducir en laboratorio, ni mucho menos definir. Desde el punto de vista científico no se puede más que decir que la selección natural no existe, no es pues sino una metáfora filosófica para postular que unos viven más que otros, y esto ha defendido el mismo Darwin con «en el sentido literal de la palabra, la Selección Natural es un término falso»<sup>1</sup>, ¿parece ser que Darwin no era tan darwinista al fin y al cabo?. De ahí que el propio Darwin reconozca que es más apropiado hablar de «supervivencia de los más aptos», hecho evidente que, sin embargo, sigue sin explicar el mecanismo que 'selecciona', tampoco de qué manera se transformarían los más aptos, hasta conformar otra especie.</p> +<p>No obstante, la selección natural, aun usada en sentido metafórico, indica la acción (imprecisa, aleatoria, no determinable ni cuantificable) de un conjunto de factores naturales, que hace que los seres vivientes permanezcan fieles a su tipo, eliminando a los que se desvíen de él -y siendo éste el sentido correcto de la expresión (Edward Blyth)- y sufriendo pequeñas variaciones en función del entorno. Este hecho ha sido así relegado a un concepto absolutamente erróneo (George G. Simpson, Maynard Smith, George Christopher Williams, Richard Lewontin, Richard Leakey).</p> +<p>La realidad es que la selección natural no tiene propiedades 'creativas'. No puede crear órganos ni funciones nuevas, mucho menos especies nuevas. La genética también así lo demuestra, rigurosamente programada a nivel de código genético, determinando el conjunto de información hereditaria que se transmite a la descendencia haciendo, de forma inexorable e indiscutible, que un ser vivo sólo pueda engendrar otro ser vivo de su misma especie, y absolutamente ninguna otra cosa. Para que un ser vivo pudiera engendrar otro ser vivo esencialmente distinto, habría que cambiar totalmente su código genético. Y la selección natural actúa (en metáfora, se entiende) sobre organismos ya formados y no sobre sus genes, o dicho más biológicamente aceptable, actúa sobre el fenotipo, no sobre el genotipo.</p> +<p>Actuando -por ejemplo- sobre los monos, la selección natural no haría más que 'quedarse' con los monos más aptos: los más fuertes, los más fecundos o los más resistentes a enfermedades; es decir, haría que los monos fuesen cada vez más monos. Desde el propio punto de vista evolucionista, el mono sería incluso un ser superior al hombre en cuanto tiene más capacidades y aptitudes para la supervivencia del hombre.</p> +<p>Así que vemos cómo la selección natural actúa, ratifico, como fuerza estabilizadora y conservadora de especies, permitiendo la supervivencia manteniéndolas fieles a su tipo. No advertimos capacidad alguna de transformar una especie en otra. Y es que las características de todo organismo están bien programadas hasta el último detalle a través de su información genética, que se transmite de los progenitores a sus descendientes (siempre de la misma especie). Para que pudiera darse que un animal engendrara otro completamente distintos, habría que alterar por completo esa información genética, pero la selección natural no actúa sobre los genes, sino sobre organismos ya formados.</p> +<p>Es entonces que se argumenta la presencia de las mutaciones; alteraciones al azar en la composición química de los genes, concretamente en el ADN, donde se codifica la información hereditaria. Ahora bien, en una estructura compleja (y esto lo sabemos bien desde la computación y la ingeniería de sistemas), un cambio al azar tiende inevitablemente a deteriorarla e inestabilizarla. Para mejorarla, debe haber aumento de orden, y esto, por definición, es contrario al azar; se requiere voluntad: inteligencia.</p> +<p>Es por ello que prácticamente todas las mutaciones estudiadas son dañinas, perjudiciales, deteriorativas o letales; en el mejor de los casos neutras -o bien porque el gen alelo suple la función del gen dañado por mutación, o bien porque el cambio ha sido insignificante-.</p> +<p>Las supuestas mutaciones favorables de que hablan algunos científicos, no son casi nunca verdaderas mutaciones; son solamente una manifestación de la vitalidad genética que tiene todo organismo, que hace que, en determinadas circunstancias, se expresen genes que a estaban presentes -aunque reprimidos- porque su funcionamiento no era necesario (Raúl Osvaldo Leguizamón). Pero aun en el caso de que existieran mutaciones favorables, con eso no hacemos absolutamente nada. Pues la hipótesis evolucionista necesita, imprescindiblemente, transmutaciones (que no mutaciones favorables), es decir, mutaciones creativas, capaces de producir novedades biológicas (ojos, plumas, sangre caliente, etc.), que expliquen la aparición de las distintas especies biológicas, desde la ameba al hombre. La imposibilidad de que las mutaciones azarosas puedan producir tan siquiera un órgano nuevo, se deriva fundamentalmente de su carácter generalmente perjudicial y de su escasa frecuencia. Además, para poder transmitirse a la descendencia, tienen que afectar a las células germinales y ser dominantes, es decir, prevalecer sobre el gen alelo, para tener algún efecto. Todo esto disminuye aún más su frecuencia.</p> +<p>Para contraargumentar aún más la hipótesis darwinista, destacar que ésta no tiene lugar en sus esquemas para el concepto de organismo, es decir, el conjunto de estructuras que forman y funcionan como un todo, un único sistema. Heredera, al fin y al cabo, del mecanicismo cartesiano, la hipótesis evolucionista piensa en términos de partes, en modificación por partes que, al sumarse, producirían su transformación en otro organismo.</p> +<p>Y aún así, si a pesar de ello se favoreciese, a lo largo de cambios mínimos y azarosos durante el tiempo que sea necesario, no tendríamos sino una especie malformada, que no sería eficiente en su entorno (lo que la propia selección natural desmontaría). Imagínese una especie de pez, que durante x millones de años arrastrase unos pulmones a medio formar (y sin una causalidad para ello, claro), algo completamente inútil para él, y en naturaleza, lo inútil es perjudicial. Para producir un ojo, por ejemplo, todas las mutaciones tendrían que afectar el conjunto de genes que rigen esta función. Ahora bien, esto plantea una imposibilidad estadística absoluta (Émile Borel, C. Guye, Lecomte du Nüuy, G. Salet...). Todas estas estructuras, o aparecen simultáneamente y en estado de plena perfección, o no sirven para nada; por el contrario, son un estorbo para la supervivencia. Y no tenemos absolutamente ningún ejemplo natural hoy día, de animal o ser a medio formar, todos están perfectamente formados y de forma eficiente, ¿acaso estamos en el fin de la evolución? ¿ya no aplica por alguna razón?.</p> +<p>«Y para que esto suceda, tiene que cambiar todo el código genético, en forma simultánea y sin un solo error. Para ello debería ocurrir una mutación gigantesca, un reordenamiento radical de todo el código genético, dirigido y especificado hasta en los más mínimos detalles, para producir un ser viviente capaz de funcionar, esto es, de vivir. Lo cual constituye un milagro más grande que resucitar un muerto.» (Otto Schindewolf). «Es absolutamente imposible explicarla [la evolución] mediante el mecanismo de las mutaciones» (Richard Goldschmidt, publicado en el libro The Material Basis of Evolution y el artículo American Scie., 40:97, 1952; ambos de un rigor científico ejemplar. Nadie ha sido capaz aún de refutar las sus conclusiones respecto de las mutaciones).</p> +<p><sup>1</sup> On the Origin of Species by Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life, On the Origin of Species, 4th Chapter</p> + +</body> +</html> +\ No newline at end of file diff --git a/septimo-sello/index.html b/septimo-sello/index.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>El séptimo sello (1957), de Ingmar Bergman: memento mori</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">El séptimo sello (1957), de Ingmar Bergman: memento mori</p> +<p class="date">17 de noviembre de 2022 • fjbalon</p> +</header> +<p>Voy a empezar indicando lo que no me gusta de esta obra, que básicamente se resume en la visión protestante-ilustrada de mostrar la Edad Media mediante sus típicos tópicos. Los hombres que hablan no son medievales, son hombres modernos colocados en el medievo. Especialmente poniendo el ojo en Jöns, el escudero escéptico que no quiere creer, un hombre cuyo existencialismo barato y escepticismo no podría ser propio sino de un sueco de 1957. De hecho, la cinta es un teatro estéticamente medieval, pero que muestra ese pensamiento protestante eurupeo de mediados del siglo XX.</p> +<p>Sin embargo, nada de lo anteriormente expuesto puede obnubilar el juicio que se debe dar a esta obra tan personal, de una fotografía e imagen de potencia emocional, con la teatralidad y el juego de cámaras tan propio de Ingmar Bergman, acrecentando el rostro de sus personajes y, a consecuencia, su alma.</p> +<p>De hecho, en su prólogo a la publicación del texto del guion, Bergman enfatizó que la película no es un intento de pintar una imagen realista de Suecia en la Edad Media, sino «un intento poético que transpone las experiencias de vida de un hombre moderno de una forma muy laxa a las realidades medievales». Y es algo evidente.</p> +<img src="resources/septimo-sello.jpg" /> +<p>Cada personaje que introduce, aunque caricaturesco, es una postura de vida -y muerte- distinta. El caballero en desánimo y crisis de fe, el escudero irreverente y escéptico, la adúltera y su marido bobalicón, la chica muda y sin nombre, el matrimonio de juglares y la esposa del caballero, paciente y altiva. Cada uno responde a la muerte en su postura, pero todos caen ante tan enorme Señora -excepto los titiriteros que sobreviven a ella (o más bien, alargan su encuentro algo de tiempo, pues la única certeza es la muerte)-.</p> +<p>La gallardía y prestancia de la esposa del caballero y la muchacha muda se tercian ante la muerte, como «Noble Señora» a la que plantan cara con dignidad. El herrero, que incluso ante tal soberana presencia no hace más que justificar a su señora, que espera en silencio. Y finalmente el caballero, que reza humildemente en contraposición de la soberbia, serenidad e irreverencia del escudero. «Ya marchan todos a la oscuridad [de la muerte]». Ya marchan pues, en danza macabra al sonido de Palästinalied, hacia la oscuridad de la muerte. «Como te ves me vi, como me ves te verás, recuerda que morirás».</p> + +</body> +</html> +\ No newline at end of file diff --git a/septimo-sello/resources/septimo-sello.jpg b/septimo-sello/resources/septimo-sello.jpg Binary files differ. diff --git a/siervos/index.html b/siervos/index.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Siervos (2020), de Ivan Ostrochovský</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Siervos (2020), de Ivan Ostrochovský</p> +<p class="date">18 de noviembre de 2021 • fjbalon</p> +</header> +<p>La jerarquía eclesiástica, congregados en Pacem In Terris, se someten al Estado y traicionan al Papa, la Doctrina y el Magisterio. Sin embargo, en el clero existe una resistencia, una oposición que intercambia clandestinamente mensajes de Occidente, que importan libros prohibidos (en su mayoría católicos) y que ordenan sacerdotes sin el control del Estado.</p> +<p>Es bajo esta premisa que se desarrolla, en un ambiente sobrio, frío y silencioso, una atmósfera asfixiante. A pesar de ser una película corta, el tiempo se dilata entre escenas, sugiere y no enseña. La fotografía es perfecta, esculpida en blanco y negro y en un claustrofóbico 4:3. El minismalismo y la sobriedad de cada imagen son impecables, y acompañadas de un diálogo escueto, pero docto. Una obra maestra de terror sugerente.</p> +<p>Con tintes de cine negro, somete al espectador a un espionaje y vigilancia constante, que empequeñecen el poder material bajo el dominio del régimen comunista. La ambigüedad de cada personaje favorece el ambiente de desconfianza y sospecha, donde incluso el sacerdote más bondadoso cae ante el peso del Estado y rompe el secreto de confesión.</p> +<p>El seminario nos transporta a esa Iglesia clandestina que, en los tiempos modernos, vuelve a la clandestinidad y a las catacumbas. Una persecución sangrienta, pero también silenciosa e invisible. Como en «La Misión», se explora implícitamente el problema de la obediencia y la autoridad, la construcción de un orden temporal justo y la persecución. La obra es estética y teológica, aunque siendo puntilloso, echo en falta Sacramento y oración, sin los cuales los protagonistas se pueden tornar algo superficiales.</p> + +</body> +</html> diff --git a/slackware/index.html b/slackware/index.html @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Bitácora de instalación y uso de slackware</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Bitácora de instalación y uso de slackware</p> +<p class="date">16 de marzo de 2024 • fjbalon</p> +</header> +<p>Bueno, en un afán de aprendizaje y de purificación de mi sistema, tras problemas sufridos en X por las últimas actualizaciones de Archlinux, y el hartazgo producido por el obtuso sistema tentacular de <emb>systemd</emb> y todo su ecosistema invasivo; he optado por ir a los orígenes, a la distribución más vieja viva de GNU/Linux. Aquella distribución publicada por Patrick Volkerding en 1993 (es más vieja que yo, incluso), basada a su vez en <i>Softlanding Linux System (SLS)</i> de Peter MacDonald (1992).Una verdadera leyenda y tradición del ecosistema Unix.</p> +<p>Pero, ¿qué razones me han llevado a elegir Slackware como mi nueva distribución de cabecera? Aquí algunos puntos:</p> +<ol type="I"> +<li>Principio KISS (<i>Keep It Simple, Stupid!</i>), de sobra conocido por los usuarios de Arch, pero que en este caso se acentúa y se convierte en un heredero más cercano a la filosofía de Unix, si no es la distribución que más herencia de éste tiene.</li> +<li>Un robusto enfoque en la estabilidad y el soporte a (muy) largo plazo. A tan largo plazo que, estando actualmente en la versión 15 (2022), su anterior versión 14 se lanzó en 2012, una década de diferencia.</li> +<li>Como usuario avanzado, busco distribuciones que no me tomen por profano o, peor, idiota. Por ello las distribuciones avanzadas o expertas me resultan más asequibles que las que no lo son. La instalación en Slackware se realiza libremente mediante línea de comandos, si bien sí es cierto que ofrece un script <emb>setup</emb> que automatiza gran parte de estos procesos mediante <emb>dialog</emb> ó <emb>Ncurses</emb>, que hace que la instalación sea bastante sencilla, dentro de lo que cabe.</li> +<li>Slackware utiliza scripts de inicio <emb>init</emb> de <emb>BSD</emb>, mientras que la mayoría utilizaba entonces el estilo de scripts <emb>System V</emb> (ahora hay una práctica unanimidad en <emb>systemd</emb>). Los fieles del estilo BSD mencionan que es mejor ya que con este sistema es más fácil encontrar, leer, editar y mantener los scripts.</li> +</ol> +<p>Hay que decir también, que la instalación/uso inicial me ha dado algún tormento mental:</p> +<ol type="I"> +<li>Disco UEFI: utilizando en mi portatil primario el -modernísimo- sistema UEFI, la partición <emb>/boot</emb> me ha obligado a reiniciar varias veces el instalador desde el USB para dar con la clave y ejecutar de forma normal el sistema operativo. Utilizando, como de costumbre, 4 particiones sean: <emb>/boot</emb>, <emb>/</emb>, <emb>/home</emb> y <emb>[SWAP]</emb>. Sin detallar cada prueba realizada, puedo dejar registro que finalmente he mantenido la siguiente estructura de discos: +<pre><code>/dev/nvme0n1p1 2048 616447 614400 300M Sistema EFI +/dev/nvme0n1p2 616448 210331647 209715200 100G Sistema de ficheros de Linux +/dev/nvme0n1p3 210331648 1877987327 1667655680 795,2G Sistema de ficheros de Linux +/dev/nvme0n1p4 1877987328 1953525134 75537807 36G Linux swap</code></pre> +<p>O en otra vista como acostumbra <emb>lsblk</emb>:</p> +<pre><code>nvme0n1 259:0 0 931,5G 0 disk +├─nvme0n1p1 259:1 0 300M 0 part /boot/efi +├─nvme0n1p2 259:2 0 100G 0 part / +├─nvme0n1p3 259:3 0 795,2G 0 part /home +└─nvme0n1p4 259:4 0 36G 0 part [SWAP]</code></pre> +<p>El tipo de formato de disco es <emb>GPT</emb>, concretamente un <i>Samsung SSD 970 EVO Plus 1TB</i>, con fsformat en <emb>ext4</emb> excepto el disco de arranque, que está formateado en <emb>vfat</emb>. Importante esto último. Huelga decir, que como es lógico para muchos no he instalado <emb>LILO</emb> sino <emb>ELILO</emb>; versiones más simples y ligeras que el archiconocido <emb>grub</emb>.</p> +</li> +<li>El gestor de paquetes. Si bien estamos bastante acostumbrados al empleo de gestores de paquetes bastante generalistas y que centralizan gran parte de toda la gestión (<emb>pacman</emb>, <emb>apt</emb>...), debido a la simplicidad esencial de Slackware -y también a su férreo tradicionalismo- es un tema algo más complejo (paradójicamente). +<p>Como digo, llevo poco con Slackware y es bastante probable que dé alguna información errónea, si no herética. Pero un pequeño resumen puede ser que en este viejo sistema coexisten 3 gestores:</p> +<ol type="i"> +<li><emb>pkgtools</emb>: es el gestor de paquetes 'estándar' y 'predeterminado' en Slackware. Incluye herramientas como <emb>installpkg</emb>, <emb>removepkg</emb>, <emb>upgradepkg</emb>, etc. Tiene un uso parecido y típico al que estamos acostumbrados. Es extremadamente simple de usar y muy eficiente, sin embargo no tienen muchas características que consideraríamos avanzadas, como la resolución automática de dependencias, lo que aveces constituye un hueso. +<p>Como sorpresa bastante interesante, existe un script denominado <emb>rpm2tgz</emb> que te permite transformar los paquetes clásicos de <emb>RPM</emb> en instalable sencillo para Slackware, de tal forma que el resultado <emb>.tgz</emb> puede ser pasado como argumento a <emb>installpkg</emb>. Muy útil.</p> +</li> +<li><emb>sbopkg</emb>: es un gestor de paquetes para <a href="https://slackbuilds.org/">SlackBuilds.org</a>, que es un repositorio de scripts pseudográficos (<emb>dialog</emb>) que automatizan la compilación e instalación de software. <emb>sbopkg</emb> te permite buscar, descargar, compilar e instalar paquetes slacknuilds fácilmente desde la línea de comandos o una interfaz gráfica. Es muy útil para instalar software que no está incluido en los repositorios oficiales de Slackware; diríamos que es el equivalente a gestores que apuntan a AUR en Arch, como <emb>yay</emb>.</li> +<li><emb>slackpkg</emb>: es la herramienta de gestión de paquetes más similar a <emb>apt</emb> o <emb>yum</emb> de otras distros. Te permite buscar, instalar, actualizar y eliminar paquetes de los repositorios oficiales de Slackware. También puede manejar actualizaciones de seguridad y parches del sistema. Es útil para mantener tu sistema actualizado con los últimos paquetes disponibles en los repositorios oficiales de Slackware.</li> +</ol> +</li> +</ol> +</body> +</html> +\ No newline at end of file diff --git a/soloviov-papado/index.html b/soloviov-papado/index.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Argumentos de Vladímir Soloviov a favor del papado</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Argumentos de Vladímir Soloviov a favor del papado</p> +<p class="date">4 de marzo de 2019 • fjbalon</p> +</header> +<p>Vladímir Soloviov (1853-1900), considerado por muchos como uno de las mayores pensadores de la historia (Hans Urs von Balthasar se refirió a él como el segundo, sólo después de Santo Tomás de Aquino, «mayor artista del orden y organización en la historia del pensamiento»), filósofo, teólogo, poeta, escritor, pensador político y crítico literario, amigo de Fiódor Dostoyevski y pensador ruso ortodoxo ha dado, desde la Europa más oriental, varios de los argumentos a favor del papado más interesantes venidos de la Iglesia Ortodoxa.</p> +<p>Si bien no me gusta emplear el término ortodoxo alegremente en referencia a estas iglesias, puesto que parece evocar, por mi parte, que la Iglesia Católica Apostólica y Romana no practica de la ortodoxia, hecho evidentemente erróneo. No obstante, para no liar terminológicamente, emplearé el vocabulario típico para distinguir la Iglesia Católica de la(s) Iglesia(s) Ortodoxa(s).</p> +<p>El propio Soloviov defiende que el efecto más grave del cisma (el filósofo no elude el término) es el cesaropapismo, es decir, el control de la Iglesia por parte de los poderes laicos. Históricamente, cada vez que los emperadores pretendían dirigir la Iglesia Oriental, los Padres acudían a Roma a pedir protección al Papa, que defendía su causa y vencía los designios imperiales. Hasta que llegado el cisma, las iglesias orientales se separaron de la comunión católica, entregando su libertad a los poderes laicos.</p> +<p> La Iglesia rusa heredó el cesaropapismo de Bizancio, y habiendo cortado sus vínculos con Roma, se convirtió puramente en una Iglesia nacional, y es imposible que una iglesia así exista independientemente del control estatal. Este hecho es aplicable a cualquiera de las iglesias ortodoxas, que se forman así como se forman los estados y las naciones, justificándose así -dice Soloviov- que un estado ejerza supremacía sobre la autoridad intemporal debido a que ésta representa una iglesia nacional concreta. La verdadera libertad eclesiástica sólo es posible cuando la jerarquía de ésta está vinculada con el Reino de Cristo, es decir, con la Iglesia de Roma, que a diferencia de las iglesias nacionales, siempre ha mantenido su libertad eclesial. Esto también incumbe a la Iglesia Anglicana y ciertas Iglesias Protestantes, sumisas al poder temporal.</p> +<p>Evidentemente, toda iglesia dependiente del poder nacional rechaza la verdadera unidad con otras iglesias de igual naturaleza, pues los intereses nacionales las convierten en meros actores diplomáticos. No existe nada tal como la 'Iglesia Oriental', no habiendo más que Iglesias nacionales separadas e aisladas, que reclaman <i>una unidad basada en una indiferencia amplia pero profunda, que no implique un vínculo orgánico y que no requiera asociaciones efectivas entre Iglesias concretas</i>. Esto, evidentemente, confronta con la naturaleza de Iglesia Universal necesaria, que se ha convertido en meramente en un concepto abstracto. Soloviov propone un reto a todo aquel que confronta, desde las iglesias de Oriente, al papado: mostrar la unidad de la Iglesia Universal aparte del Papa, que nombren una sola acción que haya afectado a la Cristiandad, sin tener en cuenta el papado.</p> +<p>En palabras del filósofo, el contraste entre Oriente y Occidente se puede resumir en que, <i>mientras la Iglesia de Orente reza, la Iglesia de Occidente reza y trabaja</i>. Evidentemente, el ruso no critica la vida contemplativa, elevando la vida monástica más ascética (como aquellos monjes ortodoxos del Monte Athos), sin embargo apunta a la necesidad de la complementariedad entre ambos pulmones de la Iglesia Universal. Tal reconciliación, efectivamente, no implicaría nada nuevo, ni un cambio en su naturaleza o un repudio a su propia herencia, más bien por el contrario, se llama a restaurar el carácter universal de la fe por la reunificación con la únicamente verdadera Iglesia Universal: Roma.</p> +<p>Como es lógico, la posición de Soloviov no fue bien recibida por sus compatriotas ortodoxos, que poco interés tenía en los puntos de encuentro que compartían con los hombres del Oeste, sino más bien se aferraban a sus diferencias. Pareciera que todo lo que constituye -para ellos- las iglesias de Oriente son negaciones de la Doctrina Católica: la Inmaculada Concepción, el <i>filioque</i>, el propio Papado, etc. Soloviov llegó a describir la ortodoxia como una <i>simple protesta nacional contra el poder universal del Papa</i>. Pero, ¿en qué nombre protestan? ¿bajo qué autoridad? ¿qué alternativa proponen? La única alternativa pareciera un Concilio Ecuménico entre las iglesias, sin embargo, desde la ruptura con Roma, las Iglesias Orientales no han sido capaces de convocar ni un solo concilio de tal naturaleza, y probablemente nunca lo hagan.</p> +<p>Es llamativo también cómo cualquier cismático ortodoxo no tiene problema alguno en ver a cada obispo como un vicario de Cristo, sin embargo niegan esa misma calidad al Sucesor de Pedro. ¿Están estableciendo límites al poder de Cristo en su Reino? ¿aceptan que Cristo tiene autoridad para actuar a través de sus ministros en cualquier parte de su Reino Miliatnte, pero que Él entregase las Llaves del Reino a Pedro es ir demasiado lejos?.</p> +<p>Así, el papado es la única autoridad eclesiástica 'supranacional' (usando terminología moderna deliberadamente en confrontación con la nacionalidad de sus iglesias, sin embargo el término correcto debiera ser universal ó católico) e independiente, única forma por la cual puede ser realizada la misión de la Iglesia. De hecho, la unidad en el Papa es la única forma de defender una unidad social universal, por encima de intereses nacionales y personales, es la única forma lógica de mantener una autoridad unitaria que sirva de guía hacia Dios, y es la única Iglesia que ha defendido con éxito la libertad del poder intemporal sobre el control del poder temporal. <i>Es la única Iglesia contra la cual no han prevalecido las puertas del Hades</i>.</p> + +<cita> +<p>Como miembro de la Iglesia oriental u ortodoxa grecorrusa verdadera y venerable, que no habla ni a través de un sínodo anticanónico ni a través de los empleados del poder laico, sino a través de las palabras de los grandes Padres y Doctores, reconozco como juez supremo en materia de religión al que ha sido reconocido como tal por San Ireneo, San Dionisio el Grande, San Atanasio el Grande, San Juan Crisóstomo, San Cirilo, San Flavián, el santo Teodoreto, San Máximo el confesor, San Teodoro Studita, San Ignacio, y un largo etcétera, es decir, al apóstol Pedro, quien vive en sus sucesores y quien no escuchó las palabras del Señor en vano: «Tú eres Pedro, y sobre esta piedra edificaré mi Iglesia'' (Mt. 16:18); ''fortalece tu hermandad'' (Lucas 22:32); ''alimenta a mi ganado, alimenta a mis ovejas» (Juan 21:15, 16, 17)</p><p>Vladímir Soloviov (1853-1900)</p> +</cita> + +</body> +</html> +\ No newline at end of file diff --git a/sparse-files/index.html b/sparse-files/index.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Sparse files</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Dispersión de archivos (sparse files) como método eficiente de uso del espacio</p> +<p class="date">20 de mayo de 2023 • fjbalon</p> +</header> +<img class="color-invertible" style="width: 50%; float: left; margin-right: 1em;" src="resources/schema.png" /> +<p>En informática, un archivo disperso es un tipo utiliza más eficientemente el espacio del sistema de archivos cuando los bloques asignados a los archivos están en su mayor parte vacíos. Esto se consigue escribiendo breves metadatos que representan los bloques vacíos en el disco en vez del verdadero espacio 'vacío' que constituye dicho bloque, y utilizando así menos espacio en disco.</p> +<p>Cuando trabajamos clonando discos, a menudo nos surgen problemas de espacio en disco local, debido a que trabajamos con -normalmente- muchos gigabytes, e incluso terabytes hoy día. Los algoritmos de compresión nos ayudan a reducir considerablemente el uso que estas imágenes tienen del disco, permitiendo almacenar un número considerable. Sin embargo, existen ocasiones en las que requerimos trabajar con los discos sin compresión en local, por ejemplo, cuando necesitamos montar uno de ellos y trabajar sobre él. Para ello, la mejor técnica es emplear los conocidos «sparse files», que son un tipo de fichero con un tamaño específico, pero que no reserva dicho espacio en el sistema de ficheros.</p> +<p>dd permite guardar espacio con este tipo de ficheros usando el parámetro <emb>conv=sparse</emb>. Sin embargo, puede no ser tan optimizado debido al búfer utilizado (<emb>sparse try to seek rather than write the output for NUL input blocks</emb>). Por lo que si utilizamos un tamaño de bloque obs elevado, tendremos poca optimización. Para obviar este problema, podemos emplear directamente cp sobre el archivo comprimido:</p> + +<pre><code>gunzip -c /image.img.gz | cp --sparse=always /dev/stdin mini.img</code></pre> +<p>O bien directamente sobre el disco obviando el uso de dd:</p> + +<pre><code>cp --sparse=always /dev/sdx mini.img</code></pre> +<p>De tal forma que observamos una optimización general en función de los bits ocupados en disco, y teniendo como resultado una imagen completa sin apenas utilización de disco:</p> + +<pre><code>ls -hls + +4,8G -rw-r--r-- 1 balon users 477G ene 17 10:03 mini.img +2,3G -rw-r--r-- 1 balon users 2,3G ene 13 12:26 sdd.img.gz</code></pre> + + <h1>Bibliografía y recomendaciones</h1> +<ul> +<li><a href="https://en.wikipedia.org/wiki/Dd_(Unix)">dd - Wikipedia</a> / <a href="https://wiki.archlinux.org/title/Dd">dd - Archlinux Wiki</a></li> +<li><a href="http://blog.tdg5.com/tuning-dd-block-size/">Tuning dd block size</a>, tdg5</li> +<li><a href="https://unix.stackexchange.com/questions/731487/mount-compressed-disk-image-or-clone-with-dd-respecting-free-space">Mount compressed disk image or clone with dd respecting free space</a>, Unix&Linux (Stack Exchange)</li> +<li><a href="https://superuser.com/questions/1136357/why-didnt-dd-conv-sparse-save-space-as-i-expected">Why didn't `dd conv=sparse` save space as I expected?</a>, SuperUser (Stack Exchange)</li> +<li><a href="https://superuser.com/questions/622541/what-does-dd-conv-sync-noerror-do/1075837#1075837">What does dd conv=sync,noerror do?</a>, SuperUser (Stack Exchange)</li> +</ul> + +</body> +</html> +\ No newline at end of file diff --git a/sparse-files/resources/schema.png b/sparse-files/resources/schema.png Binary files differ. diff --git a/ssh-tunneling/index.html b/ssh-tunneling/index.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>SSH Tunneling</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">SSH Tunneling</p> +<p class="date">28 de marzo de 2019 • fjbalon</p> +</header> +<p>El tunneling es un proceso por el que se utiliza el protocolo SSH para fortificar la comunicación entre otros protocolos inseguros, por ejemplo para realizar peticiones HTTP, SMTP, etc.</p> +<p>Los túneles pueden ser locales o remotos. En los túneles locales, la máquina del administrador o cliente redirecciona un puerto local hacia un puerto de la máquina remota, a la que se disponga de acceso. En los túneles remotos se redirecciona un puerto remoto dela máquina remota, a la que se disponga de aacceso, a un puerto de la máquina local, donde se encuentra el administrador.</p> +<p>La sintaxis para la creación de un túnel local hacia el puerto remoto de la máquina remota es la siguiente:</p> + <pre><code>$ ssh -L [direccion de escucha:]puerto escucha:maquina remota: puerto remoto usuario@server</code></pre> +<img class="color-invertible" src="resources/ssh01.png"/> + + El escenario idóneo para la utilización de túneles SSH locales es el siguiente: +<ul> +<li>Máquina A con conexión a Internet requiere conexión a máquina C, que se encuentra detrás de un servidor que impide el paso. En otras palabras, la máquina C no es accesible desde Internet.</li> +<li>El usuarioo de la máquina A dispone de cuenta en una máquina B. La máquina B es el servidor que proporciona la salida a Internet a la máquina C. La máquina A creará un túnel con la máquina B y a través del forwarding (véase sección \ref{sshforwarding} para más detalle) de la máquina B llegará a la máquina C.</li> +<li>Lo importante es proteger la comunicación en Internet entre la máquina A y B. La comunicación entre B y C puede ir sin cifrar, ya que se encentra en una Intranet. Aunque también puede ser altamente recomendable fortificar dicha comunicación.</li> +</ul> +<p>El túnel remoto, por su lado, generará un socket a la escucha en un servidor, el cual al recibir una petición reenviará el tráfico mediante SSH a la máquina local donde se encuentre el administrador. La sintaxis es:</p> + +<pre><code>$ ssh -R puerto local:maquina remota:puerto remoto</code></pre> +<img class="color-invertible" src="resources/ssh02.png"/> +<p>Un ejemplo sería querer que una máquina en Internet llegase al interior de la Intranet a través de una máquina puente de la propia red privada, manteniendo una interfaz hacia Internet. El escenario sería el siguiente:</p> +<ul> +<li>Máquina A, la máquina se encuentra en una red interna.</li> +<li>Máquina B, máquina con conectividad con A e interfaz en Internet.</li> +<li>Máquina C, máquina externa con conectividad con B, pero no con A.</li> +</ul> +<p>Estas técnicas cuentan con una serie de escenarios muy interesantes, siendo los más usuales:</p> +<ul> +<li>Usar un túnel externo para atravesar el firewall y acceder a un recurso que ofrece un equipo de la intranet:</li> + <pre><code>$ ssh -L 7900:localhost:5900 usuario@internal +</code></pre> +<li>Usar un túnel externo para atravesar el firewall y acceder a un recurso de una intranet. Pero además cualquier equipo puede conectarse a dicho equipo de la intranet a través de una conexión con el equipo externo:</li> + <pre><code>$ ssh -L 0.0.0.0:7900:localhost:5900 usuario@internal +</code></pre> +<li>Usar un túnel interno para que los equipos de fuera de la red se conecten al interior. Esta acción se realizará mediante túneles remotos:</li> + <pre><code>$ ssh -R 7900:localhost:5900 usuario@internal +</code></pre> +<li>Túnel interno para que equipos de fuera de la red se conecten al interior, pero además que otros equipos del exterior puedan conectarse a través del externo remoto:</li> + <pre><code>$ ssh -R 0.0.0.0:7900:localhost:5900 usuario@internal +</code></pre> +<li>Utilizar un túnel para que desde una máquina externa se pueda atravesar el firewall y realizar el forwarding en una máquina interna, y que esta reenvíe el tráfico a la segunda máquina interna:</li> + <pre><code>$ ssh -L 7900:internal2:5900 usuario@internal +</code></pre> +</ul> + +</body> +</html> +\ No newline at end of file diff --git a/ssh-tunneling/resources/ssh01.png b/ssh-tunneling/resources/ssh01.png Binary files differ. diff --git a/ssh-tunneling/resources/ssh02.png b/ssh-tunneling/resources/ssh02.png Binary files differ. diff --git a/ssh/index.html b/ssh/index.html @@ -0,0 +1,258 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Robustecimiento y securización del protocolo SSH</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Robustecimiento y securización del protocolo SSH</p> +<p class="date">20 de febrero de 2019 • fjbalon</p> +</header> +<p>SSH es uno de los protocolos más interesantes de los que dispone el administrador de sistemas, permitiendo acceder a otros equipos de forma remota; pero sobretodo, de forma segura. Con SSH creamos un túnel entre cliente y servidor que simula, en la capa de aplicación, la shell o intérprete de comandos del servidor, dotando al administrador de toda funcionalidad en el equipo.</p> +<p>SSH puede considerarse una evolución del protocolo Telnet, pero el primero cuenta con técnicas de criptografía para proteger los datos intercambiados entre ambos nodos que conforman la conexión SSH. SSH utiliza un intercambio de claves basado en el protocolo criptográfico de Diffie-Hellman, imprescindible en el robustecimiento de la capa de transporte.</p> +<p>SSH trabaja sobre el protocolo TCP/IP. Por ello, en primer lugar se realiza la conexión TCP, realizando el three-way handshake. Después de abrir la conexión, cliente y servidor se envían la versión disponible del protocolo. Se utilizará luego el par de claves, pública y privada, de RSA. El servidor enviará su clave pública de host al cliente, de forma que éste pueda cifrar lo que necesite enviar al servidor. El cliente comparará la clave pública de host con la que tenga almacenada en el archivo known_hosts, si lo hubiera.</p> +<p>Una vez el cliente dispone de la clave pública del host del servidor, este generará una clave de sesión aleatoria y seleccionará un algoritmo de cifrado simétrico. Con esta clave de sesión, que se generará por defecto cada 3600 segundos, se cifrará el túnel. El cliente enviará un mensaje que contiene la clave de sesión y el algoritmo de cifrado seleccionado, información que viajará cifrada mediante la clave pública de host, al servidor. En este instante, el resto de la comunicación se utilizará el algoritmo de cifrado simétrico y la clave compartida de sesión, dando velocidad a la conexión (en técnicas de clave simétrica el cifrado y descifrado se hace más rápido), pero utilizando siempre primero el protocolo de Diffie-Hellman para poder enviar de forma segura la clave compartida de sesión; y supliendo así la principal carencia en seguridad de los algoritmos de criptografía simétrica: el intercambio de claves.</p> +<p>Con el túnel creado, se llevará a cabo la autenticación del usuario en el servidor, pudiendo utilizar distintos métodos para llevar a cabo tal autenticación.</p> +<img src="resources/ssh00.png" style="width: 70%;"/> + + <h1>Autenticación mediante par de claves</h1> +<p>una conexión común usando el protocolo SSH es de por sí segura; al menos más segura que una conexión no cifrada como telnet, pero presenta, grosso modo dos inconvenientes:</p> +<ul> +<li>La contraseña, aún yendo cifrada, viaja por la red siempre que nos autenticamos. Esto puede ser peligroso en el caso que haya alguien sniffeando el tráfico de nuestra red y fuese capaz de descifrar nuestra clave (mediante ataques por fuerza bruta o diccionario, utilizando alguna vulnerabilidad conocida, etc.).</li> +<li>En el caso de manejar numerosos servidores y conexiones SSH puede ser muy tedioso tener que estar recordando contraseñas, almacenandolas, etc. Este método agregaría un plus de comodidad y escalabilidad a las conexiones.</li> +</ul> + + La implementación del algoritmo RSA presenta solución a estos problemas. Su funcionamiento es: +<ol> +<li>El cliente envía información sobre su clave pública al servidor.</li> +<li>El servidor busca en su base de datos la clave pública del cliente y, cuando la encuentra, envía al cliente un challenge (desafío), que contiene un número aleatorio generado y cifrado por éste utilizando la clave pública del cliente.</li> +<li>El cliente recibe el paquete cifrado y usa su clave privada para descifrarlo y devolvérselo al servidor.</li> +<li>El servidor comprueba que el número devuelto es el que mandó cifrado, en caso afirmativo, el usuario se ha autenticado y se le permite la sesión de shell.</li> +</ol> +<p>En ningún momento se envían claves por Internet (más que el envío de la clave pública al servidor en el primer contacto, para que éste la conozca). Por supuesto si alguien accede a nuestro equipo y nos roba la clave privada podría autenticarse como nosotros y suplantar nuestra identidad criptográfica. Por esta razón es necesario proteger las distintas formas de acceso, desde cifrado de particiones a configuración estricta de permisos.</p> +<p>También es posible asignar un cifrado simétrico sobre las claves asimétricas, dando una capa extra de seguridad a cambio de tener que introducir una clave cada vez que la usemos.</p> +<p>La configuración del servidor oldscizor es sencilla:</p> + +<pre><code># /etc/ssh/sshd_config +RSAAuthentication yes +PubkeyAuthentication yes +AuthorizedKeysFile %h/.ssh/authorized_keys</code></pre> +<p>Véase la última línea, donde añadimos el fichero que almacenará las claves públicas de los clientes reconocidos. Si no existiera este directorio y/o fichero deberemos crearlo.</p> +<p>Por otro lado, la configuración del cliente scizor consiste en la generación del par de claves RSA para éste:</p> + +<pre><code>$ ssh-keygen -t rsa +Generating public/private rsa key pair. +Enter file in which to save the key (/home/scizor/.ssh/id_rsa): +/home/scizor/.ssh/rsa +Enter passphrase (empty for no passphrase): +Enter same passphrase again: +Your identification has been saved in /home/scizor/.ssh/rsa +Your public key has been saved in /home/scizor/.ssh/rsa.pub +The key fingerprint is: +SHA256:aVgQfYrakZnFhaw4Gcl0bHqrJj7QtR3dXm332wx9qdE scizor@client +The key's randomart image is: ++---[RSA 3072]----+ +| o.o+= o. | +| +.o.* . | +| * O.+ . | +| * Xoo.. . o .| +| . . B.+S. . ..oo| +|. . o +. . ..E+| +| . . oo+| +| o o . .o| +| ..+ | ++----[SHA256]-----+</code></pre> +<p>A continuación debemos configurar el ssh-agent para añadirle nuestra clave privada emparejada con la pública que enviaremos al servidor, de forma que, ejecutándose junto a la sesión, éste esté vinculado a ella directamente.</p> + +<pre><code>$ eval $(ssh-agent -s) +Agent pid 15081 +$ ssh-add ~/.ssh/rsa +Identity added: /home/scizor/.ssh/rsa +(/home/scizor/.ssh/rsa)</code></pre> + + Otra opción es utilizar el fichero config: + +<pre><code># ~/.ssh/config +Host oldscizor.es + User scizor + IdentityFile ~/.ssh/server_key</code></pre> +<p>La clave pública deberá ser enviada al servidor y almacenada en authorized_keys o en el fichero seleccionado.</p> + +<pre><code># cat ~/.ssh/authorized_keys +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCoaiQqlc0hhqdVsh52sB/ui +ISb1pRU/6DVWqyvpCYWQOd8PGNGjuFwYeOnTQ1mZYppuNoXmQxzKXJXGK4ke/ +4HcgRHj9l2zZL0LBacnU1NEszqVYUgpI4+1qbyMi0LQZTpKedGULFcSVa1QDt +SWTLeQIYTK7dphN4wo7cer9EFkfj5Z1ZNWSjC4blTFTGD2L03aSUklek+BHkk +FFGYmVKw/+VD7aOA+Imsb/qHp1eUhEKcHSlWPfDS6qf+GwJoB72v4TMCH1At1 +fM2LP8o/eRF31fZdRJGOHL+MzfXR0RqS1SLfr/1g6NRohmu1BFFdQQxisovPf +h1iOBs4apqQjRl6P6qQziwSVShkkzDW0xOnIflWwbYjo/w1SFN5YzwDaOV3QK +VYEeHQGm2mdwPGqPxyeyTaCZqf5Ca2k/Gv53BlRCUb3ATpXTbN6HzIliOUtFm +idUAYQwYM0n7VMpL7NW+/1ap6UthX/ep/CjcxGqYZc4+iTSSSict9caCSGSY+ +Ec= scizor@client</code></pre> +<p>Finalizada la configuración, observamos el proceso de conexión mediante el parámetro verbose:</p> + +<pre><code>$ ssh -v oldscizor.es +OpenSSH_8.8p1, OpenSSL 1.1.1l 24 Aug 2021 +debug1: Reading configuration data /home/scizor/.ssh/config +debug1: /home/scizor/.ssh/config line 9: Applying options for oldscizor.es +debug1: /home/scizor/.ssh/config line 13: Applying options for oldscizor.es +debug1: Reading configuration data /etc/ssh/ssh_config +debug1: Connecting to oldscizor.es [54.38.52.183] port 22. +debug1: Connection established. +debug1: identity file /home/scizor/.ssh/oldscizor type 0 +debug1: identity file /home/scizor/.ssh/oldscizor-cert type -1 +debug1: identity file /home/scizor/.ssh/scizorc type 0 +debug1: identity file /home/scizor/.ssh/scizorc-cert type -1 +debug1: Local version string SSH-2.0-OpenSSH_8.8 +debug1: Remote protocol version 2.0, remote software version OpenSSH_7.9p1 Debian-10+deb10u2 +debug1: compat_banner: match: OpenSSH_7.9p1 Debian-10+deb10u2 pat OpenSSH* compat 0x04000000 +debug1: Authenticating to oldscizor.es:22 as 'scizor' +debug1: load_hostkeys: fopen /home/scizor/.ssh/known_hosts2: No such file or directory +debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory +debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory +debug1: SSH2_MSG_KEXINIT sent +debug1: SSH2_MSG_KEXINIT received +debug1: kex: algorithm: curve25519-sha256 +debug1: kex: host key algorithm: ssh-ed25519 +debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none +debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none +debug1: expecting SSH2_MSG_KEX_ECDH_REPLY +debug1: SSH2_MSG_KEX_ECDH_REPLY received +debug1: Server host key: ssh-ed25519 SHA256:d6TuEWkCHpZXztBeSP2s2dVCRC+nHu3a2JxnJXioA34 +debug1: load_hostkeys: fopen /home/scizor/.ssh/known_hosts2: No such file or directory +debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory +debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory +debug1: Host 'oldscizor.es' is known and matches the ED25519 host key. +debug1: Found key in /home/scizor/.ssh/known_hosts:7 +debug1: rekey out after 134217728 blocks +debug1: SSH2_MSG_NEWKEYS sent +debug1: expecting SSH2_MSG_NEWKEYS +debug1: SSH2_MSG_NEWKEYS received +debug1: rekey in after 134217728 blocks +debug1: Will attempt key: /home/scizor/.ssh/oldscizor RSA SHA256:zFOQBJRsUuKhgVyvCkKaJDcJ/Y7qWq2VEN1lRkJxL74 explicit +debug1: Will attempt key: /home/scizor/.ssh/scizorc RSA SHA256:0zdBByBWUvwkcfgcRYL68IdoNMOmJwijG2QiHsgcTaM explicit +debug1: SSH2_MSG_EXT_INFO received +debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521> +debug1: SSH2_MSG_SERVICE_ACCEPT received +debug1: Authentications that can continue: publickey +debug1: Next authentication method: publickey +debug1: Offering public key: /home/scizor/.ssh/oldscizor RSA SHA256:zFOQBJRsUuKhgVyvCkKaJDcJ/Y7qWq2VEN1lRkJxL74 explicit +debug1: Server accepts key: /home/scizor/.ssh/oldscizor RSA SHA256:zFOQBJRsUuKhgVyvCkKaJDcJ/Y7qWq2VEN1lRkJxL74 explicit +Authenticated to oldscizor.es ([54.38.52.183]:22) using "publickey". +debug1: channel 0: new [client-session] +debug1: Requesting no-more-sessions@openssh.com +debug1: Entering interactive session. +debug1: pledge: filesystem full +debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0 +debug1: client_input_hostkeys: searching /home/scizor/.ssh/known_hosts for oldscizor.es / (none) +debug1: client_input_hostkeys: searching /home/scizor/.ssh/known_hosts2 for oldscizor.es / (none) +debug1: client_input_hostkeys: hostkeys file /home/scizor/.ssh/known_hosts2 does not exist +debug1: client_input_hostkeys: no new or deprecated keys from server +debug1: Remote: /home/scizor/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding +debug1: Remote: /home/scizor/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding +Linux oldscizor 4.19.0-17-cloud-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 + +The programs included with the Debian GNU/Linux system are free software; +the exact distribution terms for each program are described in the +individual files in /usr/share/doc/*/copyright. + +Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent +permitted by applicable law. +Last login: Tue Nov 16 21:56:22 2021 from 172.16.7.12 +scizor@oldscizor:~$</code></pre> +<p>El cliente lee el fichero ssh_config antes de realizar la conexión al servidor oldscizor.es en su puerto por defecto 22. Tras esto, se crea la conexión TCP y, una vez se realiza el three-way handshake entre cliente y servidor, la conexión queda establecida; pero aún no existe canal cifrado.</p> +<p>El cliente verifica la existencia de posibles claves privadas y verifica si se encuentra alguna en la lista negra. Una vez realizado este proceso, verifica también la versión del protocolo. Es en este instante en el que se intercambian la clave pública host del servidor al cliente, para que éste pueda generar y cifrar la clave simétrica, la cual será la encargada de cifrar el canal.</p> +<p>Una vez el cliente recibe la clave del host, la verifica en el fichero known_hosts. Si se encuentra, se verifica la identidad del servidor. Si por el contrario no se encuentra mostraría un mensaje avisando de la posible suplantación (por defecto).</p> +<p>Tras aceptar el cliente al servidor, verificando la identidad de éste, se establece la conexión en un canal ya seguro. El servidor envía el banner y el cliente lo muestra por pantalla. Despues, el servidor envía al cliente los métodos de autenticación para el usuario de los que se disponen y el cliente valorará su configuración previamente cargada para realizar la autenticación pertinente; que en nuestro ejercicio es una autenticación basada en claves RSA, y tras autenticarse, se envían desde el servidor las variables de entorno de la sesión y proporciona el control de la shell en remoto.</p> + + <h1>Aplicaciones del protocolo SSH</h1> +<p>Sobre SSH existen varias aplicaciones que sirven de arsenal bastante completo al administrador de sistemas. Enumero las que conozco:</p> +<h2>Automatización envío de claves públicas RSA</h2> +<p>La utilidad ssh-copy-id permite enviar las claves públicas directamente a tantos servidores sea necesario, automatizando y simplificando la comunicación cifrada contra múltiples equipos sin necesidad de abrir una sesión en cada uno de ellos.</p> + +<pre><code> .---------------------------------------. + | aws:/home/thufir/.ssh/authorized_keys | + |---------------------------------------| + | ssh-rsa AAAA... user10@host | + '---------------------------------------' + ^ + | + | + ssh-copy-id | .---------------------------------------. + | | aws:/home/ubuntu/.ssh/authorized_keys | + .---' |---------------------------------------| + | | ssh-rsa AAAA... user10@host | + | '---------------------------------------' + | ^ +.---------------------------------------. | +| local:/home/user10/.ssh/id_rsa | | ssh-copy-id +| Private Key | | +|---------------------------------------| | +| BEGIN RSA PRIVATE KEY |----------. +| Proc-Type: 4,ENCRYPTED | | +| DEK-Info: AES- | | ssh-copy-id +'---------------------------------------' | + | v + | .---------------------------------------. + '---. | aws2:/home/user5/.ssh/authorized_keys | + | |---------------------------------------| + | | ssh-rsa AAAA... user10@host | + ssh-copy-id | '---------------------------------------' + | + v + .----------------------------------------. + | aws2:/root/.ssh/authorized_keys | + |----------------------------------------| + | ssh-rsa AAAA... user10@host | + '----------------------------------------'</code></pre> +<h2>Automatización de contraseñas con sshpass</h2> +<p>Aunque no soy amigo de utilizar la autenticación básica por contraseña en mis infraestructuras SSH, a veces es necesario autenticar de esta forma, y nunca esta utilidad que permite al usuario cierta automatización a la hora de gestionar conexiones, principalmente cuando esta administración se hace desde otros programas o scripts donde no puede haber interactividad directa. La utilidad sshpass está diseñada para ejecutar SSH utilizando el modo de autenticación de contraseña interactiva de teclado, pero de una manera no interactiva, utilizando acceso TTY directo para garantizar que la contraseña sea emitida por un usuario de teclado interactivo, engañando a SSH haciéndole creer que está obteniendo la contraseña de un usuario interactivo.</p> +<p>Su modo de uso es tan sencillo como indicar previamente a la comunicación con el servidor SSH la clave de éste tras el comando propio de sshpass:</p> + +<pre><code>$ sshpass -p !4u2tryhack ssh user@host</code></pre> +<h2>SCP</h2> +<p>SCP o Secure Copy es un protocolo similar funcionalmente a RCP (Remote Copy), cuyo objetivo es transferir archivos desde una máquina a otra. La diferencia entre ambos protocolos es que SCP utiliza el protocolo SSH para establecer sus comunicaciones, estableciendo un túnel cifrado por el que enviar dichos archivos.</p> +<p>La ejecución de SCP es realmente sencilla, contando con la sintaxis:</p> + +<pre><code>$ scp [opciones] origen destino</code></pre> +<p>Donde el origen o destino local es la ruta, ya sea absoluta o relativa y el origen o destino remoto cumple con su propia sintaxis:</p> + +<pre><code>usuario@host:<ruta_archivo></code></pre> +<p>De tal forma que para enviar un archivo a un servidor mantendríamos la sintaxis:</p> +<pre><code>$ scp /home/scizor/archivo oldscizor.es:/usr/archivo</code></pre> +<p>Y siendo la forma inversa:</p> + +<pre><code>$ scp oldscizor:/usr/archivo2 /home/scizor/archivo2</code></pre> +<p>Cabe destacar que también podemos realizar copias seguras entre máquinas remotas, no necesariamente debe ser una origen o destino local:</p> + <pre><code>$ scp oldscizor.es:/root/origen root@172.16.1.2:/etc/destino</code></pre> + <h2>SFTP</h2> +<p>SSH File Transfer Protocol o SFTP permite el envío de ficheros a nivel de aplicación, a través de SSH, utilizando las aplicaciones y los comandos propios del protocolo FTP. Es sabido que el protocolo FTP no es seguro per se, debido a que no cuenta con cifrado.</p> +<p>La sintaxis es similar al protocolo FTP, manteniendo una vez establecida la conexión una cadena de conexión a nivel de aplciación similar a SSH.</p> + +<pre><code>$ sftp oldscizor.es +Connected to 10.101.5.3- +sftp></code></pre> +<h2>SSHFS</h2> +<p>El protocolo SSH dispone de la posibilidad de gestionar el sistema de archivos de manera remota y segura utilizando SSHFS o Secure Shell File System. En el equipo local donde se realiza el montaje de SSHFS, la implementación hace uso del módulo del kérnel FUSE.</p> +<p>La sintaxis es sencilla. Se debe ejecutar el comando sshfs seguido de la ruta remota que se quiere montar localmente y, por último, la ruta local que se utilizará como punto de montaje.</p> + +<pre><code>$ mkdir fs +$ sshfs oldscizor.es:/home/git fs +$ ls -l fs +drwxr-xr-x 7 git git 4096 Nov 15 09:47 arch.git +drwxr-xr-x 7 git git 4096 Oct 25 16:31 automata.git +drwxr-xr-x 7 git git 4096 Nov 12 10:33 crypto.git +drwxr-xr-x 7 git git 4096 Nov 12 10:22 dmenu.git +drwxr-xr-x 7 git git 4096 Nov 15 09:32 dotfiles.git +drwxr-xr-x 7 git git 4096 Nov 9 23:32 dwm.git</code></pre> +<p>Una vez realizado el montaje, se puede utilizar cualquier tipo de operación como si la ruta fuera local. También podemos utilizar sobre el punto de montaje cualquier software, como un gestor de archivos gráfico para desempeñar el trabajo que sea. Todas las acciones remotas las hará de forma transparente al usuario y mediante un túnel cifrado.</p> +<h2>X11 forwarding</h2> +<p>Esta opción del protocolo SSH permite al usuario conectarse a un servidor para levantar procesos que requieran de un servidor gráfico para su interacción. De tal modo que un administrador pueda, por ejemplo, ejecutar un navegador en un servidor remoto, y la presentación gráfica se realizará en la máquina local a pesar del proceso encontrarse ejecutando en la máquina remota. Evidentemente, toda comunicación cliente-servidor se realizará de manera segura mediante el protocolo SSH, por lo que los datos de presentación del proceso viajarán por la red bajo este protocolo. Para poder redirigir la salida de las ventanas de los procesos que se ejecutan, el servidor debe habilitar la directiva X11Forwarding en su fichero sshd_config.</p> +<p>Si bien el <a href="../ssh-tunneling/">SSH Tunneling</a> puede considerarse una aplicación del protocolo, he decidido hacer una entrada a parte sólo para ese caso, pues es más complejo y especial.</p> + +</body> +</html> +\ No newline at end of file diff --git a/ssh/resources/ssh00.png b/ssh/resources/ssh00.png Binary files differ. diff --git a/ssh/resources/ssh01.png b/ssh/resources/ssh01.png Binary files differ. diff --git a/ssh/resources/ssh02.png b/ssh/resources/ssh02.png Binary files differ. diff --git a/static-site/index.html b/static-site/index.html @@ -0,0 +1,91 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Cómo gestionar un sitio web estático (HTML+CSS)</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Cómo gestionar un sitio web estático (HTML+CSS)</p> +<p class="date">23 de abril de 2024 • fjbalon</p> +</header> +<p>Es complicado a menudo explicar el por qué utilizar una web estática es algo conveniente, ya que en el imaginario del vulgo sigue viéndose como algo arcaico, del Internet del siglo pasado quizás, inutilizable. Más aún en una época en la que se encuentra tan engordada la web de servicios, web 2.0, aplicaciones, etcétera. Sin embargo, la simplificación y el uso de esta forma práctica de publicación del servicio, trae innato una serie de conveniencias y ventajas tanto para el programador, como para el servidor y como para el cliente que no deberíamos menospreciar.</p> +<p>Pero, ¿qué es un sitio estático?. La definición puede ser algo polémica, a veces, pero <i>grosso modo</i> es un sitio que se compone de archivos preconstruidos, que no dinamiza la información en función de una base de datos o de <i>backend</i>. </p> +<p>También, se suele añadir en círculos más tradicionalistas la ausencia de javascript, o al menos, la mínima usable por requerimiento. Un sitio web desprovisto de todo javascript es ciertamente una estética <i>per se</i>. El hecho de buscar disponer de toda la información sin dinamismo, hace que el sitio se encuadre en un halo de simplicidad más que atractivo.</p> +<p>Entonces, ¿qué ventajas podemos categorizar o matematizar para un sitio web estático?</p> +<ul> +<li>Tiempos de carga menos elevados, así como paquetes de datos más livianos. Ligereza, podríamos resumir.</li> +<li>Seguridad por la simplificación del proceso, tanto para la parte del cliente como para el servidor, la ausencia de código que se ejecute en el servidor (php) o en el cliente (javascript) reduce significativamente riesgo y vectores de ataque. Esto es elemental además en sitios web dentro de redes anónimas cifradas, como tor o i2p.</li> +<li>Simplicidad visual y estética minimalista por necesidad.</li> +<li>El programador se hace más consciente de las cargas de trabajo, texto reutilizado, estructura redundante o ineficiente, etcétera. En otras palabras, el administrador del sitio es más cognosciente del propio sitio.</li> +<li>Usabilidad y escalabilidad por parte de usuarios <i>heterodoxos</i>, como los que usan navegadores sin soporte para javascript (o al menos los que usan plugins (like)<i>no-script</i>), los que usan navegadores basados en texto... Al fin y al cabo, la experiencia de usuario se suavizará y será más o menos similar para todos; ofreciendo en este caso equidad.</li> +</ul> +<h2>Modo oscuro</h2> +<p>No son pocas las ocasiones en que los sitios web ofrecen, a través de código javascript y cookies, sistemas de switch (o conmutador, en cristiano) de los sistemas claros/oscuros. Por la salud visual de los lectores, creo importante mantener este elemento fácil (aunque no siempre es aplicable, claro está).</p> +<p>En mi experiencia personal, creo que con un modo claro (en base a blanco) y un moco oscuro (base a negro puro) es más que suficiente. Además, el segundo se supone que aporta un mejor rendimiento en pantallas amoled, y visualmente un negro puro queda mucho más estético, a pesar de la tentación de mantener unos tonos grisáceos que, según otros, mejoran enormemente la lectura; pero ni tengo el conocimiento para defenderlo ni el necesario para atacarlo. El negro puro se constituye como un elemento, en mi uso personal, básico: utilizo un gestor de ventanas en mosaico con fondo negro, el fondo de la terminal st en negro, etc. Quiero entonces que, en cohesión con mi ecosistema, el fondo sea negro. Simple.</p> +<p>¿Cómo lograrlo? Simple, CSS trae la solución consigo: la función de medios CSS <emb>prefers-color-scheme</emb> se utiliza para detectar si un usuario ha solicitado temas de colores claros u oscuros, siendo que indica su preferencia a través de una configuración del sistema operativo o una configuración del agente de usuario que indica el propio navegador.</p> +<p>De tal forma que podemos configurar las preferencias para el modo claro o <emb>light</emb> y oscuro o <emb>dark</emb>. Tampoco es estrictamente necesario establecer ambos, simplemente con dejar uno, el otro se establecería como defecto negativo.</p> +<pre><code>@media (prefers-color-scheme: light) { + body { + color: black; + background-color: white; + } +} + +@media (prefers-color-scheme: dark) { + body { + color: white; + background-color: black; + } +}</code></pre> +<p>Pero el problema de todo modo switch de modo oscuro son las imágenes. No hablamos de imágenes vectoriales como SVG, que tienen ya el propio soporte en CSS, sino imágenes de mapas de bits que, a menudo, no tienen siempre transparencia y el fondo blanco contrasta con el fondo negro, dejando un aspecto poco estético. </p> +<p>Hay varias formas de solucionar esto:</p> +<ol> +<li> +<p>Utilizando un switch con dos imágenes, una para modo claro y otra para modo oscuro. Indicando un CSS:</p> +<pre><code>.only-on-dark { + display: none; +} + +@media (prefers-color-scheme: dark) { + .only-on-dark { + display: block; + } + + .only-on-light { + display: none; + } +}</code></pre> +<p>De tal forma que se indique en el HTML ambas imágenes con la clase a la que se deben:</p> +<pre><code><img class="only-on-dark" src="dark-image.png" /> +<img class="only-on-light" src="image.png" /></code></pre> +<p>Quizá sea preferible también embeberlo directamente en el HTML, de tal forma que:</p> +<pre><code><picture> + <!-- Usuario prefiere modo claro --> + <source srcset="image.png" media="(prefers-color-scheme: light)"/> + + <!-- Usuario prefiere modo oscuro --> + <source srcset="dark-image.png" media="(prefers-color-scheme: dark)"/> + + <!-- Usuario no indica preferencia --> + <img src="image.png"/> +</picture></code></pre> +<p>De esta forma evitaríamos la descarga de la variante oculta.</p> +</li> +<li> +<p>Una seguna solución, más eficiente en cuanto a que no necesitaríamos dos versiones de la imagen, sería invertir a través de CSS el color de la imagen original (siempre en el caso de que la inversión no suponga la subversión de la imagen, claro está) en caso de encontrarnos en modo oscuro.</p> +<p>De tal forma que mantendríamos una clase, sea por ejemplo <emb>color-invertible</emb>, que identificaría a la imagen:</p> +<pre><code><img class="color-invertible" src="image.png"/></code></pre> +<p>Para que en el CSS le indicásemos, dentro de <emb>prefers-color-scheme: dark</emb>:</p> +<pre><code>@media (prefers-color-scheme: dark) { + .color-invertible { + filter: invert(100%); + } +}</code></pre> +</li> +</ol> +</body> +</html> +\ No newline at end of file diff --git a/style.css b/style.css @@ -19,22 +19,15 @@ h1 { margin-bottom: 10px; } -.subtitle { - font-size: 1.1rem; - color: var(--accent); - font-style: italic; - margin-bottom: 20px; -} - .menu { - font-style: italic; + font-style: bold; text-align: center; margin: 1.5rem 0; } .menu a { color: inherit; - text-decoration: none; + /* text-decoration: none; */ } .menu a:hover { diff --git a/swap/index.html b/swap/index.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Sobre la necesidad de la memoria Swap</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Sobre la necesidad de la memoria Swap</p> +<p class="date">27 de febrero de 2020 • fjbalon</p> +</header> + + <p>El caso que hoy me ocupa, nace de la necesidad de apagar la memoria de intercambio (o swap) en mi equipo portátil para poder gestionar varias pruebas sobre clústers de kubernetes. Algo curioso, pues ningún programa me había obligado nunca a apagar la swap para funcionar (ya sé que puedo configurar kubernetes para evitar esta obligación, pero no se trata de un artículo sobre cómo evadir esta opción, sino de la memoria swap en sí). A raíz de este hecho, han avivado en mi memoria las viejas discusiones sobre la necesidad, o no, de la memoria de intercambio.</p> + + <p>Allá por el 2008, <a href="https://etbe.coker.com.au/2007/09/28/swap-space">Russell Coker discutía</a> sobre el uso de memoria swap que se daba en sistemas Unix, asegurando que la 'tradición' de utilizar el doble de swap que de RAM era obsoleto con las memorias de entonces (imagínese las actuales), llegando a la conclusión de que el tamaño más adecuado es el mismo que el tamaño de la memoria RAM siempre que ésta sea inferior a 1GB; la mitad del tamaño de la RAM cuando ésta tenga un tamaño de entre 2GB y 4GB; y 2GB de swap cuando el tamaño de la RAM sea mayor de 4GB. Coker además dudaría que exista ningún sistema de almacenamiento masivo que pueda manejar la carga de más de 2GB de espacio de intercambio en uso activo.</p> +<p>¿Es necesaria la swap? La pregunta nace debido a que, por otro lado, hay quien defiende que hoy en día, con módulos de memoria baratos y de tal almacenamiento (tenga en cuenta que en mi equipo portátil tengo un almacenamiento de 32GB RAM), y debido al hecho de que el propio uso de memoria de intercambio supone una caída importante de rendimiento, la swap estaría obsoleta. También influye la idea de que, debe ser preferible tener suficiente RAM para evitar que llegue a sobrecargarse nunca y a necesitar espacio adicional, quedando éste relegado para máquinas con poca RAM o equipos antiguos.</p> +<p>Al respecto, <a href="https://web.archive.org/web/20081022092522/http://sourcefrog.net/weblog/software/linux-kernel/swap.html">Martin Pool aseveraba en 2004</a>, que cuando el sistema empieza a quedarse sin memoria, el núcleo escogerá qué páginas pasan al disco, siendo normalmente las que se usan con menor frecuencia. Si una página escogida es 'no anónima' <sup>1</sup> siempre existe un archivo que sirve de respaldo al contenido de la página, por lo que puede ser recuperada fácilmente en el caso de que volvamos a necesitarla. Pero las páginas anónimas carecen de dicho respaldo, por lo que solo pueden ser salvadas y copiadas en la swap. Sin embargo, si no tenemos suficiente memoria, el memoria no podrá escoger páginas 'no anónimas' para liberarla, obligando al sistema a ganar memoria a costa de páginas 'no anónimas', aunque éstas estén siendo utilizadas en mayor medida que las anónimas, afectando al rendimiento del sistema. «Disk is cheap, so allocate a gigabyte or two for swap».</p> +<p>Evidentemente, es necesario tener en cuenta, a parte del rendimiento, la seguridad. Existen circunstancias imprevisibles que pueden suceder, como que una acción requiera mucho más espacio del esperado, que un programa se vuelva loco (algo muy común si programamos), etc.</p> +<p>Por lo tanto, concluimos que la swap no está obsoleta. Pero, ¿cuánta swap debo reservar en mi sistema?. Como ya he comentado anteriormente, la memoria de Coker se ha convertido en prácticamente una regla. Para equipos con 8GB o 16GB emplear 2GB de swap es correcto, pero, ¿lo sigue siendo para equipos con 32GB, 64GB o 256GB de RAM? 2GB se antoja poco, aparentemente.</p> +<p>Por ello, <a href="https://help.ubuntu.com/community/SwapFaq#Example_Scenarios">Canonical propone</a> que a partir de 4GB se haga la raíz cuadrada del tamaño de la RAM, redondeada al entero más cercano; así, a 6GB de RAM le corresponderían 2GB de swap, mientras que a 32GB le corresponderían 6GB o a 256GB, 16GB. Por su parte, <a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/installation_guide/sect-disk-partitioning-setup-x86#idm140558470555584">Red Hat se asemeja</a> más a la memoria de Coker, pero siendo más generoso con equipos con menos de 8GB de RAM; siendo el doble de swap para menos de 2GB, el mismo tamaño para equipos de entre 2GB y 8GB, y la mitad para equipos de entre 8GB y 64GB.</p> +<p>Estas recomendaciones son correctas, especialmente para servidores y sistemas eficientes. Sin embargo, tenemos que tener en cuenta que para sistemas de escritorio (y más aún en equipos portátiles), mantener un espacio de intercambio superior al tamaño de la RAM es elemental para la hibernación <sup>2</sup>. En este caso, conviene tener una swap lo suficientemente grande como para mantener el uso normal de intercambio. En ese caso, deberemos aplicar alguna de las reglas anteriores y sumarle el tamaño de la RAM.</p> +<p>Personalmente, tanto las memorias de Coker como de RedHat me resultan algo 'cortas' cuando se trata de equipos con elevada RAM, algo realmente aplicable a prácticamente cualquier servidor o equipo de escritorio actual (no entramos en sistemas embebidos, cuya RAM es más limitada). La memoria de Canonical me parece la más generalizable y aplicable en el amplio espectro de posibilidades, y es, desde hace un par de años, la metodología que vengo aplicando en sustitución a la memoria de Coker, que usaba antes.</p> +<p>Así, y a modo de chuleta, quedaría así mi metodología empleada:</p> + +<pre><code><b>RAM Swap Swap+Hib</b> <b>RAM Swap Swap+Hib</b> <b>RAM Swap Swap+Hib</b> +256MB 256MB 512MB 6GB 2GB 8GB 32GB 6GB 38GB +512MB 512MB 1GB 8GB 3GB 11GB 64GB 8GB 72GB +1GB 1GB 2GB 12GB 3GB 15GB 128GB 12GB 140GB +2GB 1GB 3GB 16GB 4GB 20GB 256GB 16GB 272GB +4GB 2GB 6GB 24GB 5GB 29GB 512GB 22GB 534GB</code></pre> +<p><sup>1</sup> Una página anónima es aquella que no corresponde con ningún archivo en disco. Eso incluye la pila, el montón o la memoria reservada dinámicamente con <emb>malloc()</emb>.</p><p><sup>2</sup> La hibernación, o suspensión en disco, consiste en apagar un ordenador conservando su estado, hecho que se logra volcando el contenido de la memoria RAM en la partición de memoria swap, que después se restaura.</p> + +</body> +</html> +\ No newline at end of file diff --git a/systemd-syllabus/index.html b/systemd-syllabus/index.html @@ -0,0 +1,78 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Syllabus: systemd sucks</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title"><i>Syllabus</i> de <i>systemd</i> y alternativas <i>init</i></p> +<p class="date">1 de noviembre de 2021 • fjbalon</p> +</header> +<p><emb>systemd</emb> -como muyahidín- expande su propio orden, su estado, su gran complejidad monumental, haciendo la guerra contra la filosofía Unix. Su inherente naturaleza dominante y viral le convierte en un segundo kernel, que se extiende tentacularmente por todo el ecosistema GNU/Linux, como golpe de estado e intruso que toma el control del sistema, y fuerza al usuario a claudicar ante él.</p> +<p>Tiempo he pasado utilizando distribuciones en base a este malware de Poettering, y cuanto más profundizo y adquiero conocimiento técnico, más detesto la forma en la funciona y está diseñado. Las siguientes palabras, a modo de <i><a href="https://es.wikipedia.org/wiki/Syllabus">Syllabus</a></i> recopilan los que yo considero los errores de <emb>systemd</emb>, que cada vez se expande más -lo que considero altamente preocupante- en el mundo de GNU/Linux.</p> +<ol type="I"> +<li> + <p><emb>systemd</emb> se enfrenta a la filosofía del «haz una cosa y hazla bien"», representando una colección compleja de docenas de binarios fuertemente acoplados. Sus responsabilidades exceden groseramente las de un sistema de inicio, absorbiendo de forma absolutista el control de energía, manejo de dispositivos, puntos de montaje, cron, cifrado de discos, <emb>inetd</emb> y api para sockets, syslog, configuración de red, manejo de login y sesiones, readahead, particiones GPT, registro de contenedores, manejo de hostname, locale y tiempo, etcétera.</p> + <p><emb>systemd</emb> ni siquiera sabe qué mierda quiere ser. Es referido diversamente como demonio de sistema o un bloque de construcción básico para construir un sistema operativo en espacio usuario, las cuales son definiciones bastante ambiguas. Se deglute funcionalidad que pertenecía anteriormente a util-linux, wireless tools, syslog, y otros proyectos. No tiene una dirección clara más que los caprichos de los desarrolladores. Irónicamente, más allá de que apunta a estandarizar las distribuciones Linux, no tiene un estándar claro en sí mismo, y está perpetuamente liberando versiones.</p> + </li> +<li> + <p>Los archivos de journal de <emb>systemd</emb> son manipulados por journald son almacenados en un complicado formato binario que debe ser consultado utilizando <emb>journalctl</emb>. Lo que vuelve los logs de journal potencialmente corruptibles, sin transacciones ACID. El consejo de los desarrolladores de <emb>systemd</emb> es irracional: ignorar el problema. Además posee integración con un servidor HTTP embebido <emb>libmicrohttpd</emb>. Y se sirven códigos QR a través de <emb>libqrencode</emb>. Un caos.</p> + <p>Además, por defecto, <emb>systemd</emb> guarda los core dumps en el journal, en lugar del filesystem. Los core dumps deben ser explícitamente consultados utilizando coredumpctl. Esto es irracional y crea complicaciones en entornos multiusuario, dado que <emb>systemd</emb> requiere acceso root para controlarlo.</p> + </li> +<li> + <p><emb>systemd</emb> muestra un abierto desprecio hacia el software no-Linux en subsecuente incompatibilidad con todos los sistemas de la familia Unix no-Linux. Esto es debido a que <emb>systemd</emb> está fuertemente acoplado a la api del kernel Linux, lo que provoca que las diferentes versiones de <emb>systemd</emb> sean incompatibles entre diferentes versiones del kernel Linux. Se trata de una política aislacionista que esencialmente suelda al ecosistema Linux en su propia jaula, y sirve como obstáculo a la portabilidad del software. + </p> + </li> +<li> + <p><emb>udev</emb> y <emb>dbus</emb> son dependencias forzosas. De hecho, <emb>udev</emb> se fusionó con <emb>systemd</emb> hace tiempo. La integración del administrador de dispositivos que fue alguna vez parte del kernel Linux no es una decisión que deba tomarse a la ligera. Las implicaciones políticas de ello son altas, y hace que muchos paquetes que dependen de <emb>udev</emb>, a su vez dependan de <emb>systemd</emb> (una estrategia maestra para llevar a cabo la yihad), mas allá de la existencia de forks, como <emb>eudev</emb>. A partir de <emb>systemd-209</emb> los desarrolladores ahora tienen su propia, no estándar y escasamente documentada api sd-bus que reemplaza mucho del trabajo de <emb>libdbus</emb>, y disminuye aún más la transparencia.</p> + </li> +<li> + <p>El tamaño de <emb>systemd</emb> lo vuelve un punto simple de fallo, un riesgo. Su esencial y prepotente naturaleza lo convertirá en un blanco jugoso, ya que es mucho más pequeño que el kernel Linux en sí mismo, pero prácticamente igual de crítico.</p> + </li> +<li> + <p>system es viral por naturaleza: su alcance en funcionalidad y arrastre como dependencia a cientos de paquetes significa que los mantenedores de distribuciones necesitarán una convertirse a la fe de Lennart Poettering, o quedarán a la deriva. La rápida adopción y conversión por parte de distribuciones como Debian, <emb>Archlinux</emb>, <emb>Ubuntu</emb>, <emb>Fedora</emb>, <emb>openSUSE</emb> denota una clara lealtad por parte del pueblo.</p> + </li> +<li> + <p><emb>systemd</emb> se encierra a sí mismo en el <emb>PID 1</emb>, por lo que hay toneladas de escenarios en los cuales puede crashear y tumbar al sistema por completo (kernel panic). No sólo eso, a consecuencia, muchas actualizaciones del sistema (obviando el kernel) van a requerir un reinicio. Para ser justo, <emb>systemd</emb> provee un mecanismo para reserializarse y reejecutarse a sí mismo en tiempo real; pero claro, si esto falla, el sistema cae por completo. Hay muchas formas por las que esto puede ocurrir. Esto es otro ejemplo de SPOF (punto simple de fallo).</p> + <p>Entre las razones por las cuales <emb>systemd</emb> quiere o necesita correr como <emb>PID 1</emb>, está el hacerse cargo de los demonios cuyo mal comportamiento hace que se vuelvan huérfanos a sí mismos, impidiendo que su inmediato padre conozca su <emb>PID</emb> para esperarlo (wait) o enviarle una señal.</p> + </li> +<li> + <p><emb>systemd</emb> fue diseñado con <emb>glibc</emb> en mente, y no se preocupa mucho por soportar otras <emb>libcs</emb>. En general, la idea de librería C estándar de los desarrolladores de <emb>systemd</emb> es una que sea compatible bug-por-bug con <emb>glibc</emb>.</p> + </li> +<li> + <p>La naturaleza complicada de <emb>systemd</emb> lo vuelve difícil de extender y salir fuera de sus límites. Mientras que es posible más o menos iniciar scripts de forma trivial con archivos, es más difícil implementar un comportamiento que salga de la caja. Muchos usuarios necesitarán posiblemente escribir programas más complicados que directamente interactúen con la api de <emb>systemd</emb>, o directamente necesitarán parchear <emb>systemd</emb>. Uno debe preocuparse por una mayor cantidad de caminos de ejecución y comportamiento en un programa crítico del sistema, incluyendo la posibilidad de que <emb>systemd</emb> no sincronice bien con la cola de mensajes de dbus en tiempo de boot, congelando el sistema. Esto es opuesto al tradicional init, que es determinístico y predecible por naturaleza, dado que mayormente sólo ejecuta scripts.</p> + </li> +<li> + <p>El parasitismo de <emb>systemd</emb> es el símbolo de algo más sí mismo: muestra un cambio radical de pensamiento en la comunidad Linux, una apostasía y una lealtad a lo vehementemente postmoderno, monolítico, fuertemente orientado a sistemas de escritorio, limitante, aislacionista, reinventor de la rueda, y un gran anti-patrón en general.</p> + </li> +</ol> +<p>Tras este <i>Syllabus errorum complectens praecipuos nostrae aetatis errores</i>, es evidente que desde hace tiempo anhelo liberar mi sistema de <emb>systemd</emb>, que como bien sabe el lector -o eso espero- ha extendido su oscura influencia en gran parte del mundo GNU/Linux, haciendo difícil experimentar y probar con otros demonios. Aunque tengo un profundo apego y experiencia con <emb>Archlinux</emb>, debido a su dependencia de <emb>systemd</emb>, me he visto prácticamente obligado a buscar alternativas libres de éste.</p> +<p>Tras investigar posibles opciones, como <emb>Devuan</emb>, <emb>Alpine</emb>, <emb>Slackware</emb> o <emb>void</emb>, ha aparecido ante mí <emb>Artix</emb>, una versión de <emb>Archlinux</emb> libre de <emb>systemd</emb>. Esto trae una serie de ventajas para mí, como la fácil adaptación entre <emb>Archlinux</emb> y <emb>Artix</emb>, mantenimiento de la comunidad de <emb>Archlinux</emb>, mantendría el sistema de paquetes <emb>pacman</emb>, etc.</p> +<p>Sin embargo, esta elección no vendría exenta sufrimiento. <emb>Artix</emb> me obliga a enfrentar una de las decisiones más complicadas de mi vida técnica en el mundo de GNU/Linux y Unix: elegir el proceso init para mi sistema operativo. Sabía que esto requeriría un arduo trabajo de investigación, reconocimiento y pruebas, pero estaba dispuesto a asumir cualquier reto para alcanzar la libertad. Así, como caballero medieval enfrentando a un dragón, me adentré en la búsqueda del init perfecto. Los nombres de <emb>Runit</emb>, <emb>Dinit</emb>, <emb>OpenRC</emb> y <emb>S6</emb> <sup>1</sup> resonaban en mi mente como las leyendas de antaño, y estaba dispuesto a poner a prueba cada uno de ellos para encontrar el que más se adaptara a mi uso.</p> +<p><emb>OpenRC</emb> es conocido por su simplicidad y estabilidad. Para usuarios venidos de distribuciones como <emb>Gentoo</emb> parece la opción más obvia. De todos los init fuera de <emb>systemd</emb>, parece ser el que tiene mejor soporte, es fácil de entender y tiene un comportamiento predecible. Además, permite la ejecución de scripts personalizados durante la fase de inicio. </p> +<p><emb>S6</emb> es muy rápido, simple y eficiente, pero no es particularmente fácil de usar. El uso de recursos es mínimo, cuenta con una arquitectura modular y es muy estable y confiable, lo que le hace un sistema idóneo para sistemas críticos. Sin embargo, su simplicidad proviene del hecho de que es relativamente pequeño y divide la funcionalidad entre diferentes procesos, lo que hace que cualquier cambio en el sistema requiere compilar una base de datos (aunque su enfoque de compilación teórica lo hace más ligero y menos propenso a errores). Está íntimamente ligado al mundo Unix, pareciendo estar diseñado para ser una capa lo más delgada posible sobre el sistema operativo, algo deseable.</p> +<p><emb>Runit</emb> es extremadamente simple, especialmente si lo comparamos con el resto. Su estructura sencilla lo hace poco propenso a errores, sin embargo no ofrece muchas características, lo que hace que la complejidad se delega en los scripts de shell que inicia. <emb>Runit</emb> inicia rápido y tiene un uso de recursos mínimo, es muy estable, configurable y confiable.</p> +<p><emb>Dinit</emb> es muy liviano y ligero, lo que le permite mantener una altísima velocidad de arranque y apagado. Es fácil de usar, teniendo una sintaxis sencilla de adaptar desde <emb>systemd</emb>, y además, constituye una mejora significativa de características y herramientas con respecto a <emb>Runit</emb>. Su curva de aprendizaje puede ser elevada.</p> +<p>Teniendo en cuenta que mi uso de init y gestión de procesos puede definirse en la simplicidad, aun entendiendo la ambigüedad de la palabra, lo considero elemental y convergente con ligereza y legibilidad. El uso que a mi máquina me exige iniciar y parar regularmente distintos procesos, que de hecho no quiero tener iniciados de forma defectuosa si no es por una razón concreta. Por ello, la gestión y administración de procesos y demonios debe ser sencilla y elegante. Y aunque no lo considero determinante ni fundamental, mantener una buena velocidad de arranque es algo deseable e interesante.</p> +<p>Evidentemente, no hay respuesta correcta y no se basa ni siquiera en mi experiencia, sino en la de otros en la comunidad. Mis conclusiones a raíz de estas lecturas, podrían ser que <emb>S6</emb> sería la opción más apropiada para un servidor, por su estabilidad, seguridad y estructura Unix, así como robustez.</p> +<p>Por otro lado, para un uso de escritorio, me habría decatado por <emb>Runit</emb>. La decisión ha sido complicada con respecto a <emb>Dinit</emb>, debido a que el segundo mantiene una funcionalidad similar a <emb>Runit</emb>, pero ofreciendo características adicionales, como soporte para programación de tareas, capacidad de gestionar dependencias complejas entre servicios, API de control, etc.Pero en búsqueda de simplicidad y eficiencia, considero la filosofía de diseño de <emb>Runit</emb> más cercana a mí, y a mi fórmula de uso.</p> +<p><sup>1</sup> Desgraciadamente he dejado fuera de artículo a <emb>SysVInit</emb>, puesto que no constituye una opción por defecto en <emb>Artix</emb>.</p> + + <h1>Bibliografía y enlaces de interés</h1> +<ul> +<li><a href="https://nosystemd.org">nosystemd.org</a></li> +<li><a href="http://ewontfix.com/14">Broken by design: systemd</a></li> +<li><a href="https://wizardofbits.tumblr.com/post/45232318557/systemd-more-like-shit-stemd">Systemd? More like Shit-stemd</a></li> +<li><a href="https://ihatesystemd.com">ihatesystemd</a></li> +<li><a href="https://the-world-after-systemd.ungleich.ch">The world after systemd</a></li> +<li><a href="https://www.linuxito.com/gnu-linux/nivel-alto/431-por-que-systemd-es-una-mierda">¿Por qué systemd es una mierda? - Linuxito</a></li> +<li><a href="https://www.reddit.com/r/artixlinux/comments/xr0uih/about_your_init_choices_runit_openrc_s6_dinit/">About your init choices (Runit, OpenRC, S6, Dinit...)</a></li> +<li><a href="https://www.reddit.com/r/artixlinux/comments/11d990e/void_vs_artix/">Void vs Artix</a></li> +</ul> + +</body> +</html> diff --git a/temporalidad-codigo/index.html b/temporalidad-codigo/index.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Sobre la temporalidad del código</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Sobre la temporalidad del código</p> +<p class="date">8 de octubre de 2021 • fjbalon</p> +</header> +<p>Recientemente, he leído el post <a href="https://jonathanwhiting.com/writing/blog/games_in_c">Why I Write Games in C (yes, C)</a>. Me ha llamado poderosamente la atención, y me he visto identificado con su argumentación. Soy un amante de la programación en C, y por ello quería destacar algunos aspectos del post.</p> +<p>Tal y como indica el autor, hay cosas que no son negociables; y una de ellas es la temporalidad, o vida útil del programa. Flash es un ejemplo de una tecnología muerta, y todo lo escrito en ella, debió haberse portado a otros lenguajes y tecnologías. Tanto en el caso del autor como en el mío, eso no es una característica deseable. Cuando se escribe un programa, éste debe tener una proyección de vida larga y útil. Requerimos un lenguaje que perdure en el tiempo.</p> +<p>Unido a lo anterior, el software no puede estar atado a un sistema operativo concreto. Los sistemas podrían cambiar (aunque defiendo el mismo aspecto de temporalidad para ellos), necesitamos un lenguaje portable que permita ser ejecutado en múltiples sistemas y arquitecturas.</p> +<p>Pero para que se dé este aspecto de temporalidad, es necesario que se cumplan algunos requisitos, como fiabilidad, simplicidad, estabilidad -que no cambie sus características fundamentales continuamente-, robustez, eficiencia en cuanto a rendimiento, buena velocidad de compilación.</p> +<p>Por otro lado, no soy un converso de la OOP. Y eso que he pasado la mayor parte de mi vida profesional y académica trabajando con clases y objetos, pero cuanto más tiempo paso, menos entiendo por qué. La programación orientada a objetos es el paradigma más usado en la actualidad, basándose en técnicas de herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Se hace innecesariamente complicado y complejo. Por lo que la programación estructurada será mi amiga.</p> +<p>Me gusta distinguir entre viejo software y software viejo. En castellano, colocar el adjetivo delante del sustantivo suele denotar una actitud poética, circunstancial del ser. Sin embargo, colocarlo detrás suele marcar un atributo que tiene. El software viejo es un software que, como atributo tiene una larga edad, y eso le pesa, es una cualidad de éste. Un viejo software es un programa que ha perdurado en el tiempo, inmutable, inmanente, como una roca. Lo viejo está hecho para permanecer, como aquel viejo castillo medieval que soporta el paso del tiempo; sin embargo una casa de 1980 se ve vieja -en el mal sentido-, deteriorada y pronto será derribada.</p> +<p>El viejo software, como el viejo hombre, no requiere de añadidos, de adornos innecesarios, de evolutivos constantes, de adaptaciones. El viejo software es un constante en sí, una robusta fortaleza, un acorazado del mundo abstracto.</p> +<p>Eric Roth, guionista de Dune (la de Denis Villeneuve) o Forrest Gump, utiliza para escribir sus guiones Movie Master de MS-DOS (un software con más de 30 años). Para el guionista el viejo software tiene una cierta mitología; el programa da la posibilidad de escribir sólo hasta 40 páginas -lo que le ayuda a estructurar sus guiones, "Me doy cuenta de que si no he expresado lo que tenía en mente en 40 páginas empiezo a tener problemas"-, el hecho de que su viejo ordenador no esté conectado a Internet le elimina de distracciones, como él mismo asegura, y añado yo, le da una cierta capa de aislamiento y seguridad. George R. R. Martin, padre de Juego de Tronos, también utiliza viejo software, en su caso WordStar 4.0, para DOS. Disfruta de su simplicidad y no le gustan los autocorrectores y correctores ortográficos modernos. "Si quisiera una mayúscula, habría escrito una mayúscula. Sé cómo funciona la tecla de mayúsculas".</p> +<p>MOCAS es el nombre dado al software de Mecanización de los Servicios de Administración de Contratos, un programa escrito nada menos que en 1958, y que sigue en servicio para el Departamento de Defensa de los Estados Unidos, escrito en COBOL sobre una base de tarjetas perforadas. También el software de las naves Voyager, de 1977 (las naves espaciales Voyager 1 y 2 fueron lanzadas rumbo al exterior del Sistema Solar). El software de a bordo de las naves Voyager más modernas, encargado entre otras cosas de enviar a la Tierra los datos recogidos en su viaje, ha seguido funcionando, y aunque mejorado, nunca ha sido sustituido por otro. Sparker Filters, compañía dedicada a la filtración química y una de las más reputadas del sector, utiliza un IBM 402, un modelo que data de 1948 y que probablemente sea el último en activo en todo el planeta.</p> +<p>Unix y su filosofía es también parte de lo que considero viejo software, así como sus hijos y nietos: FreeBSD, GNU/Linux, Solaris... Desde finales de 2009, GNU/Linux domina de forma absoluta el listado de los 500 superordenadores más potentes del mundo. El resto corresponden a variantes de Unix. En la actualidad la familia de Unix es el claro líder de la supercomputación. Además la simplicidad de estos sistemas permiten usarlos también en viejos equipos, obsoletos y deteriorados. Yo mismo utilizo un GNU/Linux Slackware en un Toshiba Satellite de hace 20 años, que abandera mi pensamiento y mi planteamiento. La tecnología debe buscar perdurar, no desecharse para alimentar más al mercado.</p> +<p>C es la viva imagen de la filosofía Unix. De hecho, crecieron juntos en simbiosis. Es un pura sangre, veloz y eficiente, con él se puede hacer prácticamente todo lo que el hardware permite realizar. Fue desarrollado por Dennis Ritchie, que tiene además la importante paternidad, junto a Ken Thompson, de Unix. También fue coautor junto a Brian Kernighan del manual El lenguaje de programación C, que durante años fue el estándar de facto del lenguaje (K\&R C), hasta la aparición del ANSI C (para el que apareció la segunda edición de El lenguaje de Programación C) a principios de la década de los 70 en Bell Labs. C nace como evolución natural del lenguaje B (de ahí su nombre).</p> +<p>Uno de los objetivos de diseño del lenguaje C es que solo sean necesarias unas pocas instrucciones en lenguaje máquina para traducir cada elemento del lenguaje, sin que haga falta un soporte intenso en tiempo de ejecución. Es muy posible escribir C a bajo nivel de abstracción; de hecho, C se usa como intermediario entre diferentes lenguajes.</p> +<p>En parte, a causa de ser de relativamente bajo nivel y de tener un modesto conjunto de características, se pueden desarrollar compiladores de C fácilmente. En consecuencia, el lenguaje C está disponible en un amplio abanico de plataformas (más que cualquier otro lenguaje). Además, a pesar de su naturaleza de bajo nivel, el lenguaje se desarrolló para incentivar la programación independiente de la máquina. Un programa escrito cumpliendo los estándares e intentando que sea portátil puede compilarse en prácticamente cualquier computador.</p> +<p>En palabras del autor del artículo que fundamenta este texto, «C es peligroso, pero es fiable. Un afilado cuchillo que puede cortarte los dedos como verduras, pero tan simple que no es demasiado difícil aprender a usarlo con cuidado».</p> + +</body> +</html> +\ No newline at end of file diff --git a/teologia-historia-monarquia/index.html b/teologia-historia-monarquia/index.html @@ -0,0 +1,140 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Teología de la Historia: Ergo rex es tu?</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title"><i>Ergo rex es tu?</i></p> +<p class="date">20 de junio de 2023 • fjbalon</p> +</header> +<p>Basándome en la estructura propuesta por Barraycoa en <i>La Monarquía en la Teología de la Historia</i>, que utiliza como base para desarrollar el carácter político del Reino de Cristo, y también del Anticristo. La estructura propuesta presupondrá que el lector conoce conceptos de la Teología de la Historia tales como el <a href="../teologia-historia-kathejon/">kathejon</a> o el controvertido <a href="../teologia-historia-milenarismo/">milenismo</a>, así como de elementos exegéticos como el <i>typo</i> y <i>antitypo</i>.</p> + +<cita> +<p>«Pilato le dijo: "Entonces, ¿tú eres rey?". Jesús le contestó: "Tú lo dices: soy rey. Yo para esto he nacido y para esto he venido al mundo: para dar testimonio de la verdad. Todo el que es de la verdad escucha mi voz".»</p> +<p>Jn. 18, 37</p> +</cita> +<p>Ante la pregunta de Pilatos, «Entonces, ¿tú eres rey?», «Ergo rex es tu?» y la respuesta afirmativa de Cristo, no podemos sino ver un <i>tipo</i>; no se permite lectura alegórica, más que literal y anagógica, cuya dimensión se hallaría en el <i>antitipo</i>, que correspondería al Reino mesiánico anunciado por los Profetas y el mismo Cristo. El que iba a ser expuesto como <i>Ecce homo</i>, en su humanidad y sin rastro aparente de divinidad, era verdaderamente Rey, en cuanto que hombre. El que vendrá a reinar y juzgar a las naciones seguirá siendo Rey.</p> +<p>La doctrina pontificia, enriquecida por Pío XI en <a href="https://www.vatican.va/content/pius-xi/es/encyclicals/documents/hf_p-xi_enc_11121925_quas-primas.html"><i>Quas primas</i></a>, es inequívoca al respecto:</p> + +<cita> +<p>«Ha sido costumbre muy general y antigua llamar Rey a Jesucristo, en sentido metafórico, a causa del supremo grado de excelencia que posee y que le encumbra entre todas las cosas creadas. Así se dice que reina en las inteligencias de los hombres, no tanto por el sublime y altísimo grado de su ciencia, cuanto porque Él es la Verdad y porque los hombres necesitan beber de Él y recibir obedientemente la verdad. Se dice también que reina en las voluntades de los hombres, no solo porque en Él la voluntad humana esta entera y perfectamente sometida a la santa voluntad divina, sino también porque con sus mociones e inspiraciones influye en nuestra libre voluntad y la enciende en nobilísimos propósitos. Finalmente, se dice con verdad que Cristo reina en los corazones de los hombres, porque con su supereminente caridad (<a class="element">Ef. 3,19<span class="info">«Comprendiendo el amor de Cristo, que trasciende todo conocimiento. Así llegaréis a vuestra plenitud, según la plenitud total de Dios.»</span></a>) y con su mansedumbre y benignidad, se hace amar por las almas de manera que jamás nadie -entre todos los nacidos- ha sido ni será nunca tan amado como Cristo Jesús. Mas, entrando ahora de lleno en el asunto, es evidente que también en sentido propio y estricto le pertenece a Jesucristo como hombre el título y la potestad de Rey; pues solo en cuanto hombre se dice de Él que recibió del Padre la potestad, el honor y el reino (<a class="element">Dn. 7,13-14<span class="info">«Y te amará, te bendecirá y te multiplicará. Bendecirá el fruto de tu vientre y el fruto de tus tierras, tu trigo, tu mosto y tu aceite, las crías de tus reses y el parto de tus ovejas, en la tierra que juró a tus padres darte. Serás bendito entre todos los pueblos; no habrá estéril ni impotente entre los tuyos ni en tu ganado.»</span></a>) porque como Verbo de Dios, cuya sustancia es idéntica a la del Padre, no puede menos de tener común con él lo que es propio de la divinidad y, por tanto, poseer también como el Padre el mismo imperio supremo y absolutísimo sobre todas las criaturas.»</p> +<p><i>Quas primas</i>, <i>Pío XI</i> sobre la Fiesta de Cristo Rey</p> +</cita> +<p>Así el Santo Padre Pío XI no sólo señala que la realeza de Cristo, no sólo se significa en lo espiritual, sino también en lo temporal, y en los individuos y las sociedades. La negación que ha de sufrir la verdadera Realeza de Cristo, y por lo tanto, su Reino, ya se encuentra esbozada de muchas formas desde el Antiguo Testamento. Pero hemos de estar muy atentos, como reza Javier Barraycoa, pues esta negación puede adquirir falsamente la misma forma de lo que se pretende negar. El argumento y ejemplo más contundente al respecto podría ser cuando el pueblo judío le pide a Dios un Rey, viendo Dios en ello un acto de rebeldía:</p> + +<cita> +<p>«Se reunieron todos los ancianos de Israel y fueron a Ramá, donde estaba Samuel. Le dijeron: "Tú eres ya un anciano y tus hijos no siguen tus caminos. Nómbranos, por tanto, un rey, para que nos gobierne, como se hace en todas las naciones". A Samuel le pareció mal que hubieran dicho: "Danos un rey, para que nos gobierne". Y oró al Señor. El Señor dijo a Samuel: "Escucha la voz del pueblo en todo cuanto te digan. No es a ti a quien rechazan, sino a mí, para que no reine sobre ellos. Según han actuado, desde el día que los hice subir de Egipto hasta hoy, abandonándome y sirviendo a otros dioses, así hacen también contigo. Escucha, pues, su voz. Pero adviérteles con claridad y exponles el derecho del rey que reinará sobre ellos".»</p> +<p>I Sam. 8, 4-7</p> +</cita> +<img style="width: 50%; float: left; filter: sepia(30%); margin-right: 1em;" src="resources/samuel-david.jpg" /> +<p>Esta queja de Dios se podría aplicar igualmente cuando Jesús se refiere a sí mismo en una parábola y sus enemigos exclaman: «No queremos que este llegue a reinar sobre nosotros» (<a class="element">Lc. 19, 14<span class="info">«Pero sus conciudadanos lo aborrecían y enviaron tras de él una embajada diciendo: “No queremos que este llegue a reinar sobre nosotros”.»</span></a>). De esta exposición surge una paradoja asombrosa: realmente, el Pueblo de Israel no quiere una monarquía en sentido real (cuya autoridad se funda en Dios mismo) y que se someta al Principio de Autoridad. Santo Tomás de Aquino en <i>De Regno, I, 1.</i> especifica que el sentido más genérico de «qué se entiende por la palabra Rey», tiene su trasfondo sustancial en la necesidad del hombre de ser regido, de tal forma que podamos alcanzar los fines propios y legítimos, siendo que la sola razón no puede: «el hombre necesita alguien que lo dirija a su fin». Lo que realmente clama el Pueblo de Israel es ser como <i>las demás naciones</i>, que en este contexto significa ser idólatras. La petición de una monarquía -condición material para que advenga el Mesías prometido- no es más que que la «estrategia» para que la soberbia de su petición no sea «tan evidente» a los ojos de Dios. Siendo la monarquía un bien en sí mismo, la intencionalidad del pueblo no lo es.</p> + +<cita> +<p> «Por ello si el arte imita a la naturaleza [...] necesariamente también en la sociedad humana lo mejor será lo que sea dirigido por uno.»</p> +<p><i>De Regnum</i>, Santo Tomás de Aquino</p> +</cita> +<p>En otras palabras, el Pueblo de Israel, en este hecho, busca fundamentar su gobierno en sí mismo y no en Dios. Pero dicho pecado sólo puede realizarse desde una apariencia de bien, ya que, como señala Santo Tomás «El bien es todo aquello que es apetecible» (Summa theologiæ, I, 48, 1, Santo Tomás de Aquino): en principio, la monarquía para Israel es un bien apetecible y legítimo, pero desordenado por la voluntad de los que la solicitan.</p> +<p>Como bien reflexiona Santo Tomás de Aquino en la Suma Teológica:</p> + +<cita> +<p>«A Él es a quien principalmente debemos ligarnos como a principio indeficiente, a Él debe tender sin cesar nuestra elección como a fin último, perdido por negligencia al pecar, y Él es también a quien nosotros debemos recuperar creyendo y atestiguando nuestra fe.»</p> +<p>Summa theologiæ, II-II, 81, 1, respondeo, Santo Tomás de Aquino</p> +</cita> +<p>La monarquía que desean los judíos no atiende a dicha ordenación a Dios -virtud de religión-, como el mismo Dios reconoce. La virtud de religión no sólo se aplica a Dios, sino al prójimo:</p> + +<cita> +<p>«Por el hecho de ser correlativos los nombres de siervo y señor, donde hay una razón propia y especial de señorío, necesariamente tiene que haber una razón propia y especial de servidumbre. Ahora bien: es evidente que el señorío le pertenece a Dios por una razón propia y singular, a saber: por ser Él quien hizo todas las cosas y por tener el principado supremo sobre todo lo creado. Por tanto, se le debe especial servidumbre, y a tal servidumbre en griego se la designa con el nombre de latría. De donde se sigue que, hablando con propiedad, pertenece a la religión.»</p> +<p>Summa theologiæ, II-II, 81, 1, objeción 3, Santo Tomás de Aquino</p> +</cita> +<p>Siendo que la relación siervo-Señor nunca puede invertirse y se sustenta en el conocimiento de Dios como fuente de toda autoridad, sea en una monarquía, sea en una democracia. Dicha tesis queda apoyada magisterialmente por el Santo Padre Pío XII:</p> + +<cita> +<p>«Una sana democracia, fundada sobre los inmutables principios de la ley natural y de las verdades reveladas, será resueltamente contraria a aquella corrupción que atribuye a la legislación del Estado un poder sin freno ni límites, y que hace también del régimen democrático, no obstante las contrarias pero vanas apariencias, un verdadero y simple sistema de absolutismo.»</p> +<p>Radiomensaje de Navidad, Pío XII, 1944</p> +</cita> +<p>La monarquía que proponen los judíos a Samuel, es en esencia el equivalente a lo que desde el Magisterio de la Iglesia se ha denominado democracia atea, siendo que el Pueblo de Israel querría un rey, no para ser siervo de un señor, sino para liberarse de la servidumbre del Señor y evitar la <i>latría</i> que le debían. Dicho acto pervierte el valor de la monarquía, que se convierte en instrumento para la idolatría. Este reino sin verdadero Rey lo podemos tomar como <i>tipo</i> del <i>antitipo</i> que representaría el rechazo de los judíos al Mesías, y en el fondo, al mismo rechazo que caracteriza al sionismo contemporáneo, que inmanentiza la idea mesiánica y la encarna en el Estado de Israel.</p> +<p>Dicho esto, ¿significa que Dios no quería que el Mesías fuera Rey y, por tanto, mantener al Pueblo de Israel bajo una teocracia profética y bajo los jueces? Esto es cuestionable, pues la propia palabra Mesías -ungido- implica por sí misma realeza. Además, una de las funciones de los profetas era la de ungir reyes, lo que haría absurdo que Dios otorgara tal función si nunca fuera necesaria. Por otro lado, Dios accedería a la petición idolátrica de Israel pues, en la economía de la Salvación, el Reino tendría un lugar principal, siendo que el Mesías ha de ser Profeta, Sacerdote y Rey verdadero; pero no cómo lo quisieran los gentiles o los judíos, sino bajo su propia Voluntad. Por eso, la dinastía que empieza con Saúl muere con él mismo, y será por la unción de David que empieza la dinastía mesiánica.</p> +<img style="width: 30%; float: left; filter: sepia(30%); margin-right: 1em;" src="resources/david.jpg" /> +<p>En David encontramos un <i>tipo</i>, <i>antitipo</i> y <i>contratipo</i> (o alegoría inversa). Saúl no es <i>tipo</i> de Cristo, sino <i>contratipo</i>. Por el contrario, David, Rey ungido por Samuel, es <i>tipo</i> de Cristo (evidentemente esto no implica que el pecado de David sea constitutivo de su <i>tipo</i>).</p> +<p>Otro <i>contratipo</i> del Reino mesiánico podría ser la monarquía de Herodes. Dejando de lado las complejidades históricas del momento, las rebeliones y conspiraciones, las huidas y retornos, se puede concluir que Herodes fue rey de Judea, siendo el primer rey ilegítimo desde David, pues rompe la genealogía davídica, siendo un rey impuesto por Roma y casado con una samaritana. Hay una larga tradición que va desde Julio Africano, pasando por la <i>Crónica de Eusebio</i> y la <i>Crónica de San Jerónimo</i> que insisten en esta ilegitimidad. Siguiendo con su <i>contratipo</i>, reconstruye y amplía el Templo. Desde el nacimiento de Jesús, la breve dinastía herodiana tiene cierto protagonismo en la historia temporal de Cristo, sobretodo dos de los hijos de Herodes el Grande: Arquelao (rey de Judea durante la infancia de Jesús) y Herodes Antipas (que ejecuta a San Juan Bautista y juzga a Jesús).</p> +<p>En la Pasión, todos hemos atendido y mucho se ha escrito, sobre aquél pasaje en el que el Pueblo judío se conjura para toda su historia: «¡Caiga su sangre sobre nosotros y sobre nuestros hijos!»:</p> + +<cita> +<p>«Al ver Pilato que todo era inútil y que, al contrario, se estaba formando un tumulto, tomó agua y se lavó las manos ante la gente, diciendo: "Soy inocente de esta sangre. ¡Allá vosotros!". Todo el pueblo contestó: "¡Caiga su sangre sobre nosotros y sobre nuestros hijos!".»</p> +<p>Mt. 27, 24-25</p> +</cita> + + Fórmula legal <i>veterotestamentaria</i> muy empleada (<a class="element">Lev. 20, 9<span class="info">«Si alguno maldice a su padre o a su madre lo matarán; su sangre caiga sobre él»</span></a>; <a class="element">Lev. 20, 11<span class="info">«Si uno se acuesta con la mujer de su padre morirá; su sangre caiga sobre él»</span></a>; <a class="element">Lev. 20, 13<span class="info">«Si un hombre se acuesta con otro hombre, los dos morirán; su sangre caiga sobre ellos»</span></a>; <a class="element">1 Sam. 1, 16<span class="info">«Por haber matado al ungido de Yahvé, tu sangre caiga sobre tu cabeza»</span></a>; <a class="element">2 Sam. 3, 29<span class="info">«La sangre de Abner caiga sobre la cabeza de Joab y su familia»</span></a>; <a class="element">Jer. 26, 15<span class="info">«Sabed que si me matan, sangre inocente caerá sobre vosotros y sobre toda la ciudad»</span></a>). + Sin embargo, poco antes de la dura afirmación, los judíos respondieron a Pilatos:</p> + +<cita> +<p>«Ellos gritaron: "¡Fuera, fuera; crucifícalo!". Pilato les dijo: "¿A vuestro rey voy a crucificar?". Contestaron los sumos sacerdotes: "No tenemos más rey que al César".»</p> +<p>Jn. 19, 15</p> +</cita> +<p>No estamos simplemente ante una estrategia de los fariseos para atemorizar a Pilatos, sino que tal temeridad se convierte en una condena: hasta la consumación del Reino Mesiánico, los judíos no volverán a tener Rey, como de hecho dejaron de tener Templo, y por lo tanto sacerdocio o profetismo. Fundamentamos esta afirmación en la postura de la Patrística y la escolástica, que consideraron que la culpa temporal y contextual sobre la muerte de Jesús se transmite de generación en generación; tesis defendida por Orígenes, Melitón de Sardes, San Agustín, San Jerónimo, San Juan Crisóstomo, Teofilacto, Santo Tomás de Aquino, entre otros.</p> +<p>Por lo que si la sangre inocente de Cristo recae sobre el pueblo judío, que no acepta al Hijo de Dios; así también se condenan a la sujeción de los imperios del mundo. Atendiendo a las lecturas bíblicas, especialmente al libro de Daniel, se puede vislumbrar con claridad la relación del pequeño pueblo de Israel con los imperios mundiales, que siempre le acaban dominando y destruyendo el Templo. La llegada del Mesías debía liberarles de esta constante histórica, pero la negación de Jesús, comporta la continuidad de esa sumisión, relatada también en el Apocalipsis. Sucintamente, debemos considerar la doctrina sobre los sueños proféticos de Daniel, en la que hay un consenso teológico prácticamente total en cuanto a qué reinos o imperios corresponden a cada bestia. Tales reyes ofrecen al profeta la visión de los imperios desde la visión hasta la llegada del mesías. Estas bestias serían efigies del Imperio Babilónico, el Medo-persa, el Helénico y el Imperio Romano.</p> +<p>Dicha revelación es ampliada en el Apocalipsis, no habiendo entonces un verdadero consenso debido a la dificultad de definir el período temporal. Si bien, en el momento de la Revelación podemos establecer que «cinco cayeron, uno es, el otro no ha llegado todavía y cuando llegue durará poco tiempo» (Ap. 17, 10), si mi opinión valiera de algo, me gusta establecer antes de los reinos de Daniel un reino fundamental como es el Imperio Egipcio. De tal forma que podemos mantener que cinco imperios ya cayeron: Egipcio, Babilónico, Medo-persa, Helénico y Romano. Sin embargo, el Imperio que es -al menos en el tiempo de Juan- debería confluir con el kathejon, que sabemos que es el Imperio Romano. ¿Sería correcto entonces dividir el Imperio Romano en dos etapas proféticas? Propongo establecer el Imperio Romano pagano o idólatra como quinto imperio; mientras que el Imperio Romano Cristiano, que es el kathejon, como sexto imperio, «que es» (o <i>fue</i>, si el kathejon fue removido). ¿Es correcta esta división? Lo desconozco. Javier Barraycoa, basándose en la doctrina del padre Orlandis y Canals propone el orden: Babilónico, Egipcio, Asiro-babilónico (o neobabilónico caldeo), el Medo-persa, el Helénico y Romano, como seis de los siete.</p> +<img style="width: 50%; float: left; filter: sepia(30%); margin-right: 1em;" src="resources/caida-roma.jpg" /> +<p>Como decíamos, el imperio «que es», debe ser necesariamente el Imperio Romano, el obstáculo que evita la llegada del anticristo. De tal forma, el séptimo imperio innominado que habrá de durar poco tiempo, sería probablemente el Anglo-americano. Éste habría iniciado en la historia coincidiendo con la caída del Kathejon, sea en 1806 o en 1917.</p> +<p>En la propia historia, diversas monarquías se habrían visto como sucesoras del Imperio Romano, así se han visto la monarquía española, la francesa, la germana, etc. Si bien tales afirmaciones, aunque a menudo de una franca rebeldía, quedan moderadas por el entorno católico en las que se movían; en el entorno protestante el milenarismo -o milenismo, como gusta indicar a L. Castellani o San Agustín- encontró multiformes y casi interminables expresiones, que sintiéndose -en palabras de George H. Williams- como en un paraíso terrenal y provisional, presagio de la tercera Era; sea alabanza de la quinta monarquía de Daniel, o como puerta de entrada al milenio, las iglesias de la -mal llamada- Reforma estuvieron sostenidas y fortalecidas por la convicción de que ellas y sus dirigentes eran los instrumentos de que se valdría el Señor para escribir la historia de los últimos días. La lista de iglesias y grupos protestantes que se ajustarían a dicho perfil, desde Lutero hasta ahora, sería interminable.</p> +<p>Quedémonos a modo de ejemplo con los denominados quintamonarquistas (fifth monarchists), que surgen en el entorno radical inglés del siglo XVII. De este grupo y otros similares, cabe destacar su milenarismo. Su reino milenario, que debe corresponder con el sueño de Daniel y que destruye la sucesión de los cuatro imperios.</p> + +<cita> +<p>«En los días de estos reyes el Dios del cielo hará surgir un [quinto] imperio que jamás será destruido y cuya soberanía no pasará a otro pueblo. Pulverizará y aniquilará a todos estos imperios, mientras que él subsistirá eternamente.»</p> +<p>Dan. 2, 39-44</p> +</cita> +<p>Si bien, para el magisterio y la doctrina de la Iglesia este quinto Imperio no podía ser otro que la Iglesia de Roma, para los quintamonarquistas la ejecución de Carlos I de Inglaterra en 1649, constituía un signo evidente de que se avecinaba la segunda venida de Cristo y su reino de mil años. Así, lo apoyarían buscando aniquilar la 'sociedad corrupta' que representa Babilonia -para ellos, la Iglesia y la Cristiandad-, como paso previo a la instauración del reino de Cristo. Sin embargo, esta ansiada monarquía jamás llegó (tampoco los medios provistos, como la república de Oliver Cromwell), por el contrario, se restauró la monarquía en Inglaterra y la historia continuó.</p> +<img style="width: 50%; float: left; filter: sepia(30%); margin-right: 1em;" src="resources/leviatan-hobbes.jpg" /> +<p>Tal decepción milenarista generó todo un pensamiento teológico y político secularizado, que iría desde utopías como el contractualismo, hasta el liberalismo democrático. Tesis bien defendida en <i>Poder de Dios, poder de Estado. El protestantismo en la génesis de la modernidad política (1993)</i>, de Javier Barraycoa. Por su parte, George H. Williams, indicaba que dicho clima desesperanzante fue lo que impulsó a todos los radicales a apartarse completamente de la idea inherente en el <i>corpus christianorum</i>, medieval, a desconocer los órganos históricos elaborados por él. En otras palabras, el pensamiento milenarista teocrácito preparó paradójica y conceptualmente la doctrina liberal -y su consiguiente separación de la Iglesia y del Estado-. En este proceso de secularización cabe encuadrar obras como el <i>Leviatán</i> de Hobbes y otras en orden cada vez más secularizado del pensamiento contractualista que pasan por Locke o Spinoza y desemboca en el <i>Contrato social</i> de Rousseau. Veamos por ejemplo la citadísima obra del <i>Leviatán</i>, que en un lenguaje 'teológico-ateo', especialmente en la última parte que es titulada el <i>Reino de las tinieblas</i> -en referencia al papado y al pensamiento medieval- que contrapone al <i>Reino de la luz</i>, que es el <i>Leviatán</i> surgido del pacto social en el que todos sus individuos ceden su voluntad para constituir una voluntad suprema. Al final, es una secularización del Pacto o Alianza de Dios con el Pueblo de Israel.</p> +<p>Louis Salleron categoriza temporalmente el cristianismo en relación con el poder político en la que ya habríamos pasado por tres fases: la primera, que va desde la muerte de Cristo hasta Constantino, la segunda que va desde Constantino hasta la Revolución francesa; y la tercera, de la Revolución francesa hasta el segundo tercio del siglo XX. Miguel Ayuso comentaría al respecto que la primera fase se caracteriza por la incomunicación, siendo que la comunidad cristiana apenas pasaba de una <i>pusillus grex</i> y que se movía por la espera escatológica de una Parusía inminente (que evolucionó posteriormente hacia una escatología de la perfección transhistórica y sobrenatural). De tal comunidad pequeña era propia la indiferencia respecto todo lo que atañe tiempo presente. Con la conversión de Constantino y el Edicto de Milán (313) se inaugura la segunda fase. Durante esta fase el problema de la Iglesia consistiría en diferenciar sus competencias de las de la comunidad política, lo espiritual de lo temporal. Tras cerca de mil años, la Revolución francesa inició la tercera fase, la de la persecución del Estado que provocaría la secularización general de la sociedad. La Iglesia retrocede, perdiendo su poder temporal en Italia, perdiendo instituciones y zonas de poder, y finalmente perdiendo su influencia sobre la legislación en materia de familia y costumbres. Una cuarta fase estaría esbozándose, acontecería lo que el Apocalipsis revela y bajo el marco de lo leído en el Catecismo de la Iglesia Católica, pero queda ya contenida en la plenitud de los tiempos correspondiente a la encarnación de Cristo y el inicio de la sexta etapa de la historia propuesta, entre otros, por San Agustín. San Buenaventura, por su parte, comentaba con el Papa Adriano sobre este tiempo futuro y sobre su fin:</p> + +<cita> +<p>«¿Quién ha dicho cuánto durará? Es cierto que nos encontramos en este tiempo; cierto es también que durará hasta que sea arrojada la bestia que sube del abismo, cuando Babilonia será confundida y derribada, y después se dará la paz; pero primero es necesario que venga la tribulación.»</p> +<p>San Buenaventura, op.cit., col. XVI, núm. 19, pág. 481</p> +</cita> +<p>Así, la consumación del Reino de Dios estará precedida de la consumación del reino anticrístico. Las claves de esta consumación las encontramos en el Apocalipsis bajo diversas figuras como Babilonia, la Ramera, las dos Bestias -una procedente del mar y otra de la tierra-, o el Dragón. Babilonia sería la Roma infiel, nuevamente paganizada y viciada, perseguidora. Canals interpreta la gran Ramera, con la que fornicarán todos los reyes de la tierra, como la modernidad, fruto de la burguesía herética. Esta Ramera se sentará sobre la Bestia de diez cuernos, que la odiarán y le harán la guerra.</p> + +<cita> +<p>«Los diez cuernos de la bestia son el poder político ya no aristocrático, ni monárquico, ni burgués, sino plenamente democrático. El poder político plenamente democrático consuma la oposición del mundo a Cristo y odia al mismo tiempo el orgullo de la riqueza, de la aristocracia, de la monarquía y lo derriba. Dios quiere que lo derribe porque ha juzgado a la ciudad mundana y los santos cantan aleluya por el hundimiento de Babilonia»</p> +<p>Cita a Francisco Canals, en La Teología de la historia en Francisco Canals, Javier Barraycoa, Espíritu LXI, núm 144 (2012)</p> +</cita> +<p>Este poder político será democrático y globalizado, oposición final del mundo a Cristo y a otras idolatrías como el propio Estado burgués o el Estado racial (para Canals, el fascismo fue la última gran idolatría). Una vez manifestado plenamente el Anticristo, destruida Babilonia y consumada la persecución contra los Santos, vendrá Cristo a consumar su Reino y juzgar a las naciones.</p> + +<cita> +<p>«Que nadie os engañe de ninguna manera. Primero tiene que venir la apostasía y manifestarse el Hombre impío, el Hijo de perdición, el Adversario que se eleva sobre todo lo que lleva el nombre de Dios o es objeto de culto, hasta el extremo de sentarse él mismo en el Santuario de Dios y proclamar que él mismo es Dios.»</p> +<p>II Tes. 2, 3-4</p> +</cita> +<img style="width: 50%; float: left; filter: sepia(30%); margin-right: 1em;" src="resources/anticristo.jpg" /> +<p>El anticristo, si es personal, no invocará títulos trascendentes, no será defensor de una fe ni solicitará siquiera idolatría. Su reinado, por lo tanto, estará asentado por un antirreinado bajo la forma democrática, antiteísta y destructora de todo lujo corruptor de la civilización. Dicho reinado se va prefigurando en la historia reciente de muchas formas. Así, de una premisa que invoca incluso la trascendencia de la fe cristiana y de la Iglesia sobre las causas temporales, niega a su vez la legitimidad a una defensa política del orden cristiano frente a la revolución -destructora del mismo-, deduciendo a una conclusión inmanentista y política: cristianos demócratas, cristianos liberales, cristianos socialistas, etc. Todo ello conviviendo, como la historia reciente nos demuestra, con monarquías parlamentarias (valga el oxímoron y el absurdo). No hay que pensar mucho para darse cuenta que no hay mayor absurdo que una monarquía sustentada en la voluntad general. A pesar de que la realidad monárquica es tan evidente que su eliminación, muchas veces, no ha podido hacerse de golpe, el destino final lógico de las monarquías parlamentarias es su extinción. Intrínsecamente ligado a este absolutismo de la democracia atea (aquella surgida de la revolución atea) es aquella concepción que Su Santidad Pío XI llamaba <i>laicismo</i> y presentaba como la peste de nuestro siglo.</p> +<p>Así, la Primera Bestia es Nerón y es el Anticristo. La Mujer calzada de luna es la Iglesia y es el Pueblo de Israel. La Gran Ramera es la Roma pagana y la ciudad del Anticristo... La rebelión contra Dios tiene su <i>tipo</i> y <i>antitipo</i> que van desde la tentación y caída de Adán hasta la Gran Apostasía.</p> + +<cita> +<p>«La venida del Impío estará señalada por el influjo de Satanás, con toda clase de milagros, señales, prodigios engañosos, y todo tipo de maldades que seducirán a los que se han de condenar por no haber aceptado el amor de la verdad que les hubiera salvado.»</p> +<p>II Tes. 2, 9-10</p> +</cita> +<p>Sabemos que la tentación es personal, pero también social (<a class="element">Ap. 17, 15<span class="info">«Me dijo además: Las aguas que has visto, donde está sentada la Ramera, son pueblos, muchedumbres, naciones y lenguas»</span></a>). Según la Revelación, dicha tentación se irá incrementando y llegará a ser tan irresistible, que Dios deberá acortar estos días para que no se pierdan muchos de los escogidos. Toda tentación se presenta siempre con apariencia de bien, sea el fruto en el paraíso o el reino del anticristo, en cuanto a bien colectivo. El ejercicio de poder político independientemente de Dios ejercita máximamente la soberbia humana. El más absoluto de los regímenes políticos, el más antidivino es la moderna democracia, hecho que se demuestra estudiando las fuentes filosóficas de las que ha surgido. Es además la culminación, en el tiempo, de la tiranía soberbia del poder político enfrentado al Reino de Dios y su Hijo. Materializa la apostasía del mundo que se niega a aceptar el <i>suavísimo dominio de Cristo Rey</i>, proclamado por el Papa Pío XI. Estamos en un tiempo en el que el ataque ejercido en el obrar del misterio de iniquidad por la acción de Satanás se dirige contra todo lo que quede de bien natural en el hombre, la sociedad, la cultura, la ciencia, el arte... Encumbra todo desorden y anarquía, y critica cualquier actividad rectamente ordenada como rutinaria y aburrida.</p> + + <h1>Bibliografía y referencias</h1> + <ul> +<li>«El apokalipsys de San Juan, Leonardo Castellani»</li> +<li>«El Apocalipsis según Leonardo Castellani», Alfredo Sáenz</li> +<li>«Obras», San Buenaventura</li> +<li>«Quas primas», Pío XI</li> +<li>«De Regno», San Tomás de Aquino</li> +<li>«Summa theologica», Santo Tomás de Aquino</li> +<li>«La Reforma Radical», George H. Williams</li> +<li>«La Monarquía en la Teología de la Historia», Javier Barraycoa, Verbo, núm. 535-536 (2015)</li> +<li>«Cristianismo y política», Louis Salleron, Verbo, núm. 99 (1971)</li> +<li>«El orden político cristiano en la doctrina de la Iglesia», Miguel Ayuso, Verbo, núm. 267-268 (1988)</li> +<li>«La constitución cristiana de los Estados», Miguel Ayuso</li> +<li>«La democracia atea», Francisco Canals</li> +<li>«Modernidad y posmodernidad: inflexión del pseudoprofetismo», Francisco Canals, Verbo, núm. 329-330 (1994)</li> +</ul> + +</body> +</html> diff --git a/teologia-historia-monarquia/resources/anticristo.jpg b/teologia-historia-monarquia/resources/anticristo.jpg Binary files differ. diff --git a/teologia-historia-monarquia/resources/caida-roma.jpg b/teologia-historia-monarquia/resources/caida-roma.jpg Binary files differ. diff --git a/teologia-historia-monarquia/resources/david.jpg b/teologia-historia-monarquia/resources/david.jpg Binary files differ. diff --git a/teologia-historia-monarquia/resources/leviatan-hobbes.jpg b/teologia-historia-monarquia/resources/leviatan-hobbes.jpg Binary files differ. diff --git a/teologia-historia-monarquia/resources/samuel-david.jpg b/teologia-historia-monarquia/resources/samuel-david.jpg Binary files differ. diff --git a/tex-maths/index.html b/tex-maths/index.html @@ -0,0 +1,120 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Blog</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Cómo escribo matemáticas en HTML: LaTeX, latexmlmath y MathML</p> +<p class="date">15 de junio de 2020 • fjbalon</p> +</header> +<p>LaTeX -ó TeX- es un lenguaje de marcas y un sistema de tipografía, escrito por <a href="https://es.wikipedia.org/wiki/Donald_Knuth">Donald E. Knuth</a> muy popular entre las comunidades de matemáticos, físicos e informáticos. Una de las características esenciales del lenguaje es la composición de fórmulas matemáticas complejas, lo que constituye una ventaja absoluta contra procesadores de texto WYSIWYG.</p> +<p>Sin embargo, HTML presenta casi el mismo problema que los procesadores de texto comunes, puesto que escribir ecuaciones complejas se hace excesivamente tedioso. Para ello es posible implementar el lenguaje de marcas -basado en XML- MathML, cuyo objetivo es expresar notación matemática. </p> +<p>Así, tomando como ejemplo la ecuación:</p> + + <math xmlns="http://www.w3.org/1998/Math/MathML" alttext="\frac{\int_{0}^{5}x\mathrm{d}x}{\lim_{x\rightarrow\infty}\frac{3+x}{x^{2}}}" display="block"> + <mfrac> + <mrow> + <msubsup> + <mo largeop="true" symmetric="true">∫</mo> + <mn>0</mn> + <mn>5</mn> + </msubsup> + <mrow> + <mi>x</mi> + <mo></mo> + <mrow> + <mo rspace="0pt">d</mo> + <mi>x</mi> + </mrow> + </mrow> + </mrow> + <mrow> + <msub> + <mo>lim</mo> + <mrow> + <mi>x</mi> + <mo>→</mo> + <mi mathvariant="normal">∞</mi> + </mrow> + </msub> + <mo></mo> + <mfrac> + <mrow> + <mn>3</mn> + <mo>+</mo> + <mi>x</mi> + </mrow> + <msup> + <mi>x</mi> + <mn>2</mn> + </msup> + </mfrac> + </mrow> + </mfrac> + </math> +<p>Que en LaTeX es escrita como:</p> + +<pre><code>\[ + \frac{\int_0^5 x \mathrm{d}x}{\lim_{x\rightarrow\infty}\frac{3+x}{x^2}} +\]</code></pre> +<p>Nos valemos de la herramienta <emb>latexmlmath</emb>> con el string de la ecuación como argumento para que nos genere el código HTML en MathML.</p> + +<pre><code>$ latexmlmath "\[\frac{\int_0^5 x \mathrm{d}x}{\lim_{x\rightarrow\infty}\frac{3+x}{x^2}}\]" + +<?xml version="1.0" encoding="UTF-8"?> +<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="\frac{\int_{0}^{5}x\mathrm{d}x}{\lim_{x\rightarrow\infty}\frac{3+x}{x^{2}}}" display="block"> + <mfrac> + <mrow> + <msubsup> + <mo largeop="true" symmetric="true">∫</mo> + <mn>0</mn> + <mn>5</mn> + </msubsup> + <mrow> + <mi>x</mi> + <mo></mo> + <mrow> + <mo rspace="0pt">d</mo> + <mi>x</mi> + </mrow> + </mrow> + </mrow> + <mrow> + <msub> + <mo>lim</mo> + <mrow> + <mi>x</mi> + <mo>→</mo> + <mi mathvariant="normal">∞</mi> + </mrow> + </msub> + <mo></mo> + <mfrac> + <mrow> + <mn>3</mn> + <mo>+</mo> + <mi>x</mi> + </mrow> + <msup> + <mi>x</mi> + <mn>2</mn> + </msup> + </mfrac> + </mrow> + </mfrac> +</math></code></pre> +<p>El resultado puede verse claramente en el ejemplo de la ecuación.</p> +<h2>Bibliografía y enlaces de interés</h2> +<ul> +<li><a href="https://oeis.org/wiki/List_of_LaTeX_mathematical_symbols">List of LaTeX mathematical symbols</a> - OEIS</li> +<li><a href="http://metodos.fam.cie.uva.es/~latex/curso-2015/apuntes3.pdf">Apuntes de LaTeX - Capítulo 3: Fórmulas matemáticas</a></li> +<li><a href="https://manualdelatex.com/tutoriales/ecuaciones">Ecuaciones en LaTeX</a> - manualdelatex.com</li> +</ul> + +</body> +</html> +\ No newline at end of file diff --git a/the-rider/index.html b/the-rider/index.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>The Rider (2017) de Chloé Zhao</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">The Rider (2017) de Chloé Zhao, «Dios nos da a cada uno un propósito, el del caballo es correr por la pradera; el del vaquero es montar»</p> +<p class="date">26 de enero de 2020 • fjbalon</p> +</header> +<p>Sacrificio proviene de sacrum facere; es decir, hacer lo sagrado, entregarse, honrarlo. Por el uso y la costumbre -en este caso no tan positiva-, la vinculamos hoy día con dolor y pérdida, sin ser éste su sentido real. Así, en las costumbres arcaicas, era común el sacrificio de animales como ofrenda a los dioses, sea en homenaje o en expiación. En la pérdida del bien que supone per se el animal, se ofrece por aquello que es superior y sagrado.</p> +<p>«Dios nos da a cada uno un propósito, el del caballo es correr por la pradera; el del vaquero es montar». Pero, ¿qué ocurre cuando un caballo ya no puede correr la pradera? «tendrían que sacrificarlo», ya no puede responder a la vocación y al propósito de Dios. «No sería justo para el caballo».</p> +<p>La cinta, que representa la vida real de sus protagonistas y se cocina con prudencia y templanza. Es una película escrita en el lenguaje del varón, no sólo porque verdaderamente hay poca presencia femenina en la obra, sino porque reflexiona e introspecciona en la psicología masculina. ¿Qué es un hombre sin su propósito? ¿qué es un hombre que no provee? ¿qué es un vaquero que no puede montar?. Admiro mucho el ¿papel? de Brady, y valoro enormemente las largas escenas en las que cumple con su trabajo, con su vocación con los caballos, en su doma, su monta, el respeto y dedicación que les tiene. El amor del hombre a su trabajo, porque el trabajo dignifica al hombre.</p> +<p>Sin embargo, Brady también se ha hecho daño, como el caballo; pero es una persona, así que tiene que vivir. «Si cualquier animal de por aquí tuviese una herida como la mía, tendrían que sacrificarlo». Así, la película entra en una recta final, al más puro estilo del western, en el que todos sabemos y esperamos lo que ocurrirá: Brady montará una última vez, el último rodeo para el vaquero, que morirá sobre un portentoso bronco haciendo aquello para lo que ha nacido. O en el mejor de los casos, quedando como su mejor amigo: totalmente inválido. Es el momento del sacrificio, el sacrificio del vaquero por su oficio.</p> +<p>Sin embargo, la cinta nos presenta un giro que para mí, ha sido tan inesperado como bello. Brady encuentra en su familia, especialmente en su hermana y en su amigo, una razón por la que luchar, descubre que tiene otro propósito, otra vocación a la que responder, una forma de sacrificarse -hacer lo sagrado- por ellos, y no sacrificarse en la arena de rodeos.</p> +<p>Brady Jandreau, eres un hombre.</p> + +</body> +</html> +\ No newline at end of file diff --git a/tolkien/index.html b/tolkien/index.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>La mythopoeia de J.R.R. Tolkien</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">La <i>mythopoeia</i> de J.R.R. Tolkien</p> +<p class="date">15 de mayo de 2020 • fjbalon</p> +</header> +<p>J.R.R. Tolkien indiscutiblemente se ha convertido en el exponente supremo de su campo en términos de magnitud, excelencia y madurez, incluso sin haber concluido su obra en vida, ha descubierto un <i>mythos-lógos</i> pulido e impecable, solamente interrumpido por su inevitable culminación en el Tiempo. No he visto jamás autor que haya explorado y abarcado tal efigie apolínea unificada de su mente, condensada en un único bloque poético, lo que implica un alto grado de perfección estética y una armonía en la expresión y la palabra.</p> +<p>Tolkien era probablemente uno de los más agudos y sagaces lingüistas y filólogos del siglo XX, y quizá de la historia. Su formación y pasión no germinó a partir de un placer intelectual, ni si quiera lógico, del lenguaje, sino que desde sus primeros años desarrolló una sensibilidad especial a partir de las emociones que los sonidos de la lengua producían en él, que fue desarrollando posteriormente como pocos lo han hecho. Su 'deformación' intelectual y profesional, así como su condición como cristiano viejo, no podía sino elevar la palabra a una excelsitud tal, que es imagen del Verbo, del que parte la Creación -capítulo primero de Juan- y, por lo tanto, la creación artística y la condición de narrador de Tolkien.</p> +<p>Tal 'deformación' supuso una exploración del despliegue de las palabras de la Palabra, de los <i>lógoi</i> del <i>Lógos</i>, de cómo dar existencia a un pensamiento a través de un «Eä», de sus implicaciones y ramificaciones; para el que la filología fue el puente entre su mente-alma y el mundo, su camino hacia el Logos. Teniendo en cuenta que el término logos significa tanto «palabra» como «plan o designio ordenador», los mythos han de ser un eco del Logos por el que el mundo fue creado, y, por lo tanto, manifestación de la pluralidad de significaciones: todas las historias hablan sobre la Historia, sobre la irrupción del Logos en el Tiempo. <i>Un mito no está designado a describir una situación específica, sino a contenerla de manera que no limite su significado a una sola situación. Su verdad está dentro de su estructura, no fuera de ella</i> (Northop Frye).</p> +<p>Los <i>mythos</i> son eventos primordiales intemporales que elevan hacia lo sagrado -revelan el misterio-, señalan fundamentalmente aquello que es verdadero e incondicional, siendo accesible mediante <i>fides</i> y la voluntad de saber. El mito denota lo que <i>es</i>, teniendo en cuenta que carece de delimitación conceptual, al contrario que el <i>lógos</i>, por lo que cualquier explicación categórica lo desvirtuaría. Su relación con el <i>lógos</i> se da, pues, en su naturaleza de la palabra, de la expresión del pensamiento: el <i>lógos</i> exige raciocinio, demostración, conexión con el conocimiento temporal. Así, los consideramos dos magnitudes con un mismo sentido.</p> +<p>Los clásicos encontrarían el equilibrio en su complementación; existe unidad entre los dos modos, lo que convierte en irracional la marginalización existente hoy día, y que retorna, inevitablemente, la pérdida de la metafísica. Así, ante la negación del mito y sus consecuencias -como la disolución de la tradición y sus dimensiones constitutivas-, la sociedad moderna cojea. No se basa en la experiencia sino en el ejercicio de la razón. Antiguamente la relación entre mito y logos no era de oposición extrema, sino de mutuo reconocimiento y fecundación.</p> +<p>Cualquier lector ávido de las cartas de Tolkien se habrá percatado de los términos empleados por él mismo: Tolkien no inventaba, encontraba. Creía que un hombre podía recibir, como don, el registro de un destello de realidad o verdad subyacente (Cartas, 5, 163), así como defendía que no se encontraba solo cuando trabajaba (Cartas, 328); él era parte de una historia desarrollada mediante el proceso narrativo de búsqueda. Pero, ¿cómo accedió Tolkien a tal conocimiento 'escondido'? Fue mediante la palabra, que como lingüista, inventó cientos de ellas. Estaba interesado en su raíz, contexto, historia, analogía y evolución. Tras la palabra latía una comprensión de la realidad mítica-poética que lo llevó a pensar en una estética del sonido, una ciencia que explicase sus efectos. La fonética y la gramática de una lengua le llevaron a investigar la relación entre sonido, forma y significado. Y para ello necesitó levantar el mundo en el que sus lenguajes pudiesen ser hablados; su sensibilidad lingüística desarrolló su erudición literaria conducida por la fe.</p> +<p>Él mismo escribió que su obra era una sola pieza de inspiración fundamentalmente lingüística. Las historias se crearon más bien para procurar un mundo para las lenguas que él desarrollo, más que a la inversa. Para Tolkien, viene primero el nombre, luego le sigue la historia (Cartas, 165). Se trata probablemente de un ejemplo único en la historia de la Literatura, en el sentido de que el origen de la narración, el mito literario, radica en la eufonía de las palabras, en su cualidad fonética. A partir de los sonidos creó formas de ser y de pensar, enteras tradiciones culturales e históricas. La obra de Tolkien es, por lo tanto, un ensayo de estética lingüística y religiosa, en cuanto que pretende satisfacer sus gustos personales a la vez que descubrir la realidad de Dios.</p> +<p>Tolkien buscaba alcanzar una idea para una estética absoluta: toda actividad artística que profundiza en el ser ilumina un mundo ya dado como deseo de lo divino. Por lo tanto, Tolkien narró algo dicho hace tiempo, pero no escuchado por siglos a través de la exploración filológica. Como poeta, al ampliar el lenguaje, amplía considerablemente la visión del mundo, y el mundo en sí mismo. El modo en el que el lenguaje poético cubre el <i>ser</i> y después lo descubre supone la revelación de la Belleza, a través del lenguaje, de la fonética, de la ambigüedad semántica, de la intrínseca polisemia de la realidad; así como de la capacidad de la mitopoíesis para convertir en verosímil la metáfora. Y de ahí el poder de la metáfora para crear un mundo a partir de un nombre.</p> +<p>Heidegger, para el que «poesía es, pues, fundación del <i>ser</i> por la palabra de la boca», encontró en Hölderlin la coincidencia de pensamiento y poesía como ambivalencias de un quehacer metafísico. La poesía se sitúa en el acontecer de cada esfuerzo comunicativo, que al implicar renovación del lenguaje mediante transmisión, es a su vez recreación de la realidad: la palabra poética porta una verdad que se confirma a sí misma, es <i>epistéme</i>, como también defendió Aristóteles en su Poética.</p> +<p>Así, Tolkien se convierte también en filósofo, cuya acción de filosofar se realiza en y a través de la mitología y del poder semántico de la palabra. Para Tolkien, la palabra poética, al dar cobijo al ser, genera un mito cuyo logos es imagen y semejanza del actuar creativo de Dios. La poesía es, pues, el eco del canto arcano que expresa la armonía de la Creación: su voz. La Estética, desde el lenguaje, explica toda una teología y epistemología. Tolkien no sólo ha desarrollado una mitología (del <i>mythos</i> y del <i>lógos</i>), sino una <i>mythopoeia</i> propia y única en la historia del Tiempo.</p> + +</body> +</html> +\ No newline at end of file diff --git a/tor/index.html b/tor/index.html @@ -0,0 +1,234 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Tor</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Contextualización teórica sobre la técnica de Tor y sus problemas de seguridad</p> +<p class="date">26 de abril de 2018 • fjbalon</p> +</header> +<p>Tor son las siglas de The Onion Routing, algo que podríamos traducir al español como enrutamiento cebolla; denominado así por su criptografía en capas, como veremos más adelante. Se trata de un proyecto de software libre creado originalmente con fines militares por parte del ejército y la inteligencia norteamericanas, con el objetivo de dar comunicaciones seguras, privadas y anónimas entre espías y agentes en campo enemigo orientado a las operaciones realizadas en territorios, principalmente soviéticos.</p> +<p>Tor consiste en una gran red descentralizada compuesta por nodos repartidos por todo el mundo, a través de los cuales viajan nuestros paquetes de red dotando de anonimato, como veremos más tarde. Tras ser abandonado por el ejército fue reciclado por la Electronic Frontier Foundation y, finalmente soportado por su propia comunidad.</p> +<p>El objetivo de Tor es preservar la privacidad y el anonimato (diferenciados) de los que navegan por su red, manteniendo comunicaciones seguras, asegurando la integridad de la información, pretendiendo evitar monitorización y registro de actividad, etc. Con el fin de proteger la libertad de los usuarios en Internet y evitar la censura. Actualmente es utilizado por diversos perfiles, desde disidentes políticos de países autoritarios, denunciantes, periodistas, gobiernos, hackers --tanto de sombrero blanco como de sombrero negro--, vendedores de diversa índole e, incluso narcotraficantes, delincuentes, etc. El anonimato ofrecido, como en cualquier herramienta, es un arma de doble filo.</p> + + <h1>Aclaración de conceptos: deep web o red profunda & darknet o red oscura</h1> +<p>Es necesario continuar esta contextualización definiendo la red profunda de la que tanto se habla -y con tan poco fundamento en muchas ocasiones-. La definición es clara y concisa: la deep web es el contenido de internet que no está indexado por los motores de búsqueda convencionales, sea por la razón que sea. Como podemos ver, no existe delincuencia ni malicia en la propia definición de esta. Un servidor privado conectado mediante Dynamic DNS que permite trabajar con direcciones IP dinámicas. de un particular o cualquier base de datos empresarial (que lógicamente no es accesiblemediante indexadores) podría considerarse y, de hecho, se considera parte de la red profunda.</p> +<p>Cuando la cultura popular se refiere a la red Tor como homóloga a la Deep Web, lo hace erróneamente. Sí es cierto que debemos admitir a la red Tor (y cualquier red semejante o parecida, como las redes i2p o freenet) como parte de la deep web. Para solucionar este conflicto de conceptos, se ideó la conocida como darknet o red oscura, haciéndo referencia exclusivamente a estas redes especiales; concepto que vuelve a ser salpicado por la leyenda negra que lo absorve -que no exime de la existencia de inmoralidad y delincuencia en ella, hay que admitir-. Por ello, en el presente documento se hablará con propiedad a la hora de mencionar la deep web y la darknet.</p> +<p>A partir de aquí, es necesario comprender los conceptos de privacidad y anonimato, elemento que rara vez se conoce realmente. Véase <a href="../privacidad-anonimato">De la privacidad y el anonimato</a>.</p> + + <h1>Técnica teórica</h1> +<p>A priori la técnica detrás de Tor puede parecer muy complejo, pero en lo que avanza el desarrollo de este documento podremos comprobar que su funcionamiento es sencillo; no eximiendo un grandísimo potencial de uso y, como veremos más adelante, un gran margen de mejora.</p> +<p>Si nos conectamos a Internet de manera habitual, nuestra dirección IP pública y un conjunto de información más quedará expuesta, tanto para el destino de la conexión como para Man in the Middle, las propias empresas que nos proveen servicios, autoridades, gobiernos, etc. Además si la conexión no se encuentra cifrada podrá incluso filtrarse contraseñas y mensajes secretos y confidenciales. Todo lo que hacemos en Internet puede ser --y se encuentra, de hecho-- monitorizado y almacenado.</p> +<p>Por contraposición, Tor crea una ruta al azar de nodos distribuidos por el mundo, a través de los cuales viajarán nuestras peticiones, de esta forma el destino de nuestros paquetes no conocerá nuestra dirección IP, sino la del nodo de salida (al igual que usando un proxy o una VPN), y de la misma forma, el nodo de salida no conocerá la dirección IP del origen, sino del nodo anterior a él en la ruta. A su vez, el nodo de entrada no conocerá el destino de la conexión, simplemente su destino será el segundo nodo. De esta forma se permite alcanzar un alto grado de anonimato, ya que, en el caso de ser vulnerado o amenazado un nodo, nuestra información se mantendrá anónima.</p> +<p>Anteriormente comentamos el origen del nombre de Tor: el enrutador cebolla. Esto se debe a su peculiar forma de usar la criptografía sobre la información que realiza para que proteger la confidencialidad e integridad de la información de los propios servidores, incluso: cifrado por capas. Completando la explicación anterior, nuestro cliente de Tor alojado en nuestra máquina calculará al azar la ruta antes mencionada, que en este caso digamos que corresponde a 3 nodos para agilizar la explicación, el nodo de entrada en Washington, el segundo nodo en Praga y el nodo de salida en Moscú. Con la ruta ya calculada, cifrara el paquete, digamos, la petición de una simple página HTML con la clave pública del nodo de salida, posteriormente volverá a cifrar el paquete ya cifrado con la clave pública del segundo nodo y, finalmente, con la clave del nodo de entrada y, una vez terminado el cifrado por capas, será enviado al nodo de entrada, donde usará su clave privada para descifrarlo y lo reenviará al segundo nodo, que hará lo mismo.</p> +<img class="color-invertible" src="resources/torconn.png" /> +<p>El proceso continuará hasta llegar al nodo de salida y este (Moscú) pedirá la página deseada (recordamos que este servidor verá como cliente a Moscú y no a nosotros) y realizará el mismo proceso de cifrado pero a la inversa, para devolverla al cliente de Tor. A continuación será desglosado este tema tan amplio como la criptografía, en concreto lógicamente la de la red que estamos estudiando.</p> + + <h1>Criptografía</h1> +<p>Tor es el heredero del sistema desarrollado por el Departamento de Defensa de Estados Unidos. Ahondando un poco más en el tema, podemos llamar a David M. Goldshlag, Michael Reed y Paul Syverson los padres del encaminamiento cebolla, idea algorítmica que precede y, es a su vez, núcleo del concepto y de la técnica de Tor. Éstos se basaron y aplicaron las ideas de redes de mezclado de David Chaum. El objetivo fundamental y sin añadidos de estos conceptos criptográficos no es más que permitir infraestructuras para comunicaciones privadas sobre redes públicas.</p> +<p>Tor no es la única red basada en estos conceptos criptográficos y algorítmicos, pero sí es la más conocida, la más utilizada y, en principio, la que mejor resultados otorgan a los usuarios. Además, el tratarse de una red de software libre y de código abierto ha permitido la afluencia de una gran comunidad de desarrolladores que la han hecho crecer y mejorar. Dicho esto, podemos hacer menciones honoríficas a otras redes que, como Tor, siguen esta idea: Freedom Network, Onion Routing, MixMaster, Babel, Mixminion, Zach Brown's Onion, PipeNet, IronKey, MorphMix, y Tarzan.</p> +<h2>Idea primigenia</h2> +<p>La idea primigenia era utilizar criptografía de clave asimétrica tradicional. Este sistema es vulnerable a ataques basados en sniffing de tráfico. Efectivamente, supongamos que un atacante puede esnifar todos los datos que son intercambiados entre los nodos. Si finalmente el atacante consigue comprometer todos los routers (accediendo a sus claves privadas) entonces este puede descifrar todo el tráfico almacenado anteriormente. </p> +<p>Para acotar este problema podríamos cambiar periódicamente las claves (pública y privada) de los routers. Para ello estableceríamos un periodo de tiempo a la finalización del cual las claves caducarían y sería necesario establecer nuevas claves. La clave pública habría que difundirla y la antigua clave privada se destruiría para que no pudiera ser obtenida nunca, asegurando así la persistencia de la seguridad del tráfico que se realizó usando la antigua clave. Sería acertado que el cambio de claves fuera frecuente ya que esto limitaría la cantidad de tiempo que tiene A para comprometer B y C, pero a la vez requeriría que los routers del sistema contactaran frecuentemente con un sistema que les actualizara las nuevas claves lo que llevaría a problemas de escalabilidad. En resumidas cuentas: viable pero poco práctico.</p> +<h2>Criptografía de Onion Routing, padre de Tor</h2> +<p>Onion Routing establece un circuito de claves simétricas, a partir de una criptografía de clave pública mediante una estructura de datos con capas (de ahí la denominación de cebolla - onion que posteriormente fue reutilizada por nuestro objeto de estudio).</p> + + <math xmlns="http://www.w3.org/1998/Math/MathML" alttext="E_{PK_{R_{1,(K_{1,R_{2,E_{PK_{R_{2,(K_{2,R_{3,E_{PK_{R_{3,(K_{3,% Pad)))" display="block"> + <mrow> + <msub> + <mi>E</mi> + <mrow> + <mi>P</mi> + <mo></mo> + <msub> + <mi>K</mi> + <msub> + <mi>R</mi> + <mn>1</mn> + </msub> + </msub> + </mrow> + </msub> + <mo>,</mo> + <mrow> + <mo stretchy="false">(</mo> + <msub> + <mi>K</mi> + <mn>1</mn> + </msub> + <mo>,</mo> + <msub> + <mi>R</mi> + <mn>2</mn> + </msub> + <mo>,</mo> + <msub> + <mi>E</mi> + <mrow> + <mi>P</mi> + <mo></mo> + <msub> + <mi>K</mi> + <msub> + <mi>R</mi> + <mn>2</mn> + </msub> + </msub> + </mrow> + </msub> + <mo>,</mo> + <mrow> + <mo stretchy="false">(</mo> + <msub> + <mi>K</mi> + <mn>2</mn> + </msub> + <mo>,</mo> + <msub> + <mi>R</mi> + <mn>3</mn> + </msub> + <mo>,</mo> + <msub> + <mi>E</mi> + <mrow> + <mi>P</mi> + <mo></mo> + <msub> + <mi>K</mi> + <msub> + <mi>R</mi> + <mn>3</mn> + </msub> + </msub> + </mrow> + </msub> + <mo>,</mo> + <mrow> + <mo stretchy="false">(</mo> + <msub> + <mi>K</mi> + <mn>3</mn> + </msub> + <mo>,</mo> + <mrow> + <mi>P</mi> + <mo></mo> + <mi>a</mi> + <mo></mo> + <mi>d</mi> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + <mo stretchy="false">)</mo> + </mrow> + </mrow> + </math> + + <math xmlns="http://www.w3.org/1998/Math/MathML" alttext="PK_{Ri=Ri;Ri\in\{R_{1,R_{2,R_{3\" display="block"> + <mrow> + <mrow> + <mrow> + <mi>P</mi> + <mo></mo> + <msub> + <mi>K</mi> + <mrow> + <mi>R</mi> + <mo></mo> + <mi>i</mi> + </mrow> + </msub> + </mrow> + <mo>=</mo> + <mrow> + <mi>R</mi> + <mo></mo> + <mi>i</mi> + </mrow> + </mrow> + <mo>;</mo> + <mrow> + <mrow> + <mi>R</mi> + <mo></mo> + <mi>i</mi> + </mrow> + <mo>∈</mo> + <mrow> + <mo stretchy="false">{</mo> + <msub> + <mi>R</mi> + <mn>1</mn> + </msub> + <mo>,</mo> + <msub> + <mi>R</mi> + <mn>2</mn> + </msub> + <mo>,</mo> + <msub> + <mi>R</mi> + <mn>3</mn> + </msub> + <mo stretchy="false"></mo> + </mrow> + </mrow> + </mrow> + </math> +<p>Donde K<sub>i</sub> es material que permite establecer la/s clave/s de sesión compartida (puede haber una para cada sentido de la comunicación) entre el origen de la comunicación (el iniciador).</p> +<p>Observe que la capa final se identifica porque no contiene ni dirección destino, ni datos con significado para ser transmitidos.</p> +<p>La principal desventaja de este enfoque es que no provee de perfect forward secrecy. Supongamos que un circuito se construye desde el iniciador con la secuencia de nodos A,B,C y que A es un router malicioso y por tanto el atacante puede descifrar todo lo que pasa y ha pasado por él. Si A graba todo el tráfico y en el último momento se compromete B (el cual sabe quien es el último nodo C), entonces se compromete C y A puede saber con quien se está comunicando el iniciador.</p> +<h2>Enfoque telescópico</h2> +<p>Y finalmente llegamos a la criptografía utilizada por Tor. Ésta utiliza una construcción incremental e interactiva del circuito, a la que llaman enfoque telescópico.</p> + + <img class="color-invertible" src="resources/onion.png" style="width: 40%;" /> +<p>En concreto Tor se apoya en el Tor Authentication Protocol (siglas TAP), cuya seguridad fue probada en el modelo de oráculo aleatorio. Tor lo que hace es realizar una ejecución secuencial de múltiples instancias de TAP, estableciendo un circuito de autenticación RSA de un solo sentido (el iniciador no se autentica nunca). Para ello se utiliza el circuito parcialmente construido hasta ese momento. Podemos decir que en cada tramo sucesivo del circuito se realiza una negociación interactiva de claves (protocolo de establecimiento de claves de Diffie-Hellman).</p> +<p>En el TAP la clave pública del nodo sólo se utiliza para iniciar la comunicación durante la cual se establece la clave temporal de sesión vía el protocolo de establecimiento de claves de Diffie-Hellman. Las claves se forman a partir del intercambio de mensajes en lugar de ser enviadas de forma cifrada. Por tanto, una vez que la sesión finalice (el circuito ha dejado de usarse) y se destruyan las claves de sesión, si se compromete un router (se obtiene su clave privada) esto no permite al adversario recuperar las claves de sesión eliminadas y descifrar así el tráfico cifrado bajo esa clave que pudiera tener almacenada. Por tanto tenemos perfect forward secrecy. Por otra parte ya no es necesario almacenar hashes de las estructuras de datos previamente procesadas para evitar ataques de replay. Reinyectando uno de los mensajes del handshake del protocolo de establecimiento de claves de Diffi-Hellman provoca unos resultados de clave de sesión diferentes y por tanto ya no sería un ataque efectivo.</p> + + <h1>Red inproxy y outproxy</h1> +<p>Tor permite la salida a Internet utilizando los repetidores que se encuentran dentro de la red. Esto es una solución outproxy en donde los usuarios pueden salir hacia Internet utilizando la plataforma de anonimato, los repetidores que se encuentran disponibles en la red.</p> +<p>Las redes inproxy, por el contrario no permiten esto, solamente permiten la navegación dentro de la red. Es el concepto más puro de una VPN es una tecnología que permite la extracción cifrada y tunelada de una red de área local (LAN) a una red pública. en donde todos los repetidores se pueden comunicar entre ellos pero no permiten salir de ella.</p> +<p>Por ello podemos concluir en que Tor es una red inproxy a la misma vez que es una red outproxy; dependiendo del uso que le demos podemos obtener las ventajas de una u otra, o ambas simultáneamente.</p> +<h2>Hidden services</h2> +<p>Tor implementa además un protocolo que permite la configuración de servidores dentro de la misma red, sin necesidad de salir de ella (algo que aumenta notoriamente la privacidad y el anonimato, tanto del lado del cliente, como del lado del servidor). Podemos considerarlo quizás, una red privada, una intranet propia de la red. Estos servidores se conocen como hidden services (Servicios ocultos, en castellano).</p> +<p>Un hidden service es un servidor común, la mayor parte de ellos corriendo sobre GNU/Linux y el resto FreeBSD, Unix, GNU/Hurd, etc. En ocasiones incluso podemos encontrar servidores ocultos corriendo sobre Microsoft Windows Server, aunque es algo poco común. Estas máquinas ofrecen los mismos servicios que un servidor convencional (web, mail, FTP, etc).</p> +<p>Pero, al contrario de un servidor común, el cliente no conoce la dirección IP del mismo. Los nodos de Tor cumplen la función de servidores DNS, que de mediante intercambio de claves criptográficas obtiene la clave pública que identifica a este servidor dentro de la red de nombres de dominio. Esta clave seguida de la extensión .onion constituye el dominio del servidor.</p> + + <code><p style="text-align:center">x67ebbbjksjdjsl.onion</p></code> +<p>Como podemos ver, el dominio asociado no es fácil de recordar, no sigue una lógica semántica ni sintáctica. Por esta misma razón, existen las llamadas Hidden wiki's, que no son más que bases de datos de servidores y dominios, normalmente clasificados en categorías. Es una forma sencilla de indexar en la medida de lo posible estos contenidos, aunque de una forma burda, costosa y rudimentaria.</p> + + <h1>Problemas de seguridad asociados a Tor</h1> +<p>A pesar de que Tor está basado y construido con base en la seguridad, el anonimato y la privacidad de sus usuarios, como todo sistema no está extenso de problemas generales y específicos de seguridad, de riesgos y vulnerabilidades.</p> +<p>En cuanto a la seguridad general, evidentemente por mucho que nos conectemos a Tor si accedemos a servicios no seguros o no privados (Facebook tiene su propio dominio onion -<a href="facebookcorewwwi.onion">facebookcorewwwi.onion</a>-, algo curioso), los paquetes que salen por el nodo final serán inseguros o poco privados. En este caso, sólo protegerás tu conexión de salida a Internet. Esto es así porque quien tenga acceso -sea propietario o hackeado- al nodo de salida, tiene acceso a los paquetes en bruto, pudiendo espiar la conexión no cifrada o realizar otro tipo de ataques a este nivel. Es decir, un actor malicioso que controle el nodo de salida de Tor podría ser un riesgo potencial para el anonimato. Por contraposición, un actor que controla el nodo de entrada, aún manteniendo la privacidad del usuario, podría ser un riesgo en el intercambio de paquetes y manipulación de estos.</p> +<p>Del mismo modo, la descarga de código local como javascript en diversas páginas se puede convertir en un riesgo para el anonimato. También complementos como Adobe Flash y aplicaciones externas como Adobe Reader o incluso un reproductor de video podrían potencialmente filtrar su dirección IP real a un sitio web que intenta adquirirla. El paquete del navegador Tor evita todos estos problemas con su configuración predeterminada, pero podría deshabilitar estas protecciones y usar JavaScript o complementos en el navegador Tor.</p> +<p>Debido al propio diseño estructural de Tor, permitiría que la realización de ataques Man in the Middle complejos, que permitirían -si una persona u organización controla el nodo de salida y de entrada- relacionar las direcciones IP con las peticiones enviadas al servidor, así como los timestamps y los tiempos de comunicación, y llegando a corresponder la conexión de entrada con la conexión de salida; rompiendo el anonimato y la privacidad del usuario. Aunque esto parece un riesgo mínimo por tratarse de una causística muy concreta, no lo es tanto. Véase <a href="https://www.genbeta.com/seguridad/alguien-lleva-cuatro-anos-gestionando-cientos-servidores-tor-hackeados-para-desanonimizar-a-usuarios-esta-red-privada">KAX17 ha llegado a controlar hasta el 10% de nodos de salida con motivos maliciosos</a>, lo que le da a KAX17 un alto control de la red. Este tipo de ataque se denomina Sybil; aquel que controle mayor número de nodos tiene más posibilidades de formar parte en más circuitos. No obstante la propia red dispone de un sistema de scripts que automatiza y comprueba si hay un aumento repentino o anormal de nodos, y un equipo de revisión de nodos para mitigar el riesgo potencial.</p> + + <img class="color-invertible" style="width: 50%;" src="resources/torspoiled.png" /> +<p>Otro ataque a tener en cuenta es el ataque predecesor, que tiene como objetivo identificar a los clientes de la red Tor aprovechando la reconstrucción de los circuitos. Uno o varios nodos hacen un seguimiento de las conexiones. Cada vez que un usuario reconstruye (aleatoriamente cada 10 minutos de conexión) un circuito, se vuelve a conectar a nuevos nodos haciendo que el atacante identifique al cliente porque tenderá a conectarse más veces que cualquier otro nodo. Conectado con el ataque Sybil, aquel que controle muchos nodos podría hacerlos fallar habitualmente para obligar a los clientes a reconectarse una y otra vez aumentando el éxito del ataque hasta obtener un circuito totalmente controlado por él (ataque de reconstrucción circuital).</p> +<p>El ataque por atasco es también un elemento de riesgo. Una conexión a través de n routers tiene un efecto en las otras conexiones a través de ese mismo router, personalmente me gusta llamarlo onda lógica. El usuario atacante tiene que controlar un router Tor y ser capaz de observar una conexión intermedia entre la salida del router y el destino final. Mediante el router Tor, el atacante, puede crear circuitos en todos los demás routers Tor uno por uno para comprobar la latencia de la conexión si incrementa o no. En el momento que encuentre un router donde sí aumente, ese router está en el circuito. Aun así, debido al número de nodos actual es un ataque que por infraestructura tiene un bajo riesgo, pero alto impacto.</p> +<p>El ataque Round-Trip Travel Time depende del tiempo de ida y vuelta de los clientes a los servidores. También hay que tener en cuenta posibles ataques de envenenamiento DNS, parcheo de archivos añadiendo código malicioso, sustitución de certificados SSL...</p> +<p>Evidentemente, también el uso de aplicaciones vulnerables, o posibles apariciones de ataques 0-day contra éstas, que usan la red Tor entablaría un riesgo potencial para la privacidad y el anonimato. El navegador de Tor, basado en Firefox, no está exento de estas vulnerabilidades. Véase <a href="https://www.cvedetails.com/vulnerability-list/vendor_id-12287/product_id-50922/Torproject-Tor-Browser.html">CVE Details, Tor Browser: Security Vulnerabilities</a>.</p> + + <h1>Conclusiones</h1> +<p>La red Tor ofrece una estructura estable para dotar de seguridad, privacidad y anonimato a los usuarios. Pero como hemos visto no está exenta de vulnerabilidades y riesgos. Cualquier usuario conectado a Tor deberá tomar medidas de seguridad, igual que si de una conexión por la surface web se tratase. Tor es combinable con otros elementos de seguridad de conexión, como VPN, combinando los circuitos de Tor y encadenando la salida de Tor -insegura- con la conexión cifrada de la VPN. También el uso de sistemas y softwares fiables es fundamental para garantizar un alto nivel de seguridad.</p> +<p>Y finalmente, evidentemente tener sentido común a la hora de realizar conexiones, evitando ataques de ingeniería social o errores humanos que pongan en peligro la seguridad. El hombre es siempre el eslabón más débil en la cadena de la seguridad, por lo que es un elemento crítico a tener en cuenta y a proteger.</p> + + <h1>Más información</h1> +<ul> +<li><a href="https://torproject.org/docs/documentation.html">Tor Project</a></li> +<li><a href="https://wiki.archlinux.org/index.php/tor">ArchWiki</a> sobre Tor</li> +<li><a href="https://makeuseof.com/tag/i2p-vs-tor-vs-vpn-secure/">I2P vs. Tor vs. VPN: Which Is More Secure?</a></li> +<li><a href="https://fwhibbit.es/24-horas-en-la-vida-de-un-nodo-de-salida-de-tor">24 horas en la vida de un nodo de salida de Tor</a>, fwhibbit</li> +<li><a href="https://thehackernews.com/2021/05/over-25-of-tor-exit-relays-are-spying.html">Over 25% Of Tor Exit Relays Spied On Users' Dark Web Activities</a></li> +</ul> + +</body> +</html> +\ No newline at end of file diff --git a/tor/resources/onion.png b/tor/resources/onion.png Binary files differ. diff --git a/tor/resources/torconn.png b/tor/resources/torconn.png Binary files differ. diff --git a/tor/resources/torspoiled.png b/tor/resources/torspoiled.png Binary files differ. diff --git a/unix-filosofia/index.html b/unix-filosofia/index.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>De la Filosofía de Unix</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">De la Filosofía de Unix</p> +<p class="date">29 de septiembre de 2022 • fjbalon</p> +</header> +<p>Sin pretender hacer un trabajo histórico sobre Unix, el artículo <a href="../unix-leyenda/">De la Leyenda de Unix y las Grandes Casas</a> nos permite comprender mejor la propia filosofía, derivada de este tiempo y contexto. Si bien hoy en día existe una tendencia modernista contraria a dicha filosofía. Si se puede entender como que la defensa de la simplicidad debe ser mantenida como un objetivo primordial de diseño, cualquier complejidad accidental debe ser evitada. Podemos resumirlo en:</p> +<ol start="0"> +<li>Escribe programas que hagan una cosa y la hagan bien.</li> +<li>Escribe programas para trabajar juntos.</li> +<li>Escribe programas para manejar flujos de texto, porque esa es la interfaz universal.</li> +</ol> +<p>Que si bien diversos autores e intelectuales, como Eric Raymond, desarrollan más o menos, la estructura conceptual base es similar en todas. Es interesante, desde el punto de vista filosófico y doctrinal, al menos enumerar los principios que sirven de base para su desarrollo de la filosofía de Unix, como son el Principio de modularidad, Principio de claridad, Principio de composición, Principio de separación, Principio de simplicidad, Principio de parsimonia, Principio de transparencia, Principio de robustez, Principio de representación, Principio de mínima sorpresa, Principio de silencio, Principio de reparación, Principio de economía, Principio de generación, Principio de optimización, Principio de diversidad y Principio de extensibilidad. Tengo intención de extenderlos en algún artículo futuro.</p> +<p>Por su parte, Mike Gancarz, del equipo de X11, ofrece una visión más poética de la filosofía, que inicia con que lo pequeño, liviano y simple es la belleza, es lo hermoso, armónico y estético. Del hacer que cada programa haga una cosa bien y sea construido un prototipo lo antes posible. De la superioridad de la portabilidad sobre la eficiencia, de la primacía del texto y del almacenamiento de datos usando archivos de texto plano, del uso del aprovechamiento de software, de la primacía de scripts de shell para el aprovechamiento y la portabilidad, de evitar las interfaces de usuario cautivas, de hacer de cada programa un filtro. El enfoque, somo se ve, es más estético que funcional, casi.</p> +<p>La primera regla podemos entenderla como una exhortación de naturaleza minimalista, en la que todo lo que pueda ser borrado debe, de hecho, ser borrado. La función del programa debe ser la mínima exigida, sin añadidos que acabarían redundando en funciones similares con otros programas; es decir, los programas deben ser modulares, tener una sola función. El código debe ser autoexplicativo y servir como propia documentación, fácil de leer y con bajos niveles de abstracción. Un makefile (a nivel conceptual) debe estar presente para construir el software.</p> +<p>Si bien es cierto que diseñar software simple y elegante es mucho más difícil que dejar que características <i>ad hoc</i> o demasiado ambiciosas oscurezcan el código con el tiempo, es un precio a sufragar para lograr la fiabilidad y mantenibilidad. Además, el propio minimalismo y la pretensión de simplicidad resulta en objetivos razonables y alcanzables: las ideas ingeniosas son simples, el software ingenioso es simple. La simplicidad es el corazón de la filosofía Unix. Cuantas más líneas de código haya eliminado, más progreso habrá hecho. A medida que el número de líneas de código en su software se reduce, cuanto más experto se haya convertido, <i>suck less</i>. Un ejemplo perfecto de la aplicación de dicha filosofia en la actualidad es <a href="https://suckless.org/philosophy/">la filosofía y el manifiesto suckless</a>.</p> + +</body> +</html> diff --git a/unix-leyenda/banner.jpg b/unix-leyenda/banner.jpg Binary files differ. diff --git a/unix-leyenda/index.html b/unix-leyenda/index.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>De la Leyenda de Unix y las Grandes Casas</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">De la Leyenda de Unix y las Grandes Casas</p> +<p class="date">13 de junio de 2016 • fjbalon</p> +</header> +<p>La filosofía es aquel conjunto de saberes que busca establecer, de manera racional, los principios más generales que organizan y orientan el conocimiento de la realidad, así como el sentido del obrar del hombre. Bajo estos preceptos, es fácil comprender cómo los primeros padres de Unix establecieron una doctrina, adheridos a unos principios y una Tradición propia en el mundo de la ciencia de la computación. Tomamos el espíritu de la época y lo aplicamos hoy.</p> +<p>Cuando nos referimos a la filosofía de Unix, no hablamos propiamente de la técnica y la programación del sistema operativo, sino de un entorno y unas formas de hacer en las que orbitan aspectos más lógicos, si cabe. Son las ideas que los programadores tuvieron durante el desarrollo, el entorno que tenían, el enfoque de resolución de problemas, aquello que les movía y el como lo aplicaban en otro lugar, sus normas y conceptos. </p> +<p>El sistema operativo es solo la encarnación del pensamiento de sus creadores, sigue incluso una estética, entendida en su profundidad, que otorga una belleza a la informática que jamás se ha igualado. ¿Quiénes eran esos programadores con los que queremos lograr una consistencia filosófica y tradicional? Vamos a hablar de Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy y Rob Pike; entre otros.</p> + + <h1>Los Padres de Unix</h1> +<p>Unix fue desarrollado en la década de 1970 en el centro de investigación Bell Labs. Ken Thompson fue el padre de Unix original, fue su idea escribir un nuevo sistema operativo. En ese momento estaba trabajando en un sistema operativo de tiempo compartido llamado Multics, pero se cansó de su creciente complejidad. Comenzó así desde cero, en base a su experiencia con Multics, despreciando la complejidad y abrazando la simplicidad. El primero en seguirle, dejando de trabajar en Multics y ayudando a Ken Thompson en su nuevo proyecto fue Dennis Ritchie, que se adhirió a la filosofía naciente de defensa de la simplicidad de Ken Thompson.</p> +<p>Dennis Ritchie se convirtió en un gran apologista de esta nueva filosofía. En el momento en que Unix se escribió en ensamblador, se encargó de escribir un lenguaje de nivel superior que simplificaría todo, desde portar el sistema operativo a otra arquitectura, hasta contribuir modificando la fuente, hasta escribir utilidades del sistema. Así, Dennis Ritchie escribió C, y Unix fue reescrito en C.</p> +<p>Entonces, otros pudieron comenzar a contribuir fácilmente construyendo herramientas para el sistema. Brian Kernighan se unió al desarrollo de éstas, también Douglas McIlroy y Rob Pike. El aspecto multitarea y multiusuario del comenzó a materializarse y a trascender de su significado. Todos podían acceder a todo, no había nada oculto, todo se encontraba claro: todo se encontraba en texto plano, en palabras.</p> +<p>Así, el sistema se enfocó en el texto, dándole un enfoque humano a la computación que, con la simplicidad en la mente y la proposición de «no te repitas» entre sus programadores, se lograba un sistema sencillo, comprensible, autodocumentado, simple. Algo único se construía, algo que necesitaba hacerse y no una repetición de herramientas ya escritas. La shell, como interfaz humano-máquina, tenía una capacidad de scripting -guionización- que le permitía escribir programas usando otros programas, pero no alcanzó su mayor potencial hasta que Douglas McIlroy creo la tubería en 1973. Ésta permitía conectar programas para resolver tareas complicadas sin repetir código, conectándose mediante secuencias y flujos de texto.</p> +<p>Así, se deduce el entorno que da lugar a la proposición de hacer herramientas simples, que hagan una cosa, y la hagan bien. Se conectarían mediante tuberías con otras. Esto se contrapone con los crecientes software monolíticos gigantes no modulares. El sistema era claro; un entorno abierto para el desarrollo, la investigación y la educación. Con la barrera de entrada levantada, jugar con el sistema fue fácil y abrió la puerta a más y más contribuciones. En parte debido a la modularidad también, los problemas de división que podrían realizarse con un programa grande en múltiples procesos cooperantes, la llamada multiprogramación o multiprocesamiento. La multiprogramación deriva en la cooperación.</p> + +<cita> +<p>«Lo que queríamos preservar no era solo un buen entorno en el que hacer la programación, sino un sistema en torno al cual se pudiera formar una comunidad. Sabíamos por experiencia que la esencia de la informática comunitaria, suministrada por máquinas de acceso remoto y tiempo compartido, no es solo escribir programas en un terminal en lugar de un pulsador de teclas, sino fomentar una comunicación cercana.»</p> +<p>Dennis Ritchie</p> +</cita> +<p>Hasta 1975, Unix permaneció 'escondido' en los laboratorios Bell, hasta que se vendió una licencia para el código fuente a la universidad de Illinois. Como todos los softwares de la época, se distribuía con el código fuente. Especialmente cuando se lanzó el código para el TCP/IP, desarrollado para UNIX, se inició una red mundial de programación colaborativa en sistemas Unix. Los sistemas multiusuario tomaron un significado completamente nuevo.</p> +<p>Así, el usuario comenzó a tener poder para cambiar las cosas y construir otras nuevas, para dominar su informática como no se pudo hasta entonces, al mismo tiempo que aumenta el desarrollo comunitario al hacer que el sistema sea comprensible y humano, enfatizando en herramientas mínimas y completas que sólo hacen una cosa bien.</p> + + <h1>La decadencia de UNIX</h1> +<p>En 1975 Ken Thompson visitó la universidad de Berkeley y durante su visita introdujo a algunos estudiantes en UNIX, lo instalaron en sus máquinas y Unix comenzó a extenderse, así como su filosofía.</p> +<p>Unix se distribuía entonces a las universidades de forma gratuita y acompañado del código fuente. Esto produjo que muchas universidades comenzaran a contribuir al código de UNIX, construyendo sobre la base del código de Berkeley a partir de las premisas y las bases que Ken Thompson les dio. Era una red de contribuciones y distribuciones abiertas, mejoras constantes y buenas ideas. Unix era un campo académico y científico, un ambiente para la investigación.</p> +<p>Sin embargo, esto no duró mucho. Las versiones de Unix comenzaron a incorporar código propietario del original, y pronto se encontraron en una guerra jurídica. Las licencias se habían vuelto muy caras lo que deterioraba la comunidad, obstaculizando el uso y la contribución del sistema. Al mismo tiempo, la universidad había creado el código del protocolo TCP/IP, sin embargo nació bajo la licencia e AT&T, al igual que la marca registrada de UNIX. En 1989, Berkeley lanzó su protocolo de red de forma gratuita, siendo el advenimiento de la estrecha relación entre Internet y Unix, y siendo uno de los primeros movimientos reales del movimiento de código abierto.</p> + + <h1>El nacimiento de las Grandes Casas</h1> +<p>En tal decadencia del Imperio Unix, provocada por el positivismo jurídico, propiedades, las licencias y el obscuramiento del código provocó el surgimiento primero de BSD. Ésta puede ser considerada la primera Casa surgida de Unix, en la que los programadores eliminaban las partes propietarias y las reescribían para poder liberarlas bajo licencias más liberalizadoras, similares a las del protocolo TCP/IP. A pesar de las demandas de AT&T buscando detener su desarrollo en 1992, BSD venció demostrando que no estaba basado en el software original, de hecho, BSD lograba terminar un superconjunto, una visión más elevada de cómo se suponía que debía ser el desarrollo del Unix primigenio, una evolución natural del viejo Imperio. Incluso con código reescrito, el espíritu seguía ahí.</p> +<p>Paralelamente la Casa de BSD luchaba contra AT&T, y su permanencia estaba en duda; un estudiante finés llamado Linus Torvalds escribía un kernel, el núcleo para un sistema operativo que fuese asequible, simulando de alguna forma el cómo trabajaba el viejo Unix, iniciando la Casa Linux. En otro continente, Richard Stallman escribía en el MIT un conjunto de herramientas y un sistema operativo completo; nacía así la Casa GNU. El código de GNU simulaba Unix, aunque no partía directamente de él, eran más bien una reprogramación. También escribió un compilador de C. Sin embargo, las Casas de Linux y de GNU no estaban completas, por lo que se unieron en las Casas GNU y Linux. Comenzó a ganar notoriedad y atractivo en las comunidades: un sistema operativo libre y completo, similar a Unix.</p> +<p>Debido a que la irrupción en el Tiempo de las Casas GNU y Linux sucedió durante el período frio de BSD, se provocó una migración de BSD a GNU/Linux. Las razones son obvias, contra un sistema con una permanencia dudosa debida a la cruenta batalla que le presentaba el capitalismo, GNU/Linux se constituyó como un sistema verdaderamente abierto, libre, compatible con POSIX y con una interfaz prácticamente Unix. Con la ascensión de las Casas GNU y Linux, fueron exaltados también los movimientos del código abierto y del software libre de Richard Stallman, se popularización rápidamente a través de la creciente Internet, y se convirtió en el más grande proyecto de distribución y contribución en línea: cualquiera podría agregar su conjunto de herramientas y cambios en el sistema operativo, corregir sus errores, aportar su inteligencia, etc. ¿Acaso no es la filosofía de Unix en su base?</p> +<p>Hay que tener en cuenta, no obstante, que BSD se reescribió en base al Unix original, mientras que GNU/Linux se escribió sólo con la perspectiva general de cómo es Unix. Esto es un gran ejemplo de la simplicidad de Unix, tan simple de entender que otro podría reescribirlo por completo con pocas nociones genéricas en mente. Una genialidad.</p> +<p>Pero si bien BSD y GNU/Linux no son el Unix original, esto nos plantea muchos argumentos. ¿Pueden ser parte de la filosofía de Unix si de alguna manera no están directamente relacionados con el código de los autores originales? ¿puede la filosofía vivir fuera de la base del código? ¿es esta diáspora realmente un paso evolutivo en la filosofía de Unix?</p> +<p>Dennis Ritchie ha expresado su opinión al respecto diciendo que los sistemas Unix-like, como GNU/Linux, son sistemas Unix <i>de facto</i>. Eric S. Raymond y Rob Langley sugirieron que existen 3 tipos de sistemas Unix, siendo los Unix genéricos, registrados y funcionales. En base a estos pensamientos, he reflexionado y desarrollado mi propia clasificación, haciendo la separación usando términos jurídicos:</p> +<ol> +<li><i>De iure</i>: son aquellas Casas y sus distribuciones que tienen una conexión histórica y directa con el código fuente original de Unix (propiedad de AT&T). Encontramos en esta categoría por ejemplo la Casa BSD.</li> +<li><i>De facto</i>: entraría cualquier sistema que se comporta de manera similar a Unix, aunque no tiene una herencia directa. Encontramos en esta categoría tanto a GNU como Linux.</li> +</ol> + + +</body> +</html> +\ No newline at end of file diff --git a/unix-simplicidad/index.html b/unix-simplicidad/index.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Unix es simple. Sólo se necesita un genio para entender su simplicidad</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Unix es simple. Sólo se necesita un genio para entender su simplicidad</p> +<p class="date">2 de julio de 2018 • fjbalon</p> +</header> +<p>No será secreto para nadie que el título es citado de Dennis Ritchie. Unix es un sistema, aunque pensemos en éste de una forma abstracta y conceptual de cara a la filosofía, que se basa en módulos pequeños y simples. Sin embargo, decir que por ello Unix es simple sería caer en una falacia de composición, pues cuando el número de módulos simples que encajan entre sí se vuelve grande es difícil obtener una visión general de cómo todo encaja en su lugar. Sería lo mismo que decir que una catedral gótica es simple, pues se basa en unir piedras, algo simple. La simplicidad de los componentes no deriva en que la totalidad del sistema lo sea. Quizá la proposición de que se necesita un genio para entender su simplicidad no puede comprenderse desde una visión estricta, pues Unix es complejo, sino por el hecho de que el valor de Unix no viene por su conjunto, sino por sus partes individuales trabajando entre sí, mostrando así la visión de Dennis Ritchie, poco convencional, pero propia de un genio. Como aquel físico que ve en el conjunto de la materia el valor de los átomos interactuando.</p> +<p>Obviamente, la frase no debe ser leída estrictamente mediante la lógica, sino también mediante la poseía y la literatura. Es apologética de Unix y su filosofía. Algo que también ha contribuido en la comunidad algo curioso: si bien al principio los requisitos para acceder a la comunidad y a la filosofía Unix eran muy accesibles y abiertos, el tiempo no ha hecho sino elevar los criterios y hacerlos más exigentes, creando una especie de elitismo intelectual en la comunidad. Sea por la creciente complejidad y especialización de la ciencia de la computación, sea por los elevados preceptos de la filosofía, sea por el sentido de legado y tradición hacia los Padres de Unix, sea por la interpretación literal de la frase que titula el artículo. Sea como sea, sentirte perteneciente a la filosofía y la comunidad de Unix no es sino sinónimo de intelectualidad informática, de formar parte de una élite informática, de una aristocracia, de ser partícipe de una ortodoxia y un Corpus.</p> +<p>Este elitismo está vigente en los sistemas hijos y nietos de Unix. Algunos critican a GNU/Linux apelando a la falacia genética, argumentando que al no estar vinculado directamente en herencia al código Unix original no puede formar parte de su filosofía, a pesar de reconocerse como un sistema Unix <a href="../unix-leyenda/"><i>de facto</i></a>. Pero seamos sinceros, este celo ortodoxo no ha hecho sino extraer reglas y conceptos filosóficos elevados de la cultura de Unix y de la computación.</p> +<p>Escribe programas con un enfoque vertical, todo es un archivo, lo que deriva en la modularidad y la compactibilidad, que hereda la cooperación entre el procesamiento, la tubería y similares. Está la textualidad y los formatos habituales utilizados, claros, concisos y transparentes. Con eso viene la transmisión y la preferencia de la interfaz de usuario de texto antes de la GUI, la GUI es solo una envoltura sobre el texto. Está el aspecto social del código y la barrera para el desarrollo. Con eso viene el código abierto y más contribuciones. Una ortodoxia definida. Una herencia simple. Una genialidad.</p> + +</body> +</html> +\ No newline at end of file diff --git a/vvitch/index.html b/vvitch/index.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>The VVitch (2015), de Robert Eggers</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">The VVitch (2015), de Robert Eggers</p> +<p class="date">17 de noviembre de 2021 • fjbalon</p> +</header> +<p>The VVitch, o la bruja, se trata de una película profundamente religiosa, aunque parezca contraria a ésta. La estética -en un sentido profundamente ascético- y la fotografía engalanan la ópera prima de uno de los que, a mi parecer, son uno de los mejores directores -o al menos de los que más se asemejan a mi forma de ver cine- de la actualidad.</p> +<p>Sobre su religiosidad, se aleja mucho de lo que, cinematográficamente, entendemos como cine religioso -que tiende a ser cursi y centralizador del mensaje, salvo contadas excepciones-. Eggers explora una religiosidad antigua y mística, que explora la mitología y su encuentro con la fe de sus personajes a través de la estética, que aunque cambiante, se adapta a cada concepto e idea que quiere sellar en la mente del espectador; y que envuelve con un diálogo docto y estudiado, cognoscente del folklore, la religión y la mitología; avezado en el lenguaje cinematográfico, fotográfico y, sobretodo, estético.</p> +<p>La Bruja explora la debilidad y desesperación del pensamiento protestante ante su propia naturaleza humana, corrupta por el pecado original, que encarna una familia desprotegida y desacramentada por una fe castrada, que se enfrenta a su propio abismo en caída libre ante el mal, encarnado en un paganismo antiguo y sólido. Es una película incómoda y terrorífica, que no requiere de sustos ni sobresaltos. A destacar el impecable papel de Anya Taylor-Joy.</p> +<p>La fe protestante de la familia es fundamental en la trama. Y así Eggers lo hace ver continuamente, con la confesión secreta en intimidad con la propia oración de Anya Tylor-Joy (un protestante nunca sabe si ha sido perdonado), la duda del niño contra las verdades de su fe (especialmente en la condenación, auspiciada por la pérdida de su bebé hermano, sin haber cometido mal formal, pero sin bautizar), la falta de sacramento, etc. La familia tiene una fe, que al principio se aparenta fuerte y robusta, pero que es dominada por las propias situaciones.</p> +<p>Un elemento también fundamental de la cinta es la familia, que es un elemento nuclear para la protección y educación de cada individuo, y cuya cabeza es el hombre. El hombre, que superado por la naturaleza y el paganismo, no intercede ni defiende como se le exigiría a su familia, no quiere (o puede) ver siquiera el mal que les acecha sino en causas accidentales (un lobo) y calla en conflictos interfamiliares que él mismo ha provocado (la copa de plata de su esposa). El hombre, que no es capaz de calmar la desesperación de su esposa ante la pérdida de su hijo ni controlar a sus propios hijos en la fe y la virtud, permite indirectamente la demolición de la familia.</p> +<p>El demonio, en imitación profana y blasfema a Cristo, elige a sus discípulos -déjalo todo y sígueme-; la brujería -una burda parodia del Matrimonio- acaba con la familia que protege, no de una forma religiosa o espiritual, pues es una familia castrada por la herejía; sino de una forma ius naturale, despojando a Thomasin de todo lo que ella tiene, y es entonces cuando éste se le muestra y le elige para su aquelarre. Sin olvidar que el demonio accede a la familia, no a través de Thomasin, sino a través de los dos hijos pequeños, son ellos los que le abren la puerta a través del juego con Philip el Negro (escuchaban sus susurros), que se aprovechaba de su inocencia desprotegida de Sacramentos. Provocó así la tentación sexual de Caleb que causó su caída, la desesperación y locura de la madre y la incapacidad del padre.</p> +<p>La obra no requiere de sobresaltos ni sustos fáciles, a los que nos tiene acostumbrado el género de terror moderno. Su terror se basa en la inquietud del espectador, su incomodidad, su tensión. Y en ese ambiente, el director crea secuencias que se grabarán durante mucho tiempo en la retina del que la ve, como la escena del cuervo o el susurro de Philip el Negro.</p> + +</body> +</html> diff --git a/watchdog/index.html b/watchdog/index.html @@ -0,0 +1,54 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Síntesis del Linux kernel watchdog</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Síntesis del Linux kernel watchdog</p> +<p class="date">12 de junio de 2017 • fjbalon</p> +</header> +<p>El watchdog (perro guardían o vigilante) del kernel de Linux se utiliza para monitorizar y vigilar un sistema que se está ejecutando, de forma que pueda ser reiniciado automáticamente en caso de fallo de software irrecuperable.</p> +<p>El módulo de watchdog es específico para el hardware o chip que se utiliza.</p> +<p>Los usuarios, por norma general, no necesitan de vigilancia en sus sistemas, pues pueden ellos mismos restablecer el sistema manualmente; así está pensado para dispositivos críticos que requieran de restablecimientos sin intervención humana, por ejemplo servidores en una ubicación remota o equipos integrados en naves espaciales.</p> +<p>En su intervención es necesario proceder con precaución, ya que configuraciones incorrectas o erróneas podrían provocar:</p> +<ul> +<li>Bucles infinitos de reinicios.</li> +<li>Corrupción de archivos debido al hard reset.</li> +<li>Reinicios aleatorios impredecibles.</li> +</ul> +<p>Por lo que es preferible evitar el uso de servidores en vivo para probar el funcionamiento de watchdog.</p> + + <h1>Watchdog module</h1> +<p>La funcionalidad de watchdog sobre hardware configura un temporizador que agota el tiempo de espera después de un período predeterminado. El software de watchdog actualiza periódicamente el temporizador del hardware, y si éste deja de actualizarse luego del período establecido el temporizador realizará un restablecimiento de hardware del dispositivo. Para que un temporizador watchdog sea funcional, el fabricante de la placa base tiene que permitir esta funcionalidad en el chip.</p> +<p>A menudo, la documentación del fabricante de hardware no deja claro sobre si se implementó o no esta funcionalidad. En ese caso hay que testearlo directamente.</p> +<p>Además es necesario el módulo del kernel de vigilancia correcto, que será cargado en el sistema Linux. Diferentes chips utilizan diferentes módulos, por ejemplo:</p> +<ul> +<li>Intel utiliza <emb>iTCO_wdt</emb>.</li> +<li>El hardware de HP utiliza <emb>hpwdt</emb>.</li> +<li>Los mainframes de IBM utilizan <emb>vmwatchdog</emb>.</li> +<li>Xen VM utiuliza <emb>xen_wdt</emb>.</li> +</ul> +<p>Una vez corroborado la carga del módulo es posible verificar <emb>/dev/watchdog</emb> en el sistema Linux. Si el archivo está presente, significa que se cargó el controlador. El sistema escribe periódicamente a <emb>/dev/watchdog</emb> (esta acción suele llamarse coloquialmente <i>patear o alimentar al perro guardián</i> o <i>kicking or feeding the watchdog</i>). Si el sistema falla y no 'patea' o 'alimenta' al perro, el sistema se restablecerá completamente.</p> + + <h1>Watchdog daemon</h1> +<p>El demonio de watchdog abre el dispositivo y proporciona la actualización necesaria para evitar que el sistema se restablezca. Éste puede comprobar el espacio de la tabla de procesos, el uso de memoria (memory usage), la accesibilidad de archivos, la carga de trabajo, desbordamientos en la tabla de archivos, ping a direcciones IP, tráfico de interfaz de red, temperatura, procesos en ejecución, etc. Como ya hemos visto, si las pruebas fallan el perro provocará el apagado.</p> +<p>El demonio de watchdog debería iniciarse en el momento del arranque. Podemos verificar si está iniciado con:</p> + +<pre><code>ps -af | grep watch*</code></pre> +<p>Si el kernel no estuviera compilado con <emb>CONFIG_WATCHDOG_NOWAYOUT</emb> y cerramos correctamente <emb>/dev/watchdog</emb> no habrá reinicio. Podemos escribir un carácter V en <emb>/dev/watchdog</emb> y luego cerrar el archivo; lo que detendrá al perro guardián.</p> +<p>Si queremos comprobar que el control de hardware está funcionando, podemos lanzar la siguiente orden con privilegios root:</p> + +<pre><code>cat >> /dev/watchdog</code></pre> +<p>Una vez haya pasado el tiempo esperado, dependiendo de la configuración del kernel, el sistema realizará el hard reboot.</p> +<p>Una vez conocemos watchdog, podemos iniciar su configuración. El fichero de configuración de watchdog se encuentra en <emb>/etc/watchdog.conf</emb> (es posible que haya que instalar el paquete watchdog en la distribución utilizada).</p> + +<pre><code># cat /etc/watchdog.conf +realtime = yes +priority = 1</code></pre> +</body> +</html> +\ No newline at end of file diff --git a/xz-liblzma/index.html b/xz-liblzma/index.html @@ -0,0 +1,60 @@ +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="viewport" content="width=device-width, initial-scale=1" /> +<title>Del backdoor de SSH por xz/liblzma</title> +<link rel="icon" type="image/png" href="/favicon.png" /> +<link rel="stylesheet" type="text/css" href="../article.css" /> +</head> +<body> +<header> +<p class="title">Del backdoor de SSH por xz/liblzma</p> +<p class="date">1 de abril de 2024 • fjbalon</p> +</header> + <p>La biblioteca de <emb>lzma</emb> comprometida activaría a través de un enlace de <emb>openssh</emb> a <emb>sd_notify</emb> (<i>systemd notify</i>) para obtener código oculto en <emb>liblzma</emb> para crear una puerta trasera a cualquier servidor SSH de Debian/Fedora/Ubuntu. Aparentemente, ni siquiera <emb>openssh-selinux</emb> sería seguro en esas condiciones (<emb>glibc</emb>, <emb>x86-64</emb>, fuente de <emb>tarball</emb> preconfigurada de github <emb>5.6.0</emb> y <emb>5.6.1</emb>, <emb>systemd</emb> empaquetado, <emb>openssh</emb>, <emb>rpm</emb> o <emb>deb</emb>, con llamadas habilitadas a <emb>systemd</emb> a través de <emb>openssh.service</emb>). Si la fuente se creó a partir de git con autoconf/make limpio nativo, el código malicioso no se habría incluido. Los sistemas <emb>musl</emb> (Alpine, Gentoo, OpenWRT o Void) no tienen nada de qué preocuparse, simplemente porque ni siquiera pueden compilar <emb>sd_notify</emb> para activar todo esto.</p> +<p>Es muy llamativo porque gran parte de la comunidad de la cruzada contra systemd criticaba a <emb>zstd</emb>, defendiendo en contraposición al amigable <emb>xz</emb>. Sospechaban que el propio <emb>zstd</emb> (o Zstandard, que para quien no lo conozca, es un algoritmo de compresión desarrollado por Facebook para Linux), tenía el riesgo de ser un caballo de Troya para la seguridad y el cifrado, siendo que incluso <emb>zstd</emb> se construye, mayoritariamente, con la biblioteca <emb>lzma</emb> habilitada...</p> +<p>«Es sólo un algoritmo de compresión, no se puede usar para explotar la seguridad de un sistema, es imposible» he llegado a leer por feudos del Internet. Pues este backdoor nos ha demostrado que es totalmente posible.</p> +<p>Buena noticia para Slackware y distros no-systemd: hasta donde los expertos en Debian, Fedora, Arch o Ubuntu han llegado, se necesita necesariamente systemd para 'energizar' la puerta trasera, específicamente un gancho utilizado por Debian para construir <emb>openssh</emb> de cierta manera para que <emb>systemd/dbus/sd-bus/sd-notify</emb> ejecute código malicioso para obtener material de un blob de <emb>lzma</emb> para modificar los binarios en ejecución para abrir la puerta trasera. Es una genialidad, se mire por donde se mire.</p> +<p>Este complejísimo ataque sobre librerías y códigos abiertos -apertura que permite a la comunidad, o a cualquiera que entienda, monitorizar los commits y evolución del código- ha llevado prácticamente 2 años a través de la librería <emb>xz</emb> en github (llevado a cabo principalmente por la cuenta <i>JiaT75</i><sup>1</sup> y otras de dudosa legitimidad), para afectar como decíamos a <emb>liblzma</emb>, el vector de ataque. Tenga en cuenta el lector, que esta gran complejidad para insertar un backdoor es precisamente por la naturaleza del código abierto, en código cerrado probablemente otro gallo cantaría, incluso para la detección.</p> +<anot><sup>1</sup> +JIA CHEONG TAN -> +CIA JHEONG TAN -> +CIA JHON EGTAN -> +CIA JOHN AGENT -> +CIA AGENT JOHN (?) +</anot> +<p>Pero incluso la detección tiene tela, Andres Freund, un trabajador de Microsoft (valga el chiste, salvados por Microsoft, xd) mientras realizaba tests de rendimiento notó que el daemon de SSH tardaba 500ms más de lo habitual... ¡Increible!</p> + +<pre><cita> +After observing a few odd symptoms around liblzma (part of the xz package) on +Debian sid installations over the last weeks (logins with ssh taking a lot of +CPU, valgrind errors) I figured out the answer: + +The upstream xz repository and the xz tarballs have been backdoored. + +[...] + +With the backdoored liblzma installed, logins via ssh become a lot slower. + +time ssh nonexistant@localhost + +before: +nonexistant@localhost: Permission denied (publickey). + +before: +real 0m0.299s +user 0m0.202s +sys 0m0.006s + +after: +nonexistant@localhost: Permission denied (publickey). + +real 0m0.807s +user 0m0.202s +sys 0m0.006s +</cita></pre> +<anot>Fuente: <a href="https://lwn.net/ml/oss-security/20240329155126.kjjfduxw2yrlxgzm@awork3.anarazel.de/">https://lwn.net/ml/oss-security/20240329155126.kjjfduxw2yrlxgzm@awork3.anarazel.de/</a></anot> +<p>Dicen que ejecutando <emb>strings `which xz` | grep "(XZ Utils)"</emb> detectamos si contamos con una versión seguta (<<emb>5.6.0</emb>), pero sólo cerciórese en caso de cumplir los requisitos para haber sido afectado por el backdoor.</p> +</body> +</html> +\ No newline at end of file