JuangaCovas.info

La página personal de Juan Gabriel Covas

Herramientas de usuario

Herramientas del sitio


personal:stuff-learned

Cositas que aprendí hoy y otras notas

Notas a las que acudir en algún momento a modo de diario

03/2019

02/2019

  • Siler es el framework PHP que gana en throughput. Muy interesante para API y combinado con Swoole.
  • TestCafe es una herramienta para node.js que automatiza tests sobre web browsers (headless o no), via JS, que además cuenta con un interesante IDE llamado "TestCafe Studio" que de momento es gratuito.
  • OpenResty no es un fork de Nginx, sino un paquete de software (bundle) que integra el Nginx core, LuaJIT, muchas librerías escritas en Lua, módulos de nginx de terceros paquetes y la mayoría de sus dependencias externas. Entre lo más interesante, el scripting Lua para integrar acceso asíncrono a MySQL, Memcached y Redis.

01/2019

  • Ascii generator para convertir imágenes en ASCII art, con preview en color
  • 640x480, 256 colores en BMP parece ser la resolución nativa y formato adecuado para subir una imagen a la BIOS de placas Gigabyte con FaceWizard :)

12/2018

10/2018

  • Sobre Let's Encrypt: Wildcard issuance must be done via ACMEv2 using the DNS-01 challenge. Lo cual viene de perlas después de haber automatizado los renewals con DinaHosting via challenge DNS-01 y nuestros scripts custom (ver pre and post validation hooks de Certbot.
  • LMD y ClamAV en CentOS 7. Linux Malware Detect (LMD) tiene una característica interesante para monitorizar si ciertas carpetas cambian su contenido.
  • Kirby CMS es un ingenioso CMS sin SQL al que tendré que seguirle la pista. Destaca la forma de organizar tooodo a través de una estructura de carpetas y archivos con nombres especiales que permiten hacer prácticamente de todo.
  • Para generar datos de prueba, incluso en español, podemos usar Faker que implementa un autoloader PSR-0 y además el paquete sigue manteniéndose, probándose en PHP 7.2 y todo el rollo.
  • Ya ha salido la versión 1.4.51 de lighttpd que corrige el bug #2908 que reporté el pasado 10/09/2018, y queremos ver de usar mod_evhost para no duplicar tanto la config. de vhosts
  • Ahora que tengo que montar finalmente todo un sistema de Local Explorer via SFTP (que no FTPS), después de la prueba de concepto, no debo olvidar este artículo: Logging SFTP activity for chrooted users
  • El ofuscador de código YAK-PRO ya soporta PHP 7.x, qué interesante pues ya hicimos pruebas con PHP 5.3
  • Por fin he sustituido el WAMP server de 32 bits por una instalación limpia de WAMP 64 bits, bastó desinstalar bien (previo backup de www y bases de datos) para combinarlo con MariaDB en el puerto 3306. La mejora de rendimiento es notable. Dio por saco poner a punto los servicios en WAMP, pero finalmente bien.
  • Una gema de bootstrap: Bootstrap Notify muy flexible para generar notificaciones muy vistosas y con yutipiris a tope.
  • Ascii Generator 2 es un programa brutal para generar ASCII Art a partir de imágenes.
  • Se me antoja un monitor… cómo es posible
  • Quick conversion from UTC to local time in PHP creo que mejora la solución que tuve que implementar recientemente en mi library_time
  • lsyncd o Live Syncing Daemon es la solución que he implementado para sincronizar casi-en-tiempo-real archivos entre dos servidores. Y va bastante bien considerando que son decenas de miles de directorios.
  • Las pasé canutas para volver a encontrar esta documentación de Interworx para el mail/spam y poder administrar unos problemas de spam
  • Me pasó Toni este artículo que me recuerda la suerte que tuve de aprender C: The Importance Of The C Programming Language in 2018

03/2018

  • Alguien tenía que hacer un compendio de las cosas que podemos hacer ahora con Windows 10 y el WSL (Windows Linux Subsystem), por ejemplo Linux’izing your Windows PC into a dev machine con la receta para abrir un openssh
  • Micron es una librería ligera para dotar de animaciones efectivas a cualquier elemento del DOM.
  • Un script para convertir espacios a tabs: Spaces to tabs
  • Frases:
    • There has never been a better time to 'create'
    • Make small adjustments to your routine to get more things done

