miércoles, 18 de mayo de 2011

Discurso final de Al Pacino - Perfume de mujer

Hay un montón de pasajes de películas que nos quedan grabados. A veces por la popularidad que adquiere (recuerdo la escena de Kate Winslet y Leonardo Dicaprio en la proa del Titanic), a veces por las etapas de la vida en que las vemos y muchas otras porque son discursos o diálogos que tienen un gran contenido. Podría armarse un post con esos pasajes, pero queda para otra vez.

Hay un discurso, que de chico cuando vi la película me marcó. Por su contenido, por la fuerza que tiene al hablar Al Pacino, por la injusticia que implicaba lo que estaba sucediendo... y porque aún ciego, viejo y mal hablado, frente a un gran público, transmitió y contagió una gran cantidad de valores. Acá va entonces, Al Pacino en Perfume de Mujer...

domingo, 1 de mayo de 2011

11 aplicaciones que no pueden faltar en mi Mac

Mi "equipo" de aplicaciones que hacen más sencilla mi vida en el día a día.

1. Office 2011


La Suite de Microsoft para Mac. Es prácticamente igual a la que corre en entornos Windows, con las ventajas y desventajas que ello tiene. Cambia la interfaz de usuario ligeramente, pero hace que sea más amigable que las otras versiones.





Link: Office 2011 Mac

2. iCal con Plugin Calendar desde Mac App Store


Un calendario sencillo de usar, rápido, amigable que hace lo que tiene que hacer y nada más. Me organiza la vida, sobre todo si contamos con Iphone que sincronice con él. El plugin Calendar del Mac App Store, hace que se vea en la barra de tareas y se pueda acceder directamente. Para mi, una aplicación sencilla pero imprescindible de usar.

Link: iCal

3. Camtasia for Mac


Este es para mi el mejor programa para grabar la pantalla y editarlo. Se pueden hacer animaciones, zoom in, zoom out, etc. Es rápido de aprender y bastante intuitivo. Además de que las demos armadas con este programa quedan realmente muy bien.



Link: Camtasia

4. Navicat for Oracle/MySql/MsSql/Postgre


Son clientes para distintos tipos de motores de base de datos. Son sencillos, estables y gratis desde el Mac App Store. Estaría bueno que hubiera uno (aunque pago) que concentrara todos los tipos de motores. Pero bueno, es gratis y si queremos conectarnos a diferentes motores, tendremos que tener diferentes programas al menos por ahora.



Link: Navicat

5. Twitter for Mac


Es el mejor cliente de Twitter que conozco. He probado otros, pero indefectiblemente caía en volver a la página web. Este cliente es ameno y sencillo. También los hay para Iphone y para Ipad, por lo que se mantiene el mismo esquema que en los otros dispositivos para leer/escribir en twitter.



Link: Twitter ; AppStore Mac Twitter

6. Plex


Un buen media center, al que se le pueden agregar plugins (ya desarrollados o desarrollar uno nuevo) para poder, por ejemplo, ver video streaming por internet. Tiene todas las ventajas de un Media Center, organiza el multimedia, búsquedas, etc.





Link: Plex Media Center

7. Parallels


Es para mac, el mejor programa de virtualización que conozco. Mejora notoriamente VirtualBox y VMWare. Tiene el modo convencional de virtualización (con una ventana que corra el sistema opererativo huésped) o un modo "coherence" que se integra a la interfaz del sistema operativo host. De esa forma da la sensación de que todos los programa se ejecutan dentro del entorno del host. Es rápido, e imprescindible para los que quieran jugar, ya que va sobre la tarjeta de video física y permite excelentes performances.





Link: Parallels desktop

8. Things


Bajo la filosofía de "Get Things Done", es uno de los mejores gestores de tareas que conozco. Permite regular tareas, trabajos, roles, personas, tiempos, etc. Hay versiones del programa para Ipad y Iphone también.



Link: Things for Mac

9. Transmission


