2009-10-29

465. Avui fa 40 anys d'Internet

40 anys d'internet

40 anys d'internet

El dia 29 d'octubre de 2009, a les 22.30 h, celebrem el 40è aniversari del primer enllaç d'ARPANET entre la Universitat de Califòrnia a Los Angeles i l'Stanford Research Institute, segons informa en Xavi Caballé al seu blog.

A la imatge, el registre del primer missatge enviat sobre ARPANET.

L'ARPANET era una xarxa d'ordinadors creada per encàrrec del Departament de Defensa dels EUA durant la guerra freda com a mitjà de comunicació per als diferents organismes del país, segons la Viquipèdia.


Via Flamarades, el butlletí d'el DRAC.

2009-10-28

464. Effective C++ Third Edition, d'Scott Meyers

Effective C++ Third Edition
Scott Meyers, 2005
Anglès
Ed. Addison-Wesley
279 p.
ISBN 978-0-321-33487-9

Scott Meyers és un reconegut gurú de la programació en C++. Aquest llibre és la tercera edició del seu popular Effective C++ (1a edició 1991, 2a edició 1997, 3a edició 2005). A cada edició Meyers ha modificat el contingut del llibre per adequar-lo al coneixement que la comunitat de programadors tenia sobre aquest llenguatge tant profund i ric.

Així, aquesta tercera edició incorpora molts elements sobre la gestió de recursos i la programació amb plantilles. Excepcions, patrons de disseny i la biblioteca de recursos TR1 són altres de les novetats. Un dels temes segurament importants en el futur i que aquí no es desenvolupa (de manera conscient) és la programació multifil, ja que caldria estendre C++ en aquesta direcció per ser capaç de programar sistemes multifil de manera segura.

El llibre està plantejat com un recull de 55 ítems que ens ensenyen com programar millor en C++. Els ítems són llargs, de diverses pàgines, amb molts exemples i contraexemples i és molt interessant llegir-los bé i entendre tot el que s'hi diu. En aquest sentit, mentre el llibre C++ coding standards és directament una llista de consells, Effective C++ és una tutoria sobre com escriure millor, estructurada en ítems.

La lectura no és tan directa com en el cas del llibre de Sutter i Alexandrescu, però la comprensió d'allò que Meyers ens vol transmetre és molt enriquidora.

El llibre està separat en nou capítols, amb els títols:

  1. Accustoming yourself to C++
  2. Constructors, destructors and assignment operators
  3. Resource management
  4. Designs and declarations
  5. Implementations
  6. Inheritance and object-oriented designs
  7. Templates and generic programming
  8. Customizing new and delete
  9. Miscellany
La meva valoració: un bon llibre per a començar a programar bé en C++ i també de cara als professionals, per a repassar cada pocs anys.

2009-10-25

463. C++ coding standards, de Herb Sutter i Andrei Alexandrescu

C++ coding standards
Herb Sutter i Andrei Alexandrescu, 2005
Anglès
Ed. Addison-Wesley
220 p.
ISBN 0-321-11358-6

Herb Sutter i Andrei Alexandrescu són dos reconeguts gurús de la programació en C++ que en aquest llibre han ajuntat esforços i experiència per a mostrar-nos 101 regles, guies i bones pràctiques de la programació en C++.

De les herències de classes a les plantilles, del C més bàsic a la programació genèrica, dels tipus predefinits a la biblioteca STL, els autors passen per tots els àmbits importants del C++ sense descuidar-se'n cap: assignació de memòria, ús d'operadors, errors i excepcions, canvis de tipus, creació d'interfícies...

Els autors usen un mètodes senzill i pràctic per a transmetre la informació: presenten cent un casos (que poden ser regles, guies o consells), amb una bona argumentació i sovint amb exemples. Els casos presentats estan agrupats segons l'àmbit de la programació que afecten i es mira que facin referència a un sol tema, per evitar complicacions.

Aquest llibre és una molt bona introducció a la bona programació en C++, tot i que potser sigui un pèl massa per als principiants. Naturalment, un expert en C++ ja hauria de conèxier tots els temes tractats en aquest llibre... però sovint ens trobem amb sorpreses.

Us poso una mostra dels títols de les recomanacions del llibre:

  • 5. Give one entity one cohesive responsibility.
  • 15. Use const proactively.
  • 25. Take parameters appropriately by value, (smart) pointer, or reference.
  • 35. Avoid inheriting from classes that were not designed to be base classes.
  • 45. Always provide new and delete together.
  • 55. Prefer the canonical form of assignment.
  • 65. Customize intentionally and explicitly.
  • 75. Avoid exception specifications.
  • 85. Use the right STL search algorithm.
  • 95. Don't use C-style casts.

