Retrospectiva: Theo Papaloukas

Fueron sólo 3:48. Es el tiempo que Theo Papaloukas jugó contra el Barcelona en la final de consolación de la Euroliga 2013. Y puede que fueran sus últimos minutos en el basket profesional. Con su CSKA campeón de liga ya se antoja que la Final Four ha sido su despedida. Puede que no, que todavía le quede cuerda, no se ha anunciado oficialmente su retirada, pero todo apunta a que en los próximos días dirá adiós al baloncesto profesional.

Con dos metros de alto y alrededor de 100 kilos durante su carrera, Papaloukas se convirtió en el ejemplo de combo-guard o point-forward europeo, pudiendo jugar de base, escolta e incluso alero. Criticado por no tener un tiro de larga distancia y por sus mediocres porcentajes en el tiro libre compensaba estas carencias con su excepcional manejo del balón, visión de juego e inteligencia. Una de sus jugadas «marca de la casa» era romper al rival amagando un pase para finalizar con una bandeja tras penetrar a canasta. Otra de sus señas de identidad era la de salir casi siempre desde el banquillo, por decisión propia consensuada con el entrenador (curiosamente otro de los protegidos de Messina, Manu Ginobili, también ha hecho esto durante la mayor parte de su carrera).

Durante años el jugador mejor pagado de Europa, Papaloukas puede alardear de haber sido el jugador que más Final Fours ha disputado hasta el momento, con 9 apariciones en la fase final de la Euroliga. Logró ganarla dos veces, ambas en el CSKA, equipo donde empezó como jugador de banquillo y del que salió como un referente del basket europeo.

Aunque jamás dio el paso a la NBA, al igual que su compatriota y también excepcional jugón Dimitris Diamantidis, pocos dudan de la capacidad de este hombre, con un palmarés impresionante tanto a nivel colectivo como individual: En clubes 7 ligas y 3 copas en Rusia, 2 Euroligas, 3 copas en Grecia, una liga y una copa en Israel y un campeonato en segunda división griega; además de un oro europeo y una plata mundial con la selección griega. Las nominaciones en su carrera se han sucedido también: mejor jugador de la segunda división Griega en 1999, cinco all star en la liga griega, dos veces mejor quinteto de la Euroliga y otras dos en el segundo, además de aparecer en el mejor quinteto del Eurobasket 2005, MVP de la Euroliga en 2007 y elegido en el equipo ideal de la Euroliga de la década 2001-2010. Me reservé los galadornes de 2006 para el final, porque fue su año mágico: Triple Corona con el CSKA, plata en el mundial con la selección y para él a nivel individual MVP de la copa rusa, MVP de la Final Four de la Euroliga, Quinteto ideal del Mundial y Mejor Jugador del Año elegido por FIBA Europa.

En fin, sea su retirada definitiva o se quede un año más, está claro que el baloncesto europeo no sería el mismo sin Theo. Vaya por él este homenaje, más humilde que el que le dieron en 2008 cuando fue nombrado uno de los 50 grandes de la historia de la Euroliga/Copa de Europa, y recordemos sus grandes jugadas.

El patrón Registry (y su aplicación en PHP)

Volvemos a los patrones de diseño tras un par de artículos de otra índole, y lo hacemos con Registry. La idea de este patrón es que nos permita utilizar los objetos y variables registrados en cualquier nivel de la aplicación sin necesidad de duplicarlos. Es decir, en la práctica nos permitiría usar cualquier objeto como si fuera un Singleton.

La idea de este patrón es crear una clase que tenga un array donde guardar los objetos registrados y una serie de métodos: uno que añada los objetos al array, otro que compruebe su existencia para evitar duplicaciones, otro que devuelva el objeto pasándole su clave, uno que borre el objeto recibiendo la clave y finalmente uno que limpie el array de la clase.

