miércoles, 17 de noviembre de 2021

Dispositivo desconocido en una sony vaio ACPI\SNYA008\4&512D3B4&0

El problema es el de el titulo, esta cosa ACPI\SNYA008\4&512D3B4&0 no se sabe que es...

El driver esta en: 

https://www.sony.com/electronics/support/svs-series-svs1512-series/svs1512dcxb/downloads/W0007822?operating-system=windows_10_64bit

y es

Sony® Wireless State Device

 saludos...

viernes, 17 de mayo de 2019

Como guardar datos Json con cakephp 3.7

Si miras la documentación (https://book.cakephp.org/3.0/en/orm/saving-data.html) dice que hay que mapear el tipo de datos, etc....

Realmente no hay que hacer nada de eso, lo único que se debe hacer es crear el campo tipo json en MySql y hacer uso del bake para generar el modelo.... eso no es tema de esta entrada.

Básicamente cakephp lo resuelve todo...

Ahora, lo que si es importante es setear los datos a guardar, Suponga que tenemos un campo datos (tipo Json), y que dentro de ese json queremos guardar un campo llamado cantidad, bueno, debemos hacer algo así:

        $entidad->datos = [
            'datos' => [
                'cantidad' => $cantidad_solicitados
            ]
        ];

Ahora os muestro la forma incorrecta:

        $entidad->datos = ['cantidad' => $cantidad_solicitados];

y mucho menos usando json_encode ni string de json...

Eso es todo, saludos.





lunes, 1 de abril de 2019

La naturaleza...

La naturaleza es buena con las especies pero cruel con los individuos. Continuamente esta haciendo experimentos genéticos y unos cuantos resultan bastante atroces,  por decirlo suavemente.

martes, 19 de febrero de 2019

Como mostrar imagenes almacenadas en una base de datos en CakePhp 3.7

CakePhp Display image from database.

Esta es la solución definitiva.   Hay varias maneras de hacerlo:

Supongamos el siguiente escenario: Tenemos una base de datos en MySql 8.15 que tiene una tabla llamada fotos que tiene, entre otros campos, uno llamado foto_grd.

Corre por tu cuenta cargar registros correctamente.  Yo lo hice con Faker (un generador de datos de prueba). Creo que también puedes usar el MySql Workbench...

Por el método GET

Generamos el código usando bake, para fotos.

En fotosController:

    public function grande($id = null)
    {
        $foto = $this->Fotos->get($id);
        $response = $this->getResponse()->withStringBody(new Stream($foto->foto_grd))->withType('jpg');
        $this->viewBuilder()->setLayout(null);
        return $response;
    }


En el template fotos/view.ctp

       
           
           

Html->image('/fotos/grande/54');  ?>

       


Esto Tiene un problema, y es que entre otras cosas un usuario puede recorrer todas las fotos de la base de datos

La otra manera es mostrar la foto o renderizar, directamente en el tag

En este caso no requerimos del método public function grande($id = null) en el controlador

Asumimos que al template llegan los datos de la foto en un objeto @var \App\Model\Entity\Foto $foto
de modo que esté disponible algo así como $foto->foto_grd

En el template solo debes colocar la siguiente línea de código:



El método stream_get_contents es necesario para rescatar el recurso, si no lo colocas aparecerá algo así como:
Resource id #302

A mi me gusta más la función stream_get_contents, porque si usas $this->getResponse()->withStringBody(new Stream($foto->foto_grd))->withType('jpg');, requiere la librería: 

use Zend\Diactoros\Stream;

Saludos.

Entre más uso otros frameworks más me gusta CakePhp. :-)






  

martes, 12 de febrero de 2019

Dispositivo ACPI\CPL0002 *CPL0002 Dell Inspiron Mini 10v 1011

Después de trabajar mucho para identificar este hardware de una mini laptop dell inpiron con windows 7 32 bits encontré que se trata de un "COMPAL Embedded System Control"que no tengo idea que rayos es.

Lo cierto es que el driver lo encontré en lenovo, sip, en lenovo... me encanta cuando los americanos, los rusos, los alemanes, lenovo, dell, hp... todos usan componentes chinos... |-)

