Ruby desde cero: variables y Objetos.

Bienvenidos a este nuevo capítulo de Ruby desde cero, hasta este capitulo ya aprendimos a instalar y configurar Ruby en nuestros computadores de manera sencilla, pero aun nos falta mucho recorrido. Para este nuevo capítulo mostraremos al detalle las variables nativas del lenguaje y los objetos Ruby.

Variables y Constantes.

Las variables y constantes en Ruby se consideran posiciones de memoria, que guardan los datos que creamos necesitar para el desarrollo de nuestro programa.

El lenguaje reconoce cualquier palabra con las siguientes características como variables:

deben empezar con un letra minúscula o un guión bajo (_)
deben estar formadas por letras, números y/o guiones bajos.

Por convención se estableció que deben ser llamadas con manera tal que definan su funcionalidad, escritas en minúscula y separadas por (_) como el siguiente ejemplo.

Todos los ejemplos utilizados en este curso son mediante el REPL irb o pry.

> first_name = 'Ricardo'
  "Ricardo"
> puts first_name
Ricardo

Por otro lado para que Ruby reconozca una constante debe ser nombrada al menos con la primera letra en mayúscula y obviamente nos es posible modificarla, en el siguiente ejemplo vemos como Ruby nos da una advertencia al intentar cambiar su valor.

> CONSTANT = 10
  10
> puts CONSTANT
  10
> CONSTANT = 20
(irb):94: warning: already initialized constant CONSTANT

El lenguaje maneja cinco tipos de variables:

Variables Globales

Estas variables tienen un alcance global del sistema, lo que significa que pueden consultarse y modificarse en cualquier parte del código. Estas variables se reconocen porque están precedidas del símbolo $. No se recomienda el uso excesivo de este tipo de variables.

$global_variable

Variables de Instancia.

Las variables de instancia se definen dentro de la clase y se inicializan cada vez que se crea un objeto de esa clase. Estas variables se reconocen porque están precedidas del símbolo @.

@variable

Variables de clases.

Estas variables deben ser inicializadas antes de que puedan ser utilizadas por los objetos del la clase. Esta variable son compartidas entre los objetos o módulos donde se definen, es decir, una variable de clase al ser alterada por uno de sus objetos, los demás podrán ver estos cambios. Estas variables se reconocen porque están precedidas del símbolo @@.

@@variable

Variables locales y de bloques.

Estas son las variables de menos alcance en el sistema, se definen y utilizan hasta que se termine el método y Ruby limpie la memoria. Estas variables no tienen ningún símbolo predecesor, pero debemos tener cuidado de no utilizar palabras reservadas por Ruby

variable

Objetos Ruby

En este Bloque del tutorial veremos alguno de los objetos de Ruby, sus funciones y su manipulación.

Objetos numéricos enteros y flotantes

los objetos numéricos enteros en Ruby heredan de la clase Fixnum mientras estén el rango que el lenguaje permite, todo lo exceda esos rangos pertenecerá a la clase Bignum. Por otro lado también existe los números que admiten decimales solo que estos pertenecen a otra clase Float. algunos ejemplos de los objetos numéricos:

Definición de objetos

> 12.class
  Fixnum
> -12.class
  Fixnum
> 123213213213123123123123.class
  Bignum
> 0xf23.class      #Hexadecimal
  Fixnum
> 0b1011.class     #binario
  Fixnum
> 0.3.class
  Float
> 4.0e6.class      #notación científica
  Float

Ejemplos

> puts 1 + 2
3
> puts 1 - 2
-1
> puts 1 * 2
2
> puts 1 / 2
0
> puts 4 / 2   # Retorna el valor entero de la división
2
> puts 5 / 2
2
> puts 5 % 2   # Retorna el módulo de 5 y 2
1
> puts 1 / 2.0
0.5
> puts 9 / 2
4.5

En el siguiente cuadro mostraremos la lista de posibles operadores para trabajar con los objetos numéricos. Estos están en orden de mayor a menor rango de presencia, es decir se ejecutaran primero los operadores superiores de la tabla.

operadores

Cadena de caracteres

