Visualizzazione post con etichetta Tips_and_Tricks. Mostra tutti i post
Visualizzazione post con etichetta Tips_and_Tricks. Mostra tutti i post

venerdì 6 gennaio 2017

Workshoppers di nodeschool.io su Ubuntu 16.04.1 LTS

Ammettiamo di voler provare il workshopper javascripting di nodeschool.io.
Presupponendo di non aver nemmeno mai installato node e npm:

sudo apt update
sudo apt install -y nodejs
sudo apt install -y npm

Ora per installare il workshopper si può procedere come da istruzioni con npm:

sudo npm install -g javascripting

Se proviamo a far partire lo script:

$ javascripting
/usr/bin/env: "node": File o directory non esistente

Il "problema" è dato dal fatto che, per motivi che non ho ancora approfondito, l'eseguibile di Node fornito da Canonical si chiama nodejs e non node come sarebbe "canonico". La mia personale soluzione, come al solito grezza e brutale, è stata quella di creare un link simbolico in maniera che l'eseguibile potesse essere richiamato anche come node:

sudo ln -s /usr/bin/nodejs /usr/bin/node

P.S: penso le cose e mi dimentico di dirle...

giovedì 5 gennaio 2017

Forzare HTTPS per applicativi LAMP su OpenShift

Qualche tempo fa, con il compare Cranix, abbiamo deciso di provare a migrare un nostro applicativo LAMP di "produzione" da un hosting che non ci soddisfaceva troppo (di cui non è carino fare il nome) ad OpenShift. Fra i vari vantaggi che la piattaforma offre c'è la possibilità di usare, da subito e con setup di default, HTTPS come trasporto per servire le pagine; unica limitazione delle versione gratuita è l'impossibilità di usare una chiave "custom" ma le funzionalità restano complete.
Se usare connessioni criptate è da sempre una "best practice" da questo mese sembra debba, finalmente, diventare una "necessità": https://www.miamammausalinux.org/2016/12/chrome-si-muove-verso-un-web-piu-sicuro/.

Forse esistono metodi più eleganti per forzare un'applicativo LAMP qualunque ad usare la versione Sicura del protocollo, anche quando la richiesta da parte del client viene fatta su HTTP "liscio", ma nel nostro caso una funzione richiamata all'inizio dello Script Router è sembrata la soluzione ideale. Tuttavia l'implementazione che avevamo usato quando l'applicativo risiedeva sul precedente hosting causava un bel Error 310 (ERR_TOO_MANY_REDIRECTS). Gli stack LAMP non sono tutti uguali e, almeno quando ci si affida ad hosting "preconfigurati", bisogna adattare il proprio codice alla configurazione presente... con buona pace della portabilità!

/*
* Forza l'uso du HTTPS - SSL su OpenShift
*/

