Pensamiento Computacional y Fluidez Tecnológica

A veces es bueno sin perder los conocimientos técnicos ni las habilidades aplicativas tener un poco de conocimiento sobre las repercusiones psicológicas y educativas que pueden tener sobre nosotros las TIC, por eso y en vista de que últimamente ando muy ligado al trabajo social, académico, educativo y pedagógico y he tenido la oportunidad de trabajar de la mano con OLPC (One Laptop Per Child) y un modelo educativo llamado Step By Step el cual enfatiza en temas como el ingles y tecnología en sectores vulnerables del mundo. Por eso les quiero entregar este documento en el que realice junto con algunos compañeros abordando el tema de la Fluidez Tecnológica y una presentación sobre la teoría constructivista propuesta por Seymour Pappert y el Pensamiento Computacional.

Fluidez Tecnológica

Teniendo en cuenta el crecimiento desmesurado de las TIC (Tecnologias de Informacion y Comunicaciones) debemos integrarnos con ellas y comprender que son parte fundamental de la época en que vivimos y cualquiera de los cambios que llegue con ellas significará una manera diferente de comportarnos con nuestro entorno tecnológico. 

Todo esto implica que nuestro cerebro se verá obligado a ser flexible y a actualizar la manera de percibír la tecnología con respecto al avance que con esta llegue y dependiendo de esto nuestra capacidad de movernos de una manera acorde con estos cambios definirá si somos seres con capacidad de ser fluídos tecnológicamente. 

La fluidez tecnológica significa aprender a manipular de diferentes maneras dichas herramientas sin importar cuan novedosas sean, investigar sobre sobre su nacimiento, utilidad y funciones básicas, además de eso la labor investigativa que podamos invertir sobre dichas herramientas definirá el nivel de comprensión que podremos tener de la tecnología. 

Prosiguiendo, dividiremos básicamente el nivel de fluidez tecnológica en tres ramas:

- Fluidéz Nula 
- Fluidéz Standard 
- Fluidéz Avanzada 

Fluidéz Nula: Implica que la persona no tiene interacción alguna con los dispositivos tecnológicos y sus utilidades. Esta dificultad limita la imaginación al mero hecho de utilizar herramientas obsoletas y predisponerse al único uso de éstas sin tener en cuenta las vertientes que pueden tener y la optimización de procesos utilizando la tecnología. 

Fluidéz Standard: Hace referencia a quienes utilizan tecnología de manera básica, obtienen un gadget, smartphone, PC o cualquier otro dispositivo y le dan un manejo normal, solucionan problemas cotidianos y pueden acoplarse de una buena manera a los cambios repentinos que puedan llegar a tener dichos dispositivos, sin embargo, su utilización se limita a esto. 

Fluidéz Avanzada: Se refiere a personas que utilizan la tecnología a manera investigativa para dar funciones que quizá oficialmente no estén documentadas ni realizadas, como por ejemplo utilizar un celular para funciones que no venía fabricado o utilizar un software diferente sobre este; tales personas generalmente tienen la fortaleza de analizar problemáticas y resolverlas con funcionalidades innovadoras además de estudiar las funcionalidades y el trasfondo que puede contener el funcionamiento básico de la tecnología. 

Para concluir, citamos ahora, cierto de los plantemientos de Papert y Resnick, el cual señala las ideas intuitivas como un hecho que debe ser combatido partiendo así a algo más:

 “A technologically fluent person should be able to go from the germ of an intuitive idea to the implementation of a technological project" (Papert & Resnick, 1995)”. De donde observamos la necesidad de que dejemos de lado el pensar en determinadas cuestiones somera y hasta subjetivamente, para dar paso al verdadero análisis de la situación problema, abarcando pasos estructurados que confluyan en el diseño y ejecución posterior de un proyecto tecnológico. 

Pensamiento Computacional. 

Existen en la actualidad personas que han nacido viendo todo tipo de gadgets, obteniendo desde el primer respiro una bocanada de Tecnología y esto los convierte en nativos digitales, esto nos hace pensar, ¿Como piensa un dispositivo? ¿Como influyen sus decisiones en nuestra vida cotidiana? ¿Que pasaría si pensáramos como un computador (u otro dispositivo)? 

El pensamiento computacional es un concepto aportado por personalidades provenientes del MIT y algunas fundaciones latinoamericanas como Eduteka las cuales hicieron un planteamiento que afirma que si el ser humano pensara computacionalmente, tendría mas lógica al realizar los procesos, podría analizar los problemas de la sociedad y tratar de solucionarlos y se replantearía problemas que no existen para brindar una solución que nunca ha sido pesada. 

