Cositas que aprendí hoy y otras notas
Notas a las que acudir en algún momento a modo de diario
10/2023
SourceHut is high-performance Hosted git repositories: Public, private, and “unlisted”, for a reasonable price.
-
How To Enable QUIC Load Balancing on HAProxy HTTP/3 is the latest generation of the HTTP protocol, and its ability to serve applications over QUIC offers several advantages for user experience, including reduced latency.
02/2023
-
-
FreshRSS es un self-hostable RSS aggregator en PHP con muchas funciones.
Tema websockets.
Centrifugo is a scalable real-time messaging server. “One million WebSocket connections and 30 million delivered messages per minute”
Interesting shit:
Local-first software orientado a web (Crazy dudes… local-first, offline.. then sync, merge… conflicts…)
-
03/2022
12/2021
09/2021
08/2021
Al volcar DBs mysql con charsets utf8mb4, hay que hacer mysqldump –default-character-set=utf8mb4
para que se serialicen bien los datos ;P
-
Restic is a Backup program claiming to be fast, secure, efficient, written in Go, that can do the same as Rsnapshot and more (
resuming a backup sounds nice), allowing multiple “repos”, destinations, deduplication and encryption. Maybe faster with lot of files? Also usable in windows. Also allows to easily mount a snapshot and looks promising.
-
Nano: en ~/.nanorc
podemos establecer: set tabsize 4
y set nohelp
-
-
-
-
-
-
Tie Fighter Total Conversion
is here
-
-
06/2021
03/2021
Windows 10 viene con “Windows Sandbox” o espacio aislado de windows que usa HyperV para arrancar rápidamente un windows 10 limpio de usar y tirar.
PHP namespaced functions
CMDER: Cambiar el lambda λ del prompt se hace en el archivo vendor\clink.lua
, buscar local lambda
y allí lo cambiamos por >
por ejemplo
Nota mental: check Litespeed PHP SAPI, el módulo viene ya en los repos de PHP de remi
Nota mental: check Sendfile
02/2021
Viu is a small command-line application to view images from the terminal written in Rust. It is basically the front-end of viuer.
Bandwhich is a CLI utility for displaying current network utilization by process, connection and remote IP/hostname.
03/2019
Swoole library for
connection pool: mysql/redis. Note from
reddit here: […]
MySQLi has support for Async queries, but MySQL connections are still not asynchronous, so there is a cost to opening and closing MySQL connections. Normally you'd use pooling, with a way to ping, or check if the connection has closed […]
-
DKLab Realsync para sincronizar local → remote usando rsync automáticamente, desde windows, MacOS o Linux. Antiguo modo de hacer
lsyncd? ;)
-
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
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
-
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.
-
Se me antoja un monitor… cómo es posible
-
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.
-
-
03/2018
-
Micron es una librería ligera para dotar de animaciones efectivas a cualquier elemento del DOM.
-
Frases:
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.
-
“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.
-
12/2017
Card es un precioso
CSS para pedir datos de tarjetas de un modo elegante.
-
-
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…
-
-
08/2017
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

06/2017
-
-
-
Cómo inyectar una libraría PHP, pensada para COMPOSER, sin usar Composer. Parece que el PSR-4 sería compatible con nuestros autoloadings. Aquí un
ejemplo simple de un autoloader PSR-4 y aquí
un poco de StackOverflow sobre el tema. La dificultad es mayor cuando la librería tiene dependencias, pero nada imposible.
Dirrty jQuery plugin to detect if the fields of a form had been modified
-
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 ←
-
-
Mousetrap: simple JS library for handling keyboard shortcuts in Javascript
Numeral.js: A javascript library for formatting and manipulating numbers
-
Sticky-kit provides an easy way to attach elements to the page when the user scrolls such that the element is always visible
-
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ú View
→ Tabs
→ Code 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).
-
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.