Estas cadenas son simples secuencias de caracteres entre comillas simples o dobles.Este objeto pertenece a la clase String. Algunos ejemplos para la manipulación de estos objetos:

> "CodeHero".class            #clase
   String
> saludo = 'hola'             #declaramos variable saludo
   "hola"
> sujeto = 'CodeHero'          #declaramos variable sujeto
   "CodeHero"
> saludo + ' ' + sujeto        #Concatenamos String con +
   "hola CodeHero"
> 'codehero '*3
   "codehero codehero codehero "
> puts "siguenos en Twitter \"@CodeHeroBlog\""  #Escapamos caracteres especiales con \
siguenos en Twitter "@CodeHeroBlog"
> puts "\t \"\\t\": es un tab\n \"\\n\": salto de linea"   # /t tab /n salto linea
     "\t": es un tab
 "\n": salto de linea
> saludo.reverse           #retorna la cadena de caracteres al revés
   "aloh"
> saludo.capitalize        #primera letra en mayúscula
   "Hola"
> saludo.upcase            # toda la cadena en mayúscula
   "HOLA"
> saludo.length            #tamaño de la cadena
   4
> saludo[0]                #caracter en la posición 0
   "h"

Ruby arreglos

Un arreglo es un objeto donde es posible almacenaruna serie de otros objetos (guardan la posición de memoria) para luego poder manipularlos con facilidad.Los arreglos pertenecen a la clase de Array.

En los arreglos es posible almacenar cadenas de caracteres (String), números (Bignum, Fixnum y Float), otros arreglos (Array) y no necesariamente tienen que ser del mismo tipo de dato, a continuación unos ejemplos de arreglos y manipulación de los mismos:

> arrelo_codefuel.class             #clase
  Array
> arrelo_codefuel = []             #arreglo vacío
  []
> arrelo_codefuel = ["a","b","c","d"] #arreglo de String
  ["a", "b", "c", "d"]
> arrelo_codefuel[1]                   #objeto en la posición 1
  "b"
> arrelo_codefuel << "e"               #agregar un objeto
  ["a", "b", "c", "d", "e"]
> arrelo_codefuel.clear                #vaciar
  []
> arrelo_codefuel=[1,2,3,4]
  [1, 2, 3, 4]
> puts arrelo_codefuel                 #imprimir arreglo
1
2
3
4
> arrelo_codefuel.reverse              #voltear arreglo
  [4, 3, 2, 1]
> arrelo_codefuel << 0
  [1, 2, 3, 4, 0]
> arrelo_codefuel.sort                 #ordenar Arreglo
  [0, 1, 2, 3, 4]
> arrelo_codefuel << 2
  [1, 2, 3, 4, 0, 2]
> arrelo_codefuel.uniq                 #Arreglo de objetos únicos
  [1, 2, 3, 4, 0]
> arrelo_codefuel.delete_at(1)         #Borrar posición 1
  2
> arrelo_codefuel
  [1, 3, 4, 0, 2]
> arrelo_codefuel.delete(4)            #Borrar objeto 4
  4
> arrelo_codefuel
  [1, 3, 0, 2]
> arrelo_codefuel + [9,10,12]          #Agregar 3 objetos mas
  [1, 3, 0, 2, 9, 10, 12]
> arrelo_codefuel =  [1,2,"CodeHero",[1,2,3]]  #Arreglo combinado
  [1, 2, "CodeHero", [1, 2, 3]]

Ruby Hashes

Este objeto es de gran utilidad para crear objetos improvisados o arreglos con una clave. Este Objeto consiste en agregar a una lista en pares Clave/Valor separados por coma (,) entre secuencias y (=>) entre la clave y el valor. A continuación unos ejemplos de este objeto y su manipulación:

> hashes_codefuel.class                 #clase
  Hash
> hashes_codefuel = {'nombre'=>'Ricardo','apellido'=>'Sampayo'}    #creamos un Hashes
  {"nombre"=>"Ricardo", "apellido"=>"Sampayo"}
> hashes_codefuel['nombre']        #objeto con la clave 'nombre'
  "Ricardo"
> hashes_codefuel.keys             #arreglo de claves
  ["nombre", "apellido"]
