Herramientas Informaticas

Etiqueta: PHP8 Página 1 de 9

💎 Guía Maestra: Instalación de SAP HANA Client 2.0

Entrada fija

Edición SAP Business One (HANA 2.0 Rev 56)

Esta guía detalla el despliegue del cliente de base de datos, componente esencial para conectar SAP B1, Crystal Reports, Excel y Power BI.


1 Ubicación del Kit de Instalación

En entornos de SAP Business One, el instalador reside dentro de los paquetes de datos del servidor. No busque instaladores genéricos; navegue a la siguiente ruta:

…\HANA 2.0 rev 56\DATA_UNITS\SAP HANA CLIENT 2.0 FOR B1

Dentro encontrará la arquitectura dual de SAP:

  • 📂 NT_X64: Carpeta exclusiva para Windows (64 bits).
  • 📂 LINX64SUSE: Carpeta para servidores Linux/SUSE.

2 Instalación Paso a Paso

  1. Acceda a la carpeta NT_X64.
  2. Localice el ejecutable hdbinst.exe.
  3. Derechos de Administrador: Haga clic derecho y seleccione “Ejecutar como administrador”.
  4. Consola: Presione Enter para aceptar la ruta por defecto C:\hdbclient.

⚠️ Verificación: La instalación finaliza correctamente cuando visualiza el mensaje: Installation done.

3 Configuración del PATH

Para ejecutar herramientas como hdbsql desde cualquier carpeta, configure la variable de entorno:

  • Busque “Variables de Entorno” en el menú Inicio.
  • En Variables del sistema, edite la variable Path.
  • Agregue una nueva línea con: C:\hdbclient.

4 Activación ODBC (64 bits)

Para habilitar la conexión en aplicaciones de terceros:

  1. Abra el Administrador de orígenes de datos ODBC (64 bits).
  2. Vaya a DSN de sistema > Agregar.
  3. Seleccione el controlador HDBODBC.
  4. Configure la IP del servidor y el puerto (ej: 30015).

// Prueba de fuego en CMDhdbsql -n 192.168.X.X:30015 -u SYSTEM -p Password123 "SELECT * FROM DUMMY"

🚀 Troubleshooting Rápido

  • ¿No ve el driver? Instale “Visual C++ Redistributable 2013/2015”.
  • ¿Error -10709? Verifique el Firewall del servidor en el puerto 30015.

Cómo enlazar sucursales locales con SAP Business One usando ODBC (HANA)

Entrada fija

Repositorio: boilerplateservicelayer
Commit documentado: 53bbd3fe03b083957043911f46b59a04e31175f4

Este manual técnico explica cómo enlazar sucursales locales con sucursales de SAP Business One (OBPL) utilizando ODBC (eODBC) sobre SAP HANA, evitando el uso del Service Layer para consultas de alto rendimiento.


¿Qué problema resuelve esta implementación?

En muchos proyectos con SAP Business One, el uso del Service Layer para catálogos o consultas simples introduce latencia innecesaria. Este módulo soluciona ese problema permitiendo:

  • Relacionar sucursales locales con sucursales SAP
  • Consultar la tabla OBPL directamente desde SAP HANA
  • Reducir tiempos de respuesta usando ODBC
  • Eliminar dependencias innecesarias del Service Layer

¿Por qué usar ODBC en SAP Business One?

El uso de ODBC en SAP HANA es ideal para consultas de solo lectura, catálogos y validaciones rápidas.

CaracterísticaService LayerODBC SAP HANA
RendimientoMedioAlto
LatenciaAltaBaja
Ideal paraCRUD complejoCatálogos y consultas
Dependencia SAPAltaMedia

Estructura del módulo de enlace SAP

La solución se divide en cuatro componentes principales:

  1. Tabla de enlace entre sucursal local y SAP
  2. Controlador con consultas ODBC
  3. Vista con DataTables server-side
  4. Formulario con Select2 dinámico

Tabla link_sap_branchoffice

Esta tabla permite mantener la relación entre el sistema local y SAP Business One sin duplicar información de SAP.

CampoDescripción
idID interno
idEmpresaEmpresa local
idBranchOfficeSucursal local
idBranchOfficeSAPSucursal SAP (OBPL.BPLId)
created_atFecha de creación
updated_atFecha de actualización
deleted_atBorrado lógico

Conexión a SAP HANA usando ODBC

La conexión ODBC se realiza directamente contra SAP HANA, lo que permite consultas rápidas y estables.

Conexión ODBC en PHP


$conn = odbc_connect(
    $dataConect['nameODBC'],
    $dataConect['userODBC'],
    $dataConect['passwordODBC']
);

Fijar el schema en SAP HANA


SET SCHEMA "COMPANYDB"

