Archivos mensuales: Mayo 2008

En realidad estaba buscando como mapear el autocomplete de Vim a otro shortcut más amigable (que el default de Ctrl+N o Ctrl+X, Ctrl+O), y me topé con este scriptcito que me cautivó.

Ah, doy una mínima explicación de lo que estoy escribiendo para terminar de ahuyentar a lectores poco nerds o no programadores:

Vim: Editor de textos re pro con una curva de aprendizaje complicada pero muy poderoso si se lo sabe usar. En el contexto, es el editor que uso para todo (desde programar hasta hacerme un MOTD con ASCII ART).

autocomplete: funcionalidad de Vim que autocompleta una palabra a medio escribir a partir de

  • Una lista de palabras ya usadas en el mismo archivo u otros abiertos
  • Un diccionario
  • Funciones del lenguaje de programación en el que estemos escribiendo

shortcut: combinación de teclas que ejecuta un comando o función. En el caso de Vim, son todos shortcuts :D

scriptcito: Programita chiquito que hace algo no muy complejo pero groso. En este caso es, además, tierno por su simpleza.

Dadas las explicaciones y definiciones necesarias, y ya habiendo filtrado lectores de mi blog no programadores ( o giles que vieron luz en un mal google search y entraron ) prosigo a mostrar el script y explicar su uso/instalación.

EDIT: Modifico este post, dado que el WYSIWYG del orto de WordPress me garcha todas las comillas, tabs y demás (No es muy bueno para publicar sourcecode). Abajo pongo los links de donde saqué la data. No intenten copiar el source aquí publicado porque no anda ni para atrás).

El script:


"This code autocloses parenthesis, brackets, etc around cursor
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "<Right>"
else
return a:char
endif
endf
"This map adds lines to the previous trick…
inoremap { {<CR><BS>}<ESC>ko

Lo que hace:

La primer parte, hasta el segundo comment, hace que cuando tipiemos un paréntesis (, llave { o corchete [, lo cierre automáticamente con su contraparte ) } ] y posicione el cursor en el medio de ambos. Interesante.

La segunda parte hace que se den un par de ENTERs automáticamente en el caso de ser llaves, ubicando el cursor en la línea del medio…

{

| — CURSOR

}

Como instalarlo:

En realidad se puede tirar así como viene en el .vimrc, pero yo por amor a la prolijidad del código lo puse en un archivo en ~/.vim/plugin/autoclose.vim . Si lo ponen ahí el vim lo incluye solo.

mmh, qué más decir… es ALTAMENTE RECOMENDABLE este truquito. Me hace acordar a un video que ví hace mucho de un tipo que explicaba qué cheto que era programar en Ruby On Rails, y usaba Vim, y tenía estas pavadas, y yo dije “aaah quiero programar asiiii”.

La idea del script la saqué de acá, y la última línea donde agrega los ENTERs la leí en los comments de acá. Les recomiendo que copy-pasteen de esos sitios, y no del mío, porque las comillas dobles y simples están mal y no les va a andar nada.

Me voy a seguir investigando como cambiar los shortcuts del autocomplete.

Leyendo (otra vez, me falta un verbo) el blog Web Jam de nozuan, vi este post ¿Qué clase de Geek eres? y me pareció muy “posteable”. Aunque no voy a reproducir el contenido ( ya que últimamente están criticando mucho a la blogosfera por copypastear sin razón), linkeo a su post y pongo un poco de contenido explicativo/de opinión/aditivo (???)
De izquierda a derecha:
  1. geek fan (trekkie, comiquero, etc)
  2. music geek
  3. gamer
  4. gadget geek
  5. hacker (o power user)
  6. otaku
Para la descripción de cada tipo de geek, refiéranse al post de Nozuan.
y el comentario…: Creo que soy un poco de cada uno (para variar), menos el otaku… Me gusta un poco el anime pero sus freakeadas no las tengo

browseando* un post de blogenserio me puse a divagar sobre el tema de este post.

Hablan de usar imágenes de Flickr que tengan licencias Creative Commons ( y me imagino que quisieron decir Licencia CC non-comercial como mínimo). Y me puse a recapacitar en mi uso indiscriminado de imágenes de la web.

respetemos el arte de los fotógrafos amateur.

Muchas veces, cuando blogueo algo, le pongo fotitos referidas al tema, comunmente para aumentar los puntitos de humor del post. Esas fotitos suelen ser imágenes resultados de Google image search. Y no solo busco y pongo imágenes sin considerar su “Licencia”, sino que, cuando puedo, la Hotlinkeo. Pasemos a explicar ambos conceptos, de a uno, para el que no lo sepa:

Licencia: en cuestión de imágenes en la web, asumo que es algo parecido al Software License Agreement. En resumen, una licencia permite a otros usar la foto gratis o garpando. En el caso de Licencias Creative Commons, podemos licenciar cualquier obra (un programa, una canción, una foto, etc) como “non-comercial” ( podemos usar la obra pero sin fines de lucro ), “share-alike” ( La obra la debemos distribuir tal cual la obtuvimos, sin modificaciones) y “attribution” ( debemos dar crédito al creador de la obra ). Igual estas descripciones son muy básicas, recomiendo que las lean en el sitio de CC.

Hotlinking: también conocido como Inline Linking, es básicamente el hecho de poner contenido web de un sitio A en mi sitio B. Por ejemplo, mi blog muestra una foto que en realidad está hosteada en otro website.

Este fue uno de los resultados de Google Image Search a “Hotlink”

El hotlinking estaba muy mal visto hace un tiempo, en la era del dial-up, cuando hotlinkear una img en mi sitio no solo me liberaba consumo de banda mensual a mí, sino que le morfaba el del sitio host de la foto. Pero estos son otros tiempos; en una era en que un pelotudo se pone de emoticon un signo de admiración gigante y luminoso que pesa más que un mp3, o que el background-image de un sitio es un wallpaper de 1024×768px, no tiene sentido quejarse del hotlinking.

Aún así, me veo obligado a bajar las imágenes que quiero postear y subirlas al blog. No por un tema de respeto al host ajeno, sino porque por ahí en 3 meses esa imagen no existe más y queda una broken-image en mi post. No da.

Pero en las licencias me sigo cagando, cual pirata argentino usuario de Windows, que no tiene idea lo que implica porque en su puta vida desembolsó para un original de nada. Pero yo, en el ámbito imágenes, me siento justificado.

A ver, se sabe que cuando subís algo a internet, no es más tuyo. Pasa a ser de todos. Sea una foto, tu dirección de mail, el tema que grabaste en el garage con tus amigos, o el trabajo práctico grupal de química. Nadie te garantiza que eso que subiste no vaya a caer en manos de un desquiciado en un depto de Macronishia, y que se toque con las fotos de la navidad en lo de tu tía, o que se ría con sus amigos del riff trillado o el solo pifiado de tu canción.

Las imágenes en la web deberían ser libres por default… Siempre y cuando tengan usos inocentes, como “humorizar un post”, o “usarlas de avatar en un foro de Lineage2″. Obviamente hay una fina línea que separa la inocencia del “carajo” ( del típico “te fuiste al carajo” ), por ejemplo, no da usar la foto de las vacaciones de un polaco en la tapa de mi libro recién editado, ni sonorizar el trailer de mi película con el tema 2 del demo de una banda de unos pibes de Longchamps.

Seamos conscientes. Robemos con causas justas, como hacía Robin Hood. O, robemos pero no tanto, como hace mucha gente en este rincón del mundo.

* Browseando un blog? Tenemos que buscar/inventar un verbo nuevo para la acción de leer blogs. Digo, bloguear = escribir algo en un blog … Falta uno para los lectores.

Leyendo en un blog mientras trataba de arreglar el puto Pidgin, me topé con este ad:

resulta que vivo en Avellaneda. Ahora vuelvan a ver la imagen y entiendan a qué intento llegar.

Siempre supuse que esos adverts ( como los de “AdultFriendFinder” ) tenían la “location” personalizada solo para ciudades o estados de USA (y como mucho de Europa u otros lugares primermundistas). Y estoy acostumbrado a que como mucho digan “Chicas de Buenos Aires” o “Vivo en Federal y quiero conocerte”. Ahora resulta que ya saben en qué localidad vivo. Sí, en Third-World’s Argentina también.

Es bueno saber que, si me quieren tirar una bomba atómica, ya solamente por mi conexión de internet masomenos le pegan a mi casa.

Asumo que es el ISP el que da esa información. Ya sabemos que un webhost puede saber qué web-browser usás, qué SO usás, y hasta hace un tiempo, de qué país eras. Me estoy preguntando, además de para avisos personalizados, ¿Para qué sirve que un webhost sepa esta nueva información de sus visitantes? Porque algún propósito menos tenebroso debe haber. ¿no?

En cualquier momento, mientras navegue por internet, voy a ver un aviso que diga “Puterío a dos cuadras de tu casa !! Vení YA !!” con un link a google-maps mostrando el recorrido más corto al puterío.