Tecnicamente's Weblog

Just another WordPress.com weblog

Archivi Categorie: Software

Ridare vita ad un Acer Aspire ONE A110B e scoprire Sakis3g

Nel post di questa sera mi pacerebbe parlare della mia esperienza di “resurrezione” fatta con un simpatico Acer Aspire ONE zg5, per capirci questo qui nella versione 110B.

La versione più sfigata che poteva esserci, non fatevi trarre in inganno dallo storage SSD, è proprio lo storage a rendere lentissimo il computer.

OK mi è stato regalato, allora quale migliore ragione per non smanettarci su? 🙂

l’OS precedente era compromesso quindi decido di installarci sopra la distribuzione che dopo Debian ha preso il mio cuore… Ubuntu, installo la 14.04 LTS.

Non vi annoio su come installarla, in giro trovate documentazioni serie e ben fatte. Vi posso dire che l’installazione è stata semplice e senza particolari problemi, tutti i device del dispositivo funzionano correttamente.

Comincio quindi ad usarlo per le solite cose, leggere un giornale, le email, guardare qualche filmato su youtube.

Il computerino lavora discretamente ma ogni volta che c’e’ una scrittura su disco SI PIANTA.

Provo ad allegerire UNITY, interfaccia che ho imparato ad apprezzare, ma scopro che non esiste piu’ la versione 2D ad effetti ridotti!!!!!

Bene, usare il netbook in queste condizioni non è possibile, occore essere radicali. Installo cosi FVWM, il window manager che usavo anni fa, ed il sistema è diventato utilizzabile. In un attimo di euforia ho provato ad avere un ambiente un pelino più desktop ed ho installato XFCE.

Il risultato è che con FVWM il sistema è molto reattivo e pulito, a me piace e credo che manterrò tale configurazione, anzi sto pensando a questo punto di passare a Debian per poter alleggerire al massimo :).

XFCE installato con un bel “sudo apt-get install xubuntu-desktop” è ancora molto usabile e devo dire che come ambiente desktop ha tutto quello che serve.

Ad un certo punto ho dovuto però fare i conti con il mio essere “borghese“, da tempo ho smesso di configurare il sistema usando i file in /etc e di ricompilare il kernel per ottimizzare al massimo, da anni installo Ubuntu “così come è”, “visto e piaciuto”, e via.

Tutto ad un tratto mi sono accorto che non riuscivo ad usare ma mia chiavetta 3G per collegarmi ad internet!!! Il motivo? semplice l’applicativo per il collegamento è integrato in Unity e non disponibile per gli altri ambienti.

Provo ad usare il caro vecchio wvdial che usavo ai tempi di Debian con il modem a 33.6K, ma nulla da fare.

Cerco in rete e finalmente trovo Sakis3g. L’installazione è semplice:

  1. scaricate il file da http://www.sakis3g.com/#download
  2. scompattate il file con un bel: tar -xzvf sakis3g.tar.gz
  3. cambiate gli attibuti per rendere eseguibile: chmod +x sakis3g
  4. lanciate: ./sakis3g --interactive

Vi appariranno delle schermate per la configurazione, tenete a portata di mano l’APN del vostro gestore, nel mio caso mi indicava già tutto, ma non è detto che vada sempre bene.

Lanciato l’applicativo in pochi secondi sono stato in rete con il caro FVWM 🙂

fvwm_acerone

Annunci

La dura vita di un informatico per hobby ai tempi di Android

Da anni uso sistemi Open Source, nella fattispecie Linux Ubuntu, non perchè io sia un programmatore professionista o un talebano che insegue la sua guerra contro MS Windows, nulla di tutto ciò.

Ho cominciato ad usare Debian GNU Linux e FreeBSD per alcune semplici ragioni che elenco.

1. Sono contro la pirateria informatica

Trovo veramente scorretto ed ingiusto usare software commerciali per fini di lucro senza aver corrisposto i giusti diritti ai realizzatori del software.

