2012/02/27

Interfaz textual alternativa

Una de las formas más rápidas de ingresar información es usando un editor de texto. Puede ser una expresión constante, es decir el propio texto que se requiere, o también una expresión variable, es decir un texto que genera el texto que se requiere (algo así como un programa).

Siendo una de las maneras más rápidas, me parece que sería bueno considerarla siempre como opción en cualquier interfaz. Generalmente las interfaces sólo proveen medios de señalar y hacer click, completar algunos campos, pero eso no siempre permite toda la agilidad que uno desearía. Quizás sería buena idea que SIEMPRE hubiera la forma de ingresar directamente, como un flujo de texto simple, aquella información que el programa requiere (y la interfaz GUI nos ayuda a ingresar). Además, si hay la opción de macros, condicionales, alguna forma de programación, temporización, comunicación con otros módulos, etc. se podrían hacer cosas interesantes.

2012/02/23

Sigil para crear epub

Epub es un formato abierto para libros electrónicos.

Me estoy aficionando a leer epubs en el celular. Me gusta el hecho de que el contenido se adapte al tamaño de la pantalla. Me hacía recordar al HTML, así que me preguntaba cómo es que se haría un epub.

Si pruebas cambiar la extensión de un archivo epub a zip y pruebas abrirlo, verás que se puede. Un epub contiene, comprimido en un zip, una estructura de archivos tipo web, principalmente XHTML, que constituyen el libro.

De modo parecido a hacer páginas web, es posible hacer un epub completamente a mano. Sin embargo, la estructura del epub es un poco más complicada. Resulta más práctico iniciar sobre un template o usar algún programa de edición WYSIWYG, como Sigil.

Lo he probado para hacer un libro simple. Me sirvió de bastante ayuda este tutorial. Aunque es para una versión anterior y el menú ha cambiado un poco.

2012/02/22

Hola Sublime Text 2!

Sublime Text 2 es un nuevo editor de texto que estoy probando.

Mi editor de textos favorito es Notepad++. Antes lo fue jEdit. Pero, cuando jEdit me empezó a parecer demasiado pesado, encontré en npp una buena alternativa. Iniciaba mucho más rápido, también coloreaba la sintaxis, también tenía tabs... además empecé a pasar la mayor parte del tiempo en Windows, así que comencé a usarlo cada vez más. Mucho más con el cómodo manejo de encodings (más que en cualquier otro editor que haya visto), el plugin para FTP y con el soporte para Zencoding.

Hace unos días, de pronto, descubrí Sublime Text 2. Lo recomendaban en unos video tutoriales sobre jQuery en net.tuts.com. Y me está pareciendo interesante. Aún me está costando un poco acostumbrarme a las nuevas secuencias de teclas pero me gusta mucho lo de los cursores múltiples, las selecciones rectangulares, las selecciones múltiples, la forma en que maneja la configuración. No es open source pero tiene una arquitectura extensible. No es gratis pero uno puede probarlo indefinidamente... sólo hay que cerrar el recordatorio de compra de vez en cuando.

Tengo ciertos hábitos al editar texto, así que aquí resumo lo que voy haciendo mientras aprendo cómo hacerlo en ST2.

Preferencias Generales
Por ejemplo, para fonts, me gusta usar algo similar a Lucida Typewriter, o DejaVu Sans Mono, a 14pt. También los tabs reemplazados por 2 espacios.
No encuentro un menú para eso. Pero se resuelve entrando a Preferences, Settings-User y agregando ahí los items de configuración que uno quiera. Una referencia a los valores que se puede poner se puede ver entrando a Preferences, Settings-Default:

{
  "font_face": "DejaVu Sans Mono",
  "font_size": 14,
  "tab_size": 2,
  "translate_tabs_to_spaces": true
}

Zencoding
Si uno hace una secuencia tipo zencoding seguida de un tab, se expande. Sin embargo, quisiera expansiones de documento un poco más completas (html:4s, por ejemplo). Así que buscando encuentro que para instalar Zencoding hay que instalar primero el Sublime Package Control.

Para eso no hay que bajar manualmente ningún archivo, sino ejecutar en la consola de ST2 (se abre con CTRL+` o entrando a View, Show Console), lo siguiente:

import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

Luego de eso, reinicio ST2. Luego, entro a Tools, Command Pallete, Package Control::Install Package y elijo Zencoding en la lista de paquetes. Reinicio ST2 nuevamente. Pruebo crear un documento html, escribo html:4s, TAB, funciona :-D

Para una guía rápida de cómo usar Zencoding en ST2, se puede revisar http://code.google.com/p/zen-coding/wiki/SublimeTextZenCodingEn

A veces, uno quiere que cierto documento se trate de cierta manera (por ejemplo los .module de Drupal son php). Para indicarlo manualmente, en el menú elegir View, Syntax y elegir el tipo.

Update

El package Zencoding cambio de nombre a Emmet.