Pasado a código, PHP como siempre, la estructura sería la siguiente:

    <?php      
    class Registry  
    {  
        /** 
         * Registra variables y objetos         
         */  
        static private $registry = array();  
      
        /** 
         * Método que añade objetos
         * Recibe el objeto (por referencia) y la clave
         * Devuelve un booleano para confirmar si se ha insertado
         * o si en cambio estaba duplicado.
         */  
        static public function add($key, &$elemento)  
        {  
            if (!self::exists($key)) {  
                self::$registry[$key] = $elemento;  
                return true;  
            } else {  
                return false;  
            }  
        }  
      
        /** 
         * Función que comprueba la existencia de una clave.
         * Devuelve un booleano confirmando si existe o no.
         */  
        static public function exists($key)  
        {  
            return array_key_exists($key, self::$registry);  
        }  
      
        /** 
         * Función que devuelve un item dada la clave          
         */  
        static public function get($key)  
        {  
            if (self::exists($key)) {  
                return self::$registry[$key];  
            } else {  
                return null;  
            }  
        }  
      
        /** 
         * Elimina una entrada recibiendo su clave y devuelve confirmación.
         * Si la clave no existe devuelve false.
         */  
        static public function remove($name)  
        {  
            if (self::exists($name)) {  
                unset(self::$registry[$name]);
                return true;  
            } else {
                return false;
            }  
            
        }  
      
        /** 
         * Limpia el registro totalmente.         
         */  
        static public function clear()  
        {  
            self::$registry = array();  
        }  
    }  
    ?>  

El ejemplo es una estructura muy básica, puedes ampliarlo con filtros varios, control de errores y demás, pero la idea del esqueleto de este tipo de clase.

Ale, a disfrutarlo.

NBA Playoff 2013 – Segunda Ronda

Mientras se decide el 7º entre Nets y Bulls (ahora mismo +13 para Chicago en el segundo cuarto) voy comenzando en análisis de las eliminatorias ya decididas, como hice con la primera ronda.

ESTE:

En liga regular Chicago rompió la racha de record de Miami

Miami – Chicago: Miami está siguiendo el guión esperado. Apalizaron en primera ronda a los Bucks (4-0), ridiculizaron a Jennings (otra vez) y LeBron a nivel MVP. Sorprende el buen rendimiento del «pájaro loco» Andersen en primera ronda, mientras el resto del equipo ha estado en el nivel que se les supone. Siguen siendo favoritos y tienen la suerte de no haber sufrido la plaga de lesiones que parece azotar a todo el mundo este año. Por su parte los Bulls (que acaban de terminar hace cosa de dos minutos) llegarán cansados tras una serie a 7 partidos que estuvo abierta hasta el último minuto. Luol parece que finalmente no está enfermo, por lo que hasta le habrá valido de descanso. Sobre Rose, dicen que calentará en Miami pero, sinceramente, si no jugó en un séptimo partido con Deng de baja además… entonces no se a qué esperaban, creo que no jugará. En fin, si todo va como debería 4-1 para Miami. Si Rose regresa en forma… será otra historia.

New York – Indiana: Ambos equipos llegan fuertes tras gana sus eliminatorias por 4-2. En los Knicks se ha confirmado que el peso del ataque recae en la pareja Anthony/J.R. Smith, con puntuales contribuciones de Shumpert y Felton, aunque no menos importante es el buen hacer defensivo de Kenyon Martin y Tyson Chandler o el control que les confiere sobre los ritmos del partido el tener a dos bases tan curtidos como Kidd y Prigioni, algo fundamental para un equipo que se mueve cómodo por el barro, en partidos lentos de baja anotación. Por su parte los Pacers parece no echar de menos a Granger para nada. El «más mejorado» Paul George ha firmado una primera ronda espectacular, Hibbert al fin ha hecho números que justifican su mastodóntico contrato y no han fallado ni David West ni George Hill, ambos con muy buenos números. Un quinteto muy fuerte pero con poca aportación del banquillo para un equipo que parece ser capaz de adaptarse a cualquier ritmo y de ganar tanto en partidos muy abiertos como en encuentros muy defensivos. Los Knicks intentarán esto último, un ritmo lento, e Indiana por su parte intentará jugar más rápido y más agresivo. Apuesto por 4-2 para New York.

OESTE

El hombre de moda en los playoff: Curry

