sábado, 20 de noviembre de 2010

Retos para desarrolladores

Entre crisis, abogados, hipotecas, y tareas del hogar (aunque éstas últimas no terminen nunca para mi frustración), últimamente he tenido poco tiempo libre para disfrutar de mi afición como programador, que aunque también sea mi profesión, no deja de ser un hobbie con el disfruto de mi tiempo libre.

"Busca un trabajo que te guste y no tendrás que trabajar un sólo día de tu vida". 
Cita sabia del filosofo chino Confucio.


Cansado ya de dedicar mi tiempo libre a resolver problemas de mi vida cotidiana que me divierten mas bien poco, me aportan mas bien nada, y me limitan mi capacidad de aprendizaje y mejora continua de mis aptitudes profesionales, hoy por fin encontré el día perfecto para pasar un buen rato con mi buen amigo 'Dellone' (así es como bauticé este verano a mi primer portátil Dell)

Era una tarde de Sábado gris, lluviosa y fría. Otro de esos días perfectos en los que no se me ocurría nada mejor que sentarte delante del portátil y disfrutar junto al calor de sus ventiladores resolviendo alguna de las muchas tareas que tenia pendientes en mi lista de TODOs personales.



La tarea elegida hoy fue resolver el reto para desarrolladores publicados en el portal The Greplin Programming Challenge. Conocí estos retos gracias a un compañero de trabajo, a quien desde aquí le agradezco la información porque he pasado una tarde muy entretenida. Gracias Dani! ;)

Sobre el nivel del reto, comentar que son tres problemas que exigen unos conocimientos en algorítmica de lo mas básicos. En todo caso, es el tercer reto el que exige un poquito de imaginación para dar con la solución. Pero poco mas. Todo aquel con experiencia 'picando código' debería poder resolverlos sin mayores problemas.

Las soluciones que publico han sido desarrolladas en C, que a mi es el lenguaje que más me gusta. Pero el lenguaje usado para resolverlos es indiferente, podéis usar el que mas os guste (o el que mas os disguste, hay mucho masoca suelto por ahí...)

El primer reto se introduce con esta explicación:
 The Greplin Programming Challenge

Level 1

----------------------------------------

Embedded in this block of text is the password for level 2.
The password is the longest substring that is the same in reverse.

As an example, if the input was "I like racecars that go fast"
the password would be "racecar".


La solución que propongo al primer reto es esta:

#include stdio.h
#include string.h

const char g_cad[] =
"Fourscoreandsevenyearsagoourfaathersbroughtforthonthiscontainentanewnationconceivedinz"
"LibertyanddedicatedtothepropositionthatallmenarecreatedequalNowweareengagedinagreahtci"
"vilwartestingwhetherthatnaptionoranynartionsoconceivedandsodedicatedcanlongendureWeare"
"qmetonagreatbattlefiemldoftzhatwarWehavecometodedicpateaportionofthatfieldasafinalrest"
"ingplaceforthosewhoheregavetheirlivesthatthatnationmightliveItisaltogetherfangandprope"
"rthatweshoulddothisButinalargersensewecannotdedicatewecannotconsecratewecannothallowth"
"isgroundThebravelmenlivinganddeadwhostruggledherehaveconsecrateditfaraboveourpoorponwe"
"rtoaddordetractTgheworldadswfilllittlenotlenorlongrememberwhatwesayherebutitcanneverfo"
"rgetwhattheydidhereItisforusthelivingrathertobededicatedheretotheulnfinishedworkwhicht"
"heywhofoughtherehavethusfarsonoblyadvancedItisratherforustobeherededicatedtothegreattd"
"afskremainingbeforeusthatfromthesehonoreddeadwetakeincreaseddevotiontothatcauseforwhic"
"htheygavethelastpfullmeasureofdevotionthatweherehighlyresolvethatthesedeadshallnothave"
"diedinvainthatthisnationunsderGodshallhaveanewbirthoffreedomandthatgovernmentofthepeop"
"lebythepeopleforthepeopleshallnotperishfromtheearth";

int is_str_palindrome(const char * init, const char * end)
{
while ((*init == *end) && (init <= end)) {
init++;
end--;
}

return (init >= end);
}

int main(void)
{
int l = strlen(g_cad);
int i, j, ibest, lbest;

ibest = lbest = 0;

for (j = l - 1; j > 0; j--) {
for (i = 0; i < j; i++) {
if (is_str_palindrome(g_cad+i, g_cad+j))
if (j-i > lbest) {
ibest = i;
lbest = j-i+1;
}
}
}

printf("Solution to challenge 1 is '%.*s'\n", lbest, g_cad+ibest);
}


El segundo reto se introduce con esta explicación:
 The Greplin Programming Challenge

Level 2

----------------------------------------

Congratulations. You have reached level 2.

To get the password for level 3, write code to find the first prime
fibonacci number larger than a given minimum. For example, the first
prime fibonacci number larger than 10 is 13.

When you are ready, go here or call this automated
number (415) 799-9454.

You will receive additional instructions at that time. For the second portion
of this task, note that for the number 12 we consider the sum of the prime divisors
to be 2 + 3 = 5. We do not include 2 twice even though it divides 12 twice.


La solución que propongo al segundo reto es esta:

#include stdio.h

unsigned long next_fibonacci()
{
static unsigned long a = 0;
static unsigned long b = 1;
unsigned long nf = a + b;

a = b;
b = nf;

return nf;
}

unsigned long next_prime()
{
static unsigned long prime = 0;
unsigned long tested = prime + 1;

while (1) {
if (is_prime(tested)) {
prime = tested;
return prime;
} else {
tested++;
}
}
}

int is_prime(unsigned long tested)
{
unsigned long divisor;

for (divisor = (tested / 2); divisor > 1; divisor--)
if ((tested % divisor) == 0)
return 0;

return 1;
}

int main(void)
{
unsigned long given_minimum = 227000;
unsigned long X;

while ((X = next_fibonacci()) < given_minimum)
;

while (!is_prime(X))
X = next_fibonacci();

X += 1;

int np = next_prime(); // 1

int challenge2 = 0;

while (X != 1) {
np = next_prime();

if ((X % np) == 0) {
while ((X % np) == 0)
X = X / np;
challenge2 += np;
}
}

printf("Solution to challenge 2 is %d\n", challenge2);
}


Y por ultimo, el tercer reto se introduce con esta explicación:
 The Greplin Programming Challenge

Level 3

----------------------------------------

Congratulations. You have reached the final level.

For the final task, you must find all subsets of an array
where the largest number is the sum of the remaining numbers.
For example, for an input of:

(1, 2, 3, 4, 6)

the subsets would be

1 + 2 = 3
1 + 3 = 4
2 + 4 = 6
1 + 2 + 3 = 6

Here is the list of numbers you should run your code on.
The password is the number of subsets. In the above case the
answer would be 4.


Y la solución que propongo al tercer reto, es esta:

#include stdio.h
#include math.h

/* Input param */
int g_set[] = { 3, 4, 9, 14, 15, 19, 28, 37, 47, 50, 54, 56, 59, 61, 70, 73, 78, 81, 92, 95, 97, 99 };

int g_setlen = sizeof(g_set) / sizeof(int);

int is_membership(int v)
{
int i;

for (i = 0; i < g_setlen; i++)
if (g_set[i] == v) {
return 1;
}

return 0;
}

int is_onebit(int v)
{
int i;
for (i = 0; i < g_setlen; i++)
if (v == (pow(2, i)))
return 1;
return 0;
}

int main(void)
{
int mask;
int m;
int aux;
int pos;
unsigned int N = pow(2, g_setlen);
int challenge3 = 0;

for (mask = 1; mask < N; mask++)
{
if (is_onebit(mask))
continue;

aux = mask;
pos = 0;
m = 0;
while (aux != 0) {
if (aux & 0x01)
m += g_set[pos];
aux = aux >> 1;
pos++;
}

if (is_membership(m))
challenge3++;
}

printf("Solution to challenge 3 is %d\n", challenge3);
}


Todos los desarrolladores que estáis leyendo esto conocéis la sensación de satisfacción inmensa que produce dar con la solución al problema y "avanzar al siguiente nivel". Pienso que esa es la droga que nos metemos los que trabajamos en esto y nos mantiene tan enganchados a esta entretenida profesión (si, somos unos jonkies!! :) Y este es el premio que obtendréis al terminar el reto:
 The Greplin Programming Challenge

The End

----------------------------------------

