Archivo mensual: octubre 2017

Programación gráfica con GCC y GTK

Que es GTK ?

GTK «GIMP Tool Kit»: Es un conjunto de bibliotecas multiplataforma para desarrollar interfaces gráficas de usuario (GUI), principalmente para los entornos gráficos GNOME, XFCE y ROX aunque también se puede usar en el escritorio de Windows, Mac OS y otros. Inicialmente fueron creadas para desarrollar el programa de edición de imagen GIMP, sin embargo actualmente se usan bastante por muchos otros programas en los sistemas GNU/Linux. Junto a Qt es una de las bibliotecas más populares para Wayland y X Window System.

Aunque GTK soporta un gran cantidad de lenguajes de programacion como python, c++, java, javascript; nuestro interes se centra en la programacion con gcc; lenguaje que por defecto trae las distribuciones linux y concretamente debian

Que es una Interfaz Gráfica de Usuario (GUI) ?

Una interfaz grafica no es más que la forma que tiene las aplicaciopnes informaticas para interactuar de manera amigable con el usuario; puesto que para hacerlo se utilizan las potencialidades de los despliegues gráficos (software y hardwarea) que los sitemas operativos modernos poseen; se puede definir como la «cara bonita» de las aplicaciones desarrolladas con los lenguajes de programacion, haciendolos compatibles con los escritorio de los sietmas operativos modernos y más si utilizan codigo y sotware libre, como es linux.

Que es un widget de GTK+ ?

Son objetos y funciones para crear la interfaces gráfica de usuario. Como ventanas, botones, menús, etiquetas, deslizadores, pestañas, etc. que permiten enriquecer las interfaces graficas de las aplicaciones.

Los más utilizados pueden ser:

Clase Descripción Imagen
GtkAccelLabel Etiqueta que muestra información de una tecla aceleradora a la derecha del texto GtkAccelLabel.png
GtkImage Widget que permite mostrar una imagen. GtkImage.png
GtkLabel Widget que permite mostrar una pequeña o mediana cantidad de texto. GtkLabel.png
GtkProgressBar Widget que indica el estado de un progreso. GtkProgressBar.png
GtkStatusbar Reporta mensajes de menor importancia al usuario en la barra de estado. GtkStatusbar.png
GtkStatusIcon Muestra un ícono en el área de notificación del sistema.

Botones

Clase Descripción Imagen
GtkButton Botón convencional. Crea una señal cuando se da click sobre él. GtkButton.png
GtkCheckButton Etiqueta con un botón el cual puede estar en dos estados: seleccionado o no seleccionado. GtkCheckButton.png
GtkRadioButton Opción de una lista múltiple de opciones. GtkRadioButton.png
GtkToggleButton Botón convencional el cual puede mantener su estado. GtkToggleButton.png
GtkLinkButton Botón que enlaza a una URL. GtkLinkButton.png
GtkScaleButton Botón que hace aparecer una escala.
GtkVolumeButton Botón que hace aparecer un control de volumen. GtkVolumeButton.png

Cómo instalar las librerias GTK+ en debian

En primer lugar antes de emepzar a programar con GTK+ debemos instalar sus librerias, para ello utilizamos los siguientes comandos:

# apt-get install gtk2.0 
# apt-get update
# apt-get install libgtk2.0-dev
# apt-get update

Hecho esto ya tenemos disponibles el acceso a las librerías; lo único que nos queda es empezar a utilizarlas en nuestros programas; tal como siempre lo hemos hecho en el encabezado del programa en c debemos convocar a las librería; es decir indicarle al compilador que a incluir las referencias a la librería GTK; colocando la sentencia siguiente en la primera línea del programa:

#include <gtk/gtk.h>

a partir de esta primera instrucción de la sentencia include empezaremos a escribir el código de nuestro programa y las distintas sentencias que convocan a los widgets que necesitamos como : botones, cajas de texto, cajas de entradas, sliders, imágenes, etc.

Una vez que hayamos terminado de escribir todo el código del programa ya lo podemos compilar utilizando la siguiente instrucción por medio de la terminal o consola:

# gcc nombre_del_programa_fuente.c -o nombre_del_programa_objeto -Wall  `pkg-config --libs --cflags gtk+-2.0`