Oklahoma – Memphis: Ha sido un duro mazazo para los Thunder perder a Westbrook. Sin el chupón base los Thunder se tornan un equipo muy limitado en ataque, dependiendo en exceso de Durant. Hicieron un equipo basado en tres hombres clave en ataque (Durant – Westbrook – Martin desde el banquillo) rodeados de expertos en defensa, y ahora que uno está out (no se sabe por cuánto) esto les pesa. Tienen que confiar en el joven Reggie Jackson, que de momento ha funcionado bien, y en una aportación extra de Martin e Ibaka para suplir la falta de explosividad. Por su parte Memphis llegan bien, levantaron un 2-0 en contra para alzarse sobre los Clippers con un 2-4. Necesitan a Randolph centrado, porque si lo está tienen la mejor pareja interior de la NBA con él y Marc Gasol juntos, no sólo por una cuestión estadística sino por la forma en que se complementan. Por fuera además de la solidez defensiva de Prince y Allen cuentan con la explosividad de Conley y con un irregular Jarryd Bayless que puede romper algún partido de forma puntual. Aunque OKC tiene mejor equipo en principio creo que me tiraré a la piscina, que la baja de Westbrook pesará: 4-2 para Grizzlies.

Spurs – Golden State: Lo de San Antonio con los Lakers fue más abuso que victoria. 4-0 cómodo que les ha permitido que Splitter tenga descanso para recuperarse del esguince del segundo partido. Duncan con 37 años sigue dando lecciones de baloncesto, sigue apuntalando la leyenda del mejor cuatro de la historia. Ginobili no está en su mejor momento físicamente, pero su largo banquillo lo suple, y Parker además ha estado imperial en esta primera ronda. Los Spurs son sólidos y no piensan dejarse sorprender como hace dos años. Por su parte los Warriors dieron la campanada y se cargaron a Denver por un 2-4, y eso que el 20-10 David Lee estuvo lesionado. Pero tal vez hemos visto al mejor Bogut cuando más falta hacía, olvidando año y pico de problemas físicos. Aunque si la primera ronda tiene un nombre es Stephen Curry. El base ha dado el salto al siguiente nivel en estos playoff. Uno de mis jugadores favoritos de las últimas temporadas que ha sabido imponerse como líder del juego exterior con su velocidad, manejo de balón y letal tiro. Capaz de romper un partido con más de 20 puntos en un cuarto y de desquiciar a cualquier defensor, será la clave de estos Warriors. Con todo, no creo que el «efecto Curry» sea suficiente para tumbar a San Antonio. Diría 4-2 para Spurs.

 

Neil Young – Americana

Aunque la percepción del público en general es la de situar a Neil Young un escalón por debajo de nombres como Knopfler, Clapton o Springsteen, tal vez porque en los medios de comunicación españoles no se da tanto bombo a sus giras, no se puede negar que el viejo Neil Tiene una de las carreras más sólidas del rock.

Americana es un disco extraño, que ha generado división entre la crítica: genial para unos y totalmente prescindible para otros. En este disco Young decide reunirse de nuevo con los Crazy Horse (9 años después del conceptual Greendale) para lanzarse a un trabajo de arqueólogo de la música tradicional estadounidense. Para este disco se han recuperado 10 temas compuestos entre mediados del XIX y principios del XX, canciones de dominio público, temas de acampada y patio de colegio o canciones de tasca de patroneo pasadas por su filto de rock sudoroso y eléctrico. Añade a modo de cierre una versión del himno británico, que deja descolocado al oyente. ¿Puya o broma?

Y es que reconvertir en clave de rock algunos de estos temas es una tarea mastodóntica, y hay que tener el buen hacer y la clase de Neil Young para lograr un disco que pueda tomarse en serio y no una fallida broma sónica.