Congratulations. You completed the challenge. Your completion code is 118-170-234969.

We'd love to talk to you - send your completion code, the code you wrote
during the challenge, and your resume to

USER at SUBDOMAIN dot DOMAIN

Even if you're not looking for a job, we'd love to hear what you thought
about the challenge.


La dirección de correo la protejo para evitar spam innecesario a los organizadores. Eso si, si alguno de los lectores esta en paro, y tiene en mente trabajar en Estados Unidos, igual es ésta vuestra oportunidad. !Al menos intentadlo! :)

Para los que sigáis con el gusanillo de resolver mas problemas de este estilo, os dejo aqui otro enlace a un reto para desarrolladores bastante famosillo, The Euler Project, con mas de 300 problemas que resolver, un gran número de participantes registrados repartidos por los cinco continentes, y un ranking en el que estareis compitiendo contra todos ellos. Si alguien se aburre con este reto, que hable conmigo que está contratado! :P



Como veis en la imagen adjunta, solo he podido terminar los 7 primeros. La falta de tiempo libre me obliga a mantener abandonadas algunas tareas que me gustaría continuar a medida que recupere el control de mi tiempo libre. Animo a todos los lectores que compartan mi afición a que lo intenten, pregunten dudas, compartan las soluciones, y así poder comentarlas y buscar entre todos la solución óptima en cuanto a coste computacional, etc. Espero que lo disfrutéis. Y ya sobran mas explicaciones. ¡A programar se ha dicho!

sábado, 23 de octubre de 2010

Hiputecado

Compré un piso en Abril de 2007 en plena burbuja inmobiliaria por un precio bastante razonable para lo que se movía en aquellos momentos, ante la alocada escalada de precios que me hizo creer que era de las últimas oportunidades que tendría en mi vida para tener algo mio en propiedad. Y es que los precios de venta ya rozaban lo prohibitivo...



5 meses después de firmar el contrato de arras para comprar un piso sobre plano, la burbuja me estalló en las manos. A mi, como a muchos otros amigos, conocidos y familiares. Mucha gente de mi edad, rondando los 30 años. Jóvenes ilusionados con tener su propia vivienda, habían puesto todos sus ahorros en manos de unos promotores que poco tiempo después se declararon insolventes, en quiebra. El desconocimiento del sector, de los riesgos de una operación tan arriesgada, de la legislación que regula este mercado, la confianza de que "todo iba bien" y que "nada malo podía pasar", hizo que mucha gente entregara cantidades de dinero a cuenta sin ser avaladas por el banco. Muchísima gente sigue hoy en día en los juzgados gastando su dinero en abogados para intentar recuperar parte de aquel dinero, muchos otros lo han perdido ya todo. Historias realmente lamentables.

Es de recordar que el Articulo 47 de la Constitución Española, dice textualmente:

    "Todos los españoles tienen derecho a disfrutar de una vivienda digna
y adecuada. Los poderes públicos promoverán las condiciones necesarias
y establecerán las normas pertinentes para hacer efectivo este derecho,
regulando la utilización del suelo de acuerdo con el interés general
para impedir la especulación"


Se trata de un derecho fundamental de todos los ciudadanos españoles. A estas alturas, ya no creo que haya ningún poder público de este país que se preocupe realmente por atender las verdaderas necesidades de los ciudadanos. Ellos siguen sonrientes, contando chistes delante de los suyos sobre las habilidades o las carencias de sus opositores. Es indignante, frustrante, vergonzoso y un largo sin fin de adjetivos que podrían seguir describiendo la situación política lamentable que vivimos en este país.

Gracias a todos ellos, muchos otros al igual que yo seremos la generación de los pringados de este país. Los pringados que pagaremos los excesos cometidos por algunos a los que hoy en día les importa un pimiento que estemos en crisis. Mientras ellos disfrutarán de lo ganado en tiempos de bonanza, otros lo estaremos pagando el resto de nuestras vidas. Y muy caro.

De los pocos que después de un largo calvario de abogados de mas de 4 años, hemos tenido la "suerte" (muy entre comillas) de que terminen la construcción de nuestra vivienda, debemos hacer frente ahora a la hipoteca, por un importe hoy por hoy muy por encima de su valor real de tasación en el mercado. A sabiendas de que los precios seguirán cayendo en los próximos meses y, probablemente, años. O eso o perder el 100% de las cantidades anticipadas. Pagar el resto de mi vida por un bien que no tiene la mitad de su valor. Viva las leyes de este país.

Para intentar reducir el coste de dicha vivienda al máximo, he tenido que aprender en muy pocos días muchos términos nuevos relacionados con el mundillo de los economistas: indices de referencias, hipotecas a tipo fijo o variable, diferenciales sobre el euribor, comisiones de apertura, amortización, cancelación, productos vinculados, suelos o techos de interés, y un largo etcétera. Y hacer números por mi cuenta para sacar mis propias conclusiones.

Mucha gente me dice... ¡es que hay que saber un poco de todo! No lo veo justo. Daría lo que fuera por ver a todos los economistas, abogados, jueces, etc. que manejan ordenadores para su trabajo a diario, se vieran en la obligación de aprender a manejarse con conceptos informáticos como ensambladores, juegos de instrucciones, compiladores, linkers, librerías, herencia, polimorfismo, estructuras de datos, clases, objetos, constructores, variables, punteros, estructuras, uniones, debuggers, ... stack overflow.

Como ingeniero tengo conocimientos matemáticos mas que suficientes para sacar a flote la triste realidad de los datos económicos que se ocultan detrás de las hipotecas. En lo que sigue intentaré explicaros como funciona esto de las hipotecas, como se realiza el cálculo de la cuota mensual y como funciona el tema de los intereses. Veremos también algunos datos que conviene tener en cuenta para ahorraros bastantes euros durante todo el pago de vuestra hipoteca.

Calculo de la cuota mensual

Veamos primero como se calcula la cuota que se paga cada mes de una hipoteca. Este dato se obtiene aplicando una formula que depende de estas 3 variables:

- Capital solicitad (€): es la cantidad de dinero que le pides al banco.
- Plazo de amortización (meses): es el tiempo que vas a tardar en devolverle el capital solicitado al banco
- Interes anual o TAE (%): es el interés aplicado cada año sobre el capital que le seguimos debiendo al banco (capital no amortizado).

Con estos tres datos tenemos todo lo necesario. Veamos un ejemplo práctico para entenderlo mejor. Pediremos al banco un crédito de 12.000€ a devolver en 2 años y a un tipo de interés TAE del 6% anual.

    Capital solicitado = C = 12000€
Plazo de amortización = n = 24 meses
TAE = 6%


A partir de estos 3 datos, se extrae el índice "i" de interés, como:

    TAE mensual = 6% / 12 meses = 0.5%
Indice del interés = i = TAE mensual / 100 = 0.5 / 100 = 0.005


A partir de las variables anteriores, calculamos la cuota mensual de una hipoteca aplicando esta ecuación:

    Cuota Mensual Hipoteca = C * i / [ 1 - (1 + i)**-n ]


donde 2**3 = 2*2*2 = 8 (es la operación "elevado a"). En nuestro caso concreto

    C = 12000€
i = 0.005
n = 24 meses


Sustituyendo las variables calculadas en la ecuación, y haciendo el cálculo, tenemos el resultado de la cuota mensual:

    Cuota Mensual = 12000 * 0.005 / [ 1 - (1 + 0.005)**(-24) ] = 531.85€ / mes


No fue fácil encontrar esta formula. Pero me hizo gracia leer en el sitio donde la encontré que muchos de los banqueros que gestionan este tipo de productos financieros ni siquiera saben de donde se obtiene esta cantidad. Será por las primas anuales que cobran, demostrando que hay nivel...

La siguiente tabla demuestra como se amortiza el capital pendiente a lo largo de los 24 meses del plazo de amortización

    Año Mes     Cuota       Interés     Amortización        Capital pendiente
