Mostrando entradas con la etiqueta Personal. Mostrar todas las entradas
Mostrando entradas con la etiqueta Personal. Mostrar todas las entradas

Hacía mucho tiempo, demasiado, que no me asomaba por aquí. Los motivos son obvios, si has leído mi anterior entrada entenderás que... en fin, que soy un sentimentaloide, lo sé!!

El caso es que aquí estoy de nuevo, no con esperanza de reflotar este blog, porque hace mucho que esa no es mi intención, sino para celebrar en la que fue durante mucho tiempo ES mi casa, que Plataica cumple su primer añito de vida...

¿Qué qué es Plataica, te preguntas? Bueno, pues que sepas que tú eres la primera razón por la que celebrar en este blog el aniversario, y no en el propio blog de Plataica.

Verás, te lo resumo... hace algo más de un año publicaba el siguiente hilo en Twitter:


En ese momento hacía 3 meses que habíamos cerrado Pirendo "oficialmente", y me encontraba de nuevo en Estella, Navarra. Tras meditarlo mucho, llevaba varias semanas dándole vueltas a la idea de volver a trabajar con la plata, con mis manos que es lo que realmente hace que me sienta realizado... El caso es que aprovechando las herramientas y algo de material que aún conservaba de mi primera etapa de artesano con Puy, y por supuesto contando a cada momento con su apoyo incondicional, decidimos juntos que volvería a liarme la manta a la cabeza para volver a ganarme las papas con el trabajo de la plata.

Y así (versión super-reducida) nació Plataica.


Así que, hermanos y hermanas mías, nos reunimos hoy aquí para celebrar el primer añito de vida de Plataica.

Durante este año no he parado de aprender, eso es lo que más me gusta de dedicarme a esto y de hacerlo de esta manera. Poder dedicarle el tiempo necesario a cada idea, problema o situación, y además hacerlo con la complicidad y el beneplácito de tu apuesto, inteligente, simpático, y de muy buen ver jefe, no tiene precio. Sí, es lo que tiene ser tu propio jefe, o te quieres o te odias 😜.

Han sido muchísimas las sorpresas que me he llevado con algunas de las reacciones de amistades, sobre todo de compañeros y compañeras de mi anterior entorno, mucho más tecnológico y "on-line". Y debo decir que no todas placenteras y gratificantes. Desde quien directamente ha dejado de seguirme en Twitter-FB-IG (y supongo que también borrado de la agenda), hasta quien me ignora en las redes cuando antes suplicaba en privado una ayudita o un retweet.

En fin, a esos que les den, ellos se lo pierden. La verdad es que han sido muchas las personas que de una u otra manera han contribuido en la medida de sus posibilidades a que esto siga adelante. No quiero nombrar específicamente a nadie, porque seguro que me olvidaría de alguien, pero desde blogs que han enlazado la tienda online, alguna youtuber muy muy geek que se ha convertido en fan, que nos sacan en sus libros o que nos llevan de paseo por otros mundos.

Y tantas otras que anónimamente, o no, han puesto su granito de arena para que cada día me despierte con la ilusión desbordada y las fuerzas al 200%. Ellas saben quienes son.

A todas estas personas humanas, GRACIAS, GRACIAS Y GRACIAS, escritas cada una de las veces con las mano en el corazón y una lagrimilla a punto de saltar.

Y gracias por la confianza, los encargos, las ideas, las críticas y los follows, los likes y los RTs.

Este nuevo año plataiquero, o "la segunda vuelta", como yo lo llamo, se presenta prometedor:

Acabo de lanzar la última (por el momento) colección de Plataica, las #NJoyas, basadas en la última novela de Roberto López-Herrero "N mundos. Mundo Pequeño" que además, aunque ya está a la venta online y en librerías de barrio, se presenta esta misma noche.

Por otro lado, San Fermín está a la vuelta de la esquina, y voy a llenar la tienda del amigo Mikel Urmenteta, Sanferfood de toritos y corredores de plata...

Y además, en breve una nueva colección estará únicamente disponible a la venta en G.thyka Estella, con diseños exclusivos diseñados en colaboración con la propietaria.

Y por supuesto, en agosto la Semana medieval de Estella Lizarra, en la que espero, al menos, repetir la audiencia del año pasado:


A todo esto hay que sumarle algunos otros proyectos e ideas que aún están fraguando. Y por supuesto, seguir manteniendo y subiendo nuevas piezas a la tienda Online de Plataica que es lo que más me gusta.

En fin, que eso, que buaf, no? yaaaashhh!!! 😂😂😂



Llevo días dándole vueltas a la cabeza pensando si debía escribir o no estas líneas. Al fin y al cabo nunca he sido muy proclive a escribir sobre temas excesivamente personales en este blog ni en ninguna de mis redes. Pero esta vez es distinto.
Quizás por eso me he decidido a buscar fuerzas de donde no las hay y empezar con este texto.

El pasado 20 de abril nuestro compañero Moore falleció a causa de un tumor en el estómago que no habíamos detectado y que en cuestión de 3 horas hizo que su luz se fuera apagando poco a poco hasta no brillar más.
Miento.
No fue el tumor quien realmente se lo llevó, fuimos nosotros quienes egoístamente decidimos ahorrarle el dolor y sufrimiento en el que se iban a convertir sus últimas horas. Aún hoy dudo sobre si tomamos la decisión adecuada, creo que jamás lo sabré ni conseguiré soltar el peso de esa incertidumbre. Pero no me arrepiento. Moore era un perro fuerte y feliz, no merecía acabar entre dolores y sufrimiento.

Llegó a nuestras vidas hace ya 10 años, allá por mayo de 2008 y fue el mayor regalo que jamás nadie me había hecho. Gracias Puy por permitirme estos años de felicidad.
Moore nació el 5 de marzo de 2008, justo 2 meses antes de llegar a nuestras vidas, y se llamaba en principio "Terry", pero siguiendo la línea que habíamos empezado con nuestro amo y señor Benvenuto Cellini, decidimos llamarle Henry Moore, "Mur" para los amigos...
Siempre cuento que Moore tenía unos 20 hermanos y dos madres, porque cuando fuimos a buscarlo, el criador nos contó que había "juntado" a su padre con dos perras que parieron a la vez y se habían mezclado los cachorros, con lo que nunca supo a cuál de las dos hembras correspondía.

