Posted by & filed under escolaarrels.com.

Enguany hem muntat a l’Escola un computador paral·lel a partir d’ordinadors vells i antiquats.

Aquests són els passos que hem fet:

  • Instal·lació de la distribució Linux Debian en cadascun d’ells.
  • Clavar una ip estàtica en cadascuna de les màquines i assignar-els-hi un nom en cadascuna (en el nostre cas, el vàrem batejar com a “supercomputador Hulk” – hulk1, hulk2, hulk3, and so on.
  • Instal·lació del servei de SSH i configurar-los tots per tal que es pugui accedir a un compte “sense contrasenyes” sempre utilitzant el mateix usuari.
    • Assegurar-se que, des d’un ordinador, es pot executar quelcom similar: ssh 192.168.55.20 hostname
  • Instal·lació de MPich en totes les màquines.
  • Configuració de tots els noms i totes les ip’s en el fitxer de /etc/hosts.
  • Escriure a la mateixa HOME un fitxer machinefile amb la ip de totes les màquines que executaran programari.
  • Executar en el supercomputador la comanda mpiexec -l machinefile -n 5 nomprograma.

Fet !

Provem ara un exemple concret:

  • Descarreguem un programa preparat per MPI que calcula el total de nombres primers fins a un número determinat.
  • El compilem en cadascuna de les màquines: g++ prime_mpi.cpp -lmpi -o prime_mpi
  • Observem que, si executa el programa prime_mpi en una màquina local, triga 31.31s per arribar al número 131072.
  • Fent el mateix però emprant cinc màquines treballant en paral·lel fent servir el supercomputador (mpiexec -f machinefile -n 5 ./prime_mpi), triga: 3.97s. Gairebé 10 vegades menys!

Posted by & filed under Cisco.

Expliquem, en aquest apunt, la configuració de snooping en un switch Cisco. Aquesta tècnica permet configurar els ports als quals s’hi permetrà la connexió de servidors de DHCP (fet que soluciona l’atac via Rogue DHCP Servers).

Comandes per a configurar DHCP Snooping en el switch:

ip dhcp snooping
interface fastEthernet 0/1
ip dhcp snooping trust
exit
ip dhcp snooping vlan 1
do show ip dhcp snooping

Resultat de la comanda:

 

 

 

 

 

 

Podem configurar també límits de peticions de DHCP (per evitar atacs de DHCP Starvation)

interface fastEthernet 0/2
ip dhcp snooping limit rate 30

 

Posted by & filed under escolaarrels.com.

Explico en aquest post com accedir a una Raspberry3 via cable sèrie.

Necessitem, evidentment, una placa Raspberry 3, un adaptador sèrie, cables de connexió i un PC amb GNU/Linux.

Primer, cal assegurar-se que la Raspberry permetrà connexions sèrie. Hem de tenir l’opció següent en el fitxer /boot/config.txt:

enable_uart = 1

Ara, cal connectar els ports de la Raspberry a la placa amb tres cables. Concretament:

GND amb GND
RX amb TX
TX amb RX

 

 

 

 

 

 

 

 

Ara, alimentar la Raspberry, i executar la comanda següent en el GNU/Linux:

picocom –baud 115200 /dev/ttyUSB0

Fet:

 

Posted by & filed under development, education, Humanitats, thoughts.

El passat dijous, l’alumnat dels cicles formatius d’Activitats Comercials, Manteniment electromecànic i Sistemes microinformàtics, conjuntament amb alguns professors, vàrem estar a Barcelona visitant el congrés de l’Internet of Things (IoT). Fou, segons la meva opinió, una “visita al futur” i ha estat una excusa per a la reflexió plasmada en aquest article.

Hi ha qui diu que no estem en una època de canvis, sinó que vivim un canvi d’època. Un dels agents més importants que modificaran la manera com viu, treballa i es relaciona la humanitat del segle XXI és, sens dubte, una revolució tecnològica sense precedents que modificarà la manera com vivim.

La primera Revolució industrial utilitzà aigua i vapor per a la mecanització de la producció. La Segona Revolució va fer servir l’electricitat per a intensificar-la. La Tercera va utilitzar l’electrònica i les tecnologies de la informació per la seva automatització. Ara, però, s’augura una Quarta revolució industrial, basada en la Tercera, que es caracteritza per una fusió de tecnologies físiques, digitals i també biològiques. Es tracta de la integració definitiva de les tecnologies precedents.

L’emergència de noves tecnologies com són el fet que milions de persones estiguem connectades en tot moment per dispositius mòbils amb una alta capacitat de computació, capacitat d’emmagatzematge i accés al coneixement, multiplicat per l’arribada de la intel·ligència artificial, la robòtica, l’Internet de les coses (IoT), els vehicles autònoms, la impressió 3D, la nanotecnologia, la biotecnologia, nous materials, la computació quàntica, la tecnologia “blockchain”, els sistemes ciberfísics, entre d’altres, ens atorgaran un poder desconegut.

Sento, com a docent, que l’Escola té una alta responsabilitat en la preparació dels nostres estudiants i futurs ciutadans. Tenim l’obligació de preparar-los per a un futur incert i no per al passat que nosaltres vàrem viure i això, segons el meu punt de vista, cal tractar-ho des de dos aspectes: modificar el què (els continguts) i el com (els mètodes).

Respecte als continguts penso que cal aprofundir en l’aprenentatge de les matèries STEM (Science, Technology, Engineering and Maths), que són el substrat del món en el qual vivim i el que arriba. Els estudiants que no comprenguin adequadament els fonaments de la revolució que s’aproxima no solament tenen el risc de quedar fora de la possibilitat de liderar-lo, sinó que poden viure en un món que, per ells, serà inexplicable.

Respecte al com, la majoria de docents veiem bé aplicar canvis d’innovació educativa (que tots coneixem sota el paraigües d’aquesta Escola Nova XXI) i és que cada vegada som menys els que creiem que la memorització de continguts és un mètode d’aprenentatge adequat quan tens una biblioteca i una calculadora a la butxaca. Cal individualitzar la tasca educativa. Cal també orientar l’alumnat a l’acció, a la creació de xarxes d’interessos comuns, a saber treballar en equips d’alt rendiment per a la consecució d’objectius complexos.

Personalment penso que aquest és el camí que cal que prenguin les escoles del Segle XXI: canvis en els continguts i canvis en les metodologies, que “empoderin” la futura ciutadania, sempre, això sí, amb un valors fixos grabats com a fons de l’escenari, com estels en el firmament.

Posted by & filed under maths.

Indico, en aquest apunt, com dibuixar el fractal de Mandelbrot emprant programari lliure (concretament, Octave per a l’elaboració dels càlculs i GNUPlot per a dibuixar gràfiques).

Aquest conjunt consisteix simplement en examinar, punt per punt en un pla complex, si la iteració de la funció z^2 + C (on C és el punt del pla complex sota anàlisi) “s’escapa” ( tendeix a infinit ) o no ( en aquest cas, mirem si el valor queda per sota 10). Iterar significa, simplement, aplicar la mateixa funció a cada resultat obtingut (la base del sistemes dinàmics).

Aquest és el codi amb Octave:

function y=f(z, real,img)
 y=(z^2) + real + img*i ;
 endfunction

M=100;

%Iterations
 for l=-2:0.01:2
 for m=-2:0.01:2
 c=1;
 x = 0;
 while ((c<M) && ( abs(x) < 10 ))
 x = f(x, l , m);
 c=c+1;
 endwhile
 if (( abs(x) <= 10) && (c==M))
 printf("%f %f\n", l, m);
 endif

endfor
 endfor

L’execució d’aquest programa mostrarà per pantalla els punts que no s’escapen cap a infinit. Podem redirigir la seva execució cap a un fitxer octave ex2.m > mandelbrot.dat i pintar-los amb gnuplot:

plot 'mandelbrot.dat'

 

mandelbrot

Posted by & filed under GNU/Linux.

És possible calcular la mitjana dels valors ubicats en un fitxer directament des del Terminal emprant la comanda següent:

cat fitxer.txt | awk 'BEGIN { t=0; count=0; } { t+=$1; count++ } END { print t/count}'

Exemple:

screenshoot1

Posted by & filed under maths.

Una imatge no és solament més que una matriu de N (píxels d’amplada ) x N (píxels d’alçada) x 3 (canals de colors). Per tant, moltes de les operacions que es realitzen sobre imatges són, en realitat, sobre matrius.

Imaginem disposem de la imatge següent:

 

steampunk

 

la podem girar efectuant la transposada de la matriu de cada color.

Codi amb Octave:

I=imread("steampunk.jpg");
/* Transposem la matriu color vermell */
J(:,:,1)=transpose(I(:,:,1));
/* Transposem la matriu color verd */
J(:,:,2)=transpose(I(:,:,2));
/* Transposem la matriu color blau */
J(:,:,3)=transpose(I(:,:,3));
imshow(J) imwrite(J,"t.jpg",jpg)

 

t

Posted by & filed under Globalització, Humanitats, llibres.

Aquests dies de Nadal he estat llegint el llibre “Las cinco mentes del futuro“, del psicòleg nord-americà Howard Gardner, on exposa, amb una lectura amena i plena d’exemples les diferents ments que ell considera essencials i que creu cal educar i desenvolupar en el món global en el qual vivim.

En Gardner és en realitat molt més conegut per la seva teoria de les intel·ligències múltiples, on trencà en certa manera la visió tradicional sobre el concepte d’intel·ligència (basada en una competència lògica-matemàtica i deixant de banda, en canvi, altres “intel·ligències” com la musical, la naturalista,la interpersonal, etc…).

Aquesta teoria es referia però a capacitats computacionals en assumptes concrets. En aquest altre llibre ofereix la visió i la descripció de les ments, en un sentit més abstracte a l’anterior. Crec que, quan les anomeni, es comprendrà millor. Gardner proposa cultivar les cinc següents:

Una ment disciplinada: la que és capaç de treballar en una professió concreta. De saber resoldre problemes concrets d’un àmbit. L’enginyer no solament n’ha de saber d’enginyeria, sinó que ha de pensar com a tal. Ídem per als metges, mecànics i advocats. Cal treballar dia a dia per a ser professionals capaços, eficaços, actualitzats de les novetats, sigui el sector que sigui. L’individu que no domini almenys una disciplina no resistirà en un lloc de treball exigent i se’l destinarà a tasques menors.

Una ment sintètica: la que és capaç d’analitzar ingents quantitats d’informació (propi de la societat de la informació actual), provinents de diferents orígens i generar-ne una síntesis: un resum, un audiovisual, una classificació, etc… El que estic fent en aquest apunt. Qui no sigui capaç d’elaborar síntesis s’infoxicarà.

Una ment creativa: la que és capaç de crear, en el sentit més ampli possible. No hem de reduir-ho a creacions artístiques. La ment que idea nous programes d’ordinador, noves màquines, noves tècniques, noves maneres de fer, que optimitza, que pensa en nous projectes, en nous negocis, que articula noves idees i nous discursos. Qui no és capaç de crear res podrà ser substituït per una nova màquina.

Una ment respectuosa: que sigui capaç de tolerar i respectar la diferència. Capaç de treballar amb persones amb diferents punts de vista, opinions, professions i nacionalitats diferents (llegir apunt sobre la individualització del caràcter en el món globalitzat ). Les persones que no mostrin respecte a la resta no es guanyaran el respecte dels altres i acabaran per contaminar el seu entorn.

Una ment ètica: que sigui capaç de treballar per a uns valors en els quals creu i per a modelar un nou món més agradable per ell i els seus descendents. Una ment que comprengui que el nostre treball transcendirà la nostra existència.

Posted by & filed under Arduino, escolaarrels.com, innovation.

Trameto en aquest apunt informació sobre el treball de recerca d’en Marcel Jané, alumne de 2n de Batxillerat de l’Escola Arrels de Solsona i que fou tutoritzat per mi mateix.

L’objectiu del projecte consistia en implementar un artefacte que mostrés un “display” amb persistència de la visió fent servir leds senzills i una placa Arduino. El suport que aguanta la placa fou construït per ell mateix emprant una impressora 3D:

tdrMarcel1 tdrMarcel2

Aquí una demostració del seu funcionament:


Codi del programa per Arduino.

Enllaç al treball complet.

 

 

 

Posted by & filed under maths.

Tenim els punts següents: f(-1)=2, f(0)=0, f(3)=4, f(7)=7. Volem estimar el valor de f(4) fent servir la interpolació de Lagrange.

Utilitzem aquesta funció d’Octave (extreta del llibre “Applied numerial methods using Matlab”).

gerard@Zeus:~> more lagranp.m
function [l,L] = lagranp(x,y)
%Input : x = [x0 x1 .... xN], y = [y0 y1 ... yN]
%Output : l = Lagrange polynomial coefficients of degree N
%       L = Lagrange coefficient polynomial
N = length(x)-1;
l = 0;
for m = 1:N + 1
        P = 1;
        for k = 1:N + 1
                if k ~= m, P = conv(P,[1 -x(k)])/(x(m)-x(k)); end
        end
        L(m,:) = P;
        l = l + y(m)*P;
end

Ara, executem Octave:

octave:1> x = [ -1 0 3 7];
octave:2> y = [ 2 0 4 7 ];
octave:3> lagranp(x,y)
ans =

  -0.11458   1.06250  -0.82292   0.00000

Per tant, f(4)=-0.11458*4^3 +  1.06250*4^2  -0.82292* 4 +  0.00000 = 6.3752