julio 2021

Pedro Lara {Dev}

Código, Libros y Podcast

Server Side Rendering vs Client Side Rendering

No hay comentarios
Server Side Rendering vs Client Side Rendering. Cuando usar uno u otro ? Aunque el usuario final regularmente no conoce, y no tiene porque conocerlo necesariamente, tener bien claro las ventajas y desventajas de cada opción puede significar el éxito o el fracaso de un proyecto





Conocer estas ventajas y desventajas recae sobre el desarrollador. Si bien los framework Front end que permiten el renderizado del lado del cliente (AngularJS, Ember.js, Meteor.js, ExtJS y React, etc), permiten tener un código mas organizado y limpio,además de agilizar la navegación, por otro lado le da un duro golpe al SEO.

Además de esta desventaja con el SEO, podemos decir que, al CSR depender del navegador y por ende del equipo del usuario, puede ser una desventaja para un usuario de un país en vía de desarrollo donde los equipos informáticos (computadoras) pueden no ser muy potentes. De modo, que si tenemos un cliente, que necesita crear una aplicación web que le potencialice un negocio basado en el SEO, CSR no sería la mejor opción, aunque al desarrollador le resulte mejor.

En esos casos opciones como WordPress o Drupal, por ejemplo, serían mejores alternativas. O en dado caso las nuevas opciones como Next.js o NUXT.JS que serían como un hibrido entre SSR y CSR.

Sin embargo, si el cliente no necesita que su aplicación web dependa del SEO, por ejemplo una herramienta interna de su negocio, en ese caso si podríamos hacer uso de Client Side Rendering.

Con esto no pretendo ofrecer una verdad absoluta, pues se que se pueden crear alternativas, aunque más complicadas, que usando Client Side Rendering se podría resolver lo del SEO y con Server Side Rendering tener un código limpio.

No hay comentarios :

Publicar un comentario

Presencia y Configuración del Cristianismo Protestante y Evangélico en la República Dominicana (Spanish Edition)

No hay comentarios

En esta ocasión quiero comentarles y recomendarles este interesante libro que acaba de publicar el amigo Héctor B.Olea C.. El libro lleva por nombre "Presencia y Configuración del Cristianismo Protestante y Evangélico en la República Dominicana.

 


️EL LIBRO MAS COMPLETO SOBRE LAS IGLESIAS EVANGELICAS EN REPUBLICA DOMINICANA

Este es el libro que DEBES LEER SI DESEAS CONOCER  las diversas Iglesias, denominaciones y concilios evangélicos en República Dominicana. Es la obra más completa y detallada sobre esta temática en el país que jamás se había escrito hasta ahora. Todos los conocimientos que necesitas saber sobre las diversas divisiones y creencias de las diversas Iglesias evangélicas en República Dominicana.

Haz CLIC en el botón
▶️"COMPRAR EN 1-CLIC"

Este libro te enseña:

▶️ Cómo y cuando llegaron los primeros  cristianos protestantes a la República Dominicana.
▶️ Tres tipos de organizaciones o instituciones en la tradición evangélica: 1) Concilio o red de iglesias, 2) Confraternidad de iglesias y pastores, 3) Organizaciones representativas de la comunidad evangélica.
▶️ El fenómeno de las llamadas iglesias independientes.
▶️ El fenómeno de las llamadas iglesias mesiánicas en el marco de las llamadas iglesias evangélicas independientes.
▶️ La Iglesia Adventista del Séptimo Día y los Testigos de Jehová en el marco del cristianismo protestante y evangélico.
▶️ Medios de comunicación masiva (medios de comunicación social) en manos de algún sector o ministerio de la comunidad evangélica.
▶️ Universidades administradas por algún sector de la comunidad evangélica, reconocidas por el Ministerio de Educación Superior, Ciencia y Tecnología (MESCyT).
▶️
Listado de 51 Iglesias Bautistas independientes. 