Me gustaría señalar aquí que adquirimos a Moore mediante un criador de perros de caza, no lo rescatamos de ningún lado, ni fue un perro abandonado, pero de alguna manera siempre he pensado que "lo rescatamos" de una vida dura y miserable como cazador. Aún me atormentan las imágenes de perros hacinados en jaulas y colgados de las ramas en los bosques que he llegado a encontrarme en más de una caminata. Conozco cazadores muy cariñosos y responsables con sus perros, pero por desgracia no todos son así.

Cuando nos acercamos a un pequeño recinto lleno de pequeños seres peludos y alborotados, el criador metió la mano y sacó, tirando por la piel del pescuezo, una pequeña bolita blanca con manchas marrones y negras, todo amor y orejas, que nada más mirarnos nos arrebató el corazón.
Tengo cientos de imágenes almacenadas en mi memoria de esos días, pero muy pocas imágenes reales. Siempre he sido una persona que prefiere disfrutar al 200% de los mejores momentos y olvido dejarlos inmortalizados, soy un desastre.
Lo primero que hizo Moore al llegar a casa, tras la correspondiente presentación y aceptación por parte de Cellini (no le costó mucho, cuando aquello aún tenía sólo 3-4 años), fue aprender cuál era "su sitio".
Recuerdo que Puy y yo comimos (o quizás era una cena?) ese día mirando todo el rato a aquel peluche que había llegado a nuestras vidas. Nos tenía hipnotizados. No sé qué daban en la tele ni nos importaba, tan sólo podíamos sonreír mientras veíamos cómo Moore había decidido que tooooodos los juguetes que Cellini tenía repartidos por la casa eran ahora suyos, y que ahora buscaba y llevaba al que a partir de aquel día sería "su sitio".
Moore no era perfecto. Era un gran perro, sin duda el mejor que tendré nunca, y no puedo expresar con palabras lo orgulloso que estoy de él. Pero siempre tuvo miedo a la gente desconocida. Jamás sufrió maltratos de ningún tipo, pero en algún momento, seguramente viviendo ya en casa, se llevó algún susto que lo dejó un pelín traumatizado para toda la vida (por las fechas en que Moore llegó a casa siempre he culpado a las fiestas del pueblo, los cohetes, voladores y fuegos artificiales, a las cuadrillas de borrachines por la calle... A nosotros por exponerlo a eso.). Bien es verdad que en los últimos años, sobre todo después de estar viviendo en Madrid, este "trauma" había remitido en gran medida, pero aún hoy en día se mostraba receloso cuando nos cruzábamos con algún desconocido.
Tardamos mucho en castrarle, lo hicimos ya con 9 años porque en palabras del veterinario "tiene la próstata como un balón de rugby", y el proceso haría que ese problema remitiese. No lo hicimos antes por ninguna razón especial. Era un perro dócil, sumiso, sin especial interés por las hembras y con buena salud. Pero debido a su edad algo fue mal y el último año sufrió de "incontinencias" que solucionamos con unas gotas de medicamento en cada comida. Nada grave.

Me gustaría contarles aquí miles de anécdotas que vivimos con nuestro Moore, me encantaría hacerles partícipes del amor que desprendía mi pequeño hermanito, pero jamás podría acercarme siquiera a una ínfima parte de la luz que transmitía.
Sí, sé que tiendo a idealizarlo, y lo que me queda...
Para mi Moore era algo más que un compañero o un amigo. Era mi mejor amigo, y sé que puedo decirlo sin que nadie se ofenda. Moore nunca fue un "perrihijo" como dicen por ahí. Nunca lo consideré una "personita" y siempre estuvo en su lugar. Pero era mi hermanito. No hay momento feliz o amargo en estos últimos 10 años que no haya compartido con él. Ni lágrima que no haya intentado lamer. Ni sonrisa que no haya celebrado con ese rabo que movía como un loco....

Pero se fue de repente. No puedo culpar ni enfadarme con nadie. No puedo consolarme pensando que "fue culpa de...". Pero tampoco puedo sacarlo de mi cabeza, de verlo aparecer por la puerta cada vez que miro al suelo, de esperar a despertarme de esta mierda de pesadilla o de que en algún momento alguien me diga que ha sido todo mentira...
No consigo pensar bien si mi corazón está oscuro y triste, no puedo dejar de pensar que ya no haremos juntos todas esas cosas que había imaginado, que ya no estará en mi futuro, que ahora tengo que construir un futuro nuevo en el que no va a estar él.
Me había hecho muuuchas ilusiones, ya había pensado los trucos nuevos que quería enseñarle cuando llegase el momento. Moore formaba parte de nuestra familia y jamás se me ocurrió planear un futuro sin él. Ahora...

Creo que Cellini se huele algo. Estos días ha estado más "hablador" que de costumbre, y maúlla a veces sin mucho sentido y sin buscar nada en concreto. Incluso parece más cariñoso. No sé cómo procesan la muerte los gatos. Igual ni se ha enterado y espera que algún día vuelva de la guardería. Ojalá sea eso.

Nosotros ya nos hemos despedido de él. Si es que eso es posible de alguna manera. Sus cenizas vuelan ahora junto a los majestuosos buitres leonados del "Balcón de Pilatos" en Navarra, cerca de Estella. Un paraje espectacular en el que podrá oler y rastrear sin parar, que era lo que le hacía más feliz.
O quizás Moore ni siquiera esté allí ya. Estos días he reflexionado muchísimo sobre la vida y la muerte, sobre lo que habrá después de todo esto si es que hay algo. Sea como sea sé que si su energía sigue fluyendo por el universo, en algún momento volveremos a encontrarnos. Puede que esa vez sea yo el perro y él el animal.

En cualquier caso sólo tengo palabras de agradecimiento para Moore, por tantos años de fidelidad infinita, de amor sin límites, sin condiciones. Dicen por ahí que los perros acaban pareciéndose a sus dueños, pero mi aspiración era llegar a parecerme un poco a él interiormente.
No puedo sacarme de la cabeza el último paseo que dimos juntos y cómo trotaba a mi lado como si fuera el día más feliz de su vida. No puedo olvidar cómo llegó a casa y estaba feliz y contento porque Puy también estaba allí, porque su manada estaba reunida. Ese brillo que tenía en los ojos me acompañará por el resto de mis días.
La memoria es un monstruo, evoca recuerdos por voluntad propia. Crees que tienes un recuerdo, pero es él quien te tiene a ti. Por eso no quiero olvidarlo, pero necesito dejar de pensar en él. Necesito retomar mi vida, decirle adiós, mirar hacia delante.
No sé cómo hacerlo, pero sacar lo que llevo dentro seguro que me ayudará. De ahí estas líneas, este homenaje al que ha sido mi fiel hermano durante 10 años. También he creado un blog, un sitio donde iré recopilando todas sus fotos y vídeos a medida que las vaya encontrando, un sitio sin enlaces ni widgets, sólo con sus fotos. Un sitio que no compartiré, que será sólo nuestro, de nuestra manada. Un sitio al que recurriré cada vez que la memoria me ataque, que ilustrará mis lágrimas y espero ponga una sonrisa en mi rostro.

