Como blogsome cierra estaba migrando a jubuntu
Edito: Pues ahora desde el panel no veo ninguna indicación de que cierre, así que supongo que no cerrará. Vaya lio
Como blogsome cierra estaba migrando a jubuntu
Edito: Pues ahora desde el panel no veo ninguna indicación de que cierre, así que supongo que no cerrará. Vaya lio
Instalar servidores básicos en Ubutu.
Llevaba tiempo buscando cómo instalar servidores básicos en mi ubuntu. Hoy he encontrado la respuesta, soy un hombre feliz. Estoy hablando de instalar los siguientes servidores.
El servidor chargen responde con una secuencia de caracteres aleatoria cada petición entrante.
El servidor daytime, responde con la fecha actual del sistema.
El servidor discard, simplemente descarta todas las peticiones entrantes. No hace nada.
El servidor echo, responde a las peticiones con los mismo datos que contienen las mismas.
Y por último el servidor time devuelve la hora del sistema.
Todos estos servidores básicos que vienen muy bien para hacer pruebas cuando estamos desarrollando aplicaciones se encuentran en el paquete xinetd.
Para instalar este paquete, como siempre ejecutamos el siguiente comando:
sudo aptitude install xinetd
Los archivos de configuración de dichos servicios podemos encontarlos en:
/etc/xinetd.d
Por ejemplo aquí muestro el archivo necesario para activar un servidor chargen UDP en nuestro ubuntu.
cat /etc/xinetd.d/chargen
# This is the udp version.
service chargen
{
disable = no
type = INTERNAL
id = chargen-dgram
socket_type = dgram
protocol = udp
user = root
wait = yes
}
Como se puede ver el único cambio que he introducido respecto a la versión original es poner el campo de disable a no.
Para iniciar y parar todos los servidores de xinetd simplemente ejecutamos la siguiente orden.
tsudo service xinetd star
o
sudo service xinetd start
Como insertar el boton +1 de google en tu blog blogsome.
Para insertar botones +1 de google en tu blog blogsome necestitas editar el archivo Main Page. Justo antes del cierre del head, debes colocar el siguiente código:
{literal}
< script type=”text/javascript” src=”https://apis.google.com/js/plusone.js”>
{lang: ‘es’}
{/literal}
Donde la varialbe lang indica el idioma a usar.
Y para que aparezca en cada una de las entradas, tal y como lo tengo puesto en el blog, debemos modificar el archivo Posts, y justo después del titulo escribimos el código siguiente:
<g :plusone size="small"></g>
Y con esto ya tenemos un bonito botón +1 de google.
Compilar gsoap con los compiladores de solaris y arquitectura de 64 bits.
How compile gsoap with Sun Studio Tools and 64 bits.
Por cuestiones de trabajo he tenido que usar la librería gsoap para hacer un servicio web en c++. El gsoap se puede bajar de la siguiente dirección: gsoap.
Compilarlo es fácil basta con descomprimirlo y seguir los siguientes pasos.
$ ./configure
$ make
Por defecto al realizar estos pasos obtenemos una librería de 32 bits y compilada con los compiladores de GNU, gcc y g++. Esta opción no me servía.
Necesitaba compilarlo con los compiladores propios de solaris, CC y cc. Y además necesitaba que la librería resultante tuviese 64 bits de arquitectura, tras largo rato buscando en internet descubro que la solución es muy sencilla. Basta con pasarle al configure los parámetros siguientes.
$ ./configure CXX=CC CC=cc CXXFLAGS=-64 CFLAGS=-m64
$ make
# make install
Y con esto ya tenemos la librería gsoap compilada con los compiladores de sun solaris y 64 bits.
A trabajar!
Esta mañana al intentar compilar compilar un pograma con g++ me lanzaba el siguiente error:
wrong ELF class elfclass64
Después de googlear un poco el problema era que estaba intentando compilar sin el flag de 64bits, este flag era necesario pues la librería contra la que estaba linkando estaba compilada con el flag.
La solución es sencilla consiste eñadira la g++ la opción -m64.
Es fácil; hdparm -d 1 /de/ hda.
hdparm -d 1 /de/ hda
Comando para forzar comprobación de discos al reiniciar.
shutdown -F -r now
Nunca había jugado a este tipo de juegos, y la verdad es que causan adicción. No se si seré muy malo pero me ha llevado horas resolverlo…
Grow Island
Como averiguar a que paquete pertenece un archivo

Hay ocasiones en las que necesitamos saber a que paquete pertenece un archivo, esto podría ser una tarea tediosa si tuvieramos que realizarla a mano, por suerte tenemos a nuestro querido dpkg.
Para saber a que paquete pertenece un archivo, basta con escribir en consola:
dpkg -S ruta_del_archivo
Por ejemplo si queremos saber a que paquete pertenece el archivo “/sbin/pccardctl”, tipeamos:
dpkg -S /sbin/pccardctl
y en unos instantes obtenemos la salida siguiente:
pcmciautils: /sbin/pccardctl
Luego el archivo pcdardctl, pertenece al paquete pcmciautils.
De manera similar podemos listar todos los archivos pertenecientes a un paquete con el siguiente comando:
dpkg -L nombre_paquete
De esta forma para obtener todos los archivos relativos al paquete pcmciautils, deberiamos tipear:
dpkg -L pcmciautils
Y obtendremos la siguiente salida:
/.
/etc
/etc/pcmcia
/etc/udev
/etc/udev/rules.d
/etc/udev/rules.d/85-pcmcia.rules
/etc/init.d
/etc/init.d/pcmciautils
/lib
/lib/udev
/lib/udev/pcmcia-check-broken-cis
/lib/udev/pcmcia-socket-startup
/sbin
/sbin/pccardctl
/usr
/usr/share
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/pccardctl.8.gz
/usr/share/doc
/usr/share/doc/pcmciautils
/usr/share/doc/pcmciautils/README.Debian
/usr/share/doc/pcmciautils/copyright
/usr/share/doc/pcmciautils/mini-howto.txt.gz
/usr/share/doc/pcmciautils/changelog.Debian.gz
/usr/lib
/usr/lib/pcmciautils
/usr/lib/pcmciautils/config.opts
/sbin/lspcmcia
/usr/share/man/man8/lspcmcia.8.gz
Post relacionados:
Como encontrar los nuevos programas instalados.
Recuperar datos en particiones Reiserfs.