> hashes_codefuel.values           #arreglo de valores
  ["Ricardo", "Sampayo"]
> hashes_codefuel.length           #tamaño
  2
> hashes_codefuel['sexo']='Masculino'  #agregar un nuevo campo
  "Masculino"
> hashes_codefuel
  {"nombre"=>"Ricardo", "apellido"=>"Sampayo", "sexo"=>"Masculino"}
> hashes_codefuel.clear        #vaciar Objeto
  {}

Conclusión.

En este capitulo conocimos a detalle las variables y objetos del lenguaje, pero aun queda mucho. Para el próximo capitulo estaremos viendo Estructuras de control y aprenderemos como definir métodos en Ruby.

Posted on

Python desde Cero: Bases de Datos

Bienvenidos una vez más a Python desde Cero, curso en el cual aprendemos a programar sin conocimiento alguno. En el capítulo anterior, te enseñe a programar orientado a objetos, es decir, aprendimos como definir una clase, como definir sus atributos, como instanciarla y como generar la lógica necesaria para su completo funcionamiento. Si eres nuevo en este curso, te recomiendo que le eches un vistazo al capítulo anterior para que te pongas en contexto (Capítulo 5 – Clases, Atributos y Métodos)

Hoy, vamos a aprender todo lo relacionado con el módulo MySQLdb, en otras palabras, aprenderemos a conectarnos a una base de datos MySql, a crear tablas, y a como insertar, obtener, modificar y eliminar registros de la base da datos usando el API de Python para BD.

Bases de Datos

El estándar de Python para las interfaces de bases de datos es el Python DB-API. La mayoría de las interfaces de bases de datos de Python se adhieren a este estándar, por lo que dicho API es compatible con una amplia gama de servidores de bases de datos, entre ellos:

  • GadFly
  • mSQL
  • MySQL
  • PostgreSQL
  • Microsoft SQL Server 2000
  • Informix
  • Interbase
  • Oracle
  • Sybase

Si quieres saber más información sobre la listas de base de datos compatible con Python te recomiendo que visites Interfaces y API’s de bases de datos para Python.

Es importante resaltar que si quieres hacer uso de una base de datos digamos Oracle (por poner un ejemplo) vas a tener que descargar el módulo respectivo para este tipo de base de datos.

¿Qué es MySQLdb?

MySQLdb es una interfaz para la conexión a un servidor de base de datos MySQL desde Python.

¿Cómo instalar MySQLdb?

Antes de continuar, vamos a asegurarnos de que no tengamos instalado MySQLdb en nuestras máquinas. Creemos un script con lo siguiente y ejecutemoslo:


#!/usr/bin/python



import MySQLdb

Si se produce el siguiente error entonces significa que el módulo de MySQLdb no está instalado en nuestra máquina:


Traceback (most recent call last):

 File "prueba.py", line 3, in &lt;module&gt;

  import MySQLdb

ImportError: No module named MySQLdb

Existen dos formas para instalar el módulo de MySQLdb, la manera sencilla, ejecutando el siguiente comando:

$ pip install MySQL-python

y la manera engorrosa, donde debemos descargar de Descargas MySQLdb el módulo, y una vez descargado ejecutamos los siguientes comandos:


$ gunzip MySQL-python-1.2.2.tar.gz

$ tar -xvf MySQL-python-1.2.2.tar

$ cd MySQL-python-1.2.2

$ python setup.py build

$ python setup.py install

Asegúrate de tener los privilegios de root para realizar la instalación.

Conexión a la base de datos

Antes de conectarnos a una base de datos en MySQL asegúrate de cumplir con lo siguiente:

  • Haber creado una base de datos llamada prueba_db.
  • Haber creado un usuario de conexión que posea las siguientes características: usuario: usuarioprueba y clave: prueba123.

La mejor manera de ver y entender como conectarnos a una base de datos en Python es a través de un ejemplo:


#!/usr/bin/python



import MySQLdb



# Establecemos la conexión con la base de datos

bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )



# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos

cursor = bd.cursor()



# Ejecutamos un query SQL usando el método execute() que nos proporciona el cursor

cursor.execute("SELECT VERSION()")



# Extraemos una sola fila usando el método fetchone()

data = cursor.fetchone()



print "Versión Base de Datos : %s " % data



# Nos desconectamos de la base de datos

bd.close()

Si ejecutamos el script anterior nos debería aparecer lo siguiente:

Versión Base de Datos : 5.0.45

Observemos que un objeto de conexión fue retornado una vez que se estableció una conexión exitosa con la base de datos, este objeto se asignó a la variable bd. Luego, esta variable bd es usada para crear un cursor, el cual es el medio por donde podemos ejecutar queries SQL. En nuestro caso ejecutamos SELECT VERSION(), dicho query retorna la versión de la base de datos. Por último, cerramos la sesión establecida con la base de datos para así no gastar recursos.

¿Cómo creamos una tabla en la base de datos?

Una vez que sabemos como establecer una conexión con la base de datos, estamos listos para crear tablas en la base de datos utilizando el método execute del cursor que creamos anteriormente. Veamos como crear una tabla denominada empleado dentro de nuestra base de datos:


#!/usr/bin/python



import MySQLdb



# Establecemos la conexión con la base de datos

bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )



# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos

cursor = bd.cursor()



# Creamos la tabla empleado

sql = "CREATE TABLE EMPLEADO (

  NOMBRE CHAR(20) NOT NULL,

 APELLIDO  CHAR(20),
  EDAD INT,

  SEXO CHAR(1),

  SALARIO FLOAT )"



cursor.execute(sql)



# Nos desconectamos de la base de datos

bd.close()

Observemos que a través del método execute del cursor podemos ejecutar cualquier tipo de query que deseemos, en este caso un CREATE.

¿Cómo insertamos un empleado en la base de datos?

La operación insertar es necesario si deseas crear registros en una tabla de base de datos. Veamos como insertar un empleado dentro de la tabla EMPLEADO que creamos anteriormente.


#!/usr/bin/python



import MySQLdb



# Establecemos la conexión con la base de datos

bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )



# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos

cursor = bd.cursor()



# Preparamos el query SQL para insertar un registro en la BD

sql = "INSERT INTO EMPLEADO (NOMBRE,

  APELLIDO, EDAD, SEXO, SALARIO)

  VALUES ('Carlos', 'Picca', 24, 'M', 2000)"

try:

  # Ejecutamos el comando

  cursor.execute(sql)

 # Efectuamos los cambios en la base de datos

 bd.commit()

except:
  # Si se genero algún error revertamos la operación

  bd.rollback()



# Nos desconectamos de la base de datos

bd.close()

Observemos que para que los cambios sean efectuados en la base de datos es necesario usar bd.commit(). Si queremos reversar los cambios efectuados podemos usar bd.rollback().

¿Cómo obtenemos todos los empleados registrados en la base de datos?

La operación lectura es necesaria si quieres buscar información dentro de la base de datos.

Veamos los métodos mas usados a la hora de ejecutar un lectura en la base de datos desde Python:

  • fetchone() – Este método obtiene la primera fila de un conjunto de resultados de una consulta a la BD.
  • fetchall() – Este método obtiene todos los registros de un conjunto de resultados de una consulta a la BD.
  • rowcount – Este es un atributo de sólo lectura y devuelve el número de filas afectadas por el método execute.

Veamos como obtener todos los registros de la tabla EMPLEADO:


#!/usr/bin/python



import MySQLdb



# Establecemos la conexión con la base de datos

bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )



# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos

cursor = bd.cursor()



# Preparamos el query SQL para obtener todos los empleados de la BD

sql = "SELECT * FROM EMPLEADO"

try:

  # Ejecutamos el comando

  cursor.execute(sql)

  # Obtenemos todos los registros en una lista de listas

  resultados = cursor.fetchall()

 for registro in resultados:
  nombre = registro[0]
  apellido = registro[1]
  edad = registro[2]
 sexo = registro[3]
 salario = registro[4]

 # Imprimimos los resultados obtenidos

 print "nombre=%s, apellido=%s, edad=%d, sexo=%s, salario=%d" % (nombre, apellido, edad, sexo, salario)

