Entradas

El modo pasivo de FTP en PHP

Antes de cualquier explicación debemos saber las diferencias entre el modo activo y el modo pasivo en FTP. Podemos decir, resumiendo mucho, en modo pasivo las conexiones son siempre abiertas por el pc cliente , mientras que en modo activo se abren por el que envía los datos, el servidor si se trata de bajar archivos o información al pc local, el cliente si se trata de subir archivos al servidor. Tendiendo lo anterior en cuenta en el modo activo se abre una conexión para datos desde el servidor a la maquina cliente, esto es, una conexión desde fuera hacia dentro; si la maquina cliente está protegida por un firewall, este filtra o bloquea la conexión entrante al serle un proceso desconocido. En modo pasivo es el cliente el que inicia ambas conexiones, de control y de datos, con lo cual el firewall no tiene ninguna conexión entrante que filtrar. Por este motivo la razón de que algunas funciones de PHP nos funcionen en un servidor u otro con el mismo código no depende de la versión inst...

Windows 10 Technical Preview actualiza solo archivos

Imagen
Existe una limitación a los usuarios que actualicen versiones Enterprise: If you’re running Windows 8.1 Enterprise, Windows 8 Enterprise, or Windows 7 Enterprise and your system language isn't English, Chinese Simplified, or Brazilian Portuguese, you can only keep your personal files when you upgrade. You won't be able to keep your apps or Windows settings. Esto no solo se aplica a estas versiones sino también a licencias por volumen de Windows 8.1 Profesional en idiomas que no sean los del paquete de instalación. La traducción del texto de Microsoft sería la siguiente: Si está ejecutando Windows 8.1 de Enterprise, Windows 8 Enterprise o Windows 7 Enterprise y el idioma del sistema no es el Inglés, chino simplificado, portugués o brasileño, sólo se puede mantener sus archivos personales cuando se actualiza. Usted no será capaz de mantener sus aplicaciones o la configuración de Windows. Espero que os sirva, los usuarios de versiones en español tendremos que esperar.

DateJS y jQuery UI Datepicker

Imagen
 La librería DateJS es una interfaz muy intuitiva para trabajar con fechas en JS, sobre todo internacionalizar las mismas y escribirlas en diferentes idiomas. Trabajando con ella me he dado cuenta que tal y como la descargamos es incompatible con la extensión de jQuery UI Datepicker produciendo el error Maximum call stack size exceeded error al llamar a la función toString que esta librería sobre escribe. Para corregirlo basta con editar el archivo date.js y reemplazar las apariciones de toString por print (es el nombre que escogí yo) salvo en la línea 40 donde aparece s.toString. Con estas modificaciones ya podremos trabajar con ambas características.

Waze vs Tom Tom

Hace pocos días comencé a utilizar Waze , una de las aplicaciones de tráfico basada en una comunidad de más de 25 millones de usuarios. Al venir de Tom Tom , el navegador GPS que siempre he utilizado, noto muchas diferencias, algunas para bien y otras no tanto. La peor desventaja que le veo a Waze es que todo es online, de ahí que su instalación solo ocupe 73 MB contra los 430 MB de Tom Tom Iberia. Al ser online el cálculo de rutas en zonas con poca cobertura es prácticamente imposible, aunque con GPRS suele calcularlas medianamente rápido. El consumo de datos de nuestra cuenta también se dispara, en un año Tom Tom ha consumido 8,8 MB mientras que WAZE en 3 semanas lleva descargados 76,7 MB. El roaming y otros gastos asociados a tarifas de las operadoras son otra pega aunque al ser gratis la aplicación puede que nos compense más que los 39,99 € que cuestan Tom Tom Iberia sin suscripción a tráfico ni radares. NOTA: al ser todo online tiene la ventaja de que no es necesario descargart...

Trabajar con Excel en SQL Server

Muchas veces necesitamos obtener datos desde un Excel e importarlos en una tabla de nuestra base de datos o sencillamente utilizarlos con alguna consulta, si este es tu caso este tutorial te puede ayudar a trabajar con archivos Excel como si fueran una base de datos y cada una de sus hojas como una tabla. Lo primero que tienes que tener instado en el servidor donde está SQL Server (no vale en la máquina remota donde haces las consultas) es el Office o en su defecto 2007 Office System Driver Data Connectivity Components (solo 32 bits) o Microsoft Access Database Engine 2010 Redistributable (versiones de 32 y 64 bits). Es muy muy importante tener esto instalado para evitar el siguiente error The OLE DB provider "Microsoft.ACE.OLEDB.12.0" has not been registered . Más importante aún es tener la versión correcta, si tu SQL Server es de 64 bits solo puedes instalar de 64 bits, si es de 32 bits lo mismo, en caso contrario tendrías el siguiente error OLE DB provider 'Micr...

Convertir UTF8 a LATIN1 en MySQL

Imaginemos que tenemos una base de datos con una tabla codificada en UTF8 y otra base de datos codificada en LATIN1, ambas tablas las queremos unir en una consulta y la latin1 es la principal ¿cómo sacar los datos codificados en UTF8 en formato legible con LATIN1? CONVERT(CAST(CONVERT(campo_tabla USING latin1) AS binary) USING utf8) Espero que les valga.

Funciones actualizadas en PHP 5.5

Imagen
En un post anterior vimos las nuevas funcionalidades que PHP 5.5 introduce , en este vamos a ver cambios que se han hecho en funciones ya existentes como por ejemplo la combinación de foreach y list, las mejoras en la función empty, el comportamiento de unpack y la eliminaciones de funciones previamente deprecadas. Combinando foreach con list Como desarrollador, una de las tareas comunes que veo de forma regular es el uso de loops en un conjunto de resultados. Dependiendo de las circunstancias, es posible que tenga que asignar un grupo de variables a valores de propiedades o valores de una matriz. Hasta este momento ha sido un proceso manual, pero en PHP 5.5 es posible asignar estos valores directamente utilizando la función list. Esto me permite recorrer el vector y desempacar matrices anidadas en variables en un bucle. Solo hay una limitación, no puedo utilizar la lista como un elemento clave. Quedaría algo como este foreach($row as list($var1, $var2)). Comprobar cualquier cosa ...