Últimamente he tenido problemas al trabajar con particiones reiserfs. Las particiones en cuestión, tienen secores defectuosos y es imposible montarlas, y por lo tanto acceder a la información que contienen.
Es curioso, que en un sistema con Journaling, como es reiserfs siga habiendo problemas de corrupción. Ya que en teoria, el Journaling previene la corrupción del sistema efectuando las lecturas/escrituras como transacciones.
La idea del Journaling es buena, e incluso funciona, ya que cuando se produce un apagado inesperado del sistema bien sea por un corte de luz, o por un reset intencionado, en todos los casos que probé el sistema se levantó correctamente y no hubo ningún tipo de perdida de datos.
No obstante, existe un problema. ¿Qué sucede si el disco empieza a tener problemas físicos?
Pues es bien sencillo, en este caso no podremos acceder a los datos que estuvieran escritos sobre los sectores defectuosos resultantes de los problemas físicos. Pero el resto de datos en teoria deberían estar intactos.
¿Y si los sectores defectuosos coinciden por el espacio reservado al journal?
En este caso sí, que tenemos un problema grave, ya que el disco no es accesible, y no se puede montar, por lo que en teoria habriamos perdido todos nuestros preciosos datos.
Como decía últimamente he tenido este tipo de problemas con varios discos sólidos, basados en memoria flash.
Y trás mucho investigar e descubierto una forma de recuperar toda la información que contenían los discos, y consiste más o menos en intentar montar la partición dañada, especificandole el journal de otra partición reiserfs que no este corrupta.
Supongoamos dos particiones reiserfs:
/dev/hda5 Corrupta con el journal dañado
/dev/hda1 Partición con funcionamiento normla
Para montar poder montar la particion corrupta /dev/hdc1 debemos hacer lo siguiente:
mount -t reiserfs -o jdev=/dev/hdc5 /dev/hdc1 /mnt/
De esta forma deberiamos ser capaces de montar la partición y acceder a todo su contenido sin problemas. Si aún así seguimos teniendo problemas creo sólo nos quedará la opción de mandar nuestro disco a alguna empresa de recuperación de datos.
¿Como usar el comando less como como tail? fácil, habre cualquier archivo con less, y una vez abierto pulsas SHIFT + f. Inmediatamente, verás todos los nuevos cambios que se van produciendo en el archivo abierto, en tiempo real.
Como montar particiones individuales de la imagen de un disco completo
Esta mañana en el curro me he encontrado con la necesidad de montar una partición determinada de la imagen del disco duro que tenemos hecha como backup del servidor principal. Y es que no se por qué pero no habia manera de acceder a dicho servidor.
En un principio creía que sería algo trivial, pero no es tan sencillo como a priori pueda parecer.
Para acceder a una particion en concreto de la imagen del disco en primer lugar debemos averiguar en que posición del archivo se encuentra, para ello podemos usar el comando sfdisk. De tal forma que ante este comando:
sfdisk -d image.iso
Obtendriamos la siguiente salida:
# tabla de particiones de image.iso
unit: sectorsimage.iso1 : start= 63, size= 1915137, Id=83, bootable
image.iso2 : start= 1915200, size= 131040, Id= 5
image.iso3 : start= 0, size= 0, Id= 0
image.iso4 : start= 0, size= 0, Id= 0
image.iso5 : start= 1915263, size= 130977, Id=83
O bien podemos usar fdisk:
fdisk -lu image.iso
Obtieniendo:
Debe establecer cilindros.
Puede efectuar esta operación desde el menú de funciones adicionales.Disco image270607.iso: 0 MB, 0 bytes
32 cabezas, 63 sectores/pista, 0 cilindros, 0 sectores en total
Unidades = sectores de 1 * 512 = 512 bytesDisposit. Inicio Comienzo Fin Bloques Id Sistema
image.iso1 * 63 1915199 957568+ 83 Linux
image.iso2 1915200 2046239 65520 5 Extendida
image.iso5 1915263 2046239 65488+ 83 Linux
En cualquiera de los dos casos, obtenemos la posición exacta que ocupa el disco a montar dentro de la imagen.
Así pues para montar la primera partición del disco, bastará con hacer unos pequeños cálculos. Teniendo encuenta que esta partición empieza en el sector 63, y que cada sector consta de 512 bytes, la posición exacta de la partición estará en:
63 * 512 = 32256
En el byte 32256, con esto ya podemos montarla de la siguiente forma:
mount -o loop,offset=32256 image.iso /punto_de_montaje
Por lo tanto para acceder a cualquier partición del disco, solo tenemos que calcular su desplazamiento en bytes.
Afortunadisima Desafortunada foto de Bush.
Y el correspondiente video, que como no podía faltar:
NO deja de sorprenderme la pasión por ubuntu
Pues eso que hay gente que lo mismo te hace unas galletitas.
Como se tatua el logo de ubuntu en el trasero.
Y es que Ubuntu, crea adicción. Por cierto, gran culo, el de la señorita.
Mi ubuntu no reconoce el hardware del USB
Hoy me ha pasado una cosa curiosa en el curro, y es que me disponia a conectar una memoria flash de un giga, a través de un adaptador, por el puerto usb, y por algún misterioso motivo mi Ubuntu no me reconocia el hardware conectado. Yo estaba seguro, que el dispositivo debía hallarse en /dev/sda, pero mirando con el comando dmesg, no veía tal dispositivo.
Tras varias consultas con los compañeros descubro sfdisk que es un programita para manipular la tabla de particiones. Escribo:
sfdisk -R /dev/sda
Y al instante, Ubuntu, ya reconoce el nuevo dispositivo. La opción -R permite releer la tabla de particiones.
Para más información acerca de este precioso programita podesi mirar el man de sfdisk.
Hoy he descubierto una nueva y preciosa comunidad; NoUbuntu, y no deja de sorprenderme, como puede haber gente de mentalidad tan cerrada y elitista, con una filosofía tan prepotente, que intenta aunque creo que inconscientemente, arremete contra los ideales que Ubuntu lleva consigo.
Les dejo unos pedacitos de su sabidía:
Muchos se preguntarán porque estar en contra del uso de Ubuntu, porque pelearse desde dentro del software libre.
Sí, llevais razón, por qué pelearse…
Ellos trajeron muchos usuarios, es verdad; entonces, ¿ Que pasa por nuestras mentes?
También llevais razón, cómo es posible que quizás la distribución que ha dado a conocer a mayor número de usuarios el mundo de linux, sea tan mala. Y sí quizás tenga muchos defectos, pero su mayor virtud, es su poder de comunicar y de llegar a las personas.
Ubuntu es una distribución claramente orientada al área de escritorio, principalmente a los novatos. ¿ Que tiene esto de malo ?, simple, que alguien no se dedique a la informática no quiere decir que no deba saber como funciona, igual que el que maneja tiene que tener registro, aquel que usa una computadora debe saber usarla.
Otra vez llevais razón me habeis convencido, así como el que no sabe coser no debería llevar ropa, el que no sabe de mecánica no debería conducir, el que no sabe cocinar no debería comer. Ohhh dios, ¿comida precocinada? qué sacrilegio!!!
En fin… simple, que alguien no se dedique al diseño gráfico no quiere decir que no deba saber como funciona…. el Photoshop, por ejemplo.
Y aún voy más hallá pobres mortales, nadie debería usar ninguna herramienta que no sabe como funciona al 100%.
Ups, mierda, creo que estoy bajando el último episodio de los Teletubies usando Azureus, y aún no me he leido las especificaciones del protocolo BitTorrent.
La filosofía de “User friendly” lo que logra es llenar los foros, canales de irc y blogs de preguntas repetitivas y que fácilmente se podrían resolver leyendo el man correspondiente; esto no ayuda a la comunidad.
Creo que es bastante normal que se llenen foros, canales de irc y blogs, de preguntas repetitivas e incluso absurdas, ya que Ubuntu, prentende llegar al mayor número de usuarios posibles, y por desgracia no todos somos expertos, como ustedes.
Si no recuerdo mal el eslogan de Ubuntu era… “Linux para seres humanos”.
Vaya pues eso señores, que Linux para los seres humanos… yo creo que queda bien claro.
Ubuntu piensa incluir drivers propietarios, si, no es la única distro que lo hace, pero el que sea la “distro de los novatos” pone en riesgo a la comunidad entera.
Aquí queda bien claro lo elitista del grupo, Ubuntu es una distro para simples novatos y pone en riesgo a toda la comunidad. De hecho y esta es mi opinión personal no debería existir las distribuciones para novatos, no se lo conteis a nadie, pero creo que si usas con cuidado tu Ubuntu, puede explotar tu computadora, y el alcance de la explosión es inimaginable, pone en riesgo a toda la comunidad.
Es más, creo que no se deberían vender coches tampoco, ya que cualquiera puede atropellar al vecino del al lado. Sólo deberían conducir los coches, gente preparada como… Fernando Alonso o Michael Schumacher. Y voy todavia más allá, los cuadros de mando de los actuales coches son muy sencillos, y hacen que cualquiera pueda conducirlos, creo que debeían hacerlos similares a los de un boeing 747.
No necesitamos traer miles y miles de usuario constantemente, es preferible un usuario que migre por la filosofía a mil usuarios que migren por marketing.
Ubuntu simplemente acerca el mundo de linux, a las personas con menos conocimientos, y sí, quizás migren / migremos por marketing. Pero al menos, todos esos usuarios que han / hemos migrado, hemos tenido la oportunidad de conocer una al ternativa al dichoso Windows. Y si nos quedamos en Ubuntu, o Windows, quizás sea por que es el sistema que más nos gusta o agrada.
La libertad consiste en elegir tu propia alternativa entre muchas posibles, si sólo conoces un camino, no eres libre de caminar por los demás.
Los foros, la web, se han ido llenando de Ubuntu, hasta tal punto que muchos lo usan como sinónimo de “Linux”. ¿ Como podemos permitir que el software libre sea representado por una distribución que claramente se salta todos nuestros ideales?.
Sí, ya veo cuales son sus ideales…
recode, es un programa para convertir ficheros de un sistema de codificación a otro diferente. Esta mañana me encontré con un problema de compatibilidad entre dos programas, el caso es que en teoria ambos programas usaban el mismo fichero de configuración, solo que uno trabajaba bajo windows y el otro bajo linux. El programita en cuestión funciona bastante bien con la mayoria de ficheros de configuración, pero tiene un pequeño problema de compatibilidad, y es que no puedes introducir, carácteres extraños ni accentos en dicho fichero. Por cuestiones que no vienen al caso, yo necestiba usar acentos, así que buscando la solución me encontré con recode. Por lo visto, el sistema el sistema de codificación de Windows, es ASCII, y el de Ubuntu es UTF8. Así para convertir un fichero codificado en ASCII a UTF8, basta con invocar a este maravilloso programita:
recode txt..utf-8 fichero_a_convertir.hexY con esto obtenemos nuestro fichero en formato UTF8. Problema solucionado.
Nueva generación de ordenadores. Coffee Table.
Parece ser que estos chicos de microsoft, quieren convertir la típica mesa de salón en un potenete y atractivo ordenador de última generación. Según se puede ver en el video, creo que pretenden que nos vayamos olvidando de teclados ratones. Echadle un vistazo, no tiene desperdicio.
Me quedo con la intriga, ¿qué sistema operativo llevará el cacharro ese?
Según la wikipedia,
El efecto estroboscópico es un efecto óptico que se produce al iluminar mediante destellos, un objeto que se mueve en forma rápida y periódica.
Así, supuesto que el objeto no puede ser visto si no es con esta iluminación destellante, cuando la frecuencia de los destellos se aproxima a la frecuencia de paso del objeto ante el observador, éste lo vera moverse lentamente, hacia adelante o hacia atrás según que la frecuencia de los destellos sea, respectivamente, inferior o superior a la de paso del objeto.
¿Ha quedado claro, no? Pues vien, aquí teneis la explicación práctica o visual de lo que es el efecto estroboscópico.
Patrón de selección de nautilus.
Hoy fruto de la casualidad, he descubierto una nueva funcionalidad de nautilus.
A esta opción puede accederse directamente mediante la combinación de teclas Ctrl+s, que es como yo la he descubierto o bien desde la opción del menú Editar → Patrones de selección. El patron de selección sirve para seleccionar todos los archivos que coinciden con un nombre dado. Es decir para seleccionar todos los archivos terminados en avi de un directorio, nos vamos con el nautilus a ese directorio, y pulsamos Ctrl+s, nos saldrá un diálogo similiar al siguiente:

Aquí escribimos “*.avi”, sin las comillas, y automáticamente se seleccionarán todos los archivos terminados en avi.
Muy útil, y sinceramente no sabía que existía.
Como refrescar las filas de un TreeView en gtkmm
Cuando estamos trabajando con el TreeView de las gtkmm y necesitamos actualizar varias filas de manera simultanea desde diferentes hilos nos encontramos con que las dichosas filas no se actualizan de la manera correcta. Es más se comportan de forma totalmente incoherente.
A los programadores que vengan de Windows, como yo, es posible que en un principio les resulte extraño el comportamiento del TreeView. En realidad es bastante extraño, ya que en Windows, no hace falta hacer ningún tipo de gestión especial, como mucho llamar a Invalidate o a Redraw, pero por desgracia el Gtk TreeView, no tiene implementados este tipo de métodos.
Cuando queremos actualizar la vista del TreeView desde un hilo, difrente al hilo principal, debemos indicarselo al sistema explicitamente. Ya que si no lo hacemos, el sistema no se enterará de los cambios que ha realizado nuestro hilo, y por lo tanto no los reflejerá en pantalla.
Para mostrar una posible forma de actualizar el TreeView, desde diferentes threads, he hecho un pequeño programa basado en uno de los ejemplos que hay en la página oficial de gtkmm. El cuerpo del programa sería el siguiente:
file: main.cpp
#include <gtkmm /main.h>
#include <glibmm .h>
#include “listprogress.h”
#include
int main(int argc, char **argv)
{
Glib::thread_init();
gdk_threads_init();Gtk::Main kit(argc, argv);
ListProgress window;gdk_threads_enter();
Gtk::Main::run(window);
gdk_threads_leave();
return 0;
}
En el main, debemos llamar a las funciones Glib::thread_init() y gdk_threads_init(), la primera, nos habilita el funcionamiento de los threads dentro de nuestra aplicación, y la segunda está relacionada con el manejo de pantalla por parte de los diferentes hilos.
Después llamamos a Gtk::Main kit(argc, argv) que inicializa las gtk y construimos un nuevo objeto ListProgress window, el cuál está definido en los archivos posteriores.
Por último sólo nos queda pasarle el control a nuestro nuevo objeto Gtk::Main::run(window), pero como sabemos que el contenido del TreeView va a ser modificado desde diferentes threads, tendremos que incluir la llamada entre estás funciones que nos indican que vamos a manejar el uso de la pantalla; gdk_threads_enter() y gdk_threads_leave().
A continuación mostraré, la definición y declaración del objeto ListProgress.
file: listprogress.h
#ifndef LISTPROGRESS_H
#define LISTPROGRESS_H
#include
#include “threadprogress.h”
class ModelColumns : public Gtk::TreeModel::ColumnRecord
{
public:
ModelColumns()
{
add(m_col_id); add(m_col_name); add(m_col_number); add(m_col_percentage);
}
Gtk::TreeModelColumnm_col_id;
Gtk::TreeModelColumnm_col_name;
Gtk::TreeModelColumnm_col_number;
Gtk::TreeModelColumnm_col_percentage;
};
class ThreadProgress;
class ListProgress: public Gtk::Window
{
public:
ListProgress();
~ListProgress();protected:
virtual void on_button_quit();
protected:
ThreadProgress* mTrhead1;
ThreadProgress* mTrhead2;
ThreadProgress* mTrhead3;
Gtk::VBox m_VBox;
Gtk::ScrolledWindow m_ScrolledWindow;
Gtk::TreeView m_TreeView;
Glib::RefPtrm_refTreeModel;
Gtk::HButtonBox m_ButtonBox;
Gtk::Button m_Button_Quit;
public:
ModelColumns m_Columns;
};
#endif
file: listprogress.cpp
#include “listprogress.h”
ListProgress::ListProgress() : m_Button_Quit(”Salir”)
{
set_title(”Gtk::TreeView (ListStore) Ejemplo”);
set_border_width(5);
set_default_size(400, 200);add(m_VBox);
m_ScrolledWindow.add(m_TreeView);
m_ScrolledWindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);m_VBox.pack_start(m_ScrolledWindow);
m_VBox.pack_start(m_ButtonBox, Gtk::PACK_SHRINK);m_ButtonBox.pack_start(m_Button_Quit, Gtk::PACK_SHRINK);
m_ButtonBox.set_border_width(5);
m_ButtonBox.set_layout(Gtk::BUTTONBOX_END);
m_Button_Quit.signal_clicked().connect( sigc::mem_fun(*this, &ListProgress::on_button_quit) );m_refTreeModel = Gtk::ListStore::create(m_Columns);
m_TreeView.set_model(m_refTreeModel);Gtk::TreeModel::Row row = *(m_refTreeModel->append());
row[m_Columns.m_col_id] = 1;
row[m_Columns.m_col_name] = “Billy Bob”;
row[m_Columns.m_col_number] = 10;
row[m_Columns.m_col_percentage] = 0;
mTrhead1 = new ThreadProgress(&row, &m_Columns, 20000);
mTrhead1->Start();row = *(m_refTreeModel->append());
row[m_Columns.m_col_id] = 2;
row[m_Columns.m_col_name] = “Joey Jojo”;
row[m_Columns.m_col_number] = 20;
row[m_Columns.m_col_number] = 0;
mTrhead2 = new ThreadProgress(&row, &m_Columns, 40000);
mTrhead2->Start();row = *(m_refTreeModel->append());
row[m_Columns.m_col_id] = 3;
row[m_Columns.m_col_name] = “Rob McRoberts”;
row[m_Columns.m_col_number] = 30;
row[m_Columns.m_col_percentage] = 0;
mTrhead3 = new ThreadProgress(&row, &m_Columns, 60000);
mTrhead3->Start();m_TreeView.append_column(”ID”, m_Columns.m_col_id);
m_TreeView.append_column(”Nombre”, m_Columns.m_col_name);
m_TreeView.append_column_numeric(”Número formateado”, m_Columns.m_col_number, “%010d”);Gtk::CellRendererProgress* cell = new Gtk::CellRendererProgress;
int cols_count = m_TreeView.append_column(”Porcentage”, *cell);
Gtk::TreeViewColumn* pColumn = m_TreeView.get_column(cols_count - 1);
if(pColumn)
pColumn->add_attribute(cell->property_value(), m_Columns.m_col_percentage);for(guint i = 0; i < 2; i++)
{
Gtk::TreeView::Column* pColumn = m_TreeView.get_column(i);
pColumn->set_reorderable();
}show_all_children() ;
}
ListProgress::~ListProgress()
{
delete mTrhead1;
delete mTrhead2;
delete mTrhead3;
}
void ListProgress::on_button_quit()
{
hide();
}
Como podeis ver, el código es casi identico al del ejemplo de las gtkmm, sólo tiene una pequeña modificación que consiste en la incursión del objeto ThreadProgress, que describiré a continuación. Este objeto es el encargado de crear los diferentes threads, y de actualizar los datos del TreeView desde los nuevos hilos creados. Su código es el siguiente:
file: threadprogress.h
#ifndef THREADPROGRESS_H
#define THREADPROGRESS_H#include
#include
#include “listprogress.h”class ModelColumns;
class ThreadProgress{
public:
ThreadProgress(Gtk::TreeModel::Row*, ModelColumns*, int);
~ThreadProgress();
protected:
Glib::Thread* thread;
Gtk::TreeModel::Row row;
ModelColumns* column;
int delay;
void main();
public:
void Start();
};
file: threadprogress.cpp
#include “threadprogress.h”
#include
#includeThreadProgress::ThreadProgress(Gtk::TreeModel::Row* row, ModelColumns* colum, int delay)
{
this->row = *row;
this->column = colum;
this->delay = delay;
}
ThreadProgress::~ThreadProgress()
{
}
void ThreadProgress::Start()
{
thread = Glib::Thread::create(sigc::mem_fun(*this, &ThreadProgress::main), true);
if (!thread)
{
std::cout < < "Error al crear el thread" << std::endl;
exit(1);
}
}
void ThreadProgress::main()
{
for(int i = 0; i<=100; i++)
{
gdk_threads_enter();
row[column->m_col_percentage] = i;
gdk_flush();
gdk_threads_leave();
usleep(delay);
}
return;
}
En el constructor inicializamos los campos correspondientes al retardo que le ponemos a cada hilo, la fila a la que representa la barra de progreso del hilo, y la estructura ModelColumns, que nos permitirá acceder a cualquiera de las columnas del TreeView.
El método Start, simplemente se encarga de lanzar el nuevo hilo;
thread = Glib::Thread::create(sigc::mem_fun(*this, &ThreadProgress::main), true);
Y en el método main, que ya estará en un nuevo contexto de ejecución, es donde realizamos la actualización de las barras de progreso con el retardo indicado en el constructor.
void ThreadProgress::main()
{
for(int i = 0; i< =100; i++)
{
gdk_threads_enter();
row[column->m_col_percentage] = i;
gdk_flush();
gdk_threads_leave();
usleep(delay);
}
return;
}
Seguro que hay otras maneras de actualizar las columnas del ListStore desde diferentes hilo, ésta es solo una de las posibles implementaciones, y no creo que sea la mejor. Si alguno conoceis una manera alternativa, ruego que la comenteis.
Os dejo una bonita captura de pantalla del pequeño programita que he hecho.

