My public and open University II (es)

Copy-paste de un e-mail que recibido de la UPV/EHU, y la respuesta que he mandado. Para información adicional, leer anterior post (en).

Estimada XXXX,

No es cierto que me sea imposible remitir la ficha Teseo en formáto electrónico. De hecho, ya se la he mandado a uds., tanto en RTF como en DOC, como en texto plano y en un PDF escaneado. La Normativa, si no me equivoco, señala que debe cumplimentarse y enviarse dicha ficha, no que deba hacerse en cierto formato concreto (RTF).

El problema es que el RTF (el único formato que uds. hacen accesible), es un formato PRIVATIVO, que solo es correctamente leido por programas NO LIBRES, como Microsoft Word, bajo Microsoft Windows. He hecho todo lo que he podido para leer ese RTF correctamente con programas libres (OpenOffice), y el resultado (lamentable) es lo que mandé a YYYY (doc17_Teseo.rtf), el 19 de diciembre.

Aunque dispuesto a poner buena voluntad, no deseo utilizar productos privados, con licencias abusivas y precios elevados, para acceder a material de una Universidad PÚBLICA, finaciada con dinero PÚBLICO, de todos los contribuyentes. Para el intercambio de ficheros como ese, ya existe un estándar abierto y libre (ISO/IEC 26300), que es el Open Document Format:

http://es.wikipedia.org/wiki/OpenDocument

Me causan uds. una molestia tremenda al no poder acceder libremente al material de la Universidad en la que llevo años estudiando, y que mis conciudadanos y yo pagamos con impuestos.

Cediendo a sus presiones, he accedido a un ordenador con Windows y he generado el RTF que les mando. Compruebo consternado que ni siquiera con Windows el formateo del fichero es correcto, y algunas cosas salen fuera de sitio.

Lamento esta circunstancia, y reitero mi interés en hacer las cosas lo más cómodamente posible, también para uds. Pero también reitero que no estoy dispuesto a ceder mis derechos, como uds. comprenderán.

Finalmente, desearía me informaran de una dirección electrónica a donde dirigirme para quejarme de esta lamentable actitud de la UPV/EHU, ya que si la gente traga y nadie se queja (como uds. bien señalan), parece que no hay problema, y este se perpetuará.

Atentamente,

Iñaki Silanes

On Monday 08 January 2007 10:03, you wrote:
> Estimado Iñaki,
>
> Habiéndose recibido en esta Sección de Master y Doctorado, correo
> electrónico en el que nos indica que le es imposible remitir la ficha
> Teseo correspondiente en un formato electrónico, lamento comunicarle
> que esto es necesario, tal y como indica el artículo 51 de la Normativa
> de Gestión de Doctorado. Hasta el momento, no se han recibido quejas
> sobre la imposiblidad de rellenar dicha ficha Teseo, ni por por
> personal propio de la UPV/EHU, ni por aquellos alumnos ajenos a ésta,
> recibiéndose en todos los casos. Por lo tanto, le solicito que remita
> este documento.
>
> Atentamente
>
> XXXX
> Sección Master y Doctorado

Comments

PDF exploits for all readers and platforms?

I have read in Kriptopolis some posts about new PDF exploits (in Spanish). The articles say that web broser PDF plugins are vulnerable, dedicated PDF readers are also vulnerable, and new exploits may be created. The Kriptopolis site keeps on talking about new vulnerabilities in PDF documents, and how they affect all platforms. Do they?

If you go to the SecurityFocus site, where they cover the new, you can download an example PDF, that exploits this vulnerability. If you open it with any (vulnerable) PDF reader, the program will freeze, and the CPU usage will go over the roof.

