Archivo de la categoría Programación

Cambiar idioma de una presentación Powerpoint



Suena absurdo, pero PowerPoint no permite cambiar el idioma de todos los cuadros de texto de todas las diapositivas de una presentación. Así que si por ejemplo, partimos de un archivo que contiene una presentación en inglés, que queremos traducir al castellano, tendremos que ir recorriendo cada uno de los cuadros de texto, y cambiando su idioma, para que el corrector ortográfico no nos marque su contenido como incorrecto.

La solución es usar una macro VBA, que haga justamente eso. Por suerte para nosotros, lo podemos hacer con mucha facilidad.

1) Cogemos el código de la macro siguiente y pulsamos CTRL-C (Copiar):

Option Explicit Sub CambiarIdioma() Dim oSlide As Slide Dim oShape As Shape Dim sLocale As String   sLocale = InputBox("Introduce el idioma de destino:" & vbCrLf & "- 1033: Inglés (Estados Unidos)" & vbCrLf & "- 3082: Español (Internacional)" & vbCrLf & vbCrLf & "Más en: http://msdn.microsoft.com/es-es/goglobal/bb964664.aspx", "Idioma", "1033") For Each oSlide In ActivePresentation.Slides For Each oShape In oSlide.Shapes If ((oShape.Type = msoTextBox) Or (oShape.Type = msoPlaceholder)) And oShape.HasTextFrame Then oShape.TextFrame.TextRange.LanguageID = sLocale End If Next Next End Sub

2) Pulsamos ALT-F11 (Editor de Visual Basic for Applications).…

Continuar leyendo...

Me gusta… de la informática



Desde mis inicios, hasta la época del shareware, es decir, cuando podía dedicarle tiempo (y mucho) a lo que realmente me llamaba la atención, había determinadas tareas que me encantanban.

En aquel momento no me lo había planteado, pero tenían mucho que ver con la programación de sistemas y la seguridad. Quizás por ser aspectos poco documentados y conocidos, que potenciaban la imaginación y el buscarse la vida de cada uno, el caso es que eran divertidos de poner en práctica.

Eran tiempos de ordenadores de 8 bits, o de DOS, plataformas que te dejaban gran libertad a la hora de hacer lo que quisieras.…

Continuar leyendo...

Shareware



Hoy vuelvo con las batallitas del abuelo cebolleta, esta vez para hablaros del shareware.

En 1982, Jim “Button” Knopf, crea PC-File, y decide distribuirlo como “user-supported software”, o sea “software soportado por el usuario“. Poco después, Bob Wallace crea PC-Write y lo distribuye como shareware.

Ambos términos quieren decir lo mismo. El autor cedía una copia de su programa, con el fin de ser evaluado por los usuarios, que éstos podían posteriormente comprar directamente al autor.

Hasta entonces, el software era bien gratuito, bien comercial, distribuido y comercializado por una distribuidora o una casa de software, de manera que esta nueva filosofía fue realmente innovadora.…

Continuar leyendo...

Tipos de datos



Cuando empezaba a tocar el Spectrum, empezó a llamarme la atención que los números ocupasen tanto espacio. A mi modo de ver, era como si los guardase internamente como una cadena de caracteres. Poco me podía imaginar yo lo que era la representación de números en coma flotante, o que el Basic manejase todos los número de la misma forma.

Con el tiempo fui profundizando, y me impresionó ver como un procesador de 8 bits como era el Z80, y que tenía instrucciones para manipular 16 bits de golpe, pudiera manejar números en coma flotante de 40 bits. Lógicamente eso era bajo el precio de añadir procesamiento y memoria extra.…

Continuar leyendo...

Hints y anotaciones



Cuando escribía likely, unlikely y __builtin_expect, me vinieron recuerdos de antaño. Me refieron en concreto a los hints o anotaciones. Es decir, añadidos que se hacen en el código fuente, con la finalidad que el documentador, compilador, intérprete o cualquier otra herramienta, pueda leerlos.

El caso de la macro likely, era evidente, un añadido que no afecta al código fuente, pero que sirve para indicar al compilador como mejorar el código que genera.