No al soporte gratuito a microsoft!
Lo siento, pero no se como funciona el Windows ese…, yo uso Ubuntu, si quieres te ayudo a instalarlo.

Visto en aceitunassinhueso.
Firefox bloquea las direcciones sospechosas
Hoy me ha dado una agradable sorpresa nuestro querido firerox. El caso es que estaba leyendo el correo cuando de pronto me encuentro un email, de estos que te piden los datos bancarios, claro ejemplo de phishing, y como siempre hago lo mismo con este tipo de emails, pues me he clickeado en la dirección indicada para rellenar el formulario con datos falsos. Pero… y aquí llega mi sorpresa, el firerox me ha avisado de que la página puede ser fraudulenta. Bien por firerox.
Aquí os adjunto unas imagenes del aviso de firerox.

Y aquí la página a la que llegamos si ignoramos las advertencias.

Seguro que le ahorran un disgusto a algún despistado.
Por cierto, por si no lo habeis notado, le intentaban hacer phishing a Banesto, no caigais en la trampa.
Esta mañana estaba jugueteando con un pequeño programita que he hecho para escribir en los primeros sectores del disco duro. Y claro, era de esperar, sin querer he borrado el GRUB de mi precioso Ubuntu.
He estado visitando varias web para ver como solucionarlo, y en ninguna de ellas me daban la solución definitiva. El caso es que es muy sencillo, basta con usar un programa llamado grub-install.
Si te das cuenta de que acabas de eliminar tu GRUB, bastaría con ejecutar:
grub-install /dev/hda
donde /dev/hda es el disco donde estaba instalado anteriormente el GRUB.
Si por el contrario eres un negado como yo, y solo adviertes que te has cargado el arranque, cuando vuelves a iniciar el sistema, la cosa se complica un poco pero no demasiado.
El método que seguí fue el siguiente; en primer debes arrancar con el DVD de Ubuntu Live, una vez arrancado el sistema tienes que montar la partición donde tenías instalado el sistema.
mkdir ubuntu
sudo mount -t vfat /dev/hda1 ubuntu
Después montaremos los sistemas de ficheros /dev y /proc en los de nuestra antigua partición.
sudo mount -o bind /dev ubuntu/dev
sudo mount -o bind /proc ubuntu/proc
A continuación y gracias al comando chroot, indicamos al sistema que actue como si la carpeta ubuntu, fuese la raiz del sistema.
sudo chroot ubuntu
Y ya por último invocamos al dichoso programita que nos restaurará el GRUB.
grub-install –recheck /dev/hda
grub-install para recuperar GRUB. Maravilloso.
La verdad, no sé como pueden llegar este tipo de cartas a sus destinatarios.

