13 junio 2020

Cambiar el servicio de MySQL instalado con el parámetro --defaults-file

En Windows, para cambiar la ubicación del archivo de configuración my.ini cuando MySQL se ejecuta como servicio usando el parámetro --defaults-file, la opción rápida es recrear el servicio. 

Para ello, ejecutamos las siguientes instrucciónes:

1) Detener el servicio si actualmente se encuentra en ejecución

net stop MySQL

2) Eliminar el servicio usando el comando sc delete y el nombre del servicio

sc delete MySQL

3) Crear el nuevo servicio de la siguiente forma 

mysqld --install MySQL --local-service --defaults-file="C:\Data\MySQL\my.ini"

Donde:
  • mysqld es el archivo ejecutable ubicado en la carpeta bin de los archivos del servidor
  • --install es el parámetro que sirve para realizar la instalación del servicio
  • --local-service para que se utilice la cuenta de usuario correspondiente a "Local Service", y 
  • --defaults-file para indicar la ruta donde se encuentra nuestro archivo de configuración my.ini
 

01 abril 2020

Instalar PHP sobre IIS en Windows 10

Opción 1: Web Platform Installer


Si la extensión no se encuentra instalada en el Administrador de Internet Information Services (IIS), clic en la acción Obtener nuevos componentes de plataforma web. Esta acción abrirá el navegador en la siguiente dirección:

https://www.iis.net/downloads/microsoft/web-platform-installer

Descargar el archivo correspondiente a nuestra plataforma (x86 o x64) y ejecutar el archivo MSI para agregar la extensión al Administrador IIS

Luego de abrir el Instalador de plataforma web se agregan los componentes que se desean instalar. En este caso PHP 7.3 y presiona el botón Instalar

Opción 2: Instalacion Manual


Descargar el archivo desde la página:

https://windows.php.net/download

La versión del archivo ZIP que se descarga es la correspondiente a Non Thread Safe debido a que se utilizará PHP con el controlador FastCGI

Descomprimir el contenido del archivo ZIP a la carpeta destinada a los archivos de PHP, por ejemplo:


C:\PHP\


La ruta a esta carpeta se debe agregar a la variable Path en las variables de entorno de Windows

En el Administrador IIS, Asignaciones de controlador, clic en la acción Agregar asignación de módulo, con los siguientes parámetros y valores:

Ruta de acceso de solicitudes: *.php
Módulo: FastCgiModule
Ejecutable: C:\PHP\php-cgi.exe
Nombre: PHP_FastCGI

En esta misma ventana, clic el botón Restricciones de solicitudes para cambiar la opción seleccionada en la pestaña Asignación al valor Archivo o Carpeta

En el Administrador IIS, Documento predeterminado, agregar un documento con el valor index.php

En la carpeta C:\PHP\ copiar y renombrar el archivo php.ini-development o php.ini-production a php.ini

Crear la subcarpeta C:\PHP\temp y asignar permisos al grupo IIS_IUSRS y al usuario IUSR

En el Administrador IIS, Configuración de FastCGI, modificar los siguientes parámetros para PHP:
En la propiedad Supervisar cambios en el archivo, el valor debe ser C:\PHP\php.ini
En la propiedad Variables de entorno agregamos las variables

PHP_FCGI_MAX_REQUESTS con valor 200
PHPRC con valor C:\PHP\
Modificar el archivo INI para los siguientes parámetros:


error_log = C:\PHP\temp\PHP_FastCGI_errors.log
session.save_path = C:\PHP\temp\
upload_tmp_dir = C:\PHP\temp\
extension_dir = C:\PHP\ext\
open_basedir = C:\inetpub\wwwroot
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1
date.timezone = America/Guatemala

Opcional

Descargar PHP Manager for IIS, instalar archivo MSI y reiniciar el Servicio de publicación World Wide Web

Descargar la librería WinCache correspondiente a la version de PHP instalada desde:

https://sourceforge.net/projects/wincache/files/development/

Desempaquetar el archivo descargado y copiar archivo php_wincache.dll a la carpeta C:\PHP\ext\