Para poder ejecutar nuestro programa compilado bastará con digitar la siguiente instrucción:

# ./nombre_del_programa_objeto

Utilicemos un ejemplo

/********************************/
/* MI PRIMER PROGRAMA CON GTK+ */
/******************************/

#include <gtk/gtk.h>

int main (int argc, char *argv[]) {
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Mi primer programa");
gtk_widget_show (window);
gtk_main ();
return 0;
}

Para compilarlo entonces digitamos:

# gcc primerp.c -o primerp -Wall `pkg-config --libs --cflags gtk+-2.0`

Nos producirá un segundo archivo denominado primerp el cual es nuestro binario ejecutable.

Para ejecutarlo debemos asegurarnos de que tiene los permisos de ejecución adecuados; podemos hacerlo mediante el comando

# chmod +x primerp

Listo, ahora podemos ejecutarlo así:

# ./primerp

y su resultado sera una ventana con su respectivo titulo

EPOPTES (revisado oct. 2017)

Translator

 

por: Henry Vallejo Dr.
Probado en Debian 7 , 8 y 12.x
abril – 2015

Revisado a Oct. 2017, Nov. 2024

HERRAMIENTA PARA MONITOREO Y ACOMPAÑAMIENTO DOCENTE EN UN LABORATORIO O SALA DE COMPUTO

Si eres docente te habrás encontrado con la desagradable inconveniente de que tus alumnos al estar frente a una computadora y está conectada a internet; el estudiante no pone atención a las indicaciones en clase, se lo nota distraído y ausente; pero si muy concentrado en el monitor de la PC; por experiencia sabemos que se encuentra realizando otras actividades ajenas al periodo de clases (Facebook, twitter, YouTube, y algún otro tipo de chat) lo que antes la PC se consideraba en un cautivado de la atención hoy es considerado un distractor de clases, pero la culpa no es ni de la PC ni del estudiante; sino del docente que no sabe utilizar adecuadamente estas herramientas pero más grave aún el desconocimiento de nuevas herramientas que podrían ayudar notablemente el ejercicio de la docencia utilizando herramientas tecnológicas como medio didáctico y recuperando la atención que la PC, ya de por si genera en el alumno.

Por etas y otras razones, desde hace mucho tiempo he utilizado herramientas tecnológicas como instrumentos pedagógicos en clase; más aún cuando como profesor hago uso frecuente de los laboratorios de computo de la Universidad; sin embargo en la mayoría de los casos herramientas que me faciliten vigilar lo que ocurre en la clase y específicamente lo que hacen los alumnos en sus máquinas; en esa búsqueda lo más común fueron herramientas muy costosas con copyright y bajo sistemas operativos propietarios. Al ser un docente que ha defendido el uso de software libre y abierto desde hace más de 20 años y consecuente con mi filosofía al respecto; en esa búsqueda llegue a las versiones de Linux con herramientas “integradas”; por ejemplo Edubuntu, Huayra, Educanix, EduKnoppix, GnuLinEx; entre otros, sin embargo al ser un apasionado usuario de Debian en su estado más puro, decidí instalar una herramienta que me permitiera monitorear las actividades de clases en el aula, es así que llegue a la aplicación cliente servidor llamada EPOPOTES (había hecho pruebas con iTALC con enormes complicaciones para su instalación bajo Linux) con el fin de facilitar a mis colegas docentes un manual que ayude de manera sencilla a instalar y configurar esta herramienta me permito escribir estas líneas; esperando no aburrirlos…

server -pantalla remota (Copy)

Que es Epoptes.?

Epoptes (Επόπτης – una palabra griega que significa supervisor) es un software de gestión y monitoreo de laboratorios de informáticos de código abierto. Permite la transmisión de la pantalla y la supervisión, ejecución remota de comandos, envío de mensajes, la imposición de restricciones, como el bloqueo de pantalla o silenciar el sonido de los clientes y mucho más!
Puede ser instalado bajo sistemas operativos Debian, Ubuntu, y openSUSE y que además pueden contener cualquier combinación de las siguientes: servidores LTSP, clientes ligeros y pesados, servidores, estaciones de trabajo independientes no LTSP, NX o clientes XDMCP etc.