Cliente torrent liviano y sencillo de usar. Sin demasiadas opciones, pero que puede ser una ventaja a la hora de comenzar a usar torrents.



Link: Transmission

10. Air Video Server


Es un servidor de video ágil y sencillo de configurar. Simplemente debemos setearle un puerto y una carpeta de donde tomar el contenido multimedia y eso es todo. Abrimos un cliente (otra pc, o simplemente un iPad o iPhone, algo que no está nada mal cuando queremos mirar alguna película acostado :-P), ponemos la ubicación del servidor el puerto y elegimos la película a ver. Para mi, fundamental sobre todo para ver cosas en el Ipad. Permite también conversiones on line de los formatos de video durante la ejecución del contenido mismo.





Link: Air Video Server ; Air Video Ipad Client

11. 1Password


Administrador de contraseñas pequeño, liviano y fácil de usar. Existen diversas versiones de la aplicación, para iPad y iPhone inclusive. Es una buena alternativa para quienes tenemos varias contraseñas que recordar, y nunca las recordamos de primera.



Link: 1Password

sábado, 2 de abril de 2011

Eliminar programas de arranque de Mac OS - Snow Leopard

Tengo instalado en mi Mac el Media Center Plex, con el que estoy mas que contento. Sin embargo, no siempre que prendo la pc es para ver una película o una serie y me resulta bastante molesto esperar a que el Plex Media Server termine de cargar, etc. Sumado a que se come parte de la ram en cosas que no voy a usar. Comencé a buscar y no daba en la tecla de cómo sacarlo del arranque, hasta que al final lo logré. Dejo un mini tutorial de todos los lugares donde se pueden poner aplicaciones, scripts o incluso configuraciones, para que arranquen cuando se enciende el Mac.

1. Aplicaciones de arranque de usuario


Estas son las más comunes, y las que todo internet indica que hay que verificar en primera instancia. Se encuentran en Preferencias del Sistema / Cuentas / Arranque. La siguiente figura lo muestra mejor.
Preferencias del sistema - cuentas
Preferencias del sistema - cuentas

En el mismo se pueden agregar nuevas aplicaciones que deseamos que se inicien con el arranque del sistema o también eliminar las que ya tenemos si no nos interesa que sigan estando. Hasta aquí venía todo bien, pero mi Plex Media Server no estaba en la lista...

2. Launch Agents y Launch Daemons


Acá hay mas gente de esta que se inicializa al arranque... Los Launch Agents y Launch Daemons son dos tipos diferentes de servicios que utiliza mac desde hace varias ediciones de su sistema operativo. Se encuentran bajo archivos con extensiones .plist, que si los abrimos podemos ver a qué binario/script/archivo en general apunta, los argumentos que se pasan y alguna que otra opción más, dependiendo del caso. El funcionamiento es similar a lo que en linux hacemos con los archivos en /etc/init.d/ o /etc/rc. En particular, los archivos plist son manejados por launchd, un manager de servicios incorporado por Apple desde desde Mac OS Tiger. Launchd ejecuta /etc/rc y luego busca en diferentes lugares por archivos .plist para su ejecución.

Los mismos están ubicados en los siguientes lugares:

HDD/Librería/LaunchAgents

HDD/Librería/LaunchDaemons

HDD/Sistema/Librería/LaunchAgents

HDD/Sistema/Librería/LaunchDaemons

HDD/Usuarios/bernardo/Librería/LaunchAgents

Así que en este último encontré el agente de plex que hace que se levante el Media Server al arranque.
Carpeta de los LaunchAgents
Carpeta de LaunchAgents

 

Cuando doy botón derecho sobre el archivo .plist del plex, se abre la  siguiente ventana.
Archivo Plex .plist
Archivo Plex .plist

 

Acá según leí hay dos caminos. O eliminamos el archivo, o si tiene la opción de RunAtLoad, desmarcarla. En este caso voy a hacer eso.