Finalmente

Habilitar las extensiónes necesarias usando PHP Manager o directamente modificando el archivo INI

25 febrero 2020

Listar servicios activos en Windows

Para obtener una lista de los servicios en ejecución desde la línea de comandos de Windows se utiliza la instrucción:


net start


Si lo que queremos es saber si algún servicio se encuentra en ejecución, podemos hacerlo buscando un texto en el resultado de la instrucción anterior. Por ejemplo, si queremos saber si el servicio de MySQL se encuentra en el listado de servicios activos:


net start | find /i "mysql"


También, podemos hacerlo consultando el estado de un servicio específico por su nombre:


sc query mysql


El resultado para este último caso se muestra en la imagen


17 octubre 2019

ORA-39142: incompatible version number 5.1 in dump file

Cuando se intenta importar un archivo de datos generado con expdp de Oracle 18c XE a una base de datos de Oracle 11g XE

Para evitar esto, al momento de exportar los datos en 18c se debe especificar la versión de destino con el parametro version

Ejemplo:

expdp esquema/contraseña@XEPDB1 directory=backup_dir dumpfile=backup.dmp logfile=export.log version=11.2

10 noviembre 2015

Listar las tablas de una base de datos en SQL Server

Para obtener una lista de las tablas de la base de datos actual

SELECT NAME
FROM   sys.tables 

Copiar o respaldar permisos de una carpeta en Windows

Para respaldar los permisos NTFS de una carpeta y posteriormente restaurarlos o copiarlos a otra carpeta podemos usar el comando iCacls.

Respaldar:


c:\>icacls C:\MSSQL\DATA /save c:\temp\data.txt /t /c


El parámetro /t nos sirve para que la operación se realice en los archivos y subcarpetas de manera recursiva, y /c para que continúe si hay errores.

Restaurar:


c:\>icacls C:\Datos\MSSQL\ /restore c:\temp\data.txt


En este caso no se indica que la carpeta destino es DATA porque se especifica dentro del archivo de texto.

Tipo de dato de un campo en SQL Server

Para obtener el tipo de dato de un campo específico en SQL Server

SELECT column_name,
       data_type
FROM   information_schema.columns
WHERE  table_name = 'objetos'
       AND column_name 
       IN
 ( 'creacion', 'consulta' ) 

30 julio 2015

Problemas en la suspensión de portátiles DELL Latitude y Precision

Computadoras portátiles DELL Latitude y Precision pueden tener problemas de administración de energía debido al controlador de la lectora de tarjetas de memoria SD

Algunos de los problemas que se pueden presentar son:
  • El sistema no sale de suspensión
  • El sistema entra a suspensión aún si ha sido desactivada
  • El sistema se bloquea al entrar en suspensión
  • El sistema pierde la funcionalidad del teclado o ratón después de salir de la suspensión

La solución es instalar el controlador adecuado para dicho dispositivo según la página de DELL

Esta es la versión del controlador que instala Windows

...y esta es la versión luego de instalar la que descargamos

Otra alternativa es deshabilitar dicho dispositivo, si es que no se le utiliza.

Enlace para descarga: O2Micro SD Memory Card Reader Driver

Enlace al artículo en la página de DELL:

O2Micro SD Memory Card Reader may cause sleep or power management issues on Latitude and Precision mobile systems 

Reducir el tamaño de una particion en Windows 7

En Windows 7 no hace falta una herramienta de terceros para poder reducir el tamaño de una partición si disponemos de espacio libre en disco.

El proceso es simple:

Abrimos la herramienta de administración de discos ya sea desde el panel de control dentro de herramientas administrativas o haciendo clic derecho en "Mi PC" y elegimos la opción "Administrar".

Seleccionamos la partición que se desea reducir, haciendo clic derecho opción "Reducir volumen..."

Esta ventana nos mostrará la información correspondiente a dicha partición, como el tamaño en megabytes (MB) antes de la reducción, el espacio disponible para reducir, la cantidad de MB que deseamos reducir y por último el tamaño de la partición luego de la reducción.

