lunes, 5 de octubre de 2015

Windows 10

Recientemente actualice mi equipo, pase de tener Windows 7 a tener Windows 10, y aquí describo las cosas positivas y las cosas negativas que he podido encontrar en mi corto tiempo de usar este Sistema Operativo.

Cosas positivas:

Multiescritorio. Esta es una característica nueva en este sistema operativo, y ya se habían tardado en meterla al sistema, es una característica común en GNU Linux.

Barra de tareas multiescritorio. Esta característica en lo particular me gusto mucho porque al trabajar con muchos monitores es práctico tener la barra en todos ellos para poder acceder a las aplicaciones de una manera sencilla y rápida.

Aplicaciones de la Windows Store. Esto me parece muy bueno, y es algo en lo que viene trabajando mucho canonical con ubuntu, tener un sistema operativo tanto para PC como para dispositivos móviles, así podemos instalar aplicaciones de manera rápida y sencilla, directamente desde internet, sin tener que llenar nuestra casa con CD's.

Controladores de Hardware. Windows 10 ya trae la mayoría de los controladores de nuestra PC's o portátil por defecto, es decir, nos ahorra el trabajo de estar buscando estos por Internet (Aunque debe de existir uno que otro componente al que si debamos instalarle su controlador para windows 10).

Deshacer la instalación de Windows 10. Esta característica me parece fantástica, ya que si actualizaste tu versión de Windows 7/8 a 10 y tienes algún problema con el (no detecta tu hardware correctamente, no puedes iniciar alguna aplicación que previamente ya tenías instalada, etc...) con un clic te permite desinstalar la actualización y volver a tu Windows 7/8. Lo malo. Sólo te permite volver a tu versión anterior de Windows dentro de los 30 días posteriores a la actualización a Windows 10.

Cosas negativas:

Adobe Flash Player. Aunque un poco obsoleto existen sitios que siguen usando este programa para permitirte realizar grabaciones tanto de video como de audio y es aquí donde tengo problemas porque no he conseguido instalar una versión, de momento, que me deje grabar audio correctamente. Si no vas a usar este programa para hacer grabaciones la reproducción sobre Windows 10 va perfecta.

Controladores. Aunque en las cosas positivas escribí que muchos de los controladores los encuentra Windows 10 de manera automática, yo tuve que desinstalar mis controladores de Windows 7 para que Windows 10 hiciera el trabajo de instalar los suyos, y este es el punto malo, que Windows 10 no se encarga de desinstalar o avisarte de algún modo que cambies o borres los controladores anteriores.

Carga del sistema. En mi opinión y experiencia Windows 10 carga mucho más lento que Windows 7.

Modo Hibernar. Simplemente en Windows 10 no existe este modo (y si alguien sabe como activarlo le agradecería mucho me dijera como activarlo).



Recomendación. Desde mi punto de vista vale la pena darle una oportunidad a Windows 10, a fin de cuentas, si no te gusta, puedes volver a tu versión de Windows anterior.

martes, 29 de septiembre de 2015

Only variable references should be returned by reference on CodeIgniter 3.0

Esta mañana me tope con que varios de mis sitios mostraban el siguiente error:

A PHP Error was encountered
Severity: Notice
Message: Only variable references should be returned by reference
Filename: core/Common.php
Line Number: 257
Tenemos que realizar esta pequeña modificación al archivo Common.php para corregirlo:

Antes
return $_config[0] =& $config;
Después
$_config[0] =& $config; return $_config[0];

Y listo solucionamos el error, el problema es que en PHP cuando asignamos expresiones siempre se regresa el valor asignado, pero no la variable en sí, sino una copia de su valor y cuando se regresa una referencia a un valor temporal este no puede ser usado completamente.

jueves, 24 de septiembre de 2015

Facebook SDK returned an error: Cross-site request forgery validation failed. The “state” param from the URL and session do not match.

Hoy al estar haciendo pruebas con Facebook Login me tope con el siguiente error:

Facebook SDK returned an error: Cross-site request forgery validation failed. The “state” param from the URL and session do not match.

Y buscando en Google encontré una solución que me solucionó mi problema y fue esta:

Después de llamar a la función para obtener el enlace de la dirección para conectarnos a Facebook debemos escribir el siguiente código.

/** Función para obtener el enlace para conectarnos a Facebook **/
$uri=$helper->getLoginUrl($uri, $permissions);

/** Código para solventar el error **/
foreach ($_SESSION as $k=>$v) {
    if(strpos($k, "FBRLH_")!==FALSE) {
        if(!setcookie($k, $v)) {
        } else {
            $_COOKIE[$k]=$v;
        }
    }
}
Y en nuestra página de login-callback.php antes de cualquier otro código escribirmos el siguiente:

foreach ($_COOKIE as $k=>$v) {
    if(strpos($k, "FBRLH_")!==FALSE) {
        $_SESSION[$k]=$v;
    }
}
Por último no hay que olvidarnos del código de sesión

if(!session_id()) {
    session_start();
}
...
...
...
...
<?php session_write_close() ?>

miércoles, 23 de septiembre de 2015

CodeIgniter | Obtener automáticamente la base_url

Sólo debes reemplazar

$config['base_url'] = "http://misitio.com";

con las siguientes lineas:

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);

martes, 22 de septiembre de 2015

Limpiar un formulario con jQuery

Muchas veces después de enviar un formulario a través de AJAX con jQuery necesitamos "limpiar el formulario" y para lograrlo debemos escribir el siguiente código:

$('form')[0].reset();

lunes, 21 de septiembre de 2015

Evitar el envío de un form con jQuery

1. Usando el método preventDefault
$('#formulario').submit(function(event) {
    event.preventDefault();
});

2. Regresando el valor booleano 'false'
$('#formulario').submit(function() {
    return false;
});