Cuando reinicio mi pc, ya no tengo el fastidioso Plex Media Server corriendo. Cuando quiera encenderlo lo hago sin problemas.

 

3. StartUpItems


Hay un tercer tipo de archivos que se pueden levantar con el arranque del sistema. Son los denominados StartUpItems. Son elementos que se ejecutan luego del arranque, pero antes de que cualquier usuario comience sesión. Se encuentran en:

HDD/Librería/StartupItems

HDD/Sistema/Librería/StartupItems

Bastará con borrar la entrada que corresponda para que no arranquen más con el SO.

 

 

Ruby: Creando clases y objetos

Luego de tener idea básica del lenguaje y definición de métodos, veamos la creación de clases y objetos.
class Anfitrion
def initialize(nombre=”Mundo”)
@nombre = nombre
end

def decir_hola
puts “Hola #{@nombre)“
end

def decir_adios
puts “Adios #{@nombre}“
end

De esa forma tenemos una clase anfitrión con dos métodos (decir_hola, decir_adios). Además se tiene una variable de instancia (@nombre) disponible durante la vida del objeto. Para crear el objeto:

A = Anfitrion.new(“Bernardo“).
A.decir_hola => “Hola Bernardo“
A.decir_adios => “Adios Bernardo“

Una aspecto interesante es que no podemos acceder a la variable de instancia como sí se puede en otros lenguajes. La expresión A.@nombre no es válida.

Anfitrion.instance_methods devuelve todos los métodos de instancia que se pueden invocar. Eso retorna todos los métodos disponibles de la clase Anfitrion y sus superclases. Si quisiéramos solamente los métodos que se definieron en la clase anfitrión y nada más, entonces bastará con poner:
Anfitrion.instance_methods(false)
En este caso se retornará
 => “[decir_hola, decir_adios]“


Existe otra funcionalidad interesante que es la de respond_to?. Escribimos
 Anfitrion.respond_to?(“nombre“)

y retornará false. Sin embargo si escribimos Anfitrion.respond_to?(“decir_hola“) retornará true. Si el objeto es capaz de responder a esos métodos entonces retorna true.

Para poder acceder y modificar los valores de las variables de clase, es necesario poner attr_accessor: nombres.
De esa forma podemos acceder como a.nombre, donde a es el objeto instanciado de la clase Anfitrion.

Ejemplo....




class MegaAnfitrion
attr_accessor :nombres

# Crear el objeto
def initialize(nombres = "Mundo")
@nombres = nombres
end

# Decirle hola a todos
def decir_hola
if @nombres.nil?
puts "..."
elsif @nombres.respond_to?("each")

# @nombres es una lista de algún tipo,
# ¡así que podemos iterar!
@nombres.each do |nombre|
puts "Hola #{nombre}"
end
else
puts "Hola #{@nombres}"
end
end

# Decirle adiós a todos
def decir_adios
if @nombres.nil?
puts "..."
elsif @nombres.respond_to?("join")
# Juntar los elementos de la lista
# usando la coma como separador
puts "Adiós #{@nombres.join(", ")}. Vuelvan pronto."
else
puts "Adiós #{@nombres}. Vuelve pronto."
end
end

end



if __FILE__ == $0
ma = MegaAnfitrion.new
ma.decir_hola
ma.decir_adios

# Cambiar el nombre a "Diego"
ma.nombres = "Diego"
ma.decir_hola
ma.decir_adios

# Cambiar el nombre a un vector de nombres
ma.nombres = ["Alberto", "Beatriz", "Carlos",
"David", "Ernesto"]
ma.decir_hola
ma.decir_adios

# Cambiarlo a nil
ma.nombres = nil
ma.decir_hola
ma.decir_adios
end


Y hasta aquí llegué con Ruby. En cuanto profundice en él iré actualizando los posts. Saludos!

Ruby: Definiendo métodos

La sintáxis de definición de un método es similar a la sintaxis de python:

def saludador
puts “Hola mundo“
end


