viernes, 31 de diciembre de 2010

Script en PHP para felicitar a todos tus followers

Para este 31 de diciembre quise desearles un feliz año a todos los que me hacen el favor de leerme vía Twitter, así que me resigné a la tardada tarea de hacerlo persona por persona. No suena tan mal pero me tardaría todo el día, así que se me ocurrió la idea de hacerlo mediante un script (en PHP).

Primero hay que registrar tu aplicación (client) para obtener el consumer key, el consumer key secret, etcétera; sigue las instrucciones en esta otra entrada.

Recuerda instalar PHP CLI y PHP curl. Si utilizas un Debian o Ubuntu todo es tan fácil como

apt-get install php5-cli
apt-get install php5-curl

Uso: php felizanio.php


Ahora el código:

require('twitteroauth.php');

// Oauth settings: llenar segun datos al crear tu aplicacion
$consumerKey= 'XXXXXXXXXXXXXXXXXXXXXXX';
$consumerSecret = 'XXXXXXXXXXXXXXXXXXXX';
$oauthToken = 'XXXXXXXXXXXXXXXXXXX';
$oauthTokenSecret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX';

$followers = array();

$conexion = new TwitterOAuth($consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);

$followers = get_followers($conexion, $followers); // se obtiene un arreglo con todos tus followers

mensaje($conexion, $followers); // Manda el mensaje.


function get_followers($con, $fl){
$next_cursor = -1;
$hay_followers = true;
$path = 'statuses/followers';

while($hay_followers){
$parametros = array('cursor'=> $next_cursor,);
$timeline = $con->get($path,$parametros);

$users = $timeline->users;
$next_cursor = $timeline->next_cursor;

foreach($users as $value){
$fl[] = "@".$value->screen_name;
} // fin foreach

if($next_cursor == 0){
$hay_followers = false;
} //fi
} // fin while
return $fl;
} // fin get_followers()

function mensaje($con,$fl){

$a = "#FF y Feliz año ";
$b = $a;

foreach($fl as $value){
$value.= " ";
if(strlen($b.$value) <=140){
$b.=$value;
}else{
$twitter = $con->post('statuses/update', array('status' => $b));
echo"\n"."$b"."\n";
$b=$a;
$b.=$value;
}
}
$twitter = $con->post('statuses/update', array('status' => $b));
echo"\n"."$b"."\n";

}


*Nota: También son necesarias las librerias twitteroauth.php y Oauth.php escritas por Abraham Williams.

Todos los archivos necesarios están en aquí.

http://www.fileden.com/files/2010/10/29/3004194//felizanio.zip


Por último, para todos aquellos que puedan leer este artículo les deseo un 2011 lleno de paz y mucho éxito, que todos sus proyectos se realicen.

Felices líneas.

as

martes, 2 de noviembre de 2010

Una alternativa a Limewire [Actualizado]




En esta entrada les quiero mostrar a FrostWire como una de las alternativas a Limewire, que como sabrán, dejo de funcionar por problemas legales.

La interfaz de FrostWire es casi idéntica a las anteriores de Limewire, es Open Source y también te permite bajar torrents, compartir archivos y todo lo que un programa P2P hace.

Descárgalo de aquí

http://www.frostwire.com/?id=downloads

Edit:

En los blogs de hipertextual me enteré de LimeWire Pirate Edition, el cual tiene todas las virtudes de la versión PRO del desaparecido LimeWire pero sin costo alguno. Actualmente se encuentra disponible vía torrent.

También puedes descargarlo aquí.

viernes, 29 de octubre de 2010

Script para dejar de seguir a alguien si ha publicado cierta frase en Twitter. (PHP)



Después del rollo que me aventé en el título de esta entrada paso a explicar:

En Twitter hay frases o temas que se ponen de moda, algunos son graciosos, otros interesantes, probablemente haya los que nos parezcan tan molestos que quisieramos dejar de seguir a aquellos que escriban sobre él. Respecto a lo anterior, cierto día leí a una persona que comentaba en tono de broma que sería buena idea que hubiera un script que pudiera "dar unfollow" a quienes escribieran cierta frase en su estatus; a mí en lo personal me hizo gracia ya que en verdad hay momentos en que parece que sí hace falta algo así, por lo que me dí a la tarea de empezar a escribir unas líneas al respecto hasta que salió este script.

Antes que nada debo aclarar, que el verdadero fin de realizar este ejemplo no es dar unfollow a diestra y siniestra (para eso no sigo a nadie desde un principio), sino para ver el uso de Oauth y de la API de twitter, puede que un segmento de este código le sirva a alguien en un futuro:

Ahora sí manos a la obra. Como ya sabrán antes hacer una actualización a twitter era relativamente fácil con PHP (y con cualquier otro lenguaje), sin embargo hace unos meses solo se puede hacer mediante Oauth. Afortunadamente almas caritativas han hecho el trabajo sucio por nosotros y han escrito las librerías que facilitan nuestra tarea.

Para que nuestro script funcione necesitamos crear una aplicación: "logueados" en nuestra cuenta de Twitter desde esta página.

Llenamos los datos:

En Application Name, Description, Application Website y Organization escribe lo que desees.
En Application Type selecciona Client.
Callback URL déjala en blanco.
Default Access type: Read & Write.
Por último si quieres adórnala con ícono.

Una vez registrada nuestra aplicación necesitaremos los siguientes datos:

Consumer Key y Consumer Secret.

Además

Access Token (oauth_token) y Access Token Secret (oauth_token_secret).

Estos últimos los obtenemos dando click en el botón My Access Token que esta a la derecha.


El código es el siguiente:


#! /usr/bin/php

require('twitteroauth.php');

// Oauth settings: llenar segun datos al crear tu aplicacion

$consumerKey= 'XXXXXXXXXXXXXXXXXXXXX';
$consumerSecret = 'XXXXXXXXXXXXXXXXXXXXX';
$oauthToken = 'XXXXXXXXXXXXXXXXXXXXX';
$oauthTokenSecret = 'XXXXXXXXXXXXXXXXXXXXX';

// crea el objeto.
$conexion = new TwitterOAuth($consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);

$path = 'statuses/home_timeline';

$parametros = array('count'=> 6, 'page'=> 1,);


if(isset($argv[1])){
$i = 1;
while(isset($argv[$i])){
$cadena = $cadena.$argv[$i]." ";
$i++;
}

$cadena = chop($cadena);

$timeline = $conexion->get($path,$parametros);

if ($conexion->http_code == 200) {

foreach($timeline as $tweet){

$texto = $tweet->text;
// se obtiene un objeto con los datos de usuario
$user = $tweet->user;

$usuario = $user->screen_name;

// si esta el texto, hace el unfollow
if(strstr($texto,$cadena)){
echo"BYE BYE $usuario ahora sigue a @driverInside :D";
$conexion->post('friendships/destroy', array('screen_name' => $usuario));
}

}

} else {
echo"\n Error de conexion \n";
}

}else{
echo"\nDebes ingresar la cadena a buscar.\n";
echo"Uso: php unfollow.php [cadena]\n";
echo"Ejemplo: php unfollow.php #SigueAdriverInside";
}

?>

Un ejemplo de uso es php unfollow.php Un ejemplo de mensaje

Notas:

Necesitas obviamente tener php.

http://windows.php.net/download/
apt-get install php5-cli

También necesitas curl:

apt-get install php5-curl
(en el instalador de php en Windows deberás seleccionar que se instale curl).

Como puedes ver en la línea "require('twitteroauth.php');" el programa utiliza otros archivos para funcionar, estos son twitteroauth.php y Oauth.php escritos por Abraham Williams ( http://abrah.am ) los cuales debes poner en la misma carpeta que tu aplicación.

Aquí los archivos:

http://generadoresfree.com/wc/manuales/aptelmex.zip
http://www.fileden.com/files/2010/10/29/3004194//aptelmex.zip


Y lo más importante, es multiplataforma (bueno lo he probado en Ubuntu 10.10, Ubuntu 9.10, Windows 7 y Windows XP; en Mac todavía no :3).

Sin más les deseo felices líneas y feliz día de muertos.

miércoles, 22 de septiembre de 2010

Cómo asegurar nuestras contraseñas

Las buenas prácticas nos señalan que debemos tener una buena contraseña que cumpla con características como estas:

  • Mínimo de caracteres.
  • Que contenga símbolos especiales (./%$...)
  • Que incluya mayúsculas y minúsculas.
  • Que no contenga tu nombre de usuario.
  • No incluya caracteres consecutivos o repetidos (12345, 88888)
  • Y un largo etcétera.
Sin embargo (aquí viene el pero) leyendo a @cfernandezlara y @cibercrimen me entero que el 75% de los usuarios de internet utilizan la misma contraseña en sus cuentas de correo electrónico y redes sociales.

A mí parecer esto se debe en parte a que recordar una contraseña con las características antes mencionadas parece muy complicado, además si tengo varias cuentas (msn, gmail, facebook, twitter, etcétera) la dificultad parece aumentar.

¿Pero en realidad es tan difícil recordar tantas contraseñas? La respuesta es no. Una solución es seguir teniendo la misma contraseña pero con algunos cambios, uno de ellos es utilizar el mismo nombre del sitio (o servicio) dentro de la contraseña para poder diferenciarlas más o menos del siguiente modo:

mismaClave + Sitio

Siguiendo esta fórmula podemos ir formando una contraseña segura con estos sencillos pasos:

1. Elegir una frase fácil de recordar (o tu misma contraseña de siempre); como es el mes patrio y año del bicentenario yo voy a usar "viva México". Quedaría:

vivaMexico

2. Utilizar 1337, es decir, sustituir letras por números o caracteres especiales.

v1v4M3x1c0

3. Separar la frase con uno o varios caracteres especiales. También puedes ponerlos al principio o al final.

v1v4..M3x1c0

Date cuenta que tienes tu contraseña de siempre, con algunos cambios pero que no dificultan el que la recuerdes ya que puede leerse casi igual que al principio.

4. Añadir el sitio o servicio. Esto es lo que la hace única. Ya sea que pongas el nombre completo del sitio o servicio o una abreviatura.

v1v4..M3x1c0twi
v1v4..M3x1c0msn
FBv1v4..M3x1c0
SQLv1v4..M3x1c0


Al final tenemos una contraseña de 14 o 15 caracteres de longitud, con mayúsculas y minúsculas, con caracteres especiales y fácil de recordar. Ahora cuando quieras ingresar a alguno de tus perfiles solo pensaras en tu frase o contraseña de siempre y en la página donde te encuentres.

Más info:

Wiki
Microsoft
Comprobador de contraseñas



lunes, 23 de agosto de 2010

Is your Apple Mac feeling slow?

Navegando por la red me encontré con esta imagen y no pude parar de reir. Creo que no tengo que explicarla, pero si no sabes de que se trata, solamente te diré que no debes de hacerlo.

Para que no se queden con la duda, les dejo un video que muestra lo que pasa en un Ubuntu 9.10.




Imagen de hornoxe.com
Para saber más.

jueves, 19 de agosto de 2010

Envío automatizado de mensajes en emesene con Eval

Si son usuarios de algún cliente de mensajería instantánea, probablemente hayan querido encontrar la manera de mandar mensajes a alguno de sus contactos de manera automática; por ejemplo el contenido de un archivo de texto.

Se me ocurrió utilizar uno de los complementos que tiene emesene llamado EVAL para dicha tarea.

Primero tuve que habilitar el complemento.

Ahora el script en python.

/eval import time
archivo = open("/home/driver/msn.txt","r")
for linea in archivo.readlines():
send(linea)
time.sleep(3)
archivo.close()


Noten que hay una instrucción time.sleep() yo la agregué para darle una pausa al envio. Una opción puede ser time.sleep(0.5) para que mande los mensajes cada medio segundo.

Por último, tenemos que copiar el script y pegarlo en la ventana del contacto al que queremos enviar el texto.

Salu2 y felices líneas.

miércoles, 21 de julio de 2010

Paint.net: Una buena alternativa.



Hoy les voy a recomendar una excelente herramienta (que muy probablemente ya conozcan) para editar imágenes: Paint.net.

Este software es útil tanto para las personas que gustan del diseño gráfico como para aquellas que sólo quieren redimensionar sus imágenes y hacerles pequeños ajustes.

En mi opinión es una alternativa excelente a opciones un poco más avanzados como Photoshop o Illustrator además hay que sumarle que su mayor ventaja es que no hay que pagar licencia y existen gran variedad de plug-ins que lo hacen muy competitivo.

Descárgalo de aquí

Salu2.

martes, 25 de mayo de 2010

Comprueba tu nivel de privacidad en Facebook

Existe una utilidad que nos permite saber el nivel de privacidad en nuestra cuenta de facebook.

Solo sigue estos sencillos pasos:

1. Abre tu perfil de facebook.

2. Copia este enlace y pégalo en la barra de direcciones.

javascript:(function(){var%20script=document.createElement('script');script.src='http://static.reclaimprivacy.org/javascripts/privacyscanner.js';document.getElementsByTagName('head')[0].appendChild(script);})()

3. Si es necesario, configura tu perfil.



Fuente.

sábado, 22 de mayo de 2010

El orden natural de las cosas

Por cosas como esta, se producen errores en la Matrix, se detiene el movimiento de la Tierra un instante o se abren portales hacía otra dimensión.


Faltó poco para que alterara el orden natural de las cosas. No lo intenten en sus casas.

viernes, 7 de mayo de 2010

Diego Schoening: Soy tu fan.

No es broma, pero explico el por qué del título de esta entrada que al parecer no tiene nada que ver con el blog.

Desde el 2007 existe una propuesta para un acuerdo comercial multinacional (en que México se ha unido a las negociaciones) llamado ACTA o Acuerdo Comercial Anti-falsificación, por sus siglas en inglés.

Este acuerdo comercial tiene como objetivo proteger la propiedad intelectual estableciendo normas internacionales para lograrlo; algunos paises involucrados en las negociaciones son: Estados Unidos, Nueva Zelanda, Corea del Sur, Jordania, Marruecos, la Unión Europea, México, entre otros.

Aunque parezca algo de todos los días sin ningún trasfondo, la realidad es otra. ACTA ha estado llena de irregularidades desde su nacimiento y oculta al público. De ser aprobada, los paises involucrados se comprometerían, entre otras cosas, a violar la privacidad de los usuarios y a obligar a las compañías proveedoras de servicios de internet (ISP) a instalar los mecanismos necesarios para realizar esta tarea. Los ISP deberán informar si existe la sospecha de que un usuario esta violando de alguna forma los derechos de autor de alguna obra, para que la instancia correspondiente, tome cartas en el asunto.

¿Y qué tiene que ver todo esto con el ex-Timbiriche?. Fácil. Una de las industrias detrás de todo esto que se desea "proteger" es la de la música. Lamentablemente, dicha industria sigue aferrada a un modelo comercial obsoleto y sin futuro que a la fuerza quieren mantener.

Hay quienes ya se dieron cuenta que la industria de la música tiene dos caminos: Seguir así y convencer a la fuerza a los consumidores a comprar los productos haciendo uso de medidas como ACTA o evolucionar.

Diego Schoening prendió su foco y apostó por una nueva forma para distribuir su trabajo. ¿El resultado? Vendió más de 800,000 copias!! Aplausos!!! Más que Alejandro Fernandez!!

"Bueno, pero seguramente lo respalda una disquera con experiencia" podrían decir. ¡Para nada! Este tipo le vendió 300, 000 copias a la compañía de jabones a la que le hace los comerciales y el resto una tienda de videos, pudiendo así, llegar a su público sin seguir las "formas tradicionales" de distribución. En palabras de Rene Franco: "Se paso por el arco del triunfo a toda la industria de la música en México".

Y no todo termina ahí. Este ex-Timbiriche también esta en contra de las rídiculas medidas propuestas por ACTA, dando un ejemplo de que sí se pueden hacer las cosas bien. Al final el consumidor es beneficiado y el se lleva su merecida contribución por su excelentre trabajo.




Más info.

viernes, 30 de abril de 2010

Cómo recuperar GRUB después de instalar Windows con LIVE CD

Hace unos días uno de mis sistemas operativos pasó a mejor vida (adivinen cuál), así que aproveché la ocasión para actualizarlo a la versión más reciente.

Como pasa en estos casos, tuve que restaurar el GRUB para poder entrar de nuevo a Linux. Tuve que preguntarle al Tío Google cómo hacerlo.

Y me respondió:

http://www.guia-ubuntu.org/index.php?title=Recuperar_GRUB




Ojo: Si tienes GRUB2 (como fue mi caso) tienes que usar un LIVE CD con una distro que use GRUB2, no importa si no es la misma que tienes instalada. Si por algún motivo no tienes LIVE CD puedes hacerlo usando Super Grub Disk, en la guía también dice como hacerlo paso a paso.

viernes, 9 de abril de 2010

Hola Mundo en PHP

PHP (Hypertext Pre-Processor) es un lenguaje interpretado e incrustado que originalmente fue diseñado para la creación de páginas web dinámicas.

Aunque su función principal es la interpretación del lado del servidor (server-side scripting), actualmente puede ser utilizado en una línea de comandos o en la creación de otros tipos de programas incluyendo interfaz gráfica.

Más info aquí o aquí.

Dar los primeros pasos en este lenguaje, es realmente sencillo. Como se darán cuenta tendrán que realizar algunas cosas antes (que ya he explicado paso paso en la entrada anterior), pero no hay mayor problema.

Antes que nada, hay que saber que para incrustar el código PHP se usan unos tags o etiquetas que indican dónde empieza y dónde termina.

La forma estándar y recomendada es la siguiente:


<?php ?>

PHP tiene varios modos de mostrar valores en una página. Los dos más habituales son el uso de print( ) y de echo. Aunque se crean como idénticas, no lo son.

En este caso usaremos echo.



Para visualizar el resultado en el servidor que instalamos previamente tenemos que crear un archivo con nuestro poderoso notepad (en windows) o el editor de su preferencia.

Lo guardamos como holamundo.php (o con el nombre que deseen pero con extensión php).

Tenemos que guardarlo en el directorio destinado a nuestras páginas dentro de la configuración del servidor.

Lo que nos resta es ver los resultados, tan solo debemos abrir una ventana de nuestro explorador y escribir en la barra de direcciones:

http://127.0.0.1/holamundo.php

o

http://localhost/holamundo.php

miércoles, 10 de febrero de 2010

Cómo instalar WAMP (Apache, MySQL y PHP)


Aunque el término es originalmente LAMP, existen variantes y alternativas. Dicho acrónimo se refiere a un conjunto de herramientas:

  • Linux (LAMP) / Windows (WAMP).
  • Apache.
  • MySql.
  • PHP.
Una de las soluciones más sencillas para su instalación en Windows puede ser AppServ, WampServer o xampp.

En esta entrada explico la instalación de AppServ 2.5.10.

Primero hay que descargarlo de aquí.

Después de aceptar los términos de la licencia, ponemos la carpeta destino. Damos click en siguiente (o Next).


Elegimos todos los componentes y damos en Siguiente.

En nombre del servidor escribimos localhost, en el mail del Administrador podemos poner cualquiera y en el puerto http se pone 80 (el default).


Por último establecemos la contaseña para MySql y damos Instalar.


Una vez terminada la instalación abrimos una ventana del explorador y en la barra de navegación escribimos http://localhost/ para ver que todo vaya bien.



Explorando C:\AppServ podemos ver que se crean 4 carpetas. C:\AppServ\www es la carpeta por defecto para nuestras páginas. Podemos crear una en Mis Documentos , quedaría por ejemplo:


En C:\AppServ\Apache2.2\conf abrimos (puede ser con el bloc de notas) el archivo httpd.conf



Editamos la línea que empieza con Document root "C:/AppServ/www" y ponemos la ruta de la carpeta que creamos para nuestras paginas.



DocumentRoot "C:\Documents and Settings\Administrador\Mis documentos\Mis Paginas"


Buscamos la parde donde dice:

<Directory "C:\AppServ\www">

Y lo cambiamos por>


<Directory "C:\Documents and Settings\Administrador\Mis documentos\Mis Paginas">




Guardamos los cambios y reiniciamos el servicio. INICIO - Todos los Programas - AppServ - Control Server by Service - Apache Restart.

Lo único que nos falta es probar que todo va bien. Creamos un html llamado index en la nueva carpeta y lo abrimos en nuestro navegador escribiendo http://localhost



<html>

<head>

<title>prueba appserv</title>

</head>

<body>

Prueba de appserv

</body>

</html>




Se debe ver algo como esto:

sábado, 23 de enero de 2010

Denial of Service a elhacker.net

Me llamó mucho la atención esta noticia y más por tratarse de una comunidad famosa y con muchos usuarios.

Desde este otro sitio publican un DoS precisamente a esta página junto con un video. Incluso la consulta que en palabras del autor: "deja a libre eleccion la cantidad de titulos de noticias a ser mostradas".

Sin más palabras :S




Más información:

http://hielasangre.diosdelared.com/

viernes, 22 de enero de 2010

Personaliza tu Firefox


Firefox no deja de estar a la vanguardia en todo, incluso en darle gusto a sus usuarios.

Personaliza tu navegador con Personas y darle tu propio toque y estilo. Puedes crear el tuyo o elegir alguno de la galería.

Además la versión 3.6 promete ser 20% más rapida que la 3.5.

jueves, 14 de enero de 2010

BackTrack 4 Final


Por fín esta disponible BackTrack 4 Final.

Se han actualizado las herramientas que ya estaban en la versión beta y se han agregado algunas más. Cuenta con kernel nuevo y se mejoró el soporte para tarjetas inalámbricas.

Descarga desde

http://www.backtrack-linux.org/downloads/

Puede descargarse la imagen .iso o para VMWare.