La traducción sería más o menos así:
POR FAVOR, SEÑOR CARTERO. MIS TIOS VIVEN EN LA CALLE QUE VA HACIA EL CAMPING DE LA PEDRIZA. SEGÚN SE ENTRA EN LA CALLE ES LA 3ª O 4ª CASITA. (NO SE EL NOMBRE NI EL NÚMERO). LA PUERTA ES DE HIERRO, COLOR VERDE, Y SE VE, SI SE ASOMA, UN ARMARIO DE MADERA A LA IZDA. LA FACHADA ES DE COLOR NARANJA Y TIENE TRES VENTANAS.
MUCHAS GRACIAS ANTICIPADAS POR SU INTERÉS, POR EL ESFUERZO Y EL GRAN SERVICIO QUE NOS HACEN A TODOS. ESPERO QUE TENGAN UN GRAN VERANO, LES AUMENTEN EL SUELDO Y LA CATEGORÍA Y TODO LO DISFRUTEN CON SALUD, FELICIDAD Y ALEGRÍA.
P.D.: SI USTD VE A MIS TIOS, DELES RECUERDOS, Y QUE LE INVITEN A UNA “COCA COLA” FRESQUITA.
MUCHAS GRACIAS.
Lo que más me llama la atención es que la persona que escribió la carta no es precisamente de un nivel cultural muy bajo, ya que escribe con acentos y tabulaciones.
Como evitar el checkeo de particiones en el incio
Al inciar un sistema linux, hay un paso donde se montan las diferentes particiones del sistema y se chequean en caso de ser necesario. Esto normalmente no es un problema, pero en el caso de tener discos muy grandes con un gran número de particiones, el arranque del sistema puede hacerse muy lento.
Se puede evitar el chequeo de particiones al arranque, modificando el fichero fstab (/etc/fstab). En este archivo se definen las diferentes particiones que el sistema montará al inicio. Echandole un ojo la ayuda de fstab podemos ver que el campo que nos indica si las particiones serán verificadas o no es el sexto campo dentro de cada línea.
The sixth field, (fs_passno), is used by the fsck(8) program to determine the order in which filesystem checks are done at reboot time. The root filesystem should be specified with a fs_passno of 1, and other filesystems should have a fs_passno of 2. Filesystems within a drive will be checked sequentially, but filesystems on different drives will be checked at the same time to utilize parallelism available in the hardware. If the sixth field is not present or zero, a value of zero is returned and fsck will assume that the filesystem does not need to be checked.
Por lo que para evitar el checkeo de una partición debemos fijar el este campo a 0.
Programación en linux: gtk+, gtkmm
Despues de trabajar varios meses sobre Windows con las librerias wtl, me he decidido a comenzar con programación gráfica bajo linux. Trás ver varias alternativas al final he optado por
usar las librerias gtkmm, para realizar entornos visuales. Estás librerias, se basan en las
GTK+. Según la wikipedia las gtkmm son utilizadas para desarrollar aplicaciones basadas en GTK+ con c++.
Antes de empezar a trabajar con estas librerias, debemos instalarlas, y tambien sería onveniente
disponer de algún entorno de desarrollo. Como normalmente trabajo con ubuntu, opté por usar anjuta.
Desde el synaptic, instalé los siguientes programas o librerias:
- anjuta
- g++
- libgtkmm-2.4-1c2a
- libgtkmm-2.4-dev
- libgtkmm-2.4-doc
- autoconf
- libtool
- libglademm-2.4-dev
Despues de instalarlo todo, ya podemos crear un proyecto gtkmm, y compilar nuestro primer
programa de ejemplo:
#include
int
main (int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
Gtk::Window window;
kit.run(window);
return 0;
}
Dicho así suena muy sencillo, pero la verdad es que me costó unas cuantas horas dejarlo todo
preparado.