Empezando por el principio, el disco lo abre Oh, Susannah reconvertido a una pieza de rock cargado de distorsión casi grunge. Le sigue el clásico de acampada de boy scouts Clementine, un tema que hasta yo canté de crío en clase de inglés. Ambas canciones fueron incluidas en una película muda de 40 minutos que Young realizó conjuntamente al album, recorriendo imágenes y cuadros sobre la historia americana de principios del siglo XX. En dicho mediometraje aparecen otros dos temas del disco: Jesus’ Chariot (She’ll be coming round the mountain), que todos los fans de Futurama recordaréis como la canción que canta Bender cuando le acercan un imán, y el himno británico God Save The Queen que cierra el disco. Como otros puntos álgidos del disco diría que el blues Gallows Pole, que ya electrificaron en su día Led Zeppelin, Travel On, High Flyin’ Bird (en los sesenta blueserizada por Jefferson Airplane) y el This land is your land de Woodie Guthrie. Por medio hay algún temilla que ha quedado más flojo como Get a Job, la excesivamente alargada Tom Dula o la insulsa Wayfaring Stranger. Pero en general el resultado es un gran disco de rock: eléctrico, sucio, pesado, sudoroso, reptante

El tono general del disco es más similar al de una Jam que a una grabación de estudio tradicional, suena como si el grupo lo hubiera grabado en directo, espontáneo y salvaje. Además, fue la semilla del siguiente disco con Crazy Horse, que se publicó sólo cuatro meses después. Y es que tras 34 discos no es fácil mantenerse tan fresco como Neil.

Actualizar Ubuntu 12.10 a 13.04

Cuestión sencillita ¿quieres actualizar tu Ubuntu 12.10 al recién salido 13.04 (Raring Ringtail)? Lo normal es que el propio Ubuntu te lo pregunte, pero puede ser que no ocurra así.

Bueno, pues lo primero es tener el equipo con una conexión a internet estable. Si es así basta con este comando:

$ sudo do-release-upgrade -d
logo ubuntu
Ubuntu 13.04

Tras esto comprobará la existencia de paquetes nuevos que instalar. Los verificará todos, te dará una estimación del tiempo necesario y te pedirá confirmación. Acepta (escribe una s y pulsa enter), espera a que termine y reinicia.

Y con esto, listo calixto.

Patrón MVC y PHP

Cierto es que este mes he estado poco activo en cuestiones bloggeras, pero ya me tenéis de vuelta con el tema de los patrones de Diseño, en este caso con el popular MVC (Model/View/Controller o Modelo/Vista/Controlador).

La idea del patrón MVC es separar en tres capas los datos (model), la interfaz de usuario (view) y la lógica de negocio (controller). Esto permite una mayor reutilización de componentes, facilita la modificaciones del aspecto del programa/web sin tener que tocar el funcionamiento y simplifica el mantenimiento. Funciona de forma «triangular», es decir, cada capa envía información a una y la reciba de la otra.

El modelo sería la representación de la información y se encargaría de gestionar el acceso, adición y modificación de los mismos (operaciones CRUD). A nivel de interacción con los otros componentes enviaría a la vista los datos que tienen que ser mostrados y recibiría desde el controlador las peticiones de acceso y manipulación.

La vista sería, como su nombre indica, lo que se ve en pantalla. Además de mostrar los datos al usuario le permite interactuar con ellos. La vista recibe del modelo los datos a mostrar y permite al usuario comunicarse con el controlador a través de sus objetos.

Finalmente el controlador, trabajaría como puente entre la vista y el modelo, recibiendo las peticiones del usuario a través de la primera, realizando las labores de transformación necesarias y realizando finalmente las peticiones al modelo.

Aunque el MVC nació originalmente (allá por los años 70) para aplicaciones de escritorio, el desarrollo de la web dinámica hizo que fuera adoptado como patrón para diseñar la arquitectura de muchos sitios web. Existen múltiples frameworks para diversos lenguajes que permiten implementar el MVC a la arquitectura web. En el caso de PHP hay gran variedad, pero desde aquí vamos a destacar cuatro de ellos, todos software libre:

  • Zend Framework: Dado que Zend es la empresa con más peso en el mundo de PHP, comenzaremos con su framework. He de decir que hasta la versión 1.9 existen muchas quejas al respecto de su rendimiento, pero a partir de la versión 2 se reescribió el código para lograr aligerarlo. Está bajo licencia BSD, por lo que su uso es cercano al dominio público.
  • Symfony: Creo que a día de hoy es el framework más utilizado en PHP. Funcional, ligero, productivo y bien estructurado, es utilizado por gran número de CMS  (destacando Drupal) y por empresas potentes. Está bajo licencia MIT.
  • Codeigniter: Un veterano, al menos según mi percepción porque fue del primero del que oí hablar. Por lo que se dice tiene menos funcionalidades que Symfony o Zend, pero a su favor juega con tener una mayor flexibilidad y menor peso. Menos productivo pero más adaptable. Su licencia es GNU/GPL.
  • CakePHP: Irrumpió con mucha fuerza hace un par de años, pero parece que al final no ha logrado desbancar a Zend y Symfony del trono, en parte porque se dice que tiene una curva de aprendizaje más pronunciada. Incluye funcionalidades para casi todo y está bajo licencia MIT al igual que Symfony.

