Al igual que en los upgrade de OS anteriores, luego de hacer upgrade a MacOS Catalina es necesario volver a configurar Apache para que los sites locales vuelvan a funcionar.

Los pasos a ejecutar son los siguientes:

Habilitar comandos y Apache

  1. Abrir Terminal
  2. Cambiar a root para ejecutar comandos sin restricción: sudo su –
  3. Iniciar Apache: apachectl start 
  4. En navegador probar que aparece el texto “It Works!” al accesar a: http://localhost

 

Activar PHP

  1. Abrir Terminal e ir a: cd /etc/apache2/
  2. Guarda copia de seguridad de la configuración: cp httpd.conf httpd.conf.Catalina
  3. Editar el archivo: sudo nano httpd.conf
  4. Ctrl+W y buscar: “php7”
  5. Borrar el símbolo “#”de esta línea:
    • #LoadModule php7_module libexec/apache2/libphp7.so
  6. Ctrl+O para grabar
  7. Ctrl+X para salir
  8. En Terminal ejecutar: sudo apachectl restart

 

Activar Sites Locales

  1. En Terminal ejecutar: sudo nano /etc/apache2/httpd.conf
  2. Ctrl+W y buscar “Library
  3. Reemplazar estas 2 líneas:

DocumentRoot “/Library/WebServer/Documents”
<Directory “/Library/WebServer/Documents”>

Con estas líneas (usando el nombre de usuario respectivo):
DocumentRoot “/Users/charlie/Sites”
<Directory “/Users/charlie/Sites”>

  1. Ctrl+O para grabar
  2. Ctrl+X para salir
  3. En Terminal ejecutar:  sudo apachectl restart

 

Y para accesar a los sites locales:

http://localhost/MyLocalSite/default.php

Hace unos días me di cuenta que a uno de mis AirPods se le estaba agotando la batería mucho más rápido que al otro: mientras el AirPod izquierdo tenía más de 80% de carga, el derecho estaba en menos de 10%. Normalmente debería requerir 1 semana para volver a cargarlos. Primero pensé que quizás no lo había colocado correctamente en el estuche de carga pero el problema siguió ocurriendo, y tras unos beeps de alerta el AirPod derecho dejaba de funcionar en menos de 1 hora.

IMG_9244b

Investigando un poco encontré esta solución que funcionó aunque no explican porqué ocurre: para corregir ese bug se necesita volver a emparejar los AirPods con el iPhone siguiendo estos pasos:

  1. Insertar los AirPods en su estuche de carga y dejar la tapa abierta.
  2. Mantener presionado el botón posterior del estuche por al menos 15 segundos hasta que la luz naranja parpadee.
  3. Acercar y abrir el estuche de los AirPods cerca al iPhone para volver a emparejar.

Si además emparejabas tus AirPods con tu Mac, será necesario que elimines la conexión (ir a System Preferences – Bluetooth) y vuelvas a emparejarlos con la Mac.

 

Lo normal es que ambos AirPods se descarguen de forma uniforme:

IMG_9244c

Después del upgrade a iOS 11 y iTunes 12.7 me di cuenta que en mi iPhone ya no tenía mis ringtones personalizados. Pensé que conectando mi iPhone a la MacBook iba a poder sincronizarlos pero la sección Tones del iTunes me aparece vacía.

Para volver a instalar tus ringtones personalizados en el iPhone hay que hacer lo siguiente:

  1. Conectar el iPhone a iTunes
  2. Abrir Finder y entrar a la carpeta Tones de iTunes (Music – iTunes – iTunes Media – Tones) o en la carpeta Ringtones de iTunes (Music -iTunes – iTunesMedia – Ringtones)
  3. En iTunes, ir a la sección Tones (que aparece vacía)
  4. Arrastrar los archivos ringtones de las carpetas Tones o Ringtones desde Finder hacia la sección Tones de iTunes
  5. Una vez que los ringtones se muestran en iTunes, dar clic en Sincronizar
  6. Ir a iPhone – Settings – Sounds – Ringtone y ya están disponibles nuevamente los ringtones personalizados

 Screen Shot 2017-11-02 at 11.48.04 AM.png