También hemos donados sus cosas. Era tremendamente doloroso ver sus mantas, sus juguetes, su cuenco... Y no pudimos pensar en mejor homenaje a nuestro hermano que donar sus cosas a quien más lo pudiera necesitar.

Están ya en la Asociación TXIKAS DE ETXAURI, que trabaja por cada perro abandonado en el Centro de Protección Animal de Etxauri (Navarra), donde sabemos que muchos otros perros podrán disfrutar aún por mucho tiempo de sus cosas. Si también quieres echar una mano a esta asociación, su número de cuenta es el siguiente:

BANCO SABADELL 0081 7547 75 0001234830 Iban ES87 0081 7547 75 0001234830 BIC BSA BESBB -ASOCIACIÓN TXIKAS DE ETXAURI

Te aseguro que se trata de un grupo majísimo de personas muy muy comprometidas con esta labor totalmente altruista. Tras dejar las cosas de Moore intentamos dar una vuelta por el local y ver a los otros peludos, pero el corazón se nos partía de impotencia y tristeza, así que nos fuimos enseguida. Quién pudiera hacer algo más por ellos...

Creo que jamás le diré adiós del todo a Moore. Una parte de él siempre estará conmigo. Siempre me sobrarán dos o más horas al día, las que pasábamos solos los dos paseando y arreglando nuestro mundo a cada paso. Cómo me tranquilizaba, cómo sabía cuándo necesitaba más que nada sus caricias y su tierna mirada.. cómo me conocía.

No sabría qué más contar sobre Moore sin extenderme demasiado... Me hubiera gustado pasar un día más con él, dejarle comer sin límite y subirse a donde quisiera, permitirle dormir en nuestra cama, llevarlo a pasear sin correa hasta las tantas de la madrugada una vez más, como hacíamos en Madrid... Decirle lo bien que lo había hecho y lo buen perro que era, lo orgullosos que estábamos de él, lo mucho que le íbamos a echar de menos. Que esté donde esté ahora me espere, que lo quería mucho, muchísimo. Que siempre será mi perrito pequeño.
No sé cómo voy a seguir ahora, me cuesta sentarme a trabajar si no está él a mi lado. He cambiado los muebles de sitio con la esperanza de no ir a buscarlo con la mirada cada minuto. Ahora llega Semana Santa y tengo la esperanza de poder distraerme un poco y poco a poco volver a la carga. Pero tengo que ser sincero, me está costando. No he sido capaz de poner música, no quiero recordarle cada vez que suene una canción. Espero que nadie tenga el valor para decirme "era sólo un perro", porque no sabría qué hacerle...

Aunque también sé que gracias a la gente maravillosa que tengo a mi alrededor lo conseguiré. Gracias Puy por estar siempre, siempre, siempre ahí, sé que todo esto está siendo muy doloroso para ti. Pero juntos podemos con todo, ya lo sabes.

Y a ti que lees estas líneas, corre a darle un beso de nuestra parte a tu peludo preferido, o a todos si tienes más de uno, diles que una vez hubo un beagle blanco con manchas negras y marrones que habría sido su mejor amigo.

A mi ya no me quedan palabras ni lágrimas. Estas líneas han sido las más difíciles de escribir de mi vida y sólo han pretendido ser un pequeño homenaje a un amigo. Si has leído hasta aquí, gracias.
Y a ti, Moore, gracias por todo, te quiero bichito.

De todos es sabido (y si no ya te estás enterando) que en el interior de este pequeño escritor de las redes sociales llamado Iván, reside un estudiantes de Bellas Artes, especialista en Fundición Artística y además "manchatelas" desde que era chiquitito.

Si además me sigues en las redes, sabrás que en estos momentos me encuentro en un periodo de... no sé cómo llamarlo, ¿redescubrimiento? ¿reinvención? ¿barbecho? El caso es que el dibujo y la pintura siempre han representado para mi una válvula de escape, una manera de alejarme para ver las cosas con perspectiva. Realmente hacer cualquier cosa con las manos me produce ese efecto.

Ahora necesito recurrir a esa "terapia" y me he decidido por dar salida a una idea que andaba rondándome por la cabeza desde hacía tiempo, una pequeña serie de dibujos titulada "La evolución estaba equivocada" compuesta por algunas ilustraciones que iré "presentando" aquí a razón de uno por semana.

La primera de ellas:


La ilustración está realizada digitalmente utilizando una tableta gráfica Wacom Intuos Draw y el programa ArtRage 5.

Sé que no es una maravilla de obra, de hecho me he ido encontrando con algunos problemas que espero corregir en la siguiente, como es el tamaño de la propia ilustración, la definición y la adaptación a un medio que es en parte nuevo para mi. Me explico, desde hace años hago algunos pinitos dibujando digitalmente, pero hasta ahora había utilizado el iPad (iPad 1, soy así de cutre, pero aún tira... más o menos) y alguna tableta para sobremesa de dudosa calidad, con lo que nunca había estado mínimamente satisfecho con los resultados.

Ahora tampoco es que esté dando saltos de contento, pero quizás la búsqueda de abstracción de mi momento actual, como decía antes, está logrando que me obligue a recuperar parte de quien fui en algún momento, haciendo que se diluya, en parte, el miedo a la exposición. Yo me entiendo.

Como decía, soy consciente de los problemas del dibujo, pero en este ejercicio de autocrítica tengo tres poderosas razones para hacer pública la serie:
- La primera es porque quiero.
- La segunda es porque puedo.
- La tercera es porque como decía el amigo @CalvoconBarba en su blog, hay que atreverse a cagarla, pensamiento con el que cada día estoy más de acuerdo y creo que estoy demostrando desde hace un tiempo.

En fin, mucho que mejorar y aprender, pero ganas no faltan! Estaré encantado de recibir cualquier crítica (constructiva, eh!) u opinión a través de las redes, nos leemos!!


Ya sabrás, si me sigues en Twitter, que desde hace algunos años hago mis pinitos con las extensiones de Google Chrome, sobre todo resolviendo mis propias necesidades a la hora de trabajar online.
Sin embargo, hasta el momento jamás las había hecho públicas, principalmente porque pensaba que cubrían carencias propias y no les daba la debida importancia. Pero he decidido que es el momento de  ir más allá que algún simple Tweet y contar un poco más sobre algunas de ellas.
En esta ocasión me gustaría hablar de "Delete this site Cookies", una de mis primeras incursiones en las extensiones y que probablemente me habría ahorrado ya algunas horas (si sumamos cic a clic) desde que la hice pública y la instalé en mis equipos.


