Google Chrome ya no permite el cambio de agente de usuario

Post original en JASoft.org: http://www.jasoft.org/Blog/post/Google-Chrome-ya-no-permite-el-cambio-de-agente-de-usuario.aspx

En Google Chrome siempre ha sido muy sencillo “simular” otros navegadores cambiando la cadena de usuario (User Agent String) del navegador desde las herramientas del desarrollador (pulsando F12):

Chrome30_Overrides

Además se podía especificar unas dimensiones para la ventana y algunos otros ajustes que permitían simular otros navegadores fácilmente.

En la reciente versión 31 del navegador, Google decidió retirar la posibilidad de cambiar el agente de usuario y estos otros ajustes desde las herramientas del desarrollador, por lo que si estás usando ese navegador ya no podrás hacerlo directamente.

Internet Explorer permite el cambio de la cadena de agente de usuario y otros parámetros desde sus herramientas del desarrollador (con F12 también), usando para ello la pestaña inferior:

IE_ChangeUserAgent

que es equivalente a la que tenía Chrome.

Si quieres poder cambiar a voluntad el agente de usuario desde Chrome te recomiendo que utilices alguna de las extensiones disponibles para ello, por ejemplo User Agent Switcher for Chrome. Ésta, por ejemplo, añade un botón a la barra superior del navegador para poder cambiar desde ahí el parámetro:

Chrome_UserAgent_Changer

Además ahora Chrome (y de ahí debe de venir el cambio, que yo personalmente no entiendo) ha introducido una nueva característica de emulación de dispositivos móviles con Android, que si bien no sustituye a lo anterior, sí que permite simular este tipo de aparatos desde el propio navegador, lo cual es muy útil para probar nuestras webs y aplicaciones en éstos.

Para activarla vete a las herramientas del desarrollador en Chrome (pulsa F12), y una vez allí abre las opciones pulsando el icono de la rueda dentada situado arriba a la derecha. En la segunda categoría de opciones verás una para activar la emulación:

Chrome_F12_Tools_Overrides

Al activarlo y cerrar las opciones, puedes abrir la consola de comandos (usando el icono de rayas horizontales justo a la derecha de la rueda dentada) y verás un apartado «Emulation» que te permite cambiar entre dispositivos:

Chrome_F12_Tools_Emulation

¡Espero que te sea útil!

Si vas a compartir este post: por favor utiliza la URL original en JASoft: http://www.jasoft.org/Blog/post/Google-Chrome-ya-no-permite-el-cambio-de-agente-de-usuario.aspx

TRUCO: Cómo editar libremente cualquier página web de Internet

Post original en JASoft.org: http://www.jasoft.org/Blog/post/TRUCO-Como-editar-libremente-cualquier-pagina-web-de-Internet.aspx

RetoquesEste es un truco muy útil, muy sencillo pero a la vez muy poco conocido. De hecho le resultará de gran utilidad no sólo a técnicos como a diseñadores, sino también a responsables de marketing o, en general, cualquiera para el que un navegador sea su herramienta principal de trabajo.

Se trata de poder editar libremente cualquier página de Internet. Aunque no sea nuestra.

Esto tan sencillo tiene una enorme utilidad para muchas cosas:

  • Poder revisar una página (o una zona de una página) y retocarla en tiempo real para mostrar cómo nos gustaría que quedara, o resaltar ciertas cosas importantes.
  • Partir de una plantilla y rellenarla para crear una página completa basada en el mismo HTML y CSS. Luego solo tienes que copiar el código fuente resultante desde las herramientas F12.
  • Crear bocetos de una aplicación rápidamente partiendo de algo ya hecho.
  • ….
  • Hasta tomarle el pelo a algún amigo que se haya dejado el navegador abierto 😉

Os lo dejo en un vídeo corto:

¡Espero que te resulte útil!

Si vas a compartir este post: por favor utiliza la URL original en JASoft: http://www.jasoft.org/Blog/post/TRUCO-Como-editar-libremente-cualquier-pagina-web-de-Internet.aspx

Cómo localizar valores según rangos en Excel

Post original en JASoft.org: http://www.jasoft.org/Blog/post/Como-localizar-valores-segun-rangos-en-Excel.aspx