Como obtener el número de columnas de un ListView
Despues de mirar la documentación que ofrece Microsoft sobre los controles ListView, no encontraba ninguna función que pudiera estar relacionada con el número de columnas del control.
Trás mucho buscar, hallé la función GetHeader(), que nos devuelve el handle del control Header, usado por el ListView. Una vez tenemos este identificador es muy fácil obtener el número de columnas, mediate la función GetItemCount().
El siguiente código muestra como obtener el número de columnas de un ListView:
int GetNumColumns(CListViewCtrl* list)
{
CHeaderCtrl hd = list->GetHeader();
return list->hd.GetItemCount();
}
Obviamente, el ListView debe tener el estilo LVS_REPORT, para tener columnas.
Como seleccionar una fila completa en un ListView
Para seleccionar una fila completa, depues de crear el CListViewCtrl, debemos llamar a la función SetExtendedListViewStyle, y pasarle como parametro, el estilos extendidos actuales más LVS_EX_FULLROWSELECT, que es el que se encarga de hacer que la selección de la fila sea completa.
Dado un CListViewCtrl, llamado mList, el código es el siguiente:
mList->SetExtendedListViewStyle(mList->GetExtendedListViewStyle() | LVS_EX_FULLROWSELECT);
Insetar imagenes en un CComboBoxEx
Despues de media mañana intentando insertar imagenes en un CComboBoxEx, por el momento me doy por vencido. El código es el siguiente:
LRESULT CLog::OnInitDialog(UINT , WPARAM, LPARAM, BOOL&)
{
mComboEx.Attach(GetDlgItem(IDC_COMBO));
CBitmap bmp;
bmp.LoadBitmap(IDINSTALL);mImg.Create(16, 16, ILC_COLOR8|ILC_MASK, 2, 1);
mImg.Add(bmp, RGB(0xFF,0x00,0xFF));
mComboEx.SetImageList(mImg);for(int i =0; i<5; i++)
{
COMBOBOXEXITEM cb={0};
cb.mask=CBEIF_TEXT | CBEIF_IMAGE | CBEIF_SELECTEDIMAGE;
cb.pszText=L”ola”;
cb.cchTextMax=strlen(”ola”)*sizeof(TCHAR);
cb.iImage=0;
cb.iSelectedImage=1;
cb.iItem=mCombo.GetCount();
mComboEx.InsertItem(&cb);
}
}
Sobra decir que mComboEx, está definido como un CComboBoxEx.
Además tambien he llamadado a InitCommonControlsEx, tal y como dice la MSDN:
A ComboBoxEx control must be initialized by calling the InitCommonControlsEx function, specifying ICC_USEREX_CLASSES in the accompanying INITCOMMONCONTROLSEX structure
El código es el siguiente:
AtlInitCommonControls(ICC_COOL_CLASSES | ICC_BAR_CLASSES|ICC_USEREX_CLASSES );
Aún así sigo sin ver resultados, no soy capaz de insertar un solo elemento en el ComboBox.
Nace esta nueva sección para ir escribiendo los problemas que me van surgiendo en mis días de programador. Normalmente trabajo bajo Windows con WTL, así que supongo que casi todos mis problemas estarán relaccionados con esta libreria.
Espero que con el tiempo yo mismo pueda ir resolviendo mis propias dudas.
Preciosa poesía escrita en castuo por un tal David. No tiene desperdicio.
No quieru callalmi,
no pueu callalmi.Mentrah aiga:
Muchachinuh pasandu jambri,
ancianus viviendu’n la probeza,
jombrih y mujerih sufriendu
en’esta biá, toa llena de penah.Politicuh y gobelnantih
que no son d’ erechah,
tampocu d’ ihquielda
la su ideologia es el dineru,
y acabal el su mandatu
con’el arca bien yena.Religionih, qu’a tó crihtu enrean,
con trolah máh grandih que carruh
con cieluh y fueguh de infiernuh
con tó lo que puean
pa qu’asi t’asustih,
pa qu’asi no pueas,
pensal pol ti mesmu,
del mundu qu’abemus,
de lo que mos roban,
de lo que mos quean.Mentrah aiga:
Opresion, d’unus pa otrus
La libertá, una chanza
La pá, solu en loh papelih
La josticia, una balanza
Fanaticus, de cualquier tipu
Amorfus, que de to pasan
Gentis, colgas de la boteya
Otrus, felicis con yenar la panza.No pueu callalmi,
no quieru callalmi.Estu, esta podriu y jiedi
unamonoh toh, hay que arrejuntalsi,
pa jacel una juerza cambiaora
que s’impliqui en cambius empoltantis,
hay que cambial la estoria
de las gerras miserias y jambris.Hay que runchal con lo que sia
el bervu la aza o la escopeta,
es aquí aöndi sebe la ombria
no en el bar elanti ela botellaEs precisu que to estu s’acabi,
que dejemus caunu
d’empujal la nuestra noria,
qu’si arrempujamuh toh a una,
prontu mu prontinu
cambiaremuh la estoria,
y podremus desegir a los politicuh,
que d’una vé cambiin lah cosah,
y si no lo jacin loh sacamuh
de la güena vida y la vicoca.Pa esu hai que jacel esjuerzuh
y tamien sacrificalsi,
creemus una nueva sociedá
aondi to estú, ¡no pasi!david 1/2000
Como encontrar los nuevos programas instalados
A veces, con el tiempo nos olvidamos de los frustrante que puede ser realizar una migración de windows a linux, para los usuarios poco experimentados, y es que todos en algún momento hemos sido usuarios noveles.
Con el paso del tiempo adquirimos y afianzamos conocimientos y damos por setado, un millar de cosas que los nuevos usuarios de linux, no tienen por qué saber.
Escribo este nuevo tema en relación a un mensaje leido en el foro de ubuntu-es.org.
Racallejo, en cuestión es el usuario, que formula la pregunta, ¿comó encuentro donde se instala un programa?
Bueno, no se como lo harán los demás, pero yo suelo utilizar dos métodos:
Sí, ya se que el titulo no es nada descriptivo, es como decir, nieve blanca o fuego caliente.
No suelo escribir mucho sobre politca, será porque no me siento ni represantado ni nada por esta banda de olgazanes a los que llamamos politicos.
¿Y a qué viene todo esto? Pues supongo que no es por nada en concreo pero a la vez es por todo. Y la chispa que faltaba para hacerme escribir estas líneas la produjo el otro dia el señor Rajoy en unas declaraciones a no recuerdo que televisión, mejor, así no hago publicidad. En estas declaraciones nos decía lo mal que lo está haciendo el PSOE, cosa que a mi juicio es verdad, lo está haciendo muy mal, con acciones que no vienen a cuento explicar, ya que sino estaría horas escribiendo. Además nos contaba que tanto él como su grupo politico, el PP, no se meten en cuestiones absurdas, que no le importan al pueblo ni le benefician, refiriendose al Estatuto de Cataluña, sino que por el contrario el PP, escucha al pueblo, lo apoya y defiende sus intereses…
A mi entender todo son sucias mentiras, cada uno se arrima al brasero que más calienta, es decir a los que tienen el poder. Porque sino, muy señor mio Rajoy no me explico como en vez de erradicar por ejemplo los canones a cds y dvds, imponen nuevos canones, a mp3 y Dios sabe que nuevos tipos de formatos digitales.
Y es que como he dicho anteriormente en este mundo cada uno se acerca a quien le conviene, y los politicos no son una excepción, aunque deberían, ya que nos representan a todos.
Y sí esto es una crítica a las sociedades de autores, ya que aunque no representan ni por asomo a la mayoría de autores, presionan al gobierno para que pongan canones avusivos cuyos beneficios solo se llevan estos pocos autores y las sociedades, aunque sean sin animo de lucro.
Esto no es crítica ni al PSOE ni al PP, sino en general a todos los politicos.
Si escuchasen al pueblo no tendrían dudas. No al canon sobre soportes digitales.
Las nuevas tarifas del canon son totalmente inadmisibles.
Al fin vuelve a estar activo el blog después de más de una semana de inactividad. En todo este tiempo estuve buscando alternativas para alojar el blog en otros servidores. Las mejores que encontre sin duda alguna son: wordpress y blogsnome. Ambas en inglés.
Despues del susto voy a hacer una copia de seguridad de todas las entradadas del blog, por si algún día vuelve a suceder un accidente de estos.
De todas formas estoy pensando seriamente cambiar el blog de sitio. Habrá que estudiar las alternativas.
Desde esta página se pueden generar fácilmente los archivos sources.list para tu ubuntu.
Su funcionamitento es muy sencillo, basta con ir señalando los repositorios que quieres incluir y finalmente pinchar sobre el botón Give me a sources.list!.
Se generará un archivo sources.list con todos los repositorios indicados. Para usar estos nuevos repositorios tenemos que sustituir el archivo original por el que hemos generado. Como ya sabrán el archivo original se encuentra en la carpeta /etc/apt/
Automatix, para todos los escritorios ubuntu
Como todos sabeís hasta hace poco había que descargarse una versión de automatix, según usaramos ubuntu, o kubuntu. Pues bien han sacado una nueva versión de automatix, válida para todos los entornos de escritorio ubuntu.
Es decir esta nueva versión es válida para ubuntu, kubuntu y xubuntu, todos en su versión Breezy x86.
Para instalar automatix, basta con abrir la consola, teclear:
sudo apt-get install xterm
wget http://beerorkid.com/automatix/automatix_5.3-3_i386.deb
sudo dpkg -i automatix_5.3-3_i386.deb
Obtendrás más información en ubuntuforums
Firefox y el pais, están ‘aliados’.
Pues eso, que el famoso navegador firefox y la web del periodico el pais, están ‘aliados’.
Y os preguntareís, ¿cómo que están aliados?, pues es sencillo, abrid el firefox, y escribir en la barra de direcciones por ejemplo:
http://http://pepitoeldelospalotes
ó
http://http/olacaracola
ó cualquier otra dirección que siga el patrón de escribir “http://http/” y a continuación el texto que queraís.
¿Qúe página se os abre? A mi, a la de el pais. Curioso, pero cierto.
Lo comentado en esta entrada ha sido probado con firefox 1.5 bajo Kubuntu 5.10 y bajo Ubuntu 6.04.
PD: Más tarde compruebo que con firefox 1.04 y windows XP, la redirección es hacia microsoft. ¿Y a ti, dónde te redirecciona?
O están aliados o es un grandisimo bug de firefox.
Configurando el acceso a mi disco duro externo en kubuntu
¿Qué por qué me decidí por hacer estas particiones? Bueno el caso es que quería total compatibilidad windows / linux, y fat32, es un sistema de archivos soportado por ambos sitemas operativos, así que en lo que se refire a fat32, no hay duda. Sin embargo, ext32 en principio solo es soportado por linux, pero ofrece otras ventajas, como la de poder almacenar archivos mayores de 4 Gb, y además existe un programa maravilloso para windows que permite ver tus particiones ext2 / ext3 de linux, se trata del Ext2 Installable File System. Para todo aquel que no lo conozca le recomiendo que lo instale de inmediato. Es una maravilla.
Una vez formateado, inicié el sistema y… ¡sorpresa! kubuntu solo me reconoce una partición, la fat32.
Así de primeras se me ocurrió una solución rápida, editar el fstab (/etc/fstab). De esta forma añadí las siguientes lineas a mi fstab:
/dev/sda1 /media/sda1 ext3 rw,user,noauto 0 0
/dev/sda2 /media/sda2 ext3 rw,user,noauto 0 0
/dev/sda5 /media/sda3 vfat noauto,rw,user 0 0
Y a continuación creé tres nuevas carpetas en el directorio /media. Desde consola basta con escribir:
sudo mkdir /media/sda1
sudo mkdir /media/sda2
sudo mkdir /media/sda3
Y darle todos los permisos a dichas carpetas, tambien desde consola, y situados en el directorio media:
chmod 777 *
Con esto ya veo todas mis particiones de mi nuevo disco duro, y puedo acceder a ellas sin problemas. Aunque debo suponer que habrá métodos mejores y más elegantes no se me ocurrió otra opción. Si conoceis alguna otra alternativa, por favor acedmelo saber.
Y sí ya se que es muy tarde pero es lo que tiene el comprar por internet. Les cuento mi historia, en un primer momento lo encargue a través de fnac, y aunque cuando yo lo pedí indicaba que estaba en stock… pues va a ser que no, al cabo de una semana más o menos me mandaron un correo electrónico explicandome que actualmente no lo tenían y que si lo quería tendría que esperar otra semana más o algo así. Eso sí me indicaron my amablemente que podía cancelar mi pedido en cualquiermomento…
Total que tuve que cancelar el pedido y buscarme la vida de otra forma. Fué entonces cuando lo volví a pedir, y esta vez a pixmania, no sin antes llamarlos para asegurame que lo tenían es stock. Bueno el caso es que lo encargué, y aunque creí leer que el plazo máximo del articulo era de 24h, tardó en llegarme algo más de una semana. ¿Leería mal…? Bueno ¿que le vamos a hacer?
El caso es que ya tengo mi nuevo disco duro de 250 Gigas, listo para ser formateado y enchufado en mi kubuntu.
Aquí les dejo unas imagenes, para que se rian un poco de lo bonito que lo he dejado.