Y con estos cuatro no se acaba, hay docenas de frameworks para PHP funcionales como Yii, ZanPHP (de esto no tengo muy claro su estado, porque la web oficial a día de escribir este artículo, aparecía como un dominio caducado, pero en GitHub sigue) o KumbiaPHP. En cualquier caso, la oferta es amplia y variada en ese sentido.

NBA Playoffs 2013

Llevo desde el jueves intentando escribir esto, pero he tenido una semana cargadilla de curro y como este año hubo plazas en juego hasta el último partido, pues cosa mala. Pero al fin la temporada regular ha terminado y llega el momento de la épica, donde las estrellas tienen que demostrar en qué escalón están, donde los entrenadores tienen que salir a ganar y no a tantear. Empezamos por el este:

  • Miami – Milwaukee: Sabéis que LeBron no me cae bien, pero hasta yo reconozco que ha firmado una temporada imperial, con números de 26 puntos, 8 rebotes, 7 asistencias y un excelente trabajo en defensa. Luego hay que sumarle a Wade y Bosh para completar el triunvirato estelar, el trabajo sucio de Battier en defensa, la explosividad imprevisible de Chalmers y la llegada este año de Ray Allen, reconvertido a tirador desde el banquillo en el ocaso de su carrera pero todavía muy peligroso. Son los principales candidatos a llevarse el anillo y han sido el mejor equipo en la liga regular, firmando además la segunda mejor racha de victorias de la historia. Pero el primer escollo ante el anillo serán estos Bucks, un equipo ofensivamente muy competente pero flojo en defensa. La línea exterior formada por Brandon Jennings y Monta Ellis garantiza altas anotaciones, pero ambos pecan de demasiado individualismo, no hay juego en equipo. La llega de JJ Redick les ha dado un salto de calidad agregando su letal tiro exterior. En el interior poca cosa, un Ayón infrautilizado, los no muy brillantes Przybilla y Dalembert y un irregular Ersan Ilyasova. En rendimiento del turco es clave para estos Bucks, ya que es capaz de firmar partidos de 20-10 o de 5-5 dependiendo de cómo esté. Si uno analiza sus números es cierto que rinde más a final de temporada que en el arranque, pero no parece suficiente para inquietar a estos Heat. Mi apuesta sería 4-0 o 4-1 para Miami.
  • New York – Celtics: Dije a principio de liga que o Olajuwon había obrado milagros con este equipo o iban a ser la jaula de grillos de las últimas temporadas. En fin, que el papa este se deje de tonterías y canonice ya a Hakeem porque ha logrado hacerlo. Carmelo Anthony, que ya había hecho unos JJOO impresionantes, se ha centrado y ha dado el salto de madurez necesario para alcanzar el siguiente escalón en su juego; Máximo anotador de la NBA (28.7 puntos por partido) aderezado con 6.9 rebotes y 2.6 asistencias. Junto a él el muro defensivo de Tyson Chandler, la explosividad de Felton, el talento del que probablemente sea mejor sexto hombre JR Smith y las incógnitas de qué podrá aportar Amar’e después de un año castigado por las lesiones. Puede ser clave a nivel psicológico la veteranía de gente como Kidd o Prigioni a la hora de afrontar las eliminatorias, y el fichaje de Q-Rich no tengo muy claro qué podrá aportar de cara a las eliminatorias. Por su parte los Celtics se han visto lastrados por la baja de Rondo para toda la temporada y sus estrellas Pierce y KG tienen ya muchos años. El regreso de Jeff Green tras un año de baja por sus problemas cardíacos ha sido la mejor noticia para una plantilla que huele a fin de ciclo, pero que nunca se puede enterrar por tradición, veteranía y orgullo. Diría que un 4-2 para los Knicks
    Prigioni, sus primeros play offs NBA pero sobrado de experiencia

    .

  • Indiana – Atlanta: Los Pacers son la mejor defensa de la liga y en ataque tienen un gran equilibrio entre el juego interior, personificado sobre todo por un Roy Hibbert que no ha acabado de justificar su astronómico salario, y un exterior donde tendrán que asumir la baja de Granger y confiar en que David West y Paul George sean suficiente. Frente a ellos unos Hawks que respecto al año pasado han perdido potencial pero que todavía pueden dar un susto con un Josh Smith que acaba contrato y busca un alto salario de cara al verano y el siempre fino Al Hortford, este año sin problemas de lesiones. Además tienen a Kyle Korver saliendo del banquillo para ametrallar desde el perímetro. Puede ser una serie interesante, que por solidez debería llevarse Indiana (apuesto por el 4-2)
  • Brooklyn – Chicago: Un año sin Rose es un año duro. Al final no ha habido regreso del que fuera hace dos años el MVP más joven de la historia y tendremos que esperar a la próxima temporada. Los Nets han firmado un gran año en su traslado a Brooklyn y tienen un equipo sólido, dirigido desde el banquillo por Carlesimo y en la cancha por Deron Williams, y con el talento en el juego interior de Brook López. Por su parte los Bulls son la clase de equipo rocoso que tanto gusta a Thibodeau, que con la baja de Rose ha buscado la excelencia en Boozer, Noah y Deng, además de puntuales apariciones de Nate Robinson y Marco Belinelli para romper partidos sorpresivamente. A pesar del factor cancha y de la baja de Rose creo que Chicago se llevará la eliminatoria por un 3-4