La "misión" de la extensión es tan sencilla como su propio nombre indica, borrar las cookies del sitio que estás visitando en este momento.
Habrás observado que la extensión no tiene página propia de aterrizaje que sabes que es algo característico de mis proyectos,  pero es que allá por 2015 no se me ocurría ningún nombre de dominio apropiado, y la verdad sigue sin ocurrírseme. Además, la extensión es taaaan sencilla que no sé si merece la pena ¿Qué opinas?

En fin, sigo contando más cosas.

La necesidad en este caso surgió porque @Jmchia y un servidor nos encontrábamos en pleno desarrollo de algunas características de Pirendo que requerían que cada dos por tres el que suscribe tuviese que borrar las cookies del navegador y comprobar algunas nuevas prestaciones. En fin, cosas de programadores, recarga, recarga, borra cookies, recarga y vuelve a borrar, ahora a la pata coja...
Al final a Jose se le ocurrió que si utilizaba un marcador para el navegador que al pulsarlo me borrase únicamente la cookie del sitio que estabas visitando, ahorraríamos tiempo. Además me evitaría el tener que estar restableciendo contraseñas en todos los servicios en que estaba logueado y que se habían cerrado al borrar todas las cookies del navegador (era lo más rápido).
Como por aquel entonces yo comenzaba a interesarme por las extensiones, decidí transformar ese código inicialmente preparado como marcador por Jose en esta extensión. Sip, by the face, lo que hay, para eso están los amigos! 😘

El funcionamiento es muy muy sencillo, desde la Chrome Web Store instalas la extensión en tu navegador Chrome:
Disponible en la Chrome Web Store
A continuación sólo tienes que pulsar el botón de la extensión en tu navegador cuando necesites borrar las cookies de la página que estás visitando:


Para confirmar que la cookie se ha borrado, se desplegará un pequeño "pop-up". Ahora sólo tienes que recargar la página que estabas visitando y será como si no hubieras pasado por allí:


En el tiempo que lleva online la extensión ha acumulado 487 usuarios, supongo que porque los programadores son unos pesados y será porque al fina es una pequeña ayuda para aquellos que necesitan recargar permanentemente una página y eliminar sus cookies para ver resultado de actualizados de nuevos diseños, nuevos elementos agregados, etc.

"Delete this site Cookies" es una extensión para Google Chrome sin pretensiones, como dicen por ahí, que "hace exactamente lo que dice", muy sencilla de instalar y utilizar.
Disponible en la Chrome Web Store
Si la instalas y te parece útil por favor no te olvides de puntuarla positivamente y dejar un comentario en la Chrome Web Store!

Como bien sabes estoy "reviviendo" este blog, hacía cerca de mil años (año arriba, año abajo) que no publicaba nuevas entradas y me he encontrado con algunas cosas que han cambiado. Entre ellas, que TwitterFeed cerraba sus puertas en noviembre del 2016 y que FeedBurner se ha convertido en una especie de zombie del que algunos hemos huido. Con lo que en mi cuenta ¿personal? @Ivan_rg, no se estaban lanzando automáticamente los Tweets cuando publicaba un nuevo artículo en este blog. Putadilla...

