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

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!
Te guste o no, seas partidario de ellos o no, seguro que cada vez que entras a tus Redes Sociales o aplicaciones de mensajería no puedes evitar esbozar al menos una sonrisa cuando ves alguno de los memes que se comparten a diario en la red.

Los memes están (siguen) de moda y cada día se extiende más su uso, pretenden contar de una manera divertida y humorística cualquier hecho ocurrido en la sociedad. Desde la originalidad y la picardía, los memes aportan un punto de vista generalmente divertido al día a día.

¿Qué son los MEMES?

En esencia, los memes son montajes fotográficos, opcionalmente con inclusión de texto, que relatan un hecho mediático, una idea, un concepto, una situación, una expresión y/o pensamiento de forma jocosa y humorística. Generalmente se editan y publican en formatos digitales y son difundidos mediante Internet, convirtíendose en virales aquellos que más aceptación alcanzan.

Cómo crear MEMES online:

A día de hoy existen verdaderos especialistas creando memes en Internet, sobre todo en las redes "más rápidas", como son Twitter y Facebook. prueba de ello son algunos de mis preferidos en Twitter: @unmundolibre, @robotronk1@ordago13 o @DolorsBoatella.

Pero no es necesario ser uno de estos grandes genios para hacer tus propios memes online (bueno, para hacerlos así de graciosos... puede que sí), cualquiera puede crear sus propios memes utilizando algunas de las aplicaciones tanto móviles como web que existen para ello:

  1. Memegenerator

    Es una de las herramientas online más conocidas para crear memes. Sencilla y práctica tan sólo tienes que elegir el personaje protagonista o subir la imagen que quieras utilizar en el fondo de tu meme, añadir el texto si lo deseas y guardar o publicar directamente el resultado.
    Tiene aplicación en Google Play.
  2. MakeaMeme

    Con un diseño pensado más para dispositivos móviles que para su uso desde pantallas grandes, es una más que aceptable opción para crear memes rápidamente y desee cualquier dispositivo. En esta ocasión puedes elegir entre una galería más amplia de imágenes de fondo disponibles, o si no puedes subir tu propia imagen y añadir el texto. Luego puedes compartir el meme directamente o descargarlo a tu sistema.a
    Un inconveniente que le veo es que hay que previsualizar el resultado tras cualquier cambio en el texto, no se van visualizando en tiempo real los cambios.
    Tiene aplicación en la App Store.
  3. ImageChef

    Con esta herramienta para memes podemos seleccionar también una imagen de fondo o subir una propia, aunque esta vez se añade la posibilidad de sacarnos una foto en el momento con la cámara web del dispositivo (no disponible en la versión móvil).
  4. Pintzap
    Otra plataforma con un montón de imágenes de fondo ya disponibles aunque también puedes subir la tuya. Lo que me ha llamado la atención es que dispone de opciones para cambiar las fuentes, tanto el tipo de letra como el color, el tamaño, el borde...
  5. ImgFlip
    Finalmente, esta herramienta online te permite escoger entre una buena variedad de imágenes para el fondo y cómo no, subir la tuya propia. También posibilita hacer cambios en la tipografía de los textos, incluso en este caso nos permite utilizar las tipografías instaladas en nuestro dispositivo.
  6. BONUSTRACK!! MemeZinga
    Tras los requerimientos de un buen amigo en Twitter (lo tengo engañao), y porque creo que además lo merece, añado MemeZinga al listado, que también dispone de una buena galería de imágenes de fondo, aunque no es posible subir nuestra propia imagen. Aún así merece el bonustrack porque se trata de un proyecto de esos que nacen de la imaginación y "el momento loco" que a veces se da en los cursos. Ole!  
Recuerda que lo más importante para hacer un buen meme es que pongas en él toda tu astucia e imaginación, estas sólo son herramientas para facilitarte esa labor. Mucha suerte con tus memes!!
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!
Una herramienta que guarda un historial y explica el por qué de los TT de Twitter.TweetTrendings es un servicio web que no sólo explica por qué una palabra o frase es tema del momento en Twitter, sino que además va guardando un historial de los temas de cada día.
TweetTrendings 01

Aunque por ahora el servicio explica y guarda el historial sólo de los temas del momento en España, resulta muy interesante de cara a poder consultar qué palabra o frase fue tema del momento en cada fecha. No es la primera vez que hablamos de los Temas del Momento en el blog, una de las secciones más interesantes de Twitter y que siempre dan mucho juego a la hora de entablar conversaciones en la red... porque vamos a ver, a quién no le ha pasado lo siguiente?


Pues ahora, si tú sabes la respuesta puedes recurrir a TweetTrendings y explicar el por qué del TT. Para hacerlo utiliza el enlace "Sé el primero en explicar por qué" para que se despliegue el formulario donde poner tu explicación y un enlace si es necesario:

TweetTrendings 02