Con esto están los cuatro cruces del Este. Parece claro que la final de conferencia debería ser Miami – New York y que los Heats van a estar intratables y plantarse en la final de la NBA con relativa comodidad.

¿Final de Conferencia?

El Oeste por su parte está así:

  • Oklahoma – Houston: El fichaje de Harden fue el más sonado de la pretemporada, firmado casi con la campaña empezada. El barbudo da el salto de sexto hombre el año pasado en OKC a estrella (26 puntos y 5 rebotes por partido) en los Rockets. Unos Rockets donde Jeremy Lin ha decepcionado (el dineral que cobra por 12 puntos y 5 asistencias con malos porcentajes, poco sólida defensa y muchas pérdidas) pero Omer Asik ha sorprendido (no es un pivot elegante, pero su aportación reboteadora ha sido clave). Oklahoma por su parte ha sido el mejor equipo del Oeste, con Durant haciendo unos números que a estas alturas sólo pueden firmar él y LeBron (28 puntos, casi 8 rebotes y 5 asistencias y por encima del 50% en tiros de campo, 40% en triples y 90 en tiros libres), con la explosividad de Westbrook como desatascador, con Kevin Martin aportando tiro desde el banquillo y con un Ibaka más sólido en defensa y más presente en ataque que el año pasado. Para mi, 4-2 para OKC.
  • San Antonio – Lakers: Dije que los Lakers no serían campeones… y tuvieron que clasificarse en el último partido. Al final lograron el séptimo puesto, pero la rotura del tendón de aquiles de Kobe les ha dejado cojos (más que al propio Kobe). Nash se ha pasado medio año out, Howard no ha sido el de Orlando y Pau ha firmado su peor temporada en la NBA, plagada de lesiones y jugando lejos del aro por capricho de un cuadriculado D’Antoni, pero en los últimos partidos ha vuelto a ser el Gasol de los mejores años. Por su parte los Spurs de Popovich son de sobra conocidos: los veteranos Ginobili, Duncan (que este año parece haber rejuvenecido) y Parker y un bloque sólido alrededor de ellos, con muchas rotaciones, con un Splitter que parecer haberse ganado al fin el status de titular y con la llegada desde china de T-Mac, que no está muy claro qué podrá aportar a estas alturas. Apostaría un 4-0 o 4-1 para San Antonio.
  • Denver – Golden State: La baja de Gallinari ha hecho mucho daño a los pupilos de Karl, que ven como su principal referente en anotación exterior se queda sin PO. El potencial de Denver está en su largo banquillo y en la intensidad con la que juegan los partidos, siendo un equipo muy físico. En frente Golden State, el equipo de los «hijos de», ya que sus principales referencias en el juego exterior son Stephen Curry (hijo de Dell Curry, y que este año ha batido el record de triples anotados en una temporada) y Klay Thompson (el hijo de Mychal Thompson). Por dentro destaca el all star David Lee (con su casi 20-10 de media por partido) y el rocoso Andrew Bogut. A pesar de que me encanta el juego abierto de los Warriors, apostaré por un 4-3 para Denver
    Marc Gasol ¿defensor del año?

    .

  • Clippers – Memphis: Otra vez estos dos equipos acaban cuarto y quinto y se ven en la primera ronda. Ambos son dos equipos sólidos y que pueden sorprender a cualquiera. Los Clippers más ofensivos, bajo la batuta de Chris Paul, con Jamal Crawford desde el banquillo, la veteranía de Billups y el portentoso físico de Griffin. Los Grizzlies tras deshacerse de OJ Mayo en pretemporada y de Rudy Gay mediada la campaña se han tornado un equipo más rocoso y menos ofensivo que el del año pasado, muy basado en el juego interior del dúo Zach Randolph – Marc Gasol y apoyados con los sólidos Allen, Conley y Prince en la línea exterior. Creo que es la serie más equilibrada de estos play off y podría ganar cualquiera. Apostaré por la rocosidad y me mojo con un 3-4 para Grizzlies.