=========================================================================
0 0 12.000,00 €
1 1 531,85 € 60,00 € 471,85 € 11.528,15 €
1 2 531,85 € 57,64 € 474,21 € 11.053,95 €
1 3 531,85 € 55,27 € 476,58 € 10.577,37 €
1 4 531,85 € 52,89 € 478,96 € 10.098,41 €
1 5 531,85 € 50,49 € 481,36 € 9.617,05 €
1 6 531,85 € 48,09 € 483,76 € 9.133,29 €
1 7 531,85 € 45,67 € 486,18 € 8.647,11 €
1 8 531,85 € 43,24 € 488,61 € 8.158,50 €
1 9 531,85 € 40,79 € 491,05 € 7.667,44 €
1 10 531,85 € 38,34 € 493,51 € 7.173,93 €
1 11 531,85 € 35,87 € 495,98 € 6.677,96 €
1 12 531,85 € 33,39 € 498,46 € 6.179,50 €
2 13 531,85 € 30,90 € 500,95 € 5.678,55 €
2 14 531,85 € 28,39 € 503,45 € 5.175,09 €
2 15 531,85 € 25,88 € 505,97 € 4.669,12 €
2 16 531,85 € 23,35 € 508,50 € 4.160,62 €
2 17 531,85 € 20,80 € 511,04 € 3.649,58 €
2 18 531,85 € 18,25 € 513,60 € 3.135,98 €
2 19 531,85 € 15,68 € 516,17 € 2.619,81 €
2 20 531,85 € 13,10 € 518,75 € 2.101,06 €
2 21 531,85 € 10,51 € 521,34 € 1.579,72 €
2 22 531,85 € 7,90 € 523,95 € 1.055,77 €
2 23 531,85 € 5,28 € 526,57 € 529,20 €
2 24 531,85 € 2,65 € 529,20 € 0,00 €

=====================================

IMPORTE TOTAL = 12764,33€
Intereses = 764,33€


Como vemos, a medida que se amortiza capital (se reduce la deuda contraída con el banco) se van reduciendo los intereses, puesto que los interese solo se aplican sobre el capital pendiente de ser amortizado.

Carencia de capital

Algunos bancos ofrecen unas hipotecas con un periodo de carencia inicial en el que el hipotecado pasa un tiempo (de 1 a 5 años) durante el cual solo paga intereses, sin amortizar capital. Para entender esto, vamos a aplicar una carencia de capital de 6 meses al ejemplo anterior. Por tanto, durante los 6 primeros meses pagaremos intereses pero no amortizaremos capital.


    Año Mes     Cuota       Interés     Amortización        Capital Pendiente
=========================================================================
0 0 12.000,00 €
1 1 60,00 € 60,00 € - € 12.000,00 €
1 2 60,00 € 60,00 € - € 12.000,00 €
1 3 60,00 € 60,00 € - € 12.000,00 €
1 4 60,00 € 60,00 € - € 12.000,00 €
1 5 60,00 € 60,00 € - € 12.000,00 €
1 6 60,00 € 60,00 € - € 12.000,00 €
1 7 698,78 € 60,00 € 638,78 € 11.361,22 €
1 8 698,78 € 56,81 € 641,97 € 10.719,24 €
1 9 698,78 € 53,60 € 645,18 € 10.074,06 €
1 10 698,78 € 50,37 € 648,41 € 9.425,65 €
1 11 698,78 € 47,13 € 651,65 € 8.774,00 €
1 12 698,78 € 43,87 € 654,91 € 8.119,09 €
2 13 698,78 € 40,60 € 658,19 € 7.460,90 €
2 14 698,78 € 37,30 € 661,48 € 6.799,42 €
2 15 698,78 € 34,00 € 664,78 € 6.134,64 €
2 16 698,78 € 30,67 € 668,11 € 5.466,53 €
2 17 698,78 € 27,33 € 671,45 € 4.795,09 €
2 18 698,78 € 23,98 € 674,81 € 4.120,28 €
2 19 698,78 € 20,60 € 678,18 € 3.442,10 €
2 20 698,78 € 17,21 € 681,57 € 2.760,53 €
2 21 698,78 € 13,80 € 684,98 € 2.075,55 €
2 22 698,78 € 10,38 € 688,40 € 1.387,15 €
2 23 698,78 € 6,94 € 691,85 € 695,30 €
2 24 698,78 € 3,48 € 695,30 € 0,00 €

======================

IMPORTE TOTAL = 12938,05€
Intereses = 938,05€


Indudablemente puede ser una buena idea contar con un periodo de carencia cuando por distintas razones no podemos hacer frente a las primeras mensualidades de nuestra hipoteca. No obstante, conviene hacer hincapié en los aspectos negativos. Una vez transcurrido el periodo de carencia, vemos como las cuotas aumentan de manera considerable, puesto que tenemos que devolver el mismo capital prestado (no hemos amortizado todavía capital) en menos tiempo. Otro inconveniente es el aumento del importe total por intereses, ya que durante el periodo de carencia, estamos pagando el máximo de intereses al banco, al no estar amortizando capital.

Cosas obvias que conviene recordar

Para finalizar, quisiera mostraros algunos datos extras que os deberían resultar muy útiles para entender como se puede ahorrar dinero al pagar una hipoteca.

Primero, anticipar las amortizaciones parciales de capital para reducir el coste total de la operación. Supongamos una hipoteca de 100.000€ a un 3% TAE a devolver durante 10 años. Vamos a amortizar 20.000€ en distintos momentos desde que se solicita el préstamo:

    Año de amortización parcial     Interes total
==================================================
1 12725€
2 13053€
3 13379€
4 13701€
5 14020€
6 14339€
7 14649€
8 14960€
9 15267€
nunca 15872€


De la tabla anterior se deduce que cuanto antes amorticemos capital, mas barata nos resultará la hipoteca, puesto que nos beneficiaremos durante mas tiempo de la reducción de capital pendiente de devolución, y por tanto de la reducción de intereses pagados por ese capital pendiente que le debemos al banco.

Obviamente, para poder amortizar hay que tener una alta capacidad de ahorro. Dicha capacidad de ahorro queda mermada por las distintas vinculaciones que nos exigen las entidades bancarias para poder ofrecer un buen diferencial con el índice de referencia (generalmente el euribor): planes de pensiones, fondos de inversión, seguros de hogar y de vida, etc. No soy un experto en la materia, pero según estos cálculos, yo aconsejaría huir de dichas vinculaciones como de la peste.

Segundo, devolver al banco lo antes posible el dinero que nos ha prestado, para lo cual interesa que el plazo de amortización (n) sea lo menor posible. La siguiente tabla muestra el interés total pagado por una cantidad de 100.000€ solicitada al banco a un interés TAE dado, y devuelto durante los años indicados.

    TAE(%)          (10 años)       (20 años)       (30 años)       (40 años)
===========================================================================
0.0% 0€ 0€ 0€ 0€
1.0% 5124€ 10374€ 15790€ 21365€
2.0% 10416€ 21412€ 33063€ 45342€
3.0% 15852€ 33103€ 51777€ 71807€
4.0% 21494€ 45435€ 71869€ 100571€
5.0% 27278€ 58389€ 93255€ 131398€
6.0% 33224€ 71943€ 115838€ 164026€


En la tabla anterior se observa como, a un misma tasa de interés anual TAE, cuanto menos tiempo tardemos en devolver el dinero prestado, menos nos costará el total de la operación. Dicho de otro modo, cuanto mas años tardamos en devolver el dinero, mas pagamos. Que nadie se equivoque. No se trata de picos despreciables de pocos euros. Fijaros en la barbaridad de intereses que se le pagan al banco por 100.000€ a un 6% durante 40 años: 164026€, ¡¡solo en concepto de intereses!!

Conclusiones

La conclusión de todo esto: si os lo podéis permitir, no os hipotequéis. Cualquier otra opción es mejor: plantearos la opción de vivir de alquiler. No se está nada mal y disfrutareis mucho mas de vuestras vidas. Esperar que os toque alguna herencia o incluso comprar lotería y a ver si hay suerte.

Mientras tanto, ahorrar todo el dinero que podáis, y si algún día decidís comprar, pagad el piso en metálico. Esa es la única opción que mínimamente garantiza el cumplimiento del Articulo 47 de la Constitución Española. Lo demás, es un error imperdonable. Un robo de guante blanco al amparo de la Ley.

sábado, 25 de septiembre de 2010

Documentación técnica en el idioma de Cervantes

Los documentos técnicos cumplen el propósito de informar de lo que se ha hecho en una actividad determinada en términos técnicos y de forma que sea legible y comprensible dentro de su contexto. En la documentación técnica existen unos criterios determinados para su elaboración. En este articulo intentaremos mencionar los principales a tener en cuenta.


Lenguaje

Un documento técnico se escribe en lenguaje técnico. El lenguaje técnico evita la utilización de palabras con significados ambiguos. El lenguaje técnico es preciso en los significados, abunda en la aplicación de los términos técnicos propios del dominio sobre el que se habla, y estructura el contenido a base de frases cortas y directas. Esto último significa que el lenguaje técnico no utiliza recursos como tropos, metáforas ni otros elementos propios del lenguaje literario.