Well, bold as I am, I did the test. I opened it with Acroread 7.0 for GNU/Linux and… it froze, and… the CPU usage hit the roof. I could not Ctrl-C the beast, and a kill would not kill it. Fortunately, a kill -9 did the job :^(

Now, I tried Evince:


Heracles[~/Downloads]: evince MOAB-06-01-2007.pdf
Error (3659): Illegal character ')'
Error (0): PDF file is damaged - attempting to reconstruct xref table...
Segmentation fault

and Xpdf:


Heracles[~/Downloads]: xpdf MOAB-06-01-2007.pdf
Error (3659): Illegal character ')'
Error (0): PDF file is damaged - attempting to reconstruct xref table...
Segmentation fault

Ta-chan!! Yes, they crash, but refusing to open the damned thing! They both complain, and don’t fall for it.

Perhaps it’s worth reminding the reader that Evince and Xpdf are free software, whereas Acroread is not. Acroread is merely free of charge, but not free as in freedom.

Comments

My backups with rsync

In previous posts I have introduced the use of rsync for making incremental backups, and then mentioned an event of making use of such backups. However, I have realized that I haven’t actually explained my backup scheme! Let’s go for it:

Backup plan

I make a backup of my $home directory, say /home/isilanes. Each “backup” will be a set of 18 directories:

  • Current (last day)
  • 7 daily
  • 4 weekly
  • 6 monthly

Each such dir has an apparent complete copy of how /home/isilanes looked like at the moment of making the backup. However, making use of hard links, only the new bits of info are actually written. All the parts that are redundant are written once on disk, and then linked from all the places referring to it.

Result: a 18 copies of a $home of 3.8 GB in a total of 8.7 GB (14% of the apparent size of 63 GB, and 13% of 18x the info size, 68,4 GB).

Perl script for making the backup

Update (Jun 5, 2008): You can find a much refined version of the script here. It no longer requires certain auxiliary script to be installed in the remote machine, and is “better” in general (or it should be!)

Below is the commented Perl script I use. Machine names, directories and IPs are invented. Bart is the name of my computer.


#!/usr/bin/perl -w

use strict;

my $rsync = "rsync -a -e ssh --delete --delete-excluded";
my $home = "/home/isilanes";
my $logfile = "$home/.LOGs/backup_log";

#
# $where -> where to make the backup
#
# $often -> whether this is a daily, weekly or monthly backup
#
my $where = $ARGV[0] || 'none';
my $often = $ARGV[1] || 'none';

my ($source,$remote,$destdir,$excluded,$to,$from);

# Possible "$where"s:
my @wheres = qw /machine1 machine2/;

# Possible "$often"s:
my @oftens = qw /daily weekly monthly/;

# Check remote machine:
my $pass = 0;
foreach my $w (@whats) { $pass = 1 if ($what eq $w) };
die "$what is an incorrect option for \"what\"!\n" unless $pass;

# Check how-often:
$pass = 0;
foreach my $o (@oftens) { $pass = 1 if ($often eq $o) };
die "$often is an incorrect option for \"often\"!\n" unless $pass;

# Set variables:
if ($what eq 'machine1')
{
# Defaults:
$source = $home;
$remote = '0.0.0.1';
$destdir = '/disk2/backup/isilanes/bart.home.current';
$excluded = "--exclude-from $home/.LOGs/excludes_backup.dat";
$to = 'machine1';
$from = 'bart';
}
elsif ($what eq 'machine2')
{
# Defaults:
$source = $home;
$remote = '0.0.0.2';
$destdir = '/scratch/backup/isilanes/bart.home.current';
$excluded = "--exclude-from $home/.LOGs/excludes_backup.dat";
$to = 'machine2';
$from = 'bart';
}

# Do the job:
unless ($what eq 'none')
{
unless ($often eq 'none')
{
# Connect to the remote machine, and run ANOTHER script there, making a rotation
# of the backup dirs:
system "ssh $remote \"/home/isilanes/MyTools/rotate_backups.pl $often\"";

# Actually make the backup:
system "$rsync $excluded $source/ $remote:$destdir/";

# "touch" the backup dir, to give it present timestamp:
system "ssh $remote \"touch $destdir\"";

# Enter a line in the log file defined above ($logfile):
&writelog($from,$often,$to);
};
};

sub writelog
{
my $from = ucfirst($_[0]);
my $often = $_[1];
my $to = uc($_[2]);
my $date = `date`;

open(LOG,">>$logfile");
printf LOG "home@%-10s %-7s backup at %-10s on %1s",$from,$often,$to,$date;
close(LOG);
};

As can be seen, this script relies on the remote machine having a rotate_backups.pl Perl script, located at /home/isilanes/MyTools/. That script makes the rotation of the 18 backups (moving current to yesterday, yesterday to 2-days-ago, 2-days-ago to 3-days-ago and so on). The code for that:


#!/usr/bin/perl -w

use strict;

# Whether daily, weekly or monthly:
my $type = $ARGV[0] || 'daily';

# Backup directory:
my $bdir = '/disk4/backup/isilanes/bart.home';

# Max number of copies:
my %nmax = ( 'daily' => 7,
'weekly' => 4,
'monthly' => 6 );

# Choose one of the above:
my $nmax = $nmax{$type} || 7;

# Rotate N->tmp, N-1->N, ..., 1->2, current->1:
system "mv $bdir.$type.$nmax $bdir.tmp" if (-d "$bdir.$type.$nmax");

my $i;
for ($i=$nmax-1;$i>0;$i--)
{
my $j = $i+1;
system "mv $bdir.$type.$i $bdir.$type.$j" if (-d "$bdir.$type.$i");
};

system "mv $bdir.current $bdir.$type.1" if (-d "$bdir.current");

# Restore last (tmp) backup, and then refresh it:
system "mv $bdir.tmp $bdir.current" if (-d "$bdir.tmp");
system "cp -alf --reply=yes $bdir.$type.1/. $bdir.current/" if (-d "$bdir.$type.1");

Comments

Beware of new UDEV rules!

As some of you might know, udev is a nice program that gives the user the possibility of giving persistent names to hotplugged items (e.g. USB devices), in GNU/Linux systems.

When a USB device is plugged, the kernel “finds” it, and gives it a device name. This “name” is a special file (located at the /dev directory), with which the communication with the USB device is done. For example, this is the name that has to be used for mounting the device:

# mount /dev/devicename /mnt/mountpoint

Now, the old devfs (superceded by udev) gave subsequently plugged USB devices sequential names (e.g., the first one sda, the second one sdb…). So, the device name would not correspond to the physical device you were plugging: an external HD and a portable music player would be given devices sda and sdb respectively, or the opposite, depending on the plugging order!

To fix this, udev allows for creating rules, so that a device matching this rules will always be given the same device name. Each USB device passes some info to the kernel at plugtime, so udev can use that info to identify the device. For example, an excerpt of dmesg in my Debian box, when I connect my external HD:

scsi6 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 9
usb-storage: waiting for device to settle before scanning
Vendor: FUJITSU Model: MHT2080AT Rev: 0811
Type: Direct-Access ANSI SCSI revision: 00
SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)