Este libro es el resultado de una investigación realizada por el Profesor Héctor para la Pontifica Universidad Católica, Madre y Maestra (PUCMM), acerca de la presencia y configuración de las Iglesias evangélicas en la República Dominicana. Tuve el privilegio de estar presente en la conferencia en la que  Héctor presentó esta investigación y puedo decir que es una investigación sin precedentes en este campo de investigación en la República Dominicana. 

 Creo que este libro puede ayudar a tener una mejor comprensión de la configuración y organización de las diferentes Iglesias, denominaciones y concilios evangélicos  en la República Dominicana que a la verdad es bastante complejo. Este libro puede ser de ayuda tanto para personas relacionadas con las Iglesias evangélicas como para personas que no lo están pero que desean tener una mejor comprensión  de su configuración, divisiones, creencias  estructura. 

El Profesor Héctor Benjamín Olea Cordero es un biblista y teólogo protestante. Profesor universitario de hebreo, griego, estudios bíblicos, y teológicos. También es el presidente y fundador del Instituto Dominicano de Ciencias Bíblicas IDCB, Inc. El Profesor Olea Cordero fue miembro del equipo de estudiosos de las lenguas bíblicas que trabajó en la versión de la Biblia llamada La Nueva Traducción Viviente 

Hector es autor de varios libros del area de investigación biblica, entre ellos: 

📙 «Jehová», el nombre que nunca tuvo el Dios de Israel: Seis estudios bíblicos y exegéticos (Spanish Edition) 
📙 La Biblia misma no afirma ser «inspirada»: Un análisis y comentario crítico, exegético y valiente del texto griego de 2 Timoteo 3.16 Y otros catorce artículos de mucho interés (Spanish Edition)

📙 La Trinidad Nicena bajo sospecha: El papel del Hijo en la creación,Un análisis de la idea de agencia y de medios en el idioma original del NT. (Spanish Edition) Edición Kindle 

PUCMM ofrece conferencia






No hay comentarios :

Publicar un comentario

Corrección del error con los estilos en React Next y @emocion/core @emocion/react

No hay comentarios
Para resolver este error con los estilos en que no cargan en React Next y emoción debes realizar este install:

npm install --save @emotion/react

Luego, debes  agregar este código en el fichero .babelrc:
{
  "presets": [
    [
      "next/babel",
      {
        "preset-react": {
          "runtime": "automatic",
          "importSource": "@emotion/react"
        }
      }
    ]
  ],
  "plugins": ["@emotion/babel-plugin"]
}

Finalmente, debes agregar este  JSX pragma:

/** @jsxImportSource @emotion/react */




No hay comentarios :

Publicar un comentario

Cómo maquetar un libro con caracteres especiales para Kindle

No hay comentarios

Cómo maquetar un libro con caracteres especiales para Kindle

Por Pedro Lara



Uno de mis hobbies favoritos es maquetar y diseñar libros. Es algo que me gusta bastante, incluso he preparado libros para varios autores, entre ellos para el destacado biblista Héctor B. Olea C. Para este autor trabajé el maquetado de  los libros que  están aquí debajo

La Biblia misma no afirma ser «inspirada»: Un análisis y comentario crítico, exegético y valiente del texto griego de 2 Timoteo 3.16 Y otros catorce artículos de mucho interés (Spanish Edition)

La Trinidad Nicena bajo sospecha: El papel del Hijo en la creación,Un análisis de la idea de agencia y de medios en el idioma original del NT. (Spanish Edition)

 

«Jehová», el nombre que nunca tuvo el Dios de Israel: Seis estudios bíblicos y exegéticos (Spanish Edition)

 

Comentarios y exégesis bíblica en el marco de la cristología de la concepción: Estudios bíblicos para navidad y adviento (Spanish Edition)

Debo confesar que cuando inicié en el mundo de la maquetación contaba con 0 experiancia, y debido a eso cometí  muchos errores.Uno de mis mayores errores en el maquetado de libros fue con las palabras especiales. Maquetar un libro sencillo no es una gran cosa, sin embargo, el problema surge cuando el libro contiene palabras especiales como fórmulas científicas, fórmulas matemáticas, o en mi caso, palabras en Griego y Hebreo.

Si conoces al biblista Hector B. Olea c, sabrás que es un experto en lingüística, Hebreo y Griego. (Si no lo conoces, aquí te dejo un enlace a varios de sus escritos y videos).