“def“ es la definición del método llamado saludador. La palabra “end“ al final indica el fin del método.

La invocación del método requiere que solamente se escriba el nombre del mismo, en este caso saludador. También puede ser invocado como saludador(). En este caso tendrán el mismo comportamiento. Sin embargo este caso es un tanto particular, ya que no se pasan parámetros al método. En caso de tener parámetros se deberían pasar entre medio de los paréntesis, por ejemplo saludador(“bernie”).


def saludador(nombre)
puts “Hola #{nombre}“
end


 

Otra alternativa es definir el método con un valor por defecto para el paráemtro. Por ejemplo:


def saludador(nombre=”Mundo”)
puts ”Hola #{nombre.capitalize}”
end


En este caso se pone la primer letra del parámetro en mayúscula. Si invocamos:

Saludador ->; obtendremos la salida “Hola Mundo“

Dado que si no se pasa un parámetro, el mismo toma el valor (=”Mundo”).

 

Ruby: Primeros pasos...

Hace un tiempo hice un tutorial de Ruby para aprender el lenguaje. La verdad es que me gustó, se asemejó bastante a Python en lo que refiere a sintaxis. No me dio el tiempo de ver performance, variedad de frameworks en la vuelta, etc. Sin embargo como primeros pasos para conocer la sintaxis básica puede servir. Pongo una serie de posts explicando conceptos básicos del lenguaje.

Accediendo a la consola


Para poder acceder a la consola de Ruby simplemente escribimos “irb“ en el terminal (si estamos en Mac OS o Linux, si estuviéramos en Windows sería Fxri).

Si quisieramos obtener la versión que tenemos instalada de Ruby en nuestro pc, basta con escribir “ruby -v“ en la terminal. La salida debería ser algo similar a la siguiente línea:

ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0].

Primeros pasos...


La salida de Ruby es con puts.

Puts “Hola mundo“ responderá en pantalla dos cosas:

  1. Hola mundo

  2. Nil.


El nil es la salida de la evaluación del comando puts. Puts siempre retorna nil luego de una evaluación.

Las operaciones matemáticas son sencillamente como si fuera una calculadora, 2+3, 5*2, 5**2.  Existen ciertos módulos como ser Math que agrupan funcionalidades similares, como ser Sqrt, Sin, Cos, Tan, etc. Para poder invocar ese tipo de operaciones es necesario escribir Math.sqrt(16). El resultado de ese mensaje será 4.0.

 

 

Recuperar archivo adjunto editado y guardado... desde Outlook

Suele ser bastante común, para quienes usan Outlook, abrir algún archivo adjunto desde el programa mismo y realizarle algún tipo de modificación. Entonces grabamos el archivo y un tiempo después cuando lo queremos recuperar... vamos al viejo correo que contenía el adjunto y lo abrimos. La sorpresa suele ser tan desagradable como el tiempo que le dedicamos a la edición: Los cambios que guardamos y que nunca se nos alertó de un error, NO ESTÁN! (no nos alertó, porque en realidad no hay error).

Entonces, luego de un ratito en que estamos relajando a la PC, a Bill Gates y estamos a punto de comenzar el trabajo de nuevo, podemos intentar lo siguiente:

Inicio -> Examinar (en Windows Vista y Seven ya es directo en "Escribir comando") -> Regedit.

Vamos a

HKEY_USERSS-1-5-21-2743691432-338821429-3103819822-1106SoftwareMicrosoftOffice12.0OutlookSecurityOutlookSecureTempFolder

Luego de MicrosoftOffice pueden probar además de con 12.0, con las carpetas que tengan, 11.0, 10.0, 9.0, etc.

Damos doble click y nos vamos a encontrar con una ruta que nos indica donde es que Outlook almacena los archivos adjuntos que descarga para las ediciones. Así es que abrimos un Explorer de Windows, ponemos esa ruta y allí encontraremos el archivo que estabamos buscando.

Espero que sirva cuando se enfrenten a esos casos!

Saludos!