Este paso es obligatorio para evitar errores como invalid table name en SAP HANA.


Consulta optimizada a la tabla OBPL

Para obtener una sucursal SAP se realiza una consulta directa a la tabla OBPL:


SELECT
    "BPLId",
    "BPLName"
FROM OBPL
WHERE "Disabled" <> 'Y'
  AND "BPLId" = ?
  • Consulta directa
  • Sin bucles innecesarios
  • Ideal para formularios y edición

Listado con DataTables server-side

El módulo utiliza DataTables en modo server-side para manejar grandes volúmenes de datos:

  • Paginación eficiente
  • Búsqueda global
  • Ordenamiento dinámico
  • Filtrado por empresa del usuario

Select2 dinámico para sucursales

Sucursal local

Se cargan las sucursales locales vía AJAX usando Select2.

Sucursal SAP (OBPL)

Las sucursales SAP se consultan directamente desde SAP HANA vía ODBC, sin Service Layer.


Beneficios clave de esta arquitectura

  • Mayor rendimiento en SAP Business One
  • Menor latencia en consultas
  • Menos carga en el Service Layer
  • Arquitectura escalable y mantenible

Buenas prácticas recomendadas

  • Usar ODBC solo para consultas de lectura
  • Usar Service Layer para escrituras en SAP
  • Centralizar credenciales ODBC
  • Siempre definir el schema en SAP HANA

Conclusión

Este enfoque permite integrar SAP Business One con sistemas locales de forma eficiente, utilizando ODBC sobre SAP HANA como alternativa rápida y estable al Service Layer.

Ideal para catálogos, validaciones, reportes y sistemas híbridos SAP.

🚀 Guía de Activación CData ODBC SAP BUSINESS ONE

Entrada fija

SAP HANA Driver 2025 | Linux Mint & Ubuntu

Esta guía resuelve el error Could not find a valid license permitiendo la activación del periodo de prueba o licencia comercial.

1. Localizar el Motor de Activación

El driver incluye una utilidad Java específica. En la versión 2025, el archivo clave es:

/opt/cdata/cdata-odbc-driver-for-saphana/lib/cdata.odbcm.saphana.jar

2. Ejecutar el Asistente por Terminal

Usa el siguiente comando para forzar la apertura del gestor de licencias (requiere privilegios de sudo):

sudo java -cp /opt/cdata/cdata-odbc-driver-for-saphana/lib/cdata.odbcm.saphana.jar cdata.odbc.saphana.DriverMain -license

3. Datos de Registro (Modo TRIAL)

Dentro del asistente, completa la información solicitada:

  • 👤 Name: Tu nombre completo
  • 📧 Email: Tu correo electrónico
  • 🔑 Product Key: Escribe TRIAL

Nota: Si tienes una clave comprada, ingrésala en lugar de “TRIAL”.

4. Configuración de Permisos Finales

Es vital copiar la licencia y dar permisos de lectura para que PHP/Apache puedan detectarla:

# Crear carpeta de configuración
mkdir -p ~/.cdata

# Copiar archivo de licencia
sudo cp /opt/cdata/cdata-odbc-driver-for-saphana/lib/CData.ODBC.SAPHANA.lic ~/.cdata/

# Liberar permisos de lectura
sudo chmod 644 ~/.cdata/CData.ODBC.SAPHANA.lic
sudo chmod 644 /opt/cdata/cdata-odbc-driver-for-saphana/lib/CData.ODBC.SAPHANA.lic

📋 Detalles de la Licencia Trial

  • Vigencia: 30 días a partir de la activación.
  • Capacidad: Funcionalidad completa sin límite de registros.
  • Requisito: Requiere Java JRE instalado en el sistema.

Guía generada para Julio César – Linux Mint 22

Conectarse a SAP HANA desde Linux Mint usando CDATA ODBC (Guía Completa)

Entrada fija

Conectar aplicaciones PHP o frameworks como CodeIgniter a SAP HANA desde Linux puede ser un reto, especialmente cuando no se quiere instalar el SAP HANA Client oficial. En esta guía aprenderás paso a paso cómo instalar y configurar CDATA ODBC Driver para SAP HANA en Linux Mint, una alternativa rápida y funcional para entornos de desarrollo.


¿Qué es CDATA ODBC para SAP HANA?

CDATA es un proveedor de drivers ODBC comerciales que permiten conectarse a múltiples bases de datos empresariales, incluido SAP HANA, sin necesidad de instalar clientes pesados de SAP.

Ventajas

  • Instalación sencilla
  • Compatible con PHP, Python y Java
  • Ideal para Linux Mint / Ubuntu
  • No requiere SAP HANA Client

Consideraciones

  • Driver comercial
  • Incluye periodo de prueba (~30 días)
  • Recomendado para desarrollo y pruebas