Cuando me tocó maquetar el libro que lleva por título “La Biblia misma no afirma ser «inspirada»: Un análisis y comentario crítico, exegético y valiente del texto griego de 2 Timoteo 3.16 Y otros catorce artículos de mucho interés (Spanish Edition)”  me encontré con el problema de que al subir el libro en formato Word las palabras en Griego y Hebreo se distorcionaban. Kindle Create no ayuda en este caso. Existen dos soluciones, una es convertir todos los textos de Griego y Hebreo a imágenes,

El  problema es que, además de que es poco profesional,  se nota la inserción de las imágenes porque regularmente el color del texto se torna diferente, además en el caso de tener muchas palabras, como en mi caso, sería realmente tedioso. No es la forma más profesional.

La segunda solución es convertir todo el texto a PDF, pero en este caso no será un eBook adjustable. Esta fue la solución por la que opté cuando desconocía que podría resolver esto de la manera que lo explicaré a continuación. Esto provocó que las personas que compraban el ebook dejaran innumerables quejas de que no les permitía ajustar el texto, incluso al final Kindle retiró el ebook de la plataforma por estos problemas

 


Solución

La solución a este problema es en lugar de subir un archivo tipo docs, hacerlo vía un HTML.

Cuando termines de crear tu manuscrito, debes convertirlo a HTML a través del complemento para Chrome  GD2md-html . Esto te va a generar un fichero .html, aunque si deseas puedes hacerlo online a través de muchas herramientas que existen, entre ellas https://word2cleanhtml.com/. Recomiendo GD2md-html porque te va a generar un solo fichero más simple que otros que he probado.

 

El archivo que se descarga editalo con algún editor de texto, como SublimeText, Brackets, Visual Studio Code o cualquier oreo, incluso en NotePad. ASegurate de tener la codificación diferente a UTF-8

 

Hay algunas cosas que debes modificar la cuales enumero a continuación:

 

1.    Cambie los em> a i>

2.    Elimine el <h1> del título por <title>

3.    Agregue al <body> después del </head>

4.    Encima de cada subtitulo de sus capítulos agregue un salto de página: <mbp: pagebreak /> y un id con número que deberá ir cambiando dependiendo la cantidad de subtítulos

<mbp: pagebreak /> <h2 id = "chapter-1"> Capítulo 1 </h2>.

<mbp: pagebreak />

<h2 id = "chapter-2"> Capítulo 2 </h2>

 

   Esto hará que que cada subtítulo quede en una página nueva. Debe quedar algo como esto:

 

<html>

  <cabeza>

    <title> Pon tu título aquí </title>

  </head>

  <cuerpo>

    

    <mbp: pagebreak />

    <h2 id = "welcome"> ¡Bienvenido! </h2>

    

    <p> Bienvenido a <i> El título de tu libro </i>, las locas aventuras

    de una zarigüeya en un charco. </p>

    

    <mbp: pagebreak />

    <h2 id = "chapter-1"> Capítulo 1 </h2>

    

    <p> Su contenido, incluido el marcado HTML simple, como <i> cursiva </i>. </p>

    

    <mbp: pagebreak />

    <h2 id = "chapter-2"> Capítulo 2 </h2>

    

    <p> Más contenido </p>

    

    <p> EL FIN </p>

  

  </body>

</html>

 

La Tabla de contenido

 

La tabla de contenido es sumamente importante en un libro digital, de modo que es obligatorio para que Kindle los acepte.

cree un nuevo archivo en su edito, copie el código que he colocado debajo, y guárdelo con el siguiente nombre:  toc.html

 

<!DOCTYPE html>

<html>

<head>

            <title>Titulo de su libro </title>

</head>

<body>

<div id="toc"> 

            <nav epub:type="toc">

            <ol>

          <li><a href="your-book.html#chapter-1">Chapter-1</a></li>

          <li><a href="your-book.html#chapter-2">Chapter-2</a></li>

          <li><a href="your-book.html#chapter-3">Chapter-3</a></li>

        </ol>

    </nav>

    <nav epub:type="landmarks">

            <ol>

            <li><a epub:type="toc" href="toc.html">Tabla de Contenidos</a></li>

        </ol>

    </nav>

</div> 

</body>

</html>

 