Trovo anche sbagliato che molte software house facciano pagare una licenza anche per l’uso a fini di studio di tali SW o per fini diversi dal lucro.

Quindi durante i miei anni universitari decisi di non installare software “craccati” sul mio PC ma di passare direttamente a quello che la comunità Open Source riusciva ad offrire. Parlo degli anni ’90 ed allora l’offerta non era paragonabile ad oggi ma una cosa mi ha colpito, la totale padronanza che mi era permessa nell’usare le risorse hardware del mio PC.

2. Non ho mai posseduto computer potentissimi

Tutti i computer che ho posseduto erano già obsoleti al momento dell’acquisto e grazie all’uso di sistemi e software Open Source li ho usati per svariati anni, un esempio è il PC da cui vi scrivo comprato nel 2009 che ancora oggi uso senza sentire nessuna necessita di cambialo con una macchina più potente.

3. Disponibilità di software per coprire tutte le attività hobbystiche e lavorative

Negli anni la base software disponile è cresciuta in modo pauroso, oggi è davvero completa. Ad esempio c’è sempre stata una carenza di software CAD, oggi non è più vero e esistono soluzioni commerciali liberamente usabili per scopi didattici.

Quindi oggi abbiamo la possibilità di scegliere tra software Open Source e software commerciale e questo credo sia la dimostrazione che Linux è diventato finalmente un ambiente anche desktop e professionale in senso lato come Windows.

4. Voglia di smanettare ed imparare

Avere a disposizione un computer con praticamente tutti i linguaggi di programmazione disponibili è un terribile incentivo, almeno per me, a trovare il modo di risolvere problemi, testare idee, studiare fenomeni o semplicemente provare a fare quello che altri hanno già fatto.

 4. Oggi

Per molti anni per me è stato come vi ho descritto sopra.

Da qualche tempo ho comprato un cellulare android.

Dopo qualche settimana di utilizzo sono rimasto entusiasmato, una potenza di calcolo notevole, trasportabile e collegabile con tutto.

La tentazione è troppo forte, il dispositivo è un computer e quindi perchè non usarlo come tale? Perchè non scrivere delle App?

Detto fatto mi armo di buona volontà, cerco in rete informazioni, scarico Eclipse e l’SDK Android e cominco a smanettare.

Alla fine è più la fatica che il divertimento, il sistema di sviluppo è ben fatto ma la complessità da gestire è TERRIBILE.

Occorre avere una conoscenza multi-linguaggio:

  1. Bisogna saper programmare in JAVA (ok lo avevo messo in conto anche se non mi è mai piaciuto);
  2. Bisogna conoscere le API Android (sono tante, veramente tante anche per un “Ciao mondo”);
  3. Bisogna conoscere XML (l’ambiente di sviluppo agevola con tool grafici, ma la conoscenza è necessaria);
  4. La struttura ad OGGETTI rende l’attività di sviluppo pesante, almeno per chi non è un professionista del settore

Ho trovato una bella guida qui, guida che ho seguito fino a creare la prima interfaccia per l’inserimento dati.

Da questo punto in poi potrei cominciare a realizzare la parte CORE della App, la parte di calcolo, ma la struttura del sistema, il JAVA, la OOP mi stanno veramente rendendo pesante l’attività a tal punto che mi chiedo che forse il tempo in cui bastavano poche istruzioni e librerie da conoscere è passato.

Ormai siamo molto, forse troppo abituati a interfacce avanzatissime, interfacce che rendono l’esperienza utente fantastica, interfacce che spesso sono la ragione per cui un utente acquista un Mac al posto di un PC.

I computer, i cellulari ed il software sono diventati prodotti soggetti ad una moda, e in un certo senso i vari Software Development Kit cercano di assecondare la moda.

