Mostrando entradas con la etiqueta mac. Mostrar todas las entradas
Mostrando entradas con la etiqueta mac. Mostrar todas las entradas

miércoles, 11 de septiembre de 2013

Nitrous: un entorno de desarrollo completo en la nube

Después de un año de silencio ¡vuelve Code & Beyond!

Hace aproximadamente un año cambié de trabajo y me sumé a Kleer, donde como socio tengo muchas de las responsabilidades acuciantes de cualquier start-up, lo que requirió dejar algunas actividades de lado. Específicamente, este blog no tiene sentido para mi sin una frecuencia importante, por lo que quedó congelado… hasta ahora. Espero que disfruten algunos de los aprendizajes que compartiré con ustedes en adelante, y como siempre, el feedback es bienvenido en @MartinSalias.


Imagen básica

Estoy probando la beta pública de Nitrous.io, un servicio de "dev boxes" en la nube.

Básicamente, lo que nos brinda (partiendo de un servicio básico gratuito con 384 MB de RAM y 750 MB de storage) es una "caja" con Linux (la mía es un Ubuntu 12.04.1 LTS).

Lo bueno del servicio es que puede accederse de múltiples maneras:

  • por SSH directo
  • abriendo una terminal en el navegador
  • utilizando una IDE en línea (ver botón en la imagen)
  • a través de la aplicación para Mac (a las que se espera que se sumen otras para Linux y Windows). Esta aplicación genera una carpeta local con subcarpetas para cada "box" que uno tenga, y las mantiene sincronizadas (estilo DropBox). Además de eso, agrega un icono y menú en OS X que facilita llegar al sitio o la carpeta local, abrir una terminal vía SSH o la IDE en línea, controlar el port forwarding o la sincronización, etc.
Las "boxes" se pueden crear utilizando plantillas que incluyendo componentes pre-instalados para (por ahora) Ruby/Rails, Node.js, Python/Django y Go.
 
Personalmente, lo que más me atrajo es abrir la terminal desde el browser, jugar desde ahí, crear una carpeta para probar, usar vim para crear un ejemplo pequeño en Node,js (a pesar de haber creado mi box con la plantilla de Ruby, Node ya estaba ahí), correrlo desde la consola, ir a la URL de preview (agregándoe el puerto 3000) que elegí y ver que ya estaba funcionando.
 
La aplicación para Mac anda bien, pero la sincronización de archivos agrega una latencia que prefiero evitar. Siendo poco fanático de las IDE, tener la terminal me alcanza y sobra (es lo mismo que conectar por SSH, pero desde el browser de una).
 
La verdad es que el proyecto promete, y me gusta mucho la idea de usarlo para alguno de los entrenamientos que doy regularmente.

jueves, 9 de febrero de 2012

¿MacBook con teclado en inglés?

Argento Layout

Los lenguajes de programación, no importa de qué origen, están pensados para escribir con un teclado en inglés. Es cierto que se puede escribir código con cualquiera, pero siempre es más complicado al alejarse del clásico "US Layout". Por eso siempre busco computadoras con teclas en inglés, como en el caso de mi MacBook.

Pero claro, también tengo que escribir frecuentemente en español, como en este blog. Mac OS X tiene una serie de secuencias de teclas por omisión para ingresar vocales con tilde, diéresis, etc, pero la mayoría de nosotros estamos acostumbrados a teclear la tilde primero y después la vocal, etc. Como no encontré un esquema de teclado con las combinaciones que me gustaban, construí uno, y para ahorrarle tiempo a quien venga detrás, lo comparto con ustedes.

Argento Layout es un esquema de teclado (Keyboard Layout) para Mac OS X, pensado para computadoras con teclado en inglés (US) de fábrica, que facilita escribir en español.

Las combinaciones de tecla habilitadas son las vocales acentuadas (minúsculas y mayúsculas) que se logran pulsando la tilde (debe estar entre las teclas ";" y "return"), y adicionalmente pulsando la tilde y luego la "n" (mayúscula o minúscula) se obtiene la "ñ".