The relevant points are that the HD identifies itself as a FUJITSU product, with the model name MHT2080AT. I can now tell udev to create a /dev/woxter device node, each time I plug in a device made by “FUJITSU”, and by the model name of “MHT2080AT”. To do so, I can create a file /etc/udev/rules.d/myrules.rules, with content:

# My Woxter disk:
BUS=="scsi", SYSFS{vendor}=="FUJITSU", SYSFS{model}=="MHT2080AT", NAME="woxter"

Now, the original reason to write this post was that… do you see the '=='? behind 'BUS' and 'SYSFS'? Well, they have the usual meaning of ‘BUS==”scsi”‘ means ‘if BUS equals “scsi”‘, whereas ‘NAME=”woxter”‘ means ‘assign the value “woxter” to “name”‘.

However, in previous versions of udev (I don’t know when they changed), all equal signs in the udev rules were single ‘=’s, and that is the way I had them.

Now, all of a sudden, I update udev, and my USB devices do not get the name they should, according to my rules, because my rules are wrong! Man, they should give a warning or something! Something like:

Warning: file X, line Y. Use of '=' where '==' is expected!

Oh, well. In the end I found out by myself.

Comments

Don’t try this with Windows

I found out in FayerWayer about the things you can do with the Wiimonte (the remote of the console) and a GNU/Linux computer with Beryl.

[youtube=http://www.youtube.com/watch?v=ALqduQfm09c&rel=1]

Yes, it seems rather useless… but I looks great! Besides, think of the possibilities. And still some people will keep on saying that Mac and Windows lead the desktop innovation!

Comments

Why J2EE is complex

I read in O’Reillynet a comment on AurigaLogic’s Blogic.

Blogic comments on why J2EE is so complex and tedious to use. Their main thesis to support that complexity is… hold your breath…. fasten your seatbelts… : if it were easier, more stupid people would be using it!. Ta-da!!

Amazing, the “blogic” of this people.

Comments

French National Assembly Embraces Open Source

Finishing my Ph.D. Thesis really hindered my touch with news, so here it goes, with 2 months’ delay: The French National Assembly switched to GNU/Linux. I read about it in Menéame.net, referring to Barrapunto, referring to Slashdot, referring to PC Advisor, who covers the new (usual cycle of news for the Spanish audience, reading mostly Menéame.net).

The French Goverment also said that all Gov. documents should be available in ODF. This nicely relates to the shameful case of the UPV/EHU (my University).

The Spanish Congress, meanwhile, is still hooked to Windows XP.

Comments

Sometimes too many distros is bad

Oh my God! (pun intended). Where are we heading?

I just read at DistroWatch that there is a GNU/Linux distro for Christians! According to DistroWatch:

Ubuntu Christian Edition is a free, open source operating system geared towards Christians. Along with the standard Ubuntu applications, Ubuntu Christian Edition includes the best available Christian software. The latest release contains GnomeSword, a top of the line Bible study program for Linux based on the Sword Project.

I might understand that people with different religious beliefs has different needs in terms of software, like the GnomeSword program, for studying the Bible. However… a whole distribution!?

This is getting silly, with people making a fork of Ubuntu “for the left-handed”, “for people with cold feet” or “for people who prefer emacs over vi”. All this is what the friggin’ package manager is for: installing the programs you like!

Comments

The meaning of Vista

From markdbd’s blog, the image says it all:

Comments

Happy New Year

Well, it is about time to wish a Happy Year 2007 to my readers.

May this year bring you all the best, etc. etc. :^)

Comments

« Previous Page« Previous entries « Previous Page · Next Page » Next entries »Next Page »