Il risultato che oggi abbiamo ambienti di sviluppo sempre più complessi e sempre meno orientati all’utente, ma dedicati a professionisti della programmazione. L’aspetto dell’applicazione, la sua interfaccia, gioca un ruolo fondamentale nel successo di un prodotto. Il contenuto, gli algoritmi implementati, contano molto meno. L’utente è attratto dalla user interface.

Sono sicuro che se oggi all’utente medio vengono fornite due applicazioni per la soluzione di un problema. La prima a riga di comando, completa, funzionale e ben documentata. La seconda con interfaccia grafica attraente, non complea e scarsamente documentata, bene non ho dubbio che commercialmente avrebbe successo la seconda. Il computer è diventato un oggetto  di consumo e con esso l’informatica ed i programmi, questo ha trascinato anche i linguaggi di programmazione in una gara alla complessità che di fatto sta portando la programmazione lontano dagli utenti.

Programmare oggi è molto più complicato rispetto a 10 anni fa, per chi come me non lo fa di professione.

 

 

 

Grafici in tempo reale con Arduino o altro dispositivo su porta seriale

Un secondo pezzo utile per il progetto a cui sto lavorando da qualche giorno è la rappresentazione grafica dei dati campionati con Arduino.

Tale attività è facilmente realizzabile sia su Windows che su Linux o OSX, vediamo cosa ci occorre.

Procuratevi il software KST, e scaricate la versione adeguata al mostro sistema operativo da qui.

Per poter usare KST è necessario che i dati provenienti dalla comunicazione seriale siano salvati su un file, per fare ciò uso i seguenti software:

Entrambi i software permettono di stabilire una comunicazione su porta seriale e di salvare tutti i contenuti su un file.

Tralascio come fare in quanto i due software sono molto intuitivi e passo direttamente a KST.

Quindi dopo aver lanciato Realterm/GTKterm o altro programma che salva la comunicazione su un file testo avviate KST.

Cliccate sulla bacchetta magica:

Immagine1

Nella finestra “Data Wizard” indicate il nome del file e la voce “Time Interval“:

Immagine2

Selezionate i dati che volete riportare sul grafico, nel mio caso sto usando un formato dovhe ho un “INDEX” automatico e sulla stessa riga il campionamento di due segnali, quindi ho un file testo con due colonne di numeri campionati.

Immagine3Cliccate Next e nella schemata successiva mettete le seguenti impostazioni:

Immagine4

Ed ecco il risultato, un bel grafico che si aggiorna in tempo reale:

Immagine5

Buon lavoro 😉

 

Tutorial interessanti, Netgen e Calculix

Netgen e Calculix sono due software meravigliosi e molto utili, ma un tantino ostici da usare.

Ho trovato un sito con due ottimi tutorial, buona lettura.

http://www.libremechanics.com

Importare File Dati in Excel (upgrade)

In un post precedente ho già mostrato la soluzione usata in passato per risolvere il fastidioso problema del formato decimale usato per salvare i dati acquisiti da parte di un DAQ.

La soluzione proposta era un breve listato in C da compilare, in questi giorni mi sto appassionando al C++ e nella speranza di non lasciare perdere lo studio causa cronica mancanza di tempo e/o concentrazione ho voluto rielaborare il codice C in C++ usando per quanto mi è possibile una programmazione ad oggetti, che trovo veramente affascinante.

Ecco il codice:

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[]){
        ifstream in(argv[1]);
        ofstream out(argv[2]);

        char carattere;

        int dot_count = 0;

        if (argc != 3){
                cout << "Uso: " << argv[0] << " <file_in> <file_out>" << endl;
                exit(0);
        }

        while(!in.eof()){
                in.get(carattere);
                if (carattere == EOF) break;
                if (carattere == '.'){
                        dot_count++;
                        if ( dot_count > DOT_LOW_LIMIT){
                                out <<  ',';
                                cout << ',';
                        }
                        else{
                                out  << carattere;
                                cout << carattere;
                        }
                        if (dot_count == DOT_UP_LIMIT) dot_count = 0;
                }
                else{
                        out  << carattere;
                        cout << carattere;
                }
        }

        in.close();
        out.close();

        return 0;
}