function requireSSL( ) {
 if( ! isset( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] !== "1" ) {
  header( "Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] );
  exit();
 }
}

Per forzare il passaggio ad HTTPS di ogni richiesta pervenuta ad una data pagina basta richiamare, prima dell'emissione di qualsiasi output verso il client [si sta usando header()], la funzione senza nessun parametro:

requireSSL();

... se avete uno Script Router quello è l'unico punto in cui intervenire...

giovedì 11 agosto 2016

rhc su Ubuntu 14.04.5

A dire il vero il processo di installazione rhc (l'interfaccia a riga di comando per OpenShift) è abbastanza ben documentata sul relativo sito: https://developers.openshift.com/getting-started/debian-ubuntu.html. Uniche due rognette trovate, che però un poco di tempo me lo hanno portato via, sono:
  • il pacchetto rubygems che non si trova, al suo posto va installato rubygems-integration
  • la versione di default per ruby installata da apt che è la 1.9 quando, per rhc, servirebbe almeno la 2.0... nei repo c'è ma, anche se la si installa, non è usata come alternativa di default.
Installazione dei pacchetti e configurazione:
Elevazione dei privilegi (... o se preferite piazzare un sudo davanti ad ogni comando...) ...
sudo -i
... installazione dei pacchetti e configurazione delle alternative (versioni) adatte...
apt install -y ruby-full rubygems-integration git-core
apt install -y ruby2.0
update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.0 10
update-alternatives --install /usr/bin/gem gem /usr/bin/gem2.0 10
... installazione dei tool...
gem install rhc
Dopo aver terminato la sessione a privilegi elevati come root ('exit' oppure ctrl+d) possiamo configurare i tool per l'uso...
rhc setup
... una volta completata la banalissima e completamente automatica configurazione guidata ci piazziamo in una directory di nostro gusto e cloniamo il repo dell'applicazione su cui volgiamo lavorare...
rhc git-clone <app-name>
... e da qui si apre tutto un mondo!

domenica 14 febbraio 2016

ExUp

Source: http://www.exup1000.co.uk/
Spiegato davvero bene e ricco di particolari per essere una pubblicazione della casa madre, soprattutto se si tiene conto che all'epoca la valvola allo scarico era una novità esclusiva di Yamaha.

Ci furono tempi in cui a dominare non erano solo brevetti e marketing, in quell'epoca si costruivano Motociclette per Motociclisti e non banali prodotti riempiti di inutile tecnologia accessoria studiati per un "target di acquirenti". Le Motociclette possono, a vario titolo, divenire Leggende e comunque vengono ricordate... i prodotti scadono e basta...

mercoledì 21 gennaio 2015

Importare contatti Nokia Suite in Kies...

... ovvero far comunicare due pessimi tool a colpi di cat...

Quest'anno i miei parenti hanno deciso di omaggiare il mio Babbo, per il suo compleanno, con un bel smartphone della Samsung... e sono tutti "paduli" miei ora... si comincia da subito: la preziosissssssima rubrica!!!!

Si apre Nokia Suite:
  • click col destro su un contatto e "seleziona tutto"
  • menù "File"->"Esporta contatti", li si mette in una directory vuota (nel mio caso "contatti_babbo")
I file VCard sarebbero anche standard e portabili... la rogna è che Nokia Suite fa un file per contatto e, ovviamente, Kies ne importa solo uno alla volta. Per fortuna i file VCard sono in definitiva di testo e si possono "mergiare" facilmente.
Molti articoli sparsi per il Web propongono l'uso di piccoli tool scaricabili gratuitamente per unire i file di contatto. Se il vostro sistema è un Win7 o Win8 (... e ormai...) avete, quasi sicuramente, installato un, semiserio, prompt dei comandi che si chiama "Windows PowerShell"; lo si apre e ci si porta, usando il caro vecchio comando "cd", nella directory (... e non cartella, che non si sta andando a scuola...) dove abbiamo esportato i contatti. Ora, con il comando "cat" e la redirezione, ci si genera un unico file .vcf che contiene tutti i contatti.
cat *.vcf > ..\nomefile.vcf
nel mio caso:
Adesso ci si ritrova, nella directory superiore a quella in cui abbiamo posto i files di contatto, il file da dare in pasto a Kies.

Si apre Kies:
  • dal menù di sinistra si sceglie "Contacts"
  • si clicca sul bottone "Open contact file" sulla barra in alto (se la rubrica è vuota dovrebbe venire riproposto anche al centro della GUI)
  • si seleziona il file appena creato ("contatti_babbo.vcf" nel mio caso)
  • si clicca sul bottone "Transfer to device" e si conferma con "OK" alla finestra di dialogo successiva
... done!
Chiedo scusa per come la mini "guida" è stata buttata giù di getto!

venerdì 9 agosto 2013

Esclusori Sonda lambda a due fili per Harley-Davidson

O2 sensor eliminators

Tutto quello che vi serve sono:
  1. Due connettori AMP SuperSeal femmina (quello senza gommino giallo) a due poli (tutte le loro 5 parti!).
  2. Due resistori da 1MΩ (io consiglio sempre da Mezzo Watt... e, se possibile, 5%).

Sto giro, oltre allo schema, ho provato anche a cimentarmi in uno schema di montaggio grafico... visti i, poco decorosi, risultati mi riprometto di non farlo più!

Questi aggeggi servono, in pratica, a far stare perennemente la moto in Open-Loop, in modo da poter estendere l'influenza dei "Fueler" (centraline aggiuntive) sull'intera la mappa.

domenica 14 ottobre 2012

Terminator

Frequentare, di nuovo, assiduamente un ambiente accademico comporta un, piacevolissimo, continuo afflusso di "nuove" conoscenze, oltre che di idee... il più delle volte si tratta "solo" di piccole informazioni, assaggi di una specifica conoscenza, generalmente, più ampia che hanno i tuoi interlocutori... tra le varie cose apprese questa settimana, oltre al fatto che il vetro si "scioglie" col tempo, c'è l'esistenza di un piccolo ma libidinoso software dal nome inquietante: Terminator.
Si tratta di un emulatore di terminale per X che, fra le altre cose, permette di separare una unica finestra in più "frame" su cui far girare altrettante shell.
Come ho potuto vivere fin'ora senza?
Ubuntu lo include nei propri Repository:
sudo apt-get update; sudo apt-get install terminator

sabato 29 settembre 2012

Arricchicosi...

Da quando ho smesso di vendere questi aggeggi vengo bombardato da richieste il cui prototipo è:
R:"Ciao, so che hai detto che non ne vendi più... però non è che me ne fai una coppia?"
M:"No, mi spiace! Se vuoi ti spiego come farteli."
R:"Si dai! Ma da chi posso fidarmi a comperarli casomai..."
M:"Guarda, son due resistenze in croce... [breve spiegazione di come è fatto l'oggetto]... io in mano ho tenuto solo quelli di XXX però so che anche quelli di YYY hanno ricevuto critiche positive... ecc,ecc,ecc...".
R:"Ma cosa hanno di diverso dai tuoi? Ma possono fare danni? Ma come si installano? Ma vanno bene con la mia configurazione che è: [una serie di nomi inglesi di accessori... come se io conoscessi ogni pezzo che esiste per le HD!]? Un mio amico li vorrebbe per la sua [una HD a caso] che monta: [altra lista di roba strana]. Possono andare bene? Ma come si regolano? Ecc, ecc, ecc..."
E via così!
Io ringrazio tutta la gente che si è rivolta a me... davvero, ne sono lusingato... tutta gente gentile e a modo... però, per quanto gentili e a modo, mi rubano molto tempo... a me non piace rispondere alla gente con un "copia-incolla"; lo trovo freddo e distaccato...
L'unica soluzione, dal mio punto di vista, è spiegare alla gente come costruirseli... o come farseli costruire da un conoscente.
In questo breve scritto, che magari col vostro aiuto potrà essere migliorato e ampliato, ho provato a descrivere, il più semplicemente e esaurientemente possibile, la teoria che sta alla base di questi dispositivi passivi cercando di toccare tutti i punti che sono emersi dalle varie discussioni sia private che non.
Questo è quello che offro, a voi cosa farne!

martedì 21 agosto 2012

Jacobi estrapolato

Implementare in una M–function il metodo di Jacobi estrapolato e applicarlo a un problema per cui si ha convergenza.
File: esercizio.m
%Esercizio 8 file "esercizi_iterativi"
%8. Implementare in una M–function il metodo di Iacobi estrapolato e applicarlo a un problema per cui si ha convergenza.
%Bonafè Antonio 058223
%Mesin Alberto 066711

clear all;
close all;
clc;
%
%definizione A, b, x0
%
s=[5 -3 -2 10 -7 -3 -2 -6 9 -1 -9 10 -1 -3 -4 7 -1 4];
i=[1 1 1 2 2 2 3 3 3 3 4 4 4 5 5 5 6 6];
j=[1 4 5 2 5 6 1 2 3 6 3 4 5 1 2 5 5 6];
A=sparse(i,j,s);

b=[1;6;2;5;3;4];

x0=zeros(6,1);
%
%ricerca di w -> minimo raggio spettrale
%
D1=inv(diag(diag(A)));
I=speye(size(A));

ws=warning('off'); %escludo visualizzazione Warning
i=1;
ro=zeros(201,2);
for wg=0:0.01:2
    Gw=(I-wg*D1*A);
    ro(i,2)=wg;
    ro(i,1)=max(abs(eigs(Gw)));
    i=i+1;
end;
warning(ws); %reimposto il precedente stato di visualizzazione Warning

ro_index=find(ro(:,1)<1); %Quando converge
%plot(ro(:,2),ro(:,1));
subplot(2,1,1); %%%%%%%%%%%%%%%%%%%%%%%%%
plot(ro(ro_index,2),ro(ro_index,1));
title('raggio spettrale in funzione di w');
xlabel('w');
ylabel('raggio spettrale');
%ro_index=find(ro(:,1)==min(ro(:,1)));

%definizione w, tol, maxit
%
%w=1.17;
w=ro((find(ro(:,1)==min(ro(:,1)))),2);
tol=1e-10;
maxit=500;
%
%Soluzione sistema con JACOBI
%
%[xk,k]=myjacobi(A,b,x0,maxit,tol);
%display('JACOBI');
%display(xk);
%display(k);
[xk,k,r]=myjacobiestrapolato(A,b,x0,1,maxit,tol);
display('JACOBI');
fprintf('\t%.4f \n',full(xk));
fprintf('Iterazioni=%g \n',k);

fprintf('\n');
%
%Soluzione sistema con JACOBI ESTRAPOLATO
%
[xke,ke,re]=myjacobiestrapolato(A,b,x0,w,maxit,tol);
fprintf('JACOBI ESTRAPOLATO (parametro=%g)\n',w);
fprintf('\t%.4f \n',full(xke));
fprintf('Iterazioni=%g \n',ke);
fprintf('\n');
fprintf('Risparmiate %g iterazioni\n',k-ke);
%
%Costruzione grafico
%
mi=10+max(max(find(r>0)),max(find(re>0)));
%x=(1:maxit);
x=(1:mi);
%figure; %nuova finestra grafica
%hold on;
subplot(2,1,2);
plot(x,r(1:mi),'r',x,re(1:mi),'g');
axis([0,mi,-0.25,max(max(r),max(re))]);
legend('Jacobi (normale)','JACOBI ESTRAPOLATO');
title('Residuo');
xlabel('iterazioni');
ylabel('||r^k||');
File: myjacobiestrapolato.m
function [x,k,g]=myjacobiestrapolato(A,b,x,w,maxit,tol);
% Metodo di JACOBI ESTRAPOLATO
% [x,k]=myjacobiestrapolato(A,b,x,w,maxit,tol)
% A -> Matrice dei coefficenti
% b -> Vettore termini noti
% x -> Prima approssimazione delle soluzioni
% w -> Parametro di rilassamento
% maxit -> Massimo numero di iterazioni
% tol -> Tolleranza
% ------------------------------------------------
% x -> Vettore approssimazione soluzioni
% k -> Numero iterazioni effettuate
% g -> Vettore per il grafico (norma del residuo)

%
%Preparazione di G(w) e c(w)
%
D=diag(diag(A));
D1=inv(D);
I=speye(size(A));

Gw=(I-w*D1*A);
cw=w*D1*b;

%
%Preparo g
%
%g=zeros(maxit,1);
g=-0.5*ones(maxit,1);

%
% Iterazioni
%
for k=1:maxit
    %calcolo iterazione successiva
    xtemp=x;
    x=Gw*xtemp+cw;
    %grafico
    g(k)=norm(b-A*x);
    %controllo sulla convergenza
    %g(k)=norm(xtemp-x,inf);
    %if g(k)<tol*norm(x,inf)
    if norm(xtemp-x,inf)<tol*norm(x,inf)
        break
    end;
end;
% controllo sul supereamento delle massime iterazioni
if k==maxit
    error('Convergenza non raggiunta')
end;

lunedì 30 aprile 2012

Ubuntu 12.04 LTS

Faccio subito una premessa: io sto parlando di un aggiornamento da 11.10 (pure abbastanza pasticciata)... non di una nuova installazione!

L'avanzamento di versione, questa volta, è andato abbastanza liscio e, tralasciando qualche warning (bisogna andare a vedere i dettagli durante l'installazione dei pacchetti, normalmente non vengono mostrati), l'unico "inconveniente" sono le troppe finestre di dialogo che possono confondere l'utente meno esperto (ormai anche con Ubuntu, come con Windows, si devono prendere in considerazione gli Utonti) risultandogli non troppo chiare... la maggior parte di queste riguarda i file di configurazione delle applicazioni (il numero e la stranezza delle finestre di dialogo dipendono da cosa avete installato nel sistema) e l'opzione di default proposta dal processo di avanzamento va, nella maggior parte dei casi, bene e produce buoni risultati.

Una volta completato l'avanzamento l'unico problema, per ora, riscontrato è il mancato funzionamento del "tool" volume di Unity; il sistema rimane muto. A dire il vero subito dopo il completamento dell'avanzamento mi si sono presentate due finestre di errore di sistema, in stile Winzozz, che riguardavano questo problema ma, pensando che si sarebbero ripresentate, non ne ho fatto degli screenshot... qui non si tratta di Windows e, una volta deciso se ignorare o inviare le informazioni sul crash allo sviluppatore (cosa, quest'ultima, da fare sempre per contribuire allo sviluppo del sistema) Ubuntu non ci abrade più lo scroto con avvisi inutili... in teoria dovremmo averne già preso coscienza, lui ci ha avvisati; Utonti si, ma non Windowsari!
Io ho fede negli aggiornamenti per la risoluzione di questo banale problema e, per ora, uso il metodo classico per regolare il volume, visto che il sistema audio funziona perfettamente; avvio alsamixer in una finestra terminale e regolo il volume Master!
Alsamixer si avvia con il comando:
:~$ alsamixer
Per muoversi tra i vari volumi si usano i tasti direzionali "freccia dx" e "freccia sx".
Per alzare e abbassare il volume selezionato si usano i direzionali "freccia su" e "freccia giù".
Per uscire si usa il tasto "esc".
Nulla di trascendentale!