Por ultimo les quiero compartir una presentación acerca del concepto de pensamiento computacional y les estaré enviando información sobre este, su repercucion, sus procedimientos técnicos y las herramientas para desarrollar estas aptitudes desde la temprana edad. Feliz día.



Vsftpd Con Autenticacion de usuarios en MySql

Bueno llevaba mucho tiempo sin publicar nada pero esta vez lo estoy viendo muy necesario, entonces quise hablar un poquito de algo que había hecho hace muchos años pero que en aquel entonces quizá no tenia los criterios técnicos para hablar bien del tema.

En este momento quiero mostrarles un servidor FTP el cual autenticara sus usuarios con unos creados previamente en bases de datos de MySql, todo esto a través de las librerías PAM.

Conceptualizando:

FTP

No quiero entrar en mucho detalle sobre el protocolo FTP por que comenzaríamos a hablar de activos y pasivos de puertos y de un montón de criterios que en realidad nos alargarían mucho la entrada, pero entonces quiero contarles que un servidor FTP es un servidor en el que intercambian archivos los clientes y el servidor todo esto para diversas funciones, una de las mas utilizadas es la administración de un servidor web, es decir, si yo tengo un servidor web en el que tengo una pagina y en ese mismo lugar tengo un servidor FTP, esto me brinda la ventaja de administrar los archivos de mi pagina web a través del FTP facilitando así la actualización de esta. (Cabe resaltar que también se usan en infinidad de procesos pero este es uno de los ejemplos mas puntuales.)

VSFTPD

Según http://www.guia-ubuntu.org vsftpd, son las siglas de "Very Secure FTP Daemon" : Demonio FTP muy seguro, es un servidor FTP. Está licenciado bajo la licencia GNU. Soporta IPv6 y SSL.

MySql

Hemos hablado muchas veces en este blog sobre MySql y solo quiero decirles que es un excelente y muy utilizado gestor de bases de datos relacionales.

PAM

Este no es un mecanismo de autenticación mas bien este proporciona una interfaz entre las aplicaciones de usuario y diferentes métodos de autenticación. Mediante PAM podemos comunicar a nuestra aplicaciones con los métodos de autenticación que deseemos de una forma transparente, lo que permite integrar las utilidades de un sistema Unix clásico (login, ftp, telnet...) con esquemas diferentes del habitual password: claves de un solo uso, biométricos, tarjetas inteligentes. Como por ejemplo en este caso tratar de autenticar los usuarios que ingresen al FTP no con el archivo /etc/passwd (usuarios locales) sino con MySql.

Instalando.

Les recuerdo que estamos en un sistema operativo CentOs 6 y aquí comenzaremos por instalar MySql (cliente y servidor), el soporte de PAM para MySql y finalmente el servidor FTP.


Configurando MySql.

Ahora iniciaremos la configuración de MySql (yo se que muchos ya deben tener esto listo pero les pido paciencia por que quiero mostrar paso a paso para que quienes no lo saben no se lo pierdan):

Reiniciamos el demonio de MySql.


Iniciamos una instalación segura en la que definiremos la contraseña de root y  eliminaremos los usuarios anonymous.


Borramos las bases de datos de prueba, deshabilitamos el acceso remoto como usuario root y recargamos la tabla de privilegios.


Asumiendo entonces que todo nos salio bien, procedemos a ingresar al MySql.



Aquí comenzaremos la creación de las tablas y las bases de datos, además de esto insertaremos los parámetros de credenciales para los usuarios.



mysql> CREATE DATABASE vsftpd; #Esto crea una base de datos para ingresar los usuarios del ftp.

mysql> CREATE USER vsftpd; #Esto crea el usuario propietario de la base de datos del ftp.

mysql> GRANT ALL ON vsftpd.* to 'vsftpd'@'localhost' IDENTIFIED BY 'vsftpdpass'; #Aqui estamos dandole permisos a todo lo que contenga la base de datos del ftp al usuario vsftpd@localhost.

