Babel y el lenguaje que ensambla la Web (JavaScript)

Dice Brendan Eich, quien lo creó a finales del siglo pasado en el plazo de una semana para Netscape Navigator, que JavaScript es el ¿ … “lenguaje que ensambla la Web ” ?. Será el lenguaje que ensambla la Web, sí,… dada su exponencial popularidad y la creciente ubicuidad del mismo. Si bien… desde mi ignorancia, me encantaría poder decirle a Eich, ¿ no estaremos convirtiendo JavaScript en un galimatías ? ¿ en una nueva Torre de Babel ?

Me siento por momentos confuso y desorientado. Siento además que por mucha experiencia (de la que carezco… a día de hoy!) de la que pueda disfrutar en un lenguaje de programación como JavaScript no mejoraría mi nivel de confusión y desorientación.

Tal cantidad de frameworks… Tal cantidad de cambios en el lenguaje… Tal cantidad de contextos a considerar…

JavaScript ‘cambia más que el tiempo’.

Existen muchas liberías de código fuente y frameworks para facilitar las tareas de desarrollo Web en general, y JavaScript en particular. También hay mucha controversia entorno al hecho de que si tal cantidad de librerías y frameworks es excesiva, quién debería usar una librería o framework, quién debería escribir una librería o framework, y por supuesto … el obligatorio «la librería (o framework) que estoy usando es superior a la tuya ! »

Tan sólo pretendo compartir como me siento y lo que pienso al respecto. Naturalmente, que cada cual use (o no) las librerías y frameworks que le plazcan.

A vueltas con las librerías y frameworks JavaScript.

Veamos, antes de plantear la crítica constructiva a su uso… ¿ Para que nos sirve una librería (software) ? Las librerías (software) facilitan la reutilización del código. Así evitamos «reinventar la rueda», como se suele decir . Más allá… ¿ Qué es un framework ? . Esencialmente podemos entenderlo como una biblioteca de librerías para acceder a bases de datos, gestionar sesiones de usuario, estructuras para plantillas… y que, de nuevo, con frecuencia facilitan la reutilización del código fuente.

En vez de escribir el código fuente desde cero, el usar frameworks y librerías de un lenguaje de programación en tus desarrollos aporta sus ventajas.  Pongamos VueJS, y su sobria filosofía de desarrollo por componentes, con el que ando jugando un poco últimamente. Entre los ‘pros’ se encuentra el hecho de que un framework como VueJS te permite, como se suele decir ‘aumentar la productividad’. La facilidad con que puedes alcanzar y empezar a visualizar unos primeros resultados siguiendo sus tutoriales. Si bien parece que somos más ágiles con ellos al principio… en mi experiencia, ello tiene varios ‘contras’.  La ofuscación, entre ello.  Pues estamos añadiendo cada vez más y más capas de abstracción a lo que tenemos entre manos. ¿ En el uso de lo que podríamos llamamos ‘cajas negras’?

Sí, los frameworks y librerías…, en mi opinión, nos sirven para construir más rápidamente y tener la sensación de progreso. Sensación de agilidad. Si bien, ¿ a que precio ?. ¿ No estaremos perdiendo algo al adentrarnos en ese camino … ? ¿ No será que su conveniencia ‘productiva’ reduce nuestra capacidad de aprender los conceptos básicos del lenguaje de programación que subyace al framework o librería ?

A veces me pregunto… ¿ alguien estará consiguiendo ‘hacer el trabajo’ con todo lo que mes a mes cambian las herramientas que usamos para ello ?.

Intuyo que no soy el/la únic@ que se formula dicha pregunta. Hoy en día, es difícil encontrar a alguien trabajando con software libre y de código abierto que no se sienta confuso y desorientado en relación al rumbo que ha tomado la evolución de la Web en general y de JavaScript en particular.

No me malinterpretéis… el cambio es positivo. Es lo único que permanece, de hecho. Como la vida misma. Flujo constante. ¿No estaremos confundiendo ‘cambio’ con ‘moda’ ?

 