Ante esto he buscado diferentes alternativas, por supuesto he pensado en las míticas Dlvr.it, IFTTT o Hootsuite, incluso en alguna otra menos conocida, pero al final me he decidido por utilizar los recursos de Google y montarme el tinglado por mi mismo. Así que hoy comparto este mini-tutorial para crear un automatizador que envíe un Tweet cada vez que haya contenido nuevo en tu blog.

  1. Crea tu propia aplicación de Twitter.

    Esta parte es muy sencilla, como usuario de Twitter, puedes crear tus propias aplicaciones para utilizar los recursos de la plataforma, así que vamos a crear una con la cuenta de Twitter que quieres que envíe los tweets (si no has creado una aplicación anteriormente).
    Logueado con la cuenta de Twitter entra en Twitter Application Management y crea una nueva aplicación:

    Una vez creada, debes autorizar tu cuenta para que utilice la aplicación:


     Ahora tan sólo debes apuntar los siguientes códigos que utilizaremos más adelante:
    • Consumer Key (API Key).
    • Consumer Secret (API Secret).
    • Access Token.
    • Access Token Secret.

  2. Trabajando con Google Apps Script.

    En tu cuenta de Google Drive crea un nuevo archivo de Google Apps Script y ponle nombre, a continuación crea un nuevo archivo de secuencia de comandos y llámalo "OAuth":


    Copia y pega en OAuth.gs el siguiente código sin realizar cambios:


    /**
     * Adds a OAuth1 object to the global scope. This can be used as follows:
     *
     * var urlFetch = OAuth1.withAccessToken(consumerKey, consumerSecret,
     *     accessToken, accessSecret);
     * var response = urlFetch.fetch(url, params, options);
     */
    (function(scope) {
      /**
       * Creates an object to provide OAuth1-based requests to API resources.
       * @param {string} consumerKey
       * @param {string} consumerSecret
       * @param {string} accessToken
       * @param {string} accessSecret
       * @constructor
       */
      function OAuth1UrlFetchApp(
          consumerKey, consumerSecret, accessToken, accessSecret) {
        this.consumerKey_ = consumerKey;
        this.consumerSecret_ = consumerSecret;
        this.accessToken_ = accessToken;
        this.accessSecret_ = accessSecret;
      }

      /**
       * Sends a signed OAuth 1.0 request.
       * @param {string} url The URL of the API resource.
       * @param {?Object.<string>=} opt_params Map of parameters for the URL.
       * @param {?Object.<string>=} opt_options Options for passing to UrlFetchApp
       *     for example, to set the method to POST, or to include a form body.
       * @return {?Object} The resulting object on success, or null if a failure.
       */
      OAuth1UrlFetchApp.prototype.fetch = function(url, opt_params, opt_options) {
        var oauthParams = {
          'oauth_consumer_key': this.consumerKey_,
          'oauth_timestamp': parseInt(new Date().getTime() / 1000),
          'oauth_nonce': this.generateNonce_(),
          'oauth_version': '1.0',
          'oauth_token': this.accessToken_,
          'oauth_signature_method': 'HMAC-SHA1'
        };

        var method = 'GET';
        if (opt_options && opt_options.method) {
          method = opt_options.method;
        }
        if (opt_options && opt_options.payload) {
          var formPayload = opt_options.payload;
        }

        var requestString =
            this.generateRequestString_(oauthParams, opt_params, formPayload);
        var signatureBaseString =
            this.generateSignatureBaseString_(method, url, requestString);
        var signature = Utilities.computeHmacSignature(
            Utilities.MacAlgorithm.HMAC_SHA_1, signatureBaseString,
            this.getSigningKey_());
        var b64signature = Utilities.base64Encode(signature);

        oauthParams['oauth_signature'] = this.escape_(b64signature);
        var fetchOptions = opt_options || {};
        fetchOptions['headers'] = {
          Authorization: this.generateAuthorizationHeader_(oauthParams)
        };
        if (fetchOptions.payload) {
          fetchOptions.payload = this.escapeForm_(fetchOptions.payload);
        }
        return UrlFetchApp.fetch(
            this.joinUrlToParams_(url, opt_params), fetchOptions);
      };

      /**
       * Concatenates request URL to parameters to form a single string.
       * @param {string} url The URL of the resource.
       * @param {?Object.<string>=} opt_params Optional key/value map of parameters.
       * @return {string} The full path built out with parameters.
       */
      OAuth1UrlFetchApp.prototype.joinUrlToParams_ = function(url, opt_params) {
        if (!opt_params) {
          return url;
        }
        var paramKeys = Object.keys(opt_params);
        var paramList = [];
        for (var i = 0, paramKey; paramKey = paramKeys[i]; i++) {
          paramList.push([paramKey, opt_params[paramKey]].join('='));
        }
        return url + '?' + paramList.join('&');
      };

      /**
       * Generates a random nonce for use in the OAuth request.
       * @return {string} A random string.
       */
      OAuth1UrlFetchApp.prototype.generateNonce_ = function() {
        return Utilities
            .base64Encode(Utilities.computeDigest(
                Utilities.DigestAlgorithm.SHA_1,
                parseInt(Math.floor(Math.random() * 10000))))
            .replace(/[\/=_+]/g, '');
      };

      /**
       * Creates a properly-formatted string from a map of key/values from a form
       * post.
       * @param {!Object.<string>} payload Map of key/values.
       * @return {string} The formatted string for the body of the POST message.
       */
      OAuth1UrlFetchApp.prototype.escapeForm_ = function(payload) {
        var escaped = [];
        var keys = Object.keys(payload);
        for (var i = 0, key; key = keys[i]; i++) {
          escaped.push([this.escape_(key), this.escape_(payload[key])].join('='));
        }
        return escaped.join('&');
      };

      /**
       * Returns a percent-escaped string for use with OAuth. Note that
       * encodeURIComponent is not sufficient for this as the Twitter API expects
       * characters such as exclamation-mark to be encoded. See:
       *     https://dev.twitter.com/discussions/12378
       * @param {string} str The string to be escaped.
       * @return {string} The escaped string.
       */
      OAuth1UrlFetchApp.prototype.escape_ = function(str) {
        return encodeURIComponent(str).replace(/[!*()']/g, function(v) {
          return '%' + v.charCodeAt().toString(16);
        });
      };

      /**
       * Generates the Authorization header using the OAuth parameters and
       * calculated signature.
       * @param {!Object} oauthParams A map of the required OAuth parameters. See:
       *     https://dev.twitter.com/oauth/overview/authorizing-requests
       * @return {string} An Authorization header value for use in HTTP requests.
       */
      OAuth1UrlFetchApp.prototype.generateAuthorizationHeader_ = function(
          oauthParams) {
        var params = [];
        var keys = Object.keys(oauthParams).sort();
        for (var i = 0, key; key = keys[i]; i++) {
          params.push(key + '="' + oauthParams[key] + '"');
        }
        return 'OAuth ' + params.join(', ');
      };

      /**
       * Generates the signature string for the request.
       * @param {string} method The HTTP method e.g. GET, POST
       * @param {string} The URL.
       * @param {string} requestString The string representing the parameters to the
       *     API call as constructed by generateRequestString.
       * @return {string} The signature base string. See:
       *     https://dev.twitter.com/oauth/overview/creating-signatures
       */
      OAuth1UrlFetchApp.prototype.generateSignatureBaseString_ = function(
          method, url, requestString) {
        return [method, this.escape_(url), this.escape_(requestString)].join('&');
      };

      /**
       * Generates the key for signing the OAuth request
       * @return {string} The signing key.
       */
      OAuth1UrlFetchApp.prototype.getSigningKey_ = function() {
        return this.escape_(this.consumerSecret_) + '&' +
            this.escape_(this.accessSecret_);
      };

      /**
       * Generates the request string for signing, as used to produce a signature
       * for the Authorization header. see:
       * https://dev.twitter.com/oauth/overview/creating-signatures
       * @param {!Object} oauthParams The required OAuth parameters for the request,
       *     see: https://dev.twitter.com/oauth/overview/authorizing-requests
       * @param {?Object=} opt_params Optional parameters specified as part of the
       *     request, in map form, for example to specify /path?a=b&c=d&e=f... etc
       * @param {?Object=} opt_formPayload Optional mapping of pairs used in a form
       *     as part of a POST request.
       * @return {string} The request string
       */
      OAuth1UrlFetchApp.prototype.generateRequestString_ = function(
          oauthParams, opt_params, opt_formPayload) {
        var requestParams = {};
        var requestPath = [];
        for (var i = 0; i < arguments.length; i++) {
          var mapping = arguments[i];
          if (mapping) {
            var paramKeys = Object.keys(mapping);
            for (var j = 0, paramKey; paramKey = paramKeys[j]; j++) {
              requestParams[paramKey] = mapping[paramKey];
            }
          }
        }
        var requestKeys = Object.keys(requestParams);
        requestKeys.sort();

        for (var m = 0, requestKey; requestKey = requestKeys[m]; m++) {
          requestPath.push([
            this.escape_(requestKey), this.escape_(requestParams[requestKey])
          ].join('='));
        }
        return requestPath.join('&');
      };

      /**
       * Builds a OAuth1UrlFetchApp object based on supplied access token (and other
       * parameters.
       * @param {string} consumerKey
       * @param {string} consumerSecret
       * @param {string} accessToken
       * @param {string} accessSecret
       * @return {!OAuth1UrlFetchApp}
       */
      function withAccessToken(
          consumerKey, consumerSecret, accessToken, accessSecret) {
        return new OAuth1UrlFetchApp(
            consumerKey, consumerSecret, accessToken, accessSecret);
      }

      scope.OAuth1 = {withAccessToken: withAccessToken};
    })(this);

    Ahora edita el archivo Código.gs y copia y pega en él el siguiente código:


    function LanzaBot(){
      //AÑADE AQUÍ LA DIRECCIÓN URL DEL FEED TU BLOG
      var res = UrlFetchApp.fetch('http://www.twittboy.com/feeds/posts/default?alt=rss').getContentText(); 
      var result = revisaFeed(res);
      return;
    }
    var revisaFeed = function(res){
      var document = XmlService.parse(res);
      var root = document.getRootElement();
      var items = document.getRootElement().getChild('channel').getChildren('item');
        try {   
      var titulo =   items[0].getChild('title').getText();
      var link =   items[0].getChild('link').getText();
      var props = PropertiesService.getScriptProperties();
      var desdeID = props.getProperty("DESDE_POST_ID"); 
      var cero = Utilities.base64Encode(Utilities.computeDigest(Utilities.DigestAlgorithm.MD2, items[0].getChild('guid').getText()));   
      props.setProperty("DESDE_POST_ID", cero);
      if (desdeID==cero) {
        Logger.log("IDs Iguales, último twitteado: " + titulo + " Enlace: " + link );
      } else {
        Logger.log("NUEVO TWITTEADO!!: " + titulo + " Enlace: " + link ); 
        // ELIGE EL TEXTO QUE PRECEDE AL TÍTULO O DÉJALO VACÍO
      var tweet =  'Nuevo artículo en mi blog! ' + titulo + ' ' + link; 
      mandaTweet(tweet);
      }
     } catch (e) {
          Logger.log(e);
        }
    }

    function mandaTweet(tweet) {
      // PON TUS PROPIAS CLAVES
      var TWITTER_CONSUMER_KEY = "TWITTER_CONSUMER_KEY";
      var TWITTER_CONSUMER_SECRET = "TWITTER_CONSUMER_SECRET";
      var TWITTER_ACCESS_TOKEN =  "TWITTER_ACCESS_TOKEN";
      var TWITTER_ACCESS_SECRET = "TWITTER_ACCESS_SECRET";
      var tweet = tweet; 
      if (typeof OAuth1 === 'undefined') {
        var libUrl = 'https://developers.google.com/adwords/scripts/docs/examples/oauth10-library';
        throw Error('OAuth1 library not found. Please take a copy of the OAuth1 ' +
            'library from ' + libUrl + ' and append to the bottom of this script.');
      }
      var params = {};
      var options = {method: 'POST', payload: {status: tweet}};
      var authUrlFetch = OAuth1.withAccessToken(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET,
          TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_SECRET);
      var response = authUrlFetch
          .fetch('https://api.twitter.com/1.1/statuses/update.json', params,
          options);
    }
  3. Configura el robot.

    En el archivo Código.gs debes editar las partes que están en rojo poniendo tus propios datos:
    • Aquí debes indicar la URL del feed de tu blog.
    • Si quieres añadir una frase antes del título del artículo aquí puedes editarla, si lo dejas como está se twitteará "Nuevo artículo en mi blog!! Título de tu artículo + enlace a tu artículo". Si no quieres que se añada ninguna frase, elimina el contenido en rojo.
    • ¿Recuerdas que antes anotastes las claves de tu aplicación de Twitter? Aquí es donde vamos a utilizarlas. Cada una en su lugar correspondiente.
  4. Autoriza tu cuenta de Google para utilizar un servicio externo.

    ¡Vamos a lanzar por primera vez tu automatizador! Tenemos que pulsar sobre "Seleccionar función" y elegir LanzaBot:

    A continuación, lanzamos por primera vez el bot:


    Si todo ha ido bien Google Script te avisará de que el programa necesita permiso para acceder a nuestros datos en Google. Esto ocurre porque necesitamos autorizar la conexión con el servicio externo como vemos a continuación. Evidentemente aceptamos todo.


    Ahora ya puedes ir a comprobar si se ha twitteado el último post de tu blog, de esa manera verificaremos que todo funciona correctamente. También lo puedes hacer desde Google Apps Script pulsando sobre "Ver" y luego sobre "Registros", el mensaje que debe aparecer es el siguiente (pero con tu título y tu URL):

    Podemos volver a verificar que todo va a ir bien. Si volvemos a ejecutar el script, es decir, volvemos alanzar el bot, podemos ver que identifica que es el mismo post y no lo twittea, pero nos avisa en el registro:


  5. Programa cuándo se ejecutará el programa.

    En este punto tan sólo tenemos que decirle al sistema cada cuánto tiempo queremos que "pase" por nuestro blog a ver si hay nuevos artículos que twittear. Esto dependerá de la frecuencia de publicación que tengamos, ya que como vemos a continuación, Google Apps Script te ofrece diversas opciones. Pulsamos sobre "Activadores del proyecto activo"...


    ...y configuramos uno nuevo. Podemos ver las distintas opciones que nos ofrece la plataforma, así que nos adaptaremos a nuestro ritmo de publicación.



    Si lo deseas, también puedes añadir un notificador para que te avise en caso de error de la secuencia, también con varias opciones:

Y esto es todo amigos y amigas, un sistema que, aunque yo me líe un poco para explicarlo, es bastante sencillo de aplicar y utilizar como alternativa a cualquier plataforma de terceros.




Llevo bastante tiempo "haciendo cositas" con Google Apps Script y esta es la primera vez que comparto una de ellas, espero que les sea muy útil!
YourMemoPad - Google Chrome Extension

(Bueno, cómo se hacía esto... Ah, sí!) Hoy les presento un nuevo proyecto personal: YourMemoPad, una nueva extensión de Google Chrome para apuntar notas y crear tareas rápida y fácilmente.

Y ahora más de uno/a dirá "Anda el Twittboy que se mete en más líos!!!" Pues sí, qué le vamos a hacer... Al fin y al cabo, yo mismo decía hace poco en @LaNuciaEs que "el momento es ahora", o algo similar, así que ¿por qué esperar más?

YourMemoPad - Simply notes for Chrome es una extensión que surge de mi propia necesidad diaria y en ocasiones constante de apuntar códigos, referencias, cantidades, colores, fechas, pantones, números de facturas, etc. Aunque ya existen varias extensiones similares, no encontraba ninguna que se  ajustase a la velocidad de trabajo que suelo tener, que guardase todo automáticamente y que me permitiese copiar y pegar sin formato cualquier texto de cualquier web. Vale sí, seguro que te viene a la mente Google Keep y otras por el estilo, pero cachis... yo quería tenerlo todo en la misma pestaña. ¿Que también tiene versión para móvil...? Coñe, dame un ratooo, no?!! 😜

