; Vince y el mundo del software: internet
Mostrando entradas con la etiqueta internet. Mostrar todas las entradas
Mostrando entradas con la etiqueta internet. Mostrar todas las entradas

jueves, 22 de enero de 2015

Breve resumen de funcionalidades de google (para ahorrarles leer el manual y mejorar sus búsquedas)

Esto es para buscar en Google, para agilizar sus búsquedas.

Antes de leer, comprender que no se usan comillas excepto que lo diga explícitamente, o aparezcan comillas dentro de otras, en ese caso se ponen las interiores.

and: si quieren que aparezcan dos palabras siempre usan "and" entre las palabras ej: "hola and chao" les buscará resultados que contengan ambas palabras.
-: si quieren que no aparezca alguna palabra usan -palabraquenoquierenqueaparezca ej: "hola -chao"
"": si quieren una frase exacta usan comillas ej: "había una vez" (con las comillas) también sirve para forzar que aparezca cierta palabra, o cuando, por ejemplo, buscan una palabra rara y google se las aproxima a otra conocida: ej: buscan "hol" y google le añade resultados de "hola", pues para que aparezcan sólo resultados de "hol" y no de "hola", lo ponen entre comillas, es decir ""hol"".
site: si quieren que la búsqueda sea en una pag específica usan "site:www.pagina.com"
*: es un comodín (lo entenderán quienes usen bach XD) po r ejemplo: " hola site:*.cl" y les busca "hola" en páginas terminadas en ".cl" (páginas chilenas).
+: si pegan palabras con un "+" entre medio es lo mismo que si las separan por un espacio, ej: "había+una+vez"

búsqueda para intervalos de números: si ponen " cualquiercosa 1999..2003" es lo mismo que buscar "cualquiercosa+1999+2000+2001+2002+2003" muy útil para buscar artiiculos periodísticos, y si le suman en "and" mucho mejor, ejemplo: ""carabinero preso" and 1999..2000" (nótese las comillas) les buscará páginas con la frase exacta "carabinero preso" que además contengan los años del 1999 al 2003.
Nótese que son DOS los puntos entre los números (en este caso años), y que los números van pegados (sin espacio entre medio).

mezclando pueden hacer esto por ejemplo: ""carabinero preso" and 2000..2011 -carabinera site:*.cl" y les buscará páginas con la frase exacta "carabinero preso" entre los años 2000 y 2011 que no contengan la palabra carabinera y que sean sitios chilenos ¿ven? es muy útil si lo aprovechan.

calculadora:
-si escriben "999 pesos mexicanos" o "789 dolares estadounidenses" les aparecerá la conversión de esa moneda a la moneda local (depende la versión de google que usen, por ejemplo si usan google.es les convertirá a euros, si usan google.com.mx les convertirá a pesos mexicanos, y si usan google.cl les convertirá a pesos chilenos)
-Si quieren convertir unidades a cualquier otra, también pueden usar la calculadora, por ejemplo si quieren convertir de dólares estadounidenses a pesos chilenos, pueden buscar "345 dólares estadounidenses a peso chileno", que les transformará 345 dólares a peso chieno. si les complica escribir todo eso pueden usar las siglas, por ejemplo "345 usd a clp", y les buscará igual. pueden combinar ambas formas, como "345 dólares a clp", pero ojo, que en ese caso les buscará de dólares estadounidenses, si quieren dólares de otro país tendrán que ponerlo completo o la sigla.

-si ponen operaciones no necesitan de una calculadora, por ejemplo si escriben: 5*5 les aparecerá 25. incluso si escriben (5*5)+3*(3+4) les dará 46. incluso si escriben "tan 87" les dará la tangente de 87°, o "cos 90" les dará el coseno de 90°, muy útil.

eso, cuando me acuerde de más las anoto.
haré esta nota pública para que la puedan difundir :D

