Archive for the ‘Uncategorized’ Category
Eliminar tildes con python [SOLUCIONADO]
Es muy probable que si programas en python te encuentres, alguna vez, con una situación en la que debes eliminar las tildes de algún texto.
Esto se puede hacer fácilmente utilizando el módulo unicodedata.
He creado la funcion elimina_tildes tal que asi:
1 2 3 4 5 6 7 | import unicodedata def elimina_tildes(s): return ''.join((c for c in unicodedata.normalize('NFD', s) if unicodedata.category(c) != 'Mn')) # que se puede usar asi: >>> print elimina_tildes(u"córcholis") corcholis |
Espero que os resulte útil.
Más detalles en stackoverflow.com
SEO: las mejores herramientas gratis
Os he hablado en muchas ocasiones de SEARCH ENGINE OPTIMIZATION (SEO) y me gustaría destacar algunas de las herramientas seo gratuitas más útiles.
1. Herramienta google para palabras clave: https://adwords.google.es/select/KeywordToolExternal.
Utilice la Herramienta para palabras clave para obtener nuevas ideas sobre palabras clave. Seleccione una de las opciones siguientes para introducir unas palabras o frases descriptivas, o especifique la URL de su sitio web. Sugerencias para utilizar la Herramienta para palabras clave.
2. Una vez seleccionadas las palabras clave (y las long tails, si las hubiera) para las que deseamos posicionarnos podemos chequear la densidad de keywords usando esta herramienta (gratis): densidad de keywords.
3. Tampoco debéis algo de lo que ya os he hablado, la generación de sitemaps con herramientas gratuitas como gsitecrawler.
Espero que os resulte útil esta info.
AHORRATE DINERO al pagar en eBay en OTRA DIVISA
TRUCO PARA AHORRAR AL PAGAR EN EBAY EN OTRA MONEDA DISTINTA DEL EURO: PAGAR CON TARJETA DE CREDITO O DEBITO. CONSEGUIRÁN UN MEJOR CAMBIO QUE EL OFRECIDO PREDETERMINADAMENTE POR PAYPAL: EL AHORRO ES DE UN 1% APROX.
COMPREN CON TODA LA SEGURIDAD DE PAYPAL Y ADEMÁS AHORREN UN DINERILLO EN EL CAMBIO DE DIVISA.
Algunos ya lo sabreis, pero para quien le pueda interesar les digo un truco para ahorrar un dinero al hacer compras internacionales y pagar un artículo en una divisa distinta del euro, como puede ser el dollar americano, el dollar australiano, la libra esterlina etc. Es muy sencillo.
Pues bien, una vez que habeis ganado la puja o habeis comprado el artículo que deseais en modo compralo ya! y procedeis a realizar el pago seguís los pasos habituales:
1- Botón Pagar ahora
2- Si necesitan cabiar algo en la dirección o elegir un tipo de envio o seguro que se ofrezca lo hacen
3- Botón continuar
4- En la opción de pago con PayPal se os pide que os identifiqueis, introducen su email y pasword
5- Botón continuar
AQUI VIENE LO IMPORTANTE!!!
Os aparece la página de confirmar pago, pues bien, antes de confirmar pago, arriba a la derecha podeis ver que os pone Forma de pago y algo como esto:
€447,89 EUR de Caja De Ahorros Y Pensiones De Barcelona cuenta bancaria X-7532* [ Más opciones de ingreso de fondos ]
Tipo de cambio de PayPal de 1 EUR = 1,25028 USD el 5 nov 2008.
Ese tipo de cambio es el que pone Paypal predeterminado, bastante inferior al tipo de cambio real.
Para comprobarlo visito una web de cambio de divisas y veo que el cambio es 1 EUR = 1,293
Por lo tanto me quieren quitar por la cara 4 centimos por cada Euro, qué simpáticos estos de PayPal…
Hacer click en el link [ Más opciones de ingreso de fondos ]
Aparecen tres opciones:
1- Transferencia instantánea
2- Transferencia estándar:
3- Tarjetas de débito/crédito:
1- De forma determinada PayPal hace el pago por Transferencia instantánea.
2- No recomiendo nunca que paguen por transferencia estandar ya que su banco procesará el pago con transferencia estándar como si fuera un cheque de papel o personal; en cuanto a las compras, el vendedor recibe su pago cuando la transferencia estándar se compensa, por tanto puede tardar bastante en enviar sus artículos. Evitarla siempre.
3- Si quieren ahorrarse un dinero pulsen en Tarjetas de débito/crédito, donde aparece vuestro numero de tarjeta tipo: Tarjeta Visa XXXX-XXXX-XXXX-4011 o similares.
Una vez marcada esta opción, den a continuar
Ahora os debe aparecer esto otro en Forma de pago:
$559,99 USD de Visa X-4011 [ Más opciones de ingreso de fondos ]
La conversión de divisas la gestionará su tarjeta de crédito. [ Opciones de conversión ]
Fijaros que ahora el precio sale en dollares, no en Euros como antes.
MUY IMPORTANTE!!! Si os sigue poniendo la conversión de PayPal en lugar de la frase: La conversión de divisas la gestionará su tarjeta de crédito, hacer click en el link que hay a la derecha: [ Opciones de conversión ], donde os dan dos opciones:
1- Utilizar el proceso de conversión de PayPal para completar la transacción con la divisa de la tarjeta: Con esta opción salis perdiendo, no la elijais. Paypal ofrece un tipo de cambio que infravalora vuestra mondea: No la elijais.
2- Puede enviarme la factura en la divisa especificada en la factura del vendedor: De esta manera no sabes qué tipo de cambio de divisa extranjera se va aplicar ya que lo gestiona tu tarjeta de credito, pero sale mucho mejor que el de paypal siempre, os lo garantizo. Elegid esta opción.
Luego hacer click en Enviar, os devuelve a la página Confirma tu pago y ahora si que os tiene que aparecer:
$559,99 USD de Visa X-4011 [ Más opciones de ingreso de fondos ]
La conversión de divisas la gestionará su tarjeta de crédito. [ Opciones de conversión ]
Ahora ya podeis dar a Confirmar el pago y ahorraros un dinero.
Luego mirar en vuestros movimientos bancarios y vereis como habeis ahorrado un dinerito.
Yo en el pago de 559,99 $ que he puesto de ejemplo me he ahorrado 15€: En vez de 448€ que es lo que me ofrecía de manera predeterminada PayPal he pagado 433€. Por hacer un par de clicks os podeis ahorrar un 2,5% del pago que es la comisión que se lleva PayPal por pagos internacionales.
Si le ha parecido útil esta guía, por favor vote sí abajo, así me animan a escribir más guías que ayuden a los usuarios de eBay.
Extraído originalmente de aquí
pdftk: tildes y caracteres especiales en metadatos de pdf
— my apologies to the english readers, this is related to spanish special characters so the post will only be written in spanish—
Ahora que ya sabemos instalar, extraer y modificar metadatos de los pdf usando pdftk podemos pasar al siguiente nivel: ¿cómo codificar las tildes en, por ejemplo, los autores?
Si usas un fichero como el siguiente para modificar los metadatos, se producirán fallos al almacenar las tildes (línea 3):
1 2 3 4 5 6 7 8 9 10 11 12 13 | InfoKey: Title InfoValue: On the Asymptotic Determination of Invariant Manifolds for Autonomous Ordinary Differential Equations InfoKey: Author InfoValue: Palacián, J. InfoKey: Producer InfoValue: Revista de la Real Academia de Ciencias de Zaragoza InfoKey: ModDate InfoValue: D:20021212160539+01'00' InfoKey: CreationDate InfoValue: D:20021212160539+01'00' PdfID0: 74f6cec73badf5b81956f05090f5af37 PdfID1: 74f6cec73badf5b81956f05090f5af37 NumberOfPages: 60 |
Para saber cómo tenemos que codificar los caracteres ‘extraños’ (con tilde, eñe, etc) se puede consultar la lista de códigos html
Siguiendo estas normas, nuestro fichero de entrada de metadatos será ahora:
1 2 3 4 5 6 7 8 9 10 11 12 13 | InfoKey: Title InfoValue: On the Asymptotic Determination of Invariant Manifolds for Autonomous Ordinary Differential Equations InfoKey: Author InfoValue: Palacián, J. InfoKey: Producer InfoValue: Revista de la Real Academia de Ciencias de Zaragoza InfoKey: ModDate InfoValue: D:20021212160539+01'00' InfoKey: CreationDate InfoValue: D:20021212160539+01'00' PdfID0: 74f6cec73badf5b81956f05090f5af37 PdfID1: 74f6cec73badf5b81956f05090f5af37 NumberOfPages: 60 |
mod_rewrite: RewriteCond, RewriteRule, QUERY_STRING, REQUEST_URI [GUIA RÁPIDA]
[Sorry for the english speakers, today I'm not in the mood for translating this]
Uno de mis clientes me ha pedido redireccionar su blog (un wordpress situado en /blog) a su nueva web en Joomla, que incluye el blog en el propio CMS. Hasta ahora copiaban las noticias en ambos sitios: tanto en el blog wordpress (en /blog) como en el blog de joomla (en /). Cansado de copiar las noticias en ambos sitios, el cliente me solicita que redirecciones el blog a la web.
Primera aproximación
La primera idea es simplemente añadir una nueva regla al fichero .htaccess para que cualquier dirección que apunte a /blog pase directamente al dominio raiz. Esto se haría asi:
1 2 3 | # estas dos quitan /blog y redireccionan a hyips directamente RewriteRule ^blog$ blog/ [R,NC,L] RewriteRule ^blog/$ http://www.hyips.es/ [R,NC,L] |
La primera línea redirecciona de blog a blog/. El símbolo ^ indica “cualquier cosa que empiece por… y esté en la carpeta actual”
La segunda línea redirecciona de blog/ al dominio principal.
A continuación aparece la lista de modificadores, entre corchetes:
* R : indica redirect, o lo que es lo mismo, fuerza una redirección. Si no se le pasa ningún código se devuelve una respuesta HTTP 302 (MOVED TEMPORARILY). También se puede especificar otro código de respuesta en el rango 300-400. Cuando uses este flag asegúrate de que el campo de sustitución es una URL válida. Si no lo es estarás redirigiendo a una localización inexistente!
* NC: indica no case, o lo que es lo mismo, hace el patrón insensible a las mayúsculas/minúsculas. Esto es, no hay diferencia entre ‘A-Z’ y ‘a-z’.
* L: indica al proceso de reescritura que pare en este punto y no aplique ninguna regla más de reescritura. Utiliza este flag para prevenir que la URL recién reescrita sea reescrita por reglas que se encuentren más adelante en el fichero .htaccess.
(Consulta el resto de flags en la guia oficial de Apache mod_rewrite)
Esto funcionaría para un blog de reciente creación, pero no es buena idea en el caso que nos ocupa, pues google tiene muchos de sus posts indexados.
Segunda aproximación a la solución
Para hacerlo bien, había que ver qué tenía Google indexado de su blog para hacer las redirecciones correspondientes a los artículos en la web.
Haciendo una simple búsqueda en google encontramos que tiene indexados algunos artículos. Por ejemplo:
http://www.hyips.es/blog/?p=560
Entonces buscamos el equivalente en Joomla! de ese artículo en el blog, y lo encontramos en:
http://www.hyips.es/gni-bestinv-otras-noticias
La redirección está clara: tenemos que redireccionar del primer link al segundo. Sería muy fácil construir una regla con RewriteRule, pero nos encontramos con el problema de escapar el signo de interrogación.
De hecho os animo a que probéis lo siguiente, para que veáis como NO funciona (pese a que hemos escapado correctamente el interrogante y el signo igual):
RewriteRule ^blog\/\?p\=560$ gni-bestinv-otras-noticias
Entendiendo RewriteCond
Si sabéis cómo funciona RewriteCond+RewriteRule lo siguiente no tiene ninguna gracia. Asumiré que no lo sabéis, por lo que os cuento alguna cosilla antes de dar la solución:
Cuando hacemos una petición HTTP a un servidor, Apache guarda ciertas variables. Vamos a suponer que hacemos una petición GET a un recurso del tipo:
http://www.midominio.com/carpeta1/index.php?variable1=valor1&var2=valor2
1. HTTP_HOST almacenará http://www.midominio.com
2. REQUEST_URI almacenará: /carpeta1/index.php
3. QUERY_STRING almacenará la parte de petición GET, osea: variable1=valor1&var2=valor2
También es necesario conocer cómo funciona RewriteCond:
La sintaxis de RewriteCond es como sigue:
RewriteCond STRING CONDITION
STRING debe ser una variable del servidor o una referencia anterior a alguna RewriteCond.
CONDITION puede ser una expresión regular, similar a una RewriteRule. Además puede tener variantes especiales sobre las expresiones regulares estándar.
Cómo encaja todo esto en nuestas RewriteRule? Si colocas un RewriteCond antes de RewriteRule, la RewriteRule sólo se procesará cuando la RewriteCond sea evaluada como true (esto es, si se cumple la CONDITION).
Y ya vale de teoría. Hagamos algo práctico para evitar que ciertas direcciones IP accedan a nuestro servidor.
1 2 | RewriteCond %{REMOTE_ADDR} 123.45.67.89 RewriteRule .* you-are-banned.html [R] |
Es un ejemplo bastante simple. Si la IP del visitante es 123.45.67.89, a éste se le muestra una página de baneo.
La solución final
Ahora ya sabemos lo necesario para seguir. La regla que consigue la redirección que deseamos es (sólo os pongo el ejemplo que traduce http://www.hyips.es/blog/?p=560 a http://www.hyips.es/gni-otras-noticias
1 2 3 4 5 6 7 8 9 10 11 12 | # Lo siguiente redirecciona cualquier cosa que tenga: # - el REQUEST_URI=/blog/ # - en el QUERY_STRING p=560 # a /gni-otras-noticias # Por ejemplo NO redireccionará http://www.hyips.es/articulos?p=560 a /gni-otras-noticias # SÍ redireccionará http://www.hyips.es/blog/?p=560 a /gni-otras-noticias RewriteCond %{REQUEST_URI} ^/blog/$ RewriteCond %{QUERY_STRING} ^p=560$ RewriteRule .* gni-bestinv-otras-noticias? [R,L] # La última regla para que ya no se acceda jamás al blog... RewriteRule ^blog$ http://www.hyips.es [R,L] |
RewriteCond, RewriteRule, QUERY_STRING y variables
Una vez entendido el ejemplo os propongo otro, todavía más útil. La página de mi cliente tenía indexadas en google muchísimas páginas asociadas a un tag, es decir, en el formato http://www.tusitio.com/blog/?tag=XXX Yo quería que esas tags se redireccionaran al buscador de la web en Joomla! (URLdel tipo: http://www.tusitio.com/Buscada?ordering=&searchphrase=all&searchword=XXX). Para ello construí la siguiente regla:
1 2 3 4 5 6 7 | # Regla para pasar de: # www.tusitio.com/blog/?tag=perfectmoney # a # http://www.tusitio.com/Buscada?ordering=&searchphrase=all&searchword=perfectmoney RewriteCond %{REQUEST_URI} ^/blog/$ RewriteCond %{QUERY_STRING} ^tag=(.*)$ RewriteRule ^blog/(.*)$ Buscada?ordering=&searchphrase=all&searchword=%1 [R,L] |
La línea 5 es vieja conocida, no la comento.
En la línea 6 encontramos un elemento nuevo con respecto a las anteriores reglas que expliqué; los paréntesis. Gracias a ellos se almacena en una variable el valor que sigue a la parte de la URL ?tag=, osea XXX (según el ejemplo que he puesto unas líneas más arriba).
Después sólo nos queda indicar en la RewriteRule que la búsqueda se haga a esa variable (accesible con %1). Es importante fijarse en cómo se accede de distinta forma a las variables generadas por la propiar RewriteRule ($1) de las generadas por las RewriteCond (%1).
En nuestro caso podríamos acceder al valor completo que sigue a /blog/ (sería algo del tipo ?tag=XXX) con $1 o sólo al valor del tag con %1.
¿Queda claro? Espero que la explicación os haya servido para algo…
A real case example: my .htaccess in /wordpress subdirectory
Might be helpful for people wanting to know how is a real .htaccess. This is the one I have in /wordpress:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^Wordpress/PhotoGallery$ photogallery/ RewriteRule ^PhotoGallery$ photogallery/ RewriteRule ^photoGallery$ photogallery/ RewriteRule ^photogallery$ photogallery/ RewriteRule ^photogallery/$ http://www.leccionespracticas.com/fotos/ RewriteBase /wordpress/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L] </IfModule> # END WordPress |
Resetea/adivina la contraseña de Windows Vista
En caso de que OphCrack LiveCD para Windows Vista no haya sido capaz de obtener las contraseñas del sistema se puede utilizar Offline NT Password Recovery and Registry Editor para recuperar la contraseña del Administrador u otros usuarios (es válido para Windows XP y Vista).
Solamente se necesita grabar la imagen que bajarás en un CD-R/RW para lograr un disco capaz de arrancar desde el Inicio una vez encendido el PC.
Desde luego se necesita tener activada en la BIOS la opción de arranque desde CD-ROM en primer lugar.
Y desde allí podréis activar cuentas inactivas, resetear las contraseñas de las cuentas deseadas, etc…
Esta imagen muestra el arranque de la utilidad:

Y aquí una vez arrancada, veréis algo como esto:

