Instalar diccionario español en Sublime Text2

Para los que usamos Sublime Text 2 les voy a dejar un tip, el cómo instalar el diccionario en español para la corrección ortográfica.

Obtener los diccionarios para Sublime Text 2

Existe un repositorio en github con los diccionarios en varios idiomas, hay que simplemente clonarlo y sacar un par de archivos desde ahí (los idiomas que nos interesan).

1
$ git clone git://github.com/SublimeText/Dictionaries.git Dictionaries

Luego creamos el directorio para dejar los archivos de idioma (en este caso español)

1
$ mkdir ~/.config/sublime-text-2/Packages/Language\ -\ Spanish

Finalmente copiamos los archivos de idioma (español) al directorio creado.

1
$ cp Dictionaries/Spanish* ~/.config/sublime-text-2/Packages/Language\ -\ Spanish

Listo, ahora deben reiniciar Sublime Text 2 y luego ir a View > Dictionary > Language Spanish > Spanish con esto seleccionan el idioma, ahora si quieren corregir la ortografía deben presionar F6 o ir a View > Spell Check

Activar/Desactivar touchpad en ubuntu

Si te pasa que el touchpad del notebook molesta al momento de escribir (típico que estas escribiendo y lo pasas a llevar y se pierde todo :P), te dejo un pequeño script que lo activa o desactiva.

Activar el touchpad

1
2
#!/bin/bash
xinput set-int-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 8 1

Desactivar el touchpad

1
2
#!/bin/bash
xinput set-int-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 8 0

Si quieres lo puedes descargar desde github, le das permisos de ejecución y listo.

1
$ git clone git://github.com/pcollaog/linux-scripts.git

Algunas APIs Java que te pueden servir: commons-io

commons-io trae un montón de clases que te pueden servir al momento de utilizar lecturas y escrituras de archivos, entre otras cosillas.

Por si no lo sabías una de las malas practicas mas recurrentes programando con java es, no cerrar los Stream y ciertos Readers adecuadamente, o te complicas mucho con los try/catch, vamos a ver un par de ejemplos clásicos:

Primero agregamos la dependencia de maven, ojo que las versiones 2.x están escritas para Java 1.5 y las 1.x para java 1.3 y 1.4:

1
2
3
4
5
<dependency>
<groupid>commons-io</groupid>
<artifactid>commons-io</artifactid>
<version>2.0.1</version>
</dependency>

Caso 1: finally que asegura cerrar el Reader con el método close()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void closeWithFinally(String filename) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(filename));
try {
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
String contentFile = sb.toString();
System.out.println(contentFile);
} finally {
// Cerrar el reader
reader.close();
}
}

Caso 2: Creando la instancia de BufferedReader dentro del try y validando si es null al momento de cerrar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public void closeWithFinallyNullCheck(String filename) throws IOException {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(filename));
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null) {
sb.append(line);
}
String contentFile = sb.toString();
System.out.println(contentFile);
} finally {
// Cerrar el reader
if (null != reader) {
reader.close();
}
}
}

Caso 3: Usando commons-io y la clase IOUtils se reduce bastante el código y quedaría algo así:

1
2
3
4
5
6
7
8
9
public void closeWithFinallyCommonsIO(String filename) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(filename));
try {
String contentFile = IOUtils.toString(reader);
System.out.println(contentFile);
} finally {
IOUtils.closeQuietly(reader);
}
}

Mas información en el maven site del proyecto:

Mas adelante escribiré un par de ejemplos con otras clases de commons-io que son bastante útiles.

Cómo iterar un Map con Java 1.5

A pedido del Sr: @perrefe les dejo un tip de performance para iterar sobre Map<K,V>:

Supongamos que nuestro Map<K,V> tiene como key un String y como value un Integer, declarado de esta forma:

1
Map<String,Integer> map = new HashMap<String,Integer>();

Ahora podemos iterar el Map de la siguiente forma:

1
2
3
4
for (Entry<String, Integer> entry : map.entrySet()) {
System.out.println("Key [" + entry.getKey() + "]");
System.out.println("Value [" + entry.getValue() + "]");
}

Si ve por ahí algún iterador sobre un Map<K,V> al cual le sacan primero la lista de keys y después iteran el Map para sacar el value, no pierda tiempo escribiendo código de más y haciendo que su aplicación ande mas lenta.

Por favor no haga esto!!!

1
2
3
4
5
6
7
Set<string> keys = map.keySet();

for (String key : keys) {
Integer value = map.get(key);
System.out.println("Key [" + key + "]");
System.out.println("Value [" + value + "]");
}

Espero les sirva.

Video Intel... acelerando el video en Ubuntu Jaunty

Desde que me actualicé a Ubuntu Jaunty he tenido algunos problemas con la aceleración de video (tengo una placa intel). Les dejo aquí una solución que encontré luego de buscar por todos lados. Les dejo el detalle de mi placa intel.

1
Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)

Primero debemos agregar un par de repositorios desde launchpad .

1
2
deb http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu jaunty main

Luego agregamos la llave para dicho repositorio (si no sabes que es esto, lee este post Agregar llaves de repositorios apt en Ubuntu)

1
$ sudo add-apt-key AF1CDFA9 --keyserver keyserver.ubuntu.com

Luego de eso, actualizamos nuestro Ubuntu:

1
2
$ sudo apt-get update
$ sudo apt-get dist-upgrade

Una vez que tengamos todo instalado, editamos el archivo /etc/X11/xorg.conf con lo siguiente

1
2
3
4
5
Section "Device"
Identifier "Configured Video Device"
Driver "intel"
Option "AccelMethod" "UXA"
EndSection

Luego de todo este procedimiento, debemos reiniciar.

Dato Freak! - OpenOffice Game

El WTF - Dato Freak.. Sigue las siguientes instrucciones:

  1. Abre una planilla de cálculos de OpenOffice
  2. En una celda escribe =game() y presiona enter
  3. La celda te preguntará say what?
  4. Por ultimo debajo de la celda escribe =game(“StarWars”)
  5. Charaaaaaaaaaaaaaaaan!!

Juego StarWars de OpenOffice

gnome-do y pastebin

He activado el plugin de pastebin para gnome-do y es maravilloso. ¿qué es? simple… es una forma fácil de compartir trozos de textos/codigo fuente a través de un sitio web.

Cuantas veces te ha pasado que tienes un código fuente y quieres compartirlo rápidamente para revisión con otra persona que esta a unos cuantos kilómetros de distancia y no quieres usar el email por diversas razones. Esta aplicación te permite usar un recurso llamado pastebin en donde puedes pegar (como su nombre lo indica) cualquier texto. Tiene como chiche adicional, el que puedas decirle si es código fuente y el lenguaje en el que esta escrito, de esta forma lo formatea y/o colorea, notable no?? Bueno… luego de que pegas tu texto pastebin te retorna una URL corta que puedes compartir fácilmente con otros usuarios.

Ahora con gnome-do es mas facil, solo debes seleccionar un trozo de código fuente y aplicar el Shortcut de gnome-do (por lo general es Super+ Space)… veamos un ejemplo:

  1. Seleccionas el código/text que quieras enviar a pastebin.
  2. Presionas el shortcut para gnome-do (Super+space)
  3. Escribes pastebin (ahí buscara el plugin)
  4. Presionas Tab para pasar al siguiente cuadro, donde pones: “Selected Text
  5. Luego otra vez Tab y te saldra otro cuadro con los tipos de lenguajes, seleccionas el adecuado.
  6. Presionas Enter para confirmar

Luego el plugin de pastebin te retornara la URL de donde quedara tu contenido seleccionado, ahí podrás abrirlo con el navegador que tengas por defecto en tu escritorio (Firefox por supuesto ;) )

Si confirmas la URL (presionando Enter) se abrirá la URL en tu navegador… y listo!! así quedaría un envió a pastebin usando como lenguaje a Java5.

Listo el mini tutorial de gnome-do, otro día publicaré alguna que otra bondad.

Glosario:

  • URL: Uniform Resource Locator
  • Shortcut: atajo de teclado

Escuchando: “Randy Crawford - Fallen

Acortando distancias

Este es un post práctico ya que me canse de las largas rutas por las cuales generalmente me muevo en mis máquinas linux, por ejemplo:

  • /var/lib/cvs
  • /etc/httpd/conf
  • /usr/share/
  • /opt/chanchullo/configChanchullo/files

Como verán es una real lata estar escribiendo cd /opt/chanchullo/configChanchullo/files para editar un archivo de ese directorio.

Para poder acortar las distancias dentro de los directorios podemos exportar una variable de entorno que nos ayudara con los cd.

1
$ export CDPATH="~/:/opt/chanchullo/configChanchullo/:/var/lib/:/etc/httpd"

Ahora podemos hacer un cambio de directorio mas rápido, por ejemplo:

1
2
3
$ cd files
$ pwd
/opt/chanchullo/configChanchullo/files

Si quieren pueden definir la variable CDPATH dentro de su .bashrc para que siempre tengan a la mano los directorios que mas usan.

Escuchando: “Metallica“ - “Wherever I May Roam

Colores para buscar con grep

Un tip, agregar al .bashrc lo siguiente en la sección de los alias:

1
alias grep='grep --color=auto'

Escuchando: “G3” - “Foxey Lady”