except:

 print "Error: No se pudo obtener la data"



# Nos desconectamos de la base de datos

bd.close()

Si has seguido los ejemplos anteriores y ejecutas el script, deberás obtener un solo empleado ya que solo habíamos insertado un solo registro:


nombre=Carlos, apellido=Picca, edad=24, sexo=M, salario=2000

¿Cómo modificamos a un empleado en la base de datos?

La operación actualización significa actualizar uno o más registros que ya están disponibles en la base de datos. Veamos como modificar la edad de un empleado cuyo salario sea igual a 2000:


#!/usr/bin/python



import MySQLdb



# Establecemos la conexión con la base de datos

bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )



# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos

cursor = bd.cursor()



# Preparamos el query SQL para modificar el registro

sql = "UPDATE EMPLEADO SET EDAD = EDAD + 1 WHERE SALARIO = 2000"

try:

  # Ejecutamos el comando

 cursor.execute(sql)

  # Efectuamos los cambios en la base de datos

 bd.commit()

except:

  # Si se genero algún error revertamos la operación

  bd.rollback()



# Nos desconectamos de la base de datos

bd.close()

¿Cómo eliminamos a un empleado en la base de datos?

La operación eliminar es necesario si desea eliminar uno o varios registros de la base de datos. Veamos como eliminar a un empleado cuyo apellido sea igual a Picca:


#!/usr/bin/python



import MySQLdb



# Establecemos la conexión con la base de datos

bd = MySQLdb.connect("localhost","usuarioprueba","prueba123","prueba_db" )



# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos

cursor = bd.cursor()



# Preparamos el query SQL para eliminar al empleado

sql = "DELETE FROM EMPLEADO WHERE APELLIDO=‘Picca’"

try:

  # Ejecutamos el comando

  cursor.execute(sql)

  # Efectuamos los cambios en la base de datos

  bd.commit()

except:

 # Si se genero algún error revertamos la operación
 bd.rollback()



# Nos desconectamos de la base de datos

bd.close()

Conclusión

En esta lección, aprendimos todo lo relacionado con el módulo MySQLdb, en otras palabras, aprendimos a conectarnos a una base de datos MySql, a crear tablas, y a como insertar, obtener, modificar y eliminar registros de la base da datos usando el API de Python para BD. Si tienes alguna pregunta, yo estaré feliz de responderte en los comentarios, además espero que te unas y le eches un vistazo a todo el resto de este curso. Te espero la próxima semana!

Posted on

Cómo aligerar de peso KDE

Son ya varias las distribuciones que llevo probadas desde que empecé el blog en las cuales me encuentro, nada más iniciar, con un KDE más pesado de lo habitual. En el sistema en el que trabajo, con Arch Linux y KDE 4.7.2, todo resulta más ligero y sencillo. Esto en parte es por la propia naturaleza de Arch (“Keep It Simple, Stupid”, algo así como “mantenlo sencillo, estúpido”) y en parte por mi costumbre de deshabilitar los servicios de búsqueda de escritorio, la terna Akonadi, Strigi, Nepomuk.

Akonadi es una especie de indexador de datos personales, como direcciones de e-mail, nombres, teléfonos, etc. Strigi es el demonio que realiza las búsquedas de indexación para el resto de datos, pasa la mayor parte del tiempo leyendo del disco y creando tablas índice. Nepomuk, acrónimo que viene a significar “Entorno en red para el manejo personalizado y basado en Ontología del conocimiento unificado” (ahí queda eso), es un organizador de metadatos. Las tres cosas juntas vienen a determinar lo que sería un “escritorio semántico”.

Pero, ¿para qué sirve todo este rollo? Con un ejemplo se verá muy claro: supongamos que tengo un montón de archivos de música en el ordenador y, cosas de la vida, no me gusta usar un reproductor con capacidades de organización de colecciones, tipo Amarok. Prefiero el uso de, pongamos, Audacious, que simplemente hace lo que promete, reproducir un archivo mp3. Ahora quiero escuchar una canción de Bruce Springsteen de cuyo nombre no me acuerdo, y no quiero buscarla entre los miles de archivos que tengo. Pues gracias al escritorio semántico, introduzco en el campo búsqueda el nombre de Springsteen y aparecerán todos los archivos que tengan algo que ver con él, entre los cuales estará el que busco. Si soy tan amigo del “Boss” que incluso tengo su dirección de correo, ésta también aparecerá por obra y gracia de Akonadi. La búsqueda me devolverá como resultado todo aquello relacionado con Bruce que tenga en el ordenador.

