martes, 22 de noviembre de 2011

Biblioteca libre online para descargar libros

Acá les recomiendo otra página para descargar libros, donde en este caso todos los libros publicados son libres.
La biblioteca se llama OpenLibra (un proyecto de EtnasSoft) y van a poder encontrar libros de todo tipo: informática, matemáticas, ciencias, ensayos, novelas, cómics, y mucho más.
Muy recomendada.

Link: OpenLibra

domingo, 20 de noviembre de 2011

Conocer los límites de los distintos tipos de datos en C++

Una forma sencilla de conocer los límites de los distintos tipos de datos en C++ (int, float, double, unsigned long long, etc.), es usando el objeto numeric_limits<T> como se muestra en el siguiente ejemplo:

#include <iostream>
#include <limits>

using namespace std;

int main(){
    cout<<"Máximo entero: "<<numeric_limits<int>::max()<<endl;
    cout<<"Mínimo flotante: "<<numeric_limits<float>::min()<<endl;
    return 0;
}

Como ven sólo le especifican el tipo de dato deseado y usan las funciones min() o max(). La cebecera correspondiente a incluir es <limits>.
La clase numeric_limits nos brinda otras funciones útiles más que pueden verlas detalladamente en el siguiente enlace: numeric_limits (CPlusPlus.com)

martes, 15 de noviembre de 2011

Empathy no se conecta a Windows Live (MSN)

Si tienen problemas en conectarse a su cuenta de Hotmail o Windows Live con Empathy (permanece continuamente como conectando pero nunca lo logra), esto les puede servir:

Desinstalen el paquete telepathy-butterfly e instalen telepathy-haze si no lo tienen ya instalado.
Después en Empathy vuelven a configurar su cuenta (eliminan la que ya tenían porque no les va a funcionar) y ahora sí, deberían poder conectarse sin problemas.

sábado, 12 de noviembre de 2011

Arreglar Suspender/Hibernar en Ubuntu

Puede pasar que tengan un Ubuntu instalado en su computadora o notebook y no les funcione el suspender o hibernar. O no hace nada, o no funciona como debería, o no se puede recuperar el estado, etc.
Acá en el siguiente enlace hay una solución (gracias Lucas) que arregla el problema (puede funcionar en cualquier Linux, no sólo Ubuntu, sólo deben probar):

Fix Ubuntu (or Linux) Suspend/Hibernate Not Working Bug

Para los vagos que quieren todo fácil, seguir esto:

1- Descargar el siguiente archivo: 20_custom-ehci_hcd.

2- Guardarlo en /etc/pm/sleep.d/ (se necesita ser root).

3- Darle permisos de ejecución con:

sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd

4- Suspender o hibernar la computadora y ver que ahora anda bien.

Si no les funciona o cualquier otra cosa, miren el post original. Si sí les funciona, también entren al post original y dejen los datos de su modelo, versión de Ubuntu y otra información del hardware como pide el autor. De paso podrían fijarse antes de probar si su modelo se encuentra en la lista.

Usar WTK como emulador de aplicaciones J2ME en Linux

La mayoría de celulares soporta aplicaciones J2ME (Java 2 Micro Edition, como se llamaba antes. Ahora es Java ME simplemente). Estas aplicaciones se pueden conseguir por Internet, sobre todo los juegos (siempre se encuentran sitios para bajar packs de varios de estos jueguitos).
Las aplicaciones J2ME consisten básicamente de un archivo JAR, donde están empaquetados todos los archivos necesarios (clases, imágenes y otros recursos), y de un archivo JAD que es un descriptor de la aplicación y que no siempre es necesario.

Lo bueno es que vienen emuladores que permiten ejecutar estas aplicaciones en la computadora, y así probar un juego por ejemplo antes de bajarlo al celular.
Para Windows pueden bajarse el MidpX o el KEmulator.

Lo malo es que no vienen para Linux. Sin embargo, se puede usar el Sun Java Wireless Toolkit (WTK) como emulador. WTK es un kit de desarrollo para crear aplicaciones basadas en CLDC y MIDP, es decir no sólo para celulares sino también para otros dispositivos móviles que soporten estas configuraciones.



