¡Nuevo blog, nueva web de SEO!

Hola a todos,

Como algunos de vosotros sabéis, llevo más de 10 años escribiendo sobre SEO, Social Media y Analítica Web. En este tiempo, he aprendido mucho sobre estos temas y he compartido mis conocimientos.

Sin embargo, he decidido crear una nueva web para albergar mi blog. La nueva web es más moderna y fácil de usar, y me permitirá ofrecer más contenido y servicios.

Espero que os guste la nueva web. Si tienen alguna pregunta o sugerencia, no dudéis en ponerse en contacto conmigo.

Enlace a la nueva web: hagoSEO

App android para calcular márgenes e IVA

Etiquetas

App android para calcular márgenes e IVA

En esta ocasión voy a compartir una pequeña aplicación para android (probada en tablets de 7» y samartphones Samsung) que recién he terminado.

El hecho es que buscaba alguna app para realizar todas las combinaciones de cálculo entre el precio de venta, el margen deseado y el precio de coste. Es decir, teniendo 2 de los 3 datos mencionados, calcular el tercero.

Tras no encontrar ninguna app creada que hiciese lo mencionado (quizás he buscado poco) me he puesto… manos a la obra.

Y una vez puestos…  ¿Por qué no hacer lo mismo con el IVA? Es decir, poder calcular uno de los 3 parámetros (precio sin IVA, % de IVA y precio con IVA, además del importe del IVA) teniendo 2 de ellos.

Como bien sabréis, el procedimiento para los dos tipos de cálculo son distintos. No se calcula de igual forma el precio final al que quieres añadir IVA o el precio final a partir de un margen (%) de beneficio que quieres obtener (en este caso, lo ideal es calcular el beneficio sobre el precio de venta y no sobre el de compra).

El resultado de esta app android para calcular márgenes e IVA seguramente se podría mejorar pero… sencillamente funciona y hace lo que buscaba. Por este motivo… así se queda.

Dejo el enlace para descargarla aquí. Una vez descargado el archivo hay que descomprimir el zip. El archivo obtenido tendrá la extensión .apk y puedes copiarlo y pegarlo dentro de tu teléfono o tablet android (es fácil conectando el dispositivo al odenador y buscarlo en el explorador de windows). Tras ello, sólo tendrás que acceder al archivo copiado desde el teléfono o la tablet y darle doble clic para que se instale en el dispositivo.

Recuerda que para realizar los cálculos tienes que introducir 2 de los 3 datos y al apretar el botón ‘calcular’ se mostrará el resultado del 3er datos (que has dejado vacío).

Poca cosa más a añadir. Ah! Recuerdos principalmente a Iolanda y Xavi, los dos que más me han venido en mente al realizar esta app.

Saludos!

La gran mentira en SEO y cómo evitarla

Etiquetas

, ,

Seamos claros. El concepto de SEO (posicionamiento natural u orgánico) es sencillo: se trata de ‘posicionar’ una web o página web dentro de los resultados que ofrece un buscador cuando algún usuario realiza una búsqueda.

En esta entrada no voy a hablar de los beneficios de tener tu web posicionada para una serie de keywords o palabras clave (frases que el usuario busca). Creo que es fácil deducir que puede representar una de las mejores formas de obtener tráfico, visitas hacia tu web.

Tampoco voy a hablar de las distintas técnicas utilizadas para conseguirlo, ni de lo que han supuesto los distintos cambios algorítmicos que los motores de búsqueda han implementado y seguirán implementando.

Quiero hablar de la que para mí, fue y sigue siendo la gran mentira en SEO (es mi opinión).

La gran mentira en SEO pasa por ofrecer un posicionamiento basándose en palabras clave con pocas búsquedas y ocultándoselo al cliente.

Como todo o casi todo en la vida, también al hablar de SEO, podemos:

    • dar explicaciones complicadas y rebuscadas
    • facilitarlas de forma clara y sencilla (con frecuencia serán más precisas)
    • omitirlas

Es más, posiblemente, como todo o casi todo en la vida, hay una gran variedad de situaciones intermedias (entre las 3 mencionadas) que conforman una amplia paleta de gama de ‘grises’.

