Categories
linux ubuntu

Cambiar el primer día de la semana en ubuntu

Desde hacía ya tiempo quería cambiar el día en el cual comienza la semana, para que se me mostrara de forma coherente en el calendario del applet de fecha y hora. El problema es que tengo ubuntu instalado en el idioma inglés (por gusto personal), y el como ajustar los locales de forma independiente me ha sido imposible de encontrar. Sin embargo si existe una forma de cambiar el día en el cual comienza la semana modificando un simple fichero.

Para ello seguimos estos pasos:

  1. ejecutamos el comando ‘locale’ sin argumentos, y nos fijamos en la línea ‘LC_TIME’, en mi caso es:
    LC_TIME="en_US.UTF-8"
  2. ahora abrimos el fichero correspondiente al locale de acuerdo a al información obtenida en el punto anterior:
    sudo gedit /usr/share/i18n/locales/en_US
  3. buscamos la línea en la que ponga ‘first_weekday 1’ y sustituimos el 1 por un 2
  4. guardamos el fichero y regeneramos los locales con el siguiente comando:
    sudo locale-gen
  5. una vez se hayan regenerado, podemos hacer que el panel relea los locales ejecutando:
    killall gnome-panel

Ahora, cuando hagamos clic sobre la fecha en el panel de gnome, el calendario debería mostrar las semanas empezando en lunes:

Categories
enlaces internet linux windows

Busquedas específicas por S.O. con google

A través de un comentario en un artículo de la web de lifehacker, me entero que que google tiene páginas especiales de su buscador específicas para cada Sistema Operativo:

  • Búsqueda para linux:
  • Búsqueda para mac:
  • Búsqueda para microsoft (curioso que no ponga para windows):

Curiosas diferencias las que hay entre cada página. Por ejemplo, la de mac, llena de imágenes y enlaces hacia aplicaciones de google para que las descargues. La de linux, que solo se diferencia de la de google normal en la imagen de tux. Y la de microsoft, la más triste desde mi punto de vista, que solo pone una frasecilla debajo del logo de Google.

Otra cosa es lo de las url’s. La dirección para la búsqueda de mac y de microsoft terminan en ‘.html’, sin embargo la de linux es como un subdirectorio ‘/linux’. ¿quizás los trabajadores de google que colgaron la página quieren tener más elegante al linux?

Categories
electrónica linux

Curioso error hardware

sound blaster 128 pci

Desde hace ya unas semanas, tenía un problema hardware con un pentium III sobre una placa Qdi Advance 9 y una tarjeta de sonido Soundblaster Pci 128. El problema sí radicaba en que el ordenador y el sistema operativo reconocían perfectamente la tarjeta, pero a la hora de reproducir audio el volumen del mismo era muy bajo, tan bajo que con unos auriculares, y el sonido al máximo, la música se oía como un susurro.

Intenté reinstalar los drivers de sonido para la tarjeta bajándome los últimos archivos disponibles del proyecto alsa, pero no conseguí nada. Después me dispuse a buscar por internet algún problema similar, pero no tuve mucho éxito, hasta que encontré un antiguo hilo en un foro(más o menos del año 2000), en el cual alguien explicaba que tenía el volumen muy bajo, y alguien le respondía que, en algunas tarjetas de sonido, hay unos potenciómetros para ajustar el volumen, y debería revisarlo.

Hace ya años que los dispositivos que se instalan en los ordenadores de sobremesa no tiene nada que sea regulable (ya casi ni “jumpers”). Así que esa solución no me valía, pero me dió una idea que luego resultó acertada. ¿Quizá no le llegase corriente suficiente a la tarjeta de sonido, y por ello se oyera tan bajo?

Cambiar de ranura pci la tarjeta, por si era tema de mal contacto, no solucionó el problema. Así que lo único que se enchufa en la placa y proporciona corriente a la misma es un conector ATX.

conector ATX

Este conector suministra energía a toda la placa base, y los dispositivos enchufados a ella (tarjetas pci, usb, etc.) La cosa es, que si no estuviese bien conectado, el ordenador debería fallar más, o no encenderse, pero pese a ello me dispuse a comprobarlo.

Al parecer al enchufarlo por última vez (cuando monté la placa dentro de la caja de un PII) se movieron hacia atrás algunos conectores, más concretamente los de un extremo, de +5VDC y +12VDC. Después de apretarlos bien fuerte, y volver a conectarlos, ¡magia! ¡el sonido tiene un volumen normal!

Nunca habría pensado que un solo conector de todos los que tiene el ATX, pudiera afectar en un comportamiento tan curioso. De hecho hay conectadas más tarjetas pci(no de sonido, sino de red y otras), pero funcionaban perfectamente. Consejo, cuando tengas un problema hardware con el pc, comprueba TODAS las conexiones: tarjetas, cables de corriente, cables SATA e IDE, ram, etc. Nunca se sabe…

Categories
linux ubuntu

