Torrents for Dummies

utorrentSi llegaste a este post es porque eras un adicto a las descargas directas, utilizabas servicios como Megaupload, Rapidshare, etc y como no escuchaste el consejo de tus amigos nerds (nerds de verdad, no los que prefieren el jDownloader) nunca aprendiste a utilizar BitTorrent/torrents/P2P, y ahora que estos sitios están cayendo no sabés qué hacer.

Vamos por pasos. ¿Qué es un torrent, BitTorrent, P2P? (Si ya sabés o no te interesa, seguí hasta el paso-a-paso abajo.)

P2P (“Peer-to-Peer”, “Par a Par”) es una red de descargas en la que todos actuamos como clientes y servidores. Yo te doy un pedacito de archivo que te falta, vos me das otro pedacito de archivo que te falta a vos. Todos dan y reciben. Una orgía digital.

BitTorrent es una implementación particular de ese tipo de redes, utilizada para compartir archivos.

Torrents son los archivos (de extensión .torrent) que sirven para iniciar la descarga de un archivo. Podés verlos como una especie de enlace/link/acceso directo hacia la descarga.

Con estas tres cosas ya te podés hacer una idea de cómo hacer. Sino, va un paso a paso.

Descargando con torrents paso a paso

1. Bajá uTorrent

uTorrent es un programa pequeño y simple para descargar torrents (lo que sería el Napster, Kazaa, Ares)

2. Buscar un torrent

Como todo, hay varias maneras. Una es ir a Google y tirar una búsqueda de tipo “Album + torrent“, es decir: “All Day Girl Talk torrent“, sin comillas.
Otra alternativa mejor es buscar en Torrentz.com (redirige a Torrentz.eu), que se encarga de buscar en PirateBay  y otros sitios que alojan archivos .torrent.

3. Encontrar el torrent adecuado

A veces la parte más difícil es encontrar un torrent que sirva. Con la música es bastante fácil. Para el tema videos ya hay varios formatos “pirata” que tienen una calidad muy fea (ver Pirated movie release types), o te puede pasar que en vez de El Rey León 2 te bajes una porno.
El numerito en verde es el de “seeders” (gente que está dando partes del archivo) y el azul es de “leechers” (sanguijuela en inglés, son los que están descargando). Cuanto más grande sea el número de seeds, mejor.

4. Descargar el archivo.

Fácil.

Actualización: Eventualmente, puede existir un “magnet link” en vez de un .torrent. El magnet link es un enlace directo a la descarga igual que los .torrent, pero sin necesidad de bajar un archivo. En la imagen superior se puede ver el ícono de un imán con la leyenda “GET THIS TORRENT”. Clickeamos en el enlace y lo abrimos con uTorrent. Nos saltearíamos el paso 5 en este caso.

5. Abrirlo con el cliente de descargas.

Abrí el .torrent descargado usando el uTorrent (Archivo->Abrir Torrent, doble click, lo que prefieras)

6. Listo. Ya estás descargando.

Algunas notas

Aclaración: estos son algunos piques que me han dado resultado a mi. Puede variar según tu conexión, sistema operativo, país, y quién sabe qué mas. De todas maneras, ha dado resultado también a quien se las he transmitido. Cuestión de probar.

  • Limitá (un poco) la velocidad de bajada: Si tenes poca velocidad de descarga el uTorrent a veces puede ser medio grosero en el consumo de ancho de banda. Es decir, si querés navegar por internet mientras descargas, mejor bajá la velocidad de descarga de uTorrent. Fijate a cuánto baja cuando no lo limitas y dale unos KBs menos. De lo contrario, ¡dale gas!
  • Limitá la subida: Por defecto uTorrent tiene ilimitada la velocidad de subida. Esta velocidad repercute en que bajes más lento. Ponele el límite entre 5-10KB/s.
  • Descargas más lentas al principio: No se si es algo en particular de la red BitTorrent o del uTorrent, pero en general las descargas tienden a empezar muy lentas y luego de un ratito arrancan con todo. Lo mismo pasa al final. No molesta si dejamos la PC descargando de noche, pero si estas esperando que descargue una película para verla ya, puede ser un problema.

