Archive for Internet

Acelerar conexiones via SMB

Desde hace varias versiones del sistema operativo es posible establecer conexiones de red con servidores Windows directamente desde el Finder, desafortunadamente siempre existen variables que pueden provocar todo tipo de inconvenientes durante la comunicación.

A veces son detalles en la configuración del algún servidor, a veces se trata de algún ajuste en la computadora que se quiere conectar, pero el resultado invariablemente es la frutración del usuario.

Resulta que en la versión 10.5 del sistema operativo (y tal vez desde antes) una de tantas variables que hace ruido al establecer una conexión con un servidor Windows está del lado de la Mac. Algunos servidores no entienden ciertos mensajes que la computadora maneja mientras se conecta con ellos, por lo que la comunicación resulta extremadamente lenta, tanto, que copiar unos pocos MegaBytes puede tardar horas.

Aunque es posible configurar los servidores para que ignoren esos mensajes generalmente es imposible, ya que no están al alcance de uno o simplemente las políticas del lugar impiden realizar cambios (más aun si todos los demás no tienen dificultades para conectarse). ¿Qué queda entonces?, decirle a la Mac que deje de usar esos mensajes.

El comando ‘mágico’ para que la comunicación entre un cliente Mac y un servidor Windows se agilice es:

sudo sysctl -w net.inet.tcp.delayed_ack=0

Una vez entrado el comando en la Terminal la comunicación con el servidor Windows cambia totalmente, a partir de ese momento copiar algunos GigaBytes entre computadoras tomará unos pocos minutos.

Desafortunadamente el ajuste anterior se perderá cuando se reinicie el equipo.

Comments

Uso de “Virtual Hosts” en Mac OS X 10.5

Cuando se desarrollan sitios web es práctica normal guardar todo el desarrollo en una carpeta, la cual puede ser accedida de distintas maneras usando el servidor web incluido en el sistema (Apache).

La ubicación por omisión puede ser un poco problemática para trabajar, ya que solo un usuario con privilegios de administrador puede hacer modificaciones ahí (aunque ese tipo de usuario es el primero que se crea cuando se instala el sistema); un punto a favor de esa carpeta es que para accederla a través del servidor web su dirección es corta: http://localhost/proyecto1

Pero a veces el usuario del equipo no necesariamente es administrador del mismo (y aunque lo sea, es una buena medida de seguridad trabajar como un usuario sin privilegios), por lo que hacer modificaciones a la carpeta por omisión del servidor web no es posible; en esos casos es necesario utilizar la carpeta “Sites” (o “Web”) de cada usuario para guardar el proyecto en desarrollo. La dirección para acceder a la carpeta es un poco más larga: http://localhost/~usuario/proyecto1

Existe una tercera opción todavía más corta y adecuada si, por alguna razón el sitio en desarrollo debe estar en un primer nivel, sin directorios intermedios; algo como: http://proyecto1

Para lograr algo así es necesario utilizar una opción del Apache llamada “Virtual Hosts“, lo que le permite al servidor web responder a distintos nombres (y por lo tanto hospedar distintos sitios) en una misma dirección. De esta manera la carpeta con el sitio en desarrollo puede estar en casi cualquier lugar del disco duro, siempre y cuando sea accesible por el usuario bajo el cual corre el servior web, para asegurar que así sea, es adecuado seguir trabajando en la carpeta “Sites” (o “Web”).

En el archivo de configuración del Apache ubicado en /etc/apache2/extras/httpd-vhosts.conf, está lo necesario para activar el hospedaje virtual:

NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/www/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log common"
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/www/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log common"
</VirtualHost>

Como el mismo texto del archivo indica, el primer bloque “VirtualHost” va a ser el comodín que el servidor usará para contestar todas las solicitudes que le lleguen, mientras que los subsecuentes serán las configuraciones que se utilicen según el nombre que se le asigne a cada una. Así por ejemplo con un proyecto almacenado en el directorio “Sites” la configuración quedará más o menos así (se han eliminado opciones por motivo del ejemplo, para más detalles hay que revisar el manual del Apache):

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "/Library/WebServer/Documents"
</VirtualHost>
<VirtualHost *:80>
    ServerName proyecto1.com
    DocumentRoot "/Users/usuario/Sites/proyecto1"
</VirtualHost>

Desafortunadamente eso no es todo, para que el servidor realmente pueda reponder a nuestras solicitudes para el nuevo nombre, son necesarias dos cosas: reiniciar al Apache y decirle a la computadora donde encontrar la dirección proyecto1.com.

Reiniciar el Apache se puede hacer de dos formas, la primera es apagando el “Web Sharing” en el panel “Sharing” en “System Preferences” y volviendo a activarlo unos instantes después. La segunda opción es mediante la Terminal, utilizando el comando sudo apachectl graceful (es necesario estar como administrador del sistema para poder ejecutar ese comando).

Indicacarle a la computadora dónde puede localizar al servidor proyecto1.com también es sencillo y, al igual que lo anterior, existen dos maneras de hacerlo: la fácil y la que aprueba Apple (también fácil, pero no tanto).

La manera fácil:

Usando nano en la Terminal o un programa como TextEdit, TextWrangler o BBEdit, es necesario modificar el archivo /etc/hosts y hacer que se parezca a algo como esto:

127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost

127.0.0.1 proyecto1.com

El último renglón es el cambio a efectuar, lo demás es el contenido original del archivo, el cual no debe ser modificado. Como es de esperarse es necesaria la clave de administrador para modificar este archivo.

La manera oficial:

Esta manera de agregarle al sistema direcciones ficticias es la que Apple aprueba y permite otras funcionalidades que no se logran únicamente con modificar el archivo /etc/hosts. Para este fin existe una utilierá de nombre dscl. Para ver la lista de direcciones existentes se usa el comando de la siguiente manera:

dscl localhost -list /Local/Default/Hosts

En un sistema sin alteraciones el comando no va a mostrar nada, para agregar la modificación que se desea el comando toma la forma:

sudo dscl localhost -create \
/Local/Default/Hosts/proyecto1.com \
IPAddress 127.0.0.1

Para verificar que la información quedó bien:

dscl localhost -read /Local/Default/Hosts/proyecto1.com
AppleMetaNodeLocation: /Local/Default
IPAddress: 127.0.0.1
RecordName: proyecto1.com
RecordType: dsRecTypeNative:hosts

El paso final:

Sea por la manera fácil o por la oficial, el último paso es limpiar la caché de direcciones del sistema en la Terminal:

dscacheutil -flushcache

Después de todo esto lo último que falta por hacer es apuntar el navegador a la dirección http://proyecto1.com y revisar que el sitio aparezca en la ventana del navegador.

Comments

Cámara espía de la computadora

Durante mucho tiempo las computadoras han podido conectarse a cámaras de diversos tipos, incluso controlarlas de algún modo para que puedan ser utilizadas como cámaras de seguridad o cosa semejante.

Desde hace algunas generaciones, las computadoras de Apple han incluido una cámara en la parte superior de la pantalla, lo que ha provocado que en algunas instalaciones donde consideran mucho su propia seguridad, éstas y otras computadoras les sea negado el acceso.

Pero ya que se tiene ese juguete incluido con la computadora, es posible utilizarlo para la seguridad de uno mismo. Una computadora que permanece mucho tiempo en un lugar puede utilizarse como cámara de seguridad, tomando fotos cada cierto tiempo y almacenándolas en algún lugar accesible desde otra ubicación. De esta manera se puede “echar un ojo” a la casa cuando uno anda fuera.

Con las portátiles el uso puede ser un poco diferente, pero con el mismo propósito. Se pueden hacer tomas periodicas y enviar las imágenes por correo o subirlas en algún servidor, de esta forma si el equipo se extravía o es robado, quien sea que lo utilice será captado por la cámara y así se podrá tener al menos una prueba de quién usó el equipo en algún momento. Con suerte y hasta se podría recuperar después de un tiempo.

Para la primera parte, la de tomar fotos sin dar mucha oportunidad de que alguien se de cuenta, las instrucciones se pueden encontrar en este sitio:

[HOWTO] iSightCapture Command Line Security Workaround

En este lugar se explica cómo hacer que la computadora haga las capturas periodicas de imágenes y un pequeño “truco” para disminuir la posibilidad de que quien utilice el equipo se de cuenta de ello.

En este otro sitio:

Snap and upload iSight pictures on wake from sleep

Agregan la posibilidad de subir las imágenes capturadas a algún servidor o enviarlas por correo. En este caso el evento de captura ocurre cada vez que la computadora es reactivada después de que ésta se haya dormido.

Ya sea como juego o realmente como cosa seria, las posibilidades de utilizar la cámara incorporada pueden resultar interesantes.

Comments

Videos de mayor calidad en YouTube

Desde hace un tiempo Google ha estado trabajando en la opción de aumentar la calidad de los videos que se publican en YouTube. Hasta el momento no aparece en las páginas ningún enlace que indique apenas comienzan a aparacer enlaces al pie de los videos que indican cuáles de ellos se encuentran disponibles en un formato de mayor calidad, sin embargo aun así es posible acceder a ellos agregando unas cuantas letras en el url del video.

Exiten dos opciones, el video en formato Flash (.flv), que es el original en el que se comprimieron todos los videos, y el H264 o MPEG4, que es de mayor calidad todavía y es el que puede ver el iPhone.

El formato Flash original comprime los videos a un tamaño de 320 x 240 pixeles y usa una resolución de audio de 22 KHz, mientras que la versión de mayor calidad comprime los videos a 448 x 336 pixeles y el audio lo maneja a 44.1 KHz; por supuesto el tamaño de los archivos es considerablemente mayor, por lo que hay que esperar todavía más para poderlos ver.

Para obtener los videos de mayor calidad en formato flv es necesario agregar lo siguiente al url del video:

&fmt=6

Por otro lado los videos comprimidos en formato H264 son de 480 x 320 pixeles y el audio se comprime con el formato AAC. Para obtener los video en este formato la adición deberá ser:

&fmt=18

Recuerda que no todos los videos están disponibles en todos los formatos, por lo que lo anterior podría no funcionar.

Comments