mysql> CREATE TABLE `vsftpd`.`accounts` ( `id` INT NOT NULL AUTO_INCREMENT , `username` VARCHAR( 30 ) NOT NULL , `pass` VARCHAR( 50 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM; #Bueno dentro de la base de datos creamos una tabla que se llama "accounts", la cual va a tener dentro dos campos uno que es "username" y otro que es "pass" estos son solamente los títulos, en el siguiente valor si lo podemos cambiar por nuestros usuarios.

mysql> INSERT INTO vsftpd.accounts(username,pass) values('user1',password('password1')); #En este campo estamos diciendo que dentro de la base de datos vsftpd, dentro de la tabla accounts, dentro del campo "username" ingresaremos el usuario "user1" (que es nuestro usuario de ejemplo) y dentro del campo "pass" ingresaremos "password1" que es el password del usuario de ejemplo.


mysql> FLUSH PRIVILEGES; #Actualizamos los privilegios de los usuarios y listo!

Configurando el vsftpd.

Ahora crearemos un usuario del sistema llamado vsftpd lo ingresaremos al grupo users y no le daremos shell de login, además definimos /home/vsftpd como su home.



Editaremos luego el /etc/vsftpd/vsftpd.conf

Primero hacemos un backup del original y borramos todo el contenido del que vamos a usar.


Este sera su contenido.

#Deshabilita el login anonymous
anonymous_enable=NO
#Habilita usuarios locales con permisos de escritura 755
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
log_ftp_protocol=YES
xferlog_enable=YES
connect_from_port_20=YES
#Definimos el unico usuario sin privilegios.
nopriv_user=vsftpd
chroot_local_user=YES
listen=YES
# Aquí se utiliza el módulo de autenticación para vsftpd para comprobar el nombre #de usuario y passw.
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=yes
#Aquí el vsftpd permitirá a el usuario 'vsftpd' iniciar sesión en "/home/vsftpd
#/$directorio de usuario
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
#Especifica un directorio para los archivos de configuración por usuario
user_config_dir=/etc/vsftpd/vsftpd_user_conf
force_local_data_ssl=NO
force_local_logins_ssl=NO
pasv_enable=YES
pasv_min_port=44000
pasv_max_port=44100
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
nopriv_user=vsftpd
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=yes
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
force_local_data_ssl=NO
force_local_logins_ssl=NO
pasv_enable=YES
pasv_min_port=44000
pasv_max_port=44100

Configurando PAM.

Ahora lo que debemos hacer es que el PAM busque los usuarios de MySql en vez de los usuarios del /etc/shadow  y /etc/passwd lo primero que haremos sera realizar una copia del archivo.

Editaremos entonces el archivo /etc/pam.d/vsftpd (no sin antes sacarle una copia) y luego de tenerlo vacío comenzaremos desde cero la edición de este con los siguientes parámetros.


#%PAM-1.0
session     optional     pam_keyinit.so     force revoke

#Lo siguiente en una sola linea.
auth required pam_mysql.so user=vsftpd passwd=vsftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3

#Esto en otra linea.
account required pam_mysql.so user=vsftpd passwd=vsftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=3


Aquí le estamos diciendo que busque la autenticación de los usuarios a través del modulo pam_mysql.so con el usuario vsftpd (el que creamos en mysql) y el password vsftpdpass (el mismo de mysql) en el host localhost, en la base de datos vsftpd dentro de la tabla accounts en los parámetros username y pass con algoritmo crypt=3 en este caso MD5.

Personalmente en los logs me salia este error.

 pam_mysql - MySQL error (Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13))

Es problema del selinux que no permite el pam y el MySql comunicarse entre sockets, en mi caso simplemente en el archivo /selinux/enforce cambie el valor "1" por "0".

Perooo... lo que acabo de hacer anteriormente lo reconozco, es una practica totalmente novata e insegura y no es recomendable hacerla. Existe una manera mas segura de hacerlo sin des-habilitar el SELinux y es utilizando los siguientes comandos.


Primero con el comando 


#getsebool -a | grep ftp


Nos listara todos los servicios de SELinux relacionados con el ftp, entre ellos los que modificaremos.



ftp_home_dir --> off
ftpd_connect_db --> off


Lo que queremos es cambiar su valor de "off" a "on" y lo logramos con setsebool de la siguiente manera.


#setsebool -P ftp_home_dir 1
#setsebool -P ftpd_connect_db 1

Su sintaxis es sencilla "setsebool nombre_politica valor" pero antes del nombre de la política añadimos una -P para que estos cambios sean permanentes. Si quisiéramos devolver estos cambios a "on" solo cambiamos en el comando anterior el valor "1" por un "0" y listo. Así todo nos queda seguro y sin conflictos :)

Además de esto cabe resaltar que los logs estan en /var/log/mysqld.log, /var/log/vsftpd y /var/log/secure

