Arnet bloquea la descarga [Solución]

Demonio

Recientemente, al tratar de descargar, me doy cuenta que al tratar de descargar algo por Megaupload, a los 3 segundos de la conexión se cortaba. Bastante raro, pensé.
Revisé mi PC, mi módem-router y demás, pero no encontré nada raro. Luego de un tiempo, se me ocurre revisar por internet. En la página de taringa encontré que no soy el único con tal problema. Luego pensé en descargar los archivos por torrent y me di cuenta que tampoco podía descargar nada (Transmission me maracaba que compartía con 0 de 75 usuarios). Lo solucioné instalando deluge (sudo apt-get install deluge deluge-gtk)

La solución para el navegador fue con un userscript. El tal es: Megaupload Fix Arnet. Instalándolo, se resuelven todos los problemas.

Instalarlo en Chrome/Chromium

Ir a la página web Megaupload Fix Arnet y presionar en el botón de la derecha que dice “Install”. Al cartel que aparecerá, dar click en aceptar.

Instalarlo en Firefox

  • Descargar greasemonkey (plugin) desde aquí y reiniciar el navegador.
  • Entrar a Megaupload Fix Arnet y presionar en el botón verde de la derecha que dice “Install”

Y listo, asunto resuelto.


Emulaodr x86 de Linux en JavaScript – JSLinux

JS Linux

Cada vez es más impresionante lo que se logra crear con JavaScript, y cada vez más jákers nos muestran cosas alucinantes como esta.

Esta vez vemos un emulador de X86 escrito puramente en JavaScript. No es ningún fake ni adaptación de ninguna clase, es un emulador en su estado puro. Para hacerlo, su desarrollador se basó en código de QEMU.

¿En qué navegador puedo probarlo?

Según su FAQ, los navegadores aceptados son:

  • Firefox 4.x
  • Chrome 11
  • Opera 11.11
  • Internet Explorer 9

Enlace: JS Linux

Fuente


Clase de SQLite3 para PHP

SQLite

Últimamente, desarrollé un profundo amor hacia SQLite. Revisando la página http://7devs.com encontré una interesante clase (por no decir “extremadamente simple”) para el manejo de una base de datos MySQL. En ese momento, me dije WHY NOT? y decidí reescribirla para que use SQLite3.

He aquí el resultado:

<?php

/*
* SQLite3 Class
* based on the code of miquelcamps
* @see http://7devs.com/code/view.php?id=67
*/

class DB{
  private $sqlite;
  private $mode;

  function __construct( $filename, $mode = SQLITE3_ASSOC ){
    $this->mode = $mode;
    $this->sqlite = new SQLite3($filename);
  }

  function __destruct(){
    @$this->sqlite->close();
  }

  function clean( $str ){
    return $this->sqlite->escapeString( $str );
  }

  function query( $query ){
    $res = $this->sqlite->query( $query );
    if ( !$res ){
      throw new Exception( $this->sqlite->lastErrorMsg() );
    }

    return $res;
  }

  function queryRow( $query ){
    $res = $this->query( $query );
    $row = $res->fetchArray( $this->mode );
    return $row;
  }

  function queryOne( $query ){
    $res = $this->sqlite->querySingle( $query );
    return $res;
  }

  function queryAll( $query ){
    $rows = array();
    if( $res = $this->query( $query ) ){
      while($row = $res->fetchArray($this->mode)){
        $rows[] = $row;
      }
    }
    return $rows;
  }

  function getLastID(){
    return $this->sqlite->lastInsertRowID();
  }
}

// initialize
$db = new DB( 'database.sqlite' );

// create the database structure
$query = 'CREATE TABLE IF NOT EXISTS "foobar" (
            "id" INTEGER PRIMARY KEY AUTOINCREMENT,
            "name" TEXT
          );';
$db->query( $query );

// insert some data to the database
$query = array(
  "INSERT INTO foobar VALUES(1,'LOLOLOL');",
  "INSERT INTO foobar VALUES(2,'Lorem Ipsum....');"
  );

foreach($query as $key):
  $db->query( $key );
endforeach;

// query example, multiple rows
$users = $db->queryAll( "SELECT * FROM foobar" );

// query example, one row
$search = 'Lorem Ipsum....';
$user_info = $db->queryRow( sprintf( "SELECT * FROM foobar WHERE name = '%s'", $db->clean( $search ) ) );

// query example, one result
$total_users = $db->queryOne( "SELECT COUNT(*) FROM foobar" );

// insert query
$insert = array(
  'id' => 3,
  'text' => 'Testing'
);
$db->query( sprintf( "INSERT INTO foobar VALUES ( %s, '%s' )", $db->clean ( $insert['id'] ), $db->clean( $insert['text'] ) ) );

?>

Dejo un link a un pastebin por si quieren copiarlo y WordPress molesta 😛 http://pastebin.com/XBpWWfTE
La clase la libero completamente libre. Pueden usarla para lo que quieran, a excepción que el creador de la clase original tenga alguna objeción.