02/2018

  • Unirest es una librería de cliente http (basicamente un wrapper de curl) para PHP que además permite hacer POSTs multipart (subir imágenes). Probada para transmitir imágenes/archivos binarios sin problemas.
  • Ya había usado antes Imapsync para migrar cuentas de correo, pero ahora además está Imapsync en github, o sea la última versión que funciona muy bien cuando otras herramientas fallan en buzones grandes o con "mensajes especiales" que interrumpen las transferencias. Lo he probado con éxito en CentOS 7 y Ubuntu 16. Además al tratarse de un sincronizado, se puede interrumpir sin problemas.
  • Curiosa lista de software similar para ex-googlers o sea gente que trabajó en Google
  • "IT pros always and without fail, quietly self-organize around those who make the work easier" […] "Unlike in many industries, the fight in most IT groups is in how to get things done, not how to avoid work. IT pros will self-organize, disrupt and subvert in the name of accomplishing work." […] Del artículo The unspoken truth about managing geeks

01/2018

  • El artículo Symfony versus Flat PHP es una fantástica lectura acerca de cómo organizar una aplicación web de forma moderna contra la que enseñan en la escuela (mezclando PHP y HTML). Siendo conscientes que quien dice Twig dice Smarty, y quien dice el ORM Doctrine dice cualquier otra librería para acceder a bases de datos.
  • Installing PHP FastCGI and Zend OPcache on WampServer o cómo tener un PHP NTS (Non-Thread Safe) en Windows, por cuestiones de rendimiento (y quizá resuelva el tema de gettext en local con PHP 5.6).

12/2017

09/2017

  • Al usar dialog desde bash para mostrar una lista de archivos seleccionable en un menú, tuve que usar TERM=linux para que salieran correctamente las líneas en lugar de letras. No era cosa del UTF8 en el locale que era correcto, sino de eso…
  • Devops for Startups & Small Teams. Una lista bastante extrema pero vale como referencia "ideal".
  • Interesante lectura De que va esto del Software Craftsmanship ("estamos hasta los cojones de escribir mierda") aunque sigo siendo completamente anti-over-engineering

08/2017

  • Qué gustito entrar en modo "rescue" en Linux, montar los drives en /mnt tras listarlos con ls /dev/[hsv]d[a-z]*[0-9]* y recuperar DBs InnoDB instalando una mysql 5.5 y fakeando el dir. de datos "en caliente". La original era una MariaDB 5.5. El mysqldump ha funcionado :)
  • Resulta que HTML5 tiene un componente "Terminal". Un ejemplo aquí: Terminal HTML5. Otro con un efecto en el fondo, y un efecto de monitor CRT via CSS.

07/2017

  • Hoy aprendí de una compañera que se puede cambiar un input de tipo password a tipo text para visualizar el password ***** de cualquier input que no recordemos :-O

06/2017

  • Monitorizar cambios en cualquier archivo de cualquier subdirectorio en Linux, por ejemplo /var/log:
    # yum install inotify-tools y después
    # inotifywait -r -m /var/log
  • Unos cuantos juguetes para revisitar:
    • Typeahead: JavaScript library that provides a strong foundation for building robust suggesters ←
    • Dropzone js: drag’n’drop file uploads with image previews http://www.dropzonejs.com/
    • Gridster.js: Un grid con drag & drop: http://dsmorse.github.io/gridster.js/
    • Mousetrap: simple JS library for handling keyboard shortcuts in Javascript
    • Numeral.js: A javascript library for formatting and manipulating numbers
    • Chardin.js: Simple overlay instructions for your apps https://heelhook.github.io/chardin.js/
    • Sticky-kit provides an easy way to attach elements to the page when the user scrolls such that the element is always visible
  • No debo olvidar la lista de awesome-PHP: https://github.com/ziadoz/awesome-php

05/2017

  • "The trouble with programmers is that you can never tell what a programmer is doing until it’s too late".
  • Competence means having enough experience and knowledge to get stuff done; proficiency involves knowing why you are doing something in a certain way, and how it fits into the big picture."
  • Mi padre descansó finalmente tras una larga enfermedad el sábado 13 de mayo de 2017 sobre las 22:15. Tenía 69 años y fue un gran padre y persona.