Que no cunda el pánico. ¿ Vuelta a las raíces ?

Creo que el quid de la cuestión al usar cualquier lenguaje de programación, por muy compleja que sea la aplicación a desarrollar, es volver a las raíces. A sus conceptos fundamentales. En vez de empezar “la casa por el tejado… “, consciente de que ello ralentiza el proceso si bien, ¿ será una estrategia que se demostrará más resistente al paso de las modas de tal o cual librería o framework en particular (re)aprendiendo a partir de unos sólidos conceptos básicos ?.


PD: Comparto acá algunos recursos relacionados :

13/03/2019

Posted In: softwareLibre

Etiquetas:

Leave a Comment

Debian – systemD + Sysvinit = Devuan (GNU+Linux)

Antes de migrar de una a otra, técnicamente… ¿ que diferencia hay entre ambas distribuciones GNU+Linux ( Debian vs Devuan ) ? Principalmente, una : Systemd .

En cada sistema GNU+Linux existe un proceso que el Kernel arranca en primera instancia, antes de todos los demás procesos. Es el proceso padre de todos aquellos procesos que a su vez no tienen relación parental con otros procesos. Dicho proceso principal es conocido como pid1. Systemd es un pid1 recientemente desarrollado .

Improbable lector@, si te apetece ahondar en el esta cuestión desde el aspecto teórico, acá en este artículo puedes hacerlo. De la mano y letra de el autor original de systemd . Por otra parte, en un ariculo anterior hemos hablado de … (demonios)

Basta de cháchara. ¿ manos a la obra ?

Vamos a describir la receta de como realizar la migración a Devuan ASCII desde Debian Jessie o Stretch. Actualmente la migración no es directa si usas GNOME o network manager debido a algunos paquetes retenidos, y cada migración respectiva tiene sus matices propios, pero esta receta debería funcionar, más allá de las peculiaridades de ambos casos.

Si hacemos un listado de los procesos que están corriendo en este momento en el servidor (Debian 9), observamos que entre ellos se encuentra systemd.

 

Devuan usa sysvinit por defecto. Así que, instalemoslo :

root@debian:~# apt-get install sysvinit-core

Se requiere un reinicio para realizar el cambio a sysvinit como proceso principal.

root@debian:~# reboot

Ahora podemos eliminar systemd sin más.

root@debian:~# apt-get purge systemd

Si ejecutamos de nuevo el comando para visualizar los procesos en ejecución en el servidor…

… podemos comprobar que sysvinit a sustituido a systemd como pid1.

Editamos el fichero sources.list de tal modo que podamos cambiar a los repositorios de paquetes software de Devuan.

root@debian:~# editor /etc/apt/sources.list

Añadimos lo servidores espejo (mirrors) con el nombre clave ascii y comentamos cualquier otra línea del fichero.

deb http://deb.devuan.org/merged ascii main

deb http://deb.devuan.org/merged ascii-updates main

deb http://deb.devuan.org/merged ascii-security main

deb http://deb.devuan.org/merged ascii-backports main

Actualizamos el índice de paquetes de tal modo que podamos instalar el archivo con el anillo de llaves (keyring) de Devuan .

root@debian:~# apt-get update

Instalamos el anillo de llaves (keyring) de Devuan para que con él puedan ser autenticados los paquetes de ahora en adelante.

root@debian:~# apt-get install devuan-keyring –allow-unauthenticated

Actualizamos el índice de paquetes de nuevo para que sean autenticados con el anillo de llaves (keyring)

root@debian:~# apt-get update

Finalmente podemos migrar a Devuan.

root@debian:~# apt-get dist-upgrade

Ahora, los componentes de systemd deberían ser eliminados del sistema.

root@devuan:~# apt-get purge systemd-shim

Si no usamos D-Bus o Xorg deberíamos poder eliminar el paquete libsystemd0.

root@devuan:~# apt-get purge libsystemd0

Purgamos cualquier paquete huérfano que haya quedado de la instalación Debian anterior.