Driver: https://download.lenovo.com/UserFiles/Driver/en/Downloads%20and%20Drivers/B520e/Win7/ID17STW10WW5.exe
en esta pagina: https://support.lenovo.com/ve/es/downloads/ds024586

Saludos. Y ¡comenten coño!  que no les cuesta nada...

viernes, 25 de enero de 2019

Mysql no inicia despues de actualizar a la version 8.0.14

El problema es que actualicé MySQL desde la versión 8.0.13 a la 8.0.14 y luego de esto no inicia el servicio.

Algunas pistas de que encontraras aquí la solución son las siguientes:

En el archivo  .err de la carpeta C:\ProgramData\MySQL\MySQL Server 8.0\Data puede ver los errores de MySql

Si es muy grande lo puede eliminar y luego intentar iniciar el servicio y ver los errores recientes

[MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.

[ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine

[ERROR] [MY-010020] [Server] Data Dictionary initialization failed.

[ERROR] [MY-010119] [Server] Aborting

Lo primero siempre es hacer un respaldo de todas las bases de datos antes de hacer cualquier cambio. Recuerda que todo lo que puede fallar falla y en el peor momento, Morphy se especializa.

 Si no hiciste el perpaldo lo primero que tienes que hacer es hacer una copia de todos los archivos de la carpeta "C:\ProgramData\MySQL\MySQL Server 8.0\data" luego veremos como restaurar las bases de datos, ¡si tienes un respaldo eres todo un tío!

Luego de hacer la copia, cambiale el nombre a la carpeta Data por algo así como DataOriginal. Asegurate de tener los permisos necesarios.

Puede leer esta denotación: https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html

Ahora abre una línea de comandos como administrador y vete a la carpeta C:\Program Files\MySQL\MySQL Server 8.0\bin

Ejecuta lo siguiente:  mysqld --initialize-insecure --console

Luego de unos instantes que pueden ser largos dependiendo de hierro que 
tengas estaremos casi listos.

Mueve o copia la recién regenerada carpeta Data desde 
C:\Program Files\MySQL\MySQL Server 8.0\ hasta C:\ProgramData\MySQL\MySQL Server 8.0

Ahora intenta iniciar el servicio y cruza los dedos y aprieta el cuerpo. :-)

¿Inició? estas de suerte, Conectare y a restaurar las bases de datos perdidas.
Recuerda que ahora el roo no tiene clave.

Crea usuario, bases de datos, permisos, etc... y restaura.
 
Espero que te resulte.

Ahora, si no tenias respaldos lo que debes hacer es montar en otro equipo un 
servidor MySql con la versión anterior al desastre, reemplazar la carpeta Data 
con la que rescataste del MySql dañado, hacer los respaldos y migrar los datos 
o seguir el procedimiento que mas te convenga.

Saludos.






miércoles, 17 de octubre de 2018

Error composer SSL operation failed with code 1. OpenSSL Error message

Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 2 updates, 0 removals
  - Installing nikic/php-parser (v4.1.0): Downloading (failed)
Downloading (failed)
Downloading (failed)    Failed to download nikic/php-parser from dist: The "https://api.github.com/repos/nikic/PHP-Parser/zipball/d0230c5c77a7e3cfa69446febf340978540958c0" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
    Now trying to download from source
  - Installing nikic/php-parser (v4.1.0): Cloning d0230c5c77


  [RuntimeException]
  Failed to clone https://github.com/nikic/PHP-Parser.git via https, ssh protocols, aborting.



Así va mas o menos el error que me daba composer cuando trataba de ejecutar composer update.

La solución en mi caso fue fácil, me imagine que se trataba de un error de red o algo así, por lo que deshabilite firewall y al antivirus, el kaspersky (a mi juicio uno de los mejores), en eso caminó sin problemas... claro, esos fueron los últimos trancazos que di. :-)

Ahora para que composer y kaspersky coexistan basta con agregar el php.exe a la lista de aplicaciones seguras de kaspersky, eso es por settings\additional\threats and exclusions\specify trusted applicacion....