@ agnasg

agnasg


La chuleta definitiva de los comandos de vim que nunca usamos

19-06-2013 5:19 AM

En mi país uno de esos papelitos que escondemos debajo de la manga cuando vamos a presentar exámen con la intención de recordar las respuestas pero que no queremos que nadie se entere que estamos haciendo trampa se llama chuleta. Uff, que oración más larga. El punto es que he tenido que trabajar en linux (mentira, hice trampa y trabajé en cygwin) y me forcé a trabajar en vim (o vi) el mejor editor en esta parte de la galaxia. Yo tengo 33 años trabajando con este editor así que se supone que debería conocerlo bien, pero no, todavía hay comando básicos que no conozco o recuerdo. Así que, de una vez y por todas, aquí está la chuleta definitiva de comandos de vim que nunca usamos y deberíamos usar:

Cómo abrimos otro archivo en una pestaña nueva (lo cual es más rápido que hacer :e # )

:tabe archivo

Cómo abrimos múltiples archivos en pestañas desde la línea de comandos

vi -p archivo1 archivo2…

Cómo cerramos una pestaña

:q

Cómo cerramos todas las pestañas

:qa

Cómo guardamos el contenido de todas las pestaña

:wa

Cómo cambiamos de una pestaña a la siguiente

:tabn

Cómo cambiamos de una pestaña a la anterior

:tabp

Cómo guardamos  estos comandos en el .vimrc para acelerar (por ejemplo asignar a <F7> y <F8>

map <F7> :tabp<CR>
map <F8> :tabn<CR>

Cómo copiamos parte de una línea

v<movimiento> y (luego hacemos p)

Cómo borramos un conjunto de líneas sin tener que contar (y sumarle 1)

mx<movimiento>d’x (donde x es la etiqueta)

Cómo copiamos, borramos y hacemos paste sin perder el buffer al borrar

v<movimiento>y <delete><movimeinto> “0p (donde 0 es cero, y el primer yank se puede hacer de múltiples formas incluyendo yy)

Fire something

04-06-2013 11:58 AM

Esta semana conocimos que Zynga está despidiendo/botando/echando de la compañía a 18% del personal. Lo impactante es conocer que están incluidos los empleados de OMGPOP, los que hace un par de años revolucionaron el ya revolucionado mercado de los teléfonos inteligentes con aquélla maravillosa aplicación conocida como Draw Something. Zynga compró a OMGPOP por $200 millones hace apenas un año, y al parecer fue un año de pesadilla, porque poco después de la adquisición las descargas de Draw Something se vinieron abajo, hecho que los jefes de Zynga se rehusaron a atribuir a la adquisición en sí. Los juegos de Zynga son terribles y sus prácticas comerciales son despreciables, es un ácaro en la pulga en la cola del león.

EDIT: una explicación simple de por qué Zynga va en caida. TL;DR: Zynga estuvo atada demasiado tiempo a facebook (con los más impopulares planes de dominación global) y al mismo tiempo se presentó el surgimiento de los teléfonos inteligentes, la popularidad de Sony PS, Nintendo DS.

… y ahora les presento el más grande programa escrito en C que aborta

24-05-2013 4:24 PM

Leí muy divertido este post sobre el programa más pequeño  que aborta en escrito en C. Luego de pasearse por esta posibilidad:

[cce]
int main()
{
return 1/0;
}
[/cce]
terminó con esta versión:
[cce]
main;
[/cce]
Esto compila y “corre” perfectamente usando MS VS. Es decir, quiero decir que aborta.

Me puse a pensar cuál sería uno de los programas más grandes escrito en C que aborta. No está 100% escrito en C sino en C++ pero creo que es un buen ejemplo:

[cce]
Win 98
[/cce]

Ese es un programa que aborta 100% seguro… afortunadamente nadie lo usa hoy en día.

¿Deja de usar linked lists?

23-05-2013 11:07 AM

¿Deja de usar linked lists? ¿Quién usa linked lists hoy en día? Yo jamás he usado linked list en aplicaciones reales, solamente como ejercicios de programación, pruebas de concepto, y en general situaciones irreales. Cuando se trata de aplicaciones web, no tiene sentido usar una liked list, PHP tiene arreglos, arreglos asociativos etc. Y en aplicaciones C++ utilizo un sistema de manejo de memoria que al inicio reserva una cantidad de memoria suficiente, y luego creo las estructuras que voy a necesitar, almacenadas en arreglos. Y en el peor caso, utilizo strings del STL. Yo creo que los linked lists son excelentes para explicar conceptos, pero en la vida real, un contenedor del STL es más que suficiente. Y si no quieres usar STL, utilizas el framework que prefieras. Una aplicación desarrollada con linked list es la obra de un novato que no sabe lo que es una aplicación de misión critica, donde los usuarios requieren una aplicación a prueba de fallas. Enlace.