Luego de hacer upgrade a MacOS High Sierra, cuando intenté accesar a alguno de mis sites locales PHP (http://localhost/~charlieflores/MyLocalSite/) me aparecía el mensaje que la ruta no existe:

Not Found
The requested URL /~charlieflores/MyLocalSite/default.php was not found on this server.

Probé con diferentes URL pero mismo error.
Al final esta es la solución que seguí para que vuelvan a funcionar mis sites locales:

Activar PHP 7

  1. Abrir Terminal y ejecutar sudo nano /etc/apache2/httpd.conf
  2. Ctrl+W y buscar: “php”
  3. Borrar el símbolo “#”de esta línea:
    • #LoadModule php7_module libexec/apache2/libphp7.so
  4. Ctrl+O para grabar
  5. Ctrl+X para salir
  6. En Terminal ejecutar: sudo apachectl restart

 

Activar Sites Locales

  1. En Terminal ejecutar: sudo nano /etc/apache2/httpd.conf
  2. Ctrl+W y buscar “Library
  3. Reemplazar estas 2 líneas:

DocumentRoot “/Library/WebServer/Documents”
<Directory “/Library/WebServer/Documents”>

Con estas líneas (usando el nombre de usuario respectivo):
DocumentRoot “/Users/charlieflores/Sites”
<Directory “/Users/charlieflores/Sites”>

  1. Ctrl+O para grabar
  2. Ctrl+X para salir
  3. En Terminal ejecutar:  sudo apachectl restart

 

Finalmente, para accesar a los sites locales hay que cambiar parte de la ruta:

Antes:
http://localhost/~charlieflores/MyLocalSite/default.php

Ahora:
http://localhost/MyLocalSite/default.php

 

A propósito del ransomware que ha afectado muchos computadores en los últimos días, las buenas prácticas consideran:

  1. Mantener actualizado tu sistemas operativo
  2. Instalar un antivirus y mantenerlo actualizado
  3. No abrir archivos ni enlaces dudosos

La tercera práctica es la principal causa de infección de virus y lamentablemente es la más subjetiva porque si nos llega un correo o mensaje de un contacto cercano vamos a confiar y abrir el archivo adjunto o el link compartido, y nuestro computador termina infectado.

Particularmente considero que el mejor antivirus es mantener una copia de tus archivos importantes en algún almacenamiento diferente al computador. Tenemos diferentes opciones dependiendo de cuánta información necesitamos guardar:

  • Memoria USB (normalmente desde 8GB hasta 256GB)
  • Disco duro externo (desde 1TB)
  • Almacenamiento en la nube: Dropbox, Google Drive, iCloud, OneDrive, MediaFire, OwnCloud. Normalmente ofrecen desde 5GB gratuitos, pero se puede pagar por mayor almacenamiento.

Bonus: usar más de 1 opción.

Estas recomendaciones de copia de seguridad te salvarán la vida para cualquier tipo de desastre como el robo o extravío de tu computador, avería del disco duro, o simplemente el borrado “involuntario” de información por uno mismo.

Hace unos días al usar una app web php que tengo alojada en un servidor gratuito, me empezó a aparecer el siguiente mensaje en las páginas que usan conexión a base de datos:

WARNING: Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

Revisando este warning, se debe a que el servidor ha migrado a la versión PHP 5.5 donde la extensión mysql es considerada obsoleta (aunque aún funciona) por lo que recomiendan usar la extensión mysqli o PDO.

Aunque existe la alternativa de desactivar este warning, a la larga vas a necesitar cambiar el código porque la extensión mysql dejará de funcionar, así que es mejor atacar la causa raíz y cambiar el código de una vez.

En resumen, estos son los cambios en código php que se requieren para cambiar a la extensión mysqli:

 

ANTES: (php <5.5)

$dbconn = mysql_connect($bdserver, $bduser, $bdpwd)

or die(‘No se pudo conectar: ‘ . mysql_error());

mysql_select_db($bdname) or die(‘No se pudo seleccionar la base de datos’);

AHORA: (php 5.5.x)

$dbconn = mysqli_connect($bdserver, $bduser, $bdpwd)

or die(‘No se pudo conectar: ‘ . mysqli_error());

mysqli_select_db($dbconn, $bdname) or die(‘No se pudo seleccionar la base de datos’);

 

ANTES: (php <5.5)

$result = mysqli_query($query) or die(‘Consulta fallida: ‘ . mysqli_error());

AHORA: (php 5.5.x)

$result = mysqli_query($dbconn, $query) or die(‘Consulta fallida: ‘ . mysqli_error());

 

ANTES: (php <5.5)

#$totalpedido = mysql_result($result, 0, “total”);

AHORA: (php 5.5.x)

function mysqli_result($res, $row, $field=0) {

$res->data_seek($row);

$datarow = $res->fetch_array();

return $datarow[$field];

}

 

$totalpedido = mysqli_result($result, 0, “total”);

 

Para sumar 20 minutos a una celda (A3) que representa hora:minutos usar la siguiente fórmula:
                = A3 + 20 / 1440

                NOTA: 1440 = 24 * 60 (1 día = 24 horas * 60 minutos)

CALCULO DE TIEMPO EXTRA:
Sea:
A = Hora de Ingreso
B = Hora de Salida
El total de horas entre Ingreso y Salida es: B2-A2

Entonces, si deseas calcular el tiempo extra (se trabaja 8 horas + 1 hora almuerzo = (8+1)*60 = 540 minutos) el cálculo de horas extras sería:

                = (B2-A2) – 540 / 1440

                H.Ing     H.Sal      H.Extra
                09:00     18:25     00:25

CASO HORA NEGATIVA:
En caso la diferencia sea menor a 9 horas, el cálculo de Hora Extra sería negativo y se muestra de esta forma:

                H.Ing     H.Sal      H.Extra
                09:10     18:00     ###############

Para corregirlo, se debe cambiar la siguiente configuración en Excel:
Archivo – Opciones – Avanzadas – Calcular – marcar “Usar sistema de fechas 1904”

Y ahora el cálculo se muestra así:

                H.Ing     H.Sal      H.Extra
                09:10     18:00     -00:10