Requisitos del sistema

  • Linux Mint 22 (64 bits)
  • Acceso a SAP HANA (IP, puerto, usuario y base de datos)
  • Permisos sudo
  • PHP (opcional para pruebas)

1. Instalar dependencias necesarias

sudo apt update
sudo apt install -y unixodbc unixodbc-dev libssl3 libc6

Verifica la instalación:

odbcinst -j

2. Descargar CDATA ODBC Driver para SAP HANA

Descarga el driver desde el sitio oficial:

https://www.cdata.com/drivers/saphana/odbc

Selecciona:

  • Platform: Linux
  • Architecture: 64-bit
  • Technology: ODBC

El archivo descargado tendrá un nombre similar a:

CDataODBCDriverforSAPHANA.tar.gz

3. Descomprimir el instalador

cd ~/Descargas
tar -xvzf CDataODBCDriverforSAPHANA.tar.gz
cd CDataODBCDriverforSAPHANA

4. Instalar el driver CDATA

sudo ./install.sh

El driver se instalará por defecto en:

/opt/cdata/cdata-odbc-driver-for-saphana/

5. Registrar el driver en ODBC

Verifica que la librería exista:

ls /opt/cdata/cdata-odbc-driver-for-saphana/lib/

Debe existir:

libcdataodbcHANA.so

Edita el archivo odbcinst.ini:

sudo nano /etc/odbcinst.ini

Agrega lo siguiente:

[CData SAP HANA ODBC Driver]
Description=CData ODBC Driver for SAP HANA
Driver=/opt/cdata/cdata-odbc-driver-for-saphana/lib/libcdataodbcHANA.so
UsageCount=1

Verifica el registro:

odbcinst -q -d

6. Crear el DSN de conexión

Edita el archivo odbc.ini:

sudo nano /etc/odbc.ini

Ejemplo de conexión para SAP Business One HANA:

[hana_dev]
Driver=CData SAP HANA ODBC Driver
Server=192.168.1.50
Port=30015
User=HANAUSER
Password=MySecurePass123
Database=SBODEV_HANA

7. Probar la conexión ODBC

isql -v hana_dev

Resultado esperado:

Connected!

8. Instalar soporte ODBC para PHP

sudo apt install php-odbc
sudo systemctl restart apache2

Verifica que PHP tenga ODBC habilitado:

php -m | grep odbc

9. Ejemplo de conexión PHP a SAP HANA

<?php

$conn = odbc_connect(
    'hana_dev',
    'HANAUSER',
    'MySecurePass123'
);

if (!$conn) {
    die(odbc_errormsg());
}

echo "Conectado a SAP HANA usando CDATA ODBC";

10. Ejemplo de consulta SAP HANA

$sql = '
    SELECT 
        "DocEntry",
        "DocNum",
        "CardCode",
        "CardName"
    FROM "OPCH"
    LIMIT 10
';

$rs = odbc_exec($conn, $sql);

while ($row = odbc_fetch_array($rs)) {
    print_r($row);
}

Nota: SAP HANA es sensible a mayúsculas y minúsculas, por lo que es obligatorio usar comillas dobles para tablas y campos.


Conclusión

El driver CDATA ODBC para SAP HANA es una excelente alternativa cuando necesitas conectarte rápidamente a SAP HANA desde Linux Mint sin instalar el cliente oficial de SAP.

  • Instalación sencilla
  • Compatible con PHP y CodeIgniter
  • Ideal para desarrollo y pruebas

Esta configuración puede adaptarse fácilmente a entornos productivos ajustando credenciales, seguridad y manejo de conexiones.

🚀 Nueva actualización lav1.5.1 — Manejo mejorado de Imagen de Perfil en Boilerplate

Entrada fija

🚀 Nueva actualización lav1.5.1 — Manejo mejorado de Imagen de Perfil en Boilerplate

La versión lav1.5.1 introduce una de las mejoras más esperadas en el flujo de autenticación y gestión de usuarios: la capacidad de manejar de forma nativa la imagen de perfil, con validación robusta, soporte para valores NULL en base de datos y un avatar por defecto cuando no se encuentra la imagen.

Este release no solo mejora la experiencia visual y de usabilidad, sino que también fortalece la integración de datos del usuario dentro de las vistas del sistema. A continuación, presentamos en detalle todos los cambios, mejoras y la forma recomendada de actualizar tu proyecto.


✨ Principales Novedades

🔹 1. Imagen de perfil con validación

Ahora el sistema valida si el campo profile_image existe en la base de datos y contiene un valor válido.

  • Si el campo está vacío o en NULL, se muestra automáticamente un avatar genérico.
  • Si el archivo no existe en el servidor, el sistema también utiliza el avatar por defecto.