La meva valoració: un bon llibre per a començar a programar bé en C++ i també de cara als professionals, per a repassar cada pocs anys.

462. Sed de sangre, de Joanna Bourke

Sed de sangre
Joanna Bourke, 1999
Castellà, trad. de l'anglès (An intimate history of killing) per Luis Noriega
Ed. Crítica
552 p.
ISBN 978-84-8432-768-4

Joanna Bourke és una historiadora neozelandesa, autora del molt millor llibre La segona guerra mundial: una història de les víctimes. El llibre que aquí tracto, que s'hauria de traduir com Una història íntima de l'assassinat, és dos anys anterior i força més dens i pesat.

Bourke entra sense manies en temes que són sovint tabú i hi entra des d'un punt de vista nou, sense apriorismes ni sense admetre res per suposat. Així, les seves descripcions fan mal perquè expliquen allò que hi ha, fins i tot en tot allò que ja donàvem per suposat i que mai s'explica.

L'autora ha fet llibres sobre història del masclisme, història de la violació o aquesta història de l'assassinat. Per ella, la guerra no és més que l'assassinat a gran escala i els països, per aconseguir aquest objectiu, han de fer per manera que la gent mati. Bourke es dedica a investigar els mètodes seguits pels EUA, el Regne Unit, Austràlia i Nova Zelanda per aconseguir que els seus ciutadans matin a altres éssers humans en tres conflictes concrets: la Primera Guerra Mundial, la Segona Guerra Mundial i la Guerra de Vietnam, totes tres al Segle XX.

Des del condicionament de l'individu en l'educació de l'infant i en el contingut dels llibres, còmics i pel·lícules, passant per l'entrenament a l'exèrcit i acabant amb la disciplina al front, Joanna Bourke ens porta per tots els mètodes que l'estat aplica per eliminar la humanitat de la gent i per aconseguir que siguin màquines de matar eficients. Alhora, l'autora desmitifica moltes de les imatges bèl·liques que s'han convertit en llocs comuns gràcies a determinats moments feliços d'algunes produccions literàries o cinematogràfiques. Així, es dedica a desmuntar els atacs en baioneta de la Primera Guerra Mundial, les lluites entre caces de la Segona Guerra Mundial i els duels de franctiradors en la Guerra de Vietnam, per mostrar-nos com en tots els casos la visió distorsionada d'actes heroics, nobles o cavallerescos és en realitat un camuflatge per a actes violents, fets a contracor, amb por i sota un dolor psicològic terrible.

Així com la idea del llibre és prou bona, el problema que té és que l'autora vol apretar massa tecles alhora i produeix cacofonies. Per exemple, alguns dels mètodes d'entrenament que l'autora exposa com a inútils són, algunes pàgines més tard, exposats com a eficaces eines de rentat de cervell. O també, els herois que en realitat han estat fabricats per la propaganda, de fet sí que han protagonitzat actes destacables. Hi ha una certa manca de precisió en el relat que fa que es faci un pèl pesat. I, a més, la pròpia narrativa del llibre es fa pesada per les descripcions interminables de cartes o discursos i per la sobreabundància de cites i referències.

Segurament com a llibre de referència per a una nova visió de la història, pot ser molt útil. Però com un simple llibre per a aficionats a temes bèl·lics, es fa força pesat.

La meva valoració: un llibre pesat per als qui no són professionals de la història o que no treballen directament en temes de desmobilització.

Apunts relacionats:

2009-10-18

461. Breu història del món, d'Ernst H. Gombrich

Breu història del món
Ernst H. Gombrich, 1935 (rev. 2005)
Català, trad. de l'alemany per Judith Vilar
Ed. Empúries
394 p.
ISBN 978-84-92549-49-8

Ernst H. Gombrich és conegut arreu per ser l'autor de The story of art, una de les millors introduccions al món de la història de l'art. Aquest llibre, publicat en anglès el 1950 i després traduït a trenta idiomes, va poder ser conegut gràcies a les bones circumstàncies de la seva aparició.

Aquestes circumstàncies no existien quan Gombrich va publicar el seu primer llibre, Eine kurze Weltgeschichte für junge Leser. Les raons? Era era escrit en alemany, era l'any 1935 i l'autor era jueu. Aquest llibre, com tants d'altres en aquella època, va ser cremat en fogueres al carrer i vilipendiat per les autoritats.