Herramientas de diagnóstico de disco duro en linux

El disco duro es un gran olvidado por los usuario de los ordenadores, tanto a la hora de comprarlos como a la de usarlos. Este dispositivo es el encargado de almacenar todos los datos de nuestro pc: archivos del sistema, archivos personales, descargas de internet, etc. La mayoría de las personas no hacen copias de seguridad de su sistema, y si la hacen, no la hacen con una periodicidad continua, sino cuando se acuerdan. Es por ello que el tener vigilada la salud de nuestro disco duro de forma automática puede evitarnos el susto de perder todos nuestros datos, fotos, videos, documentos y demás cosas de incalculable valor.En linux existen herramientas que nos permiten monitorizar el estado del disco duro, leyendo los datos S.M.A.R.T. y mostrándonos avisos cuando éste empiece a fallar. Para poder utilizar este sistema es necesario seguir los siguientes pasos:

1- Instalar las smartmontools

sudo aptitude install smartmontools

2- Comprobar si es compatible con nuestro disco duro

Primero necesitamos saber el descriptor de nuestro disco duro, para ello ejecutamos la siguiente orden:

pruebas@pruebas:~/linux$ sudo fdisk -l
Disco /dev/hda: 80.0 GB, 80026361856 bytes
255 cabezas, 63 sectores/pistas, 9729 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Disk identifier: 0x824226f5
Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/hda1 * 1 4878 39182503+ 7 HPFS/NTFS
/dev/hda2 4879 9728 38957625 f W95 Ext'd (LBA)
/dev/hda5 4879 8326 27696028+ 7 HPFS/NTFS
/dev/hda6 8448 9728 10289601 83 Linux
/dev/hda7 8327 8447 971901 82 Linux swap / Solaris

Las entradas de la tabla de particiones no están en el orden del disco
Esta nos mostrará todos los discos duros que tengamos y las particiones en ellos. En este caso vemos que solo hay un disco duro y su descriptor es “/dev/hda”. Pasaremos a comprobar si el programa smartmontools puede leer la información S.M.A.R.T. de nuestro disco duro. Ejecutamos lo siguiente:

sudo smartctl -a /dev/hda

El programa debería mostar un montón de información acerca del estado del disco duro, y entre esa información, la siguiente tabla:

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 066 061 006 Pre-fail Always - 154779836
3 Spin_Up_Time 0x0003 099 098 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 66
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 087 060 030 Pre-fail Always - 543379417
9 Power_On_Hours 0x0032 081 081 000 Old_age Always - 16966
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 378
194 Temperature_Celsius 0x0022 046 053 000 Old_age Always - 46
195 Hardware_ECC_Recovered 0x001a 066 061 000 Old_age Always - 154779836
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0
202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0

Esta es la información que se ha leído del disco, y nos sirve para comprobar que nuestro disco es compatible con la aplicación.

3- Instalar notificador de fallos; éste es un programa que nos alertará en caso de que se produzcan fallos en el disco duro, mostrando una ventana. Para ello ejecutamos:

sudo aptitude install smart-notifier

4- Configurar el demonio “smartd” para que se arranque al inicio del ordenador.
Abrimos el fichero /etc/defaults:

sudo gedit /etc/default/smartmontools

Descomentamos la linea que pone:

start_smartd=yes

5- (en ubuntu 9.04 esto ya no es necesario hacerlo, porque se modifica a la vez que se instala).Añadimos el ejecutable /usr/bin/smart-notifier para que se inicie con nuestra sesión de gnome. Vamos a Sistema>Preferencias>Sesiones y le damos al botón “Añadir”. Ahora cremos una entrada como la siguiente imagen:

Configuracion smart-notifier al inicio de sesión

Después de estos pasos, la siguiente vez que arranquemos el ordenador tendremos el demonio smartd monitorizando los discos duros, y el script smart-notifier nos alertará en el caso de que ocurra algún error.

De todos modos, si queremos comprobar el correcto funcionamiento de la aplicación podemos ejecutar una prueba. Para ello abrimos el fichero /etc/smartd.conf y cambiar la línea que contiene DEVICESCAN por la siguiente:

DEVICESCAN -m root -d sat -M test -M exec /usr/share/smartmontools/smartd-runner

Esta línea añade la opción “-M test”, la cual generará un error de prueba, y nos permitirá comprobar el buen funcionamiento del notificador. Ahora reiniciamos el demonio:

sudo /etc/init.d/smartmontools restart

Y nos debería de salir una ventana como la siguiente:

Notificación de pruebas de smart-notifier

Ahora que ya lo hemos probado tendremos que quitar la opción “-M test” del fichero /etc/smartd.conf que habíamos añadido antes.

Fuente: foros-ubuntu(inglés)

Categories
linux ubuntu

Renombrar unidades en ubuntu

Nombres unidades