04/2017

  • OCR para imágenes: Tesseract was originally developed at Hewlett-Packard between 1985 and 1994, with some more changes made in 1996 to port to Windows, and some C++izing in 1998. In 2005 Tesseract was open sourced and since 2006 it's developed by Google.
  • El plugin de Firefox sin-él-no-podría-vivir para traducir palabras concretas, seleccionándolas y usando el botón derecho del ratón se llama "Google Translator for Firefox"
  • En PHP: $raw_post_data = file_get_contents('php://input');
  • La API de google maps tiene un conversor de "dirección postal" a lat/long….
  • Se pueden especificar varios elementos en un selector jQuery, separados por comas: …find('button,a.btn').hide(); todos los buttons y A con class btn
  • Un <button> es submit por defecto. Para evitarlo hay que forzarlo con type="button"
  • En NuSphere, Project properties → Hide directories para excluir directorios de Find in files como templates_c ó cache
  • Para cuando tienes que lidiar con servicios que han hecho un mal uso de UTF-8 / ISO-8859-1 / latin1, esta pequeña lib con fixUTF8, toISO8859, toUTF8, toWin1252 que además soporta strings mal construidos. A través de esta entrada en StackOverflow el autor explica su uso
  • VisualSVN es un easy-to-use subversion server para windows, montándose sobre un Apache con SSL dejándote elegir el puerto. Importa dumps en bruto de repositorios y permite backup/restore. La edición standard es free y parece suficiente. Como alternativa a nuestro setup de svn+ssh bajo Ubuntu parece interesante y lo he comenzado a usar para mis proyectos personales.
  • File Enconding Checker permite ver rápidamente qué archivos tienen cierto Encoding para localizar problemas con archivos que no deberían tener cierta codificación

03/2017

  • En Windows CaesiumPH para comprimir JPGs sin pérdida. En Windows "File Optimizer" realiza un buen trabajo. PNG Gauntlet para comprimir PNGs. En linux tenemos jpegoptim y optipng
  • En el IDE NuSphere PHPEd, Menú ViewTabsCode snippets. Definimos shortcuts para escribir rápidamente <% %> y otros snippets, usando | para definir dónde queremos luego el cursor.
  • Quería hacer un PHP syntax check recursivo: https://gist.github.com/mathiasverraes/3096500 así que cojo esto y combino varias de las soluciones para soportar varios directorios como argumentos y también archivos que tengan espacios, vaya tela… Lo he puesto en .subversion/deploy/phpcheck.sh
  • La última versión de Putty (0.68) es la primera con un paquete para windows de 64 bits y se nota que la conexión SSH es mucho más rápida que antes
  • Hoy 15/03 petó el max_input_vars de php.ini, en la versión 5.6 está a 2500, con +3000 variables en un POST…
  • Buscar con grep solamente en archivos php en subdirs: grep -R –include="*.php" memory_limit .
  • ncdu es el paquete para ver de forma visual en el terminal los directorios que ocupan más espacio en linux
  • Se le pueden añadir "comentarios" a DokuWiki fácilmente con el plugin Discussion que soporta que usuarios no registrados también puedan comentar páginas. Si además instalamos el plugin Captcha, el plugin Discussion usará el mismo automáticamente para evitar spamming.
  • De aquí puedo coger meme templates (memes limpios o en blanco).
  • La aplicación de ajuste automático de ventanas de mi monitor ultrawide Dell U3415W se llama Dell DDM Monitor Application.

Para poder acceder via ODBC a las bases de datos HFSQL de WinDev, hace falta re-compilar PHP con la opción –with-iodbc=/usr en CentOS. En Windows no hace falta, tal y como indica el manual de PHP. Para Linux sí es necesario tal y como he probado.

Se puede recompilar PHP con la ayuda de php-build. He hecho las pruebas en una VM CentOS7 minimal. Podríamos rehacer un RPM que nos interese (ej. PHP) a partir del SRPM, ver este enlace y este otro


  • Hoy aprendí de un compañero que las consultas de MySQL pueden "comentarse", es decir se puede hacer /* … */ entre el trozo que queramos ignorar, muy útil cuando estamos por ejemplo en phpMyAdmin probando algún query a pelo.

Discusión

Escribe el comentario:
 
personal/stuff-learned.txt · Última modificación: 2019/09/01 10:02 (editor externo)