From 670dccf24b1b38a58905d4e6a4e4141bfc03f1e8 Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 10 Sep 2022 11:25:38 +0000 Subject: [PATCH] Update a few articles, fix links, etc. --- .../06/desarrollo-web-como-dios-manda.gmi | 26 +++++++++---------- ...uemas-de-datos-explicitos-e-implicitos.gmi | 17 +++++------- content/2015/03/clasicos-de-ayer-y-de-hoy.gmi | 2 +- content/2020/07/no-me-sigas.gmi | 8 ++---- verified | 7 +++++ 5 files changed, 29 insertions(+), 31 deletions(-) diff --git a/content/2012/06/desarrollo-web-como-dios-manda.gmi b/content/2012/06/desarrollo-web-como-dios-manda.gmi index 4e6d661..ecb2e13 100644 --- a/content/2012/06/desarrollo-web-como-dios-manda.gmi +++ b/content/2012/06/desarrollo-web-como-dios-manda.gmi @@ -46,17 +46,15 @@ Una vez asentados los fundamentos del desarrollo web, podemos comenzar a investi Lógicamente, esta es una vía "ideal". Quizás no debe completarse completamente, si no hemos de trabajar en proyectos muy complejos Java es una exageración, o bien la vida nos lleve a sumergirnos en otras tecnologías, pero es un recorrido completo. Si no llegamos a Java (o incluso si llegamos), puede ser conveniente pasar tiempo usando algún microframework que no nos dé un stack completo como el de Django, Django nos lo da casi todo mascado y seguramente hay detalles interesantes de conocer a bajo nivel que nos perdamos. Hacer desarrollo web sin un stack completo ciertamente puede ayudarnos a completar nuestras habilidades. Podemos hacer esto tanto en Python (usando un microframework de los muchos existentes, o incluso desarrollando el nuestro) como en Java (programando directamente servlets en vez de usar el MVC de Spring) o en cualquier otro lenguaje. -nota: más ediciones y sugerencias del de siempre[11]. - - -=> http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 1: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html -=> http://www.php.net/ 2: http://www.php.net/ -=> http://www.perl.org 3: http://www.perl.org -=> http://en.wikipedia.org/wiki/JavaScript 4: http://en.wikipedia.org/wiki/JavaScript -=> http://msdn.microsoft.com/en-us/vstudio/hh388566.aspx 5: http://msdn.microsoft.com/en-us/vstudio/hh388566.aspx -=> http://msdn.microsoft.com/en-us/vstudio/hh388568.aspx 6: http://msdn.microsoft.com/en-us/vstudio/hh388568.aspx -=> http://www.python.org/ 7: http://www.python.org/ -=> https://www.djangoproject.com/ 8: https://www.djangoproject.com/ -=> http://www.oracle.com/technetwork/java/index.html 9: http://www.oracle.com/technetwork/java/index.html -=> http://jquery.com/ 10: http://jquery.com/ -=> http://obm.corcoles.net 11: http://obm.corcoles.net \ No newline at end of file +=> https://www.tiobe.com/tiobe-index/ [1] El índice TIOBE +=> https://www.php.net/ [2] PHP +=> https://www.perl.org [3] Perl +=> https://en.wikipedia.org/wiki/JavaScript [4] JavaScript +=> https://docs.microsoft.com/en-us/dotnet/csharp/ [5] C# +=> https://docs.microsoft.com/en-us/dotnet/visual-basic/ [6] Visual Basic .NET +=> https://www.python.org/ [7] Python +=> https://www.djangoproject.com/ [8] Django +=> https://www.oracle.com/java/ [9] Java +=> https://jquery.com/ [10] jQuery + +=> http://obm.corcoles.net nota: más ediciones y sugerencias del de siempre diff --git a/content/2013/06/esquemas-de-datos-explicitos-e-implicitos.gmi b/content/2013/06/esquemas-de-datos-explicitos-e-implicitos.gmi index e4f3889..f6b0315 100644 --- a/content/2013/06/esquemas-de-datos-explicitos-e-implicitos.gmi +++ b/content/2013/06/esquemas-de-datos-explicitos-e-implicitos.gmi @@ -1,11 +1,11 @@ # Esquemas de datos explícitos e implícitos 2013-06-06 -Hablando de bases de datos relacionales, es común referirse al esquema de datos como la definición de las tablas, vistas, funciones, etc. que conforman la base de datos*. El esquema es sumamente importante, por supuesto, nos define qué datos admitimos y nos condiciona todo código que accede a la base de datos. +Hablando de bases de datos relacionales, es común referirse al esquema de datos como la definición de las tablas, vistas, funciones, etc. que conforman la base de datos[1]. El esquema es sumamente importante, por supuesto, nos define qué datos admitimos y nos condiciona todo código que accede a la base de datos. Este es un esquema explícito; está ahí, podemos enumerar los objetos de los que se compone y conocer milimétricamente su estructura; podemos saber qué tablas hay y qué columnas tienen, etc. -Ahora bien, supongamos que cogemos una aplicación que usa una base de datos y de repente, ocultamos el esquema. Asumamos por un momento que no podemos saber qué tablas hay, ni qué columnas, ni nada. Aún haciendo este gran cambio, nuestra aplicación seguirá funcionando**. Aún más, si desconectamos todas las restricciones de integridad y admitimos que se inserten valores en columnas que no existen (e incluso los almacenamos)... nuestra aplicación muy probablemente seguirá funcionando correctamente. +Ahora bien, supongamos que cogemos una aplicación que usa una base de datos y de repente, ocultamos el esquema. Asumamos por un momento que no podemos saber qué tablas hay, ni qué columnas, ni nada. Aún haciendo este gran cambio, nuestra aplicación seguirá funcionando[2]. Aún más, si desconectamos todas las restricciones de integridad y admitimos que se inserten valores en columnas que no existen (e incluso los almacenamos)... nuestra aplicación muy probablemente seguirá funcionando correctamente. La primera observación interesante que podemos hacer es que aquello a lo que llamábamos el esquema de datos puede que no esté ahí, pero los datos que tenemos almacenados seguirán siguiendo el anterior esquema de datos. La programación seguirá condicionada por ese mismo esquema; seguiremos insertando en las tablas y columnas que definía el esquema. @@ -17,7 +17,7 @@ Aparentemente, no. En cuanto a funcionamiento, quizá ocultemos y amplifiquemos Pero cuando nos llegue el momento de modificar o ampliar el código, sí tendremos un problema: al no poder consultar el esquema, se dificultará mucho nuestra labor. El esquema explícito era eso: explícito, claro, fácil. El esquema implícito sigue ahí, pero está oculto. Lo duro es que antes bastaba con ajustarnos al esquema explícito de los datos, que estaba delante de nuestros ojos, pero ahora seguimos teniéndo que seguir un esquema de datos implícito, mucho más críptico. Tendremos que mirar los datos almacenados o el código para saber cómo se llamaba cada tabla y cada columna, y esta información muy probablemente no esté centralizada. -Por supuesto, hay un caso en el que sí seguirá disponible. Si usamos un algo como un ORM, podremos contar con otro esquema explícito de datos; la definición del ORM -e incluso en algunos casos podremos reconstruir perfectamente el esquema a partir de la definición del ORM- claramente son conceptos si no equivalentes siempre, muy cercanos***. Si este esquema es suficientemente bueno, podría suplir perfectamente al esquema explícito de las bases de datos (e incluso mejorarlo: podría permitirnos expresar un esquema de datos más restringido). +Por supuesto, hay un caso en el que sí seguirá disponible. Si usamos un algo como un ORM, podremos contar con otro esquema explícito de datos; la definición del ORM -e incluso en algunos casos podremos reconstruir perfectamente el esquema a partir de la definición del ORM- claramente son conceptos si no equivalentes siempre, muy cercanos[3]. Si este esquema es suficientemente bueno, podría suplir perfectamente al esquema explícito de las bases de datos (e incluso mejorarlo: podría permitirnos expresar un esquema de datos más restringido). Podríamos decir que el esquema de datos explícito de la base de datos no es estrictamente necesario, pero ciertamente, **un** esquema de datos explícito es una herramienta muy útil, quizás no tanto para el funcionamiento de las aplicaciones como para su codificación y mantenimiento. @@ -25,13 +25,10 @@ Adicionalmente, es bien cierto que puedan existir datos que no se ajusten al mod Así pues, aunque es posible que un esquema relacional no sea lo más adecuado para nuestros datos, es falaz concluir que la ausencia de un esquema explícito es una ventaja -el esquema implícito sigue existiendo y nos debemos ajustar a él- y es más fácil ajustarse a algo explícito y claro que a algo implícito y oculto. -* en algunos gestores de bases de datos, el término se confunde un poco porque se pueden separar los objetos de la base de datos en "esquemas" para gestionarlos mejor +[1] en algunos gestores de bases de datos, el término se confunde un poco porque se pueden separar los objetos de la base de datos en "esquemas" para gestionarlos mejor -** las bases de datos permiten a las aplicaciones consultar el esquema [explícito]; hay aplicaciones que utilizan esta funcionalidad (para permitir su personlización mediante la creación de nuevas tablas, etc.); en este poco frecuente caso, dejarían de funcionar, claro +[2] las bases de datos permiten a las aplicaciones consultar el esquema [explícito]; hay aplicaciones que utilizan esta funcionalidad (para permitir su personlización mediante la creación de nuevas tablas, etc.); en este poco frecuente caso, dejarían de funcionar, claro -*** lo que nos debería llevar a pensar que uno de los dos es redundante e innecesario +[3] lo que nos debería llevar a pensar que uno de los dos es redundante e innecesario -corregido por el de siempre[1] - - -=> http://obm.corcoles.net 1: http://obm.corcoles.net \ No newline at end of file +=> https://obm.corcoles.net corregido por el de siempre diff --git a/content/2015/03/clasicos-de-ayer-y-de-hoy.gmi b/content/2015/03/clasicos-de-ayer-y-de-hoy.gmi index 5fa9dc9..9da7a8b 100644 --- a/content/2015/03/clasicos-de-ayer-y-de-hoy.gmi +++ b/content/2015/03/clasicos-de-ayer-y-de-hoy.gmi @@ -1,7 +1,7 @@ # Clásicos de ayer y de hoy 2015-03-02 -Tras toda una saga (1[1], 2[2], 3[3], 4[4] y 5[5]), hace casi un mes desembolsé unos dolorosos 400€ y pico euros (menos 5% de descuento directo y 5% de indirecto aprovechando un día especial FNAC) y me hice con la ansiada Classic. +Tras toda una saga ([1], [2], [3], [4] y [5]), hace casi un mes desembolsé unos dolorosos 400€ y pico euros (menos 5% de descuento directo y 5% de indirecto aprovechando un día especial FNAC) y me hice con la ansiada Classic. El resumen para los que no quieran tragarse la parrafada: diff --git a/content/2020/07/no-me-sigas.gmi b/content/2020/07/no-me-sigas.gmi index e58f4a4..3e21e1a 100644 --- a/content/2020/07/no-me-sigas.gmi +++ b/content/2020/07/no-me-sigas.gmi @@ -1,10 +1,6 @@ # No me sigas 2020-07-25 -https://fedilab.app/wiki/untrackme/[1][2] +=> https://fedilab.app/wiki/untrackme/ Siguiendo con lo de siempre, me he topado con esta curiosa aplicación que enlaza a tres interesantes "proxies" para Twitter, Instagram y YouTube. -Siguiendo con lo de siempre, me he topado con esta curiosa aplicación que enlaza a tres interesantes "proxies" para Twitter, Instagram y YouTube. - - -=> https://fedilab.app/wiki/untrackme/ 1: https://fedilab.app/wiki/untrackme/ -=> https://fedilab.app/wiki/untrackme/ 2: https://fedilab.app/wiki/untrackme/ \ No newline at end of file +=> https://farside.link ACTUALIZACIÓN 2022-09-10: farside.link es lo que uso más frecuentemente ahora. diff --git a/verified b/verified index e29a131..7d6519b 100644 --- a/verified +++ b/verified @@ -3,3 +3,10 @@ /2006/06/seguimos-con-temas-de-inspiracion-religiosa/ /2020/07/fabriquese-un-kvm-ip-por-100e/ /2015/04/debian-gnuwindows/ +/2014/04/tengo-dos-moviles/ +/2014/01/por-que-el-crud-es-importante/ +/2013/06/esquemas-de-datos-explicitos-e-implicitos/ +/2012/06/desarrollo-web-como-dios-manda/ +/2021/01/el-batiburrillo-periodico/ +/2020/07/no-me-sigas/ +/2015/03/clasicos-de-ayer-y-de-hoy/ -- 2.47.3