Y es que… más vale prevenir que curar. Que por que “in my house” anda mucho cafre suelto.
PD: Que quede claro que no estoy criticando a ninguna de las empresas citadas anteriormente, simplemente comento las experiencias que tuve con ambas… y es que en este pais anda la cosa jodida…
Aquí les dejo unas fotos, que dan fé de la nieve en la serena.





Las fotos no se ven demasiado bien pues están hechas con el movil. Pero muestran la pedazo de nevada en estas calurosas tierras extremeñas. (Calurosas en verano, claro está).
Como personalizar tu página de inicio google.
Para modificar la imagen que muestra google basta con escribir en la barra de direcciones del navegador:
http://www.google.es/custom?
y a continuación los parametros:
hl=es –> Indica el lenguaje
cof=L:http://www.ubuntu-es.org/local/images/c1_logo.png; –> Muestra la ruta de la imagen a mostrar
LH:116% –> Indica el porcentaje en el que se ampliará la imagen verticalmente.
LW:581 –> El ancho de la imagen
BGC:white –> El color del cuerpo de la página
Y así sucesivamente con los dos demás parámetros.
Al final quedaría algo así:
Está dirección es la que deberías colocar como página de inicio de tu navegador.

Nace la nueva web kubuntu-es que pretende emular a la conicida ubuntu-es.
Bienvenido a Kubuntu-es, el principal objetivo de esta web es ofrecer un gran soporte a los usuarios de Kubuntu.
Kubuntu-es ofrecerá noticias diarias, descargas actualizadas y estables, grandes manuales sobre configuración y personalización, diarios para que puedas contarnos tus experiencias con Kubuntu y un gran foro para ayudar a los demás usuarios.
Gracias por visitarnos. esperamos que Kubuntu-es sea de su agrado, estaremos atentos ante cualquier duda o sugerencia.
Ya era hora de que hicieran algo así con kubuntu. Les deseo mucha suerte con el proyecto, a ver si consiguen reunir tanto material como en ubuntu-es, pero espero que un poco mejor ordenado.
Como escuchar la cadena ser desde kubuntu
Llevaba mucho tiempo suponiendo por mi propia cuenta que no se podía escucha la cadena ser online con linux. Esto era debido a que cuando lo intentaba (pulsa aquí para escucharla) el firefox me decía que no tenía instalado el pluging necesario. Claro cuando pulsaba en obtener pluging el navegador se iba a la dichosa página de microsoft del Windows Media Player. Ante este panorama caí en la trampa de suponer que no había nada que hacer.
Tan solo me puse a investigar en el tema cuando darkomen me comentó que el sí que podía escucharla, así que sin perder un instante me puse manos a la obra con san google.
Y tras no mucho buscar encontré que el plugin que me faltaba, se llamaba mplayerplug-in.
Su instalación es bastante sencilla, yo procedí a bajarme de la página anterior la última versión rpm y a convertirla en .deb usando el alien. Ya saben:
alien -d mplayerplug-in-3.17-fc4.i386.rpm
Luego instalamos en nuevo paquete con:
dpkg -i mplayerplug-in_3.17-1_i386.deb
El plugin se instalará por defecto en la carpeta /usr/lib/mozilla/plugins/ para que los coja el firefox tan solo debemos crear enlaces de los archivos instalados a las carpetas:
/usr/lib/mozilla-firefox/plugins
/home/javuko/.mozilla/plugins
Evidentemente tienes que sustituir javuko por tu nombre de usuario.
Después de esto ya podemos escuchar la radio perfectamente, aunque el reproductor no se ve tan bien como en windows, es 100% funcional.
He aquí la coparación entre windows y linux:


Bueno espero que esto le sirva a algún linuxero despistado como yo
.
Solo me queda dar las gracias a darkomen, por que sin su comentario quizás ahora estaría contando algunas cosas no muy agradables sobre la cadena ser.
Instalando Ksmoothdock en kubuntu
Tras leer por diversos sitios, que una de las opciones para hacer más agradable a la vista el entorno kde era la utilizar está bonita barra de herramientas me dispuse a ir a kde-look, e intentar instalarla en mi pc.
Se puede descargar desde la siguiente dirección:
http://kde-look.org/content/show.php?content=6585
Allí hay diferentes sitios, de donde se puede bajar, yo probé con sitios no oficiales que contenian la versión .deb para debian, pero no hubo manera, me aparecian errores de dependencias por todos lados, así que me dispuse a bajar los fuentes oficiales y a compilarlos.
En primer lugar hay que descomprimirlos:
gunzip ksmoothdock-3.6.beta.tar.gz
tar -xf ksmoothdock-3.6.beta.tar
Luego ejecutamos el configure:
./configure
Y por último hacemos el make:
sudo make
Y aquí me da el siguiente error:
configure.in:43: version mismatch. This is Automake 1.9.6,
configure.in:43: but the definition used by this AM_INIT_AUTOMAKE
configure.in:43: comes from Automake 1.9.1. You should recreate
configure.in:43: aclocal.m4 with aclocal and run automake again.
make[2]: *** [Makefile.in] Error 1
Tras buscar un poco por google, no encontre una fácil y rápida solución así que opte por hacer una pequeña chapucilla para andar por casa. Abrí el archivo configure.in, fui a la linea 43 y observé que leches había, e intente corregir el error.
Bueno el caso es que en dicha linea, tenemos:
AM_INIT_AUTOMAKE($APPNAMELC$, $VERSION$) dnl searches for some needed programs
Como hemos visto anteriormente, a mi me da la impresión de que el error se produce porque tenemos una versión demasiado moderna del automake, pues vaya…
Trás unos instantes se me ocurrió la solución “chapuza”, editar el archivo configure.in, y así lo hice, sustituí dicha linea por:
AM_INIT_AUTOMAKE($APPNAMELC$, “1.9.6″) dnl searches for some needed programs
De esta forma engañamos al compilador y le hacemos creer que necesita la versión 1.9.6 del automake, y no la 1.9.1 que el nos decía.
Volví ha hacer el make, y me encontre con que me faltaban dos librerias. Fácil solución pues si faltan las instalamos:
sudo aptitude install libacl-dev
sudo aptitude install libattrl-dev
Y ahora, sí, ya funciona el make.
Tras hacer estos pequeños arreglos ya tenemos compilado el dichoso programita. Mañana veré que aspecto tiene, a ver si es tan “bonito” como dicen.
Todo lo escrito anteriormente está realizado bajo un kubuntu 5.10 con kde 3.5.