El documento técnico debe mantener la corrección técnica del contenido y de la estructura con respecto a los objetivos y naturaleza del proyecto. La utilización de términos fuera del dominio técnico, de metodologías o técnicas no contrastadas, de resultados incoherentes, de afirmaciones o conclusiones no fundamentadas, etc., es síntoma inequívoco de incorrección técnica.

Gramática

Las frases deben aplicar construcciones gramaticales regulares: en primer lugar, el sintagma nominal (sujeto y complementos). En segundo lugar, el sintagma verbal (verbo y complementos). También se suelen utilizar frases relativas que extienden el significado (-frase principal- que -frase relativa-).

Sujeto

El lenguaje técnico utiliza el sujeto impersonal o reflexivo, tal y como se está aplicando en el presente documento:
    "se puede ver"
"se describe"

A veces, también se usa la primera persona del plural cuando el autor pretende implicarse con el lector en una actividad determinada que se está realizando en el momento presente
    "vamos a poner el dispositivo en marcha"
"veamos el resultado"

Debemos huir de la aplicación de la primera persona del singular
    "yo incluyo el informe"
"yo conecto el módulo"

Cuando se quiere enfatizar o recalcar información relativa al autor, se puede utilizar términos estereotipados como
    "el autor"
"el que suscribe"

Y cuando se quiere mencionar la participación activa del lector, usaremos
    "el usuario"
"el lector"

Tiempos verbales

Hay que ser cuidadoso en el uso de los tiempos verbales de las frases y párrafos. No es correcto mezclar pretéritos, presentes y futuros en un mismo documento o sección del documento. En un documento o parte del mismo donde se describe una actividad o un conjunto de actividades ya realizadas y concluidas, se suele aplicar el pretérito perfecto:
    "se ha procedido al cálculo del promedio"
"se han establecido los requisitos fundamentales"

A veces, también se puede combinar con el pretérito imperfecto cuando se refiere a acciones puntuales
    "el programa dio un error"
"saltó la alarma en el momento en que"

Cuando se describe un procedimiento a realizar, normalmente se utiliza el presente de indicativo
    "se abre el menú de edición"
"se selecciona la opción"

Cuando se describe el contenido que se incluye a continuación en una sección, subsección o apartado del documento, se puede utilizar el futuro imperfecto así,
    "se mostrará el resultado del proyecto"
"se va a mostrar el resultado del proyecto"

Finalmente, para indicar acciones que el lector debe realizar, se aplica el imperativo
    "véase la Figura"

o las siguientes construcciones
    "hay que"
"se debe"

Narración

La narración o descripción debe ser fluida y fácil de leer, cuidando especialmente la corrección ortográfica y terminológica. Deben evitarse las frases rebuscadas, el uso del lenguaje coloquial, o la inserción no justificada de citas, tablas, figuras, etc. que no aporten nada al texto. El texto debe componerse a base de frases cortas separadas por puntos y seguidos. Su extensión debe adecuarse a los objetivos establecidos al comienzo del documento. Todos los elementos técnicos que deban ser citados o presentados exhaustivamente se deben poner en anexos al cuerpo del documento. Incluso se puede incluir una relación de abreviaturas, términos comunes o un glosario de términos técnicos para evitar confusiones semánticas.

Inserciones de figuras y tablas

Debe adecuarse la cantidad de tablas y figuras al contenido del documento, evitando incluir demasiadas tablas y figuras que no aporten casi nada al texto. Es mejor alternar descripciones textuales con tablas y figuras. Salvo necesidades concretas, no es necesario explicar profusamente una figura o una tabla con texto suplementario.

La inserción de referencias a figuras y tablas puede hacerse de dos formas distintas: conexa e inconexa. La forma de inserción inconexa consiste en utilizar la construcción
    "(Véase la Figura 27)"

como una frase independiente entre paréntesis. La forma de inserción conexa consiste en utilizar un párrafo introductorio que establece una relación con el contenido y/o descripción de la figura o tabla:
    "En la Figura 27 se puede apreciar que...",
"existe un indicador, tal como se muestra en la Figura 27..."

Por otra parte, los términos "Figura" y "Tabla" deben aparecer en el texto con la inicial en mayúscula.

Bibliografía y referencias

En muchos documentos técnicos habitualmente se incluye información que proviene de otro u otros documentos distintos. Es costumbre y por supuesto, ético, citar las fuentes externas que proporcionan dicha información.

Internet provee de algunas herramientas como esta que permiten descubrir si el contenido de un documento ha sido plagiado. Por tanto, debemos referenciar a nuestras fuentes para evitar incurrir en el delito de plagio.

Respecto a la bibliografía, en un documento técnico hay que distinguir por un lado la inserción de las referencias a las fuentes, y por otro lado, la relación detallada de dichas fuentes.

Inserción de las referencias a las fuentes

La inserción de referencias a una fuente de información externa, sea libro, articulo de investigación u otro tipo de obra, se hace mediante paréntesis siguiendo estas normas:

Cuando la referencia tiene un solo autor, se incluye el primer apellido de éste y el año de publicación con todas las cifras:
    (Tanembaum, 2001)

Cuando la referencia tiene más de un autor, la estructura es la misma salvo que, en lugar de poner todos los apellidos, se añade al apellido del primer autor la terminación "et al.":
    (Harmelen et al., 2004)

Relación de referencias

La relación de referencias se hace en un capitulo o sección independiente del documento. Se recopilan todos los datos relativos a cada una de las fuentes, ordenadas alfabéticamente de menor a mayor por el apellido del primer autor.

El formato con el que deben citarse las referencias bibliográficas depende de si la fuente es un libro, un capitulo de un libro, un articulo de revista, una obra no publicada, una dirección web, etc.. Se muestran algunos ejemplos a nivel orientativo:

Referencia a un libro:
    [Alonso, 2009]: Alonso J.A. Redes privadas virtuales. 1ª ed. Ra-ma,
Madrid, 2009.

Referencia a un artículo de investigación:
    [Siebes, 2005]: Siebes R. pNear: combining content clustering and
distributed hash tables. Vrije Universiteit Amsterdam. The netherland,
2005.

Referencia a una URL:
    [Castell, 2010]: Castell A.I. Documentación
técnica en el idioma de Cervantes.
http://aicastell.blogspot.com/2010/09/documentacion-tecnica-en-el-idioma-de.html.
Acceso el 25/09/2010.

Estructura del documento

El documento se divide en secciones, subsecciones y apartados. Salvo en contadas excepciones, no se recomienda llegar a un mayor nivel de división. En todos ellos, la unidad de redacción y de estilo es el párrafo, compuesto por un conjunto de frases. Al párrafo se le aplican una serie de características de formato y aspecto como son la separación de párrafos, interlineado, justificación entre margenes, tipo y tamaño de letra, etc.

De forma muy genérica, podemos organizar la estructura de un documento técnico con los siguientes apartados:
    Portada
Información visible sobre el titulo del documento y nombre del autor.

Resumen
Objetivos, descripción, resultados y conclusiones del trabajo resumidos
en no mas de 500 y no menos de 300 palabras.

Palabras clave
5 términos alusivos al contenido y propósitos del documento para poder
aplicar una indexación del mismo.

Indice
Relación de secciones y subsecciones, sin llegar a los apartados.

Introducción
Objetivos del documento, descripción del contexto general, planteamiento
del problema, descripción resumida del contenido del resto del documento.

Descripción
Descripción detallada de todo el trabajo realizado.

Resultados
Descripción de los resultados obtenidos en el trabajo realizado.

Conclusiones
Redacción de las conclusiones obtenidas, interpretación de los
resultados, de las afirmaciones fundamentadas y de las posibles
ampliaciones en sucesivos trabajos.

Bibliografía
Relación de referencias utilizadas durante la redacción del documento

Anexos
Inclusión de anexos con información complementaria sobre la que se
aporta en el cuerpo del documento. Esta sección es opcional.

Indice de tablas
Relación de las tablas contenidas en el documento.

Indice de figuras
Relación de las figuras contenidas en el documento.

Terminología
Relación de términos y abreviaciones utilizados en el documento con una
breve explicación de su significado para evitar confusiones al lector.

Herramientas

Por último, en la elaboración de toda la documentación se debe contar por supuesto con el apoyo de herramientas informáticas del estilo de Open Office o LaTeX. La persona encargada de llevar a cabo la documentación técnica debe tener los conocimientos suficientes de estos programas para obtener el debido provecho.