Lo que tienen que hacer para poder usarlo es lo siguiente:

1- Instalar el JRE (Java Runtime Environment):

Pueden instalar el oficial de Oracle, o la implementación de código abierto OpenJDK (recomendado). En Ubuntu instalan este útimo desde consola con el siguiente comando:

sudo apt-get install default-jre


2- Instalar el JDK (Java Development Kit):

Pueden elegir como arriba. En Ubuntu:

sudo apt-get install default-jdk


3- Instalar WTK:

Para eso lo descargan (la versión 2.5.2 es la última que salió para Linux. Está la versión 3 pero sólo para Windows, pero con la 2.5.2 alcanza). Descarguen el archivo sun_java_wireless_toolkit-2_5_2-linux.bin de acá.

Después lo ejecutan desde una consola con:

sh sun_java_wireless_toolkit-2_5_2-linux.bin


(o directamente con ./sun_java_wireless_toolkit-2_5_2-linux.bin si le dan permiso de ejecución).

Les va a mostrar la licencia de uso, la leen toda presionando Enter para avanzar (bueno, la pueden saltear apretando Q), y escriben yes cuando les pregunta si la aceptan.

Después les va a pedir un intérprete de Java. Ingresan la opción 0 (especificar una ruta). Ahí ingresan la ruta a la carpeta bin de su instalación del JRE. Si instalaron OpenJDK generalmente es

/usr/lib/jvm/default-java/bin

Si la ruta es correcta, va a estar listo para instalarse. Ahora les pide en qué lugar quieren instalarlo (pueden dejar el default que es en el Escritorio apretando Enter). Eligen si quieren comprobar actualizaciones, verifican toda la información ingresada y comienzan a instalar.


4- Conseguir el archivo JAR y JAD de la aplicación:

Bueno, ya está todo instalado, ahora sólo tienen que tener la aplicación para probar. Es muy probable que dispongan sólo del archivo .jar, pero para poder ejecutarla acá también se necesita el .jad.
Pero no es problema. Si no disponen del archivo .jad lo pueden conseguir desde la siguiete página Web: Free JAD Creator.
Ahí deben subir el archivo .jar y podrán descargar el .jad generado.


5- Ejecutar:

Ya todo listo, ahora a probar. En la carpeta donde instalaron el WTK, entran a bin y ejecutan el archivo ktoolbar.
Se les va a abrir la siguiente ventana:



Ahora van a File, Create project from JAD/JAR file. Buscan el archivo .jad deseado y lo abren.
Presionan el botón Run y listo, un celular en pantalla ejecutando la aplicación o jueguito:



En Edit, Preferences pueden configurar algunas opciones del dispositivo.


Extra: el jueguito de la captura es el "Mega Invaders", que hice como ejercicio de un trabajo práctico para una materia de la facultad. Más adelante lo voy a subir así todos pueden jugarlo :p.

viernes, 28 de octubre de 2011

Sitios de sprites

Para el que no sabe, una definición rápida de sprite: las imágenes de objetos o personajes que se usan en los jueguitos... :p (mejor ver la Wikipedia).
Acá dejo una serie de páginas webs donde pueden descargarse sprites de varios juegos de varias consolas, por si necesitan para algún jueguito que estén haciendo ustedes, o para alguna otra cosa:

viernes, 21 de octubre de 2011

Hacer fondo transparente en una imagen con GIMP

Supongamos que tenemos una imagen a la que le queremos "borrar" el color de fondo, es decir hacerlo transparente.
Primero que nada pintamos el fondo de un color que no se incluya en ninguna otra parte de la imagen, para poder separarlo de forma correcta y no borrar también otras zonas que no conformen el fondo.
Por ejemplo en la siguiente imagen, queremos quitar el fondo que era blanco y para eso lo pintamos de rojo puro (FF0000):


Después agregamos el canal alfa a la imagen si no lo tiene, haciendo click derecho en la capa correspondiente y seleccionando "Añadir canal alfa":


Ahora sólo tenemos que ir al menú Seleccionar -> Por color (o apretar Shift+O), y hacemos click en el color de fondo. Apretamos Supr y listo, fondo transparente:


Nota: GIMP incluye otra opción en el menú Colores llamada "Color a alfa", donde nos permite seleccionar un color de referencia. Sin embargo, no sólo hace transparente este color sino que hace otras cosas raras... Por ejemplo como se puede ver en esta imagen el antes y después usando esta opción:


viernes, 22 de julio de 2011

Sincronización de archivos con Ubuntu One a través de un proxy

Para el que no conoce Ubuntu One, es un servicio que permite tener un espacio en la "nube" para guardar nuestros archivos y poder acceder a ellos desde cualquier dispositivo. En Ubuntu, viene instalado el cliente de Ubuntu One, que nos permite sincronizar automáticamente nuestros archivos. Pueden ver acá más información.


El problema es que si están conectados a Internet a través de un servidor proxy, aunque lo configuren en las opciones de sistema de Gnome (Sistema -> Preferencias -> Proxy de la red) el cliente de Ubuntu One no lo toma y por lo tanto no funciona la sincronización de archivos. Éste es un bug en el cual están trabajando para corregirlo (bug #387308).
Mientras tanto, una forma de hacerlo funcionar es la siguiente. Haremos uso de un programita llamado connect-proxy que nos permitirá desviar las conexiones del servicio de sincronización hacia el servidor de Ubuntu One a través del proxy.
En primer lugar, instalar este programa desde el gestor de paquetes o con el siguiente comando:

sudo apt-get install connect-proxy

Luego, ejecutarlo de la siguiente forma:

connect-proxy -H servidor:puerto -p 6565 fs-1.one.ubuntu.com 443

A la opción -H debemos pasarle el servidor proxy con el cual nos conectamos a Internet y el puerto correspondiente, por ejemplo 192.168.1.6:3128. La opción -p pide un número de puerto local donde escuchará, acá pueden poner cualquier número de puerto que deseen (que no esté en uso). Luego le pasamos el servidor y puerto de Ubuntu One.
Ahora debemos editar el archivo syncdaemon.conf para configurarlo para que use esa conexión. Escribimos en una consola:

sudo gedit /etc/xdg/ubuntuone/syncdaemon.conf

y debajo de la línea

[__main__]

agregamos lo siguiente:

host = localhost
port = 6565
dns_svr = None

En port ponemos el puerto que escogimos anteriormente. Guardamos los cambios y reiniciamos el servicio. Para esto ejecutamos el cliente de Ubuntu One (Sistema -> Preferencias -> Ubuntu One), vamos a la pestaña Servicios, y desmarcamos Activar sincronización de archivos. Luego lo activamos de nuevo, conectamos y listo, debería funcionar sin problemas.

miércoles, 20 de julio de 2011

Juegos de Game Boy Advance en Ubuntu

Un excelente emulador de Game Boy Advance es VisualBoyAdvance con sus versiones para Windows y Linux. La versión para Windows funciona perfectamente, pero no así la de Linux. Lo pueden instalar desde los repositorios de Ubuntu, y si lo prueban pueden tener resultados como éste:



Como ven tiene problemas, los colores se ven mal (el juego es Pokémon Esmeralda). En esta página hay una solución para poder jugar bien que es instalar la versión de Windows usando Wine.
Si no quieren andar usando Wine, otra solución es instalar VisualBoyAdvance-M (VBA-M) que funciona perfectamente en Linux:



No se encuentra en los repositorios de Ubuntu, pero en la página del proyecto en SourceForge pueden descagar un archivo DEB para instalarlo sin problemas. Tienen que buscar una carpeta que diga VBA-M GTK+ y descargar el .deb que empieza con vbam-sdl correspondiente a su máquina (i386 o amd64). Después de instalarlo, también deben instalar el que comienza con vbam-gtk que es la interfaz gráfica.
Y listo, lo buscan en el menú de aplicaciones como VBA-M, cargan la ROM y a jugar.

lunes, 18 de julio de 2011

Página para descargar libros gratis

Les recomiendo esta página, Library.nu, donde van a poder descargar una gran cantidad de libros gratis de todo tipo. Si quieren colaborar pueden subir ustedes algún libro que no se encuentre en su catálogo.
Antes esta página era llamada Gigapedia. Lo bueno que tiene es que posee muchísimos libros escaneados que son difíciles de encontrar en otra parte.

Enlace: Library.nu

jueves, 14 de julio de 2011

Desactivar y desinstalar Deep Freeze



Hola a todos! Soy Vir, la nueva colaboradora de "El Rincón de Johny" y yo también compartiré las soluciones que encontré a problemas que se me presentaron, que les pueden ser útiles.
Mi primer post va a estar dedicado, como dice el título, a los pasos que tuve que seguir para poder desinstalar este programa en una computadora con Windows XP.
La clave está en un archivo llamado DeepFrz.sys que se encuentra en X:\Windows\system32\driver (X es la unidad de tu disco, generalmente C), al que hay que modificarlo para que no se inicie el Deep Freeze y así poder desinstalarlo.
Para poder hacerlo, deben entrar a su computadora desde un cd live (yo usé Ubuntu 10.10, pero supongo q con cualquier otro también anda) y buscan el archivo que les nombré anteriormente y le cambian el nombre por cualquier otro que no sea ninguno de los otros archivos .sys de la carpeta.
Después, yo copié el archivo cdaudio.sys, y a la copia le puse el nombre DeepFrz.sys. Es necesario que dejen un archivo con este nombre ya que sino te aparece una pantalla azul en la que dice que no puede iniciar Windows porque falta ese archivo.
Luego, reiniciás la compu y ya no te va a iniciar el Deep Freeze así que si querés desinstalarlo, solo tenés que correr el instalador nuevamente y listo.
A mí me anduvo con las versiones 4 y 6 del Deep Freeze, pero si no les anda, inicien la computadora con "modo seguro" y fijense en los archivos que va cargando al iniciar alguno que sea parecedio a "DeepFrz.sys", en mi caso, era el último que cargaba antes de iniciar Windows.
Espero que les sirva. Suerte.

miércoles, 22 de junio de 2011

Hacer que Ubuntu de 32 bits reconozca más de 3 GB de RAM

Si tienen instalada una versión de Ubuntu de 32 bits y su computadora tiene más de 3 GB de memoria RAM, se habrán dado cuenta que les reconoce sólo hasta 3 GB.
Una forma sencilla de hacer que les reconozca todo, sin tener que instalar la versión de 64 bits, es instalar los siguientes paquetes:
linux-restricted-modules-server, linux-headers-server, linux-image-server y linux-server.

Esto lo pueden hacer con la siguiente línea en una consola:

sudo apt-get install linux-restricted-modules-server linux-headers-server linux-image-server linux-server

Reinician y a disfrutar de la RAM.

lunes, 20 de junio de 2011

Convertir manuales MAN de Linux a PDF

Si por ahí les sirve tener un manual MAN de algún comando de Linux como un archivo .pdf, lo pueden hacer con esta simple línea:

man -t comando | ps2pdf - > comando.pdf

Esto generará el archivo comando.pdf en la carpeta actual de trabajo. Deben cambiar comando por lo que quieran, por ejemplo ls, pkill, nautilus, etc.
Para hacer las cosas más simples, pueden crearse un script como el siguiente:

#!/bin/sh

if test $# -ne 1; then
    echo "man2pdf - Convertir páginas man a pdf.\nUso: man2pdf comando"
else
    man -t $1 | ps2pdf -&gt; $1.pdf
fi

Lo guardan como man2pdf, le dan permisos de ejecución, y lo mueven a /usr/local/bin. Ahora, en cualquier carpeta donde se encuentren pueden llamar directamente a

man2pdf comando

y tendrán el archivo PDF generado. Para hacer las cosas más simples todavía, pueden bajar el script de acá.

martes, 14 de junio de 2011

Geany no reconoce automáticamente archivos de Matlab/Octave

Geany es un completo editor de textos multiplataforma y software libre para programadores que soporta coloreado de sintaxis de varios lenguajes de programación y funciones básicas de IDE.
La versión 0.20 (la actual en este momento) tiene el problema de que no detecta automáticamente el tipo de archivo al abrir o crear archivos de Matlab u Octave (extensión .m), por lo que es muy molesto tener que especificar manualmente el tipo.
La solución a esto es simplemente editar el archivo de configuración de extensiones (filetype_extensions.conf). Pueden ir a Herramientas, Archivos de configuración, filetype_extensions.conf, y se les abrirá automáticamente. Sólo deben cambiar la línea:

Matlab=*.m;

por

Matlab/Octave=*.m;

Guardan los cambios, recargan la configuración (Herramientas, Recargar configuración) y listo.

sábado, 7 de mayo de 2011

Alternativa a BarTab para Firefox 4

BarTab es una extensión para Firefox muy útil.
Lo que hace la extensión es permitir que no se carguen automáticamente todas las pestañas abiertas al iniciar Firefox, sino sólo la que tiene el foco. De esta forma se acelera muchísimo el arranque del programa en los casos donde se tienen muchas pestañas de la sesión anterior. Luego, al ir a tal pestaña se carga automáticamente.
La cosa está en que esta extensión no es compatible todavía con el reciente Firefox 4. Así que les dejo una alternativa que tiene exactamente la misma función, y sin necesidad de instalar nada.
Simplemente escriban en la barra de direcciones de Firefox:

about:config

Busquen la clave

browser.sessionstore.max_concurrent_tabs

y cambien su valor a 0 (por defecto tiene 3).
Y listo. De esta forma cada pestaña sólo se cargará cuando tenga el foco.

miércoles, 4 de mayo de 2011

Conexión a Internet anda lenta con Ubuntu 11.04

Ahora que ya salió el nuevo Ubuntu 11.04 Natty Narwhal, lo bajé e instalé para ver qué tal. El problema que tuve, fue que una vez instalado, Internet empezó a andar extremadamente mal...
Las descargas eran a una velocidad de más o menos 200 bytes (sí, bytes) por segundo, y para iniciar sesión en Empathy tenía que hacer varios intentos hasta que a veces lograba entrar.
Mi placa de red inalámbrica es una Encore ENUWI-N3 de tipo USB. Si antes andaba bien y ahora no, entonces el nuevo Ubuntu algo cambió...
El problema está en que el Ubuntu 11.04 me asignó como drivers por defecto de la placa inalámbrica el rt2800usb, y por lo visto no funciona muy bien con esta placa (tiene chip Ralink RT2870).
La solución fue bloquear este driver, para de esta forma utilizar otro que sí funcione como antes.
Para hacer esto, tienen que agregar el módulo rt2800usb a la blacklist ("lista negra") editando el archivo /etc/modprobe.d/blacklist.conf con cualquier editor de texto en modo superusuario (root). Por ejemplo escribiendo en consola:

sudo gedit /etc/modprobe.d/blacklist.conf

En el archivo solamente agregan la siguiente línea al final:

blacklist rt2800usb

Reinician y listo, Internet como la gente.

domingo, 1 de mayo de 2011

Consola con colores en C++

Tal vez se habrán dado cuenta que mostrar un mensaje en color en consola, no es algo trivial en C++... C++ no incluye funciones propias para hacer esto, ya que "colorear" la consola es algo dependiente del sistema operativo. Tampoco hay alguna manera relativamente sencilla, que podamos decir "bueno, haciendo esto tengo las letras en colores"... Por ejemplo, en Windows esto se logra sólo con llamadas a la API de Windows (usando arreglos de memoria que contienen atributos de color y caracteres, llamados "Console Screen Buffers"). En Linux, existen los llamados códigos ANSI, que son una secuencia de caracteres ASCII que actúan como funciones para poder cambiar estos atributos.
Para simplicarles las cosas, hice esta pequeña librería (basándome en código que encontré por Internet) que engloba y unifica estas diferencias, de tal manera de hacerla independiente de la plataforma con tal de poder incluirla en programas de Windows o Linux con un uso común.
Es un simple archivo .h, que define los colores para pasárselos al cout de la siguiente forma:

cout<<color<<"texto de prueba";

Los colores disponibles son los siguientes:
black (negro), red (rojo), green (verde), yellow (amarillo), blue (azul), magenta (magenta), cyan (cian), white (blanco), normal (volver al color por defecto), blackb (negro en negrita), redb (rojo en negrita), greenb (verde en negrita), yellowb (amarillo en negrita), blueb (azul en negrita), magentab (magenta en negrita), cyanb (cian en negrita), whiteb (blanco en negrita), normalb (volver al color por defecto en negrita).

Es decir que si por ejemplo queremos mostrar un mensaje como el siguiente:

Mensaje con muchos colores

se debería escribir:

cout<<red<<"Mensaje "<<yellow<<"con "<<green<<"muchos "<<blueb<<"colores"<<normal;

Como en Windows no se puede especificar un atributo "negrita" para la consola, las versiones en negrita de los colores tienen una intensidad diferente de las versiones normales. En las siguientes imágenes se ven las diferencias entre Windows y Linux (código de ejemplo):

consola de Windows
consola de Linux


Para compilar, hay que definir la macro WIN si están en Windows, o LINUX si están en Linux. De esta forma se usa el código correspondiente dependiendo de la plataforma elegida.
Esto se hace con la opción -D de g++, por ejemplo:

g++ -o colores colores.cpp -DLINUX

Por ahora como se habrán dado cuenta sólo permite cambiar el color de frente y no el de fondo. A lo mejor en algún momento la amplíe incluyéndole esta funcionalidad.

La pueden descargar de acá: concolor.h

viernes, 22 de abril de 2011

Procesar múltiples archivos a la vez con la consola de Linux

Si están en Linux y necesitan procesar muchos archivos a la vez, como por ejemplo renombrar un lote de archivos, o aplicar un comando a algunos, pueden hacerlo con la siguiente línea:

for variable in [expresión]; do comando $variable; done

Sí, un bucle for en la misma consola. variable es el nombre de la variable que representará cada archivo que concuerde con [expresión], por ejemplo para tener todos los archivos .jpg, se escribiría

for v in *.jpg;

siendo ahora v el nombre de la variable. Para obtener el nombre de cada archivo, hay que expandir el valor de la variable con el signo $. Con ese valor podemos ahora ejecutar el comando que deseemos sobre cada archivo. Para verlo bien, este ejemplo simple lista todos los archivos PDF que se encuentren en el directorio de trabajo:

for i in *.pdf; do echo $i; done

Como verán la consola de Linux es muy poderosa, por eso les recomiendo que busquen algún tutorial sobre programación en Shell para sacarle todo el provecho posible.

domingo, 17 de abril de 2011

Programas compilados con g++ ahora piden una DLL


Si son de programar en C++ y usar el compilador de GNU g++ en Windows, a lo mejor les haya pasado que después de actualizarlo, sus programas ahora para ejecutarse les pidan una DLL llamada libstdc++-6.dll, cosa que antes no sucedía.
Al arrancar el ejecutable les muestra el siguiente mensaje de error:

"Error al iniciar la aplicación porque no se encontró libstdc++-6.dll. La reinstalación de la aplicación puede solucionar el problema."

El problema está a partir de la versión 4.5 de g++. Antes de esta versión, g++ enlazaba esta librería (libstdc++) estáticamente a los ejecutables compilados, por lo que ese error nunca aparecía. A partir de la versión 4.5, ya no se comporta de esta manera y enlaza la librería de forma dinámica, por lo que es necesaria esa DLL cuando no se está ejecutando el programa con el directorio de g++ como directorio de trabajo.
Para solucionarlo, pueden copiar la mencionada DLL a la carpeta del sistema de Windows, o incluir el directorio de g++ en la variable PATH del sistema.
Si quieren tener el comportamiento anterior de g++, es decir enlazar la librería estáticamente, compilen sus programas con la opción

-static-libstdc++

y ya no dependerán de esa DLL.

miércoles, 13 de abril de 2011

Instalador offline de Skype para Windows

Cuando descargan Skype de la página oficial, el programa instalador que se bajan es un ejecutable de 1 MB aproximadamente, que es quien se encarga de descargar los verdaderos archivos necesarios para la aplicación.
Si esto les molesta como a mí, les parece innecesario o simplemente desean disponer del instalador completo para no tener que descargarlo cada vez que lo quieran instalar, o porque necesitan instalarlo en varias computadoras y quieren evitar que se descargue para cada una, pueden usar este instalador offline como suele llamarse, o full, disponible desde el siguiente enlace:
http://www.skype.com/go/getskype-full

Insertar caracteres Unicode en Linux

Seguro que en Windows están acostumbrados a insertar ciertos caracteres desde el pad numérico con la combinación ALT+(código ASCII decimal), por ejemplo ALT+64 para la arroba (@) o ALT+92 para la barra invertida (\).
En Linux, esta manera no existe, pero sí hay otra forma de insertar caracteres especiales, y no en formato ASCII sino Unicode.
La manera de insertarlos es con la combinación

CTRL+SHIFT+u+(código Unicode)

manteniendo presionadas continuamente sólo las teclas CTRL y SHIFT, y tipeando las demás. Al soltar CTRL y SHIFT, el caracter se insertará.
Para conocer el código Unicode de un caracter, pueden ejecutar el Mapa de caracteres (desde el menú Aplicaciones de Gnome o con el comando charmap), buscar el caracter deseado y fijarse en la barra de estado que va a aparecer algo como "U+004A LATIN CAPITAL LETTER J" (por ejemplo para la letra J). Esos números después del U+ son los que deben escribir con la combinación de teclas anteriores.
O sino pueden ir copiando los caracteres deseados desde el mismo Mapa de caracteres.

sábado, 9 de abril de 2011

Hedgewars: alternativa libre al Worms

Si son fanáticos del Worms, para el que no lo conozca existe Hedgewars, un clon software libre del excelente Worms World Party, y con muchas mejoras y elementos propios.
En lugar de gusanos, acá tenemos erizos, y el objetivo del juego es el mismo: acabar con todos los erizos de los equipos contrarios y sobrevivir a la batalla. Incluye muchas más armas que el juego original, y permite jugar partidas a través de Internet y LAN.
Además, funciona tanto en Windows como en Linux.
Pueden ir viendo el material multimedia oficial disponible para ir conociéndolo, pero no pueden dejar de probarlo. ¡Se los recomiendo!

Sitio oficial

jueves, 7 de abril de 2011

Windows XP anda lento y los íconos del escritorio se ven mal

Éste es un problema que una vez tuvo un amigo en su computadora, que es tan molesto y a la vez tan fácil su solución que uno no lo puede creer.
"Mi computadora anda lenta" era una de las descripciones para este problema. Navegar por las carpetas se hacía muy tedioso ya que sí, era como que se trababa todo. El menú Inicio demoraba en aparecer, y lo hacía todo trabado. Si movías una ventana, el movimiento no era fluido, sino que a cada rato se redibujaba la ventana y de manera excesivamente lenta.
"Los íconos del escritorio se ven mal" era otra descripción. Por más de que estuviera activada la opción de fondo transparente para los íconos del escritorio, el recuadro de color que rodea al nombre seguía apareciendo, y el canal alfa de los íconos no funcionaba (los bordes se veían mal y todos pixelados, tal como muestra la imagen). Esto aunque estuviera activada la configuración "Más alta" (32 bits).
Uno podría pensar que el problema está en la placa de video. Reinstalando, actualizando y toqueteando los drivers, llegué a la conclusión de que no. Entonces un virus... pero tampoco.
El problema es tan absurdo como fácil de arreglar: están bloqueados los elementos web del escritorio.
Solamente hay que hacer click derecho en el escritorio, Propiedades, pestaña Escritorio, botón Personalizar escritorio, pestaña Web, y desactivar la opción "Bloquear elementos del escritorio". Aceptar todo y listo, se arregla todo.
Es increíble cómo esa simple opción le hacía funcionar tan mal la computadora... Pero bueno, volvió a funcionar bien.

martes, 5 de abril de 2011

Pausar un programa en C/C++

Me pasó que quería pausar por un momento un programa que hice en C++ y que después continuara la ejecución sin intervención del usuario, porque necesitaba eso, que vaya ejecutando una acción cada un cierto tiempo (algo así como un timer).
En todos lados encontraba como solución usar el getch(), pero el problema con eso es que el usuario necesita apretar una tecla para continuar. Además y peor, getch() no es compatible con todas las plataformas, viene incluida en la cabecera conio.h sólo para Windows.
Otra solución es usar system("pause"), pero también depende de la plataforma.
Buscando encontré un código para una función sleep() que recibe como parámetro la cantidad de milisegundos que querés que se pause el programa, y está hecho con funciones estándar, por lo que es compatible con cualquier plataforma y compilador.
Pueden ver el código acá, o bajarse este archivo .h que hice para simplificar las cosas. Para usar la función, solamente incluyan la cabecera con

#include "wait.h"

y cuando lo deseen, llamen a

wait(ms);

pasándole los milisegundos. Le cambié el nombre de sleep() a wait(), porque sleep() ya es una función existente y puede causar problemas.


El código funciona tanto en C como en C++.

Problemas al graficar con Octave en Windows


Este problema lo tiene Octave 3.2.4 en Windows, al instalarlo con los paquetes de Octave-Forge (es decir, al instalarlo desde el archivo de instalación para Windows brindado por la página Octave-Forge).
Cuando uno usa el comando plot (o alguna otra función relacionada con graficar), no aparece ningún gráfico, y parece como si la función nunca termina de ejecutarse. Si se cancela con Ctrl+C, y la volvemos a llamar, ahora sí aparece una ventana de gnuplot, pero con el gráfico de la llamada anterior y "tildada", es decir, que no responde a ninguna acción.
El problema está en el paquete oct2mat (cuya función es convertir los archivos .m en estilo de código compatible con Matlab), y la solución es escribir en el prompt de Octave lo siguiente:

pkg rebuild -noauto oct2mat

y reiniciar el programa. La línea anterior deshabilita la carga automática de ese paquete, por lo que no molestará más con los ploteos.
Fuente: Wiki de Octave

Encore ENUWI-N3 en Ubuntu


Esto me hizo renegar mucho... Cuando me compré la placa de red inalámbrica para poder agarrar Internet Wi-Fi, una Encore ENUWI-N3, estuve casi 2 meses sin poder usarla porque no podía instalarla en Ubuntu.
Busqué y busqué en foros y tutoriales y todo Internet, pero la placa seguía sin andar.
Hasta que un día no sé cómo, encontré este tutorial que les dejo a continuación que me salvó la vida... :p. Sólo deben seguir los pasos que ahí se detallan y la placa va a funcionar correctamente.

Wireless: instalar drivers RT2870 Y RT3070 en Ubuntu (Tutoriales Apócrifos)

Aclaro que en Ubuntu 10.10, esta placa ya es detectada automáticamente y funciona al instante sin hacer nada.

Ubuntu no monta automáticamente la unidad USB


Esto me pasaba en Ubuntu 9.10, en la versión 10.10 no tuve más este problema, pero les dejo cómo lo solucionaba por si a alguien le ocurre.
La cosa era así: enchufaba el pen-drive en la computadora, y nunca lo montaba automáticamente. No sólo eso, ni siquiera lo detectaba como una unidad para poder montarlo manualmente con mount. Pero el pen-drive sí era detectado como un dispositivo, el comando lsusb lo listaba, aunque era prácticamente como si no estuviera enchufado.
La solución es fácil: escribir en consola

sudo modprobe usb_storage

escribir la contraseña y listo, la unidad USB va a ser detectada y montada automáticamente, y el ícono va a aparecer en el escritorio.

domingo, 3 de abril de 2011

¡Hola mundo!



Hola a todos. Con este post doy por iniciado y les doy la bienvenida a este blog donde mi principal objetivo es ir compartiendo mis experiencias sobre problemas que me ocurrieron con la computadora, y que tuve que estar un largo rato buscando una solución... por eso acá quiero compartir esas soluciones para que si a alguno le ocurrió el mismo problema, pueda resolverlo de forma rápida y no perder el tiempo.
Pero además, mi intención es compartir mis conocimientos, descubrimientos y aprendizajes sobre otros temas, como son la programación, el software libre, diseño, hardware y cosas sobre informática en general.
¡Espero que les guste y les sea de utilidad!

Johny