Es una re escritura parcial de una aplicación más antiguo llamado SCH-scripts, que se ha utilizado con éxito el año pasado en cerca de 250 escuelas griegas. Epoptes ya tiene un montón de características, pero se han previsto mucho más, y está siendo desarrollado a un ritmo muy rápido. Es mantenido por profesores y estudiantes de TI, por lo que va a estar vigente durante mucho tiempo!

Antes de empezar hay que organizarse.

Antes de empezar con la instalación vamos a organizarnos. Debemos identificar adecuadamente la PC que hará de “servidor” la cual usara el docente o profesor, pues desde ella hará el monitoreo y controlará los demás equipos, así mismo debemos identificar a cada una de las máquinas de usuarios o “alumnos” ; hecho esto debemos verificar el nombre de las máquinas y de los usuarios.

Así que aquí veremos las instrucciones para cambiar el nombre de la maquina en Debian, recuerden que es aplicable en cualquier disto como Ubuntu, entonces debemos editar el siguiente archivo en el directorio respectivo así:

# nano /etc/hostname

Sin espacios en blanco

Grabamos y salimos del editor nano; ahora debemos verificar el archivo hosts de igual manera con el comando siguiente modificamos o agregamos los datos correspondientes así:

# nano /etc/hosts
127.0.0.1 localhost
127.0.0.1 debian.tecnisoft.com   nombre_equipo

(el dominio que se lee es el de mi empresa que fue colocado cuando se instalo Debian), es oportuno que el trabajo de identificar los equipos se haga antes de instalar Epoptes, con el fin de poder identificar las máquinas que los alumnos utilizaran y saber que alumno usa el equipo, a fin de poder asistirlo con la aplicación o bloquear el equipo. Sea cuidadoso y ordenado con la asignación de nombres, es recomendable si el laboratorio o aula donde están los equipos son utilizados por diferentes grupos generalizar los nombres; por ejemplo: para el servidor “Profesor” mientras que para las de los alumnos “Alumno 1, Alumnos 2… n” y así sucesivamente. Debo indicar finalmente que esto es válido cuando en el momento de instalar el Sistema Operativo no se tuvo la precaución de dar los nombres adecuados a los equipos.

Vamos a instalarlo..!

Los siguientes instrucciones nos permiten instalar epoptes server en su sistema; de ser posible asegúrese que la red de computadoras estén funcionando con el sistema operativo adecuado, en nuestro caso Debian 12 y de que el equipo que hará de servidor tenga asignado una IP publica o estática (que no cambie cada vez que se la enciende) de otro modo deberá cada vez modificar las configuraciones en el archivo hosts de cada cliente.

En el lado del server tendrá disponible una amigable interfase GUI que le permitirá controlar los PC clientes; mientras que para el cliente una vez instalado y configurado; todo será transparente.

Para empezar tanto del lado del Cliente como del Servidor debemos indicar a Debian desde donde va a tomar las aplicaciones de epoptes, el cual se encuentra en el repositorio de aplicaciones de “terceros”, por lo tanto se debe indicar a Debian desde donde tomarlos, para lo cual debemos abrir el siguiente archivo con el editor nano, colocarlo al final del archivo:

# nano /etc/apt/sources.list

Agregamos al final las siguientes líneas:

# Repo de aplicaciones privadas
 deb ftp://ftp.debian.org/debian stable main contrib non-free

Para la versión 12 de Debian guíese en este tutorial

Una vez hecho esto se debe realizar una actualización del sistema de los repositorios mediante los comandos:

# apt upgrade
# apt update

INSTALACION EN EL EQUIPO SERVER DE EPOPTES (Profesor)

Hecho esto en el server y en el cliente, ahora podemos instalar la aplicación Server de la siguiente manera:

Instalar el Server Epoptes en su sistema – máquina del profesor

# apt install epoptes

Posteriormente hay que indicar al equipo servidor que permitiremos al usuario que se logee en el server como parte del grupo epoptes, para lo cual indicamos en el equipo server lo siguiente (el user puede ser root u otro usuario que usara la aplicación server de epoptes)

Agregar al grupo de usuarios el epoptes “user” debe ser el del root o profesor