jueves, 12 de agosto de 2010

Exigiendo la devolución del impuesto Windows

Mi viejo portatil ACER ASPIRE comprado hace algo mas de 6 años durante mi instancia en Bilbao murió el pasado 29 de Julio de 2010 de un calentón. Descanse en paz. Lo usaba como servidor y lo tenía horas y horas funcionando sin parar. No sé como aguantó tanto tiempo a mas de 65ºC de continuo. La reparación no es excesivamente cara, pero si puede tardar algunos meses, ya que se fundió la tarjeta grafica NVIDIA y según me comenta el fabricante, es una tarjeta integrada en la placa y será dificil encontrar otra de recambio exactamente igual. Y ya veremos si finalmente la encuentran.

Sin portatil no se puede vivir (la gente antiguamente no sé como lo hacían :-) asi que tuve que buscar un sustituto de urgencia. Tras un día de lo mas movidito en el que recorrí los centros comerciales "de mitja Catalunya", finalmente compré un DELL INSPIRON de lo mas básico en el Carrefour del centro comercial La Maquinista, en Barcelona, que será mi compañero de viaje los próximos años. Equipado con un Intel Core i3 con 4GB de RAM y 500GB de HD con una ATI Radeon muy sencilla, 3 puertos USB y salidas de video VGA y HDMI. Todo por 616€, iva incl. Es curioso que el propio fabricante lo venda en su página web mas caro de lo que a mi me costó en Carrefour.



Por mucho que Mr. Gates y sus amiguitos ricos hayan decidido donar la mitad de sus fortunas a quien sabe que causa, yo ya esto jarto de pagar licencias a Microsoft que nunca he utilizado ni usaré, así que me he decidido a reclamar lo que para mi es un derecho lícito: solicitar la devolución del impuesto Microsoft.

Contactados fabricante y establecimiento telefónicamente, ambos dos me negaron la devolución. Así que solicité la hoja de reclamaciones a Carrefour y les puse una reclamación por escrito que ayer mismo presenté en la Oficina Municipal de Información al Consumidor, OMIC, de Terrassa. Os reproduzco la reclamación:

"Adquirido un portátil de la marca Dell el día 31/07/10 en el establecimiento Carrefour del
centro comercial la Maquinista (Barcelona),

rechazo usar el sistema operativo privativo Microsoft Windows que viene preinstalado en el
equipo, al no ofrecer el establecimiento Carrefour ni el fabricante Dell ninguna alternativa para
comprar ni ese (ni otro portátil) instalado sin ese software.

Siguiendo las indicaciones mencionadas en el acuerdo de Licencia del Software de Dell, no he
aceptado las condiciones de dicha licencia, he desinstalado todo el software preinstalado en el
equipo, reinstalandolo con un sistema operativo libre (Ubuntu Linux), y me he puesto en contacto
telefónico con el fabricante y con el establecimiento para proceder a la devolución del software
distribuido con el equipo y al reembolso de la cantidad abonada por ese software que ya queda
demostrado que no voy a usar.

Fabricante y establecimiento se niegan a reembolsar la cantidad abonada por dicho software,
alegando que el equipo se vende como un pack indivisible. Esto incumple los términos de la
Licencia de Software de Dell que se distribuye con la compra del portátil (ver el documento
adjunto), que otorgan al cliente la posibilidad de rechazar el software preinstalado.

Además, el establecimiento Carrefour me comunica en el momento de presentar esta reclamación, que
al desinstalar el software, como consta que ya he hecho, pierdo la garantía del producto
adquirido, desentendiéndose del producto en caso de presentar algún defecto de fabricación en los
próximos meses, dejándome en una situación bastante injusta, alegando una clausula que yo no
he visto escrita en ningún documento.

Soy ingeniero de software, y me gano la vida profesionalmente desarrollando software para el
sistema operativo Linux. Ni fabricante ni comercio me han dado alternativa alguna para elegir, y
me están obligando en contra de mi voluntad (y de mis necesidades profesionales) a usar/abonar un
producto que no necesito, privándome de la libertad para elegir libremente el software que deseo
ejecutar en el portátil adquirido.

En otros países de la Unión Europea como es el caso de Italia (todavía no en España) se ha creado
legislación especifica en esta materia para exigir a los fabricantes que devuelvan el importe de
las licencias a los clientes que rechacen sus términos y soliciten la devolución. Es indignante
que los consumidores españoles tengamos que estar discriminados en este sentido, y ante la
arrogancia y el abuso de poder de los fabricantes, tengamos que mostrar una total y absoluta
sumisión por falta de leyes que defiendan nuestros intereses como consumidores, intereses que
considero son de interés general.

Y para que conste la indignación y el rechazo a esta situación de monopolio tan desfavorable para
los intereses de los consumidores, interpongo esta reclamación ante el organismo competente."


No tengo mucha esperanza de lograrlo. Los españoles somos por naturaleza demasiado conformistas y mientras no lleguen quejas de este tipo a la administración pública en masa, no creo que cambien mucho las cosas. Pero me sentía en la obligación moral de intentarlo. Y así lo he hecho.

Os seguiré informando a medida que avancen los trámites. Mientras tanto, seguiré disfrutando de éste fantástico portatil reinstalado con X-Ubuntu con el que acabo de escribir mi primer post. Esto va como un tiro! :-)

Actualización del 09/09/2010

Hoy por fin he recibido noticias de este asunto. Y mal pintan las cosas desde buen comienzo. Aunque sinceramente, tampoco esperaba lo contrario. La junta arbitral de consumo de Terrassa me ha enviado este correo:

Bon dia,

Per tal de donar tràmit a la seva reclamació caldrà que ens ompli i reenvïi el formulari
adjunt de sol.licitud d'arbitratge, ja que proposarem a l'empresa reclamada resoldre el
conflicte a travès de la mediació o l'arbitratge de consum.

En tractar-se d'uns procediments de voluntària acceptació per part de l'empresa, si no vol
acceptar aquestes vies s'haurà d'arxivar la vostra sol.licitud, fet del qual en seríeu
informat.

Atentament,

Ajuntament de Terrassa
Junta Arbitral de Consum de Terrassa
Àrea d'Acció Social i Drets Civils


Esta tarde les he hecho llegar la documentación. Aunque queda clarito en el segundo párrafo del mail lo que presumiblemente va a ocurrir: la empresa Carrefour no consta en el censo de empresas adheridas al sistema arbitral de consumo de Barcelona, que por lo visto es, ojito señores, de ¡CARACTER VOLUNTARIO!. Por tanto si la empresa rechaza el arbitraje (ya lo doy por hecho), la única alternativa posible es la vía judicial (abogado, costes judiciales, etc.). Una barrera económica dificil de franquear (sobre todo para el sufrido consumidor) que vé con resignación como sus reclamaciones terminan en la fábrica de reciclado convertidas en papel de WC.

Y ahora, que alguien modifique la definición de la palabra "justicia" de la RAE por favor, porque obviamente tiene varios bugs!

Vamos a esperar antes de adelantar acontecimientos... Os seguiré informando cuando tenga mas noticias.

Actualización del 13/09/2010

Me solicitan entregar copias por triplicado de toda la documentación que ya entregué en el OMIC en el momento de presentar la reclamación. Esta claro que mi tiempo no vale nada para esta gente. Mañana tendré que ir a hacer las fotocopias y el Miercoles a entregarles "de nuevo" la documentación. ¡Si es que no tengo nada mejor que hacer!

Actualización del 17/10/2010

Recibo la notificación de la admisión a trámite de la reclamación:

"Us notifico que en data 21 de setembre de 2010, el president de la Junta Arbitral de
Consum de terrassa ha resolt admetre a tràmit la reclamació que vàreu presentar contra
l'empresa CARREFOUR LA MAQUINISTA a l'empara del Reial Decret 231/08 del 15 de febrer, que
va entrar en vigor el 25 d'agost de 2008, pel qual es regula el sistema arbitral de consum.

En aquest sentit s'ha proposat a l'empresa de resoldre el conflicte a través de la mediació
o l'arbitratge de consum. En tractar-se d'uns procediments de voluntària acceptació per part
de l'empresa, si no vol acceptar aquestes vies s'haurà d'arxivar la vostra sol.licitut, fet
del qual en seríeu informat.

La secretaria de la Junta."


Actualización del 21/10/2010