Espero haya sido útil.
Si aprendiste a descargar usando torrents utilizando este mini tutorial, se aceptan sugerencias y opiniones.
Si sos terrible nerd que conoce todos los detalles, configuraciones y 54 maneras diferentes de hacer lo que está aca arriba, aviso que no es la idea cubrirlo todo, pero también se aceptan datos útiles y no muy complicados para un usuario normal.

¿Seguir soportando IE6?

If ( your site does not make money ){
   do what makes you happy
}
else if ( the cost of supporting IE6 > the money you make from IE6 users ) {
   stop supporting IE6
}
else {
   keep making money from IE6 users
}

Un punto de vista bastante realista en muchos escenarios.

Lo ví en ésta respuesta, en relación al anuncio que hizo Google, donde dice que va a comenzar a descontinuar el soporte de navegadores antíguos a partir del 1 de Agosto.

Configurar VirtualHosts en XAMPP (OS X)

En Terminal:

sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /etc/hosts

Agrego: 127.0.0.1    proyecto.dev

sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf

Agrego:

<VirtualHost *:80>
  ServerName arqfiles.dev
  DocumentRoot "/Users/[usuario]/[ruta-proyecto]"
  <Directory "/Users/[usuario]/[ruta-proyecto]">
    Order allow,deny
    Allow from all
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
  </Directory>
</VirtualHost>

Reiniciar Apache.

Raphaël.js bajo Internet Explorer 8

Hace poco estuve utilizando la librería Raphaël para realizar unos pequeños trazados en SVG con la librería Raphaël. En un momento quise verificar la compatibilidad con Internet Explorer 8 y saltaba el siguiente error:

‘vml’ is null or not an object.

La causa de esto (enlace a discusión en Google Groups) es que la versión 1.5.2 comprimida que está para descargar en el sitio tiene este defecto (unicamente en IE). Por lo tanto la solución es descargarla sin comprimir y comprimirla uno mismo.

Links

Netbeans + Ruby + Debugger en Windows

Para aquellos que quieran utilizar el plugin de Ruby en Netbeans y tener la posibilidad de debuggear sus proyectos Ruby on Rails bajo Windows, aquí va una lista de pasos que fueron muy útiles. Se asume que tienen instalado Netbeans, Ruby y Ruby on Rails. En mi caso era NetBeans 6.9, Ruby 1.9.2, RoR 3.0.3, sobre Windows 7.

  1. Descargar DevKit desde http://rubyinstaller.org/downloads/
  2. Instalarlo siguiendo estas indicaciones: http://github.com/oneclick/rubyinstaller/wiki/Development-Kit
  3. Ejecutar los comandos ruby-debug19 –platform=ruby y gem install ruby-debug-ide19 –platform=ruby
  4. Editar el archivo (Ruby)/lib/ruby/gems/1.9.1/gems/ruby-debug-ide19-0.4.12/bin/rdebug-ide.rb y cambiar esta línea:
    Debugger::PROG_SCRIPT = ARGV.shift

    por

    script = ARGV.shift
    Debugger::PROG_SCRIPT = (script =~ /script([\\\/])rails/ ? Dir.pwd + $1 : '') + script

Luego, en el proyecto Rails:

  1. Editar el archivo (Proyecto)/Gemfile y habilitar el debugger:
    # To use debugger
    # gem 'ruby-debug'
    gem 'ruby-debug19'
  2. Borrar el archivo (Proyecto)/Gemfile.lock
  3. Ejecutar el comando bundle update

Fuente: http://noteslog.com/post/netbeans-6-9-1-ruby-1-9-2-rails-3-0-0-debugging/

Manejo de fechas en PHP5

Una búsqueda rápida sobre manejo de fechas en PHP dan como resultado documentación y tutoriales sobre la función date(). Si bien es extremadamente útil para los casos en que queremos mostrar fechas rápidamente, hay veces que se utiliza en conjunto con otras funciones, para realizar cálculos con las fechas y no es lo más apropiado ni lo más fácil.

En parte la culpa es de PHP, que introdujo el objecto DateTime y DateTimeZone recién en la versión 5.2, luego de soportar el paradigma orientado a objetos.