Evidentemente todo esto puede resultar una pérdida absurda de recursos. Si usas el ordenador como lo uso yo, esto es, colocando cada cosa en su sitio, las carpetas de música correctamente etiquetadas y el programa Amarok u otro similar, localizar ese archivo de música te será muy sencillo. No tanto como con los servicios del escritorio semántico, pero esto es un lujo que no te puedes permitir si sólo tienes 768 Mb de RAM, como es mi caso. De modo que, al grano, veamos cómo desactivar todo esto:

En primer lugar tendremos que asegurarnos de que Akonadi no se carga al inicio del sistema. Lo vamos a hacer, aunque se puede y resulta más rápido, sin tocar la terminal. Nos vamos a nuestra carpeta personal en Dolphin, pulsamos “Alt+punto” para ver los archivos ocultos, entramos en la carpeta .config y luego en akonadi. Editamos el archivo akonadiserverrc con un editor de texto, Kate por ejemplo, y en la línea donde pone “StartServer=true” cambiamos el valor por “StartServer=false”. Guardamos y salimos. Cuando reiniciemos la sesión Akonadi estará deshabilitado.

Terminar con Nepomuk/Strigi es aún más sencillo. Nos vamos, en el menú de KDE, a Preferencias del Sistema y entramos en Búsqueda de escritorio.

Una vez allí deshabilitamos la casilla de Nepomuk (lo cual, a su vez, deshabilitará la de Strigi).En la imagen vemos la casilla habilitada, basta hacer clic para anular el servicio Nepomuk.

Y nada más. Al entrar de nuevo a nuestro escritorio KDE estará ligero como una pluma. Es más que recomendable hacer esto si se tienen menos de 2 Gb de RAM de memoria y se está acostumbrado a ser más o menos ordenado con los archivos del equipo. En ordenadores modernos que tengan más cantidad de memoria no tiene sentido privarse de esta sencilla forma de encontrar lo que se busca, pero allá cada cual. Ahí lo dejo, un saludo.

Posted on

borrar archivos y derectorios en linux sin confirmación y recursivamente “aunque estén llenos”

Para borrar un directorio con todo lo que contenga, es decir, ficheros y directorios, escribimos el siguiente comando comando:

rm -r

Si encima no quieres que pregunte cada vez que borra un directorio, incluimos la opción -f el comando quedaría:

rm -rf

Listo es así de fácil, con esto ya hemos aprendido a borrar archivos y directorios recursivamente y sin confirmación.

Posted on

Overclock de la raspberry pi 2 –

Desde hace tiempo “28-10-2012-wheezy-Raspbian ” Raspberry Pi tiene un menú de configuración para hacer overclock a nuestra raspberry pi de manera fácil y sin perder garantía.
Es muy fácil acceder al menú de overclock, entramos en el menú Raspberry Pi –> overclock y seleccionamos la velocidad que queremos para el procesador.

 raspi-config 

Yo hoy he decidido probar todas las configuraciones posibles de overclock, llevando el procesador a los limites con un programilla sysbench y de paso probar hasta donde llega la temperatura, con el nuevo disipador que saque de una vieja tarjeta gráfica.
Se instala directamente desde los repositorios sin mas pena ni gloria.

sudo apt-get install sysbench

Una vez instalado la ejecución es un poco mas complicada, pero leyendo la ayuda y mediante prueba y error al final deduje que el comandó es:

sysbench --test=cpu  --num-threads=4 run