En fin, con esto va cubierta la primera ronda. Conforme vayan avanzando las eliminatorias podemos

Sesiones en PHP: uso básico

A la hora de guardar los datos de navegación de un usuario de nuestra web el uso de sesiones se torna esencial. Las sesiones son una forma fácil y práctica de almacenar estos datos del usuario (los almacena en una cookie de sesión que gestionará el propio navegador), de forma individual, para trabajar con ellos.

La idea es simple: cuando llamamos a la función session_start() PHP comprueba si existe un ID de sesión, en caso negativo crea una sesión nueva y en caso afirmativo mantiene los datos de la creada. Con la sesión activa podremos utilizar la variable array superglobal $_SESSION para almacenar los datos que queramos relativos a la navegación. Piensa en el carrito de la compra de cualquier tienda on-line, que va almacenando los items que vas comprando hasta que haces el pago, creo que es el mejor ejemplo de cómo funcionan estas variables.

Vamos a ver un ejemplo donde creamos una sesión y almacenamos la hora de la última conexión y de la última acción:

@session_start(); //iniciamos la sessión

if(!isset($_SESSION["first_connection"])){ //comprobamos si existe la variable y si no, inicializamos
  $_SESSION["first_connection"] = time(); //asignamos a la variable la fecha de creación
}else{
  $_SESSION["lastAction"] = time(); //sobreecribimos la fecha de la última acción
}

Un ejemplo tonto, pero básico.

Para destruir una sesión, por ejemplo al pulsar un botón de logout, usaríamos la función @session_destroy(). Y para acceder al id de la misma la función @session_id() nos lo devolverá. Si queremos cargarnos una variable de la sesión sin destruir la sesión basta con usar la función unset(), más o menos como en el ejemplo que va ahora:

//AHORA QUEREMOS DEJAR DE ALMACENAR LA ÚLTIMA ACCIÓN
unset($_SESSION["lastAction"]);

Ni se os curra hacer unset($_SESSION) sin indicar variable para cargároslas todas, esto deshabilitará el registro de las variables del array y os romperá un montón la cabeza.

En fin, como siempre si queréis más ejemplos en la web de PHP podéis explorar sobre el uso de sesiones. Un saludo y que os sea provechoso.

Y dos años ya