En realidad, las anotaciones, son algo que se usan con bastante frecuencia en casi todos los lenguajes de programación. Por ejemplo Google Closure Compiler y JSDoc usan los suyos para mejorar la velocidad de ejecución, detección de errores, y el detalle de la documentación respectivamente.…

Continuar leyendo...

likely, unlikely y __builtin_expect



Estaba cotilleando las novedades de GCC, y me he encontrado con lo que llaman __builtin_expect. Esta macro, permite indicar al compilador la probabilidad de una condición, de manera que el predictor de saltos sea capaz de generar un código más eficiente.

Lo habitual es que se usen con una macro más legible llamada likely / unlikely, y que indica una probabilidad alta, y una baja respectivamente.

Imaginemos un fragmento de código que lee un pixel, y en el caso de ser de color negro, retorna cierto, y falso en caso contrario:

if (GetPixel() == BLACK) { return(true); } else { return(false); }

Digamos que el compilador podría traducir este código a x86 de una forma parecida a esta:

call GetPixel cmp eax, BLACK je true false: xor eax, eax ret true: mov eax, 1 ret

De este modo nos encontramos que a nivel de lenguaje máquina, cuando el píxel sea de color negro, entonces se ejecutará el salto a la etiqueta true: y retornará cierto.…

Continuar leyendo...

¿Quién gana dinero con los Bitcoin?



Estoy seguro que todos habéis oído hablar de los Bitcoins o BTC, la moneda virtual de moda. Por supuesto yo tambíen había oído de ella, pero no fue hasta que Sergi, me dio más detalles, que no profundicé en el tema.

Para que todos lo entendamos, un Bitcoin es una divisa virtual, con conversiones a dinero real. En este sentido sería como una acción, o cualquier otra moneda, yo puedo comprar Bitcoins, o venderlos, a cambio de moneda real, sobre el tipo de cambio establecido.

Sin embargo, a diferencia del dinero real, que no se apoya en nada, recordemos que el patrón oro dejó de utilizarse en la década de los 1970, los Bitcoin se apoyan en un bien también escaso.…

Continuar leyendo...

Permisos Windows por linea de comandos



Una de las cosas que más me gusta de UNIX es que toda su gestión se puede realizar directamente desde la consola de comandos. Parece mentira que después de tantos años usando Windows, no hubiera descubierto hasta fecha muy reciente, que en el entorno de Microsoft esto también es posible.

En especial la gestión de permisos, y de propietario NTFS, son bastante tediosas usando el entorno gráfico. Ya sabéis como funciona esto, cualquier error que se produce en un archivo, implica que debas responder Continuar o Cancelar de manera interactiva, así que nos podemos pasar la vida haciendo clic en ese dichoso botón.…

Continuar leyendo...

Desarrollo de software estándar



Hace unos días surgió una conversación interesante en el foro de encode.ru. Phil de Northstone, lanzaba una campaña de donación para BulkZip.

A modo de introducción, Bulkzip es una de esas herramientas que surgen desde matrices no técnicas, y que fundamentalmente se encargan de intentar obtener beneficios aprovechando otras herramientas gratuitas.

En este caso concreto, lo que hace es encapsular software de código abierto como FreeArc o zPaq entre otros, bajo una interfaz de usuario propia, que venden a 9,99$. No contentos con eso, mediante la citada campaña, planean obtener un extra de 2.000$.…

Continuar leyendo...

conio.h



La biblioteca de C CONIO (CONsole Input Output), conocida popularmente como conio.h por su archivo de cabecera, es sin duda uno de los recuerdos más intensos de desarrolladores de C durante los años 80 y 90.

Pese a no formar parte del estándar ANSI, ni POSIX, conio se ha llegado a portar a diferentes plataformas: DOS, OS/2, Win32, Win64, etc. Está disponible también en diferentes compiladores, incluso en sus versiones más recientes, como Visual C++, Digital Mars C++, Embarcadero C++ Builder, DJGPP C++ o OpenWatcom C++.

Aunque se implementó inicialmente por Lifeboat Associates como parte de Lattice C 1.0 (1982), no fue hasta que Borland lanzara Turbo C 1.0 (1987) que conio.h cobraría gran popularidad.…

Continuar leyendo...