Nota: el "and" sólo hace efecto en los elementos más próximos, uno a la izquierda y otro a la derecha, por ejemplo si buscan: "hola and "había una vez" en el cielo", les hará: "hola and "había una vez"+en+el+cielo" o sea, el "en el cielo" no está afecto en el "and", y por lo tanto buscará páginas que contengan si o si el "hola" y el "había una vez" pero que no necesariamente contengan en "en el cielo" y no necesariamente en ese orden ¿se entiende?, es lógica, la búsqueda en google tiene mucho de lógica.
Nota2: complicando las cosas, se pueden usar múltiples "and" o "-", etc. por ejemplo: "hola and chao and adios -goodbye -"hasta siempre" site:www.facebook.com" y les buscará en facebook páginas que esten si o si las 3 palabras: "hola", "chao" y "adios", pero que no estén ni "goodbye" ni "hasta siempre".
Nota3: por si no se les ocurrió, para omitir resultados de alguna página en concreto (ejemplo, facebook) ponen "cualquiercosa -site:www.facebook.com"
Nota4: Para buscar libros por ejemplo, es muy útil usar las comillas para el título y el autor, y agregar "descargar" (sin o con comillas), y/o "pdf". Sin embargo para descargar cosas google cada vez es peor, ya que por presiones ha tenido que darle menos ranking a las páginas de descarga, por lo que aparecen más abajo. Si no lo encuentran en google pueden echarle un vistazo a duckduckgo, a bing o a yahoo, pero no necesariamente tienen la misma sintaxis o características que google.


Para que vean lo complejo que es el buscador de Google, y no lo miren a huevo, es una maravilla de software.
 
Artículo del 2011, copiado de mi blog filosófico y actualizado un poco con más tips y aclaraciones. Si te sirvió compártelo, y si tienes más tips ponlos en los comentarios. Google es muuuy potente y acá puse lo más importante, pero si tienes tips útiles, compártelos.
 

jueves, 10 de abril de 2014

Breve y sencilla explicación del bug de OpenSSL "HeartBleed"

El bug recientemente parchado de openssl, llamado "heartbleed", ha estado muy en boca de todo el mundo recientemente. Bueno, al menos del mundo informático, e incluso ha ido más allá.
OpenSSL es la implementación de protoclos de seguridad SSL/TLS más famosa y usada. Los mencionados protocolos son los que se usan para encriptar información en internet. Y se usan en, por ejemplo, https (el candadito en la url), ftps, ssh, etc.
La idea de usar esta encriptación, es por ejemplo en https (lo más usado por los usuarios entre los mencionados anteriormente), que nadie pueda leer la información entre tú y la página web. De esta manera puedes pasar una contraseña a la página web y estar seguro que nadie podrá leerla y saber cuál es haciendo un análisis de tráfico web (o sea por ejemplo alguien espiando tu internet, como puede incluso ser gente de los proveedores de internet o la policía que analice tu tráfico).
Para compartir tráfico encriptado entre usuario y servidor, hay que iniciar una sesión TLS entre ambos, tras lo cual se comparten de manera segura la clave que usarán para cifrar y descifrar los mensajes. Ahora, el problema en SSLv2 y anteriores, es que si pasaba cierto tiempo desde que se inició la sesión tls y no habían paquetes entre las partes, la sesión TLS se cerraba, teniendo que inicarla nuevamente, creando las claves y todo eso, lo cual era tiempo y gasto computacional. Eso se mejoró con la versión 3 de SSL, que implementa un sistema llamado "heartbeat" (latido del corazón, como para avisar que aún sigues vivo), con el cual podías mantener abierta una sesión TLS más tiempo.
Para ello, el cliente manda un mensaje de tipo "TLS1_HB_REQUEST", con dos campos: El payload (el mensaje), y el tamaño del payload. Luego el servidor le manda otro mensaje de vuelta llamado "TLS1_HB_RESPONSE" que copia el payload y lo manda de vuelta, para 'configurar' la respuesta. Los campos del mensaje response del servidor incluyen el mismo payload y el mismo largo.
El truco viene en que OpenSSL no comprueba que el payload tenga el mismo largo que el que se mandó en el campo "largo". Esto hace que OpenSSL "crea ciégamente" que el payload tiene ese largo (sin comprobarlo), y envía de vuelta lo que debiera ser el payload. Pero el truco consiste en mandar un payload de 1 byte, y un campo "largo" diciendo que nuestro payload mide 64KB, es decir varios miles de veces más. Lo que hará OpenSSL será empezar copiando desde el payload, hasta 64KB más adelante de lo que haya en la memoria ram (el payload reside en la ram, entonces copia desde el comienzo del payload hasta 64kilo bytes más adelante, haya lo que haya), copiando así trozos de memoria ram pertenecientes a OpenSSL que no eran parte del payload, sino de trozos de código y datos del mismo OpenSSL.
El problema es que OpenSSL contiene contraseñas, las claves de cifrado, y muchas otras cosas sensibles; de manera que mandando continuamente mensajes truqueados, obtendremos cada vez 64kb de memoria de trozos aleatorios del programa, pudiendo obtener potencialmente gigas y gigas de trozos, que incluyen contraseñas, claves, etc.
Dejo un mono explicativo:


Este fallo se reportó varios años antes, pero no ha sido sino hasta el reciente 7 de abril 2014 que se ha publicado el parche para que no siga ocurriendo. Hasta que las páginas no actualicen su versión de OpenSSL seguirá ocurriendo el problema, y los servidores serán potenciales víctimas de ataques. Eso sí, esto sólo roba las contraseñas que están en la memoria RAM, es decir sólo los ingresos recientes, o activos, así que la recomendación sería no ingresar hasta que sea reportado el que actualizaron el software y repararon el problema.

Fuentes:
Blog de Chema alonso, un experto en seguridad http://www.elladodelmal.com/2014/04/heartbleed-y-el-caos-de-seguridad-en.html
Video explicativo en inglés del fallo, con monitos http://parkerati.com/my-quick-video-post/

domingo, 2 de marzo de 2014

Transformar todos los txt a html de una carpeta y escaparlos

¡Hola! Acá nuevamente con un script. Tal vez les latee tanto script, pero así es la vida de un informático, al menos la mía, que cuando quiero hacer algo busco como hacerlo, y si no lo encuentro... ¡Pues hago un script que lo haga! XD
Esta vez quería escapar muchos txt, para así transformarlos a html; para ello necesito transformar los carácteres prohibidos en html a su forma escapada, y luego los saltos de línea transformarlos a "<br />". Bueno, no quité los saltos de línea, simplemente le agregué el tag. Y puse un mensaje de advertencia para prevenir ejecutarlo sin querer, ya que los efectos pueden ser nefastos.
Además, no quería escapar los &, ya que habían algunos txt ya medio escapados, pero si no es su caso borran la línea marcada y ya está.

Para ejecutarlo, simplemente van a la carpeta donde están todos los txt y ejecutan el script, luego de la pregunta, transformará todos los txt a html y les cambiará la extensión.

Acá el script y también en Pastebin. Compártelo y cópialo tanto como quieras.
 
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Por Erick Francisco Merino Menares @vincegeratorix
import os
import re
import sys
import cgi
import codecs
print "esto cambiara los saltos de linea por br, sólo si está seguro proceda"
entrada = raw_input("si/no: ")
if entrada != "si":
 print "decidió salir"
 sys.exit(0)
txts = ([f for f in os.listdir(os.getcwd()) if re.match(".+(\\.(?i)([tT][xX][tT]))$", f)])
for i in xrange(len(txts)):
 f=codecs.open(txts[i], encoding='utf-8', mode="r")
 string = f.read()
 f.close() 
 reemplazado = cgi.escape(unicode(string)).encode('ascii', 'xmlcharrefreplace')
 reemplazado = unicode(reemplazado.replace("\n", "aqui va el tag br, que el maldito script no me lo escapa, vean el link de pastebin\n<br />"))
