Diario

Script de Python para convertir todos los archivos JPEG a formato PNG en un directorio especificado

1 Mins read
# Script de Python para convertir todos los archivos JPEG a formato PNG en un directorio especificado
# python3
# pip install Pillow
#
# El siguiente comando no elimina los archivos originales
# python jpeg-png.py
#
# El siguiente comando elimina los archivos originales
# python jpeg-png.py rm=1


from PIL import Image
import os
import sys


def convert_jpeg_to_png(directory, remove_jpeg=False):
for root, dirs, files in os.walk(directory):
for file in files:
if file.lower().endswith('.jpg') or file.lower().endswith('.jpeg'):
jpeg_path = os.path.join(root, file)
png_path = os.path.splitext(jpeg_path)[0] + '.png'


try:
image = Image.open(jpeg_path)
image.save(png_path, format='PNG')
print(f"{jpeg_path}を{png_path}に変換しました")


if remove_jpeg:
os.remove(jpeg_path)
print(f"{jpeg_path}を削除しました")
except Exception as e:
print(f"{jpeg_path}の変換に失敗しました: {e}")


# Obtener el directorio actual
current_directory = os.getcwd()


# Verificar argumentos de línea de comandos
remove_jpeg = False
if len(sys.argv) > 1 and sys.argv[1] == 'rm=1':
remove_jpeg = True


convert_jpeg_to_png(current_directory, remove_jpeg)
Read more
Diario

Script de Python para convertir todos los archivos PNG a formato JPEG en un directorio especificado

1 Mins read
Script de Python para convertir todos los archivos PNG a formato JPEG en un directorio especificado
# Script de Python para convertir todos los archivos PNG a formato JPEG en un directorio especificado
# python3系
# pip install Pillow
#
# El archivo de abajo no se elimina
# python png-jpeg.py
#
# El archivo de abajo se elimina
# python png-jpeg.py rm=1


from PIL import Image
import os
import sys


def convert_png_to_jpeg(directory, remove_png=False):
for root, dirs, files in os.walk(directory):
for file in files:
if file.lower().endswith('.png'):
png_path = os.path.join(root, file)
jpeg_path = os.path.splitext(png_path)[0] + '.jpg'


try:
image = Image.open(png_path)
rgb_im = image.convert('RGB')
rgb_im.save(jpeg_path, quality=100)
print(f"{png_path}を{jpeg_path}に変換しました")


if remove_png:
os.remove(png_path)
print(f"{png_path}を削除しました")
except Exception as e:
print(f"{png_path}の変換に失敗しました: {e}")


# カレントディレクトリを取得して指定
current_directory = os.getcwd()


# コマンドライン引数を確認
remove_png = False
if len(sys.argv) > 1 and sys.argv[1] == 'rm=1':
remove_png = True


convert_png_to_jpeg(current_directory, remove_png)

 

Read more
Diario

【Mac】Puerto 5000 no disponible en Monterey

1 Mins read

Estoy usando el puerto 5000 en desarrollo pero me sale un error ¿qué onda?

Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:5000 -> 0.0.0.0:0: listen tcp 0.0.0.0:5000: bind: address already in use

lsof -i:5000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ControlCe 85856 user10 26u IPv4 0x4ff853972c8bedd 0t0 TCP *:commplex-main (LISTEN)
ControlCe 85856 user10 27u IPv6 0x4ff85430b21e97d 0t0 TCP *:commplex-main (LISTEN)

¿Qué es esto?

Resulta que desde Monterey se agregó una función llamada AirPlay que está ocupando el puerto.

System Preference > Sharing > AirPlay Receiver > desmarcar la opción
Con esto vuelve a funcionar, pero… pensando a futuro, otros van a tener el mismo problema así que lo mejor es cambiar el lado del desarrollo.

Read more
Diario

【Mac】Evitar "Operation not permitted" en Terminal y configurar para desarrollo

1 Mins read

macOS Monterey
Versión 12.4

■1. Cambiar «SIP» a disable
(Desactivar System Integrity Protection: SIP)

Apagar Mac completamente
Al iniciar, presionar «command + R», soltar cuando aparezca el logo
Se inicia el modo de recuperación
Desde la barra de menú superior, seleccionar «Abrir Terminal»

# Comando: verificar si "csrutil status" muestra "enabled"
csrutil status

# Comando: ejecutar "csrutil disable" (los cambios se aplican tras reiniciar)
csrutil disable

# Comando: reiniciar Mac con "reboot"
reboot

■2. Configurar Terminal con permisos completos
Después del inicio normal
«Preferencias del Sistema»

«Seguridad y Privacidad»

Pestaña «Privacidad», lado derecho «Acceso Total»

Marcar casilla de «Terminal»

■3. Eliminar «.DS_Store» e impedir su creación

# Eliminar todos los archivos .DS_Store
sudo find / -name ".DS_Store" -delete
# Reiniciar Finder
Killall Finder

# Evitar la creación completa de .DS_Store
defaults write com.apple.desktopservices DSDontWriteNetworkStores True
# Reiniciar Finder
Killall Finder

■4. Si no es necesario, se recomienda desactivar sincronización de iCloud

Read more
Diario

[Mac] Limitar destino de conexión al usar VPN

1 Mins read

Al conectarse a través de VPN, el acceso a IPs específicas (red de destino VPN) que no sean la red VPN se enruta directamente desde el entorno local a Internet en lugar de pasar por VPN, mejorando el tráfico de red.

※En trabajo remoto, dependiendo de la política del departamento de sistemas, a veces querrán que todas las conexiones pasen por la red interna. Obtenga permiso del departamento de sistemas si lo usa en el trabajo.

※Tenga cuidado: muchas configuraciones de servidores externos liberan conexiones mediante el enrutamiento a través del destino VPN.

※Si accede al destino VPN usando un dominio, tenga cuidado con la configuración de DNS (según la configuración de DNS del lado VPN, a veces será necesario editar el archivo hosts).

macOS Monterey
Version 12.3
Método de conexión VPN: L2TP/IPsec (PPP es tunelización)

■Abrir detalles de conexión VPN en Preferencias del Sistema > Red
Desmarque «Enviar todo el tráfico a través de la conexión VPN»

設定画像

■Crear script para agregar rutas
El script /etc/ppp/ip-up se ejecuta cuando se establece la conexión.
Agregue lo siguiente a este archivo para «agregar la ruta IP cuando se conecta a VPN».
Como ejemplo, la «ruta que desea enrutar a VPN» es «172.31.1.0/24«.

#Confirmar que ppp0 existe después de conectar VPN
$ ifconfig

#Después de desconectar VPN
#Editar archivo con vi
$ sudo vi /etc/ppp/ip-up
#!/bin/sh

if [ "$1" = "ppp0" ]; then
    /sbin/route add -net 172.31.1.0/24 -interface ppp0
fi

#Guardar archivo con vi
#Dar permisos de ejecución al archivo
$ sudo chmod +x /etc/ppp/ip-up

#Confirmar tabla de enrutamiento
$ netstat -rn

Notas
Cuando se enrutan múltiples rutas, se puede escribir en múltiples líneas:

/sbin/route add -net 172.31.1.0/22 -interface ppp0
/sbin/route add -net 172.31.4.0/22 -interface ppp0
/sbin/route add -net 172.31.8.0/22 -interface ppp0
Read more