Cuando envíes tu explicación tendrás que autentificarte mediante Twitter Oauth, tras lo que tu explicación quedará guardada y además podrás acceder a otras explicaciones para editarlas lo lo crees necesario. Desde la cuenta @TweetTrendings se twitteará la explicación junto al TT seguida de "por @usuario", con lo que todo el mundo sabrá que tú has sido quien ha suministrado la explicación.

Muchas gracias al equipo de TweetTrendings y a nuestros amigos comunes que me han hecho llegar la nota de prensa ;-)
Una nueva aplicación web para encontrar empleo con Twitter.



tuiempleo 01


Tuiempleo es una aplicación para la búsqueda de empleo mediante Twitter desarrollada por el portal español Infoempleo.com.

Se trata de un original entramado de cuentas de Twitter que publican ofertas de trabajo específicas de un área concreta y de una localización concreta, con lo que siguiendo a las cuentas adecuadas sólo recibirás ofertas de empleo que cumplan tus requisitos. El sistema de Tuiempleo para poner orden y facilitar el seguimiento de la cuenta adecuada es bien sencillo, sólo tienes que seguir tres pasos:
1.- Seleccionar provincia.
2.- Elegir el tipo de trabajo (área y subárea).
3.- Seguir a la cuenta que publica las ofertas.


Una vez hayas seleccionado localización área y subárea se desplegará un panel con los últimos Tweets de las cuentas que publicarán las ofertas.

Tuiempleo 02


Si no buscas trabajo, sino que lo ofertas, Tuiempleo también puede servirte de ayuda, porque en la misma web tienes a tu disposición un formulario para ponerte en contacto con ellos y publicar tu oferta:

Tuiempleo 03


Sin duda, Tuiempleo utiliza la inmediatez y velocidad en las comunicaciones de Twitter y su capacidad para ser accesible desde cualquier lugar de una manera que seguramente resultará muy efectiva, ya que sólo recibiremos las ofertas que nos interesen, a modo de filtro.

Una original manera de afinar la búsqueda de empleo en Twitter, sin duda.


Enlaces: Tuiempleo
Vuelve la aplicación de Twitter para Facebook
De nuevo disponible la aplicación oficial de Twitter para Facebook




Desde ahora es posible volver a conectar tus cuentas de Facebook y Twitter con la aplicación oficial. Twitter ha vuelto a insertar el botón para conectar ambas cuentas, y desde hace unos días cualquier persona con cuenta en ambas plataforma puede publicar sus Tweets en su muro de Facebook.

La noticia me llega gracias al siempre atento @execute_, que el pasado día 1 de Septiembre publicó este Tweet:



Este tuit se publicará en feisbuc.. desde cuando ¿? http://t.co/A3NWZlY1 sept via web Favorite Retweet Reply





Para conectar tu cuenta con Facebook debes ir hasta configuración y allí verás la última opción de la pestaña "Perfil". Pulsa sobre "Publica tus Tweets en Facebook":





Twitter Facebook 01





Si ya estás logueado en Facebook te aparecerá directamente la posibilidad de conectar tu cuenta, si no, tendrás que loguearte primero:





Twitter Facebook 02





Ahora sólo tienes que permitir el acceso a tu cuenta en Facebook a la aplicación:





Twitter Facebook 03





Ten presente que no se publicarán @respuestas ni mensajes directos (obviamente) en tu muro de Facebook, tal y como se nos advierte, y que debes tener marcada la opción para que se publiquen los Tweets:





Twitter Facebook 04





A partir de ese momento, tus Tweets se publicarán en tu muro de Facebook:





Twitter Facebook 05





La aplicación, oficial de Twitter también está disponible desde la página oficial de Twitter en Facebook, y desde el principio del post he insistido en que se trata de un "vuelta" de la aplicación porque muchos de ustedes recordarán que en Junio de 2010 Facebook bloqueó esta misma aplicación, por lo que realmente no se trata exactamente de una novedad.



Realmente la novedad es precisamente esta repentina "alianza" entre Facebook y Twitter, aunque desde mi punto de vista, es posible que se trate de un intento por parte de Facebook de aumentar su oferta y de posicionarse frente a Google +, que poco a poco parece que le va ganando terreno. Desde Twitter tan sólo se ha hecho una pequeña alusión al tema, un Tweet del 2 de Septiembre desde sus cuentas oficiales, pero poco más (sigo pensando que Twitter y google + son dos cosas muy, muy distintas, no creo que ninguno "mate al otro").



Sobre la aplicación y su uso, realmente no me termina de convencer, aunque no se publiquen los Tweets que son respuestas a otros usuarios, para cualquier usuario realmente activo puede significar una gran cantidad de Tweets enviados al muro de Facebook, lo que no concuerda mucho con mi idea de que cada red tiene sus "tempos", sus contenidos, su manera de funcionar... Realmente sigo viendo mucho más práctica Selective Tweets, que aunque te obligue a poner una etiqueta al Tweet, te permite seleccionar qué Tweet deseas publicar en tu muro.



¿Ustedes qué opinan?



Enlaces: Aplicación de Twitter para Facebook

Gracias a @execute_ por el aviso ;-)



Suscribirte por RSS: Rss