#Esta línea de abajo lo pueden quitar, es para "antiescapar" los ampersand
 reemplazado = unicode(reemplazado.replace("&amp;", "&")) 
 archivo=codecs.open(txts[i], encoding='utf-8', mode="w")
 archivo.write(reemplazado)
 archivo.close()
 nombre = str(txts[i])
 nombreHtml = nombre.replace(".txt", ".html")
 os.system("mv " + nombre + " " + nombreHtml)
print "terminó con exito"

sábado, 21 de diciembre de 2013

Descargar videos de edx y más

Alerta: El script de edx-downloader ha sido actualizado y no es compatible con la versión mostrada acá, por lo que la versión de acá no funciona ahora. Este post tiene sólo fines históricos. No me he dado el tiempo de modificar el script nuevo, y nada presagia que lo haga, al menos en el futuro cercano.

Hola, dejé botado este blog un tiempo, y es que no había mucho que contar. Pero acá estoy de vuelta.
El tema de ahora es simple: Resulta que soy un ávido seguidor de los moocs (Cuando me queda tiempo libre), dígase coursera, udacity, edx, y en español, miríadax.
En Coursera se puede descargar el material fácilmente, lo cual me sirve para verlo en mi tablet mientras viajo, o cuando no tengo internet o lo estoy usando para otra cosa. Sin embargo, el resto de páginas no tiene una forma fácil de descargar el material, al menos no a simple vista. Eso hasta que me encontré con el edx-dl.py, un script en python para descargar vídeos con sus subtitulos respectivos, de los cursos que uno está inscrito, y las semanas que uno escoga (Poniéndole números consecutivos de dos dígitos). Dejo el script en Este Link, y como respaldo, Acá también en pastebin; aunque recomiendo usar el link original para darle más descargas al autor. Para descargarlo de la web del autor deben hacer un clone al git del autor, para ello, pon en la consola (en linux):
git clone https://github.com/shk3/edx-downloader.git
Debes tener instalado git.
El script es muy bueno, pero le encontré cosas que no me gustaron:
Cuando uno está descargando, y de repente falla, se apaga el pc, se corta la conexión, etc, hay que empezar de nuevo el script, poniendo el usuario, contraseña, y esperar que cargue toda la información (si son muchas lecciones puede tardar varios minutos). Claro que los vídeos y subtítulos descargados no los descarga nuevamente, pero sí que los revisa uno por uno (al igual que mi script).
¿Mi solución? Pues estuve metiéndole mano al script y logré lo siguiente:
-Un script para descargar los subtítulos solamente, ya sea de youtube como de edx, con los números consecutivos de 3 dígitos. Además muestra en consola todos los links de youtube.
-Otro script que toma un archivo con los links de youtube y los descarga con las opciones que uno le especifique, y con los correspondientes números consecutivos de 3 dígitos.
Dejo En Este Link el script para los subtitulos con los números consecutivos.
Y En Este Otro Link el otro script para descargar de youtube los videos con los números consecutivos.
Para ejecutar cualquiera, deben tipear en la consola:
python "nombre del script"
En "nombre del script" basta arrastrar el script si es que usan un emulador de consola que permita el drag and drop.
Espero les sirva, saludos!

jueves, 1 de agosto de 2013

Cómo cambiar la dirección MAC en linux fácilmente

Bueno, hace un tiempo que no escribía acá, y qué mejor que con un minituto. Espero más adelante en otro artículo contar mis andanzas con python y kivy durante el tiempo de paro de actividades en mi universidad.
Pero vamos a lo que nos concierne:

¿Qué es una dirección MAC?
En palabras sencillas (lo cual es tónica de este blog), es una dirección formada por 48 bits que identifica a la tarjeta de red. La dirección MAC es única para cada tarjeta de red, y está grabada por hardware, de manera que nunca habrán dos tarjetas de red con la misma dirección MAC.
Eso a nivel de hardware, porque en software todo se puede cambiar; y eso veremos ahora, pero primero:

¿Por qué cambiar la dirección MAC?
Pues porque con ella te identificas en la red, y cambiándola te puedes hacer pasar por otro quedando tú en el anonimato.
Otra razón es para pasar por alto los filtros de bloqueo por dirección MAC. Esto es cuando en un router te bloquean la dirección para que no accedas a internet desde ese punto. Esto puede ser una realidad cuando accedes a una red wifi que no es tuya. Con esto quiero decir que estoy totalmente en contra de usar puntos de acceso a internet en los que no estás autorizado.

Bueno, vamos a los pasos:
Lo primero es saber a cuál interfaz le quieres cambiar la dirección MAC, para lo cual basta con introducir el siguiente comando:
$ ifconfig
El cual te listará las interfaces. Yo personalmente tengo 3, las cuales son: "eth0" que es la conexión por cable (el cable rj45, cable de red); luego está "lo" que es la red local de linux; y luego "wlan0" la cual es la interfaz de wifi.
A un lado del nombre aparecen tabuladas las características de la interfaz tales como la ip, lo subido y bajado, y en la primera verás: "direcciónHW" y a un lado una serie de números y letras.
En realidad las letras también son números, ya que están codificados en base 16, pero eso es tema aparte. El asunto es que esos números son tu dirección MAC, y eso son los que cambiaremos (por software). Recuerda que cada vez que reinicies el pc volverá la dirección MAC de fábrica; punto a tener en consideración.

Lo primero que tienes que hacer es apagar la interfaz; esto se hace como root (recordad que el signo peso representa comandos en modo usuario y el gato en modo root), y es el siguiente comando:
# ifconfig <interfaz> down
ejemplo:
# ifconfig wlan0 down

Luego de apagarla procedes a cambiarle la MAC address. para ello basta con el siguiente comando:
# ifconfig <interfaz> hw ether <dirección>
 un ejemplo sería:
# ifconfig wlan0 hw ether 03:a0:04:d3:00:11

Sin embargo uno comúnmente va a querer cambiarle a una dirección MAC aleatoria, para lo cual estar variando siempre los números no tiene mucho sentido. Para hacer ésto vamos a usar el programa "macchanger"
Primero instala el programa con tu gestor de paquetes preferido, en ubuntu sería algo como:
# apt-get install macchanger
si quieres instalar la versión en gtk (personalmente no me gusta, además si tienes un error te lo mostrará en consola y no en interfaz por lo que no tiene mucho sentido instalarla) puedes instalar también  el paquete "macchanger-gtk"

Bien, una vez instalado el programa macchanger, y apagada la interfaz, procedemos a cambiarle la mac address; para lo cual basta con:
# macchanger -r <interfaz>
ejemplo:
# macchanger -r wlan0
Así de simple.

Ahora procedemos a prender nuestra interfaz con:
# ifconfig <interfaz> up

¡Y es todo!
Apéndice:
Si usas una tarjeta wifi Ralink (como la que yo uso), asegúrate de no estar usando el kernel 3.8.0, porque -al menos en ubuntu- en el módulo viene desactivada la función de cambiar la mac address, a lo cual te mandará un error de "argumento inválido". Personalmente me pasé a la versión 3.10 y no tengo problema.

Recuerda que si no quieres pasar de usuario a cada rato, puedes usar el comando "sudo" antes de los comandos especificados en este tutorial para los casos en que se requiera ser root (donde sale el gato o almohadilla).

¡Y eso es todo! Recuerda comentar ante cualquier duda o comentario (gracias capitán obvio).