Mostrando entradas con la etiqueta instalación. Mostrar todas las entradas
Mostrando entradas con la etiqueta instalación. Mostrar todas las entradas

7 de agosto de 2016

12. Moodle en la Raspberry PI. Instalación y Configuración de Moodle

La instalación de Moodle, en general, al menos por el método que he elegido, ha resultado ser lenta y tediosa, lo cual me hace pensar que: primero, es posible que Moodle, al menos en la instalación que estoy haciendo, sea muy lento con la Raspberry (más adelante intentaré explicar la causas de esta lentitud) y, segundo, que la instalación que estoy llevando a cabo está muy alejada de la óptima, con lo cual habría que optar por buscar más información por internet e intentar realizar una instalación optimizada. En fin, siempre habrá tiempo para hacer esto último.

Comentaros que en las instrucciones que siguen el proceso lo he llevado a cabo dos veces; el primero, incompleto, sirvió para darme cuenta que sería bueno instalar unos módulos de php recomendados y, el segundo, el definitivo, se demoró toda una noche (en realidad, porque me fui a dormir y lo dejé trabajando no sé cuanto tardó el proceso, pero os puedo asegurar que más de 4 horas).

 - - -

Instalando Paquetes recomendados.


Abriendo un terminal en la Raspberry (ya sabéis hacerlo) como administrador, instalé los siguientes paquetes:
  • apt-get install php7.0-intl
  • apt-get install php7.0-xmlrpc
  • apt-get install php7.0-xsl
  • apt-get install php-soap
  • Y que no se os olvide, que a mí me pasó, reiniciar después el sistema o con apache2ctl restart o reboot.


Instalando Moodle: Primera Parte.

Básicamente consiste en elegir el idioma de la instalación, indicarle al sistema qué rutas he elegido como directorio de moodle y de datos e indicar los parámetros de conexión a la base de datos MySQL. El sistema mostraría los paquetes php que le hacen falta y su estado, y empezará el proceso de generación de tablas en la base de datos y demás información en el directorio de instalación y en el directorio de datos.


¿Error instalando? Se demora mucho...

A las tres horas aún no ha terminado de generar las tablas

Instalando Moodle: Segunda Parte.

Una vez generada la información que le hace falta a Moodle, el sistema pide los datos del administrador. Es importante elegir un correo electrónico adecuado y una contraseña segura que deberá conservarse (el nivel de seguridad de la contraseña puede cambiarse/modificarse después). A continuación, pide información general para mostrar en Moodle, como el nombre del sitio, por ejemplo, y se accede , por fin, a la primera página, de administración.



Una vez el sistema instalado, en el próximo acceso , sólo tendré que escribir en el navegador http://192.168.1.30/moodle31 (o el nombre que pusiste en la carpeta moodle, u otro), y tras solicitar usuario y contraseña, se accede. 

Y ya podemos dar por concluido el proceso de instalación. A partir de ahora el trabajo se reduce al del administrador de Moodle: configuración del sitio. Pueden hacerse muchas cosas: fundamental, la creación o subida de cursos y la gestión de usuarios,  pero también mejorar el aspecto del sitio, la configuración de una cuenta de correo de envío SMTP, ajuste de parámetros de administración como por ejemplo el nivel de seguridad de las contraseñas, etc.

Por ejemplo, podéis encontrar más información en:


4 de agosto de 2016

01. Usando la Raspberry Pi con Ubuntu Server. Instalación.

Empiezo con ésta una serie de entradas dedicadas a la Raspberry Pi. Mi intención es replicar la configuración del servidor que tenemos en el instituto, tener un dispositivo relativamente barato y manejable que pudiese reemplazarlo en caso de avería. De hecho, nuestro server, un HP Proliant con discos SCSI (68GB), ya me dio un susto el año pasado y hubo que repararle la placa.

Para esta configuración, he optado por adquirir lo siguiente:
  1. Placa Raspberry Pi 3 Model B. Más información
  2. Tarjeta microSD de 64GB. Recomendado clase 10 (transferencia 10MB/s), que me hará de "disco duro" (prácticamente la capacidad del disco SCSI). (transferencia 10MB/s).
  3. Cargador de 2.5A. Según la Wikipedia el consumo de este modelo es de 800mA (a 5V) luego "sobran" 1.7A que me permitiría, quizás, ampliar el consumo a un disco duro externo en un futuro sin una segunda fuente de alimentación.
  4. Teclado inalámbrico por USB Logitech.
  5. Carcasa oficial para protegerla.
En total, todo ha costado unos 100€. Quizás salga incluso más barato si compramos online, pero opté por hacerlo en una tienda de confianza de mi ciudad: http://fabricadigital.org/

La capacidad de la tarjeta, tan alta como 64GB, no parece suponer un problema para las RPi-3. En la tienda me advirtieron que quizás tuviese que hacer "algo más" para que la aceptara, pero, ya digo, no he tenido problemas en este punto.  Quizás con otros modelos, tipos de tarjeta o configuraciones sí sea un problema.

Para el proceso he usado un ordenador con el sistema operativo Ubuntu y escritorio Mate (basado en Gnome). No quiere decir que no se pueda usar otro sistema operativo, pero el proceso siguiente puede ser distinto.

- - - 

Pasos para la instalación de Ubuntu Server 16.04 en la tarjeta.

  1. Antes que nada, acceder a la web https://ubuntu-pi-flavour-maker.org/download/ y descargarse la versión de Ubuntu que vayamos a usar. Opté por la versión Ubuntu Server Standard 16.04, aunque para otros usos hay versiones distintas disponibles.  
  2. Una vez obtenido el enlace torrent, y con un cliente de descargas de este tipo (para Ubuntu tengo el BitTorrent), te descargas el fichero que debe terminar en .img.xz 
  3. Necesitaré un lector de tarjetas por USB para insertarle nuestra tarjeta,y, usando la utilidad "discos" de Ubuntu que suele encontrarse en Sistema > Preferencias > Hardware > Discos elegir la tarjeta montada y pulsar sobre Restaurar imagen de disco. Busca el fichero de la imagen en tu ordenador, sin descomprimir, y empieza el proceso. NOTA: en la web encontrarás métodos diversos, equivalentes, para Ubuntu y otros sistemas operativos
  4. El proceso restaura una imagen mucho más pequeña que los 64GB, de unos 2GB si no recuerdo mal. El espacio que sobra está inutilizado, vacío. Por ello es interesante modificar la partición creada para que ocupe todo el espacio. Necesito, pues, redimensionarla. Para eso uso el maravilloso programa gparted de Linux. Ten paciencia, el proceso puede tardar varios minutos.
Una vez acabado el proceso, la tarjeta con Ubuntu Server Standard 16.04 estará lista para insertarla en nuestra RPi-3.




19 de mayo de 2016

47. Instalando módulo MATPLOTLIB en Ubuntu. Trabajando con él.

Instalando matplotlib (y numpy) en Ubuntu

Para instalar matplotlib simplemente, desde la terminal de Linux, escribes

apt-get install python-matplotlib

Y se iniciará el proceso de instalación (a menos que ya esté instalado). Si tienes problemas, accedes a al web del proyecto matplotlib http://matplotlib.org/users/installing.html

Si necesitas instalar otros paquetes, como numpy, también:

apt-get install python-numpy


Trabajando con matplotlib

El módulo matplotlib es un módulo que trabajando junto a numpy consigue representación gráfica de muy alto nivel. Una razón para usarlo es que es un módulo propio del proyecto Python. Otra, que en combinación con el ya mencionado numpy, y scipy, se convierte una alternativa a matlab.
Mi primer gráfico
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
plt.plot([-1, -4.5, 16, 23])
plt.show()
En la primera línea importamos el submódulo pyplot de matplotlib , usualmente con el alias plt. En la segunda se representan 4 valores (eje Y) y la orden final es mostrarlo en pantalla. Aunque no hemos escrito valores de eje X, se toman de uno en uno empezando por cero.
  • Con esta modificación plt.plot([-1, -4.5, 16, 23], "ob") se obtienen los puntos discretos. Una lista con los colores y modificadores, se muestra a continuación:
tipos de líneas  colores
= = =
Gráfico con valores en ejes X e Y
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
import numpy as np

# our X values:
dias = np.linspace(1,30,30)
# our Y values:
celsius_values = np.random.rand(30)*15+15
print celsius_values
print dias

plt.plot(dias, celsius_values)
plt.show()
Utilizamos la generación de listas con numpy para crear los valores en X y en Y
  • Se puede mejorar con las sentencias plt.xlabel('Días'), plt.ylabel('Grados centígrados') ; es necesaria la inclusión de la instancia from __future__ import unicode_literals (NOTA: repasar este punto porque entra en conflicto con la escritura en el terminal de caracteres en utf-8).
= = =
Dibujando más de una gráfica
 -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
import numpy as np