YourMemoPad - Simply notes for Chrome

Total, que llevo ya un tiempo trasteando con la programación de extensiones para Google Chrome y me planteé hacerla yo mismo. ¿Por qué no? En un principio la extensión carecía de formato, sin diseño, todo a lo bruto... Pero funcionaba, y me daba cuenta de que cada día la utilizaba aún más.

Como se sincroniza con la cuenta de Google Chrome podía compartir la información entre casa y el trabajo o con el portátil, lo cual hizo que le añadiese la pestañita de "Tareas". En ese momento me di cuenta de que se trataba de una herramienta que ya formaba parte de mi rutina diaria. ¿Así que por qué no compartirla?

La extensión es muy sencilla de instalar y de utilizar. Tan sólo ve a su propia página web y sigue las instrucciones o haz clic en el siguiente botón para instalarla desde la Chrome Web Store:

YourMemoPad - Descargar en la Chrome Web Store

En esta ocasión he realizado todo el trabajo en inglés, por darle un poco de proyección internacional por probar cosas nuevas, por ver qué tal, aunque soy plenamente consiente de que de existir, "mi público" (si estás leyendo esto...) sería en un 99,99% de habla hispana.

Lo bueno de las extensiones, al menos de esta en particular, es que son muy sencillas de actualizar, de hecho gracias al feedback de un pequeño pero irreductible e infalible grupo de usuarios betatester grommenower, he realizado ya algunas correcciones y prevéo varias actualizaciones. La primera de ellas la posibilidad de escoger idiomas, que acompañaré con la web en los mismos idiomas ¿Cuándo? Ay mi niño... 😆

YourMemoPad - Simply for notes and tasks in Chrome

Como decía, la extensión es muy sencilla e intuitiva de utilizar, pero por si acaso, también tiene su propio F.A.Q y su guía de instalación y uso.

Entre sus principales características:
  1. Sincroniza automáticamente con tu cuenta de Google Chrome. No hay botones de guardar, cualquier cambio se guarda al instante.
  2. Las pestañas son intercambiables, depende de lo que más utilices puedes poner delante las lista de tareas o el bloc de notas.
  3. Copias y pegas siempre sin formato.
  4. No hay límite de texto en el bloc de notas ni límite de tareas a añadir.
  5. Puedes añadir descripciones y aclaraciones a las tareas.

En fin, como diría aquel, "yo le daría una oportunidad", seguro que verás lo útil que es, sobre todo si eres developer, CM, gestor de contenidos... si andas apuntando textos y códigos todo el día, vaya!

Y si no, bueno, ahí queda...

Me adelanto a algunos/as: sí, hay publicidad en la web y un pequeño banner en la extensión. "Curioso que siempre hable de la importancia de compartir pero luego meta publicidad en las webs" Pues sí, creo que una cosa no quita la otra. Cualquiera es libre de hacer clic o no en la publicidad, que no es otra que Adsense de Google (tampoco creas que me complico demasiado). Si puedo compartir mis cosas, locuras y desvaríos y además llevarme unas perrillas, no veo nada malo en hacerlo. Al fin y al cabo nos movemos en entornos de emprendedores, "estar-apses", "eleveitor piches" y demás seres extraños, con lo que estamos acostumbrados a "monetizar" y "escalar" cualquier cosa ¿O no?

Por cierto, si alguien quier contratar publi tiene a su disposición el formulario de contacto 😱

YourMemoPad

En fin, sólo espero que a quien la instale le sea tan útil como me está resultando a mí. Y les cuento un secreto, realmente la aplicación es pública desde hace aproximadamente 1 mes, durante el que he estado testeando algunas últimas cosas, poniendo banner en Emojis para Twitter (ya lo habrás visto) y rascándome la barriga de vacaciones.

Por supuesto, no me puedo despedir sin agradecer y alabar la labor de ese pequeño, irreductible, infalible y realmente estimado grupo de tocapelotas amigos y amigas que me han dado el feedback durante el periodo de "testeo privado" de la extensión: @JMChia (la navaja de Ockham del código forever and ever), @Javimonsalupe (Hipster ocasional), @cmoralesper (chachooooo, no?!), @emeguedes (project head of "ponle un botoncito aquí..."), @GiancarloGians (hombre orquesta, lo mismo te vale para un roto que para unos fetuchinni), @Claudix (Erlernen der Sprache) y @cocinaitaliana (ay, io tengo una ideini que te va a gustarrr... y la arma de nuevo).

Y por supuesto, y siempre en especial, @PuyBoneta (instaló iOS en un Motorola). 

En serio, MUCHAS GRACIAS, sé que soy un pesado.

Como es habitual, la extensión tiene su propia cuenta de Twitter, donde puedes seguir las actualizaciones o sugerir cambios e ideas @YourMemoPad:


Finalmente, te cuento un último secreto, en breve, esta vez prometo no tardar un dos años, tendré lista otra extensión (realmente ya está, faltan los últimos retoques), quizás más particular. Si usas JIRA, estate al loro! Y si eres un pelín vivo/a, la verás ya rulando por ahí...

Y ya sabes, si instalas la extensión y te mola, se agradece un comentario en la Chrome Web Store y unas estrellitas!! 😘
Emojis para Twitter

Qué nervios, hacía tiempo que no hacía estas cosas... hoy tengo el placer de presentarles mi nuevo proyecto personal: Emojis para Twitter, una completa colección con 850 emojis listos para utilizar en Twitter.

Ya se imaginan lo especial que es para mi enseñarles hoy esta herramienta, pocas veces uno presenta algo hecho por uno mismo y de lo que se sienta tan orgulloso :-)

Emojis para Twitter es una divertida aplicación web para publicar emojis en Twitter. El funcionamiento es muy simple, sólo tienes que escribir tu mensaje en el campo de texto y añadirle tus emojis preferidos de entre todos  los disponibles en la tabla.

Emojis para Twitter

Una vez tengas listo tu mensaje sólo tienes que pulsar sobre "Enviar" y se abrirá un pop-up para twittear directamente en tu cuenta de Twitter, así de sencillo. Aunque si aún tienes alguna duda, también tiene un FAQ donde aclarar dudas.



Los 850 emojis están divididos en categorías según mi propio y libre criterio (se siente, oyes), y son aquellos que Twitter "acepta" actualmente. En cuanto Twitter de de alta nuevos emojis, los iré actualizando.