🔹 2. Avatar por defecto

El avatar por defecto se toma de la CDN oficial de AdminLTE:

https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png

🔹 3. Integración en el Header y Sidebar

La imagen de perfil ahora aparece en dos áreas clave:

  • Navbar (parte superior) junto al nombre de usuario.
  • Sidebar (menú lateral) dentro del panel de usuario.

🔹 4. Comando de actualización de esquema

Con esta versión se incluyen nuevos campos y tablas, por lo que añadimos el comando:

php spark boilerplate:update

Este comando sincroniza tu base de datos con los cambios de la versión actual.


📦 Cómo actualizar a lav1.5.1

1. Actualizar dependencias con Composer

Ejecuta en la raíz de tu proyecto:

composer update julio101290/boilerplate

Esto descargará la nueva versión y reemplazará los archivos necesarios.

2. Ejecutar la actualización de esquema

Después de actualizar el código, corre el comando:

php spark boilerplate:update

Este proceso migrará las tablas y añadirá los nuevos campos, entre ellos el de profile_image.

3. Limpiar cachés y asegurarte de que todo carga

php spark cache:clear
php spark config:clear

🛠 Cambios Técnicos Detallados

Validación en vistas

Ejemplo de uso en el header:

<a href="<?= base_url(route_to('user-profile')) ?>" class="nav-link d-flex align-items-center">
    <img src="<?= user()->profile_image && file_exists(FCPATH . 'uploads/profiles/' . user()->profile_image) 
        ? base_url('uploads/profiles/' . user()->profile_image) 
        : 'https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png' ?>"
        class="avatar-img img-circle bg-gray mr-2 elevation-<?= config('Boilerplate')->theme['navbar']['user']['shadow'] ?>"
        alt="<?= user()->username ?>" height="32">
    <?= user()->username ?>
</a>

Ejemplo en el sidebar:

<div class="image">
    <img src="<?= user()->profile_image && file_exists(FCPATH . 'uploads/profiles/' . user()->profile_image) 
        ? base_url('uploads/profiles/' . user()->profile_image) 
        : 'https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png' ?>"
        class="img-circle elevation-<?= config('Boilerplate')->theme['sidebar']['user']['shadow'] ?>"
        alt="User Image">
</div>

Cambios en la Base de Datos

  • Se añade el campo profile_image a la tabla de usuarios.
  • Este campo acepta NULL de manera nativa.
  • Si no se define, la vista renderiza automáticamente el avatar por defecto.

Compatibilidad

  • Compatible con PostgreSQL y MariaDB.
  • No requiere cambios manuales en tablas previas: el comando php spark boilerplate:update se encarga de todo.

🔒 Beneficios de Seguridad

  • No se exponen rutas inválidas de imágenes.
  • Se evita el error de “imagen rota”.
  • Se normalizan los valores NULL.
  • Mejora la experiencia del usuario manteniendo consistencia en toda la interfaz.

📊 Ejemplo Visual del Cambio

Antes (versión anterior):

  • Los usuarios sin foto aparecían con un ícono roto.
  • Los campos NULL no eran validados correctamente.

Ahora (lav1.5.1):

  • Todos los usuarios tienen avatar visible.
  • Integración estética y funcional en Navbar y Sidebar.

📝 Changelog resumido

  • ✅ Validación de profile_image en todas las vistas principales.
  • ✅ Avatar por defecto cuando el campo está vacío o NULL.
  • ✅ Compatibilidad con PostgreSQL y MariaDB.
  • ✅ Nuevo comando php spark boilerplate:update.
  • ✅ Correcciones menores en estilos de AdminLTE.

🚀 Guía Paso a Paso de Migración

  1. Respaldar tu proyecto actual.
  2. Ejecutar:
   composer update julio101290/boilerplate
  1. Correr la migración:
   php spark boilerplate:updatecommand
  1. Limpiar caché.
  2. Verificar que los usuarios aparecen con sus fotos de perfil o con el avatar por defecto.

📌 Notas Finales

Este release v1.5.1 marca un paso adelante en la personalización de Boilerplate.
Ahora cada usuario tiene una experiencia más consistente y profesional dentro de la aplicación.

👉 Si quieres revisar el código y los commits de esta versión:
🔗 Release en GitHub

🚨 La CURP Biométrica en México: ¿Avance Digital o Amenaza a la Privacidad? 🇲🇽

Entrada fija

🚨 La CURP Biométrica en México: ¿Avance Digital o Amenaza a la Privacidad? 🇲🇽

“No se puede cambiar una huella digital como se cambia una contraseña.” — Derechos Digitales


🔎 1. ¿Qué es la CURP Biométrica?