Respuesta de Carrefour la Maquinista a la solicitud de arbitraje voluntario solicitada por el OMIC de Terrassa.

"Muy sres. mios:

En relación a la reclamación de Angel Ivan Castell Rovira que se nos ha notificado, le
comunicamos que no podemos someternos al arbitraje propuesto, por las razones que
argumentamos a continuación.

Cuando el cliente realizó la compra del portátil se le informó y como él mismo pudo
comprobar que todos los ordenadores portátiles y de sobremesa se venden con licencia. Por lo
tanto, si él no deseaba adquirir un portátil con licencia Windows, no debería haberlo
adquirido debido a que en todo momento era consciente de las características del artículo.

Esperando que estas alegaciones sean suficientes para mantenerles informados de la
situación, nos mantendremos a su disposición para cualquier duda o consulta.

Atentamente,

Andrés Carrasco Piernas.
Responsable de Atención al Cliente
Carrefour la Maquinista."


Recibo esta resolución el 22/11/2010 (si si, un mes mas tarde).

Fijaros en los motivos argumentados por Carrefour: EL VENDEDOR INFORMA AL COMPRADOR DE LAS CARACTERÍSTICAS DEL PRODUCTO ADQUIRIDO, MOTIVO POR EL CUAL EL VENDEDOR ADQUIERE EL DERECHO DE INCUMPLIR EL ACUERDO DE LICENCIA DEL SOFTWARE QUE ACOMPAÑA A DICHO PRODUCTO.

Dicho de otra forma: EL COMPRADOR, EN EL MOMENTO EN QUE ES INFORMADO, PIERDE EL DERECHO DE RECLAMAR LOS TÉRMINOS DE UNA LICENCIA ¡¡QUE ESTA PAGANDO!!.

Obviamente, esto no puede ser legal. Si tan seguros están de su afirmación, ¿por que no aceptaron el arbitraje voluntario? Si los vendedores incumplen las licencias con las que venden sus propios productos, ¿que sentido tienen esas licencias?. ¿A caso los legitiman a nosotros como compradores, también para incumplirlas? Microsoft debería darle las gracias a Carrefour, porque de ser así, esto podría acabar con su negocio millonario...

Actualización del 22/11/2010

Recibo la notificación de archivo por no aceptación, sellada en fecha 26/10/2010 (ojo con las fechas, porque o correos va muy lento o en la OMIC de Terrassa tienen mucho trabajo acumulado...).

"En relació a la sol.licitud d'arbitratge referenciada presentada per vostès contra 
l'empresa CARREFOUR LA MAQUINISTA, no ha estat acceptat l'arbitrarge per part de l'empresa
esmentada i, el president de la Junta Arbitral de Consum de Terrassa, ha ordenat l'arxiu de
les actuacions, deixant oberta la via judicial a la qual vostè pot recórrer en defensa dels
seus drets.

La secretària."


Actualización del 27/11/2010

Han pasado mas de 3 meses desde que inicié los trámites de esta reclamación. Desde buen comienzo tenía claro como iba a terminar todo este asunto. Confiaba poco en la justicia de este país, y lamentablemente, así continuará siendo. No voy a iniciar un procedimiento legal porque un juicio vale mucho dinero y la probabilidad de perderlo y ser condenado a pagar las costas judiciales es exagerada. Mi economía no puede permitírselo. Parece que hoy en día es improbable que David pueda vencer a Goliat...

Millones de euros que pagamos rigurosamente todos los consumidores destinados a una empresa norte-americana privada, sospechosamente promocionada por demasiados gobiernos europeos. Debemos luchar activamente por nuestros derechos, y contra este soberbio monopolio. Si todos lo intentamos, es probable que algún día tengamos la posibilidad de comprar computadoras libres de software privativo, bastante mas económicas, al eliminar los costes de una licencia de software que exige muchas obligaciones legales al comprador, a cambio de unos "teóricos derechos" que ya hemos visto como fabricantes y distribuidores eliminan en la práctica a su antojo y con total impunidad legal.

He perdido muchas horas de mi tiempo libre para mover todos los papeles exigidos para esta reclamación. Descartada la vía legal por los motivos expuestos, no descarto mover este asunto por portales en Internet de interés general para intentar concienciar a la gente que deben reclamar lo que es suyo. Animo también a los lectores a difundir esta información. Mi mas sincero agradecimiento para todos los que colaboréis con la causa.

miércoles, 7 de julio de 2010

¿Cuanto mas podremos apretarnos el cinturon?

Tomemos el sueldo medio de un empleado español, unos 21.500€ en bruto al año segun diversas fuentes en Internet.

¿Alguien se ha planteado alguna vez, despues de pagar impuestos, hipotecas, seguridad social, multas, etc. cuanto queda de ese dinero en nuestros bolsillos? Hacemos un estudio con datos medios para sacar a flote ese dato:

=== Retenciones de la seguridad social ===
(28%) ... sueldo medio 21500€ ------------------------------------> 6020€

=== Impuestos por iva ===
== de gastos imprescindibles ==
8% Comida y productos limpieza y aseo personal ... 3600€/año ------> 288€ iva
18% Calzado, ropa ... 500€/año -------------------------------------> 90€ iva
18% Telefono fijo + internet ... 300€/año --------------------------> 54€ iva
18% Telefono movil ... 180€/año ------------------------------------> 32€ iva
18% Facturas luz ... 400€/año --------------------------------------> 72€ iva
18% Gasolina ... 500€/año ------------------------------------------> 90€ iva
18% Reparaciones en el hogar ... 300€/año --------------------------> 54€ iva
18% Reparaciones y mantenimiento del coche ... 500€/año ------------> 90€ iva

== de vicios (quien los tenga) ==
18% Tabaco ... 400€/año --------------------------------------------> 72€ iva
18% Alcohol ... 400€/año ------------------------------------------> 72€ iva

=== de gastos prescindibles ==
8% Comidas y cenas fuera de casa ... 500€/año ---------------------> 40€ iva
18% Regalos de cumpleaños, navidad, juguetes... 400€/año -----------> 72€ iva

=== Gastos forzados por la administración publica ===
Multas de trafico ... 200€/año -------------------------------------> 200€
Seguro obligatorio coche ... 300€/año ------------------------------> 300€
ITV coche ... 40€/año ----------------------------------------------> 40€
Permiso circulacion coche ... 150€/año -----------------------------> 150€

=== Intereses derivados a la entidad bancaria ===
...Hipoteca (150.000€ a 35 años) ... 7440€/año, intereses incl. ----> 3430€ interes

Para que no queden dudas, los 3430 € de intereses anuales se han calculado tomando una hipoteca media de 150.000€ a 35 años, a un tipo de interes medio del 3.5% (aunque ahora esten mas bajos, no olvidemos que los intereses oscilan en el tiempo y hace no mucho estaban por encima del 5%).

    ((cuota_anual * 35 años) - credito_solicitado) / 35 años =
((7440 * 35 años) - 150000) / 35 años = 3154€

En resumidas cuentas, nos retienen 6020€ euros al años en la seguridad social, nos cobran un total de 1026€/año en concepto de iva, pagamos unos 690€/año por gastos forzados por la administración publica, y 3154€ al año en concepto de intereses al banco. ¿Con que se queda un español medio para hacer sus compras?

    21500 - 6020 - 1026 - 690 - 3154 = 10610€ / año
10610 / 12 = 884€/mes

Nos quedan 884€/mes netos, exentos de impuestos, para gastar en lo que nos de la gana. Una pasta gansa, ¿no? Dá para irnos al Caribe en busca de "Curro"... eso y poco mas.

Si todavia no te has dado cuenta del dato, te sugiero que reflexiones al respecto. Con esos escasos 900€ debes pagar TODOS los gastos del mes.

Veamoslo desde otro punto de vista: sumemos los gastos anuales medios de comida, hipoteca, facturas, deducciones, multas, etc, segun la tabla anterior, y los restaremos del sueldo bruto anual para ver cuanto dinero nos queda al año en los bolsillos. Yo os hago el cálculo para ahorraros el trabajo:

    21500 - 6020 - 3600 - 500 - 300 - 180 - 400 - 500
- 300 - 500 - 400 - 400 - 500 - 400 - 200
- 300 - 40 - 150 - 7440 = -630€