Y ya van dos años desde que este blog empezó. Corría abril de 2011, todavía estaba estudiando DAI y gozaba de vacaciones de Semana Santa. Entonces nació Donnie Rock. El nombre tiene una historia curiosa, no sé si la he contado:

Una noche, unas semanas antes, estaba currando de pincha discos y apareció un grupo de irlandeses. Como buen informático deseoso de conseguir un trabajo primermundista (no uno sin contrato y por menos del salario mínimo, como los que ofrecen en este país) intenté ponerme a ligar con una irlandesa, la cual no era capaz de pronunciar bien mi nombre (tampoco es que yo pronunciara muy bien su apellido), por lo que le dije «just call me Donnie». Lo de «Rock» fue por poner algo fonéticamente similar a mi apellido, y que sonara a apodo de estrella del Sunset venida a menos.

En todo caso, ya hace dos años desde que creé este blog para financiar mis deudas de juego… ah, no, eso era Matt Groening con los Simpson… no, en mi caso fue porque el haber dejado de tocar en Nightcrawler me dejaba mucho tiempo libre. Es curioso como ha pasado de 4-5 visitas al día hasta un total, tras dos años, de más de 245.000 provenientes de 105 países distintos (aunque, como es lógico el top-10 está formado por países de habla hispana), como también lo es que al principio fuera un blog sobre rock and roll y baloncesto y ahora más de la mitad de los artículos sean sobre informática.

 

En fin, muchas gracias a todos los lectores por estos dos años de seguimiento. No temáis, hay temas para rato (aunque lleve unos días escribiendo poco, pero es que ando liadillo con varios proyectos y no me queda mucho tiempo)

Además, esta semana llegan los play-off NBA y en nada la Final Four de la Euroliga y los de la ACB… así que ya sabéis lo que toca (aunque al final casi siempre fallo mis pronósticos).

Instalar HexChat en Ubuntu/Mint

Llevo diez días sin escribir nada nuevo… en casa dejé dos artículos de música a medio hacer, pero estoy liadillo con varios proyectos (y muy viciado a un juego del que pronto os hablaré en este blog) y he tenido esto abandonado, aunque por suerte el flujo de visitas sigue constante.

¿Echáis de menos el #IRC? ¿Aquellas primeras troleadas internetianas usando este sistema de chat? ¿Simular ser una tía impresionante para putear a un colega? ¿Discutir a las cinco de la mañana si los Blazers de Adelman habrían sido campeones de haber contado con Petrovic y Sabonis? ¿Comentar la pelea de Shaq vs Barkley? ¿Discutir si es más facha Ted Nugent o Varg Vikerness? En fin, pues con todo todavía hay gente que lo usa (la mayoría salidorros en busca de cibersexo, tampoco nos engañemos). De hecho hoy tuve que usarlo (después de 10 años) por lo que busqué información y acabé llegando a este software.

En fin, si eres usuario de Linux apuesto a que usabas XChat como cliente de #IRC, y si ahora mismo quieres instalarlo estarás viendo que lleva sin actualizaciones desde 2010… Tranquilo, HexChat (que descubrí a través de este artículo brasileño en twitter) es la solución que necesitas. Un cliente IRC libre, desarrollado en Python, con ciertas funcionalidades propias, una interfaz muy limpia y personalizable, permite el uso de scripts tanto de Perl como de Python para la administración, está traducido a varios idiomas y existen binarios tanto para Windows como para Unix/Linux.

El proceso de instalación desde Ubuntu o Mint es fácil, basta tres comandos:

#primero añadimos el repositorio del fabricante:

sudo add-apt-repository ppa:gwendal-lebihan-dev/hexchat-stable -y

#sigue la clásica actualización

sudo apt-get update

#e instalamos

sudo apt-get install hexchat -y

#en el ejemplo de la web brasileña lo hacen todo concatenando los tres comandos:

sudo add-apt-repository ppa:gwendal-lebihan-dev/hexchat-stable -y && sudo apt-get update && sudo apt-get install hexchat -y

En fin, con esto ya tienes tu cliente de IRC nuevecito y actualizado en tu Linux. Podéis visitar la web de los creadores por si tenéis dudas.