lunes, 26 de septiembre de 2011

Nuevo Hoax en Facebook

Pues sí, amigos, parece que la gente, por un lado no se cansa de inventar tonterías y hacer que se esparzan, y por otro, de publicarlas una y otra vez.

La última dice algo así:

Por favor: pasad el ratón sobre mi nombre y esperad hasta ver la ventana que aparece. Pasad el ratón sobre el botón "suscrito" y deseleccionad "comentarios y menciones me gusta". De esta manera, mis comentarios sobre mis amigos y familia no serán públicos.

Publicad esto en vuestro muro si no queréis que todos vuestros movimientos sean visibles por todo el mundo en el menú de la derecha. Si le dais a "me gusta" en este comentario, yo haré lo mismo con vosotros.


Al hacer lo que dice, únicamente estáis desuscribiéndoos de ese tipo de notificaciones de la persona en cuestión. Ejemplo: sobre el nick "Perry" pongo el ratón encima, deselecciono... al final lo que consigo es no recibir YO esas actualizaciones que ponga Perry. Nada más.

Para terminar: como consejo, antes de hacer algo, está bien pensar si tiene alguna clase de sentido. Suele funcionar hacerse dos preguntas: "¿Qué gano?" y "¿Qué pierdo?". Si la respuesta a ambas preguntas es "no lo sé", intentaría averiguar algo más y sólo hacerlo en caso de que la respuesta a la primera sea "algo que compense" y a la segunda sea "NADA" (sí, con mayúsculas).

sábado, 9 de abril de 2011

Geolocalización del navegador

El otro día en el trabajo surgió la posibilidad de necesitar geolocalizar al usuario de una web y me puse a investigar.

Resulta que los navegadores más modernos implementan geolocation, dentro del objeto navigator de Javascript, que es capaz de averiguar, de forma transparente, dónde se encuentra el navegador, en función de redes wifi, IP de salida a internet y una serie de cosas que lo hacen mágico, porque la precisión asusta.

Esta funcionalidad viene de serie en Chrome y en Firefox > 3.6, aunque proporcionan información ligeramente distinta:


  • Chrome devuelve un objeto bastante sencillo, que incluye longitud y latitud, a partir del cual es posible obtener la dirección exacta haciendo una consulta a Google Maps API a través de la función codeLatLng, que devuelve una estructura de datos similar a la que proporciona Firefox

  • Firefox, además de eso, incluye un atributo address, que incluye calle, número, barrio, población, provincia, comunidad autónoma y país.
Pinchando aquí carga un ejemplo que demuestra el funcionamiento. Internet Explorer, abstenerse.

Incluyo un código de ejemplo:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
        <script type="text/javascript" >
         
           //Address is printed in a friendly way
            function updateContent(address){
                p2 = document.getElementById("p2");
                p2.innerHTML = "<p>You are at "+address.street+", "+
                                address.streetNumber+", "+address.city+", "+
                                address.region+", "+address.country+"</p>";
            }

            //This function invokes google maps api for getting address for given position 
            //and returns an object similar to the one returned by firefox
            function codeLatLng(lat, lng) {
                geocoder = new google.maps.Geocoder();
                var latlng = new google.maps.LatLng(lat, lng);
                geocoder.geocode({'latLng': latlng}, function(results, status) {
                    address = {
                                street:         "",
                                streetNumber:   "",
                                city:           "",
                                region:         "",
                                country:        ""
                            };
                    if (status == google.maps.GeocoderStatus.OK) {
                        if (results[0]) {
                            address = {
                                street:         results[0].address_components[1].long_name,
                                streetNumber:   results[0].address_components[0].long_name,
                                city:           results[0].address_components[2].long_name,
                                region:         results[0].address_components[3].long_name,
                                country:        results[0].address_components[5].long_name
                            };
                        }
                    }

                    updateContent(address);
                });
            }
           
            //print position 
            function displayPosition(position) {
                p1 = document.getElementById("p1");
                p1.innerHTML = "<table border='1'><tr><th>Timestamp</th><td>"+ position.timestamp +
                "<tr><th>Latitude (WGS84)</th><td>" + position.coords.latitude + " deg</td></tr>" +
                "<tr><th>Longitude (WGS84)</th><td>" + position.coords.longitude + " deg</td></tr></table>";

                //alert("Position: "+position.coords.latitude+", "+position.coords.longitude);
                var address = null;
                if(!position.address){
                    //No address is available, so call to Google Maps API has to be made
                    codeLatLng(position.coords.latitude, position.coords.longitude);
                }else{
                    updateContent(position.address);
                }
            }

            function displayError(positionError) {
              alert("Unable to get Position :(")
            }


            //main code
            try {
              if(typeof(navigator.geolocation) == 'undefined'){
                gl = google.gears.factory.create('beta.geolocation');
              } else {
                gl = navigator.geolocation;
              }
            }catch(e){}

            if (gl) {
              gl.getCurrentPosition(displayPosition, displayError);
            } else {
              alert("I'm sorry, but geolocation services are not supported by your browser.");
            }
        </script>
  </head>
  <body>
      <div id="p1"></div>
      <div id="p2"></div>

  </body>