Como también escribo frecuentemente en inglés, mantuve un detalle importante: si se escribe algo diferente de vocal o "n" luego de la tilde, el caracter resultante es una comilla simple, no una tilde, lo que evita que un texto en inglés quede como:

I'm a coder (correcto)

...en lugar de:

I′m a coder (incorrecto - en inglés el caracter correcto para las contracciones es un comilla recta, no unan tilde)

Los interesados solamente deben copiar el archivo "Argento.keylayout" descargado dentro de la carpeta "~/Library/Keyboard Layouts" (~ indica su carpeta de usuario) si quieren tener el esquema disponible solamente para su perfil. Si quieren que esté disponible para todos, copien el archivo en "/Library/Keyboard Layouts" desde el directorio raíz.

Para poder usarlo hay que hacer "Logout" y "Login" nuevamente. Si quieren poder cambiar el modo de teclado, pueden modificarlo en las Preferencias de Teclado, y pueden dejar el icono disponible en la barra de menú para poder alternarlos fácilmente (como se ven en la imagen más arriba).

Espero que a alguno de ustedes le resulte útil.

 

martes, 28 de junio de 2011

Videos de la Apple World Wide Developer Conference 2011

wwdc2011

Apple realizó su conferencia principal para desarrolladores, como todos los años, e imagino que la mayoría ya debe haber visto al menos algún compilado de la sesión de apertura, en la que se lanzaron Mac OS Lion, iOS 5 y iCloud, entre otras cosas.

Para quienes no lo vieron, dejo al final el video de esa sesión completa, aunque advierto que dura 158 minutos (casi 2 horas).

Si no tienen tiempo, pueden buscar en la web alguno de los compilados que muestran los anuncios más sobresalientes. Los hay super-comprimidos de 60 segundos, y algunos más detallados de unos 10 minutos.

Sin embargo, quienes quieran abundar en más información, no menos, ya pueden ver en video todas las sesiones (un centenear) de la conferencia, incluyendo algunas que captaron mi interés como (mi usual lista arbitraria; el sitio requiere un usuario gratuito registrado):

Espero que encuentren otros temas que les interesen.

Va la sesión de apertura:

martes, 17 de mayo de 2011

Libros: aprendiendo Objective-C y Cocoa

Para los programadores que usan Mac y siempre tuvieron ganas de desarrollar algunas aplicaciones nativas, o aquellos que quieren desarrollar aplicaciones para el iOS de iPhones, iPods y iPads, es fundamental aprender Objective-C (el lenguaje) y Cocoa (el framework).

Incluso si uno opta por usar entornos que nos permiten desarrollar en otros lenguajes, como MonoMac, MonoTouch ó MacRuby, siempre es importante tener una buena base del entorno original de Apple, porque ninguna de estas abstracciones evita que necesitemos un entendimiento general del entorno subyacente, el manejo de recursos, eventos, etc.

Por suerte hay algunas opciones de libros gratuitos para empezar en el tema:

Become an X Coder

BecomeAnXcoder

Es un libro gratuito disponible dentro del sitio Cocolab que incluso puede leerse en español, aunque ésta y otras versiones traducidas están una o dos versiones atrasadas con respecto la versión del sistema operativo de Mac, mientras que la versión en inglés está al día.

Una característica de este libro es que está orientado a gente sin conocimiento previo de programación, por lo que puede resultar demasiado básico, aunque siempre se puede acelerar la lectura e ir a los detalles específicos que nos importan.

Cubre una introducción general a la programación, el uso de las herramientas Xcode de Apple, funciones, compilación, condicionales y bucles, interfaz de usuario, métodos, punteros, strings y arrays, accesores y propiedades, manejo de memoria, y deja muchas fuentes posteriores para seguir aprendiendo.

 

Objective-C Essentials

Objective-C 2.0 Essentials

