viernes, 30 de diciembre de 2011

Mis Libros del 2011


Puesto que queda un solo día y ya no llego a terminar el libro actual, creo que ya puedo dar por finalizada la lectura del año.
Conformando la siguiente lista:
  1. "El Evangelio Según Jesucristo", José Saramago.
  2. "Wagner para principiantes".
  3. "Evangelios Apócrifos", Editorial Libertador.
  4. "El guardián entre el centeno", J.D. Salinger.
  5. "Ajeno a la tierra", Richard Bach.
  6. "Mapas en un espejo. El ahorcado: cuentos de espanto",  Orson Scott Card.
  7. "Le Petit Nicolas", Gosciny ?
  8. "La Guerra del Paraguay", ?
  9. "Cuentos de Terror", H.P. Lovecraft.
  10. "Utopía", Tomas Moro.
  11. "El Manifiesto del Partido Comunista", Karl Marx & Frederick Engels.
  12. "La Torre Oscura VII: libro 1", Stephen King.
  13. "Cita con Rama", Arthur C. Clarke.
  14. "La Torre Oscura VII: libro 2", Stephen King.
  15. "La Rebelión de las Masas", José Ortega y Gasset.
  16. "La Agonía y el Éxtasis: vida de Miguel Ángel", Irving Stone.
  17. "El Universo en una Cáscara de Nuez", Stephen Hawking.
  18. "O povo brasileiro", Darcy Ribeiro.
  19. "Uno", Richard Bach
  20. "Juan Manuel de Rosas: el maldito de la historia oficial", Pacho O'Donnell.
  21. "How to brew: everything you need to know to brew beer right the first time", John J. Palmer.
  22. "Beer School: bottling success at the brooklyn brewery", Steve Hindy & Tom Potter.
  23. "The Complete Joy Of Home Brewing", Charlie Papazian.

Y de yapa, los libros del 2010:

  1. "El juego de Ender", Orson Scott Card.
  2. "Reflexiones sobre la no violencia", Gandhi.
  3. "El espíritu de la naturaleza", Emerson.
  4. "Las Aventuras de Tom Sawyer", Mark Twain.
  5. "Coup de Coer".
  6. "Autour de la Lune", Jules Verne.
  7. "Les Trois Mousquetaires", Alexandre Dumas
  8. "La guerre des boutons".
  9. "Papillon", Henri Charriere.
  10. "Desobediencia Civil y Otras Propuestas", Thoreau, Gandhi, M Luther King, etc.
  11. "Cuento de Navidad", Charles Dickens.
  12. "Walden, la vida en los bosques", Henry David Thoreau.
  13. "Amo y Servidor y otros cuentos", León Tolstoi.
  14. "La muerte de Iván Ilich", León Tolstoi.
  15. "El Extranjero", Albert Camus.
  16. "El invencible", Stanlislav Lem.
  17. "El Anticristo", Nietzsche.
  18. "Mitología Inca".
  19. "Espejos", Eduardo Galeano.
  20. "El libro de los abrazos", Eduardo Galeano.
  21. "Las enseñanzas de Don Juan", Carlos Castaneda.
  22. "Las Matanzas del Neuquén", Curruhuinca Roux.
  23. "La Torre Oscura 5, Lobos de Calla 1", Stephen King.
  24. "La Torre Oscura 5, Lobos de Calla 2", Stephen King.
  25. "La Torre Oscura 6, La Canción de Susana", Stephen King.

lunes, 26 de diciembre de 2011

Enigmas de Código

Siguiendo con el tema de "cuando el código toma el control", traigo un pequeño desafío de la ciencia.

Para qué sirve este if ?

public class FacebookDBHistory {
    DBClientAPI dbClient;

    public FacebookDBHistory() {
        if (dbClient == null) {
            dbClient = DBClientFactory.getDefaultDBClient();
        }
    }

????

Cuando el código toma el control

Cuando el código toma el control, el programador pasa a ser la preza. Cada linea es una potencial fiera a punto de atacarlo.


Como un laberinto, con código inutil, código malisioso, e incluso extra código que está allí solo para enloquecerlo.

El terror se apodera de los programadores, y el sistema se convierte en una especie de cueva oscura y aterradora, donde nadie quiere entrar. Y si no hay otra, intentarán adentrarse lo menos posible, y por el menor tiempo posible.

Casi como un juego de Jenga (Yenga), el programador entrará, hará los suyo, en la medida en que el código se lo permita, y volverá a su tranquilidad mental. Claro, mientras nadie detecte que todo esto nada solucionó.

Y digo "en la medida en que el código se lo permita", no por casualidad. He aquí la clave que da título al post.
Cuando el código toma el control, el programador pierde su libertad. La libertad de crear. Ya no hace lo que quiere, no moldea y diseña su sistema según la que cree es la mejor forma, sino que hace "lo que puede". Lo que se puede con el código. Lo que el código le dejó hacer.

Quien está en control entonces ?

Ese programador se torna esclavo de su código.

Y entonces pasan cosas como estas, que son las que despiertan estos terribles pensamientos que dan origen a este post:

SentimentSet sentset = null;   
            if (sentset == null || sentset.isLang(afb.getLang()) == false) {
                sentset = db.LoadSentiment(afb.getLang());
            }


Recuerden.. quizás hoy sea un buen día para enfretar su código y volver a tener el control ! :)


Comprimiendo Código

Breve.
Esto...
    public boolean isRetweet()
    {
        boolean rtn = false;
        NodeList entries = doc.getElementsByTagName("retweet");
        if (entries.getLength() > 0) rtn = true;
        return rtn;
    }

Es de hecho esto...

    public boolean isRetweet()
    {
        return doc.getElementsByTagName("retweet").getLength() > 0;
    }

Factor de compresión 4:1
La pregunta que uno se haría es por qué diantres uno escribiría el método de 4 lineas en primera instancia.