Atencion señores. El asalariado medio español se queda con un saldo neto anual total negativo de -630€/año. Dicho de otra manera: despues de trabajar durante un año enterito, el español medio todavía le debe 630€ al panadero, al butanero, al mecanico del coche, al banco, o a quien os de la gana. Lo que es seguro es que si no hay mas dinero, alguien se quedará sin cobrar esa deuda. Y si la situación se prolonga en el tiempo, con toda probabilidad, el banco embargue todos sus bienes presentes y futuros, con ello toda esperanza de una vida digna.



Quizas algunos os planteeis que no fumais, que no bebeis o que no gastais tanto en comida, por poner algunos ejemplos. Pero tener en cuenta que la tabla anterior es una tabla orientativa, muy resumida, que no considera muchos otros gastos en viajes, electrónica, electrodomesticos, cines, conciertos, transporte público, peajes, basura, agua, comunidad de vecinos, IBI, comisiones de los bancos, etc. etc.etc. Os animo a completarla con vuestros ingresos/gastos y que saqueis vuestras propias conclusiones.

Señores politicos de este pais: reflexionen, y háganlo pronto porque el tiempo se está acabando. Esto no es un problema de confianza, es un problema real y muy serio. El español medio lo esta pasando mal, y lo va a pasar peor si las cosas siguen por este camino. No deberían quedar impunes aquellos que iniciaron esta crisis, no es de justicia que sus errores se solventen con dinero público, ni mantener los privilegios de las sicav que tributan a un 1%, mientras se sigue apretando el cinturón de la clase media subiendo impuestos, bajando salarios de los funcionarios, abaratando despidos, incrementando la edad de jubilación, reduciendo el dinero en I+D+i, y lo que quede por venir, que vendrá.

Santiago Niñó Becerra, catedrático de 'Estructura Económica' en la Universidad Ramón Llull de Barcelona, habla de lo que está por venir en su libro "El crash del 2010", cuya lectura os recomiendo para que a nadie le pille por sorpresa las dimensiones de la mas que probable crisis que se avecina. Si a alguien le interesa su lectura, que contacte conmigo.

Cuando el sistema colapse, veremos como reacciona la gente para cubrir sus necesidades mas básicas de supervivencia. Veremos entonces quien le pone remedio a esto. Mientras tanto, sigamos confiando en que España gane el Mundial de Sudáfrica para que se solucionen todos los problemas de este país. Después, ya veremos...

lunes, 5 de julio de 2010

Howto instalar XUbuntu en el Acer Aspire One

Mi novia compró recientemente un "Acer Aspire One" en Media Market por 250€. El equipo viene equipado con un hardware muy apetecible: un micro Intel Atom N450 a 1.66GHz con 1GB de memoria y 160GB de HDD, con pantalla LED LCD de 10.1', WiFi, Ethernet, 3 conectores USB, salida VGA y entrada/salida de audio. Una maquina muy accesible y con potencial y capacidad de almacenamiento mas que suficiente para las necesidades de una peluquera.

Algunos amigos me recomendaron no comprar Acer por la mala fama que se ganaron hace algun tiempo, pero visto el titular de esta noticia, hoy en dia no sabes bien de que fabricante te puedes fiar mas, y Acer tenía la mejor relación calidad/precio, así que nos arriesgamos con el Aspire One.

Convertido en sysadmin de facto de su portatil desde el mismo momento en el que pasó por caja, ya la adverti que si tenia problemas, Windows y yo no teníamos una relación precisamente buena, y tendríamos que operar de urgencias al enfermo en el quirófano.

Los problemas llegaron el primer día que puso en marcha su bonito portatil... "Es que intento ver un video y me sale una pantalla que no se que es pero el video no se ve. Ademas, intento conectar a Internet y no va. Y abro el Word y me pide un número de licencia. Y me sale un antivirus que no para de recordarme que debo actualizalo. ¿Que hago? (...)".

Y con esta frase empezó un fin de semana (de puente aqui en Terrassa), de lo mas friki, con la intención de instalar en el Acer una XUbuntu 10.04, y ya que me toca ser sysadmin al estilo "pringao's howto", al menos ser un sysadmin feliz.

Y despues de contaros todo este rollo, llegamos a la parte práctica y mas interesante.

El objetivo se resume en instalar una distribucion de Linux en un portatil que no tiene lector de CD-ROM. Tampoco usaremos ninguna unidad de CD-ROM externa, pues son caras y tenemos alternativas mucho mas económicas como veremos:

Para ello necesitamos el portatil, una memoria USB de al menos 1GB, un sistema operativo Linux en ejecución y una ISO de Ubuntu. En mi caso, he instalado una XUbuntu 10.04 (xubuntu-10.04-desktop-i386.iso), ya que necesita pocos requisitos de RAM y el portatil no anda sobrado en este sentido. Aunque el post es generalizable a cualquier distribución que os de la gana, bastaría con ajustar mínimamente el fichero sysconfig.cfg (creado mas abajo).



Existen algunos USB en el mercado que a pesar de tener un MBR incorrecto, se pueden usar sin ningun problema para almacenar datos, pero esos USB no se pueden usar como unidades autoarrancables. El error se corrige de forma sencilla haciendo esto:

    $ sudo apt-get install mbr
$ sudo dd if=/dev/zero of=/dev/sdb
(... este comando puede tardar bastante dependiendo de la capacidad, paciencia ...)
$ sudo install-mbr --force /dev/sdb

siendo /dev/sdb el dispositivo con el que el kernel ha reconocido el USB pendrive. Dependiendo de cada equipo, este dato puede cambiar. WARNING: ¡Mucho cuidadin! Este comando es altamente destructivo si no se indica el fichero dispositivo correcto. ¡Tomaros vuestro tiempo en aseguraros que lo poneis bien!

A continuación hay que crear una partición en la memoria USB tipo FAT16, la haremos de 750M para que quede claro que vamos a meter dentro una ISO de un CD, y para ello haremos lo siguiente:

    $ sudo fdisk /dev/sdb

Orden (m para obtener ayuda): n
Acción de la orden
e Partición extendida
p Partición primaria (1-4)
p
Número de partición (1-4): 1
Primer cilindro (1-1021, valor predeterminado 1):
Se está utilizando el valor predeterminado 1
Last cilindro, +cilindros or +size{K,M,G} (1-1021, valor predeterminado 1021): +750M

Orden (m para obtener ayuda): a
Número de partición (1-4): 1

Orden (m para obtener ayuda): t
Se ha seleccionado la partición 1
Código hexadecimal (escriba L para ver los códigos): 6
Se ha cambiado el tipo de sistema de la partición 1 por 6 (FAT16)

Orden (m para obtener ayuda): p

Disco /dev/sdb: 8011 MB, 8011120640 bytes
247 cabezas, 62 sectores/pista, 1021 cilindros
Unidades = cilindros de 15314 * 512 = 7840768 bytes
Identificador de disco: 0x00000000

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sdb1 * 1 101 773326 6 FAT16

Orden (m para obtener ayuda): w
¡Se ha modificado la tabla de particiones!

Llamando a ioctl() para volver a leer la tabla de particiones.

Se están sincronizando los discos.

A continuación se formatea la partición con un sistema de ficheros FAT16, y le vamos a poner la etiqueta de volumen "liveusb". Es necesario usar FAT16 para que syslinux funcione bien.

    $ sudo mkfs.vfat -F 16 -n liveusb /dev/sdb1

El pendrive USB esta listo para almacenar la imagen del liveCD de XUbuntu. Montamos la ISO del liveCD y el USB pendrive:

    $ mkdir -p /media/iso
$ sudo mount -o loop xubuntu-10.04-desktop-i386.iso /media/iso
$ mkdir -p /media/usb
$ sudo mount /dev/sdb1 /media/usb

Copiamos de la ISO al USB los siguientes directorios como indican estos comandos:

    $ cd /media/iso
$ sudo cp -aR casper disctree dists install pool preseed .disk /media/usb/

Editamos el fichero de configuración de syslinux, syslinux.cfg, para que contenga esta información:

    $ cat /media/usb/syslinux.cfg
DEFAULT /casper/vmlinuz
APPEND file=preseed/kubuntu.seed boot=casper initrd=/casper/initrd.lz ramdisk_size=1048576 root=/dev/ram0 rw quiet splash --

Por último, hacemos bootable el USB pendrive, para ello usaremos syslinux como gestor de arranque:

    $ sudo apt-get install syslinux mtools
$ cd
$ sudo umount /media/usb
$ syslinux -sf /dev/sdb1

