sábado, enero 26, 2013

vim: Introducción a comandos (I) (Act)

Una de las las características más potentes que tiene el editor vim es la de definir nuestros propios comandos . La ejecución de las mismas puede hacerse desde el modo de comandos, o se puede asociar a una determinada combinación de teclas para que se ejecute cuando se pulse. Los comandos están compuestos de órdenes del editor, son capaces de cambiar el modo de este y de llamar a funciones escritas en vimscript para realizar las tareas que se le indiquen.

Los comandos se definen en la línea de comandos o en nuestro fichero .vimrc. Para definir un comando se usa la orden command seguido del nombre que vaya a tener. Hay algunas restricciones a la hora de elegir el nombre: Según la documentación de vim, debe de empezar por una letra mayúscula1. Si se quiere sobreescribir un comando con el mismo nombre, lo que se hace es usar command!. Si se quiere borrar un determinado comando se usa la orden delcommand seguida del nombre a borrar. Para listar todos los comandos que hay definidos se usa la orden command sin parámetros. Todas estas órdenes deben de hacerse en modo de comandos.

Por ejemplo, si se quiere hacer un comando llamado Insparagraph, que inserte una nueva línea, inserte el siguiente texto:


<p style="text-indent:30px;">
</p>

Además, se quiere que el cursor quede situado en el nuevo entre la línea que está entre los etiquetas HTML. Para ello, nos ponemos en modo comandos, e introducimos el comando:

command Insertparagraph :normal o<p style="text-indent:30px">^M^M</p>^[k

La línea anterior crea el comando Insertparagraph que hace lo siguiente:

  1. Pasa el editor a modo normal con :normal.
  2. Pasa el editor a modo inserción en una nueva línea con o.
  3. Escribe el texto.2
  4. Se pasa a modo normal, con ESC (^[).
  5. Se mueve a la línea anterior con k.

Para llamar a este comado lo único que hay que hacer en modo de comando es escribir Insertparagraph. Funciona el completado de comandos, de tal manera que si se pulsa la tecla TAB nos irá mostrando los diferentes comandos que coinciden con el texto introducido.

Si se quisiera borrar la comando anterior, se usaría la orden delcommand Insertparagraph.

Actualización

Aunque para mi, estos comandos son equivalentes a lo que suelo llamar macros, he quitado dicha definición para ajustarme a la terminología del vim, donde macros pueden ser secuencias de teclas que se graban para ejecutarse posteriormente.

Notas

  1. Puede empezar por un número, pero no es aconsejable. Tampoco se puede usar los nombres de comando X, Next o Print
  2. Para introducir caracteres espaciales como ^M o ^[ (Escape) lo que se hace es pulsar CTRL-V enter en el primer caso y CTRL-V Esc para el segundo.

Technorati Tags: ,


domingo, enero 20, 2013

La curiosa razón detrás del Amstrad 472

Hace un par de meses, repasando algunas webs dedicada a los ordenadores de los años 80, llegué a una que hacía referencia al Amstrad CPC 472. Recordaba, bastante bien, que pregunté a uno de los dependientes del Corte Inglés de Sevilla, para que servían esos 8 kbytes de más que llevaba la máquina respecto al original CPC 464, y me contestó que de buffer de impresora (sabía por aquellos entonces que el Z80A que llevaban estos ordenadores no eran capaces de direccionar más de 64 Kbyte de RAM a menos que implementase técnicas de conmutación de bancos como las que utilizaba el CPC 6128).

Lo curioso de todo el asunto de este ordenador fue lo que descubrí leyendo Hypothesis & Facts (compiled by deepfb) en una página dedicada a los antiguos 8 bits de Amstrad, CPCWiki

Por aquellos entonces, el gobierno, en el Real Decreto 1215/1985, introducía un arancel de entrada de 15000 pesetas para cualquier ordenador que tuviese 64 Kbytes, o menos de memoria RAM. Para hacernos una idea, un ZX Spectrum debía estar entre las 40000 y 50000 pesetas de la época. ¿Y qué hizo el distribuidor de Amstrad?. Pues añadirle esos 8 Kbytes de más. Estaban en una especie de plaquita que se conectaba a un zócalo, junto a la ROM del equipo - en el resto de los equipos iba soldada a la placa -. Pero lo mejor de todo es que dichos 8 Kbytes de RAM no estaban conectados eléctricamente, es más es probable que los posibles chips usados para la supuesta lógica, no fueran sino integrados defectuosos.

Sin embargo, sólo he descrito el arancel que afectaba a los llamados microordenadores, porque había otro arancel aún mucho más caro que afectaban al resto de los equipos informáticos.... ¡de casi 300000 pesetas la unidad. Para haceros una idea, el CPC 6128 que yo tenía, le costó a mi padre unas 100000 pesetas. Ante dicho arancel, los importadores de equipos (hablamos de IBM, Dec, ...) se reunieron e hicieron presión sobre el gobierno, lo cual llevó a publicar en pleno mes de agosto el Real Decreto 1558/1985 donde dejaban sólo el arancel para los microordenadores.

Todos estos aranceles desaparecieron tras la entrada de España en la Comunidad Económica Europea el 1 de Enero del año 1986.

Lo interesante de toda esta secuencia de hechos es que vemos en acción al clásico capitalismo ibérico, alérgico a la competencia y en conchabeo con el gobierno de turno, que quiere que a través del BOE se le proteja el particular chiringuito.

¿Y qué fabricantes podían estar detrás de dichos movimientos?. Pues parece ser que uno de los posibles implicados podría haber sido Eurohard, que se hizo con los derechos de Drangon Data para fabricar ordenadores Dragon 32 y Dragon 64 en España. Entre los que aportaron capital estaba Sodiex - no nos debemos de extrañar que el concurso que hubo en Extremadura para informatizar aulas se lo llevara Eurohard - y la Diputación de Cáceres (puede verse más sobre dicha empresa en la entrada Eurohard de Museo 8 bits).

La incómoda pregunta que me hago, tantos años después, es si la edad dorada del desarrollo de juegos para 8 bits que vivió España a finales de los años 80 hubiese sido posible si este arancel hubiese seguido, no digamos ya la dificultad para informatizar las empresas, cuando por cada unidad importada, el importador hubiese tenido que pagar 300000 pesetas de la época, que repercutiría sobre los clientes.

Algunos dirán, que eso hubiese favorecido la industria local, pero es falso: Los aranceles al final lo que acaban es haciendo que los consumidores paguen productos más caros para acabar favoreciendo a grupos de presión. ¿O es que ustedes no recuerdan como los franceses querían a toda costa evitar que las frutas y hortalizas españolas entraran en su país?. ¿Nadie recuerda la destrucción de hortalizas y fruta? Y lo que protestábamos los españoles entonces....


Technorati Tags: ,

sábado, enero 19, 2013

Ingeniería inversa de un juego de Wii

Alberto, un compañero de trabajo, me ha pasado un par de urls interesantes sobre ingeniería inversa de juegos para en la consola de Nintendo:

El autor, bajo la etiqueta wii tiene otra serie de artículos (algunos en francés) sobre la Wii. Es especialmente interesante la serie que tiene para leer los discos de la Wii desde Python.

A través de los artículos he llegado a Dolphin, un emulador de Nintendo Wii y Gamecube, que puede ejecutar sin problemas la inmensa mayoría de juegos para dichas consolas, con el aliciente que pueden hacerlo hasta una resolución 1080p, cosa que la Wii normal no puede.


Technorati Tags: ,

lunes, enero 14, 2013

Como se gestó parte de la creación de Indra

Suelo comprar el diario Expansión de vez en cuando. En el del sábado día doce, en la sección Retrato a Color venía un curioso artículo sobre la empresa española Ceselsa, desde su creación hasta el ahogamiento financiero por parte del gobierno de España (en aquellos tiempos en manos del PSOE), para forzar su fusión con otras empresas - algunas de ellas públicas - para crear Indra. Es un pequeño compendio de como ahogar a una empresa privada que ganaba dinero frente a empresas públicas que no hacían más que perderlo. Y dichos vicios, se prolongan hasta hoy. Algunos párrafos extraídos de dicho artículo:

...Tanto éxito, tantos contratos ganados a empresas del INI estatal, sea Inisiel o sea Casa, tanta iniciativa privada no sometida a los diktats del Gobierno acabó por desperezar al oso: ¿cómo es posible que una empresa privada se forre a ganar dinero, mientras otra pública mucho más grande no hace más que perderlo?...

...Llegó la homologación, pero el secretario de Estado de Defensa dejó entender que no habría adjudicación sin fusión con Inisel...

... cuando un funcionario le enseñó un cheque del Banco de España por 500 millones a favor de Ceselsa, que, le dijo el funcionario, tenía orden de aplazarlo. En 1992 se firmó la inevitable fusión y, meses más tarde, el contrato de los 13 radares se adjudicó a la empresa fusionada...

Si tienes ustedes oportunidad de leer el artículo completo de Expansión no deje de hacerlo.

En este otro artículo de El País puede leerse como el Ministerio de Industria insta a Ceselsa e Inisel para que reanuden las negociaciones de fusión , es decir orden como o quien debe de quedar para la electrónica de defensa y cual debe ser la composición del accionariado.

El proyecto del Ministerio de Industria, expuesto el pasado mes de julio por el propio titular del departamento, Claudio Aranzadi, se orientaba a la creación de una gran empresa de electrónica de defensa, participada en un 40% por cada una de las dos empresas, quedando el 20% restante en manos de terceros socios, principalmente entidades financieras que, como en el caso del BBV, ya participan en el capital de Ceselsa.

Con el Estado controlando la economía hasta ese nivel - por cierto, sigue pasando exactamente igual - ¿Por qué creen ustedes que los políticos acaban colocados en los consejos de administración de grandes empresas, en especial aquellas que provienen de viejos monopolios públicos? - todavía hay despistados por ahí que piensan que viven en un mundo neoliberal.

Otro capítulo de este tipo de actuaciones puede verse a mitad de la década de los 80, con la comercialización en España del Amstrad 472, o como una empresa tuvo que inventarse una manera de vender ante una restricción impuesta por un gobierno parece ser que para favorecer a una empresa autóctona frente a la competencia en la que el gobierno había invertido dinero a través de su banca pública.


Technorati Tags: ,

jueves, enero 10, 2013

Unas perlas de una entrevista a José María Gay de Liébana

Jose María Gay de Liébana es doctor en Economía y Derecho, profesor titular de Economía Financiera y contabilidad en la Universidad de Barcelona. En una entrevista en el diario de Aragón deja caer unas perlas sobre las cajas de ahorro que son de traca:

Hemos visto a una profesora de danza en el Consejo de la CAM
O que la secretaria personal de Esperanza Aguirre, la que le llevaba la agenda, estaba en el Consejo de Bankia cobrando 304.000 euros

Y sobre las cajas de ahorro:

Las cajas cumplieron un papel social y económico fundamental. La financiación de proximidad, de la pequeña y mediana empresa o del comerciante, siempre contaba con el apoyo de su caja de ahorros. En esas entidades había profesionales muy bien preparados y experimentados. Pero cuando los políticos se dieron cuenta de que el dinero estaba en las cajas de ahorros, prepararon el asalto a través de las rendijas existentes. Se han dedicado a arruinarlas no teniendo ni idea de lo que es un balance, dando créditos y más créditos a las empresas amigas, a los compincheos, y con el dinero a fondo perdido a los partidos políticos.

Es autor del libro España se escribe con E de Endeudamiento: Radiografía de un país abocado al abismo, donde desgrana en qué nos hemos endeudado los españoles.


Technorati Tags: ,

vim: Activando el corrector ortográfico al crear o cargar un fichero

Una funcionalidad de vim que se usa bastante son los autocomandos. Con ayuda de ellos se puede ejecutar código vimscript para ejecutar acciones y cambiar la configuración de los buffers a nuestro gusto. Por ejemplo, uso esta funcionalidad para activar el corrector ortográfico del vim cuando edito ficheros para el blog.

Normalmente los ficheros que utilizo para subir al blog tiene el patrón blog\d+.html donde \d+ son uno o más números naturales. Sabiendo esto, con ayuda de los eventos BufNewFile y BufRead configuro el editor para que me active el corrector ortográfico con el español en los buffers cuyo nombre de fichero coincida con el patrón anterior. Para ello introduzco en mi .vimrc lo siguiente:


au BufRead,BufNewFile blog\d\+.html setlocal spell spelllang=es


Technorati Tags: vim

miércoles, enero 09, 2013

vim: Corrector ortográfico

Una posibilidad que tiene el vim es de revisar la ortografía conforme se va escribiendo y en caso de detectar un error, señalarlo y si se desea, consultar las posibles sugerencias de correción.

Activación básica del corrector

Para activar el corrector ortográfico en un buffer determinado lo que se hace es establecer la variable spell y especificar en la variable spellang el lenguaje que vamos a usar. Por ejemplo, para poder usar el español la orden sería setlocal spell spelllang=es. Una cosa importante es que sólo modifico la opción local, puesto que sólo me interesa que ciertos buffers usen la corrección ortográfica.

En caso de no existir los correspondientes ficheros de diccionario, vim - al menos la versión que yo utilizo - se bajará los mismos del archivo ftp del vim.org y los instalará en nuestra máquina1. Una vez que esté instalado y cargado, vim analizará la ortografía de las palabras, subrayando aquellas que desconoce y ofreciéndonos sugerencias para las mismas, si estamos en modo de inserción pulsando CTRL - x s, que desplegará una lista con las posibles sugerencias, como puede verse en la siguiente captura de pantalla.


Moviéndose entre palabras con errores

Todas estas órdenes se introducen con el editor en modo normal.

  • ]s Ve a la siguiente palabra errónea después del cursor.
  • [s Busca la anterior palabra errónea a partir de la posición del cursor.
  • ]S Igual que el primer caso, ignorando las palabras raras o de otra región.
  • [S Igual que el segundo caso, ignorando las palabras raras o de otra región.

Añadiendo nuevas palabras

Como todo corrector ortográfico puede que tenga que trabajar con palabras que no esté incluidas en el diccionario interno. vim maneja dos listas de palabras. Una interna, que es usada por todos los buffers que tengan activada la corrección ortográfica y otra lista de palabras que es particular a cada buffer y que se almacena en la lista de ficheros que se configura a través de la variable local del buffer spellfile. Si no se especifica el path correcto, se creará en el directorio actual. El nombre del fichero debe de terminar en ".{encoding}.add" donde {encoding} es la codificación de texto que utiliza el fichero que estamos editando.

Si se quiere añadir la palabra que está situada bajo el curso a la lista interna como correcta se usa la orden zG, mientras que si se quiere añadir a la lista de cada buffer se usa la orden zg. En el caso de que se quiera marcar una palabra como incorrecta en la lista interna se usa la orden zW mientras que en la lista de cada buffer se usa zw. Estas órdenes deben de introducirse en modo normal - también llamado modo de comandos -.

Toda la documentación del corrector ortográfico puede consultarse con la orden :help spell en el modo de línea de comandos o en la web en Vim documentation: spell

Notas

  1. Tengo curiosidad hasta que punto dicha automatización en bajarse ficheros puede ser un vector de ataque.

Technorati Tags:

martes, enero 08, 2013

Cambios en el periodo de aplicación de Basilea III

Ayer se produjo un cambio significativo en el periodo de aplicación de las nuevas reglas de liquidez para los bancos recogidas en los acuerdos de Basilea III (inglés). El cambio que puede consultarse en Banks Win 4-Year Delay as Basel Liquidity Rule Loosened es que se produce un retraso de cuatro años en la aplicación de las normas.

Una cosa muy interesante, y que parece que ninguno de nuestros políticos parecía darse cuenta es que era imposible que la banca se recapitalizara , aumentado los ratios de capital y simultáneamente diera crédito. Lo que nunca sabremos es la cantidad de tejido productivo destruido por este credict crunch en parte causado por los reguladores, empresas que serían perfectamente viables pero que han tenido que cerrar por problemas de liquidez, porque la banca se ha negado incluso al descuendo de papel comercial.

Si queréis ver un análisis más profundo del tema, podéis ver el artículo de Sefuelix Inesperado regalo de Reyes: volveremos a ver crédito en Desde el Exilio. Copio de dicho artículo:

Resumo los antecedentes. Basilea 3 es un conjunto de normas diseñadas para incrementar la solvencia de las entidades financieras. Ideada en el momento correcto, se iba a implementar en el momento más inadecuado. Iba a incrementar todavía mas el credit crunch que estamos viviendo. Toda declaración acerca de que se incrementaría el crédito con tal o cual norma, era un brindis al Sol mientras no cambiase esta norma fundamental.
Ya hay quien ha calificado esta reforma como el Quantitative Easing de Basilea (inyección salvaje de liquidez al mercado). Yo diría que lo que pasa es que cambiamos el engranaje roto, que hacía inútiles todas las medidas tomadas para paliar la crisis, por uno nuevo que hará que algunas de ellas consigan sus objetivos. Si evitamos retirar del mercado una cifra aproximada de (2400*40%)*2,5= 2.400 billones de euros, equivale en cierta forma a inyectarlos, pero sus efectos no serán exactamente iguales


Technorati Tags:

Lo que están demostrando los sindicatos de Telemadrid

Estas Navidades, mientras cambiaba de canal, solía aterrizar en la posición que tengo asignada a Telemadrid, para encontrar una pantalla en negro. La tele pública de la Comunidad de Madrid lleva en huelga bastante tiempo debido a un expediente de regulación de empleo para una gran parte de la plantilla. El problema es que esas pantallas en negro están demostrando una cosa que los sindicatos no se dan cuenta: que no son un servicio público y que , por tanto, no tienen que cobrar del presupuesto público que pagamos todos los contribuyentes. Dada la variedad de canales disponibles en TDT - no digamos ya si sumamos la multitud de contenido multimedia que puede obtenerse a través de streaming en Internet -, hay poca gente que notará la no emisión del canal.

Por lo tanto, Telemadrid - realmente como la gran inmensa mayoría de las cadenas públicas - debe de dejar de financiarse del presupuesto público, privatizarse y competir. Y si no es capaz de ello, cerrarse.

¿Hay a día de hoy hueco para una cadena pública?. Probablemente, sí, pero sólo dar auténtica información de servicio como puede ser meteorología, estados de carretera o coordinación de emergencia para caso de catástrofes. Pero desde luego, eso no necesita el actual coste de más de 2000 millones de euros que nos cuestan a los contribuyentes todo el aparato propagandístico público, que es en lo que se han convertido.


Technorati Tags: ,

lunes, enero 07, 2013

Juegos clásicos de 8 bits (I)

Hace muchos años, el día de Reyes me encontré con un regalo que no esperaba. Un flamante Amstrad CPC 6128 con un monitor en color. Estos días atrás, me bajé el Arnold, un emulador de Amstrad1 para MacOS X, y estuve disfrutando de alguno de esos viejos clásicos que me entretuvieron tardes (y noches). Con el paso de los años, para mi la noche de Reyes tiene mucho de nostalgia. Supongo que por eso, esta tarde me he puesto a recordar alguno de aquellos juegos, que para mi son clásicos. Os dejo la primera parte de una lista y algunas capturas de pantalla de aquellas pequeñas maravillas que se ejecutan en un micro que sólo era capaz de direccionar 64 Kbytes de memoria y a una velocidad de 4 Mhz.

Head Over Heels

No se las las horas que habré pasado jugando a esta maravilla, cúspide de las técnicas isométricas. Disfruté (y de vez en cuando todavía lanzo el emulador para picarme un poco) con esta maravilla programada por Jon Ritman. Lo curioso es que hay gente que se ha animado a hacer un ramake del mismo. Aunque haya elegido a este no puedo olvidarme del maravilloso Batman desarrollado por el mismo equipo de programacion.





Kight Lore

El juego que abrío la puerta al uso de la perpestiva isométrica usando la técnica Filmation. Le tengo especial cariño, quizás porque fue uno de los primeros que me pasaron y pasé muchas horas con el mismo. Reconozco que me dedicaba a dar vueltas por las pantallas, llevando objetos, hasta que encontré qué había que hacer exactamente: Ir a la sala donde está el caldero e ir introduciendo en el mismo los objetos en el orden en el que aparecían. Eso sí, sin pokes de vidas infinitas era jodida la cosa.


Bruce Lee

Aunque este viejo juego de 1984 no es lo mejor de gráficos, si fue uno de los primeros que tuve. Creo recordar que venía en un pack de diez juegos que publicó Erbe Software por la época, en cinta. Toda una odisea de ajustes de azimut para cargarlo, pero un juego de plataformas divertido.


Green Beret

Esta era la conversión de la recreativa de Konami, que en el Amstrad tenía el particular truco que si conseguías dejar a tres enemigos en la pantalla e ir avanzando no te salían más. Buena manera de terminarse cada una de las 4 fases ;). Eso si, un pequeño problema que le recuerdo al juego es ese scroll a "saltos" que daba la pantalla.





Game Over

Por último para esta entrada traigo un viejo clásico de machaca marcianos de plataformas de la casa Dynamic. Dividido en dos fases (10218 la clave para pasar a la segunda parte), teníamos que acabar con la cruel Gremla. Mencionar la polémica de la portada de carga del juego y la decoración del disco donde venía - creo que atribuída a Luis Royo -. Fue uno de los machacamarcianos de plataformas que conseguí acabar :)





Notas

  • Una cosa que hice muy bien Amstrad fue poner las ROMs del mismo en dominio público para el que quisiera, pudiese construir emuladores. Lástima que muchos otros fabricantes no hayan querido tomar medidas similares.

Technorati Tags: ,