Este libro sólo está disponible en inglés pero está orientado a programadores con cierta experiencia, y es muchísimo más detallado. La versión gratuita es la que se lee en línea, y puede comprarse en PDF y ePub a un precio económico.

Cubre la historia de Objective-C (que nació como un intento de fusionar la sintaxis de C con el modelo de objetos de Smalltalk, unos pocos años después de la aparición de C++, y antes de su popularización), la instalación de Xcode y el proceso de compilación en Mac OS X, como usar GNUStep y Objective-C en Windows y Linux, los tipos de datos del lenguaje, uso de variables y constantes, operadores y expresiones, comentarios, control de flujo y bucles, orientación a objetos incluyendo métodos, encapsulamiento, accesores, herencia, punteros e indirección, vinculación dinámica, funciones, enumeradores, y manipulación de strings, números, arrays, diccionarios, directorios, archivos, carpetas, y muchísimo más.

Notarán que es muchísimo material.

 

David Chisnall

Objective-C for Java Programmers

También en inglés, pero en este caso se trata de un artículo de David Chisnall en InformIT, en 7 partes (breves) orientado a introducir el lenguaje a desarrolladores Java (también es útil para quienes conocen .NET).

Recorre las diferencias filosóficas entre los lenguajes, objetos y primitivas, archivos y unidades de compilación, modelos de objetos, comportamiento estático, diferencias de sintáxis, etc.

 

lunes, 3 de enero de 2011

Ronda de editores de texto para Mac

Editores de Texto

Un compañero de trabajo que desembarcó recientemente en territorio Mac me preguntaba el otro día sobre editores de texto, que es algo que todo programador necesita tener a mano. Como mencionan en el clásico libro de nuestra profesión, The Pragmatic Programmer, así como un buen leñador invierte gran parte de su tiempo afilando el hacha, que es lo que lo mantiene productivo, nosotros deberíamos siempre seleccionar con cuidado y luego dominar esta herramienta que usamos permanentemente. Incluso es difícil quedarse con un único editor de texto (sin contar además con una IDE, en muchos casos).

En particular soy más amigo de los buenos editores que de las IDEs, así que después de comentarle brevemente a mi amigo algunos de los editores que uso, decidí preparar este post con una lista (incompleta) de los más interesantes que he visto o usado en OS X.

Cuando llegué ya estaba ahí: TextEdit

Este es el editor que viene como parte del sistema operativo, y aunque muchos no lo saben, este pequeño editor tiene algunas características interesantes, como soporte no solo para ASCII plano sino también para Unicode UTF-8 o 16, Rich-Text Format (RTF), .doc ó -docx (si, formato Word XML).

Otro detalle interesante es que los fuentes de este editor están incluidos como muestra en la IDE de Mac OS: XCode.

El más popular: TextMate

TextMate es el editor más popular en este ambiente, basado en mi propia experiencia, incluso a pesar de ser un producto comercial.

Algunos de los motivos más importantes detrás de su éxito son su flexibilidad y extensibilidad, a través de los bundles: extensiones que permiten no sólo dar soporte a coloreo de sintaxis y operaciones específicas para cada lenguaje, sino también para automatizar operaciones alrededor del sistema operativo, los browsers, compiladores y demás piezas de infraestructura.

Un buen ejemplo de esa flexibilidad es el meta-bundle llamado GetBundles que permite actualizar los cientos de bundles disponibles y que la comunidad sigue generando activamente. Y la comunidad, casualmente, es otra característica muy importante. Basta con buscar en GitHub para ver la cantidad de extensiones, y ver que hay bundles como el de Ruby mantenidos por gente como David Heinemeier Hansson, el creador mismo de Ruby on Rails.

Fuerte en Proyectos: BBEdit

Este es otro editor sumamente popular, que parece haber sido sobrepasado por TextMate sobre todo por el soporte para Ruby/Rails. Sin embargo, BBEdit sigue siendo un favorito, también comercial, aunque casi al doble de precio de TextMate.