root@devuan:~# apt-get autoremove –purge

Este es un buen momento para limpiar paquetes que hayan quedado obsoletos de nuestro sistema Debian.

root@devuan:~# apt-get autoclean

A disfrutar de Devuan GNU+Linux .

 

22/02/2019

Posted In: softwareLibre

Etiquetas: ,

Leave a Comment

Angeles, demonios y Devuan GNU + Linux

« La complejidad

tiende a la diversidad »

-. hellekin

Un demonio es un malévolo ser en la mitología u ocultismo. Los griegos clásicos lo entendieron como un buen o benevolente espíritu de la naturaleza.

En el plano técnico, en el mundo de los sistemas computacionales, llamamos ‘daemons‘ ( que en adelante llamaremos demonios, por comodidad) a un proceso del sistema que se ejecuta en «segundo plano» (background). El demonio (daemon) es no interactivo. No puedes controlarlo directamente como usuario del sistema que lo ejecuta. ¿ Vale más una imagen que mil palabras’ ?

By Shmuel Csaba Otto Traian, CC BY-SA 3.0

 

Satán, Belcebú, el Anticristo, … ¿o el arcángel San Gabriel, querubines y serafines ?. En el esquema gráfico anterior se pueden ver los demonios componentes de algunos entornos GNU+Linux .Incluyendo D-Bus, NetworkManager (acá llamado unetwork), PulseAudio (usound), y Avahi.

Un desarrollador de Red Hat Enterprise Linux, Leonard Poettering, propuso la mejora del proceso de arranque (init), que ante el disgusto de much@s y la satisfacción de much@s otr@s partía de la base de que « (1) casi todos los sistemas son multinúcleo y (2) hay mucha mayor diversidad de dispositivos, sobretodo por la aparición de los dispositivos empotrados, móviles, tabletas, relojes» (como comparte Litox en su pizarra) .

L@s detractor@s del nuevo sistema de arranque ( SystemD) que sustituye a SysV init se lanzan a la tarea de poder seguir utilizando sus artesanos scripts de arranque.

Origen de Devuan

L@s Devuanitas sugieren que SystemD presenta una gran superfície de ataques y posibles vulnerabilidades que dada su complejidad creciente son más y más difíciles de auditar por la comunidad.

Uno de los presupuestos de SystemD es que facilita un «arranque más rápido».

En Librebits, nos hemos puesto a aprender sobre todo ello instalando en nuestra PC Devuan GNU+Linux , la variante ( o fork ) de Debian GNU/Linux  que veníamos usando hasta ahora.

Y hemos podido comprobar que no es el caso. El consumo de recursos en ‘estado de reposo’ del sistema es del 1.5 % , menor que en nuestro sistema Debian (SystemD).

Todo ello, para… una vez más al sentir « Ah, ya sé de qué va esto… bah! » Aprendamos a … ¿ cuestionar lo aprendido? ¿conocer mejor los demonios del sistema y el sexo de los ángeles?

La pelota … ¿ está ahora en tu tejado ? ¿ que vas a hacer con ella ?


Algunos recursos online :

¿ dónde encontrar a l@s Devuanitas ? :

¿ dónde encontrar a l@s Debianitas ? :

  •  Wiki de Debian
  • IRChat #debian en freenode.net
  • IRChat #debian-es en freenode.net , en habla hispana

además de su respectivas listas de corre-e , etc …

18/10/2018

Posted In: softwareLibre

Etiquetas: , ,

Leave a Comment

Consola para dialogar con la Base de Datos ( Laravel PHP )

Tinker – Siglo XIX

 

Seguimos avanzando en el aprendizaje de este elegante entorno de trabajo de desarrollo Web en lenguaje PHP.

Lo que hacemos con él no es más que un sinfín de capas de abstracción. Una tras otra.

Algo que nos encanta es el tener consciencia de lo que se hace … «por debajo». Por ejemplo, al dialogar con la Base de Datos. Acá, Tinker es tu amigo .

 