</html>

Petición de contraseña de Gmail en Android con operadores virtuales

Llevo usando Android algo más de un año, pero ha sido al pasarme a operadores virtuales como Pepephone o Simyo, que vengo notando que al perder la cobertura, también suele pasar, que al recuperarla, el teléfono me pide la contraseña de las cuentas de Gmail, cosa que es un coñazo cuando tienes 4 o 5 cuentas.

El problema es que al ser operador virtual, utiliza la red de otro operador y hay ocasiones, en las que al perder cobertura y volver a recuperarla, el teléfono tarda en darse cuenta de que no está asociado a la red de Orange, sino que en realidad está en Simyo (que usa la red de Orange). Si en ese tiempo, intenta acceder a gmail para comprobar el correo, detecta un "cambio de SIM" y para proteger tu cuenta, te vuelve a pedir la contraseña.

Bien, pues gracias a un amigo, me he enterado de que esto tiene solución :):

Es necesario configurar la SIM para que no haga roaming de datos: Para esto hay que acceder a la aplicación de la SIM (accesible desde la mayoría de los teléfonos, aunque no desde la mayoría de los Android). En la versión de Android de Nexus One, no está esta opción, aunque sí en la Cyanogen Mod. Es posible meter la SIM en otro móvil para configurar esto:

1.- Servicios SIM

2.- Servicio Roaming

3.- Selección de Red

4.- Selección Manual

5.- Nacional

Y así es como Android no vuelve a dar la brasa por este tema. Lo único, es tenerlo en cuenta si se viaja al extranjero, que igual conviene activar el roaming internacional.

miércoles, 16 de marzo de 2011

Pray for Japan

Todos sabemos lo que ha pasado con Japón, el terremoto, el tsunami y el temilla de las fugas radioactivas en las centrales nucleares.

Mola mucho poner fotos en Facebook de Pray for Japan y mierdas de esas. Si realmente quieres ayudar a los japoneses, deja de rezar y mándales dinero, que es lo único que mueve el mundo.



Desde este enlace se pueden hacer donaciones:

http://www.google.com/crisisresponse/japanquake2011.html#donation

miércoles, 9 de febrero de 2011

Sobre EEUU y la Ley Sinde

Según se lee en 20minutos y en muchos blogs que se hacen eco del tema, a raíz de la primera visita de Zapatero a Washington, se dio un fuerte impulso a la Ley de Economía "Sostenible" (entrecomillo sostenible porque no sé muy bien de dónde sale la sostenibilidad).

Amigo ZP, y amigo Obama, está muy bien eso de ser coleguitas y lamer y ser lamido, pero sabed que las situaciones de ambos países son totalmente distintas:

  • En EEUU, tenemos Netflix, que por 7,99 $, proporciona barra libre de contenidos. Entiendo que se sea más duro con la piratería (entendiendo por piratería lo que es, no lo que quieren que sea).
  • En España, por ese dinero, tenemos la suerte de encontrar algún CD en la montonera de CDs que no se venden a ni a tiros en el Carrefour.


Entiendo que hay que pagar por el trabajo ajeno y que hay que respetar los derechos de autor. A todos nos gusta que nos paguen por nuestro trabajo. Aquí el problema es que no hay alternativa. Evidentemente, no estoy dispuesto a pagar 15€ por un CD, un soporte totalmente prehistórico o por un DVD o bluray. No quiero ver las cosas en la TV a la hora que las echan. Quiero ver series extranjeras en VO que ya se han emitido públicamente en la TV de ese país. Quiero ver series españolas cuando me viene bien, no cuando las echan por la tele (por suerte algunas cadenas ya se han dado cuenta y cuelgan contenidos online) Quiero pagar por lo que disfruto (Spotify me lo permite), pero parece ser que en España esto no es posible...

