martes, 5 de agosto de 2025

Cambiar el puerto de la base de datos para Wordpress

 

Debido a que tengo instalado mysql en el puerto 3306 y a mariadb en el puerto 3308 en mi lap de trabajo, necesitaba usar una base de datos en mariadb pero por default viene configurado wordpress para resolver el 3306 pero necesito el 3308, por lo tanto no se podía conectar.


Solucion

Primero, buscamos la carpeta donde esta desplegado nuestro wordpress. Regularmente se encuentra en la carpeta htdocs de apache, o bien, public_html si tenemos un linux o un servicio de hosting.

Con un editor de texto abrimos el archivo wp-config.php y buscamos la siguiente línea:

define('DB_HOST','localhost');

y se agrega  dos puntos más el puerto  :TUPUERTO, entonces  cambiamos a:

define('DB_HOST','localhost:3308');

y guardamos.

Si recargamos la instalación, es decir, el sitio del wordpress, tendremos la conexión a la base de datos.


Saludos.




jueves, 4 de noviembre de 2021

Python números primos en un rango

Ejercicios básicos


Obtener números primos entre un rango sin funciones


a = 10 
b = 20 
cont = 0 

for i in range(a,b+1): 
 if i%2 == 0: 
   print(str(i)+" no es primo") 
 else: 
   for n in range(1,i+1): 
     if i % n == 0: 
       cont += 1 
   if cont > 2: 
     print(str(i)+" no es primo") 
   else: 
     print(str(i)+" es primo") 
   cont = 0


Saludos

viernes, 6 de agosto de 2021

Crear archivo Xlsx con lista despegable sin límite de opciones

Crear documentos xlsx de hojas de cálculo con PHP y la librería PhpSpreadsheet es sencillo.

Para ello necesitamos descargar PhpSpreadsheet a nuestro proyecto:


composer require phpoffice/phpspreadsheet



Ahora creamos un nuevo documento de php con el siguiente código:

<?php require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $plantilla = new Spreadsheet(); $sheet = $plantilla->getActiveSheet(); $sheet->setCellValue('A1', 'Hola PhpSpreedsheet !');
$catalogos = $plantilla->createSheet(); $catalogos->setTitle('Catalogos');

$dc_array = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
$column_array = array_chunk($dc_array, 1);
$catalogos->fromArray($column_array,NULL,'A2');
$validation = $sheet->getCell('B5')->getDataValidation(); $validation->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST);

$validation->setFormula1('Catalogos!A1:A100'); $validation->setAllowBlank(false); $validation->setShowDropDown(true); $validation->setShowInputMessage(true); $validation->setPromptTitle('Nota'); $validation->setPrompt('*Requerido'); $validation->setShowErrorMessage(true); $validation->setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_STOP); $validation->setErrorTitle('Opción no válida'); $validation->setError('Seleccione una opción');

$writer = new Xlsx($spreadsheet); $writer->save('paginalista.xlsx');

?>



Creamos la plantilla del documento
$plantilla = new Spreadsheet();

Obtenemos la hoja activa $sheet = $plantilla->getActiveSheet();

Colocamos un comentario $sheet->setCellValue('A1', 'Seleccione su mes preferido');
Creamos una nueva hoja a la que llamaremos Catalogos donde colocaremos nuestros datos
que usaremos posteriormente
$catalogos = $plantilla->createSheet(); $catalogos->setTitle('Catalogos');

Creamos el arreglo de los datos a visualizar y los agregamos a la hoja de Catalogos
$dc_array = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
$column_array = array_chunk($dc_array, 1);
$catalogos->fromArray($column_array,NULL,'A2');
Obtenemos la posición donde vamos a colocar el listado
$validation = $sheet->getCell('B5')->getDataValidation();

Indicamos el tipo de celda que nos permite usar los listados $validation->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST);

Colocamos el rango a utilizar en nuestra lista, el cual se encuentra en la hoja de Catalogos
$validation->setFormula1('Catalogos!A1:A100');

Asignamos valores para nuestro combo $validation->setAllowBlank(false); $validation->setShowDropDown(true); $validation->setShowInputMessage(true); $validation->setPromptTitle('Nota'); $validation->setPrompt('*Requerido'); $validation->setShowErrorMessage(true); $validation->setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_STOP); $validation->setErrorTitle('Opción no válida'); $validation->setError('Seleccione una opción');
Generamos nuestro documento
$writer = new Xlsx($plantilla); $writer->save('ms.xlsx');


ejecutamos nuestro php

Así obtenemos nuestro archivo, al abrirlo podemos observar lo siguiente:



y nuestro listado desplegado



y en la pestaña de Catalogos tenemos nuestro listado



En algunos casos cuando intentamos poner datos del listado directamente en

$validation->setFormula1('"Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo"');

podemos llegar a encontrar un límite de uso en la longitud de la fórmula.
Por eso, colocamos los datos en otra hoja y los obtenemos a través de la referencia:

Catalogos!A1:A100

Espero les ayude y dejen sus comentarios.
¡Éxito!

miércoles, 20 de enero de 2021

