Luego de haber instalado Windows 7 hace algunos meses, en un equipo donde tenía tanto el Windows XP como Ubuntu 9.04, quedó inaccesible este último. Esto debido a que el instalador de Windows no reconoce otro sistema operativo que no sea propio de Microsoft (a diferencia de Linux).

Se debe tomar en cuenta NO utilizar el Live CD de Ubuntu 9.10 para restaurar el Grub de las versiones anteriores de Ubuntu. Esto debido a que Ubuntu 9.10 y posteriores utilizan Grub2, que difiere mucho de la primera versión.

Lo primero que se debe hacer es iniciar la máquina con algún Live CD de Linux (como el de Ubuntu, que es el que utilicé en el proceso).

Una vez que está funcionando, abrimos un terminal. Vamos a necesitar los privilegios del root, por lo que lo más práctico sería ir al shell respectivo:

sudo -i

Luego, creamos un punto de montaje para la partición de Ubuntu:

mkdir /mnt/linux

Después, montamos la partición:

mount /dev/sda2 /mnt/linux

Donde sda2 (sd porque es un disco SATA, a por ser el primer disco duro, y 2 por ser el número de la partición) es la partición donde se encuentra Ubuntu. Si no estamos seguros de cual es la partición, podemos usar el programa GParted (visual) o el comando:

fdisk -l

Una vez que está montada la partición, podemos corroborar que sea la partición listando los archivos en ella:

ls -la /mnt/linux
ls -la /mnt/linux/boot

Luego de que estamos seguros que es la partición correcta, pasamos a reinstalar el Grub mediante el siguiente comando:

grub-install --root-directory=/mnt/linux /dev/sda

En caso aparezca algún error o advertencia, podemos probar el siguiente comando:

grub-install --root-directory=/mnt/linux /dev/sda --recheck

Donde sda hace referencia al disco (usualmente el primario) cuyo MBR será utilizado para instalar el Grub (ojo que NO incluye el número de partición).

Reiniciamos y deberíamos ver ya el menú de booteo del Grub.

Vía: Ubuntu Documentation

Tags: , , , ,

SpeedCrunch es una aplicación de escritorio bastante interesante, ya que es una calculadora muy completa y con características que la hacen muy práctica, por ejemplo:

  • Histórico de las últimas operaciones y resultados.
  • Hasta 50 decimales (bueno, creo que yo nunca he usado más de 6, como mucho).
  • Permite utilizar variables (ilimitadamente, o bueno, hasta que tu computadora aguante).
  • No requiere usar mouse (aunque si queremos, lo podemos usar), se puede trabajar cómodamente utilizando solo el teclado.
  • Completado de funciones mientras escribes.
  • Más.

Además, se puede utilizar en Windows, Linux y Mac OS, lo que la hace aún más práctica.

Tags: , , ,

Subrutinas para VBA

Excel, Windows July 10th, 2009