Misto fritto di Link FBUS, Nokia 3310 e Arduino

Causa prematura morte del Siemes M35i su cui stavo basando tutto il mio progetto del sistema di avvisi tramite SMS mi trovo costretto a ravanare in vecchi cassetti per un nuovo cellulare.

La notizia buona è che ho trovato un fiammante Nokia 3310, la cattiva e’ che non posso usare la comunicazione su porta seriale tramite comandi AT ma mi mi devo affidare al sistema FBUS di Nokia.

Per ora mi limito a inserire una lista di link per dipanare l’argomento, spero più avanti di riuscire a produrre qualcosa.

Buona lettura.

PIN OUT Nokia 3310: http://pinouts.ru/CellularPhones-Nokia/nokia_3310_pinout.shtml

Protocollo F-BUS: http://www.embedtronics.com/nokia/fbus.html

Schema cavo collegamento a FBUS: http://www.nokia-tuning.net/index.php?s=cablefbus

Progetti vari:

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59687

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=59687&start=20

http://www.ucdevelopers.page.tl/Tutorial-Nokia-3310-with-AT89S52.htm

http://pastebin.com/a52XLuhD

Alcuni schemi ed indicazioni utili per nokia 3310 ed il mio caro siemens M35 (proverò il circuito che emula la batteria 🙂 )

http://www.saunalahti.fi/~tovaska/gsm/index.html

Come installare Intel(R) Fortran Compiler XE 12.1 su Ubuntu 12.04 LTS

Intel offre da anni una versione gratis del suo compilatore fortran per scopi non commerciali e non c’è dubbio che tale compilatore sia tra i migliori se non il migliore attualmente disponibile.

Quindi se state realizzando un software non commerciale, una bella compilazione con il compilatore Intel e le sue ottimizzazioni per i processori Intel potrebbe darvi grandi soddisfazioni.

Bene cominciamo, per prima cosa occorre il compilatore, lo trovate qui: http://software.intel.com/en-us/articles/non-commercial-software-download/

Scaticate e scompattate il file e lanciate come root il file “install.sh”, vi apparirà il seguente menù:

date invio e andate avanti.

Ovviamente questo tutorial non avrebbe senso se l’installazione fosse stata semplice :), infatti vi trovere subito dei problemi:

Selezionate 2 per analizzare i dettagli.

Ed ecco l’origine dei nostri mali:

Provate a forzare l’installazione selezionando 1.

Legge la licenza ed alla fine digitate “accept”.

Alla schermata per l’attivazione scegliete il menù 1:

A questo punto occore inserire il codice seriale che vi è stato spedito via email durante la registrazione per il download del compilatore.

Alla seguente schermata indicate dove installare i files, /opt va benissino:

Bene siamo quasi alla fine seguite le indicazione dell’ultima schermata:

date quindi un bel “$ sudo /opt/intel/bin/compilervars.sh ia32”

Nel mio caso tale comando non ha dato esito, ho quindi provveduto per via manuale alla modifica della variabile $PATH aggiungendo il percorso dei file binari del compilatore.

date i seguenti comandi:

$ cd
$ gedit .profile

e modificate il file come segue:

tutto fatto 🙂

Buon lavoro

Importare file dati in Excel

E’ indubbio che Excel come tutti i fogli di calcolo sia ormai uno strumento indispensabile nell’analisi dei dati, e sicuramente tutti vi siete trovati ad affrontare il triste problema della “virgola”.

Infatti nelle impostazioni Italiane (ma forse anche straniere), i formati decimali sono separati da “,” e non da “.” .

Questo può creare dei problemi quando si devono importare file numerici realizzati da altri software o scaricati da data-logger, proprio come era successo a me anni fa.