Cambiar password de root en mysql 8 con Windows

Hace meses realice un proyecto en una laptop pero un compañero no resguardo los datos del servidor de Mysql y solo teníamos el directorio data y algunos usuario y sus claves pero no los de root


Como deseábamos revisar si había otra información decidimos intentar de varias posibles claves pero ninguna funcionó.


Buscando en la red encontramos la siguiente página: https://docs.bitnami.com/installer/apps/edx/administration/change-reset-password/

El procedimiento es sencillo:

1. Detener el servicio de Mysql. Para detener el servicio de Mysql buscamos la herramienta de servicios de Windows, la abrimos y buscamos el servicio. 



Damos clic en detener el servicio.



2. Revisar la versión de Mysql. Para esto necesitamos abrir una consola o CMD.



Ingresamos a la carpeta donde esta instalado Mysql: cd C:\Program Files\MySQL\MySQL Server 8.0\bin



Ejecutamos el siguiente comando: mysqladmin.exe --version 




3. Cambiamos el password. Creamos un archivo llamado mysql-init.txt y colocamos lo siguiente: ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW PASSWORD';

Recuerda poner el nuevo password y guardar.



Inicializamos el servidor con el siguiente comando "PATHMYSQL\mysql\bin\mysqld.exe" --defaults-file="PATHCONFIG\mysql\my.ini" --init-file="\PATHFILE\mysql-init.txt" --console --lower_case_table_names=1, donde PATHMYSQL es la carpeta donde esta instalado Mysql, PATHCONFIG es la carpeta donde esta el archivo de configuración my.ini  y PATHFILE es donde guardamos nuestro archivo mysql-init.txt.




Después de unos minutos, detenemos la ejecución con CTRL+C



4. Reiniciamos el servicio de Mysql. Regresamos a  la herramienta de Servicios y le damos iniciar servicio.



Después de reiniciar ingrese a Mysql Workbrench y realice su conexión.



¡Felicidades! Una exitosa conexión =)





.





viernes, 1 de enero de 2021

Warning: Invalid argument supplied for foreach() in EasyAdminExtension.php symfony 5 easyadmin

 Al intentar agregar EasyAdmin a Symfony 5 se presento el siguiente error:


Warning: Invalid argument supplied for foreach() in EasyAdminExtension.php


para resolverlo hay que ingresar a app/src/DependencyInjection/EasyAdminExtension.php y agregamos un valor por default = array() a $configs.


....

 private function processConfigFiles(array $configs = array())

    {

.....


grabamos y limpiamos caché y listo.

Fácil.

domingo, 24 de mayo de 2020

Migrar / importar una Parallels Virtual Machine a VirtualBox

En ocasiones por cuestiones de configuración y recursos necesitamos importar una maquina virtual de Parallels en Mac osx a Windows/Linux con VirtualBox pero no existe una manera directa por lo cual tenemos que realizar algunos trucos.

Primero descargamos e instalamos VirtualBox en nuestro Windows / Linux de la página oficial: https://www.virtualbox.org/

Copiamos  el archivo windows.hdd{3454-fdgfg-43543-gfdgd}.hds de  nuestra pvm a migrar a la carpeta donde vamos a tener nuestra maquina virtual, por ejemplo:

D:/virtual/

o

/home/miusuario/virtual/

Abrimos VirtualBox y damos clic en Crear nueva maquina virtual

Nombre: miwindows
Carpeta de maquina: D:/virtual/
Tipo: Microsoft Windows
Versión: Windows 7 (32-bit)



Seleccionamos la cantidad de memoria RAM

Se recomienda mínimo 2048 MB (2GB)

Renombramos el archivo windows.hdd{3454-fdgfg-43543-gfdgd}.hds a miwindows.hdd, observe que el nombre que le pusimos es el que especificamos de la maquina virtual nueva y cambiamos la extensión de .hds a .hdd

Para Linux, 

mv windows.hdd{3454-fdgfg-43543-gfdgd}.hds miwindows.hdd


Seleccionamos : Usar un archivo  de disco duro virtual existente y damos clic en el icono de la carpeta.

Damos clic en Añadir / Agregar y seleccionamos nuestra imagen renombrada.
Damos clic en Seleccionar.


Damos clic en Crear


Esperamos un momento y damos clic en Iniciar

Sencillo, su maquina virtual está funcionando.







Agregar Bootstrap a un proyecto de Angular 8 / 9

Agregar Bootstrap a nuestro proyecto Angular es una tarea sencilla.

Desde la carpeta de nuestro proyecto ejecutamos:

npm install bootstrap --save

También es recomendable instalar Jquery

npm install jquery --save

Como algo opcional podemos instalar popper

npm install popper.js --save

Además de Font-awesome

npm install font-awesome 

Ahora configuramos la conexión con los estilos y librerías, para ello abrimos con un editor el archivo angular.json y agregamos lo siguiente:


"styles": [
"src/styles.scss"
"node_modules/bootstrap/dist/css/bootstrap.min.css",
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/bootstrap/dist/js/bootstrap.min.js"
]

Saludos