A ver cuando le entra a la cabeza al señor ZP y a su amiga Sinde, que la ley ya recoge el cerrar páginas ilegales. El problema es que las páginas que conocemos no de intercambio de ficherosno lo son. Son tan legales como el hecho de que yo le cambie un CD a mi vecino. Así lo ve, por lo menos, una persona que conoce las leyes y con cierto criterio al que llamamos juez.

La ley de economía sostenible no combate la piratería (ganar dinero a base de violar derechos de autor), sino que lo que hace es sostenible la economía de otros países, a los que se llevarán a hospedar estas páginas, que evidentemente, no van a desaparecer, aunque estaría bien darle poder a nuestros colegas (léase SGAE) para que sean ellos los que decidan qué webs cerrar y cuales no, en lugar de ser un juez quien lo haga, como hasta ahora.

Parece que es difícil de entender que la mayoría de los internautas no estamos en contra de la ley porque creamos que vaya a terminar con nuestra capacidad de "robar" el trabajo de otro. En muchos sitios se lee que lo que queremos es poder seguir descargando gratis. Esto es un error. Lo que no queremos (al menos yo) es que un lobby de empresas privadas decida sobre el contenido de la red. En cuanto a la piratería, lo que buscamos es una alternativa real. En la música, mucha gente ya ha elegido. En cuanto a películas, NO EXISTE. No quiero CDs/DVDs/BluRays ni regalados. Me molestan. Quiero una alternativa real como pasa en otros países.

Quizá alguno piense: vale, aquí no hay servicios así porque las empresas que los ofreces no quieren venir a España. Totalmente de acuerdo. ¿Por qué no quieren? Igual no les compensa, a ese precio, pagan los derechos de autor que se les piden aquí.

Está claro que el tema de la política en este país es una pantomima. Los políticos parecen no pensar y estar ahí haciendo lo que alguien les dice, trincando, mientras tanto, tanta pasta como pueden.

Todo esto por no mencionar que ya pagamos un canon por copia privada al comprar cualquier cosa capaz de guardar o reproducir información. Un impuesto obligatorio gestionado por una entidad privada... es que es para no dar crédito.

Así nos luce el pelo...

http://alt1040.com/2011/01/netflix-espana-derechos-autor
http://alt1040.com/2011/02/cables-revelan-los-ultimos-movimientos-de-eeuu-en-sus-presiones-a-espana-para-aprobar-la-ley-sinde

lunes, 7 de febrero de 2011

Cómo cambiar el favicon en blogger

Para cambiar el favicon, lo primero que hay que hacer es subir el icono a algún sitio que nos permita enlazarlo. En mi caso, lo he subido a Google Sites y está en http://sites.google.com/site/amartinj/_/rsrc/1296750717003/test/favicon.ico.

Luego, en blogger, hay que editar la plantilla e introducir el siguiente código, reemplazando {favicon-url} por la ruta en la que se encuenta el favicon en realidad. Este código hay que meterlo dentro del elemento <head>. Recomiendo justo antes de cerrarlo con </head>:

<link href='{image url}' rel='shortcut icon'/>
<link href='{image url}' rel='shortcut icon' type='image/vnd.microsoft.icon'/>
<link href='{image url}' rel='icon'/>
<link href='{image url}' rel='icon' type='image/vnd.microsoft.icon'/>





La próxima vez que se recargue la página, ya aparecerá con el icono correspondiente :).

jueves, 27 de enero de 2011

Sinde Dimisión

Después de los despropósitos de esta mamarracha, he decidido añadir el banner para recoger firmas para su dimisión. No sé si servirá para algo, pero si no hacemos nada, eso sí que está claro que no va a servir.

Después de la última, hacer dimitir a Alex de la Iglesia como director de la academia, una figura a la que claramente le compensa que se defiendan los derechos de autor. Cómo tiene que ser la ley para hacer enfadar a alguien en su posición y llevarle hasta la dimisión.

Enfin, basta con pasarse por el twitter de @Alexdelaiglesia y leer lo que cuenta desde hace unos días.

No me voy a extender en el post, porque si empiezo tengo para rato: lobbies, perjuicios económicos a empresas españolas, perjuicios a artistas, no-solución a la piratería, lameculismo, mamoneo, socialistoides... enfin.