La grafica, di Unity, è un poco diversa da quella della 11.10 ma non troppo... non mi addentro nemmeno nel tentare di capire se è stata migliorata o peggiorata, si tratta solo di rifiniture...
Come al solito trovo la barra dei Launcher troppo invadente se tenuta permanentemente in primo piano... io consiglio di attivare la scomparsa automatica e di ridimensionarla... più piccola fa anche meno Fisher Price!
Onestamente mi aspettavo che la nuova Unity fosse un pochetto più configurabile... qualche opzione in più c'è, ma non ci siamo ancora!

Di nettamente positivo ho notato un avvio un poco più snello e uno spegnimento decisamente scheggia!

lunedì 19 marzo 2012

Chi più spende...

I soldi spesi su un buon attrezzo non sono mai buttati via... come pure è vero che avere attrezzi validi rappresenta un buon inizio per fare un bel lavoro...
Certo che oltre 5€ per una punta da stagnatore non sono pochi... la resa è ottima, speriamo lo sia anche la durata!... almeno è corredata da esaurienti istruzioni...

sabato 18 febbraio 2012

Re-TomTom

Aperto, ripulito (...fin che non ne apri uno fatichi a immaginare cosa, e quanto, ci troverai dentro...), batteria ciclata con caricabatterie programmabile (ma la si sarebbe potuta sostituire), resettato e aggiornato.
Ecco come, con un poco di pazienza e manualità, si può recuperare un vecchio TomTom ONE (sono davvero macchine robuste) altrimenti destinato alla discarica. Quando è arrivato non agganciava nemmeno più il segnale dei satelliti, era inutilizzabile... ora prende qualcosa anche dentro casa!