La CURP biométrica es la nueva forma de identificación obligatoria en México, aprobada en 2025, que incluirá:

  • 📷 Fotografía del rostro
  • 🔍 Huellas dactilares
  • 👁 Escaneo del iris
  • ✍️ Firma electrónica

Su objetivo declarado es combatir la desaparición de personas y modernizar el sistema de identificación nacional. Pero… ¡no todo es tan claro!


🤔 2. ¿Voluntaria o Obligatoria?

Aunque el gobierno afirma que su uso es voluntario, la ley establece que:

  • Será la única forma de identificación para trámites oficiales y privados
  • No contar con ella podría impedir el acceso a servicios públicos

⚠️ Esto genera una contradicción legal y una forma de consentimiento forzado.


😯 3. Riesgos para tu Privacidad

♻️ Datos irremplazables

Tus huellas o iris no pueden cambiarse si se filtran o roban. ¡Y eso ya ha pasado antes en México!

🚫 Falta de supervisión

Tras la desaparición del INAI, no hay autoridad autónoma que vigile el uso de tus datos.

📊 Vigilancia masiva

El sistema podría rastrear tus:

  • Consultas médicas
  • Movimientos financieros
  • Uso de transporte
  • Ubicación en tiempo real

🔒 4. Lo que dicen los expertos

Organizaciones como R3D y Derechos Digitales advierten que:

  • No hay garantías legales suficientes
  • Podría discriminar a personas trans, adultas mayores o con huellas deterioradas
  • Está diseñado más para vigilar que para proteger

“Es un sistema coercitivo que castiga a quien no quiera entregar sus datos biométricos.” — R3D


🚀 5. Argumentos del Gobierno

El director de la Agencia Digital, Pepe Merino, afirma que:

  • La CURP biométrica no es obligatoria
  • Solo se usará en casos con investigación de desaparición
  • La base de datos no estará centralizada

⚠️ Pero estas afirmaciones contrastan con el contenido real de las leyes aprobadas.


🌐 6. Comparación Internacional

  • En Brasil, el Tribunal Supremo prohibió un sistema similar por ser inconstitucional
  • En Europa, la Convención 108+ exige protección legal robusta y supervisión independiente
  • En India, su base de datos AADHAAR ha sido hackeada múltiples veces

⛔️ 7. Peligros reales

RiesgoConsecuencia
🔎 Filtración de datosNo puedes cambiar tu iris o huella
🚫 DiscriminaciónPoblaciones vulnerables excluidas
🕵️‍♂️ Vigilancia sin límitesGeolocalización, perfilamiento, vigilancia financiera
🙅‍ No hay contrapesosNo hay INAI, ni jueces que supervisen

📊 8. Lo que opina la gente

  • ❌ 49% no confía en que el gobierno protegerá sus datos
  • ❌ 49% está en desacuerdo con los datos biométricos obligatorios

¿Y si cambian de gobierno y usan esa base para vigilar opositores?” — Usuario en redes


🤝 9. ¿Qué podemos hacer como ciudadanos?

  • 🔎 Informarte con fuentes independientes
  • ✉️ Exigir leyes con protección biométrica real
  • 🚪 Participar en colectivos de derechos digitales
  • 🙏 Pedir que vuelva una autoridad como el INAI

🚫 Conclusión: ¡No es un simple trámite!

La CURP biométrica, tal como está diseñada, representa un riesgo real para tu privacidad, tus derechos y tu seguridad.

❌ No es segura
❌ No es voluntaria
❌ No tiene vigilancia independiente

⚡️ Solo con leyes claras, tecnología responsable y participación ciudadana podremos evitar que esta medida se convierta en una herramienta de control masivo.


🔖 Fuentes consultadas

“Si no luchas por tus datos, algún día serán usados contra ti.”

¿Está Siendo Desmantelado LBRY por Presión de la SEC? El Caso LBC y el Futuro de la Descentralización

Entrada fija

¿Está Siendo Desmantelado LBRY por Presión de la SEC? El Caso LBC y el Futuro de la Descentralización

Introducción

LBRY fue uno de los proyectos pioneros en ofrecer una red descentralizada para la publicación y monetización de contenido, con su token nativo LBC (LBRY Credits). Pero en los últimos meses, LBC ha desaparecido progresivamente de múltiples exchanges, tanto centralizados como descentralizados, dejando a muchos usuarios con activos atrapados y sin liquidez. ¿Qué ocurrió realmente? ¿Fue un fallo tecnológico, una caída del interés… o presión estatal?

Este análisis desglosa lo que pasó con LBRY y cómo el gobierno, en especial la SEC (Securities and Exchange Commission) de Estados Unidos, puede desmantelar incluso proyectos descentralizados sin necesidad de tocar una sola línea de código.

1. El Caso LBRY vs. SEC

¿Qué es LBRY?