Antes decidí leer un poco sobre todo wikipedia, la opción turbo es curiosa, te permite poner el procesador al máximo y la cpu dependiendo de la temperatura ajusta el voltaje y la velocidad, por eso lo de poner un disipador grande y hermoso para que la temperatura sea baja siempre.
Otra cosa interesante que el overclock con tarjetas SD clase 6 y 10 provoca fallos, y bloqueos continuos doy fe de ello. Como siempre pensé que mas es mejor así que compre una samsung clase 10 y así que ahora me la tengo que comer con patatas XD.
he leído que la tarjeta sd que se vende en la web oficial es una Samsung MMCTR08G3ACH-QNJMK micro-SD card según el blog de raspberrypi.org
A continuación los resultados, recordad que el tiempo de ejecución, menos es mejor

Velocidad del procesador velocidad de la ram sobrevoltaje Tiempo de ejecución temperatura
700MHZ ARM 250 MHz core 400 MHz SDRAM 0 1 nucleo 384 seg 41.2
700MHZ ARM 250 MHz core 400 MHz SDRAM 0 2 nucleos 191 seg 42.8
700MHZ ARM 250 MHz core 400 MHz SDRAM 0 3 nucleos 164 seg 44.4
700MHZ ARM 250 MHz core 400 MHz SDRAM 0 4 nucleos 130 seg 44.9
800 MHz ARM 250 MHz core 400 MHz SDRAM 0  1 nucleo 335 seg 42.8
800 MHz ARM 250 MHz core 400 MHz SDRAM 0 2 nucleos 167 seg 44.4
800 MHz ARM 250 MHz core 400 MHz SDRAM 0 3 nucleos 120 seg 46.0
800 MHz ARM 250 MHz core 400 MHz SDRAM 0 4 nucleos 112 seg 46.5
900 MHz ARM 250 MHz core 450 MHz SDRAM 2  1 nucleo 297 seg 44.9
900 MHz ARM 250 MHz core 450 MHz SDRAM 2 2 nucleos 148 seg 47.1
900 MHz ARM 250 MHz core 450 MHz SDRAM 2 3 nucleos 108 seg 48.7
900 MHz ARM 250 MHz core 450 MHz SDRAM 2 4 nucleos 100 seg 48.7
950 MHz ARM 250 MHz core 450 MHz SDRAM 6  1 nucleo 282 seg 45.5
950 MHz ARM 250 MHz core 450 MHz SDRAM 6 2 nucleo 140 seg 47.6
950 MHz ARM 250 MHz core 450 MHz SDRAM 6 3 nucleo 102 seg 49.2
950 MHz ARM 250 MHz core 450 MHz SDRAM 6 4 nucleo 95 seg 50.8
1000 MHz ARM 500 MHz core 600 MHz SDRAM 6
Bloqueo continuo ——-
1000 MHz ARM 500 MHz core 500 MHz SDRAM 2 1 nucleo 267 seg 44.9
1000 MHz ARM 500 MHz core 500 MHz SDRAM 2 2 nucleo 162 seg 44.4
1000 MHz ARM 500 MHz core 500 MHz SDRAM 2 3 nucleo 95 seg 48.7
1000 MHz ARM 500 MHz core 500 MHz SDRAM 2 4 nucleo 90 seg 49.8

 

Posted on

Preparar la tarjeta MicroSd y poder poner el Sistema Operativo a la Raspberry.

Tienes que saber que si formateas la MicroSd con Windows seguramente al copiar el Sistema Operativo de la Raspberry tendrás problemas, a mi lo único que me funciono fue usar el SD Formatter es de SD Association vamos gente de confianza

https://www.sdcard.org/downloads/formatter_4/eula_windows/index.html

Aceptáis el eula, descargáis, instaláis y ejecutáis el programa, seleccionáis la unidad de la MicroSd de la Raspberry y apretáis el botón de Format.

Posted on

Quemar el Sistema Operativo en la tarjeta MicroSd de Raspberry.

Lo primero descarga el Sistema Operativo que Quieres para la Raspberry.

raspdebian, para hacer servidores y que la Raspberry sirva para algo mas que ver películas:
http://downloads.raspberrypi.org/raspbian_latest.torrent

OpenElec, para crear un centro multimedia, solo te sirvira para ver películas, pero es de lo mejorcito que he visto:
Tendrás que ir bajando por la web, hasta encontrar el apartado RasberryPi Builds, tendrás que descargar, el SO que mas se ajuste
http://openelec.tv/get-openelec