Il problema di per se è facilmente risolvibile quando il file da importare contiene solo numeri decimali con separazione basata su “.”, in questi casi si apre il file con un qualsiasi editor e si esegue la sostituzione automatica di “.” con “,” in tal modo il gioco è fatto e si importa direttamente in Excel un file leggibile secondo il formato che esso si attende.

Tuttavia esistono casi in cui l’operazione precedente non è possibile, in particolare quando il file da importare è mostruosamente grande, ed in tal caso occore un editor di testi serio, o quando il file contiene dati promiscui, come ad esempio il file che dovevo importare io:

000000    25/10/2004    17.07.35    21.487    1.612    26.90    27.17
000001    25/10/2004    17.17.38    21.223    1.596    26.05    27.04
000002    25/10/2004    17.27.35    20.820    1.574    25.08    25.89
000003    25/10/2004    17.37.35    19.464    1.515    23.74    24.90
000004    25/10/2004    17.47.35    16.722    1.426    22.43    23.74
000005    25/10/2004    17.57.35    11.868    1.233    21.33    22.81
000006    25/10/2004    18.07.35    6.576    0.809    20.38    21.99
000007    25/10/2004    18.17.35    2.836    0.382    19.77    21.67
000008    25/10/2004    18.27.35    0.746    0.110    19.30    21.56
000009    25/10/2004    18.37.36    0.090    0.013    19.26    21.62
000010    25/10/2004    18.47.36    0.010    0.001    18.95    21.56
000011    25/10/2004    18.57.36    0.003    0.001    18.92    21.63
000012    25/10/2004    19.07.36    0.003    0.001    19.25    21.62
000013    25/10/2004    19.17.36    0.002    0.001    19.11    21.45

Nel mio caso oltre ad essere un file piuttosto grosso,  (mesi di acquisizione dati), mi serviva modificare i separatori decimali solo dalla quarta colonna in poi, per cui il metodo pocanzi menzionato non era applicabile.

Per risolvere il problema sono bastate poche righe di codice C, dove imponevo di mutare i “.” in “,” dal secondo punto letto in poi per ogni riga.

Quindi ho prodotto il seguente codice, dove con DOT_LIMIT pari a 2 richiedo la modifica a partire dal terzo “.” letto, e DOT_UP_LIMIT pari a 6 per azzerare il contatore a fine linea.

Riposto il codice, per quanto banale  spero possa essere utile a qualcuno.

#define DOT_LOW_LIMIT 2
#define DOT_UP_LIMIT 6
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  FILE *fpin;
  FILE *fpout;

  int dot_count;
  char carattere;

  if (argc !=3 )
  {
           fprintf(stderr,"Uso: %s <file_in> <file_out>\n",argv[0]);
           exit(0);
  }

  fpin = fopen(argv[1],"r");
  fpout = fopen(argv[2],"w");

  dot_count = 0;

  while(fscanf(fpin,"%c",&carattere) != EOF ){
           if (carattere == EOF) break;
           if (carattere == '.'){
                         dot_count++;
                         if(dot_count > DOT_LOW_LIMIT){
                                     fprintf(fpout,"%c",',');
                                     fprintf(stdout,"%c",',');
                         }
                         else{
                              fprintf(fpout,"%c",carattere);
                              fprintf(stdout,"%c",carattere);
                         }
                         if(dot_count == DOT_UP_LIMIT) dot_count = 0;
           }
           else{
                fprintf(fpout,"%c",carattere);
                fprintf(stdout,"%c",carattere);
           }
  }

  fclose(fpin);
  fclose(fpout);

  return 0;
}

Ottenendo questo risultato:

 