Por más que no sea un gran fan de Microsoft, debo admitir que el Office es un buen producto. A mi me gusta especialmente el Excel por la cantidad de cosas que se pueden hacer con él. Si además, lo utilizamos en conjunto con VBA (el pequeño entorno de desarrollo en Visual Basic que está metido dentro del Office), el número de posibilidades se incrementa exponencialmente. Es cierto que el VB está muy, muy lejos de ser el mejor lenguaje de programación, pero en este caso cumple su cometido (aunque muchas veces extrañe las ventajas de lenguajes más elaborados como C#).

Bueno, regresando al tema de este post, quería colocar acá algunas subrutinas que utilizo cuando programo en VBA. Creo que pueden ser útiles a más de uno, además que me sirven a mi cuando comienzo un nuevo proyecto.

' Adds a new worksheet to the current workbook.
' Name of the sheet should be pass as a parameter.
' If a sheet with the same name already exists, it is deleted prior creation.
Sub AddSheet(sheetName As String)
    RemoveSheet (sheetName)
    ' Added as last sheet
    Sheets.Add After:=Sheets(Sheets.count)
    Sheets(Sheets.count).name = sheetName
End Sub
 
' Deletes a worksheet from the current workbook.
Sub RemoveSheet(sheetName As String)
    Dim alerts As Boolean
    If SheetExists(sheetName) Then
        alerts = Application.DisplayAlerts
        ' Avoid alert on delete
        Application.DisplayAlerts = False
        Sheets(sheetName).Delete
        Application.DisplayAlerts = alerts
    End If
End Sub
 
' Returns TRUE if there is a worksheet with the given name on the active workbook.
Function SheetExists(sheetName As String) As Boolean
    SheetExists = False
    On Error GoTo NoSuchSheet
    If Len(Sheets(sheetName).name) > 0 Then
        SheetExists = True
        Exit Function
    End If
NoSuchSheet:
End Function

UPDATE: He encontrado que el cambio de nombre de la hoja en AddSheet puede fallar si existen hojas ocultas en el libro. Así que estoy buscando una solución, apenas la tenga la cuelgo.

Tags: , , , , ,

Programas como GIMP e Inkscape (incluso Pidgin), que utilizan la librería GTK+, suelen detectar y escoger automáticamente el idioma de la interfaz de usuario (en cristiano, el idioma de todos los menús y mensajes).

Para obligar a estos programas (todos los que usen GTK) a utilizar otro idioma en Windows, basta agregar una variable de entorno. ¿Cómo? Muy sencillo:

  • En Windows XP, ir a Panel de Control -> Performance and Maintenance -> System -> viñeta Advanced -> Environment Variables (no tengo a la mano un XP en español con las traducciones exactas, así que mejor en su idioma original).
  • En Windows Vista, ir a Panel de Control -> System and Maintenance -> System -> Advanced system settings -> Environment Variables (tampoco tengo el Vista en español :S).
  • Presionar el botón Nuevo en Variables de Sistema (o si el cambio solo lo quieren en su usuario, utilizan Variables de Usuario). Nombre de la variable: LANG. Valor: EN (si quieren dichos programas en inglés, por ejemplo).
  • Reinician el programa en cuestión y listo.

Tags: , , ,

El tristemente celebre Bloc de Notas (o Notepad) ha estado presente desde las épocas en que ejecutábamos el comando win desde aquella pantalla negra de DOS (versión 6.22 quizá) para abrir el Windows. Con el paso de los años, su funcionalidad, para bien o para mal, no ha cambiado en casi nada (corríjanme si me equivoco). Definitivamente no es un programa de uso de uso intensivo.

Desde hace algunos años, he venido utilizando algunas alternativas más trabajadas para tareas que van desde abrir simples archivos de texto hasta programar en ASM (aquellas épocas de la universidad) y hacer desarrollo web. Acá una lista de mis preferidos (todos gratuitos):

  • Notepad2: El primer programa con el que reemplazé al Bloc de Notas.
  • Notepad++: Muchas muchas opciones.
  • SciTE: El editor del proyecto Scintilla, sobre el que muchos otros están basados (incluyendo al Notepad2 y Notepad++). Definitivamente este es mi preferido. Otro punto a favor es que es multiplataforma (corre tanto en Windows como en Linux).
  • GEdit: El editor de facto de muchas distribuciones de Linux que utilizan GNOME (como Ubuntu). Utiliza la librería GTK+. Aunque no tiene un instalador directo para Windows, es posible instalarlo.
  • Editra: Lo encontré hace poco. Está escrito en Python por lo que también es multiplataforma.
  • Geany: También lo encontré recientemente. Utilizá GTK+, por lo que también es multiplataforma. Se ve muy interesante, así que le estoy dando una chance.

Espero no olvidarme de alguno… ¿Cuál usas tú?

Tags: , , , , , , ,

¿Por qué quisiera alguien en su sano juicio, tener más de una versión del infame Internet Explorer instalada en su PC, e incluso, corriendo simultáneamente?

Bueno, la única razón válida que se me ocurre es por lo que yo mismo hago esto: Probar los websites que desarrollo en los navegadores más utilizados actualmente (para mal de todos), IE 6 e IE 7. Si todos decidieran utilizar un navegador de verdad como Firefox u Opera, por mencionar dos, la vida de los diseñadores web sería más fácil y la de los internautas, más segura y placentera.

Existen por lo menos dos programas que permiten tener instaladas varias versiones del IE (por ejemplo, IE4.01, IE5.01, IE5.5, IE6, IE7, IE8) simultáneamente:

  • MultipleIEs: La última versión que he probado no puede ser instalada en Windows Vista, solo en XP. Permite utilizar IE3, IE4.01, IE5.01, IE5.5, IE6 e IE7.
  • IETester: Todavía está en una fase alpha de desarrollo, por lo que tiene algunas limitaciones que probablemente se vayan corrigiendo. Funciona con Windows XP y Vista (IE7+ instalado de preferencia), y permite utilizar IE8 beta2, IE7, IE6, IE5.5.

No las he probado extensivamente, pero como actualmente mi máquina principal tiene Vista, el IETester ha pasado mi elección obligada.

Tags: , , , , ,

Alternativa al WinZip

Windows October 21st, 2008

Actualmente, trabajar con archivos comprimidos es pan de cada día; ¿cuántos de los archivos que descargamos de la web están en algún formato como zip o rar ó incluso en el menos conocido (para aquellos que solo trabajan en Windows) pero más eficiente tar.gz? ¿y cuántos de esos archivos son manejados por el famoso WinZip?

Aquellos que alguna vez hemos usado dicho programa, recordaremos la pantalla inicial donde se informa que estamos trabajando con una versión de evaluación. Luego de algunos miles de clics en esa pantalla, decidí buscar otro programa similar, pero que fuera gratuito. Lo que encontré es aún mejor.

7-Zip es un programa Open Source, que podemos descargar gratuitamente desde acá. Comprime y descomprime archivos como zip, gzip, el propio 7z (que tiene un ratio de compresión mejor que la mayoría de formatos conocidos, como vemos en su página oficial), entre otros. Además de descomprimir archivos rar, cab, iso, lzh…

Entonces, ¿qué ventajas tenemos con el 7-Zip? Primero, es gratuito y Open Source (si queremos, podemos ver y modificar el código fuente, aunque muchos puedan no saber que es esto). Segundo, podemos trabajar con gran variedad de formatos como rar.

Tras descargar e instalar el 7-Zip en nuestra PC, es recomendable hacerle una pequeña modificación a la configuración del programa para convertirlo en el predeterminado para abrir archivos comprimidos.

Primero abrimos el programa desde el menú Inicio. Una vez dentro, nos dirigimos al menú Tool/Options. Vemos que en la pestaña System podemos escoger que archivos queremos asociar al programa. Terminada la selección, le damos clic a OK y listo.

Ahora, cada vez que hagamos doble clic en un archivo con alguna de las extensiones que escogimos, nos abrirá el 7-Zip.

Para comprimir un archivo o un directorio, basta hacer clic derecho sobre él, escoger el menú 7-Zip/Add to [nombre].zip. Ojo que también tiene la opción de Add to [nombre].7z, que creará un archivo comprimido con el formato 7z (menos común). Si vamos a compartir el archivo con otra persona, es preferible utilizar el formato zip, pero si es para uso personal, les recomiendo el 7z ya que tiene una mejor tasa de compresión.

De igual manera, para descomprimir un archivo, escogemos la opción (en el menú al hacer clic derecho sobre él), 7-Zip/Extract Here o mejor aún, 7-Zip/Extract to [nombre]/, que nos creará un directorio con el mismo nombre del archivo, y colocará ahí el contenido.

Tags: , , , , , , ,

Aunque parezca tonto el título para quienes no lo han intentando, el proceso de habilitar o deshabilitar la funcionalidad de hibernar el equipo en Windows Vista es un poco más oscuro que el del Windows XP.

La única forma que he encontrado para hacerlo es utilizando la consola de DOS y ya no desde el panel de Opciones de Energía. Primero, se debe abrir la línea de comando con privilegios de administrador. Para esto, se hace clic en el botón Inicio, y en el campo buscar, se escribe cmd, pero en vez de presionar Enter, se debe presionar simultaneamente Ctrl + Shift + Enter. Luego de esto, aparecerá la ventana negra de la línea de comando y el título deberá contener el nombre Administrador. Luego, se procede a escribir el comando que habilitará la hibernación:

powercfg -h ON

Si lo que se busca es deshabilitarla, se deberá reemplazar el ON por OFF.

Tags: , ,

Entre muchos de los beneficios que brinda el Adobe Acrobat (no me refiero al Adobe Reader) se encuentra la creación de archivos PDF desde casi cualquier formato (todos aquellos que permitan ser impresos en una impresora local).

Una de las alternativas libres (y gratuitas) en Windows que existen para hacer esta tarea es el PDF Creator. Este programa crea una impresora local en tu equipo, la cual podrás usar para imprimir en PDF cualquier documento de texto u hoja de cálculo o algún otro tipo que se te ocurra

Si en vez de utilizar el Office de Microsoft, utilizas la alternativa Open Source OpenOffice, no necesitarás este software para pasar tus documentos a PDF porque tiene la opción de guardarlo directamente en dicho formato.

Lo que aún no encuentro es un programa Open Source para editar los PDFs.

Tags: , , , ,

Las primeras veces que trataba de conectar laptops con Windows Vista al wireless de mi casa, éste fallaba miserablemente en su intento por obtener una dirección IP de mi router ZyXel. Me tomó muchas horas de google para dar con el dichoso problema. Resulta que el Vista define un flag (BROADCAST en los paquetes de DHCP) como habilitado (a diferencia del Window XP SP2, que lo mantiene deshabilitado). Esto causa que existan problemas con algunos routers (como el mío :S). Explicado según Microsoft acá.

Afortunamente, la solución es relativamente sencilla aunque requiere de la manipulación del Registro de Windows (esa horrenda base de datos dentro del sistema operativo que no deja de acumular información y configuraciones de todo el hardware y software de la máquina).

Basta con entrar al registro (ir a Inicio/Ejecutar ó presionar las teclas Windows+R, luego escribir regedit y darle ejecutar). Allí recorremos el arbol según la ruta:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

Alli vamos a encontrar varias ramas, cada una correspondiente a los adaptadores de red instalados (por ejemplo, una para la tarjeta wireless, otra para la tarjeta ethernet, etc.). Lo complicado puede ser identificar cual es el que debemos escoger. Me parece que el método más práctico es por la dirección IP (sí, justamente esa dirección del tipo 169.254.x.x que obtenemos cuando no encuentra otra adecuada y con la cual no podemos llegar ni siquiera al router).

Entonces, vamos por partes:

  1. Identificar la IP que tiene nuestra PC. Para esto, vamos a Inicio/Ejecutar ó presionamos las teclas Windows+R, y colocamos cmd y damos ejecutar. En la pantalla negra de DOS, escribimos ipconfig y damos enter. Ahí buscamos el campo Dirección IPv4 del adaptador que estemos usando (si estamos tratando de conectarnos por wireless, deberíamos ver en Conexión de Red Inalámbrica o algo que se le parezca). Seguramente va a ser una dirección como 169.254.x.x.
  2. Con esa dirección, buscamos en el registro, entre las claves dentro de Interfaces, alguna que contenga un valor igual a la dirección IP que obtuvimos en el paso 1.
  3. Una vez identificada la clave correspondiente, deberemos cambiar el valor de DhcpConnForceBroadcastFlag a 0 (cero). Para esto, se hace doble click sobre él y se coloca 0 en la ventana que aparece y se da enter.
  4. Cerramos el regedit, y reiniciamos el adaptador de red (basta con deshabilitarlo y volverlo a habilitar). Tras lo cual, el Windows Vista debería obtener sin problemas una dirección IP válida (probablemente del tipo 192.168.x.x que es lo más común) y por consiguiente, Internet.

Si aún con esto, sigue sin obtener la IP, quizá puedan probar esto. A mi me ha bastado con la solución que les propongo en unas 5 laptops, pero uno nunca sabe.

Tags: , , ,