Es inevitable recordar algunas conversaciones con clientes o posibles clientes al ofrecerles un servicio de posicionamiento:

    • Mi web ya está posicionada. Cuando busco mi ‘nombre de dominio’ aparezco en la 1ª página de resultados

Frente a esta situación (¿graciosa?) que se repite con cierta frecuencia es fácil dar una explicación o facilitar el razonamiento con una respuesta en forma de pregunta:

    • ¿Cuánta gente busca tu ‘nombre de dominio’ en los buscadores?

Sí, hasta aquí no hay ninguna mentira. Sólo hay un desconocimiento.

La mentira, la gran mentira en SEO, aparece en situaciones parecidas pero en las que ya interviene un ‘profesional’ que cobra por realizar un posicionamiento por unas keywords que nadie usa en las búsquedas.

Ese ‘profesional’ tendrá poco trabajo (o ninguno) para posicionar la web para esas keywords (suelen tener pocos competidores) y podrá ofrecer unos precios ‘ajustaditos’. Está bien eso de cobrar por no hacer nada (ironía).

Por otro lado, ese cliente vivirá ‘engañado’ pensando que su web está bien posicionada aunque, quizás en algún momento, se pregunte el por qué el tráfico orgánico en su web no corresponde con ese ‘buen posicionamiento’. Seguramente…cosas de Internet (otra ironía).

La verdad es que es una situación que sigo encontrándome regularmente y ninguno de los afectados me ha dicho nunca algo cómo: ”Sí, ya me avisaron de que son keywords con un nº de búsquedas muy bajo”. De ser así, no habría ninguna mentira.

Son los afectados por la gran mentira en SEO. Una mentira fruto de la omisión, de la mala praxis, de la falta de ética profesional.

Si eres cliente de un servicio de posicionamiento web puedes evitar esa situación realizando la misma pregunta mencionada: ¿Cuánta gente busca esas keywords en los buscadores?

Al obtener la respuesta te darás cuenta de dos cosas muy importantes: si te lo contaron todo y si te interesa seguir con esas keywords o apuntar a otras.

 

Inciso: Bonus para cliente que se sentirá aludido

Relación de keywords, estimación de sus búsquedas mensuales y del tráfico mensual que recibiría si está posicionada en 1ª pág por la keyword :

KEYWORDS

BÚSQUEDAS MENSUALES

TRÁFICO MENSUAL

Compro coche de ocasión

10

4

Comprar coches de ocasión

50

21

Coches ocasión

590

248

Venta de coches usados

880

370

Venta de coches

18100

7602

¿Para qué keywords le interesaría posicionarse?

 

Aplicación para cifrar y descifrar archivos y textos

Etiquetas

,

En esta ocasión quiero compartir una aplicación que realicé hace varios años. Se trata de Clavis 1.0 y permite cifrar y descifrar archivos y textos utilizando un algoritmo y una clave personalizada.

Clavis, para cifrar y descifrar archivos y textos

He realizado varios cambios para facilitar su uso como el hecho de convertirlo en portable para que no sea necesaria su instalación y la creación de un archivo ‘log’ para registrar las acciones de cifrado/descifrado de los archivos.