venerdì 3 febbraio 2012

Arricchitori su my 2007-2009

La procedura per il cilindro anteriore, valida anche per i modelli successivi al 2009, non credo necessiti di spiegazioni:
La procedura per il cilindro posteriore abbisogna, invece, di qualche chiarimento.
(foto 1) Per lavorare più liberamente è cosa buona rimuovere dal suo gancio (bianco), e scollegare, il connettore a quattro poli immediatamente vicino a quello della sonda. Non abbiate paura di fare danni; osservate come è fatto e capirete come si disconnette, essendo stagno opporrà un poco di resistenza. Io per staccare i connettori dal loro gancio di fissaggio mi sono aiutato con un cacciavite a paletta piccolo.
(foto 2) Per prima cosa, con calma e pazienza, fate uscire il cavo dal gancetto di plastica cerchiato di rosso. Successivamente useremo questo gancio per fissare l'arricchitore, una volta connesso, con una fascetta da elettricista.
(foto 3) Ora, spingendo verso il basso, possiamo sfilare i connettori dal loro gancio sulla plastica. Potete osservare la parte femmina dell'arricchitore per capire bene come son fatti questi connettori.
(foto 4) Ora possiamo sconnettere i connettori della sonda e interporre l'arricchitore.
Da qui in poi non mi è più venuta una foto che fosse, anche solo un minimo, a fuoco! Ma il lavoro è in pratica finito.
A me  piace lasciare i cavi laschi, che abbiano gioco, quindi ho "infascettato" l'arricchitore al perno della foto 2, quello cerchiato in rosso, in maniera che i fili e i connettori fossero comodi... in pratica il maschio originale è quasi alla stessa altezza che aveva prima della modifica. NON ho agganciato la femmina dell'arricchitore al gancio sulla plastica dove prima era la femmina originale.
Altra soluzione può essere quella di fissare, sempre con fascette, l'arricchitore al connettore a 4 vie che avevamo staccato all'inizio, ovviamente dopo averlo rimesso al suo posto (cosa che va fatta in ogni caso).
Una cosa che mi preme ricordare è che il nostro motore è montato in maniera elastica e, quindi, si muove, anche un bel poco, rispetto al punto dove è fissato il dispositivo; se proprio dovete avere cavi o connettori costretti e premuti contro qualcosa fate che siano aderenti al telaio, lasciate aria lato motore.
Se vi sembra che il cavo della lambda, con le vibrazioni, possa andare ad ustionarsi contro le alette di raffreddamento potete sempre ridurne il gioco legandone una parte, con una fascetta, al cavo del connettore a 4 vie di cui sopra. Tenendo sempre bene a mente che il motore è fissato su supporti elastici e, quindi, oscilla rispetto al telaio... va quindi lasciato in poco di gioco al capo di cavo che finisce nella lambda.

Spero di essermi adeguatamente spiegato!