El fuerte de este editor, además de muchas características avanzadas similares al anterior, es en el manejo de proyectos, que permite utilizar múltiples carpetas, filtros por tipos de archivo, etc. En el ambiente C++ y Objective C sigue siendo muy utilizado.

Todoterreno: UltraEdit para Mac

Para quienes usan o usaron este poderoso editor comercial en Windows o Linux, ahora está disponible la versión para Mac, lo que puede darles la ventaja de la familiaridad y supuestamente portabilidad de macros y algunas extensiones.

Para quienes no lo utilizaron antes, la interfaz, aunque re-escrita en Cocoa, parece aun un poco extraña en Mac OS, notándose su procedencia de ora plataforma.

Sus características más famosas son macros, poderosa búsqueda y reemplazo incluso entre múltiples archivos, y la capacidad de trabara directamente sobre servidores via FTP.

Clásico de clásicos: Vim y Aquamacs

Como Mac OS es un Unix maquillado, Vi / Vim siempre fueron opciones importantes y gratuitas. Este clásico editor tiene una personalidad fuerte y no es para quienes están acostumbrados a menúes o interfaces gráficas. Es super-eficiente en el uso de combinaciones de teclas pero para mucha gente parece una vuelta atrás en el tiempo.

Hace poco publiqué un post con una cartilla para facilitar el uso. Mi recomendación es darle una oportunidad, sobre todo si uno es más usuario de un editor que de una IDE.

Por supuesto, respetando la diversidad religiosa, también hay una versión de Emacs para Mac OS (modo totalmente regular estilo texto) o una versión más adaptada, con fonts, menúes y uso de las clásicas secuencias de teclas de Mac, llamada Aquamacs.

Más opciones gratuitas interesantes: Kod y TextWrangler

Para cerrar, otro par de editores gratuitos muy buenos:

Sobre Kod escribí un post reciente, así que no voy a repetir mucho.

TextWrangler es como el hermano menor, freeware (no de código abierto) de BBEdit, y funciona muy bien. Soporta múltiples lenguajes con coloreo de sintaxis y acceso directo al shell del sistema operativo, extensibilidad y varias otras funciones interesantes.

 

Como cierre, repito que la lista está obviamente incompleta, y si les parece que hay otras opciones buenas o quieren destacar alguna característica buena o mala, o sus experiencias, los invito a dejar comentarios.

Finalmente, recomiendo a cualquier programador invertir un tiempo en probar algunos de los editores, y después de selecionar uno o dos, dedicarle un poco más a aprenderlo a fondo. Ahorrar tres o cuatro horas de investigación del poder de un editor puede significar perder ese mismo tiempo todos los meses haciendo cosas que podemos automatizar.

 

martes, 28 de diciembre de 2010

Kod: un editor de código (abierto) para OS X

Kod

Kod es un editor orientado a escribir código para OS X. Es de código abierto, bajo licencia MIT (modificada para no permitir vender el editor como tal) y alojado en GitHub.

Tiene algunas características muy interesantes, que me llamaron la atención y por lo que estoy empezando a usarlo con bastante buen resultado (listo lo que detallan en el sitio oficial, con mis comentarios):

  • Tiene un comportamiento muy asincrónico, y aprovecha el poder de los procesadores de múltiples núcleos que tenemos hoy día. Esto es algo que hace tiempo espero de más aplicaciones.¿Porqué tengo que esperar a que las cosas se terminen de grabar para poder seguir trabajando? Kod es muy eficiente al estar trabajando con múltiples archivos de diferentes tamaños.
  • El entorno de scripting está basado en el ascendente Node.js, sobre lo que tengo que escribir un próximo post en más detalle.
  • Interfaz de usuario inspirada en Chromium, utilizando tabs que pueden soltarse en ventanas independientes y volverse a unir, pero sobre todo, permitiendo escribir el nombre del archivo a editar directamente en la barra de direcciones, algo que es muy práctico al editar código, en lugar de tener que abrir un cuadro de diálogo.
  • Tiene algunas cosas que no usé, como que permite editar directamente archivos a través de HTTP (aunque no grabarlo, claro), y para cambiar estilos en el editor todo se hace mediante CSS 3.
  • Soporta al parecer 65 lenguajes o dialectos, y al menos tiene buen soporte para Ruby, JScript y Python por lo que vi hasta ahora.