Para todo esto debemos considerar que 1GB = 1024MB.

Luego de ingresar la cantidad deseada para su reducción presionamos el botón "Reducir", y listo ya tenemos espacio disponible para darle formato y utilizarlo.



04 febrero 2015

Microsoft Visual Studio Community 2013 (gratuito)

A finales del año pasado Microsoft puso a disposición de los desarrolladores una versión gratuita y completamente funcional de Visual Studio enfocada a estudiantes, aficionados, desarrolladores independientes, pequeños equipos de desarrollo y colaboradores de proyectos de código abierto.


Microsoft Visual Studio Community 2013 a diferencia de las ediciones Express de las versiones anteriores de Visual Studio, que también eran gratuitas, no es una versión recortada y limitada en el aspécto técnico. Esta edición gratuita como es de suponer tiene ciertas condiciones.

Puede usarse en los siguientes escenarios:
  • Ser un desarrollador independiente, incluído el uso comercial

  • En organizaciones pequeñas no empresariales podrán utilizar Visual Studio Community hasta 5 usuarios

  • En un entorno de aprendizaje, investigación académica o de contribución a un proyecto de código abierto

  • En entornos empresariales, es decir, aquellas empresas con más de 250 PCs o ingreso anual mayor a 1 millón de dólares (USD$) no se podrá usar Visual Studio Community si no es para aprendizaje, investigación académica o contribución a proyectos de código abierto.
Para los primeros dos escenarios cabe mencionar que no se permite el uso de esta herramienta si se está desarrollando una aplicación por subcontrato para un cliente empresarial.

Despues de haber instalado el producto es necesario registrarlo. Para ello tenemos la opción "Register Product" en el menú "Help". Si ya disponemos de una cuenta de Microsoft bastará iniciar sesión para finalizar el registro.

Página del producto: Microsoft Visual Studio Community 2013
Licencia: Términos de Licencia de Microsoft Visual Studio Community 2013


Sizer: para ajustar el tamaño de una ventana

Esta pequeña herramienta, que es gratuita por cierto, resulta muy útil cuando se desea redimensionar una ventana a un tamaño predefinido.


Su funcionamiento y configuración son sencillos:
  • Para configurar, al ejecutar la aplicación muestra el ícono en la barra de tareas, a la par del reloj, y desde el menú emergente de dicho ícono es posible acceder a la configuración para agregar otros tamaños. 

  • Para redimensionar una ventana bastará hacer click derecho en la esquina inferior derecha y se nos mostrarán los tamaños predefinidos.

  • Si optamos por redimensionar una ventana de manera manual, esta aplicación nos mostrará el tamaño actual de la ventana a la par del puntero del ratón.

  • También se puede cambiar el tamaño de algunas ventanas desde el menú contextual, donde aparece el submenú "Resize/reposition".
En la siguiente versión mejorará el funcionamiento en equipos con Windows de 64 bits, pero la versión actual (3.34) funciona bien en la mayoria de casos.

Enlace: Bian Apps

06 febrero 2014

Purgar / borrar todos los mensajes de un servidor POP3 en PHP

Debido a una configuración incorrecta de la cuenta de correo predeterminada en un dominio, dicho buzón se encontraba con más de 150 mil mensajes la mayoría siendo correo basura.

Borrarlos manualmente desde la interfaz webmail no era una opción, tampoco descargarlos al cliente de correo debido a que eso representaba además del tiempo más de 1GB de tráfico. De igual forma no era posible hacerlo con un shell script por las restricciones del proveedor del alojamiento.

Luego de cierto tiempo de búsqueda encontré una página donde tienen un ejemplo de cómo hacerlo en PHP.

El código se muestra abajo, y lo único que hay que tomar en consideración es que dicho código no está completo y esto es a propósito, haciendo falta asignar los valores para las variables para usuario, contraseña y servidor de correo.