En este enlace puedes encontrar  información oficial de Kindle sobre la creación de tablas de contenidos en un ebook: https://kdp.amazon.com/en_US/help/topic/G201605710

 

Dentro de href=”” debe colocar el nombre de su archivo donde se encuentra el contenido de su libro.

 

Además de estos dos ficheros que hemos creado, es necesario crear un tercer fichero con extensión .opf.

Este fichero contiene las configuraciones que describen el libro. Es básicamente un XML.

<? xml version = "1.0" encoding = "UTF-8"?>

<identificador-único del paquete = "uid">

  <metadatos>

    <dc-metadata xmlns: dc = "http://purl.org/metadata/dublin_core" xmlns: oebpackage = "http://openebook.org/namespaces/oeb-package/1.0/" xmlns: opf = "http: //www.idpf.org/2007/opf ">

      <dc: Idioma> EN </ dc: Idioma>

      <dc: Title> Tu título </ dc: Title>

      <dc: Publisher> Su nombre </ dc: Publisher>

      <dc: creator opf: role = "aut"> Nombre, su </ dc: creator>

    </dc-metadata>

    <x-metadatos>

      <codificación de salida = "utf-8" salida = "texto / html" />

    </x-metadata>

  </metadatos>

  <manifiesto>

    <item id = "table-of-contents" properties = "nav" href = "toc.html" media-type = "application / xhtml + xml" />

    <item id = "html" href = "your-book.html" media-type = "text / x-oeb1-document" />

  </manifiesto>

  <espina>

    <itemref idref = "tabla-de-contenido" />

    <itemref idref = "html" />

  </spine>

  <guía>

    <reference type = "toc" title = "Tabla de contenido" href = "toc.html" />

    <reference type = "text" title = "Beginning" href = "toc.html" />

  </guide>

</paquete>

 

 Es importante que este fichero tenga el mismo nombre que el fichero principal donde guarda el contenido de su libro, además debe guardarlo en la misma dirección.

En la etiqueta     <dc: Title> Tu título </ dc: Title> debe colocar el titulo de su libro. Dentro de la etiqueta  <dc: Publisher> Su nombre </ dc: Publisher> debe colocar su nombre seguido de su apellido.Dentro de la etiqueta   <dc: creator opf: role = "aut"> Nombre, su </ dc: creator> debe colocar su apellido seguido de su nombre.




No hay comentarios :

Publicar un comentario

¿«Setenta veces siete» o «setenta y siete veces»? Cuestiones de lingüística, gramática y traducción bíblicas

No hay comentarios

En esta ocasión quiero compartir este interesante artículo el amigo Héctor B. olea C en el que trata el tema de cuál debería ser la traducción correcta en Génesis 4.24: y en   Mateo 18.22, Setenta veces siete» o «setenta y siete veces, lo que demuestra lo poco confiable que son las traducciones de la Biblia como ya el autor ha demostrado en varios de sus escritos y sus videos.


¿«Setenta veces siete» o «setenta y siete veces»?
Cuestiones de lingüística, gramática y traducción bíblicas


Héctor B. Olea C.

Asumiendo como punto de partida la versión Reina Valera 1960, podemos decir que hay dos textos donde podemos leer la frase «setenta veces siete», a saber: Génesis 4.24 y Mateo 18.22, cito:

Génesis 4.24: «Si siete veces será vengado Caín, Lamec en verdad setenta veces siete lo será».

Mateo 18.22: «Jesús le dijo: No te digo hasta siete, sino aun hasta setenta veces siete».


Ahora bien, los problemas comienzan cuando leemos Génesis 4.24 en una versión distinta, si bien hay otras versiones de la Biblia que han traducido Génesis 4.24 exactamente igual que la versión RV 1960. Entre estas, la llamada Reina Valera Contemporánea (RVC, 2009, 2011), y la Biblia Textual IV Edición.

Sin embargo, honrosas excepciones son: La Nueva Biblia Española (1975), La Biblia de Jerusalén (1998), La Traducción del Nuevo Mundo de las Santas Escrituras (TNM), La Nueva Traducción Viviente (NTV), La Reina Valera Actualizada (2015), entre otras.

Pues bien, en estas últimas versiones de la Biblia, en lugar de «setenta veces siete», leemos, «setenta y siete veces».