Atención: para los que buscar una IDE, este es sólo un editor. Pero es muy interesante, parece ser activamente mantenido, y puede ser una competencia interesante a los tradicionales TextMate y Vim habituales en el mundo Mac.

Dejo como muestra una captura del editor en mi máquina:

Kod-screen

viernes, 17 de diciembre de 2010

LiveReload: Mejorando la productividad, tecla por tecla

Acabo de encontrarme con una herramienta asombrosamente trivial pero increíblemente útil y adictiva: LiveReload.

Esta herramienta es para Mac OS X y soporta por ahora Safari y Chrome, pero imagino que pronto veremos clones para otras plataformas y browsers. El concepto es tan básico que parece increíble que nadie lo haya hecho antes.

Básicamente LiveReload se configura para monitorear una carpeta, de la que pueden incluirse o excluirse algunas extensiones en particular, etc.

A partir de el inicio del servicio (y teniendo la extensión correspondiente instalada y habilitada en alguno de los browsers), cualquier cambio que se graba en uno de esos archivos refresca automáticamente el contenido de la página (en gran parte de los casos ¡sin refrescar la página misma!) sin que tengamos que hacer nada en el browser.

Como siempre, un video vale más que 1024 palabras, así que dejo debajo uno grabado por Gregg Pollack para que vean la magia en acción.

Por supuesto, esto no es tan fácil de lograr tan eficientemente en entornos con compilación de por medio, pero solamente la magia de tocar hojas de estilo o scripts y verlos variar instantáneamente puede transformar nuestra forma de trabajo.

miércoles, 15 de diciembre de 2010

Cartilla de ayuda para vi/vim

Vim

vi es una herramienta clásica del mundo Unix que mucha gente encuentra arcaica y obscura, mientras otros son fanáticos de su simpleza y flexibilidad.

Se trata de un editor de textos escrito por Bill Joy en el 76, años antes de la fundación de Sun, famoso por sus modos de operación (insert o normal) y su capacidad para interactuar con el sistema operativo subyacente.

Uno de sus derivados más populares es Vim, creado originalmente en 1991 para las computadoras Atari Amiga y portado con el tiempo a prácticamente todas las plataformas modernas, aunque su mayor popularidad sigue estando en la comunidad Linux/Unix.

La particularidad de ambos editores es que no utilizan menúes sino comandos de texto (estilo línea de comando) o teclas especiales. Es esta característica la que fanatiza a muchos usuarios de Vim: no hace falta tocar el mouse para usarlo.

El equipo de ViEmu, un plugin para Visual Studio, Word, Outlook y SQL Server Studio que agrega a estos entornos las capacidades de comandos, macros y secuencias de teclado tradicionales de Vi, ha publicado una cartilla visual (cheat sheet) que puede ayudarnos a aprender vi/vim o servirnos de referencia para los comandos menos usados. La reproduzco vinculada a la página original donde también hayuna serie cartillas en forma de lecciones para aprender el uso en orden.

Vim Cheat Sheet

 

jueves, 2 de diciembre de 2010

Miguel de Icaza: Más sobre Mono para OS X y iOS

Mac OS X

Miguel lanzó un nuevo blog personal especializado en el sistema operativo de Mac y el de iPhone/iPod/iPad, visto por supuesto, desde la perspectiva de Mono.

Como explica en el post inicial, las razones principales para tener un blog separado del suyo personal de siempre, exclusivamente dedicado a este tema, son dos:

  • Mientras que su blog está dedicado más que nada a novedades generales del proyecto Mono, éste está orientado a documentar sus experiencias específicas con estos ambientes de Apple, en un nivel de detalle más granular, que puede molestar a quien no tiene interés específico en el tema.
  • Estos sistemas operativos son propietarios y están bastante alejados de los ambientes abiertos usuales para gran parte del público anterior.

