Our logo :(

Hackerspace Monterrey

Servidor de descargas - RaspberryPi

Para convertir la raspi en un excelente servidor de descargas solo hay que instalar y configurar Transmission.

Transmission cumple con todo lo necesario para ser considerado el mejor cliente de torrents en linux, su consumo de memoria es muy bajo, usa muy poco procesamiento y su uso es muy intuitivo; lo que lo llevo a ser usado por Ubuntu como app default de torrents ademas que compañías comerciales (FON y Belkin) lo utilizan en sus productos y nosotros lo tenemos al alcance de un apt-get install.

La ventaja que presenta para su uso en un server es que trabaja como daemon; así, mientras la raspi este encendida estará siempre activo, a parte que tiene implementada una práctica interface web desde la cual podemos cargar torrents/magnets, ver su avance, detener la descarga, borrar los torrents. Por sí fuera poco podemos configurar horarios de descarga, velocidades, modo tortuga , puertos, etc.

webinterface

Además para los amantes de las terminales hay un CLI remoto que lo podremos instalar en nuestra máquina y con el que podremos administrar y operar el transmission sin necesidad de abrir un navegador (hermoso).

remotecli

Instalación

Ahora lo bueno, como instalarlo y dejarlo operativo.

Partiremos del punto donde ya se tiene una raspberry configurada (acceso por ssh, ip statica y rootfs expandido).

Lo que haremos es ingresar por medio de ssh desde la terminal (o atravez de putty en windows) a la ip que le hayamos asignado a nuesto dispositivo (recuerden que debemos tener los equipos en la misma red).

$ssh pi@192.168.1.2 # Utilice el usuario “pi” (default en la raspi) y la ip que le asignó al equipo.

Debemos ver algo como:

pi@192.168.1.2$ # Esto es el prompt, que nos indica el host (en este caso la raspi) en el que estamos trabajando.

Estando aqui actualizaremos los repositorios con:

$sudo apt-get update

Una ves actualizados los repositorios installamos el transmission:

$sudo apt-get install transmission-daemon

inst1

inst2

Set up

Ahora crearemos dos folders:

$mkdir /home/pi/completed

$mkdir /home/pi/progress

Estos folders nos serviran para mantener separados los archivos que estan siendo descargados de los que ya estan completados.

Ahora va la parte tricky del processo, hay que configurar ciertos permisos para que el transmission pueda tener acceso a las carpetas que acabamos de crear. (Eso de los permisos merece un post aparte).

Lo primero que aremos es modificarel usuario que tenemos (en este caso pi) para que sea parte del grupo creado por el transmission tras su instalacion:

$sudo usermod -a -G debian-transmission pi # se traduce como modifica el usario pi agregandolo al grupo debian-transmission_

A las carpetas que creamos hay que agregarlas al grupo debian-transmission para que el transmission pueda acceder y guardar los archivos en ellas.

$sudo chgrp debian-transmission /home/pi/progress # Cambia el grupo del folder /home/pi/progress a transmission

$sudo chgrp debian-transmission /home/pi/completed # Cambia el grupo del folder /home/pi/completed a transmission

$sudo chmod 770 /home/pi/progress # Da permisos de lectura, escritura y ejecucion al usuario y al grupo de /home/pi/progress

$sudo chmod 770 /home/pi/completed # Hacemos lo mismo para /home/pi/completed

permisos

Listos los permisos hay que configurar los algunos parametros del transmission, esto se hace en:

sudo nano /etc/transmission-daemon/settings.json # abre el archivo settings.json en el editor de archivos nano

Del archivo settings.json modificaremos los sigueintes parametros:

  • download-dir - aqui pondremos el path del folder donde se guardaran las descargas completadas en nuestro caso “/home/pi/completed”
  • incomplete-dir - aqui pondremos el path del folder donde se guardaran las descargas en proceso en nuestro caso “/home/pi/progress”
  • incomplete-dir-enable - este campo define si queremos utilizar un directorio especial para los archivos que estan en progreso, como si lo usaremos le damos el valor “true”
  • rpce-whitelist - este parametro indica que ips pueden conectarse a la interface web, en este caso usamos la red en la que esta instalada la raspi (e.i. “192.168.1.*”). El asterisco indica que las ips desde 192.168.1.0 hasta 192.168.1.255 se podran conectar; una máscara de subred /24

set1

set2

set3

setEnd

Modificados los parametros guardamos ctrl-o y salimos ctrl-x, despues de eso recargamos el transmission para que tome las configuraciones.

$sudo service transmission-daemon reload // ojo de usar reload y no restart, ya que restart reinicia los parametros a valores iniciales.

Ya con esto tendremos un servidor de descargas listo para funcionar.

Notas

  • Usen la SD de tamaño mas grande disponible ya que se vuelve un problema el sacar los archivos, en otro post explicare como hacer el setting de una unidad externa

  • Para accesar a la interface web las credenciales default son transmission:transmission ; si lo queremos modificar hay que cambiar los valores rpc-password y rpc-username en el archivo settings.json

__@elmundoverdees__

Modelo RaspberryPi - Raspberry Pi

Les dejamos este modelo en Inventor de la RaspberryPi

Modelo RaspberryPI

modeloRaspi.rar

Nota: Ejecutar primero el inventor y abrir el archivo modeloRaspi.iam desde ahi.

Requerimientos Hardware - Raspberry Pi

img1

La raspberry pi es una maravilla en cuanto a precio y capacidades, sin embargo no solo basta el adquirirla, sino que hay que comprar algunos perifericos y cables para que podamos trabajar con ella.

El hardware minimo que debemos tener es:

Alimentación:

  • Fuente de poder USB (5v a minimo 700mA, 1 A recomandada)
  • Cable USB - micro USB

Video

  • Monitor/Pantalla/Televisión con entrada HDMI o RCA
  • Cable HDMI o RCA macho-macho

img2

Interaccion.

En mi caso estoy usando solo la linea de comandos por lo cual prescindo del mouse.

  • Teclado USB
  • Mouse
  • Cable Ethernet

Software

  • Memoria SD con imagen de linux para raspberry pi. Se estara usando Raspian en esta serie de entradas.
  • Acceso a Internet. No es fundamental, pero las entradas que estaremos posteando se basan en el acceso remoto a la Raspi.

img2

@elmundoverdees

JavaScript en la actualidad

JavaScript o como muchos lo conocemos JS se ha convertido hoy en día en uno de los lenguajes mas utilizados, tanto en aplicaciones en la nube como en entorno de escritorio.

Después de haber sido creado por Netscape bajo el nombre de LiveScript y no tener éxito como un estándar durante la guerra de los navegadores, tras pasar por una serie de recortes, adaptaciones hoy en día nos encontramos con el conocido JavaScript 1.8.

Una de las mayores ventajas de JS es su versatilidad como lenguaje orientado a objetos y no solo como scripting lenguaje, cuenta con una potencia enorme tras poder ser embebido en una serie de lenguajes muy amplia y una gran escalabilidad, abarcando desde pequeños scripts, snippets y modelos vista controlador.

En los últimos años JS también a tomado un papel muy importante de el lado de el servidor, con proyectos como AppengineJS, RingoJS, EJScript, Node.js y Jaxer. Con estos esfuerzos se a logrado sustituir lenguajes como Java, Ruby, C++ con un mejor rendimiento y una estructura mas sencilla, logrando así una mayor colaboración en las comunidades, sin mencionar una curva de aprendizaje relativamente corta.

Un claro ejemplo de la potencia de JS es el entorno de escritorio Gnome3 (Gnome Shell), que consta de aplicaciones y widgets escritos completamente en este lenguaje.

Sus desarrolladores mencionan que pese a no ser el lenguaje mas óptimo para escritorio, es el mas intuitivo para la mayoría de desarrolladores que se encuentran en su comunidad, por su facilidad de embeber les permite combinar varios lenguajes como C, C++, Python.

Como única desventaja esta la serie de disputas sobre la extensión de el lenguaje, en los diferentes engines de JS pese a ser un lenguaje interpretado, cada engine puede agregar sus características particulares y dejar de lado los estándares y esto ¿Por que?, pues por que pueden así de simple.

Todos buscan tener un diferenciador en el mercado pudiendo dejar de lado el estándar. Volviendo así a la época 1.0, donde teníamos que escribir un código diferente para cada navegador.

Como conclusión:

JavaScript cuenta con una gran comunidad hoy en día. Con una serie de proyectos interesantes, bien documentados para quien le interese aprender.

Se a posicionado como uno de los lenguajes mas utilizados no solo para navegadores, también ha tomado control de escritorios, servidores y mobiles. Utilizamos JS en el día a día tal vez sin darnos cuenta.

@ivan_cduran

Microprocesador != Microcontrolador

Frecuentemente se escuchan estos conceptos y muchas veces se utilizan indistintamente, pero existen grandes diferencias entre ellos. En estos dias tenemos dos plataformas muy conocidas Arduino y Raspberry las cuales manejan microcontroladores y microprocesadores respectivamente, y hay quienes comparan a las dos directamente cuando sus capacidades y nichos estan muy separados.



Dirección
Isaac Garza 735-A
Monterrey, N.L.
C.P. 64000
(81) 19-36-9480
Mapa

Horario
Martes
19:00 a 23:00

Sábado
14:00 a 00:00

Junta semanal
Martes 19:00