Por supuesto, la pregunta del millón es, ¿qué es lo que en realidad dice el texto hebreo de Génesis 4.24?

Respuesta: «setenta y siete veces», o sea, «shibím veshibá». No dice, pues el hebreo, «shibím shibá» («setenta siete», «setenta veces siete»).

Consecuentemente, es preciso decir que es la versión griega, la Septuaginta, la responsable de la popularización de la frase «setenta veces siete».

Esto así porque en lugar de traducir «jebdomékonta kái jeptá» o «jebdomékonta jeptá» («setenta y siete veces»), tradujo «jebdomekontákis jeptá», o sea, «setenta veces siete».

Luego, si bien parece que Mateo 18.22 se hace eco de Génesis 4.24, lo hace con base en el texto griego de Génesis 4.24, y no con base en el texto hebreo.

En consecuencia, la simple observación del texto griego de Mateo 18.22 nos pone al tanto de que, indiscutiblemente, lo que dice es «jebdomekontákis jeptá», o sea, exacta y precisamente la cifra que registra la versión griega de Génesis 4.24, «setenta veces siete».

Por otro lado, resulta curioso y llama la atención que versiones de la Biblia que dicen haber tomado el texto hebreo como base para la traducción de la Biblia Hebrea (comúnmente llamado Antiguo Testamento), insistan en traducir Génesis 4.24 en conformidad a la versión griega, la Septuaginta, y no en conformidad al texto hebreo.


Por supuesto, parece legítima la sospecha de que traducen así para no poner de manifiesto la indiscutible falta de concordancia que tienen las palabras puestas en los labios de Jesús por el Evangelista Mateo (Mateo 18.22), respecto de lo que en realidad dice Génesis 4.24 en el texto hebreo.


Por otro lado y, para ser consistentes, la misma crítica y la misma sospecha debemos asumir frente a las versiones de la Biblia que habiendo traducido bien, siguiendo el texto hebreo de Génesis 4.24; no obstante han traducido Mateo 18.22 no siguiendo el texto griego de Mateo 18.22, sino el texto hebreo de Génesis 4.24.

Dos versiones concretas han traducido de esta manera, La Nueva Biblia Española (Génesis 4.24: «setenta y siete»; Mateo 18.22: «setenta y siete»), y La Traducción del Nuevo Mundo de las Santas Escrituras (Génesis 4.24: «setenta veces y siete»; Mateo 18.22: «setenta y siete veces»).

Finalmente, es preciso decir que mientras que el número «setenta y siete» (texto hebreo) y «setenta veces siete» (Septuaginta), se emplea como una cifra que procura no ponerle límite a la venganza (superar el número de veces que Caín sería vengado, Génesis 4.15); en Mateo 18.22, el número «setenta veces siete» (siguiendo la traducción griega), procura no ponerle límite al perdón.

En todo caso, hay quienes sugieren que las palabras de Lamec se pueden interpretar siguiendo el tipo de argumentación o razonamiento conocido en hebreo como «kal vajómer» (argumento de menor mejor a mayor, de lo ligero a lo pesado), que implica aplicarle la misma particularidad de un caso leve, a uno más grave del mismo orden.

Muy a propósito de nuestro curso online y virtual de «gramática española aplicada» que inicia el mañana, nuestro curso de hebreo clásico que inicia el 7 de septiembre, y de las sesiones vigentes (en desarrollo) de nuestro curso online y virtual de griego koiné.

Inscripciones abiertas. ¡Todavía estás a tempo!

Información vía Whatsapp: +18092057814, así de sencillo.



No hay comentarios :

Publicar un comentario

Creación de diccionario griego con React Native: Creación del api con Node Js, express, Firebase Functions y FirestoreParte 1

No hay comentarios



Continuando con nuestro proyecto de creación de un diccionario de Griego-Español, en esta ocasión vamos a crear el api que nos permitirá realizar las operaciones de CREATE, PUT, DELETE. Esto lo vamos a hacer con Node js como Back end y Firestorage como base de datos.

El api es una de las partes más importante de una aplicación móvil o de un servicio web., y se podría decir que es el cerebro una nuestro proyecto.