Veamos sus principales características:

    • el programa funciona bajo windows (probado en windows 7 y debería funcionar perfectamente en windows 8)
    • totalmente portable, sin instalación, pudiendo funcionar desde un pendrive
    • mensajes de ayuda interactivos (al pasar el ratón sobre un botón o al realizar una acción, se muestra un mensaje de información o ayuda en la parte inferior
    • totalmente funcional, sin restricciones

Posibles usos derivados de cifrar y descifrar archivos y textos:

    • envío de archivos o textos cifrados:  para descifrarlos, el destinatario debe conocer el algoritmo y clave utilizados
    • cifrar archivos y textos de uso particular para mantenerlos totalmente privados

Su funcionamiento es realmente muy fácil.

Al ejecutar el programa les pedirá una contraseña de acceso. Si es la 1ª vez que se usa hay que introducir ‘clavis’ (sin comillas). En la ventana ‘Configurar’ podrá cambiar esta contraseña (‘Pass inicio’) para que sólo el usuario pueda acceder al programa. No la olvide.

El cifrado y descifrado se basan en un algoritmo y una clave (ésta puede ser una palabra o frase). Ambos pueden cambiarse desde la ventana ‘Configurar’ (deberá hacer clic en ‘OK’ para confirmar los cambios).

La idea principal es que para descifrar un archivo o texto debe usarse el mismo algoritmo y clave utilizados previamente para su cifrado. Si hubiese realizado varios cambios de algoritmo y/o clave, puede hacer clic en el botón ‘Ver log’ de la ventana ‘Configurar’ y se abrirá un documento con todo el historial (si no lo ha borrado) de cifrados y descifrados de archivos (los cifrados/descifrados de texto no quedan registrados, sólo los de los archivos).

Una vez haya accedido, poniendo la contraseña de inicio, aparecerá la ventana que se muestra al principio de este artículo y en la que podrá acceder a la sección de cifrado o descifrado desde el menú superior o haciendo clic sobre el color rojo (para cifrar) o azulado (para descifrar).

Para cifrar/descifrar un archivo sólo tiene que arrastrarlo dentro de la zona correspondiente (debajo de la leyenda ‘archivo’). El nuevo archivo cifrado se creará en la misma carpeta que el archivo original (se llamará como el archivo original anteponiendo la palabra ‘clavis’). Si desea descifrar un archivo (su nombre empezará con la palabra ‘clavis’) sólo deberá arrastrarlo a la zona correspondiente y el nuevo archivo descifrado se creará en la misma carpeta.

Para cifrar/descifrar textos sólo debe tener un texto copiado en su portapapeles y hacer clic en el botón ‘Cifrar/descifrar el texto del portapapeles’. El texto resultante ya quedará dentro del portapapeles, sustituyendo el texto original, listo para ser pegado (dentro de un archivo, en un correo electrónico, etc.). De todas formas, la ventanita central le mostrará el contenido del portapapeles (por ejem., puede usarla para modificar el texto antes de cifrarlo).

Por último, destacar que no me hago responsable de cualquier uso de la aplicación. Su funcionamiento es fácil y su curva de aprendizaje es muy corta pero recomiendo hacer varias pruebas para habituarse a su funcionamiento antes de usarla de forma sistemática.

Espero que la disfruten tanto como yo al desarrollarla.

SaludosTzTQg1wG0w== (usando el algoritmo ‘Blowfish’ y como clave la palabra ‘clavis’)

Enlace para descargar Clavis 1.0

Chuleta / Guía / Tutorial de Open Refine (Google Refine)

Etiquetas

, , ,

Chuleta / Guía / Tutorial de Open Refine (Google Refine)

Tras un tiempo sin publicar ninguna nueva entrada, en esta ocasión, voy a compartir una Chuleta / Guía / Tutorial de Open Refine (Google Refine).

No se trata de un completo tutorial de esta fabulosa herramienta sino que más bien se trata de una ‘hoja de trabajo’ que con frecuencia tengo ‘a mano’ durante la mayoría de primeras acciones en los proyectos de SEO, SEM y Analítica Web que realizo.

Chuleta / Guía / Tutorial de Open Refine (Google Refine)

OpenRefine (ex-Google Refine) es una potente herramienta multiplataforma para trabajar con datos desordenados, permitiendo limpiarlos y transformarlos. No es un servicio web sino una aplicación de escritorio, por lo que nuestros datos están seguros, aunque interactúe vía web (la aplicación se abre en el navegador).

Desde el 2 de Octubre 2012, Google no está apoyando activamente este proyecto que ha sido renombrado a OpenRefine. El desarrollo del proyecto, la documentación y la promoción está ya plenamente apoyados por voluntarios.

Generalidades

    • Fácilmente se puede descargar e instalar desde su web: http://openrefine.org/
    • Podemos concatenar varias sentencias, por ejem, value.replace («total», «»). replace («-«, «»).
    • Podemos tener varias ‘facet’ al mismo tiempo obteniendo subconjuntos de subconjuntos de registros.
    • Si nos equivocamos: ‘retoceder’ (Undo/Redo).
    • En las expresiones podemos usar comillas dobles o simples (simples para texto).
    • Utiliza lenguaje GREL en el que podemos usar expresiones regulares, concretamente en sus funciones: replace, match, partition, rpartition y split.

Filtrar: explorar, ver, encontrar

Se trata de aplicar uno o más de los siguientes filtros. Clic en ‘count’ para ver nº de repeticiones.

Filtrar: Text filter y empezar a escribir los valores que queremos encontrar.

Para localizar determinados valores: facet>custom text facet

    • Ejem: escribir value.contains(“million”) para localizar estos valores
    • Ejem: escribir toNumber(value.replace(» million», «»))*1000000 para eliminar ‘million’ y multiplicar por 1000 el contenido restante.

Ver valores duplicados: Facet>Customized facets>Duplicates facet

Ver las partes (que se repiten) de los valores de una columna: Facet>Customized facets>Word facet

Ver todos los valores de una columna: Facet>Text facet

Ver (y cambiar o agrupar) variantes similares de valores: edit cells>cluster and edit (ver ‘transformar datos’).

Obtener celdas vacías de una columna (para por ejem eliminar esos registros) : Facet>Customized facets>Facet by blank y clic en ‘true’

    • Clic en la columna principal y clic en ordenar (Sort>Sort…)
    • Clic en Sort>Reorder rows permanently situado en el nuevo menú superior que aparece
    • Situar las celdas vacías al final: Edit cells>Blank down
    • Filtramos para sólo mostrar los valores vacíos: Facet>Customized facets>Facet by blank y clic en ‘true
    • Para eliminar (ver ‘transformar datos)

Explorar datos con gráficos de dispersión
En la columna que nos interese: Facet>Scatterplot facet (clic en ‘log’ para verlo mejor). Ello muestra las relaciones entre todos los valores numéricos en cada una de las columnas.
Clic en uno de los gráficos para filtrar/mostrar esos registros.
Clic-arrastrar sobre el gráfico de la izq para seleccionar un grupo de registros y mostrarlos.

Transformar datos

Tras aplicar 1 ó más filtros:

    • en el panel izquierdo podemos editar lo que interese. Por ejem: cambiar conjunto de valores tras filtrar por nombre ( renombrar, renombrar uno para que se fusione con otro (agrupar), etc).
    • también podemos hacerlo en cualquier celda de la dcha (datos filtrados) y aplicar los cambios a todas las instancias o celdas similares.

Transformaciones conEdit cells>transform. Escribir:

    • value.unescape(‘url’) para eliminar los caracteres raros de una url
    • value.replace(“+”,””) para eliminar el signo ‘+’ (reemplazar valores)
    • replace(value, “+”, “”) para buscar, entre los valores, el signo ‘+’ y reemplazarlo por cadena vacía (reemplazar valores)
    • ‘http://’+ cells[‘nombre_columna’].value +’.com’ para obtener ‘http://valor.com’ (añadir caracteres)
    • ‘Avenida ’+value.replace(‘AV.’,’’) para añadir ‘Avenida’ al mismo tiempo que eliminamos ‘AV.’ (añadir caracteres)
    • replace(value, /d/, ») para eliminar la parte numérica de las celdas (reemplazar valores)
    • replace(value, /D/, ») para eliminar la parte no numérica de las celdas (reemplazar valores)

Podemos usar expresiones regulares (por ejem: value.replace( regex, “”)

Eliminar espacios blancos del inicio y final de los valores: Edit cells>Common transforms>Trim leading and trailing whitespace

Eliminar registros seleccionados (mostrados a la dcha): All -> Edit rows -> Remove all matching rows

Clustering (limpieza basada en similitudes)
A veces, en panel de la izq (filtro), aparece botón ‘Cluster’ que abre nueva ventana en la que podemos fusionar (merge) los diferentes grupos escribiendo en todos el mismo nombre como ‘nuevo valor de celda’.
Sino, podemos hacerlo con: edit cells>cluster and edit.
Repetir proceso para todos los algoritmos cambiando el ‘método’ y la ‘función’ (también el ‘radius’).

Limpiar valores de columna numérica:

    • Facet>numeric facet (a la izq seleccionamos sólo el tipo ‘non-numeric’ para transformar sólo éstos)
    • Si a la izq vemos que, erróneamente, los valores están muy dispersos tenemos varias opciones:
      • usar escala logarítmica para corregir: clic en Change (submenú izq) y escribir: value.log( ) (Aceptar si previsualización es correcta).
      • clic y arrastrar extremos del gráfico de la izq para visualizar subconjunto de datos más dispersos sobre los que hacer las transformaciones necesarias
    • Hacer las ‘transformaciones’ necesarias: edit cells>transform (por ejem: reemplazar ‘,’ por ‘.’ para decimales)
    • Edit cells>common transforms>to number (para terminar de convertir los números en valores numéricos

Limpiar fechas

    1. convertir valores de columna a texto: Edit cells -> Common transformations -> To text (para evitar q haya numeros)
    2. convertir valores a fecha: Edit cells -> Common transformations -> To date
    3. mostrar patrones de fecha: Facet -> Timeline facet
    4. seleccionar sólo los valores ‘non-time’  para transformar sólo éstos
    5. extraer sólo el año mediante una expresión regular: Edit cells -> Transform y escribir: value.match(/.*(d{4}).*/)[0]
      • el «. *» significa una secuencia de cero o más caracteres (letras, números, símbolos, etc.)
      • el » d» indica que estamos buscando a un dígito.
      • el «{4}» muestra que queremos coincidir exactamente 4 cifras.
      • la función value.match devuelve una matriz de resultados, de manera que usamos «[0]» recuperar sólo la primera coincidencia.
    6. convertir estos valores extraidos a fechas: Edit cells -> Common transformations -> To date

Si hay fechas con varios formatos: Edit cells -> Transform y podemos extraer el valor que nos interese escribiendo:

    • value.toString(‘yyyy’) obtenemos: 2013
    • value.toString(‘M’) obtenemos: 1
    • value.toString(‘MM’) obtenemos: 01
    • value.toString(‘MMM’) obtenemos: Ene
    • value.toString (‘MMMM’) obtenemos: Enero

Podemos usar un sólo código para obtener un sólo formato: value.toDate(‘MM/yy’,’MMM-yy’).toString(‘yyyy-MM’)

Partir/Unir columnas

Separar en distintas columnas: edit column>split into several columns (poner separador y el nº de columnas; funciona de izq a dcha). Después podemos renombrar nueva columna: Edit Column -> Rename this column

Añadir nuevas columnas

Añadir una nueva columna basada en otra columna:edit column>add column based on this column
Poner un nombre a la nueva columna y, por ejem, escribir:

    • cells(“direccion”).value+” “+cells(“ciudad”).value
    • value.startsWith(“-“) ó not(value.startsWith(“-“))
    • value[1,5] y la nueva columna contendrá los valores 2º al 5º (el 1º es 0)
    • value.substring(6) para extraer a partir del caracter nº 7
    • value.substring(3,5) para extraer los caracteres entre el 4º y 6º
    • value.facetCount(“value”, “keyword”) para crear nueva columna con el nº de repeticiones de ‘keyword’
    • cells[«A»].value / cells[«C»].value para nueva columna con resultados de división de 2 valores

Verificar con bases de datos externas como FreeBase, etc.

Geocodificación

Para geocodificar nombres y direcciones (convertir una dirección a sus coordenadas basándose en Google Maps)
Google limita a 2000 solicitudes/día (nejor sólo seleccionar algunas filas)

    1. seleccionar unas pocas filas
    2. en la columna que contiene nombres de empresas o direcciones: Edit column>Add column by fetching URLs , escribir nombre para nueva columna e introducir: «http://maps.google.com/maps/api/geocode/json?sensor=false&address=» + escape(value, «url»)
    3. En columna creada: Edit column>Add column based on this column e introducir: with(value.parseJson().results[0].geometry.location, pair, pair.lat +», » + pair.lng)

Exportar datos a excel

En menú superior dcha: Export>Excel

Recursos

Web Open Refine
OpenRefine Tutorial
Google Refine
Tutoriales en varios idiomas
Tutoriales

Hasta aquí esta Chuleta / Guía / Tutorial de Open Refine (Google Refine).

¡Felices Fiestas!