Continuando con mi manual entonces les recuerdo que en el archivo de configuracion del vsftpd ingresamos un parametro llamado user_config_dir=/etc/vsftpd/vsftpd_user_conf el cual nos indica que cada usuario tendra una configuracion personalizada en dicho archivo, es decir que debemos tener un archivo alli para user1.


El archivo lo dejare basicamente con estos parametros. Pueden tenerlo como quiera, por eso es personalizable para cada uno.
 

Podemos ver que en el definimos su /home el cual sera /home/users/user1 entonces creemoslos y le damos permisos al usuario y lo agregamos al grupo vsftpd.users.


Se supone que aqui todo deberia estar funcionando perfecto entonces primero que todo crearemos un archivo de prueba llamado probando en el /home de user1.

Luego reiniciaremos el demonio del vsftpd con /etc/init.d/vsftpd restart.


Ahora probemos!


Como podemos ver inicie sesion con user1 y su password password1 y si listamos vemos el archivo probando.

Pues ya funciona pero para que nos quede mas claro creemos otro usuario.
Primero ingresamos a MySql y allí vamos a insertar el otro usuario llamado user2 con password password2 con el siguiente parámetro.

mysql> INSERT INTO vsftpd.accounts(username,pass) values('user2',password('password2'));


Además de eso le creamos un /home llamado user2 y le dimos permisos al usuario y lo agregamos al grupo vsftpd.users.

Por ultimo y como sabia que no lo iban a recordar vine a crear el archivo de configuración personalizado para cada usuario, en este caso se llama user2.


Observamos que tome como plantilla el mismo de user1 pero cambie el /home


Finalmente dentro de este /home cree el archivo probandousuario2 e intente conectarme con las credenciales de este usuario y adivinen...


Todo salio perfecto :D...

Espero que después de mucho tiempo sin publicar entradas tecnicas les haya gustado, ahi me disculpan si a ratos me desconecto mucho pero es que las obligaciones no dan para mas :S saludos y que tengan un Feliz Dia :D



Flisol Medellin 2012

FLISOL MEDELLIN 2012




Flisol es el Festival Latinoamericano de Instalación de Software Libre, es un evento gratuito y abierto, el cual cuenta como objetivo principal enseñar a todas las personas las ventajas de la utilización de software con fines no comerciales promoviendo así el uso de herramientas con sentido social y aumentando la difusión y socialización con comunidades que buscan crear en las personas una cultura de "compartir conocimiento".

Allí podrás ver conferencias, compartir tu conocimiento, asistir con tu equipo para instalar en él software libre, conocer personas vinculadas con proyectos de software libre y muchas otras actividades mas.

Para este año la realización requiere de varias personas que se quieran vincular con el proyecto, amantes de la cultura Open Source, del software libre, el desarrollo y la difusión del conocimiento, en la lista de correo http://lists.linuxpreview.org/listinfo.cgi/flisol-medellin-linuxpreview.org podrán recibir todas las noticias relacionadas con el desarrollo del evento en nuestra ciudad.


Lugar:
Bloque 25 (Facultad de Artes) Universidad Nacional De Colombia Como Llegar?

Fecha:
28 de abril de 2012

Hora:
8:00AM

Auditorio 1


Conferencias:


8:30AM - 9:00AM
Linux, Historia, Precedentes, Migración - Alejandro Calderón / Fernando Giraldo

9:15AM - 9:55AM
Cartografía en Linux - Jhonatan Cano Furagaro

10:05AM - 10:35AM
EPux (Ecological Project Linux) - Jose Luis Cortes

10:45AM - 11:30AM
Internet, Libertad y Sociedad, censura y control en la era de la información. - Elkin Botero

11:45AM - 12:15M
Engarde Linux - Juan David González Suarez

12:15M - 1:00PM
Receso - FLISOLADA

1:00PM - 1:45PM
Desarrollo de juegos en linea bajo Linux - Mauricio Loaiza

2:00PM - 2:30PM
Servicios de red IPV6 en Linux - Jorge Madrigal