# gpasswd -a user epoptes

Para que todo lo que hemos modificado e indicado en el equipo server tenga efecto debemos reiniciarlo; desde la consola y como “su” puede digitar:

# sudo reboot

INSTALACIÓN EN EL EQUIPO LA APLICACIÓN CLIENTE DE EPOPTES (Alumno)

A fin de poder efectuar la instalación de la aplicación cliente debemos recordar que debe estar indicado el repositorio de terceros como ya se explicó al inicio de este manual.

Para continuar entonces desde la consola de Debian debemos indicar los siguientes comandos (procure hacerlo todo como administrador):

Instar el paquete Epoptes Client en su sistema

# apt install epoptes-client

Hecho esto se debe indicar en el archivo hosts la IP del server al cual se dirigirán los clientes; así como el nombre que por defecto es server, entonces editamos el archivo host mediante los siguientes comandos:

Agregamos la IP (de preferencia fija) del server en cada PC cliente de Epoptes en el archivo hosts (mire arriba sobre organización de los equipos), para averiguar cual es el IP de nuestro server, en la consola coloque:

# ip -c a

esto debe devolver datos de la eth0 (tarjeta de red) en enp0s3:  Inet: 192.168.1.113 por ejemplo.

Ahora bien debemos indicarle a los clientes que se conecten con nuestro server así:

# nano /etc/default/epoptes-client

donde :

SERVER=192.168.1.113

OJO: en este paso la mayoría de manuales están equivocados.

NOTA revisión para la versión de Debian 12.8

En Debian 9.x puede fallar la opción de compartir el escritorio del profesor esto se debe a que no se instalan correctamente los servicios de VNC en el lado del cliente por lo tanto en cada máquina de los estudiantes debemos instalar las siguientes aplicaciones:

# apt-get install tigervnc-viewer
# apt-get install xvnc4viewer
# apt-get install ssvnc

Esto garantizara que el server VNC (Virtual Network Computin) funcione adecuadamente en cada «terminal»; no te olvides reiniciar el equipo para que todos los cambios surtan efecto.

# sudo reboot