Así, puedes fácil y ágilmente leer datos de tu aplicación Laravel. Usando la propia línea de comandos ( CLI ) de Laravel  php artisan tinker y trastear con la base de datos.

Se define como unaa repl (read-eval-print loop). A repl translates to read-eval-print-loop, como lenguaje shell interactivo. Toma una única entrada (input) de usuario, la evalúa, y retorna es resultado al/la usuario/a.

Hemos hablado de esta herramienta de consola para Laravel PHP , veamoslas en acción :

 

Tinker – consola

07/09/2018

Posted In: PHP, softwareLibre

Etiquetas:

Leave a Comment

Celebraciones, Debian GNU Linux y Red Hat

El núcleo

En el ámbito de los Sistemas Operativos software, el (núcleo) Kernel Linux cumple 27 años… desde que un estudiante de la Universidad de Helsinki  ( ‘ Just for fun’ ) se pusiera a aprender jugando con Minix. Ésta es una  versión acádémica de Unix, el sistema operativo que ya ‘dirigía’ los grandes Bancos desde sus sótanos de hardware .

Paralalemnte se desarrollaba el proyecto GNU , nacido en el otro lado del Atlántico .

Un ahora completo sistema operativo GNU / Linux facilitó que aquello que sólo usaban las grandes corporaciones y pudieramos usarlo tod@s y se colará en televisores y hasta en nuestros bolsillos ( con Android Linux, en los teléfonos ‘listos’ ).

 

Ramas y distribuciones

En el mundo del software libre y de código fuente abierto existen dos grande ramas que parten del mismo ‘tronco’ ( el mencionado Kernel Linux ), sin menospreciar a tantas otras :

  • La corporativa : Red Hat Linux
  • La comunitaria : Debian GNU / Linux ( de la que deriva, por ejemplo Ubuntu Linux, entre tantas otras… )

Como es sabido, las categorías son meras referencias … ¿ y nunca estancas ?. Siempre se producen, más aún en el ámbito del software libre, efectos de vasos comunicantes.

Eso ha ocurrido, por ejemplo, con el nuevo proceso de inicialización del sistema y la  denominada ‘libertad en el arranque’ ( init freedom ). La controversia a llevado al colectivo de ‘veteranos-administradores-de-sistemas-Unix’ ( VUA, Veteran Unix Administrators ) a una bifurcación del sistema ( dando lugar a  Devuan )… a raíz del cambio en el arranque del sistema operativo, promovido por Red Hat Linux. Sea como fuere, Debian y Red Hat arrancan del mismo, actualmente.

Sin ir más lejos la corporación del buscador ( Gran Hermano ) Google usa … Debian en los PCs de sus empleados.

Luego hay quien afirma que la distribución ‘secreta’ Linux es SUSE / openSUSE .

Celebración

Por cierto, la distribución software Debian GNU / Linux cumple un cuarto de siglo.

https://www.genbeta.com/linux/debian-cumple-25-anos-madre-todas-distros-que-nunca-tuvo-version-1-0

How compartió conmigo en una ocasión  :

-«todos lo paquetes (software) vienen de Debian, todos vuelven a Debian… »

¿ La madre de todas las distribuciones GNU / Linux ?

07/09/2018

Posted In: comunidad, softwareLibre

Etiquetas: , ,

Leave a Comment

Disfrutando con PHP, Laravel y la Web

En lo que refiere a los lenguajes de programación, Python, como lenguaje de propósito general está siendo más y más popular. La fiebre JavaScript va en aumento. ¿ Y el clásico PHP ?

El lenguaje PHP sigue vive y coleando, por mucho tiempo.

Herramientas como WordPress y Drupal CMS (basadas en PHP) están muy afianzadas, actualmente. Por ahora gozan de gran popularidad, y lo seguiran haciendo (al menos) durante años. ¿ Por qué?  Por el hecho de que ha sido tradicionalmente  el lenguaje de elección en una amplio espectro en el ámbito de proyectos orientadas al sector de la pequeña y mediana empresa ( PyME) u organización ( Asociaciones, Escuelas, ayuntamientos…). Notar que Drupal (p.ej.) se está orientando a proyectos de mayor envergadura, en su última versión, tras reescribir el 70% del código base sobre el que se fundamenta su enorme y variado ecosistema de módulos contribuidos y posibles utilidades/escenarios.