# our X values:
dias = np.linspace(1,30,30)
# our Y values:
celsius_values_min = np.random.rand(30)*15+15
celsius_values_max = np.random.rand(30)*10
celsius_values_max += celsius_values_min
print celsius_values_min
print celsius_values_max
print dias

plt.plot(dias, celsius_values_min,"b-",dias,celsius_values_max,'m-')
plt.show()
  • Escribo en plt.plot más de una referencia a una gráfica.
  • Si amplío con estas dos líneas, defino los límites de la función:
    • xmin, xmax, ymin, ymax = 1, 30, celsius_values_min.min()*0.95, celsius_values_max.max()*1.051
    • plt.axis([xmin, xmax, ymin, ymax])
= = =
Otro ejemplo
No aporta nada nuevo pero es muy ilustrativo
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
import numpy as np

X = np.linspace(-2 * np.pi, 2 * np.pi, 50, endpoint=True)
F1 = 3 * np.sin(X)
F2 = np.sin(2*X)
F3 = 0.3 * np.sin(X)
startx, endx = -2 * np.pi - 0.1, 2*np.pi + 0.1
starty, endy = -3.1, 3.1
plt.axis([startx, endx, starty, endy])
plt.plot(X,F1)
plt.plot(X,F2)
plt.plot(X,F3)
plt.plot(X, F1, 'ro')
plt.plot(X, F2, 'bx')
plt.show()
  • Intenta cambiar el estilo de una de las funciones usando parámetros plt.plot(X, F1, color="blue", linewidth=2.5, linestyle="-")
= = =
Rellenando con color
# -*- coding: utf-8 -*-

import numpy as np
import matplotlib.pyplot as plt
n = 256
X = np.linspace(-np.pi,np.pi,n,endpoint=True)
Y = np.sin(2*X)
plt.plot (X, Y, color='blue', alpha=1.00)
plt.fill_between(X, 0, Y, color='blue', alpha=0.5)
plt.show()
Donde tenemos, para fill_between que:
  • X, es el rango de los valores de X
  • el siguiente, 0, es el valor de Y a partir del que se dibuja.
  • el siguiente, Y, son los valores Y de la función hasta los que se dibuja.
  • el resto son parámetros como color y alpha (transparencia, un número entre 0 y 1, tipo float).
  • Intenta cambiar a... plt.fill_between(X, Y, 1, color='blue', alpha=0.1)
= = =

Merece la pena trabajar un poco más este módulo

Ejemplo de dos gráficas en la misma ventana
211 significa que se disponen en 2 filas y 1 columna, y 1 que ocupa la primera posición; 212 significa que se disponen en 2 filas y 1 columna, y 2 que ocupa la segunda posición.
import numpy as np
import matplotlib.pyplot as plt

def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)

t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)

plt.figure(1)
plt.subplot(211)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')

plt.subplot(212)
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.show()
Si después queremos más gráficas podemos poner plt.figure(2) en otra ventana. A lo que ya sabemos del apartado anterior, podemos añadir comandos como:
  • plt.title('Título del gráfico'), que añade un título y complementa a xlabel e ylabel.
  • plt.grid(True), que muestra una cuadrícula en la gráfica.
= = =
Insertando anotaciones en la gráfica
# -*- coding: utf-8 -*-

import numpy as np
import matplotlib.pyplot as plt

ax = plt.subplot(111)

t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2*np.pi*t)
line, = plt.plot(t, s, lw=2)

plt.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
            arrowprops=dict(facecolor='red', shrink=0.1),
            )

plt.ylim(-2,2)
plt.show()
 = = =
Se puede cambiar las escalas lineales a logarítmicas con plt.xscale('log') (o yscale). Admite 'linear', 'log', 'symlog', 'logit'.
= = =
  1. Para conocer algunos estilos predefinidos, imprimir plt.style.available. Para usar uno de la lista, plt.style.us('ggplot'). Para saber más.
  2. Para trabajar con textos, y evitar el problema de los acentos y las ñ's.
  3. Tutorial para insertar imágenes en las gráficas.
Leyendas
import matplotlib.pyplot as plt
from numpy.random import randn

z = randn(10)

red_dot, = plt.plot(z, "ro", markersize=15)
# Put a white cross over some of the data.
white_cross, = plt.plot(z[:5], "w*", markeredgewidth=1, markersize=10)

plt.legend([red_dot, (red_dot, white_cross)], ["Attr A", "Attr A+B"])
plt.show()
  1. Tutorial para insertar leyendas en los gráficos
  2. Tutorial para anotaciones
= = =
Y para saber más, referenciarnos al manual de usuario: http://matplotlib.org/users/index.html