La motivación principal al hacer Emojis para Twitter fue que una vez Twitter añadió la posibilidad de utilizarlos en su plataforma, la única manera de hacerlo era desde el teclado del móvil (aquellos que lo permitan) o accediendo a la configuración de cada navegador en tu equipo. Mucho lío, vaya.

Con esta web, puedes acceder directamente a todos los emojis que acepta Twitter desde cualquier navegador, sin necesidad de cambiar su configuración. Además, si eres usuario de Chrome, también tienes una aplicación que instalará un acceso directo en tu navegador para que accedas fácilmente a la web, descárgala desde la Chrome Web Store.

Emojis Twitter en la Chrome Web Store


Cómo no, la web tiene su propio  usuario en Twitter: @EmojisTwiter


Sí, de acuerdo, nos conocemos y sé lo que estás pensando: "¿Pero... y lo de Símbolos para Twitter? ¿No es lo mismo?" Pues no; aunque en un primer momento pensé en ampliar la web y añadir los emojis, pero soy de los que opinan que cuando algo funciona tal y como está, mejor ni tocarlo...que luego lo rompo.

Pero lo que más me decidió a hacer una web nueva para los emojis fue, como diría Homer Simpson, que son "animales distintos". Salvo contadísimas excepciones, los emojis son por regla general y explicado rápido y mal, pequeñas imágenes que se muestran al interpretar determinado código, mientras que los símbolos son tipografías en caracteres Unicode y dibujos ASCII.

Finalmente sólo esperar que les guste tanto como otros de mis proyectillos personales, de verdad que está hecho con todo el cariño del mundo :-)

Para acabar, agradecer a la gente que siempre está ahí para todo, que me guarda los secretos y que aguanta mis cosas, mis preguntas, mis consultas y mis neuras. Especialmente a mi Puy, de divina paciencia, que sabe aplicar las palabras adecuadas en los momentos adecuados. A @JMChia, amigo y socio, que tiene las mejores ideas del mundo y además las comparte. Y a @josevillalobos,que aunque él no lo sepa (o sí, que es múlisto), un DM suyo fue lo que realmente me impulsó a crear Emojis para Twitter.

Y por supuesto a ti, que lees mis tonterías, que me sigues en las redes y que en definitiva, formas parte de mi vida. GRACIAS!

No te olvides: Emojis para Twitter!
Esto no es una pipa
Le tomo prestado el título y la imagen al amigo Magritte para que sirva de perfecto ejemplo de lo que me gustaría expresar con palabras en estos momentos. La Traición de las Imágenes, que son pero "no son", la quiero aplicar hoy a este blog esperando sinceramente que nadie se sienta realmente traicionado.

TwittBoy.com (antes TodoTwitter) nació con la intención de compartir una serie de experiencias y vivencias en torno a una nueva red social llamada Twitter. No voy a contar ahora todo lo que me ha dado este blog durante estos años, gracias a él soy en parte quien soy ahora, he estado en sitios que de otra manera ni hubiera imaginado pisar y he conocido, entre muchísimas otras personas geniales, al que es mi actual socio (y colegacho) en Pirendo, @JMChia.

@JMChia y un servidor. Foto de @Javimonsalupe
Pero sí quiero contar que estar sin publicar desde Julio de 2012 me parecía ya muy triste, casi una ofensa para los lectores que hicieron conocido este sitio y una espinita que se me clavaba cada vez más.

Eran (y son) muchas las cosas que me han impedido seguir con un ritmo "lógico" de publicaciones. Pirendo la primera. Y con mucho gusto :-)

El diseño anterior, por muy bonito y twittero que fuera, también era un impedimento a la hora de seguir publicando. Me agobiaba esa sidebar tan ancha y a veces parecía que los textos no "respiraban" en un espacio tan estrecho. Además de la cantidad de código que tenía que meter en cada entrada para que quedara así de mono... ahora todo es mucho más sencillo.


Espero que nadie se sienta traicionado, decía, porque no voy a relanzar el blog para escribir única y exclusivamente de Twitter. A partir de ahora hablaré de lo que me dé la gana. Obviamente las redes sociales seguirán siendo el tema principal del blog, pero no dudaré en publicar algún post personal, de opinión, de la última peli que he visto o de la última chorrrada que se me pase por la cabeza o que encuentre por Internet.

Sé que habrá quien se lleve las manos a la cabeza, quien lo entienda, quien piense que la he cagado y a quien le de totalmente igual. Yo también creo que puedo estar equivocándome, que debería haber dejado todo como estaba y abrirme otro blog con otro dominio, que alguno interesante tengo por ahí... Pero al fin y al cabo soy @TwittBoy y este blog es tan parte del personaje como de mi mismo. Y además, eso es lo divertido ¿no?
Si no hay riesgo...

No pienses que ahora voy a empezar a publicar ñoñerías como un loco, no es esa mi intención (espero). De hecho, no tengo tiempo para publicar en este blog (por suerte). Y como no tengo tiempo pero quiero hacerlo, pues realmente no sé ni cómo ni cuando publicaré el siguiente post ¿Tú lo entiendes? Me alegro, porque yo no.

En fin, que a saber lo que nos depara el futuro ¿verdad?

Vienen nuevos proyectos, nuevas ideas y muchas experiencias que quiero contar, hablar de mis cosas y de las de otros, muchos dibujos y viñetas que quieren ver la luz y a saber qué más cosas encuentro en mi baúl. Sólo espero que perdones esta traición y estés (sigas) ahí para compartirlo.

He cambiado el diseño del blog por enésima vez. Creo que ahora favorece la lectura, es mucho más diáfano y la carga será más rápida. Lo sé, aún me quedan muuuchas cosas por pulir, pero poco a poco, no? vaya prisas... Mientras tanto ¿Qué te parece el nuevo diseño? Estrena los comentarios, venga, échese un algo ahí! Toquetea todo y opina, que el cambio de diseño ha sido una de las decisiones más difíciles que tuve que tomar.

Las entradas "antiguas", ahora bajo la etiqueta Todo Twitter en honor al primer nombre del blog, se verán algo extrañas durante un tiempo hasta que pueda irlas adaptando al nuevo diseño, nadie es perfecto.

Y ya, poco más que decir, que me lío y me extiendo y me conozco. Una de las intenciones en esta nueva etapa, a todo esto, es hacer post más cortos... a ver...

Lo dicho, esto no es una pipa, y tampoco es un blog sobre Twitter...

¡BIENVENIDO AL NUEVO TWITTBOY.COM!

...y que sea lo que Dior (y Moschino) quiera.


Suscribirte por RSS: Rss