Firebase que es un servicio que nos permite tener un back end con el método serverless.  Hay muchos proveedores que nos permiten crear un back end serverless, por ejemplo Vercel, Heroku, Amazon AWS, entre otros, sin embargo he seleccionado a Firebase porque ya he trabajado con este servicio.

 Lo primero es tener una cuenta creada en Gmail, luego es necesario crear un proyecto en Firebase. Luego, creamos un directorio en nuestro ordenador, en mi caso le llamaré ‘diccionaryapi’, dentro de este directorio vamos a instalar firebase-tools, para esto corremos el siguiente comando:


$ npm install –g firebase-tools


Esto nos instalará la herramienta firebase-tools de manera global. Nos creará los siguientes ficheros:

Ahora debemos correr el comando firebase init


$ firebase init


Nos aparecerá una pantalla en la que nos hará varias preguntas, la primera es: Are you ready to proced ?


 Le damos Y

Luego nos preguntará que deseamos crear, aquí seleccionamos al opción Functions: Configure a Cloud Functions directory and its files:



La seleccionamos con la tecla de espacio.

Luego nos preguntará si tenemos un proyecto existente, en mi caso selecciono esa opción porque tengo el proyecto creado en Firebase.



Luego, no preguntara si deseamos usar JavaScript o TypeScript, en mi caso selecciono JavaScript.



Luego, nos pregunta si deseamos usar Eslint para ayudar a mejorar el código. En mi caso le digo que si



Por ultimo nos pregunta si deseamos instalar las dependías de Node, le decimos que si

Si todo se ha instalado correctamente, nos mostrará el siguiente mensaje:


 Ahora vamos a editar nuestro backend

Lo primero es instalar express y cors


$ npm install express cors


Luego lo agregamos en el index.js que se ha creado en nuestro proyecto dentro del directorio functions:


Luego lo agregamos dentro del index con require:


Si te fijas para realizar el exports hacemos uso del método que ya nos ofrece firebase, es decir envolvemos nuestra app dentro de este método:

exports.app = functions.https.onRequest(app) 


Ahora crearemos nuestra primera ruta la cual simplemente mostrará un mensaje:

app.get(‘/libros’, (req, res)=>{ res.status(200).json({message:”Todos los libros”}))

Con lo que hemos hecho hasta ahora podríamos probar y ver que nos muestra. Lo corremos con firebase serve, esto nos mostrará el mensaje que ya hemos configurados en la ruta libros con el método get:


 

Conectar con Firestore

Ahora pasaremos a una de las partes más importantes de nuestro proyecto: la conexión con una base de datos. En esta base de datos vamos a guardar las informaciones requeridas para que nuestro proyectos funciones correctamente, como datos del usuario, palabras más buscadas en el diccionario, y los libros, entre otos. Lo que haremos es conectar nuestro proyecto con una base de Datos de Firestore. Para esto vamos a Firebase y seleccionamos la opción “Configuración del Proyecto”:



Luego vamos a la opción “Cuentas de Usuario”, nos desplazamos hasta el final, y le damos donde dice “Generar Nueva Clave Privada”:

Esto nos generará un fichero que será el que usaremos en nuestro proyecto. Ese fichero debemos colocarlo en algún lugar dentro de nuestro proyecto, en mi casi lo guardaré en el directorio functions, y le cambiaré el nombre a “creadentials.json’

Ahora, dentro de nuestro proyecto debemos crear la conexión a la base de datos de Firestore:

Creamos una constante de nombre “admin” a la que hacemos igual a un require de “firebase-admin”. Luego accedemos al método “initializeApp” de la constante admin. A este método le pasamos un objeto con las credenciales que hemos descargado y el nombre de la base de datos de Firestore:



Ahora creamos una contante de conexión llamada db:


const db = admin.firestore()


Creamos una ruta post para poder probar.

app.post(‘/libros’, (req, res)=>{  db.collection(“libros”) .doc(“/”+req.body.id+”/”).create({name: req.body.name})    return res.status(200).json() })


Corremos el comando :


firebase serve

 

Esto comando nos va a generar una url la cual podemos colocar en nuestro navegador y probar nuestro proyecto de manera local


No hay comentarios :

Publicar un comentario