Con esto ya disponemos de un pendrive que podemos usar para instalar Linux en cualquier portatil sin unidad de CD-ROM. En el caso particular que nos ocupa, hay que entrar en la BIOS del Acer Aspire One, (tecla F2) y modificar la secuencia de BootOrder para que el portatil arranque "USB HDD" antes que el "IDE0 : WDC WD1600BEVT - 22A23T0", lo que se consigue jugando con las feclas F6 (up) y F5 (down).

A partir de aqui solo queda seguir los pasos de la instalación de la XUbuntu que se presumen "jarto complicados", solo al alcance de una profesional de la estética y la peluqueria con algun mes de experiencia usando el MS Word.



Después del trabajo realizado me tome la libertad de quitarle al Acer la diabolica chapita con la que salen todos los PC's del mundo de las tiendas, "Designed for Windows XP" para quedarmela como trofeo y pegarsela a la labadora de mi casa para flipar de labadora tunning... Microsoft controlando los labados de mi ropa... ¡Aarrgghh! ¡Esto si que es para ponerse a temblar! :-)

sábado, 30 de enero de 2010

Richard Stallman: de ingeniero del MIT a estrella del rock

La portada de barrapunto del dia 28/01/10 anunciaba una conferencia de Richard Stallman sobre el software libre en la ética y en la práctica. Era en el IES Lacetània de Manresa. Por la hora (las 19.15h) y el lugar (allí vive mi novia), era el dia perfecto para asistir por primera vez a una de sus conferencias y conocerle en persona.

Llegue a la sala de actos 10 minutos antes de que comenzara su charla, con la intención de buscar un buen sitio donde sentarme. Pero al llegar, la sala estaba repleta de gente, y me tuve que sentar en uno de los asientos que quedaban libres en las últimas filas. El salon de actos contaba con 2x2 bloques de asientos de unos 12x15 sillas. Bastante gente se quedaron sin asiento, y pasaron el rato de pié, por lo que a groso modo habría unas 800 personas en el salón.

Tuvo una entrada en escena al mas puro estilo "rock star". Tras esconder su cara con su larga melena mientras el director del centro introducía la apertura del evento, éste concluyo su intervención dando paso a la estrella del espectáculo:

"con todos ustedes, ... ¡Richaard ... Staallman!"



Ante los efusivos aplausos de un público entregado al personaje, éste se levantó de la silla echándo su melena hacia atras, y empezó a dar saltos a la pata coja dando un circulo completo de 360º. En aquel momento pensé que de los laterales iban a saltar los cohetes, iban a subir el volumen, a bajar las luces, ¡y a iniciar el concierto!

Dejando de lado el tema glamouroso, y entrando de lleno en el terreno filosófico del asunto, inició su presentación haciendo incapié en los cuatro principios eticos fundamentales del movimiento del software libre:

- Libertad de usar el programa para cualquier meta legitima
- Libertad para estudiar/modificar el codigo fuente del programa
- Libertad de ayudar a tu projimo, copiando y distribuyendo el programa
- Libertad de publicar versiones modificadas, incluyendo su venta

Criticó con fuerza al software privativo (el que priva de libertad), haciendo referencia directa a los 7 pecados de Micro$oft, al iPad de Apple, al que él denomina el iBad, y también tuvo su momento para criticar el libro electrónico de Amazon, el Kindle, explicando que hace unos meses se descubrió una especie de puerta trasera que permitió a Amazon borrar de manera remota libros digitales almacenados en el sistema de forma lícita. Un atentado contra las libertades en toda regla. Realmente maléfico.

Afortunadamente, la comunidad libre sigue haciendo su trabajo a la perfección, ofreciendo alternativas libres a la sociedad. Y pronto tendremos la alternativa al iPad de la mano de una empresa española, el iFreeTablet. Sin duda, un gadget muy interesante a tener en cuenta en los próximos meses.

Mas tarde, hizo incapie en que la gente reconozca la diferencia entre el kernel del sistema operativo (Linux) y el conjunto de herramientas necesarias para que el sistema funcione (herramientas GNU). Pidio que se le reconozcan los meritos que hoy en dia se le atribuyen casi en exclusiva al creador de Linux, Linus Torvalds, ya que mucha gente sigue confundiendo a Linux con todo el sistema, sin saber que en realidad, Linux es solo una parte del sistema que Richard Stallman empezó a gestar y desarrollar 10 años antes de que Linus terminara su primera versión funcional del kernel.

Intuí cierto rencor hacia la persona de Linus Torvalds por llevarse este último todos los meritos mediáticos, segun el, porque la velocidad a la que se difundió una noticia erronea superó con creces la velocidad de la noticia que intentaba aclarar las cosas.

Relacionado con la educación, Stallman hablo sobre el software en las escuelas, argumentando que un centro educativo de software, por definición de educación, nunca puede funcionar con software privativo: debe funcionar con software libre. Y la razón es de una logica aplastante: un alumno con dudas sobre el funcionamiento de su sistema privativo, nunca podra obtener respuestas. Sus profesores solo le podrán contestar a sus dudas con un triste: "no lo sé, es secreto". Y obviamente, este argumento va en contra de los intereses educativos del alumno.

Critico con fuerza la propuesta de ley realizada por el Gobierno español sobre el intercambio de contenidos digitales, así como a los gobiernos de la Union Europea por fomentar el uso de software privativo en decremento del software libre, apoyando la iniciativa del portal red-sostenible, animando al personal a continuar luchando actívamente por la causa.

Relacionado con el mundo empresarial, habló sobre el modelo de negocio con el software libre: los clientes que desean una modificacion de un codigo libre, la piden a los desarrolladores, éstos la realizan, el cliente la paga, los desarrolladores la cobran. Pero esa modificación debe seguir siendo libre, lo cual, según mi modo de entender, choca frontalmente con el interés principal de toda empresa (ganar dinero) ya que si una empresa gasta sus recursos económicos para hacer una modificación en el codigo de un programa, y acto seguido el resto de las empresas del mundo pueden disponer de manera solidaria de esa modificación, la empresa que gasta sus recursos en la modificación no obtiene ninguna ventaja competitiva. Es un conflicto de intereses dificil de resolver.

Hacia el final de la conferencia, Richard mostró "su otro yo", y tras enfundarse una túnica negra y colocarse sobre su cabeza un disco dorado a modo de aura, se presentó ante los presentes como San iGNUcio, ante las risas de los asistentes por lo cómico del asunto, y empezó a predicar con su religión a modo de profeta.



Entre otras bromas, dijo que para convertirte a su religión, debes enunciar todos los comandos del editor emacs, uno por uno, en orden alfabético. Tambien tuvo sus palabras hacia el editor vi, sobre el que dijo que pronunciar 3 veces vi, VIVIVI, es pronunciar un numero diabolico (666), pero que usar una versión libre del editor puede servir para redimir todos tus pecados. Soy un ferviente defensor del vi, asi que segun san Ignucio, ¡estoy libre de todo pecado! :-)

Richard Stallman se ganó al público asistente a la conferencia desde el primer momento que apareció en escena, y hasta el mismisimo final. Los aplausos se sucedieron de forma periódica durante las dos horas que duró su intervención. El tema es curioso y digno de que la mismísima SGAE haga una profunda reflexión al respecto: un ingeniero del MIT dando charlas sobre software libre consigue un exito de asistencia que muchos grupos musicales quisieran para si mismos tras su primer disco de exitos... Y sin cobrar ni un solo céntimo por derechos de autor!

La sección de preguntas y respuestas fué mas breve de lo que hubiera deseado. Tras la primera pregunta, la gente empezaró a marchar de manera muy ruidosa, sin respetar el silencio en la sala que Richard reclamaba para poder escuchar las preguntas. Era el momento perfecto para que dejara de lado su guión y su puesta en escena perfectamente estudiada, y haber podido conocer un poco mas de cerca al personaje real. Pero el ruido continuó, y ante el descontrol de gente saliendo de la sala, Richard empezó a firmar libros, y yo me decidí finalmente a marchar.



En cualquier caso, pasé un rato muy agradable en un ambiente que ciertamente me apasiona, y quedé contento de haber conocido en persona a uno de los mejores programadores de la historia, por el que siento una gran admiración y respeto, y desde luego un hombre que ha marcado mi carrera profesional desde que ayá por 1997 conocí de su sistema operativo y sus ideas éticas y filosóficas. Si nunca has asistido a una de sus conferencias, te gusta el mundillo, y tienes ocasión, no lo dudes, es mas que recomendable. Yo intentaré repetir algún día. ¡Hasta la próxima, rock star!

Visitas:

Seguidores