Entradas

Mostrando las entradas con la etiqueta Notas

Comandos de Python

Instalar bibliotecas desde el archivo requirements.txt

pip install -r requirements.txt

Instalar bibliotecas desde el archivo pyproject.toml

uv pip install -r pyproject.toml

Tabla de Entidades de HTML

Trabajando con ChatGPT, escribí una página que realiza el formato de sintáxis de distintos tipos de códigos para éste blog, entre otros proyectos; Y he notado un problema: al usar HTML y reemplazar código, éste se pueden confundir los caracteres típicos que componen las etiquetas de HTML (&, <, > y =) , con símbolos especiales de algún lenguaje, tales como operadores o definición de plantillas.

La mejor solución es simplemente, reemplazar éstos caracteres molestos por su equivalente en entidad de HTML, como se muestra en la tabla siguiente:

Operador Entidad
& &amp;
< &lt;
> &gt;
= &equals;

Código de limpieza

code = code
	.replace(/&/g, "&amp;")
	.replace(/</g, "&lt;")
	.replace(/>/g, "&gt;")
	.replace(/=/g, "&equals;");

Referencias

Comandos de ImageMagick

Convertir todos los archivos .jpg a .png

for %i in (*.jpg) do magick "%i" "%~ni.png"

Obtener Paleta

Obtiene una lista de todos los colores de la imagen
magick imagen -unique-colors paleta.txt
Obtiene una lista los 16 colores más representativos de la imagen
magick imagen -unique-colors -colors 16 paleta.txt

Aplicar máscara a imagen

magick imagen imagen_máscara -compose multiply -composite

Creat un archivo pdf en blanco tamaño carta

magick -size 2550x3300 xc: -density 300 carta.pdf
Los 2550x3300 pixels provienen de 8.5x11 pulgadas por 300 DPI (8.5 * 300 = 2550, 11 * 300 = 3300).

Redimensiona pixel art

magick -filter Point cover.bmp -resize 2048x2048 cover.png

Degradado pixel art

magick -size 64x48 gradient:white-black -ordered-dither o8x8,2 dither.png

Archivo de configuración de Visual Studio Code para depurar archivos PHP con Xdebug

.vscode\launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 0,
            "runtimeArgs": [
                "-dxdebug.start_with_request=yes"
            ],
            "env": {
                "XDEBUG_MODE": "debug,develop",
                "XDEBUG_CONFIG": "client_port=${port}"
            }
        }
    ]
}

Comandos comunes de MS-DOS

Activar el uso UTF-8 (Palabras con Acentos)

chcp 65001 

Ejecutar comando por cada archivo/directorio (Incluyendo nombres con espacios)

ECHO OFF
FOR /f delims^=^ eol^= %%f IN ('dir d:\downloads\ /b') DO (
ECHO "%%f"
)

Fecha y Hora (funciona para Español para México, en otros idiomas podría cambiar la posición de cada elemento, dada la configuración regional)

ECHO OFF
ECHO FECHA (YYYY/MM/DD):
ECHO %date:~-4,4%/%date:~-7,2%/%date:~-10,2% 
ECHO.
ECHO HORA (HH:MM:SS):
ECHO %time:~0,2%:%time:~3,2%:%time:~6%
ECHO.

Obtener la ruta del escritorio

::https://stackoverflow.com/a/34706178/3930332
for /f "usebackq tokens=1,2,*" %%B IN (`reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop`) do set DESKTOP=%%D
ECHO %DESKTOP%

Remover espacios en variables

SET "VAR=%VAR: =%"

Mostrar todas las líneas del archivo archivo.txt que no se encuentran en el archivo quitar.txt

findstr /i /L /V /g:"quitar.txt" "archivo.txt"

Referencias:

https://stackoverflow.com/questions/11270453/how-to-remove-spaces-from-file-names-in-bulk 

Renombar archivos de manera secuencial [MS-DOS]

Tengo un montón de archivos mp4 que quiero renombrar de manera secuencial. Son capturas de gameplays de videojuegos de mi xbox, por lo cual ni el nombre de archivo ni la fecha (que se indica en el nombre de archivo) me importa, pero quiero llevar un control de cada archivo; y es más fácil buscar un archivo '00001.mp4' en lugar de 'Minecraft 2020-06-10 23-18-05.mp4'.

El script se divide en dos partes principales: 

  • El contador - hace un bucle por cada archivo especificado por el comando dir y aumenta el valor de la variable _seq en uno (que se inicializa en cero; enableextensions y enabledelayedexpansion permiten que se pueda consultar el valor actual la variable _seq adentro del bucle, en lugar del final) y llama la subrutina :sub enviando el valor del contador junto con el nombre del archivo para renombrarlo.
  • Subrutina :sub- se encarga de darle formato al contador (convirtiendo '1' en '00001') y hace el renombramiento.

El script se puede cambiar el tipo de archivo a renombrar editando el patrón de busqueda del comando dir.

@ECHO OFF
@SETLOCAL enableextensions enabledelayedexpansion
::Activa el uso UTF-8 (Palabras con Acentos)
chcp 65001 

SET /a _seq = 0

for /f "tokens=*" %%f in ('dir /b *.mp4') do (
	SET /a "_seq+=1"
	CALL :sub !_seq! "%%f"
)

exit /b

:sub
	SET "_TMP=00000%1"
	SET "_TMP=%_TMP:~-5%"
	REN %2 %_TMP%.mp4 

Notas C# Oracle

Paquete Nuget
Install-Package Oracle.ManagedDataAccess
Referencias
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;
Connection String
Estructura del datasource: tnsnames.ora, su ubicación varía dependiendo del tipo de instalación, éste ejemplo es de la versión Express (gratuita).
Data Source=localhost:1521/XE;User Id=usuario;password=clave
Importante:

Las instrucciones de SQL NO deben de terminar con ;

Notas SQL de Oracle

Descargar Oracle Express

Acceder a la base de datos vía CMD (Credenciales implícitas)
sqlplus  / as sysdba

Acceder a la base de datos vía CMD (Credenciales implícitas)
sqlplus  usuario/clave

Versión del servidor
SELECT * FROM v$version;

Mostrar todos los usuarios
SELECT * FROM dba_users;

Cambiar Contraseña
ALTER USER cuenta IDENTIFIED BY "clave";

Desbloquear cuenta
ALTER USER cuenta ACCOUNT UNLOCK;

Exportar consulta a archivo de texto
SET TRIMSPOOL ON
SET LINESIZE 32000;
SET PAGESIZE 1000;

SPOOL C:\TEMP\prueba3.txt
SELECT * FROM dba_users;
SPOOL OFF;

Dar permiso de ejectuar la instrucción DBMS_CRYPTO en Oracle 11
GRANT EXECUTE ON SYS.DBMS_CRYPTO TO usuario