Posteriormente se debe obtener el certificado SSL que está instalado en el lado del server, este certificado garantiza la seguridad de los datos y la integridad de la comunicación única con el server, para ello digitamos el siguiente comando; asegúrese de tener acceso al server mediante la conexión de red (# ping 192.168.1.113)

Trayendo desde el servicio OpenSSL el certificado para los clientes

# sudo epoptes-client -c

instantánea10 (Copy)

Como siempre para asegurarnos de que las configuraciones surtan efecto reiniciamos nuestros terminales o clientes.

# sudo reboot

Nota : No es necesario modificar nada más en el server, Si se enfrenta a cualquier problema utilice el comando siguiente para comprobar errores de sintaxis en el servidor.

chequeando errores de sintaxis en el server

# sh -n /etc/default/epoptes

Lo que ve el profesor

GUI de administración y control de clases

20150507_143042 (Copy)

Envío de mensajes

mensaje desde el prof-alumno1 (Copy)

Recepción de los mensajes del lado del alumno

mensaje desde prof-alumno2Envío de comando desde el profesor en este caso para cargar una página web en la PC del estudiante

enviar comandos epoptesLa web ejecutada en la PC del cliente o alumno

comando remoto web (Copy)En esta imagen se muestra como el profesor puede bloquear temporalmente el equipo del estudiante

20150507_143007 (Copy)NOTA:

En el caso de que no funcione se debe verificar que los puertos adecuados estén abiertos estos son 789 y este rango 1024:65535, esto se puede hacerlo mediante el manejo de iptables ya sea por consola o mediante un aplicativo gráfico, recomiendo usar gufw.

Por consola seria usando los siguientes comandos:

iptables -A INPUT -p tcp --dport 789 -j ACCEPT
iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT
iptables-save > /etc/iptables/rules.v4

La otra opcion es instalando gufw para facilitar la configuracion del firewall para ello debe instalar primero el gufw desde consola asi:

# apt install gufw

recuerde que si usa el CD de instalación de Debian, éste debe estar en la unidad de lectura, una vez ahí ya podrá ingresar las acepciones en las reglas del firewall, como se ve en la gráfica.

Instalacion de KOHA en Debian 9 (Catalogación para Bibliotecas)

Para empezar necesitamos hacer algunos cambios en Debian, concretamente en:

# nano /etc/apt/sources.list

Como ya se ha explicado se requiere entrar como super usuario y desde ahi hacer los cambios; asumiendo que el un Debian recien instalado, por lo tanto hay que hacer las modificaciones necesarias para que busque en internet todo los elementos de actualizacion necesarios y no en los CDs.

Donde debemos agregar al final del archivo:

deb http://ftp.us.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.us.debian.org/debian/ stretch main contrib non-free

Y luego como siempre actualizamos nuestro Debian:

# apt-get update

Agregar el repositorio de la comunidad Koha

Bien, en este punto debemos agregar el repositorio de KOHA en su ultima version para ello solo debemos colocar los siguientes dos lineas de instrucciones desde la consola; siempre como super usuario (su):

# echo deb http://debian.koha-community.org/koha stable main | sudo tee /etc/apt/sources.list.d/koha.list
 
# wget -O- http://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -

Una ves que hayamos terminado como siempre debemos actualizar Debian

# apt-get update

Instalacion de KOHA

Con el siguiente comando instalaremos la ultima version de KOHA en nuestro Debian:

# apt-get install koha-common

Configuracion del Servidor

En este punto debemos editar la informacion de la red donde esta la informacion del dominio y sobre todo el puerto, de la siguiente manera:
# nano  /etc/koha/koha-sites.conf
Aqui cambiamos el numero del puerto de KOHA para los clientes en el 8080. Busque la siguiente linea en el archivo y agregela:
INTRAPORT="8080"

Instalar MySQL (MariaDB)

Para eso simplemente ejecutamos la linea siguiente (si ya esta instalado por defecto se nos indicara)

# apt-get install mariadb-server

Asignamos password de Root a MySQL

# mysqladmin -u root password newpass [Replace 'newpass']

# exit

Creacion de Instancias de KOHA

Ahora debemos crear las instancias que requiere KOHA, lo que agregara en Apache estas configuraciones:

# a2enmod rewrite
# a2enmod cgi
# service apache2 restart

Creamos una instancia de KOHA con el nombre de la library, Asi:

# koha-create --create-db library

Agregar el nuevo puerto

# nano /etc /apache2 / ports.conf

Recuerda que en KOHA habiamos agregado el puerto 8080 para Koha, el resto de clientes se conectan por el puerto 80 (OPAC)

Abrimos el siguiente archivo y el nuevo puerto.

Copiamos y pegamos la siguiente linea debajo de la linea Listen 80

Listen 8080

Reiniciamos el Apache

# service apache2 restart

Activamos los módulos del sitio

# a2dissite 000-default
# a2enmod deflate
# a2ensite library
# service apache2 restart

Cambiar la Password por defoult de KOHA

El usuario y  clave principal de login a Koha es la misma de  la base de datos MySQL (ejp. koha_library es el usuario por defecto), donde esta almacenado.

Primero cambiamos la clave de la base de datos de koha_library.
entonces colocamos la nueva password en /etc/koha/sites/library/koha-conf.xml

Desde la terminal y como super usuario ingresamos la password del Root

# mysql -uroot -p

y se nos solicitara los datos desde la consola del MySQL, para lo cual colocamos liea a linea las instrucciones, por cada linea un ENTER.

use mysql;
SET PASSWORD FOR 'koha_library'@'localhost' = PASSWORD('koha123');
flush privileges;
quit;

Ahora necesitamos cambiar la password en el archivo de configuracion de Koha.

Abrimos el archivo de configuracion usando el editor de texto por consola, asi:

# nano /etc/koha/sites/library/koha-conf.xml

Guardamos y salimos… (CRTL + O   CRTL + X)

Como iniciamos KOHA
Desde el navegador colocamos las siguientes URLs

http://127.0.1.1:8080 (Clientes)
http://127.0.1.1:80 (Catalogo Online)

  1. – Colocamos la URL
  2. – El nombre de usuario
  3. – la Clave

Con todo esto estamos listos para empezar la configuracion de nuestro KOHA, lea cuidadosamente y seguir paso a paso las instrucciones.

Al finalizar veremos algo como esto, es la pantalla de administracion e ingreso de datos.

Mientras tanto esta es la pantalla de busquedas de uso común de los usuarios:

Cambiar el lenguaje de nuestro KOHA

Hoy (5/10/2017) intrigado con el cambio de lenguiaje y antes que surjan esas inquietudes y se queden sin solucionar, investigando decifre la manera más simple de cambiar el lenguaje o dioma a nuestro KOHA y sus interfaces, tanto del usuario online como del administrador, veamos como se hace.

Em primer lugar averiguemos cuales son los lenguajes soportados por nuestro srevdor de KOHA con el siguiente comando -recuerda que todo se lo hace como root ingresando con su – y digitamos lo siguiente:

# koha-translate --list --available

acto seguido mostrara los lenguajes soportados, a nosotros nos interesa ponerlo en español; por lo tanto el formato sera: es-ES

Para instalarlo debemos descargarlo e instalarlo, entonces debemos asegurarno estar conectados a internet y desde la terminar digitamos este comando en la línea del promopt:

# koha-translate --install es-ES

Y eso es todo a traves de la terminal, debemos sin embargo; definir los cambios ya en el KOHA asi:

Abrimos la pagina web de nuetro KOHA desde por ejemplo

http://192.168.1.100:8080

y veremos la siguiente pantalla, donde seleccionamos Administration

Se abre la siguiente pantalla y aqui seleccionamos Global system preferences, lo cual nos llevara a otra página.

Es aqui donde debemos definir el lenguaje, seleccionando la opcion del menú 18N/L10N donde se colocan los datos Internacionales y formatos de fecha, etc..

Y es justo aqui donde seleccionamos el lenguaje Español, que previamente instalamos, es mejor dejar sin seleccionar el lenguaje Inglés (a menos que se dese dar acceso con ese idioma también)

Finalmente volvemos a cargar nuestra pagina (puede usar F5) y veremos que el idoma ha cambiado.

Tanto para la página de Gestion :

como para la página de usuarios online o cosultas bibliográficas.

Cambiando el banner para personalizar

Con el fn de personalizar un poco más y que KOHA asuma la imagen corporativa de la institucion o biblioteca una forma muy elegante es agregar un banner o cabecera personalizada, que muestre al usuario en que biblioteca esta consultando.

Empecemos por crera un banner en cualquier editor grafico de preferencia; lo puede hacer en Gimp. Una vez creado debemos copiar la imagen al directorio adecuado; para nuestro ejemplo el archivo de imagen sera cabecera.jpg

desde el directorio en el cual hayamos grabado la imagen (casi siempre sera /home/henry/Imágenes) por ejemplo; procedemos a copiar al directorio que corresponde asi:

# cp cabecera.jpg /usr/share/koha/opac/htdocs

Con esto ahora solo debemos decirle a KOHA , cual es la imagen que usaremos para ello desde el menú nos dirigimos a Inicio/Administracion/Preferencias del sistema (1), luego seleccionamos en el menú lateral OPAC (2)

Es aqui donde debemos agregar el codigo HTML que especifica la imagen que usaremos en nuestro caso es «cabecera.jpg»

     <img alt=»» src=»cabecera.jpg» style=»width:100%; height:100%,»>

Luego solo grabamos los cambios

Al refrescar la página ya podermos ver nuestro banner o cabecera personalizado:

Listo! eso es todo, ahora solo nos queda empezar a utilizar la aplicación y emepzar a ingresar nuesto catalogo de libros de la biblioteca. Sin embargo eso es otro tema, puesto que se deben definir bajo que formato de catalogación o estándard lo utilizaremos.

Espero que este aporte ayude a mis amigos bibliotecarios, cualquier comentario o ayuda respecto de esta aplicacion, no dude en comunicarse.

NOTA: si usa esta información por favor cite la fuente 😉

Suerte!!!

Recuerda el sitio oficial de KOHA esta ubicado en:

https://koha-community.org/

Cambiar lenguaje de KOHA…

Categorias

Tutoriales

octubre 2017
L M X J V S D
 1
2345678
9101112131415
16171819202122
23242526272829
3031