Van algunos ejemplos de como utilizar la clase DateTime para crear objetos tipo fecha, realizar algunas operaciones y formatearlo para mostrar por pantalla.

<?php

//Setear la zona horaria.
date_default_timezone_set('America/Montevideo');

$ahora = new DateTime("now");

//format: utiliza los mismos formatos que la función date().
echo $ahora->format(DATE_RSS); //Formato de fecha RSS.
echo '<br/>';
echo $ahora->format('d/m/Y'); //Formato local d/m/a
echo '<br/>';

//Crear una fecha según un formato especificado. PHP >= 5.3.0
$feb = DateTime::createFromFormat('j-M-Y', '5-Feb-2010');

//Diferencia entre dos fechas. Devuelve un objeto DateInterval. PHP>=5.3.0
$diferencia = $ahora->diff($feb);

echo $diferencia->format('%d días'); echo '<br/>';

//Añadir cantidad de días/meses/etc a una fecha. PHP>=5.3.0
$ahora->add(DateInterval::createFromDateString('10 days')); //resta 10 días.

echo $ahora->format('d/m/Y'); echo '<br/>';

//Otra alternativa para modificar la fecha. PHP>=5.2.0
$ahora->modify('+5 days');
echo $ahora->format('d/m/Y'); echo '<br/>';

Descargar ejemplo: [download id=”5″]

Enlaces

Clementine Music Player

Ayer leyendo OMGUbuntu! me entero que salió la versión 0.6 del reproductor de audio Clementine. Clementine es la evolución de la rama Amarok 1.4.x, que como muchos saben, eran excelentes. Lamentablemente, con la versión 1.4.10 se terminó esta familia de versiones y dieron el salto a la 2.0, con un rediseño interesante, pero con mucha funcionalidad faltante o defectuosa.

Clementine versión 0.6 r2402 sobre Ubuntu 10.10/GNOME
Clementine versión 0.6 r2402 sobre Ubuntu 10.10/GNOME

Clementine nació a principios de este año y ya van 5 versiones mayores publicadas.  Hoy en día está muy estable y con suficiente funcionalidad como para servir de reproductor a diario.

Algunas de las funcionalidades destacadas en el sitio son:

  • Búsqueda y reproducción de librería local.
  • Radio Internet desde Last.fmSomaFMMagnatuneJamendoIcecast.
  • Listas de reproducción dinámicas.
  • Listas de reproducción en pestañas, importar y exportar M3U, XSPF, PLS and ASX.
  • Visualizaciones de projectM.
  • Letras, biografías de artistas y fotos.
  • Conversión de pistas en MP3, Ogg Vorbis, Ogg Speex, FLAC o AAC.
  • Edición de información de pistas MP3, OGG.
  • y más.

Sin embargo, aún tiene alguna cosa por corregir y agregar. Entre ellas, soporte para plugins.

Descarga/Instalación

En el sitio de descargas se puede encontrar compilados para Ubuntu, Mac OS X, Windows, Fedora y Debian.

Alternativamente, podemos instalarlo desde el repositorio oficial:

sudo add-apt-repository ppa:me-davidsansome/clementine
sudo apt-get update
sudo apt-get install clementine

Fuentes

  • http://www.omgubuntu.co.uk/2010/12/music-player-clementine-hits-0-6-release-with-features-features-features/
  • http://www.clementine-player.org/

Doctrine 2

Últimamente estuve trabajando bastante con CodeIgniter en conjunto con el ORM de Doctrine 1.2 para simplificar el acceso a datos y dar más poder que el Active Record que implementa el framework.

Hoy me topé con una presentación muy interesante de lo que traerá la versión 2, que aprovecha todo el potencial de PHP 5.3.

Una de las cosas más novedosas es el uso de namespaces y “annotations” para declarar una clase como entidad, sin tener que extender de una clase base:

<?php 

namespace Entities; 

/** * @Entity @Table(name="users") */
class User {

	/** @Id @Column(type="integer") @GeneratedValue */
	private $id; 

	/** @Column(length=50) */
	private $name; 

	/** @OneToOne(targetEntity="Address") */
	private $address; 

}

Más información