Naturalmente, nada es inmutable, y menos aún en el ámbito del desarrollo software.

En Librebits venimos trabajando históricamente con Drupal, que se puede definir tanto como entorno de trabajo de contenidos (CMF ) sobre PHP así como puro gestor de contenidos (CMS | Content Management System) versátil y potente. Si bien, hace tiempo que buscamos una forma de desarrollar más ligera y flexible… según las necesidades del proyecto en cuestión.

 

Hola Laravel PHP

Las primeras sensaciones al desarrollar PHP con Laravel son algo así como recuperar la alegría del desarrollo… Al ser un framework más ligero (en relación a Drupal )  y definido como ‘framework‘ estrictamente, tienes la sensación de una mayor visión de conjunto al hacer las cosas. ¿ Como expresarlo ? Sientes que es más sencillo … ¿ encajar las piezas del puzzle ?

¿Será porque sigue el patrón de arquitectura software Modelo Vista Controlador (MVC) .

Acá puedes ver algunas muestras de su elegante código, comentadas.

Por otro lado, Laravel se define como una herramienta para ‘artesanos de la Web’.

 

En eso, nos sentimos más que identificados 🙂 .

Wikipedia reza : Laravel permite desarrollar aplicaciones y servicios web con PHP 5 y PHP 7. Su filosofía es desarrollar código PHP de forma elegante y simple, evitando el “código espagueti”.

 

Las tripas

Laravel tiene como objetivo ser un entorno de trabajo (framework) que permita el uso de una sintaxis elegante y expresiva para crear código de forma sencilla y permitiendo multitud de funcionalidades. Intenta aprovechar lo mejor de otros frameworks y aprovechar las características de las últimas versiones de PHP.

Gran parte de Laravel está formado por dependencias, especialmente de Symfony, esto implica que el desarrollo de Laravel dependa también del desarrollo de sus dependencias.

Otra aspecto de Laravel que nos encanta es su línea de comandos ( CLI) : ‘ php artisan ‘, que facilita enormemente la labor de desarrollo, automatizando las tareas más repetitivas.

Y Tinker , (basado en PsySH ) … que nos permite, ‘hablar’ sencillamente con la base de datos desde dicha consola de comandos . Ah! … y por último, esta gema .

 

La comunidad

Las comunidades del software libre y código abierto  entorno a esta maravillosa herramienta es amplia y variada. In crescendo | En aumento . En habla hispana, podemos acudir, por ejemplo a :

https://laraveles.com/

Y que además, ya hace un tiempo que se está desarrollando en un gestor de contenidos basado en Laravel, si : se llama October CMS .  

 

 

 

Éste último también estamos empezando a usarlo en Librebits, así que… esperamos poder compartir a futuro nuestras andanzas con él.

Ah! .. y por último, pero no por ello menos importante… recordar que todo ello se desarrolla bajo licencia permisiva de software libre .

«Caminando a hombros de gigantes» ?

23/08/2018

Posted In: comunidad, softwareLibre

Etiquetas: ,

Leave a Comment

a,b,c de Feynman

 

 

 

 

 

 

 

 

 

 

 

 

 

 

La estrategia Feynman en 3 puntos :

a) Continuamente preguntar ¿ por qué ?

b) Cuando aprendas algo, aprendelo de tal forma que puedas explcarlo a un/a niño/a

c) En vez de arbitrariamente memorizar cosas, busca una explicación que lo muestre obviamente.

… quien escribe, a su vez

Aquí estoy,

átomos con consciencia,

alma curiosa.

 

Un universo de átomos,

un átomo en el Universo.

 

GNU Linux

17/06/2018

Posted In: miscelanea

Leave a Comment