000000    25/10/2004    17.07.35    21,487    1,612    26,90    27,17
000001    25/10/2004    17.17.38    21,223    1,596    26,05    27,04
000002    25/10/2004    17.27.35    20,820    1,574    25,08    25,89
000003    25/10/2004    17.37.35    19,464    1,515    23,74    24,90
000004    25/10/2004    17.47.35    16,722    1,426    22,43    23,74
000005    25/10/2004    17.57.35    11,868    1,233    21,33    22,81
000006    25/10/2004    18.07.35    6,576    0,809    20,38    21,99
000007    25/10/2004    18.17.35    2,836    0,382    19,77    21,67
000008    25/10/2004    18.27.35    0,746    0,110    19,30    21,56
000009    25/10/2004    18.37.36    0,090    0,013    19,26    21,62
000010    25/10/2004    18.47.36    0,010    0,001    18,95    21,56
000011    25/10/2004    18.57.36    0,003    0,001    18,92    21,63
000012    25/10/2004    19.07.36    0,003    0,001    19,25    21,62
000013    25/10/2004    19.17.36    0,002    0,001    19,11    21,45

HST parte 1: Verifica di un colletore in pressione

Spesso nell’impiantistica oleodinamica si utilizzano dei collettori con lo scopo di raccogliere o smistare delle portate di fluido da una linea ad altre o nel caso della raccolta di convogliare più linee sulla linea di ritorno.

Spesso tali linee sono linee in pressione per cui il colletore diventa un elemento le cui parti devo essere calcolate per garantire la corretta tenuta strutturale oltre che le basse perdite di carico e l’economicità del sistema.

Bene, a questo punto ciò che ci occorre per iniziare la nostra attività progettuale è un foglio di carta, una matita ed una calcolatrice per realizzare il primo schizzo.

Fatto lo schizzo occore creare un modello 3D, o con un qualsiasi software commerciarciale oppure con Salome

Realizzato il modello occorre esportare il tutto in formato step (.stp).

A seguire le immagini del modello creato con SALOME:

Modello del collettore

Una visualizzazione più chiara può essere la seguente:

modello 3D realizzato con SALOME

Bene, a questo punto occorre esportare il modello in formato .stp, ciò si rende necessario perchè volendo fare una analisi agli elementi finiti ci occore un formato di scambio tra il modellatore ed il “meshatore”, cioè il software che renderà discreto il modello continuo del solido.

Come meshatore mi trovo benissimo con netgen e quello che segue è il risultato del lavoro di mesh:

Mesh del modello 3D realizzata con NetGen

qui un dettaglio:

Dettaglio della mesh realizzata con NetGen

Adesso la mesh va esportata nel formato abaqus, e quindi possiamo passare ad usare i tool di pre-processing, processing e post-processing di Calculux, ciò del software per anlisi agli elementi finiti.

Usando il pre-processing di CalculiX (cgx) possiamo selezionare le superfici che saranno interessate ad una pressione di 400 bar:

Selezione superfici mesh su cui applicare 400 bar

Questo il file di input usato per calculix:

File input per CalculiX

Bene a questo punto basterà usare il modulo di post-processing di CalculiX per vedere nell’ordine le tensioni di Von Mises su tutto il modello e su una sezione in particolare:

Tensioni di Von Mises

Tensioni di Von Mises su una sezione particolare

bene per oggi è tutto.

Spero sia utile e stimolante per le vostre attività.

Comodo “repository” per software tecnico su UBUNTU

Nel passaggio da Ubuntu 9.10 alla 10.04 ho scoperto, con amarezza :), la mancanza di netgen tra i pacchetti disponibili.

Il software è molto comodo e potente e serve per generare mesh da esportare in svariati formati.

Non essendo piu’ un giovanotto ed essendomi abiutuato alla comodità dei pacchetti .deb ho cercato in rete qualcuno che avesse già confezionato il tutto, ed ho trovato: https://launchpad.net/~cae-team/+archive/ppa

dove potete trovare tutto il necessario per:

Analisi FEM -> Calculix (ccx e cgx)

Mesh -> netgen

Analisi CFD -> OpenFoam

Progetto palettature -> bladedesigner e Mittel

Che dire, scaricate e provate