<?php 
    // *** ASIGNAR VARIABLES ***

    $cmd = array();
    $cmd[]  = "USER $username\r\n";
    $cmd[]  = "PASS $password\r\n";
    $cmd[]  = "STAT\r\n";
    $cmd[]  = "QUIT\r\n";

    $port = 110;

    $fp  = fsockopen($server, $port);
    if(!$fp) {
        print("Error connecting to server $server");
    }
    else {
        $ret = fgets($fp, 1024);
        foreach($cmd as $ret) {
            fputs($fp,$ret);
            $line = fgets($fp, 1024);
            print($line."<br>");
            if($ret=="STAT\r\n") {
                $fields = explode(" ",$line);
                $num_mails = $fields[1];
                for($i=1;$i<=$num_mails;$i++) {
                    fputs($fp,"DELE $i\r\n");
                    $line = fgets($fp, 1024);
                }
            }
        }
    }
?>

El resultado sería como se ve a continuación:

Enlace al ejemplo original (en inglés):
Purge / delete all emails from a POP server in PHP

08 diciembre 2013

Instalar VB6 en Win7 (y II)

Recientemente me vi obligado a cambiar de computadora debido a que a la anterior le falló la tarjeta madre y no me fue posible encontrar una similar para remplazarla.

La nueva computadora traía ya el Windows 7 sin embargo la instalación del Visual Basic 6.0 no fue tan simple como la vez anterior.

En esta ocación el problema ocurrió con dos archivos OCX que son MSCOMCTL y MSCOMCT2 que corresponden a:
  • Controles comunes de Windows 6.0
    • ImageCombo, ImageList, ListView, ProgressBar, Slider, StatusBar, TabStrip, Toolbar, TreeView
  • Controles comunes de Windows 2 6.0
    • Animation, DTPicker, FlatScrollBar, MonthView, UpDown

El mensaje de error dentro del IDE de Visual Basic 6.0 al intentar cargar cualquiera de los componentes es el siguiente:

La biblioteca de objetos no está registrada

Esto aparece a pesar de haber instalado el Service Pack 6 de Visual Basic y de intentar desregistrar y registrar manualmente ambos componentes.

Luego de unos cuantos minutos me percaté de que el problema era ocasionado por las versiones. Para el archivo mscomctl.ocx las versiones eran las siguientes:
  • Previo a instalar VB6 con Windows 7 actualizado (6.1.9834)
  • Después de haber instalado VB6 (6.1.9782)
  • Después de instalar el Service Pack 6 (6.0.8177) 
El procedimiento que me funcionó tras varias pruebas es el siguiente:
  1. Realizar una copia de seguridad de la version de ambos archivos que se encontraban en el sistema operativo.
  2. Desregistrar ambos archivos con la utilidad RegSvr32
  3. Eliminar ambos archivos
  4. Instalar Visual Basic 6.0
  5. Instalar el Service Pack 6
  6. Desregistrar los archivos copiados por la instalación
  7. Copiar las versiones previamente respaldadas
  8. Registrar manualmente con la utilidad RegSvr32
Procedimiento alternativo:
  • Desde la línea de comandos con privilegios elevados, en la carpeta del sistema, debemos registrar el archivo (msdatsrc.tlb) que corresponde a Microsoft Data Source Interfaces for ActiveX :
    
    regtlib msdatsrc.tlb

Enlace al artículo anterior:
Instalar Visual Basic 6.0 en Windows 7

NOTA: parece ser que una de las tantas actualizaciones de Windows ha roto la compatibilidad entre las versiones de estos componentes. También hay que considerar que posterior al Service Pack 6 de Visual Basic hay una actualización de seguridad.

MySQL ODBC Authentication Protocol Refused

En las nuevas versiones del conector ODBC para MySQL nos podemos topar con un mensaje de error como el siguiente:

Connection using old (pre-4.1.1) authentication protocol refused

Lo que nos está indicando es que en el servidor al que intentamos conectarnos se encuentra configurado el parámetro OLD_PASSWORDS o podríamos estar intentando conectarnos a un servidor MySQL anterior a la versión 4.1 en la cual se cambió el protocolo de autenticación.