2:45PM - 3:35PM
Ley 201 de 2012 (#LeyLleras2) / Licenciamiento Libre - Oscar Daniel Gómez Padilla

3:45PM - 4:15PM
Robotica y Software Libre - David Saldaña


Auditorio 2


Conferencias:


8:35AM - 9:15AM
(VideoConferencia) Como Lucrarse Utilizando Software Libre - Natalia Beltran Especialista en Seguridad de la Información (Bogotá)


Talleres:


9:25AM - 10:15AM
Como migrar a Linux y no morir en el intento. - Fernando Giraldo

10:25AM - 11:15AM
Virtualizacion en Software Libre y sistemas de alta disponibilidad. - Andrés Felipe Uran

11:25AM - 12:15M
Cartografía en Linux - Jhonatan Cano Furagaro

12:15M - 1:00PM
Receso - FLISOLADA

1:00PM - 1:45PM
Servicios de red IPV6 en Linux - Jorge Madrigal / Jhon Cardona

1:55PM - 3:00PM
Taller HackLab

Des-conferencias:


Se abrirá un espacio para des-conferencias para todas las personas que deseen participar de estas. Simplemente llevan su idea, se les hace difusión y tienen el espacio para poder aportarnos su conocimiento sobre software libre.

Stands:


Software equivalente.
Seguridad perimetral en Linux.
Pandora (Monitoreo de Redes Linux).
Vive!
G33k Choice.
Open Hardware.

Instalación:


* Puedes traer tus equipos portátiles o desktop.
* No se reciben equipos después de las 4:00PM.
* Realizar un backup de datos antes venir al evento a realizar una instalación completa. Los instaladores no se responsabilizaran por perdida de datos en particionamiento.
* Tener mínimo una partición de 5GB libres para la instalación.
* Si tienes un portátil no olvides llevar cargador.

NOTA: No instalamos servidores, no hacemos mantenimiento de hardware y tampoco arreglamos problemas de configuración de Sistemas Operativos propietarios.

Contacto:


Instalando Tarjeta PCI Paralela Manhattan DB25 (Chipset 9865) CentOs

Hola, hoy les quería enseñar como se instala la tarjeta PCI Manhatan DB25 la cual posee un chipset 9865.

Lo primero que se hizo fue descargar los archivos necesarios para la compilación de la siguiente manera.
$yum install gcc gcc-c++ automake
$yum install kernel-devel kernel-headers 

Finalizada la instalación procedimos a copiar el archivo con los drivers y módulos para Linux desde el CD al sistema operativo de la siguiente manera.

$cp MCS9865_V1.0.0.12.tar.gz /usr/src/kernels/2.X.X-X(TU KERNEL)/drivers/serial/

Luego lo descomprimimos en dicha ruta.

$tar zxvf MCS9865_V1.0.0.12.tar.gz

Luego ejecutamos el siguiente comando.

$make

Luego insertamos los módulos.
$insmod mcs9865.ko
$insmod mcs9865-isa.ko

Finalmente instalamos el driver.

$make install

Ahora procederemos a realizar un script que permitirá que los módulos se inserten solos al inicio del sistema, si no realizamos esto los módulos no podrán verse y el proceso habrá que realizarlo cada que prendamos el equipo.

Creamos el script que se llamara modulos_lp

$nano /usr/bin/modulos_lp

el script contiene las siguientes lineas

modprobe -r lp
modprobe -r parport_pc
modprobe parport_pc io=0x4008
modprobe lp
/etc/init.d/cups restart

La linea mas importante es modprobe parport_pc io=0x4008 la cual significa en que dirección de memoria esta ubicado el puerto paralelo, lo que harán ustedes sera cambiar el valor 4008 por uno que les arroja el comando lspci -v, en mi caso fue el siguiente.

$lspci -v
 0a:01.0 Parallel controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 03 [IEEE1284])
        Subsystem: Device a000:2000
        Flags: bus master, fast Back2Back, medium devsel, latency 32, IRQ 11
        I/O ports at 4008 [size=8]
        I/O ports at 4000 [size=8]
        Memory at efa01000 (32-bit, non-prefetchable) [size=4K]
        Memory at efa00000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [48] Power Management version 2

Podemos ver que dice  I/O ports at 4008 cambiaremos entonces el 4008 por la que a ustedes les aparezca.

Luego le daremos permisos al script para bin

chown bin:bin /usr/bin/modulos_lp
chmod 755 /usr/bin/modulos_lp

finalmente haremos que el script se ejecute siempre al inicio del sistema, para esto editamos el archivo /etc/rc.d/rc.local

$nano /etc/rc.d/rc.local

y agregamos al final la siguiente linea

modulos_lp

Finalmente reiniciamos el sistema y luego de esto si fuéramos a Sistema>Administración>Imprimiendo podríamos agregar una impresora en el puerto LPT.
 
Licencia Creative Commons
Este obra está bajo una licencia Creative Commons Atribución-NoComercial-SinDerivadas 2.5 Colombia.