En cualquier caso, es muy interesante tener un buen recurso técnico con detalles sobre MonoTouch, la implementación de Mono y herramientas de desarrollo para programar aplicaciones para iOS en lenguajes .NET, que es un producto comercial (sobre todo por temas de licenciamientos varios), y MonoMac, que si es un producto abierto y gratuito para hacer lo mismo sobre Mac OS X (que sí es un sistema propietario).

Lo que ambos proyectos brindan, fundamentalmente, es la posibilidad de programar en C# y utilizar las librerías de la BCL, pero con bindings agregados para interactuar con el entorno de Apple en Objective-C y la interfaz de usuario Cocoa, lo que es una buena alternativa para quienes están interesados en desarrollar para estos dispositivos pero no tanto en aprender todos los detalles y lenguajes específicos.

viernes, 29 de octubre de 2010

Office:mac 2011

Word 2011 para Mac
Desde ayer soy un (hasta ahora) conforme usuario oficial de Office 2011 para Mac OS. Estuve probando betas antes y tuve una buena impresión, pero el producto está ahora liberado y disponible al menos para suscriptores de MSDN que tengan acceso a otras ediciones de Office. Imagino que habrá que esperar unas semanas más para que esté disponible en caja, en las tiendas de software.
Para quienes conocieron la versión 2008 de Office para Mac, debo aclarar que este es otro producto. Mientras que en aquella versión ocurrían cosas como bajísimo soporte para los formatos de Office 2007 (aunque por nombre era posterior), la nueva versión tiene compatibilidad total hasta donde pude ver.
Para quienes debemos interactuar frecuentemente con documentos de Office sin desajustes, tener esta versión es realmente una suerte, y hay que destacar que el equipo de Office:mac realmente hizo un trabajo notable, y esta vez respetó muchísimo la interfaz Cocoa y el estilo de interfaz, con la notoria excepción de ignorar los gestos multitouch del trackpad (como rotaciones y zoom). Un agregado interesante es la adecuación de los ribbons aparecidos en Office 2007 de Windows, que ahora trabajan igual en Mac OS, pero con un estilo visual correcto, como se puede ver en la figura de abajo.
Mac Ribbon
Además de Word, Excel y Powerpoint, esta versión finalmente eliminó el problemático cliente de correo Entourage y en su lugar trae una versión muy buena de Outlook, que funciona tal cual uno espera contra un servidor Exchange, pero también con cuentas POP o IMAP, y personalmente las posibilidades de edición y formato dentro del editor de correo me resultan mucho mejores que en Apple Mail.
En líneas generales, Office:mac 2011 me sorprendió gratamente. Ojalá Microsoft insista más con algunos de mejores productos. Particularmente, como mucha otra gente, me encantaría una versión de Windows Live Writer para Mac OS. MarsEdit es el editor que estoy usando en este momento, pero pierde enseguida en la comparación.

miércoles, 27 de octubre de 2010

MacRuby 0.7 disponible

macruby_logo.png
La noticia es de principios de mes, pero más vale tarde que nunca.
Esta versión de Ruby para Mac OS X es la primera en implementar la versión 1.9.2 de Ruby, pasando el 90% de las pruebas en RubySpecs, lo que es un avance enorme aunque todavía no alcanza para correr Rails.
El soporte para Cocoa ya estaba estable, pero se extendió a permitir bloques en C, lo que facilita la pasar tanto bloques como punteros C a algunas APIs. Esto es gracias al uso de BridgeSupport, que permite completar la metadata necesaria en LLVM (el motor de ejecución de Mac OS) para interactuar con Cocoa, Objective-C y C en general.
Hay mejoras también en el manejo de Sandbox, Concurrencia y Rendimiento en general. Por ejemplo, esta versión aprovecha directamente el nuevo thread pool de Snow Leopard, parte de Grand Central Dispatch.