Esto se sale bastante de la temática habitual de este blog, pero como se trata de algo muy interesante y que le puede servir a mucha gente, lo voy a incluir.

La situación es algo así… Disponemos de una serie de celdas en Excel que nos marcan unos rangos numéricos (o de fechas, que viene a ser lo mismo) con un valor asociado que queremos utilizar según el tramo. Por ejemplo, una tabla de descuentos de producto según el importe de ventas como esta:

BuscarEnRangos_ejemplo

Como vemos en la parte superior tenemos una tabla de descuentos que va por tramos. Así, por ejemplo, si el cliente gasta 3.512€ le corresponderá un descuento del 5% (por estar en el segundo tramo), por lo que al introducir esta cantidad en la parte de abajo, se calculará automáticamente y le daremos el descuento y el precio final.

Parece sencillo ¿verdad?

Yo también lo creía, y supuse que habría alguna manera fácil y directa (alguna función de Excel) para poder conseguirlo en medio minuto. Me equivoqué :-S

Veamos cómo lograrlo…

En este momento podría dar simplemente la fórmula necesaria (que ya adelanto que es larga), pero es muy complicada de entender. Así que es mucho mejor ir por partes y ver uno a uno los conceptos que necesitamos conocer antes de llegar a la fórmula final.

Comencemos…

1.- Averiguar el número de fila en el que está una celda

Bien, lo primero que necesitaremos es saber cómo se averigua en Excel el número de fila de una celda dada. Es decir, una fórmula que si le pregunto por la celda B10 me diga que es la fila 10. Esta función es ROW (o FILA en español, yo uso Excel en inglés, pero es lo mismo). Se puede aplicar a rangos de celdas, devolviendo un rango (o matriz) de números de fila.

2.- Condicionales de múltiples celdas a la vez

Otra cosa que no todo el mundo sabe pero es muy útil, es que en Excel puedes hacer comparaciones de varias celdas a la vez en lugar de ir de una a una. De esta forma podemos obtener matrices de resultados de comparaciones dentro de fórmulas.

Por ejemplo si escribo dentro de una fórmula:

A2:A7<5

obtengo una matriz de TRUE o FALSE por cada celda del rango que he especificado (de la A2 a la A7) según si es menor que 5 o no lo es.

Esto, como veremos enseguida, es muy interesante para lo que nos proponemos.

3.- Convertir booleanos en enteros

Para lo que nosotros necesitamos, mejor que un booleano (verdadero o falso) necesitaremos tener ceros o unos como resultado de las comparaciones de matrices de celdas. Así que para convertirlo en un 0 (falso) o un 1 (verdadero), aunque tenemos varias formas, lo más rápido y directo es usar una doble negación, así:

–(A2:A7<5)

De este modo, el FALSO se convierte en un 0 (al negarlo lo convertimos en un número), y el VERDADERO, que por defecto se convierte en un -1, al negarlo dos veces, se queda como un +1 (dos veces menos es más, como sabemos de álgebra de la escuela).

4.- Multiplicar y sumar matrices de un solo golpe

Esta función, he de confesar que no la conocía en absoluto. Ni me sonaba, Me resultó de gran ayuda la página Chandoo.org, especializada en Excel, que lo explica de maravilla.

La función SUMPRODUCT (SUMAPRODUCTO en español) como su propio nombre indica, lo que hace es multiplicar los elementos correspondientes de las matrices que le pasemos (hasta 255 matrices diferentes, del mismo tamaño), y sumar dichos productos.

Por ejemplo, si tenemos las matrices de antes: {1, 2, 3} y {4, 5, 6}, lo que hace la función es devolvernos el resultado de esto:

1*4 + 2*5 + 3*6

Es decir, devuelve 32.

¡Buff! De momento la cosa pinta muy complicada. ¿Qué tiene que ver todo esto con lo que necesitamos?

Un poco de paciencia, ya falta muy poco 🙂

5.- Obtener el valor de una celda a partir de su ubicación puesta en un texto

El último ingrediente que necesitamos es poder obtener el valor de una celda si tenemos su nombre en una cadena de texto. Por ejemplo “C5” o “$C$5” o cualquier otra forma de expresar la ubicación de una celda.