Gombrich va fugir a Anglaterra i ja mai va tornar a Àustria. De fet, va renegar de l'alemany i la dotzena de llibres que va publicar després els va fer tots directament en anglès, l'idioma del país que l'havia acollit.

Tots aquests llibres tractaven sobre art, l'especialitat de Gombrich. I així doncs, perquè el seu primer llibre tractava sobre història? Doncs perquè l'autor no havia trobat un bon llibre d'iniciació a la història per als xiquets i creia, així ho va comentar a un editor, que ell en podia fer un de molt millor. En aquell moment tenia 25 anys. L'editor li va dir que si feia el llibre en sis setmanes, li comprava. Gombrich es va dedicar en cos i ànima al llibre: els matins i les tardes els dedicava a l'estudi i la lectura i els vespres a l'escriptura. Dia rere dia. Els diumenges llegia tot el que havia escrit durant la setmana, per retocar-ho. En sis setmanes, el llibre va estar a punt.

Quan, anys més tard, el llibre es va poder vendre amb normalitat, va esdevenir un èxit imparable que es va traduir a dotzenes de llengües, tot i que no va aparèixer en anglès fins al 2005, per reticències de l'autor.

I així doncs, què té d'especial aquest llibre? Doncs que està molt ben escrit. El llibre està dirigit als lectors joves, diguem preadolescents o adolescents. El llibre presenta una història mundial des de la prehistòria fins al segle XX, escrit en un estil molt àgil i entretingut, en una narrativa que no es dedica a repassar noms i dates sinó a explicar fets, idees i situacions. Com tots els llibres ben escrits, tot i estar dirigit a un public jove, es fa extremament plaent per al lector interessat per la història, ja que encara que l'autor no ens descobreixi res que ja no sabéssim, la manera com explica les coses ens fa gaudir-les encara més.

I el llibre té un altre detall que m'ha agradat molt. Com que l'autor el va escriure pensant en els xiquets i xiquetes austríacs, la història d'Europa a partir de la Edat Mitjana se centra en els fets que van passar a l'Europa Central, des d'un punt de vista distint al que estem acostumats a llegir per part dels historiadors catalans, francesos o americans. Així, les úniques referències a fets històrics relacionats amb la Península Ibèrica i els seus pobles són la Segona Guerra Púnica, el Descobriment d'Amèrica, Carles V i l'Armada Invencible. A part d'això, no hi ha res més que hagi influït en la història d'Europa. De fet, quan parla de la història moderna i repassa els imperis europeus, diu que a partir de les pèrdues de les colònies de sudamèrica (1810-1824), Espanya ja mai més no va pintar res a nivell mundial. Clar i català.

Aquest llibre és doncs un exercici refrescant de lectura, ja que ens allibera dels llocs comuns que els historiadors més propers sempre remarquen. Llegir història universal per part d'historiadors de diverses cultures permet copsar el denominador comú que tenen, que consisteix en aquells fets que són realment claus en la història mundial.

La meva valoració: un llibre molt entretingut de llegir, divertit, amè i interessant, tant per començar a aprendre els fets importants de la història com per rellegir-los en un to molt instructiu. El recomanaria per a totes les edats i nivells previs de coneixement.

Apunts relacionats:

2009-10-11

460. Beatles informàtics

A Port 666 han publicat una colla de lletres de cançons dels Beatles adaptades a la feina dels soferts programadors.

Write in C ("Let it Be")

When I find my code in tons of trouble,
Friends and colleagues come to me,
Speaking words of wisdom:
"Write in C."

As the deadline fast approaches,
And bugs are all that I can see,
Somewhere, someone whispers:
"Write in C."

Write in C, Write in C,
Write in C, oh, Write in C.
Cobol's dead and buried,
Write in C.

I used to write a lot of FORTRAN,
For science it worked flawlessly.
Try using it for graphics!
Write in C.

If you've just spent nearly 30 hours,
Debugging some assembly,
Soon you will be glad to
Write in C.

Write in C, Write in C,
Write in C, yeah, Write in C.
BASIC's not the answer.
Write in C.

Write in C, Write in C
Write in C, oh, Write in C.
Pascal won't quite cut it.
Write in C.

--cut--


NEW LYRICS TO BEATLES SONGS

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

Yesterday

---------

Yesterday,

All those backups seemed a waste of pay.
Now my database has gone away.
Oh I believe in yesterday.