Si tenemos acceso a la configuración del servidor MySQL lo ideal sería actualizarlo a una versión reciente o desactivar el parámetro OLD_PASSWORDS si fuese MySQL 4.1 o posterior.

La otra opción que tenemos es utilizar una versión previa del conector ODBC. En mi caso la versión 5.1.13 que se puede descargar del sitio de MySQL presentó el mismo problema, pero por suerte tenía guardada la versión 5.1.8 que me saco de apuros.

Scripts grandes en Microsoft SQL Server Management Studio

Cuando intentamos ejecutar un Script contenido en un archivo demasiado grande, el SQL Server Management Studio no lo permitirá y mostrará un mensaje de error indicandonos que se ha producido una excepción de tipo "Out of Memory".


Esto ocurrirá incluso si la consulta se ejecuta en modo SQLCMD.


En este caso deberemos recurrir a la utilidad SQLCMD desde la línea de comandos. Con la siguiente sintaxis:

SQLCMD -S [servidor] -d [base de datos] -E -i [ruta al archivo] 

Por ejemplo:  

SQLCMD -S EQUIPO\SQLExpress -d Documentos -E -i C:\Docs\Data.sql

 

21 febrero 2012

Aplicaciones: Launchy

Esta pequeña y muy útil aplicación evita la tediosa tarea de navegar por el menú de inicio para abrir otras aplicaciones.
Hasta ahora la utilizo tanto en el viejo pero confiable Windows Xp y en el Windows 7 sin ningún problema. Además de ser muy estable tiene una interfaz minimalista, y como si eso fuera poco es Open Source.

Enlace: Launchy.net

10 mayo 2011

Desactivar actualizaciones de Flash Player

Pareciera ser que las actualizaciones de este complemento se han vuelto más frecuentes de lo que solían ser. Además, se han vuelto molestas, pues a diferencia de lo que se acostumbra, el aviso de actualización no aparece al momento de hacer uso de la aplicación sino hasta haber reiniciado el equipo, momento en el cual aparece en primer plano la ya conocida ventanita.


En este caso hay una forma de desactivar las actualizaciones automáticas. No es una manera fácil e intuitiva de hacerlo, pero al menos existe.

Para ello se debe visitar la siguiente dirección:
http://www.macromedia.co.../settings_manager05.html


Luego debemos desactivar la opción "Notify me when an update to Adobe Flash Player is available."

Si no se quiere desactivar es posible cambiar la frecuencia con que se desea comprobar las actualizaciones.

08 noviembre 2010

Exportar mensajes de IncrediMail 2

Lo que los felices usuarios de IncrediMail no descubren hasta que es demasiado tarde, es que este programita no permite exportar mensajes de correo.

Para muestra de la filosofía de IncrediMail podemos ver lo que dice en su Help Center.



Q: How do I export email messages from IncrediMail to another email client?

A:
Similar to other email clients, exporting email messages from IncrediMail is not possible.

Cabe destacar que de acuerdo a esa afirmación, los demás clientes de correo como Outlook, Thunderbird, etc. no permiten la exportación; lo cual como todos sabemos es incorrecto.

En la red se encuentran varios programas pero lamentablemente la mayoría que no son de pago trabajan sobre el antiguo formato de base de datos de IncrediMail. Sin embargo, hasta ahora el único programa que he encontrado funcional para extraer los mensajes de la base de datos en formato propietario de IncrediMail 2 es:



Este software se describe a sí mismo de manera bastante concisa y simple:
"Reynardware Incredimail converter will export your Incredimail messages to a .eml format."
Para convertir el contenido completo basta seleccionar la carpeta "Message Store" y la carpeta "Attachments" correspondientes.

El programa creará una carpeta en el origen (carpeta Message Store) para cada base de datos exportada. Cada carpeta contendrá tantos archivos .eml como mensajes se hayan exportado.

Una buena práctica sería realizar una copia de la identidad que se desea exportar y desde esa copia realizar la conversión.

URL del proyecto: incredimail-converter-reynardware


Adicionalmente podemos mencionar que...