Para obtener el valor de una celda si tenemos su ubicación en texto usaremos la función INDIRECT (INDIRECTO en español). Se le pasa la celda y devuelve el valor, muy sencillo:

INDIRECT(“C5”)

devuelve en nuestro ejemplo el 15%.

La fórmula que usaremos ¡Por fin!

Vale. Ya hemos visto cada una de las piezas del puzle. Ahora ¿cómo las combinamos para obtener lo que necesitamos?

La fórmula utilizada en la celda C10 de la tabla del principio, y que nos devolverá el descuento necesario es la siguiente:

BuscarEnRangos_formula
      Pulsa para aumentar

¡Bufff! Es algo “durilla” ¿verdad? Párate a pensarla a la luz de todo lo que hemos visto en los puntos anteriores…

Lo explico:

  1. El fragmento –(A2:A7<=C9) lo que hace es devolver un 1 o un 0 por cada celda de la primera fila (los rangos inferiores) según si ésta es inferior o igual a la cantidad comprada (celda C9). En el ejemplo de la figura devolvería {1,1,0,0,0,0}. Es decir, tenemos unos por cada rango inferior que nos encaje con la cantidad buscada.
  2. Del mismo modo exactamente, el fragmento –(B2:B7>=C9) devolverá un 1 o un 0 si cada celda de la segunda columna es superior o igual a la cantidad comprada, es decir, en este caso: {0,1,1,1,1,1}. O sea, tenemos un 1 por cada tramo superior que nos encaje, en su posición concreta.
  3. El fragmento ROW(A2:A7) lo que nos devuelve es el número de fila de las filas en las que están los rangos con los que queremos trabajar, es decir, en este caso: {2,3,4,5,6,7}.
  4. Bien, ahora viene lo bueno. Al aplicar SUMPRODUCT sobre las tres matrices anteriores, como la primera solo tiene 1 en los tramos inferiores que encajen, y la segunda tiene 1 en todos los tramos superiores que encajen, al multiplicarlas ambas (como 0 por lo que sea es 0) sólo nos quedará un 1 en el tramo en que coinciden ambas, o sea, ¡el que nos interesa!. En este caso {0,1,0,0,0,0}. Como además la tercera matriz tiene las posiciones de cada fila, al multiplicarla por la anterior, nos deja ceros en todas las posiciones menos en la de la fila que estamos buscando: {0,3,0,0,0,0}. ¡Justo lo que queríamos! Ya sabemos en qué tramo está la cifra de ventas.
  5. Ahora ya sólo queda obtener el valor de la tercera columna de esa fila con INDIRECT concatenándola a “C” (que es la columna), y multiplicarla por la cantidad comprada (celda C9) para obtener directamente el descuento. Es directo.
  6. Le he añadido un condicional para que si no hay nada escrito en la cantidad comprada (o está vacía) que no use la fórmula y deje la celda en blanco.

Aquí te dejo la Excel de ejemplo para que puedas descargarla y probarla.

¿A qué no era tan sencillo? 🙂

¡Espero que te sea útil!

Si vas a compartir este post: por favor utiliza la URL original en JASoft: http://www.jasoft.org/Blog/post/Como-localizar-valores-segun-rangos-en-Excel.aspx

Cómo crear enlaces de descarga directa para archivos de Google Drive o de OneDrive

Post original en JASoft.org: http://www.jasoft.org/Blog/post/Como-crear-enlaces-de-descarga-directa-para-archivos-de-Google-Drive-o-de-OneDrive.aspx

Truco sencillo y rápido, pero útil, para hoy…

La verdad es que Google Drive no me gusta demasiado. Prefiero de largo usar SkyDrive (ahora OneDrive), pues es más sencillo, más bonito y, sobre todo, la edición y creación de archivos online (documentos, hojas de cálculo, presentaciones…) es mucho mejor y más fiel a los formatos de Office. Además tienes OneNote. Lo único que me gusta más de Google Drive son sus encuestas, mucho más potentes por el momento que las de SkyDrive.

Por supuesto sobre gustos no hay nada escrito….

Por supuesto también utilizo Dropbox (soy usuario de pago hace años) y últimamente me ha enamorado Copy.com que tiene todo lo de Dropbox (incluso detalles técnicos sutiles como la sincronización en red local) pero ofrece algunas características más y te dan 20GB gratis de entrada con el enlace anterior.