Suddenly,
There's not half the files there used to be,
And there's a milestone hanging over me
The system crashed so suddenly.

I pushed something wrong
What it was I could not say.
Now all my data's gone
and I long for yesterday-ay-ay-ay.

Yesterday,
The need for back-ups seemed so far away.
I knew my data was all here to stay,
Now I believe in yesterday.

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

Eleanor Rigby

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

Eleanor Rigby
Sits at the keyboard
And waits for a line on the screen
Lives in a dream

Waits for a signal
Finding some code
That will make the machine do some more.
What is it for?

All the lonely users, where do they all come from?
All the lonely users, why does it take so long?

Guru MacKenzie
Typing the lines of a program that no one will run;
Isn't it fun?

Look at him working,
Munching some chips as he waits for the code to compile;
It takes a while...

All the lonely users, where do they all come from?
All the lonely users, why does it take so long?

Eleanor Rigby
Crashes the system and loses 6 hours of work;
Feels like a jerk.

Guru MacKenzie
Wiping the crumbs off the keys as he types in the code;
Nothing will load.

All the lonely users, where do they all come from?
All the lonely users, why does it take so long?

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

Unix Man ("Nowhere Man")
---- --- ------- ---

He's a real UNIX Man
Sitting in his UNIX LAN
Making all his UNIX plans
For nobody.

Knows the blocksize from du(1)
Cares not where /dev/null goes to
Isn't he a bit like you
And me?

UNIX Man, please listen(2)
My lpd(8) is missin'
UNIX Man
The wo-o-o-orld is at(1) your command.

He's as wise as he can be
Uses lex and yacc and C
UNIX Man, can you help me At all?

UNIX Man, don't worry
Test with time(1), don't hurry
UNIX Man
The new kernel boots, just like you had planned.

He's a real UNIX Man
Sitting in his UNIX LAN
Making all his UNIX plans For nobody ...
Making all his UNIX plans For nobody.

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

Something
---------

Something in the way it fails,
Defies the algorithm's logic!
Something in the way it coredumps...
I don't want to leave it now
I'll fix this problem somehow

Somewhere in the memory I know,
A pointer's got to be corrupted.
Stepping in the debugger will show me...
I don't want to leave it now
I'm too close to leave it now

You're asking me can this code go?
I don't know, I don't know...
What sequence causes it to blow?
I don't know, I don't know...

Something in the initializing code?
And all I have to do is think of it!
Something in the listing will show me...
I don't want to leave it now
I'll fix this tonight I vow!

2009-10-08

459. Eviteu les contrassenyes fluixes: eviteu l'espanyol

Fa poc va aparèixer al web pastebin.com una llista de deu mil contrasenyes de comptes de correu obtingudes de manera fraudulenta. La llista es va retirar al cap de poc.

Els comptes de correu eren sobretot de Hotmail, però també hi havia Yahoo, Gmail i altres serveis. S'havien obtingut per phishing (pesca electrònica).

Ara podem llegir a Vilaweb (http://www.vilaweb.cat/www/noticia?p_idcmp=3640884) un interessant anàlisi del contingut de les contrassenyes.

En primer lloc, val la pena destacar que la majoria de contrasenyes consistents en paraules eren paraules en espanyol. Com que és poc raonable que la mitjana de noms usats pels usuaris a nivell mundial siguin noms espanyols, la dada indica un desviament en el robatori. Això podria voler dir que els usuaris d'Internet que naveguen en espanyol són dels més proclius a caure en estafes del tipus pesca electrònica, segurament perquè tenen un baix nivell d'anglès i potser també per raons culturals. Com que això ho deuen saber els estafadors, no usar l'espanyol a Internet quan tenim altres idiomes a la nostra disposició és una manera d'evitar que els estafadors ens busquin a través de l'idioma.

En segon lloc, val la pena indicar que la majoria de contrasenyes estan formades només per números o per lletres en minúscula i tenen menys de deu caràcters en total. Les millors combinacions són les que tenen lletres minúscules, lletres majúscules, números i algun símbol de puntuació (guió, punt, dòlar, etc.) i que són de deu o més dígits.

Per últim, tot i que no surt a la notícia, cal evitar usar la mateixa contrasenya en tots els nostres serveis, sobretot els que tinguin dades personals. La gestió de la privacitat i les contrasenyes encara no és clara ni segura i el debat sobre aquesta qüestió és ben viu. El que hem d'evitar és facilitar la feina als lladres i estafadors.