En el menú de ubuntu “Lugares” las particiones de disco aparecen con el nombre con el que están etiquetadas. Estas etiquetas se administran de forma distinta para cada tipo de sistema de ficheros, así que si se quiere tener el menú con nombres coherentes y no como “sda1” o similares, estos son los comandos para cambiarlas según el tipo:
(para ejecutarlos antes hay que desmontar las particiones)

  • fat32

$> cp /etc/mtools.conf ~/.mtoolsrc
$> echo mtools_skip_check=1 >>~/.mtoolsrc
$> sudo mlabel -i /dev/sda2 ::DATOS

(para poder usar este comando es necesario tener instalado el paquete mtools)

  • ntfs

$> sudo ntfslabel /dev/sda1 WINDOWS

(para poder usar este comando es necesario tener instalado el paquete ntfsprogs)

  • ext2, ext3

$> sudo e2label /dev/sda1 DESCARGAS

Información extraida de:
https://help.ubuntu.com/community/RenameUSBDrive

http://catrip.wordpress.com/2007/12/19/trucosolucion-renombrar-una-memoria-usb-en-ubuntu/

Categories
linux programación

Mono, C# y los iconos en la bandeja del sistema

No hace mucho me uní a un proyecto open source alojado en sourceforge. Dicho proyecto está escrito en c# y compilado para Mono. La verdad es que nunca había programado nada en dicho lenguaje así que estoy en un periodo de “aprendizaje”.

Una de las primeras cosas que hice en el proyecto fue actualizar el sistema usado para mostrar un icono en la bandeja del sistema. Al buscar información por internet, encontré un ejemplo (han actualizado el ejemplo a petición mía, en base a mi post :P) en la documentación de mono, pero que resultó ser el mismo sistema que ya se usaba en la aplicación y que estaba en desuso. En la lista de correo de mono me informaron de que existía una clase llamada StatusIcon, con la que fácilmente se podía crear un icono así que emplee esa finalmente. Y para que algún día pueda ser de utilidad a alguien, hago mi aportación poniendo un ejemplo de un “hola mundo” para mono con icono incluido:

using Gtk;
using Gdk;
using System;

class Hello {
  private static StatusIcon trayIcon;

  private static Gtk.Window window;

  // Método principal de la clase, que se ejecuta al invocar
  // la aplicación
  static void Main()

  {
    // Iniciliza Gtk+ para su funcionamiento
    Application.Init ();

    // Creación de una ventana con título
    window = new Gtk.Window ("Hola mundo");

    // Asociación del evento delete_event() cuando la ventana es cerrada
    window.DeleteEvent += delete_event;

    // Carga de la imagen del icono de la bandeja del sistema
    Pixbuf iconTray = new Pixbuf ("/tmp/iconoBandeja.png");

    // Creación del icono
    trayIcon = new StatusIcon(iconTray);
    // Activar la visibilidad del icono
    trayIcon.Visible = true;

    // Asociar al evento de clic sobre el icono el método OnTrayIconClicked
    trayIcon.Activate += OnTrayIconClicked;
    // Asociar al evento de clic derecho sobre el icono el método OnTrayPopup
    trayIcon.PopupMenu += OnTrayIconPopup;

    // Poner un tooltip al icono
    trayIcon.Tooltip = "icono hola mundo";

    // Mostrar la ventana
    window.ShowAll ();

    // Arranca el bucle principal
    Application.Run ();
  }

  static void OnTrayIconPopup (object o, EventArgs args) // handler for mouse click

  {
    // Crear menu
    Menu popupMenu = new Menu();
    // Crea un item en el menú con el texto 'Salir'

    ImageMenuItem menuItemQuit = new ImageMenuItem ("Salir");
    // Crea una imagen para el item del menu
    Gtk.Image appimg = new Gtk.Image(Stock.Quit, IconSize.Menu);

    // Asociar la imagen con el item
    menuItemQuit.Image = appimg;
    // Añadir el item al menu
    popupMenu.Add(menuItemQuit);

    // Asociar al evento de clic sobre el item el evento OnPopupClick
    menuItemQuit.Activated += OnPopupClick;
    // Hace visible el menu
    popupMenu.ShowAll();

    // Muestra el menu
    popupMenu.Popup();
}

  static void OnPopupClick(object o, EventArgs args)

  {
    // Termina la aplicación cuando el usuario pulsa el botón Salir
    Application.Quit();
  }

  static void OnTrayIconClicked(object sender, EventArgs a)
  {
    // Cambia el estado de la ventana de la aplicación entre visible y no visible

    if (window.Visible)
    {
      window.Visible = false;

    }
    else
    {
      window.Visible = true;

    }
  }

  static void delete_event (object obj, DeleteEventArgs args)

  {
    // Termina la aplicación cuando el usuario cierra la ventana
    Application.Quit ();
  }
}

Para compilar la aplicación:

mcs holaMundoIcono.cs -pkg:gtk-sharp-2.0

Y para ejecutarla:

./holaMundoIcono.exe