Una vez tenemos la imagen del SO que queremos para las Raspberry, descargamos un programa que sirve para quemar el contenido de esa imagen en la tarjeta MicroSd de la Raspberry http://sourceforge.net/projects/win32diskimager/

Descomprimimos el contenido del archivo .zip que nos hemos descargado, abrimos el programa win32diskimager como administrador, seleccionamos donde esta la MicroSD de la Raspberry y la damos al botón de Write, y listo en unos 5min estará todo listo para empezar a disfrutar de la Raspberry.

Posted on

Resuelto El servidor web lea el archivo .htaccess, en Rasperry Pi.

Es facil este es el comando: nohup ./ServerStart.sh &

Vamos a descuartizar esa linea.
El Script que arranca el servidor es “./ServerStart.sh” vamos el comando que siempre utilizamos, el problema esta en que cuando cerramos sesion ya sea pulsando ctrl+D o cerrando la sesion virtual con cualquier programa de telnet (xterm, konsole, putty, telnet, ssh, etc.) este envia una señal que cierra todos los procesos que hemos ejecutado, vamos un problemon porque el servidor se cierra.

Para evitar esta situacion utlizo el comando nohup, que justamente evita que al cerrar la sesion se cierre el script o programa que hemos ejecutado.

Y por ultimo “&” que envia todo al pozo del no retorno /dev/null asi no se ensucia de texto el terminal.

Con esta siemple linea, consigo tener siempre el servidor de minecraft online en la Rasperry Pi.

Posted on

Guía de inicio rápida para la Raspberry

Tienes que saber que la Raspberry Pi solo es una placa, un mini ordenador que viene absolutamente SIN NADA por lo tanto. Si vas a comprar tu Raspberry Pi en la tienda te recomiendo que compres un teclado inalámbrico, que pases por una tienda de chinos para comprar un cable hdmi, y en tu tienda de informática compra una tarjeta MicroSd y diles que es para la Raspberry, si no saben que es cambia de tienda, la razón de usar estas palabras es porque te tienen que dar una MicroSd que tenga una buena velocidad de escritura y lectura de lo contrario la Raspberry te ira muy muy lenta.

Genial, ya estas en casa con tu juguete nuevo, ahora empieza lo complicado de verdad, si la quieres como centro multimedia, te recomiendo que solo lo utilices para eso, yo uso el openelec cumple su función a la primera, sin fallos. Pero se muy consciente que SOLO te servirá para eso.

Mueve películas de hasta 10G sin problema a partir de 15G tiene trompicones, que sepas que la Raspberry la podemos overclockear para que sea mas rápida, pero le quitaremos vida al procesador y si tenemos pensado darle mucha caña no vale la pena.

De todas formas os contare como instalar Openelec y raspdebian este ultimo es Linux puro y duro, vamos un dolor de cabeza. Pero estoy seguro que el 85% de vosotros lo quiere como centro multimedia así que el openelec es vuestra solución.

De todas formas tanto si os queréis calentar la cabeza con Raspdebian como solo usar la Raspberry como centro multimedia, los pasos son exactamente los mismos.

Posted on

Asi dejo el servidor de minecraft siempre online en Rasperry PI

Es facil este es el comando: nohup ./ServerStart.sh &

Vamos a descuartizar esa linea.
El Script que arranca el servidor es “./ServerStart.sh” vamos el comando que siempre utilizamos, el problema esta en que cuando cerramos sesion ya sea pulsando ctrl+D o cerrando la sesion virtual con cualquier programa de telnet (xterm, konsole, putty, telnet, ssh, etc.) este envia una señal que cierra todos los procesos que hemos ejecutado, vamos un problemon porque el servidor se cierra.

Para evitar esta situacion utlizo el comando nohup, que justamente evita que al cerrar la sesion se cierre el script o programa que hemos ejecutado.

Y por ultimo “&” que envia todo al pozo del no retorno /dev/null asi no se ensucia de texto el terminal.

 

Con esta siemple linea, consigo tener siempre el servidor de minecraft online en la Rasperry Pi.

Posted on