LBRY fue creado como un protocolo blockchain que permite a los usuarios compartir contenido (videos, publicaciones, música) sin intermediarios. Su token LBC se usaba para pagar por contenido, apoyar creadores y realizar microtransacciones dentro del ecosistema.

La demanda de la SEC

En marzo de 2021, la SEC presentó una demanda contra LBRY Inc., la empresa detrás del desarrollo del protocolo, acusándola de vender valores no registrados mediante la emisión de LBC, incluso sin haber hecho una ICO formal.

El fallo judicial

En noviembre de 2022, el tribunal falló a favor de la SEC, declarando que LBC era un valor bajo la ley estadounidense. Esto generó consecuencias graves para el ecosistema, ya que incluso las ventas secundarias entre usuarios quedaron bajo amenaza.

2. La desaparición de LBC en exchanges

Tras el fallo:

  • Exchanges como CoinEx, BitMart, MXC y Hotbit eliminaron LBC.
  • Bittrex US cerró sus mercados para clientes estadounidenses.
  • Incluso algunos DEX dejaron de ofrecer pares de LBC debido a la baja liquidez y el riesgo legal.

¿Por qué también los DEX?

Aunque los DEX no son controlados directamente por gobiernos, las plataformas y front-ends prefieren evitar problemas legales. Además, los proveedores de liquidez abandonaron el token tras la sentencia, dejando pares sin volumen.

3. ¿Es esto censura financiera?

Sí, aunque indirectamente. Lo que pasó con LBC demuestra cómo un gobierno puede marginalizar una criptomoneda sin necesidad de prohibirla expresamente.

  • Técnicamente: El protocolo sigue vivo, los tokens existen, puedes correr nodos.
  • En la práctica: No hay liquidez ni adopción. Se volvió inviable para el usuario común.

4. ¿Cómo puede el gobierno controlar criptomonedas descentralizadas?

Los gobiernos pueden limitar una red cripto a través de los siguientes medios:

MecanismoEjemplo
Demandas legalesSEC vs LBRY, SEC vs Ripple
Prohibiciones de listadosExchanges eliminan tokens “en riesgo”
Presión a desarrolladoresArresto de desarrollador de Tornado Cash
Regulación de rampas de entrada/salidaKYC forzado en wallets y exchanges

5. ¿Qué significa esto para la descentralización real?

Niveles de descentralización:

NivelCaracterísticasRiesgo
1. TotalNodos distribuidos, sin empresa detrás (ej. Monero, Bitcoin)Baja censura, difícil de eliminar
2. ParcialRed abierta con empresa de desarrollo (ej. Ethereum, XRP)Presión legal sobre fundadores
3. CentralizadaControl total de empresa o figura única (ej. FTX, Terra)Fácilmente colapsables

6. Lecciones del caso LBRY

  • La descentralización debe ser real y completa: Si dependes de una empresa, puedes ser desmantelado.
  • El marco legal es importante: Aunque el código sea libre, la ley puede limitarlo.
  • La comunidad es clave: Sin una red fuerte de usuarios y nodos independientes, los proyectos mueren.

7. ¿Qué hacer si aún tienes LBC?

Opciones actuales:

  • Algunos exchanges internacionales aún permiten el intercambio, como Bittrex Global (fuera de EE. UU.).
  • Puedes conservar el token en wallets como LBRY Desktop u Odysee.
  • Trading P2P en foros o grupos privados.

Sin embargo, la liquidez y la utilidad del token están prácticamente extintas.

8. Alternativas verdaderamente descentralizadas

Si buscas redes resistentes a la censura, considera:

ProyectoDescripción
Monero (XMR)Criptomoneda centrada en la privacidad total.
IPFS + FilecoinAlmacenamiento de archivos descentralizado.
NostrRed social descentralizada, sin servidores centrales.
KeetMensajería y videollamadas P2P sin servidores.
ZoraPlataforma NFT sin control corporativo.

Conclusión

El caso de LBRY es una advertencia clara: una descentralización parcial no basta. Aunque el código sobreviva, el sistema puede ser asfixiado desde afuera mediante leyes, regulación financiera y censura social.

Si queremos una verdadera libertad en la web y en las finanzas, debemos construir infraestructuras libres de permisos, resistentes a la censura y no dependientes de ninguna entidad legal.

¿Te interesa migrar tus contenidos o tokens a plataformas libres y resistentes? Déjame tu comentario y seguimos explorando juntos.

🚀 Descubre Facturación Fácil con CI4JCPOX: Sistema Moderno en CodeIgniter 4.5

Entrada fija

¿Buscas un sistema de facturación rápido, seguro y flexible que puedas instalar en tu servidor Ubuntu con mínimo esfuerzo?