Tras unos dias probando la dichosa barrita, tengo que decir que me parece algo totalmente inútil, siempre que la ejecuto, me desplaza mi anterior barra de herramientas unos centimetros hacia arriba, y se quedan ahí las dos. No se que pintan dos barras de herramientas juntas.
Además, cuando utilizo más de un escritorio, no me refresca bien la pantalla, y se quedan resto de todas las aplicaciones que paso por encima de la nueva barra de herramientas.
En fín creo que mejor voy a desistalar dicho programa, ya que creo que no sirve para nada. Seguiré buscando formas de adornar mi escritorio.
Vaya basura de hotmail, llevo meses identificando correos de los mismos remitentes como correo no deseado, pero lejos de irse a la carpeta correspondiente, siguen y siguen llegando.
Menos mal, que tengo puesto el filtro de mensajes en alto, que si no, ¿que sería de mi?
Hoy le doy el ultimatum a hotmail, he configurado el filtro de mensajes como exclusivo. A ver si este de verdad funciona.
Si, si… ya se… hay otras alternativas mucho mejores, sin ir más lejos gmail. Ya tengo cuenta de gmail, pero desgraciadamente, muchos de mis contactos del hotmail, no son precisamente unos expertos informaticos, y vaya, creen que no existe correo electronico fuera de hotmail.
Pero ya estoy hasta los mismisimos… como tampoco funcione este filtro, eliminare definitivamente mi cuenta.
PD: Para los chicos de microsoft y hotmail; No, no estoy tan salido, no necesito 20 emails diarios de páginas de sexo y sadomasoquismo. Cuando identifico los mensajes como no desados, lo que quiero decir, es que no vuelvan a llegar a la bandeja de entrada… no se si me expliqué.
PD: En fín, con este nuevo hilo inaguro la categoria de basura, en la cuál iré escribiendo las maravillas de este mundo.
Hoy me e decidido a instalar en entorno XFCE en mi ubuntu, (podría decirse que tengo un ¿xubuntu?). A continuación intentaré comentaros mi expereriencia.
- En primer lugar, decir que es un entorno muy ligero. La exploración de archivos es realmente rápida aún con mi viejo Pemtium III, y sus 128 mb de ram.
- Es bastante agradable a la vista y tiene un monton de temas, yo diría que tantos como gnome.
- Facil instalación. Basta con escribir desde consola:
sudo apt-get install xubuntu-desktop
- Por contra, no esta totamente traducido al español.
- Es menos intuitivo que gnome y kde, o al menos esa es la impresión que me ha dado, aunque tambien es verdad que es la primera vez que veo en funcionamiento un XFCE.
- Por defecto viene muy mal configurado, es decir, no estan asociados los archivos a programas.
- Me han dejado de funcionar algunas aplicaciones, edonkey o firefox, no se es muy extraño.
Conclusión: Mi idea era dejarlo instalado en este pc como escritorio por defecto pero, finalmete dejare gnome, ya lo usa el resto de mi familia y creo que aún no estan preparados para el cambio.
PD: Feliz año nuevo.
Si alguno de vosotros leeis mi blog, habreis podido observar que normalmente utilizo kubuntu como sistema operatavio. No obstante estas navidades regrese a casa e instale ubuntu en mi viejo pc, por casualidades de la vida, me dio por bajar e instala automatix, y zass, en unos minutos ya tenia el pc, medianamente configurado. Maravilloso.
El problema surgió cuando llegue a casa y me dispuse a instalar automatix en kubuntu. Por lo visto los chicos del automatix, no lo tienen muy preparado para la distribución kde de ubuntu. Pero siguiendo unos pequeños pasos, podremos usarlo sin problemas.
En primer lugar debemos bajar el programa e instalarlo. Nada más fácil, escribimos:
wget http://beerorkid.com/automatix/automatix-ubuntu_4.0-1_i386.deb
sudo dpkg -i automatix-ubuntu_4.0-1_i386.deb
En un sistema ubuntu, ya podriamos ejecutar el programa desde consola con el comando Automatix, pero en kubuntu, no sucede así:
/usr/bin/Automatix: line 22: gnome-terminal: command not found
Yo no soy un experto en esto pero creo que el script Automatix, está llamando a un comando, “gnome-terminal”, que solo esta disponoble en el entorno gnome, es decir en ubuntu.
Así que para solucionar el problema solo tenemos que editar el archivo /usr/bin/Automatix. Yo lo solucione de la siguiente forma; sustituí la anterior linea por esta nueva:
konsole -e “/usr/local/automatix/autoscript”
Ya sabeis que debeis editar el archivo con un usuario con permisos, yo lo hice con el programa vi.
sudo vi /usr/bin/Automatix
Una vez editado el archivo y guardados los cambios ya podeis disfrutar de automatix en kubuntu.
Supongo que Automatix se podría hacer válido para ambos sistemas (ubuntu y kubuntu) sustitullendo la dichosa linea 22 por:
sh “/usr/local/automatix/autoscript”
Pero… bueno esto no lo probe, ya lo dejo para que lo arreglen los desarrolladores de automatix.
PD: Me he dado cuenta de que Automatix, en kubuntu, no te instala los accesos directos en el menu. Instale Opera, para probar y vi que se instalaba correctamente, pero no estaba el acceso directo, y desde consola no arracanba directamente escribiendo “opera”.
Supongo que según que instales, tendras que configurarlo de una forma u otra. Para el caso de opera, arranca perfectamente con “gksudo opera”
Solucionar este problema es bien sencillo basta con añadir el comando utf8 en las opciones. De tal forma que un fichero fstab sin el problema de los acentos podría ser el siguiente:
file system mount point type options dump pass
proc /proc proc defaults 0 0
/dev/hda3 / ext3 defaults,errors=remount-ro 0 1
/dev/hda1 /media/hda1 vfat utf8,umask=0,iocharset=iso8859-15,codepage=850 0 0
/dev/hda5 /media/hda5 vfat utf8,umask=0,iocharset=iso8859-15,codepage=850 0 0
/dev/hda6 /media/hda6 vfat utf8,umask=0,iocharset=iso8859-15,codepage=850 0 0
/dev/hda7 /media/hda7 vfat utf8,umask=0,iocharset=iso8859-15,codepage=850 0 0