1) Con relación a este "cliente de correo" habría que profundizar en lo relativo a la privacidad ya que como se sabe envía información "anónima" a sus servidores, según el autor únicamente con propósitos estadísticos.

2) También se debe tomar en cuenta que para uso profesional o formal resulta molesto recibir un mensaje de correo que pareciera haber sido adornado por un niño.

3) Adicionalmente, hay que prestar atención al hecho de que al final de cada mensaje aparece publicidad muy al estilo de los servicios de correo gratuito, como Hotmail, Yahoo, etc.

28 septiembre 2010

MySQL ODBC de 32 bits en Win7 de 64 bits

Actualización: en la versión Connector/ODBC 5.1.8 32-bit ya no es necesario registrar manualmente el controlador en Windows 7 de 64 bits, dado que el paquete de instalación ahora se registra correctamente.
Algunas veces, los cambios no son tan simples como quisieramos pensar...

Tomemos por ejemplo al usuario que adquiere un equipo nuevo de 64 bits y con él el novedoso y "muy seguro" Windows 7. Hasta acá todo bien, pues la mayoría de aplicaciones de 32 bits se ejecutarán de manera transparente gracias al emulador de Windows para aplicaciones de 32 bits.

Sin embargo, algunos programitas requieren un poco más de esfuerzo, por ejemplo, el Connector ODBC de MySQL. Ya que el programa de instalación de 32 bits, sea este MSI o EXE no permitirá su instalación.

¿Por qué es necesario instalar MyODBC 32-bit? simplemente porque el desarrollo interno no se mueve al mismo ritmo que el resto de la industria de software, y muchas son las aplicaciones al rededor del mundo que se desarrollaron en herramientas como VB6 (y dado que aun funcionan, no hay necesidad inmediata de cambiarlas, o al menos así piensa la mayoría de empresas).

En el Windows de 64 bits tenemos dos carpetas adicionales, que son:

X:\Program Files (x86)
X.\Windows\SysWOW64


La conocida carpeta System32 es utilizada ahora para las aplicaciones de 64 bits, mientras que la carpeta para las aplicaciones de 32 bits pasa a ser SysWOW64.

Pasos para instalar el ODBC de MySQL en Win7 64-bit

1) Obtener del sitio de descargas de MySQL el ODBC no instalable (es decir, en archivo ZIP)

mysql-connector-odbc-noinstall-5.1.7-win32.zip

2) Desempaquetar el contenido del archivo descargado

3) Modificar el archivo "Install.bat", agregando la ruta a SysWOW64 en las partes resaltadas.

SET installdir=none
IF EXIST %windir%\system\nul SET installdir=%windir%\system
IF EXIST %windir%\system32\nul SET installdir=%windir%\system32
IF EXIST %windir%\SysWOW64\nul SET installdir=%windir%\SysWOW64
IF %installdir%==none GOTO :doError5

ECHO Registering driver
C:\Windows\SysWOW64\myodbc-installer -d -a -n "MySQL ODBC 5.1 Driver" -t "DRIVER=myodbc5.dll;SETUP=myodbc5S.dll"

4) Abrir el símbolo del sistema (consola) como administrador (clic derecho, opción "Ejecutar como Administrador")

5) Ejecutar el archivo "Install.bat".

Cabe mencionar, que para ver los orígenes de datos de 32 bits tendremos que recurrir al archivo "odbcad32.exe" que se encuentra en la carpeta SysWOW64.

12 septiembre 2010

Fondos de pantalla de Smashing Magazine

A pesar de que la interné está repleta de este tipo de cosas, a veces parece bastante complicado encontrar un fondo de pantalla decente.

En ocasiones suelo buscar en el archivo de "Photo of the day" de la página de National Geographic, pero para variar, también es una buena opción la sección Wallpapers de la página de Smashing Magazine. Claro, acá, en este sitio también hay una gran cantidad de recursos para diseñadores, pero algo que lo disgingue es el hecho de que se publican fondos de pantalla a medida que cambia el mes y que la imagen si así lo deseamos puede tener impresos los días a modo de calendario.
URL: Smashing Magazine / Wallpapers