¡Te presento CI4JCPOX, una solución basada en CodeIgniter 4.5 que potencia tu negocio con funcionalidades completas y tecnología moderna!


🌟 ¿Por qué elegir CI4JCPOX?

  • Basado en CodeIgniter 4.5, el framework PHP ligero y rápido
  • Uso de MariaDB para bases de datos robustas y eficientes
  • Integración lista con Apache y PHP para un entorno LAMP completo
  • Código abierto y fácil de personalizar para tus necesidades
  • Instalación rápida gracias a un script automatizado para Ubuntu Server 24.04 en AWS EC2 o cualquier VPS Linux

⚙️ ¿Qué incluye este sistema?

  • Gestión completa de facturas y clientes
  • Interfaz web limpia y responsiva
  • Migraciones y seeders para inicializar la base de datos sin complicaciones
  • Configuración segura con usuario y base de datos dedicados
  • Preparado para crecer y adaptarse a tu negocio

🛠️ Cómo instalar CI4JCPOX en Ubuntu Server 24.04 (AWS EC2)

He preparado un script automático para que en pocos minutos tengas todo listo: LAMP, base de datos, configuración de CodeIgniter y Apache con VirtualHost.

Paso 1: Descarga el script de instalación

cd ~
curl -O https://raw.githubusercontent.com/julio101290/ci4jcposv2/main/instalar_ci4_facturacion.sh

Paso 2: Dale permisos de ejecución

chmod +x instalar_ci4_facturacion.sh

Paso 3: Ejecuta el script como root

sudo ./instalar_ci4_facturacion.sh

✅ ¿Qué hace este script por ti?

  • Actualiza y prepara tu servidor Ubuntu
  • Instala Apache, MariaDB y PHP con todas las extensiones necesarias
  • Crea la base de datos facturacion y un usuario seguro con permisos
  • Instala el proyecto CI4JCPOX usando Composer en /var/www/html/facturacion
  • Configura Apache para servir el proyecto con un VirtualHost dedicado
  • Ejecuta migraciones y seeders para inicializar la base de datos
  • Deja todo listo para que accedas a tu sistema por IP o dominio

🌐 Accede a tu sistema

Abre tu navegador y entra a:

http://TU_IP_PUBLICA/

¡Listo para comenzar a facturar!


🔒 Seguridad y permisos

El script también se encarga de ajustar permisos para que Apache pueda servir correctamente la aplicación sin problemas de acceso.


📂 Código y más información

Puedes revisar y descargar el script completo desde GitHub:

https://github.com/julio101290/ci4jcposv2/blob/main/instalar_ci4_facturacion.sh


¿Quieres ayuda o personalización?

No dudes en contactarme para soporte, mejoras o integraciones personalizadas. ¡Estoy aquí para ayudarte a llevar tu facturación al siguiente nivel!


¡Empieza hoy mismo con CI4JCPOX y transforma tu sistema de facturación!

📘 Documentación de psql-backup

Entrada fija
  1. ¿Qué es psql-backup?
  2. Características principales
  3. Instalación vía Composer
  4. ¿Cómo se usa?
  5. Detalles técnicos
  6. Descarga y restauración
  7. Licencia

📦 ¿Qué es psql-backup?

psql-backup es una librería PHP creada por julio101920 (el compa que respalda hasta los tamales si le das chance). Sirve para hacer backups de PostgreSQL desde PHP, y si no tienes pg_dump, no pasa nada, la librería se rifa con puro PHP.


✨ Características principales

  • Backup con pg_dump (si está instalado)
  • Respaldo alternativo 100% PHP
  • ZIP automático para PostgreSQL
  • Clase lista para usar: PostgreSQLBackup
  • Compatible con CodeIgniter 4
  • Soporte para MariaDB y PostgreSQL

⚙️ Instalación vía Composer

Para instalar:

composer require julio101290/psql-backup

Importa la clase donde la necesites:

use PostgresqlBackupManager\PostgreSQLBackup;

🚀 ¿Cómo se usa?

Ejemplo sencillo:

$pdo = new PDO("pgsql:host=localhost;port=5432;dbname=testdb", "usuario", "clave");
$backup = new PostgreSQLBackup($pdo, "testdb", "usuario", "clave", "localhost", 5432, __DIR__ . "/respaldos");
$archivoSQL = $backup->backup(true);

Y para restaurar:

$backup->restore($archivoSQL);

🔍 Detalles técnicos

  • Verifica si pg_dump está disponible
  • Usa ZIP solo si es PostgreSQL (pa’ que no se diga que no es eficiente)
  • El modo PHP lee todas las tablas y datos y crea un .sql como dios manda

📥 Descarga y restauración

¿Necesitas restaurar un respaldo ZIP? No hay problema, la clase detecta si es ZIP y lo descomprime solita:

if (pathinfo($archivoSQL, PATHINFO_EXTENSION) === 'zip') {
    $zip = new ZipArchive();
    $zip->open($archivoSQL);
    $zip->extractTo("/ruta/temp");
    $archivoExtraido = "/ruta/temp/archivo.sql";
    $backup->restore($archivoExtraido);
}

📝 Licencia

MIT. Úsala con gusto, respáldate con estilo y si puedes invítame un taco 🌮

🧠 Cómo convertir Visual Studio Code en el entorno ideal para PHP en Linux Mint (¡con formato automático como en NetBeans!)

Entrada fija

🧠 Cómo convertir Visual Studio Code en el entorno ideal para PHP en Linux Mint (¡con formato automático como en NetBeans!)

Si vienes de NetBeans y ahora estás usando Visual Studio Code (VS Code), probablemente extrañes esa característica tan útil de formatear automáticamente el código PHP con Ctrl+Shift+F.

¡Buenas noticias! Puedes lograr exactamente lo mismo (¡y mejor!) en VS Code. En esta guía te muestro cómo dejarlo todo listo paso a paso:


✅ Paso 1: Instalar Visual Studio Code en Linux Mint

Abre una terminal y ejecuta estos comandos para agregar el repositorio oficial de Microsoft e instalar VS Code:

sudo apt update
sudo apt install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] \
https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
sudo apt update
sudo apt install code

✅ Paso 2: Instalar PHP y Composer (si no los tienes)

En la misma terminal, instala PHP y sus extensiones comunes:

sudo apt install php-cli php-common php-mbstring php-xml php-curl php-zip php-gd

Y luego Composer:

sudo apt install composer

✅ Paso 3: Instalar extensiones esenciales para PHP

Abre Visual Studio Code y presiona Ctrl+P, luego escribe:

ext install bmewburn.vscode-intelephense-client
ext install kokororin.vscode-phpfmt
ext install xdebug.php-debug

🔹 ¿Qué hace cada extensión?

  • PHP Intelephense: autocompletado, documentación, detección de errores.
  • phpfmt: formatea el código PHP automáticamente (como NetBeans).
  • PHP Debug: permite depurar con Xdebug.

✅ Paso 4: Configurar el formateador por defecto para PHP

Abre VS Code, presiona Ctrl+Shift+P y escribe: Preferencias: Abrir configuración (JSON).

Agrega o edita lo siguiente:

{
  "[php]": {
    "editor.defaultFormatter": "kokororin.vscode-phpfmt",
    "editor.formatOnSave": false
  }
}

¿Prefieres que se formatee al guardar? Cambia formatOnSave a true.


✅ Paso 5: Cambiar el atajo a Alt + Shift + F para formatear (como en NetBeans)

🖱 Opción 1: Desde el menú

  1. Abre VS Code.
  2. Ve a Archivo > Preferencias > Métodos abreviados de teclado.

⌨ Opción 2: Usando atajo

Presiona Ctrl + K y luego Ctrl + S.

Luego:

  1. En la barra de búsqueda escribe: format document.
  2. Ubica la acción: Editor: Format Document.
  3. Haz clic en el lápiz ✎ y selecciona “Cambiar combinación de teclas”.
  4. Presiona: Alt + Shift + F y confirma.

¡Listo! Ahora puedes formatear tu código PHP como lo hacías en NetBeans.


✅ (Opcional) Personaliza el estilo de formato con phpfmt.ini

Para controlar cómo se acomoda el código, crea un archivo phpfmt.ini en tu proyecto o en tu carpeta personal con este contenido:

passes = ["PSR2KeywordsLowerCase", "PSR2LnAfterNamespace", "PSR2CurlyOpenNextLine"]
indent_with_space = true
psr1 = true
psr2 = true

Más opciones en: phpfmt tools (GitHub).


🎯 Resultado final

  • ✅ Código PHP se formatea automáticamente con Alt+Shift+F.
  • ✅ Autocompletado inteligente y validación en tiempo real.
  • ✅ Depuración de código con Xdebug.
  • ✅ Más rápido y moderno que NetBeans.

🗨 Conclusión

Visual Studio Code no solo reemplaza a NetBeans, ¡lo supera!

Ligero, potente, extensible y totalmente configurable, VS Code puede ser tu nuevo editor favorito para proyectos PHP en Linux Mint.

¿Te gustaría una plantilla base ya configurada para clonar desde GitHub? ¡Pídela y te la preparo!


#PHP #VisualStudioCode #LinuxMint #DevTips #NetBeansToVSCode #VSCodePHP #OpenSourceTools #DesarrolloWeb #CodeClean

Página 1 de 9

Creado con WordPress & Tema de Anders Norén