5/13/2013

Multiples sesiones de ssh en Mac OS X: csshX

En algunas oportunidades debemos modificar un archivo o ejecutar un comando en varios servidores simultáneamente, es tedioso abrir muchas terminales e ir una por una ejecutando la misma sentencia. Para ahorrarnos un poco de tiempo y evitar errores de escritura debemos instalar (en Mac OS X) csshX:


Es muy parecido a Cluster SSH (Linux), o Terminator (Linux). La funcionalidad de este aplicativo es abrir multiples instancias del terminal (Terminal.app) y poder escribir al unísono en todos los terminales abiertos.

Instalación: Copiar csshX en /usr/local/bin (como sudo)
Ejecución: Abrir una terminal y ejecutar csshX con los datos de los servidores como parámetro

 MackBook:~$ csshX root@192.168.1.101 root@192.168.1.102 root@192.168.1.103  

Fuentes

2/26/2013

SoapUI en OS X Mountain Lion (10.8)

Estaba probando unos webservices en OS X (Mountain Lion 10.8) y el SoapUI 4.5.1 (versión libre) se quedaba colgado cuando desplegaba la publicidad (al iniciar el programa). Para corregir esto hay que modificar el fichero de configuración "soapui-settings.xml" (que se encuentra en la raíz de nuestro home) para deshabilitar el navegador integrado que trae por defecto.

Editamos el fichero "soapui-settings.xml" y agregamos la configuración "UISettings@disable-browser" dentro del tag "con:soapui-settings":

 <con:soapui-settings xmlns:con="http://eviware.com/soapui/config">  
  ...  
  <con:setting id="UISettings@disable-browser">true</con:setting>  
  ...  
 </con:soapui-settings>  

Guardamos y volvemos a cargar SoapUI y listo, problema resuelto.

Fuentes
http://www.soapui.org/forum/viewtopic.php?t=14796
http://www.soapui.org/

2/04/2013

Ejecutar wget desde PHP con MAMP en OS X

Actualmente estoy ocupando MAMP (Mac OS X, Apache, MySQL y PHP) para correr mi ambiente de desarrollo (OS X 10.8) y para que la función "shell_exec" de PHP encuentre el comando "wget" instalado con Homebrew hay que modificar un archivo de configuración en MAMP.

Antes que todo comenzamos por instalar Command Line Tools for Xcode o Xcode, ya que necesitamos ruby para instalar Homebrew.

Para instalar Homebrew abrimos una terminal y ejecutamos lo siguiente:
 ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"  

Después de instalar brew, en la misma terminal instalamos wget:
 brew install wget  

Luego editamos como sudo el fichero envvars de MAMP para agregar los binarios del sistema
 sudo vim /Applications/MAMP/Library/bin/envvars  

Y agregamos lo siguiente:
 export PATH=$PATH:/usr/local/bin  

Reiniciamos MAMP (Apache y MySQL) y ya podemos ejecutar wget desde PHP.

Fuentes



12/26/2012

Eliminar los ficheros .DS_Store y ._*


Los ficheros ".DS_Store" son unos ficheros ocultos que Mac OS X utiliza para almacenar ciertos metadatos como por ejemplo la posición del icono en pantalla. Estos ficheros en Mac OS X y en Linux permanecen ocultos, pero en Windows se vuelven visibles. Si utilizamos un pendrive USB de un compañero en nuestro Mac, cuando él lo conecte en su PC con Windows, verá una gran cantidad de ficheros .DS_Store que para él no tienen ninguna utilidad. Para elimiar estos ficheros solo abre la aplicación "Terminal" y ejecuta el siguiente comando:

 find /Volumes/PENDRIVE -name ".DS_Store" -depth -exec rm {} \;  

Lo mismo ocurre con los ficheros "._". Estos ficheros son "resource fork" que se crean en un volumen externo. En los sistemas de ficheros de Apple hay soporte para dos tipos de información de ficheros: uno es el resource fork y el otro es el data fork. El data fork contendrá información suministrada por el usuario, tal como el texto de un documento, y el resource fork contendrá información acerca del documento, tal como autor, preferencias específicas del documento, la aplicación que lo debe abrir y otros metadatos.

En los sistemas de ficheros de Mac OS X estos forks son tratados como un archivo, y aparecen como tal, sin embargo, los resource forks no son soportados por muchos sistemas de ficheros, incluyendo aquellos usados en máquinas de Windows. Como tal, cuando los usuarios copian ficheros a esos sistemas, el resource fork puede perderse. Por lo tanto, Apple ha construido un sistema en OS X que automáticamente divide el archivo en resource y data cuando son copiados a discos que no soportan resource forks.

 find /Volumes/PENDRIVE -name "._*" -depth -exec rm {} \;  

Los usuarios de Mac pueden evitar que los ficheros .DS_Store se creen en volúmenes en red (o en sus carpetas internas) añadiendo el siguiente comando en la aplicación "Terminal":

 defaults write com.apple.desktopservices DSDontWriteNetworkStores true  

Una ves realizada esta tarea, cierra la sesión o reinicia el ordenador.

Notas
  • El comando anterior funciona perfectamente, pero sólo sobre discos compartidos. Si "pinchas" un pendrive USB, los ficheros .DS_Store, y los ficheros ._ de recursos se seguirán escribiendo.
  • Normalmente las unidades de almacenamiento USB (pendrives) se montan en "/Volumes", pero si no está ahí y no tienes idea donde está montada la unidad puedes preguntarle a la "Utilidad de Discos", revisando la sección de "Punto de montaje".

Fuentes

12/17/2012

Herramientas y trucos para Arduino

Arduino tiene un editor de código, digamos que no muy pulido comparado con Sublime Text 2 o Notepad++, pero tenemos un truco para solventar eso.

Nos vamos a las preferencias del editor de Arduino y seleccionamos la opción "Usar editor externo" y guardamos los cambios, esto hace que el editor se bloquee y NO permita editar los ".ino" (los abre como "solo lectura"), ahora abrimos nuestro editor favorito y al guardar los cambios realizados en el sketch el editor de Arduino refrescará los cambios automáticamente pudiendo así subir las últimas modificaciones a nuestra placa.

Fritzing
Es una herramienta para crear y documentar diseños y prototipos de placas, la he ocupado para el proyecto "Topo", es intuitiva y de fácil uso, la recomiendo básicamente para la documentación de nuestros proyectos y así poder compartir de una manera mas "ordenada" los prototipos.



Y como bonus-track, le dejo un blog que nos ayudará a formatear nuestros códigos fuentes para su publicación web.

Fuentes