Una pega grande de Google Drive, para mi, es que la vista previa de los documentos no suele funcionar nada bien. Por ejemplo, si compartes PDFs u hojas de cálculo se supone que al compartirlas con un enlace se visualizarán perfectamente en vista previa, pero lo cierto es que falla en muchas ocasiones y solo ves el archivo de forma parcial o, directamente, ves algo en blanco:

GDrive_NoSeVe

El mismo documento. sin embargo, compartido en SkyDrive se ve de maravilla, aún siendo un PDF y no un formato nativo de Office:

SkyDrive_SeVe

De todas maneras lo que yo quiero muchas veces es poder dar el enlace directo de descarga para que ni siquiera salga la vista previa. En el caso de Google Drive con más razón pues sé que muchas veces la vista previa no se verá bien. Además en el caso de SkyDrive el botón de descarga está muy bien visible, pero en el caso de GDrive no es tan evidente puesto que hay que abrir el menú “File” y abajo de todo escoger la descarga.

Nota: a todo esto, una cosa que echo en falta en todos estos sistemas, incluyendo Dropbox, es que no exista la posibilidad de compartir un archivo evitando que nadie lo descargue. Es decir, que se vea la vista previa pero no se pueda imprimir ni descargar, sólo verse en el navegador. Parece sencillo pero ninguno lo incorpora. Una pena. El único sistema de este tipo que conozco que sí lo permite es Box.com, que además es una interesante herramienta de colaboración grupal on-line.

Enlaces de descarga directos en Google Drive

Subimos el archivo en cuestión a Google Drive. Lo seleccionamos y pulsamos el menú “Compartir”:

GDrive_Compartir

En la ventana que aparece lo compartimos de manera pública o bien a través de un enlace (primeras dos opciones), permitiendo que se pueda ver (en la lista inferior):

GDrive_Compartir2

Bien. Esto nos proporciona un enlace directo a la vista previa que se ve en la primera figura anterior. El enlace tiene este aspecto:

DGrive_URL

La porción marcada en rojo, después de la “/d/”, es el identificador único de nuestro documento.

Si queremos descargar el archivo de manera directa no es fácil obtener el enlace ya que la interfaz de usuario no permite averiguarla, y si “snifeamos” el tráfico para ver el URL desde el que se descarga, se trata de una dirección muy complicada con otros parámetros e identificadores internos que no tienen nada que ver con el URL anterior.

La forma de conseguirlo, sin embargo, es muy sencilla. Basta con utilizar un URL como este:

https://drive.google.com/uc?export=download&confirm=no_antivirus&id=XXXXXXXXX

sustituyendo las “X” por el identificador resaltado en rojo en la figura anterior.

Con esto conseguiremos enlazar a la descarga directa del archivo 🙂

El parámetro confirm=no_antivirus se utiliza para evitar que le pase el antivirus antes de la descarga, algo que GDrive hace siempre con todos los archivos. Se puede dejar que pase el antivirus dejando este parámetro en blanco. El problema es que en el caso de archivos de gran tamaño fallaría la descarga, y evitando que se pase el antivirus la descarga se iniciará antes y no dará problemas con archivos enormes que hayamos subido.

Enlaces de descarga directa en SkyDrive/OneDrive

En SkyDrive la cosa es muy parecida, pero más rápida y directa.

Subes un archivo, lo seleccionas y eliges la opción de compartir.

SkyDrive_Compartir

No acortes el URL resultante. Quédate con la dirección completa. Lo importante en este caso es el identificador que va en el parámetro resid:

SkyDrive_URL

Si simplemente cambiamos la página “view.aspx” por “download.aspx”, voilá!, tendremos la descarga directa del archivo:

SkyDrive_URL_Descarga

Listo. Con este truco podremos facilitar mucho la descarga de archivos a nuestros amigos, visitantes del blog, etc… para que no tengan que esperar a que se genere una vista previa (que quizá ni siquiera se vea). Simple pero útil.

¡Espero que te resulte de ayuda!

Si vas a compartir este post: por favor utiliza la URL original en JASoft: http://www.jasoft.org/Blog/post/Como-crear-enlaces-de-descarga-directa-para-archivos-de-Google-Drive-o-de-OneDrive.aspx