In alcuni casi puo' essere necessario installare una macchina virtuale per sviluppare in Android senza particolari controindicazione
Qualche problema potrebbe venire dall'utilizzo di Adb con un telefono reale a causa del livello di isolamento derivante dalla macchina virtuale
Nel caso in cui si usi Virtualbox la soluzione e' costuita da installare i driver adb nella macchina host (questo per Windows, in Linux il problema non si pone) e successivamente di aggiungere mediante l'icona con il segno + il device alla macchina virtuale (vedi immagine sottostante)
A questo punto si puo' accendere la macchina virtuale e configurare il dispositivo nella macchina guest
giovedì 7 febbraio 2013
Ping su una intera classe di indirizzi
Questo post e' un piu' un promemoria per me stesso che altro
Regolarmente (una volta all'anno) mi trovo a dover tirare fuori dal cassetto qualche apparato di rete (in particolare qualche access point..in particolare un ben preciso access point) di cui mi sono scordato l'ip e che devo riconfigurare
Per questo motivo e' necessario effettuare una scansione completa della rete alla ricerca dell'ip dell'access point...in generale la cosa e' ristretta alla classe 192.168.x.x e 10.0.x.x
Per fare cio' e' molto comodo fping (da installare con apt-get install fping) che automatizza il compito
in generale la sintassi e'
fping -g - a 10.0.2.0/24
per scansionare la classe determinata dalla netmask e visualizzare sotto gli host attivi
ovviamente tutto cio' funziona fino a quando non e' impostato il No Ping ma in generale gli apparati di rete non sono cosi' configurati
Regolarmente (una volta all'anno) mi trovo a dover tirare fuori dal cassetto qualche apparato di rete (in particolare qualche access point..in particolare un ben preciso access point) di cui mi sono scordato l'ip e che devo riconfigurare
Per questo motivo e' necessario effettuare una scansione completa della rete alla ricerca dell'ip dell'access point...in generale la cosa e' ristretta alla classe 192.168.x.x e 10.0.x.x
Per fare cio' e' molto comodo fping (da installare con apt-get install fping) che automatizza il compito
in generale la sintassi e'
fping -g - a 10.0.2.0/24
per scansionare la classe determinata dalla netmask e visualizzare sotto gli host attivi
ovviamente tutto cio' funziona fino a quando non e' impostato il No Ping ma in generale gli apparati di rete non sono cosi' configurati
martedì 5 febbraio 2013
CMake
Guardando un po' a giro mi sono reso conto di quanto sono arretrato ....ero rimasto al fatto che autotools e' una cosa figa mentre e' stata sorpassata da altri concorrenti come CMake ed ho deciso di provarlo con il programma descritto a questo post
Per provare Cmake (che non e' installato di default in Debian) si deve creare il file CMakeLists.txt dove sono contenute le informazioni di compilazione come nel Makefile come il link verso la libreria SDL
CMakeLists.txt
----------------------------------------
cmake_minimum_required(VERSION 2.8)
PROJECT(CMake_TEST)
FIND_PACKAGE(SDL REQUIRED)
ADD_DEFINITIONS(-Wall -O3)
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
ADD_EXECUTABLE(cmake_test test.cpp)
TARGET_LINK_LIBRARIES(cmake_test ${SDL_LIBRARY})
----------------------------------------
a questo punto, con il solo file sorgente e il CMakeLists.txt nella directory, si lancia
cmake . (attenzione al punto)
vengono generati automaticamente altri file e se non ci sono errori si puo' digitare
make
per compilare l'eseguibile
L'aspetto piu' interessante di CMake e' di essere indipendente dalla piattaforma e dal compilatore e puo' generare file di compilazione di Linux e Windows per i diversi compilatori supportati
Ovviamente non ha senso di usare Cmake per un caso cosi' semplice come quello utilizzato nell'esempio (e' sempre piu' veloce utilizzare la linea di comando per lanciare gcc, anche bypassando make)
Scrivere e leggere file binario in Qt
Ed adesso in confronto il metodo Qt ed il metodo standard C++ per leggere un file binario di interi
Qt
-----------------------------------------------------------
#include <QFile>
#include <QDebug>
QFile f("/home/luca/luca.dat");
f.open(QIODevice::WriteOnly | QIODevice::Append);
QDataStream out(&f);
out<<quint16(270);
f.close();
QFile g("/home/luca/luca.dat");
g.open(QIODevice::ReadOnly);
QDataStream in(&g);
qint16 letto;
in >> letto;
qDebug() << letto;
-----------------------------------------------------------
C++
-----------------------------------------------------------
#include <iostream>
#include <fstream>
using namespace std;
int main(void){
float fnum[4] = {42.22, -42.44, 1.2, 7.8};
int i;
ofstream out("numeri.dat", ios::out | ios::binary);
if(!out){
return 1;
}
out.write((char *) &fnum, sizeof(fnum));
out.close();
for (i=0; i<4; i++)
fnum[i] = 0.0;
ifstream in("numeri.dat", ios::in | ios::binary);
if(!in) {
cout << "Cannot open file.";
return 1;
;
}
in.read((char *) &fnum, sizeof(fnum));
cout << in.gcount() << " bytes read." << endl;
for (i=0; i<4; i++)
cout << fnum[i] << " ";
in.close();
cout << endl;
}
----------------------------------------------------------------
-----
Qt
-----------------------------------------------------------
#include <QFile>
#include <QDebug>
QFile f("/home/luca/luca.dat");
f.open(QIODevice::WriteOnly | QIODevice::Append);
QDataStream out(&f);
out<<quint16(270);
f.close();
QFile g("/home/luca/luca.dat");
g.open(QIODevice::ReadOnly);
QDataStream in(&g);
qint16 letto;
in >> letto;
qDebug() << letto;
-----------------------------------------------------------
C++
-----------------------------------------------------------
#include <iostream>
#include <fstream>
using namespace std;
int main(void){
float fnum[4] = {42.22, -42.44, 1.2, 7.8};
int i;
ofstream out("numeri.dat", ios::out | ios::binary);
if(!out){
return 1;
}
out.write((char *) &fnum, sizeof(fnum));
out.close();
for (i=0; i<4; i++)
fnum[i] = 0.0;
ifstream in("numeri.dat", ios::in | ios::binary);
if(!in) {
cout << "Cannot open file.";
return 1;
;
}
in.read((char *) &fnum, sizeof(fnum));
cout << in.gcount() << " bytes read." << endl;
for (i=0; i<4; i++)
cout << fnum[i] << " ";
in.close();
cout << endl;
}
----------------------------------------------------------------
-----
Debian on Android
Esempio di Linux in Android (Debian small image) su un tablet Mediacom 850i
Come si puo' vedere il sistema e' particolarmente lento ed al limite dell'usabile (sarebbe da provare anche con un puntatore ed una tastiera fisica)
Come si puo' vedere il sistema e' particolarmente lento ed al limite dell'usabile (sarebbe da provare anche con un puntatore ed una tastiera fisica)
Scrivere e leggere file testo in Qt
Un semplice esempio di come scrivere e leggere un file testo in Qt
L'esempio e' ripreso sostanzialmente dall'help in linea per cui non vengono fornite ulteriori spiegazioni
------------------------------------------------
//scrittura
QFile mfile("/home/luca/prova.txt");
if (!mfile.open(QFile::WriteOnly | QFile::Text))
{
return ;
}
QTextStream out(&mfile);
out << "La risposta e': " << 42 << "\n";
out << "Ma la domanda quale e'??";
mfile.flush();
mfile.close();
//lettura
QFile rfile("/home/luca/prova.txt");
if (!rfile.open(QFile::ReadOnly | QFile::Text))
return;
QTextStream in(&rfile);
QString t;
while (!in.atEnd()) {
QString line = in.readLine();
t = t + line + "\n";
}
ui->textEdit->setText(t);
rfile.close();
-------------------------------------------------
altrimenti in C++ classico
--------------------------------------------------
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
ofstream myfile ("prova.txt");
if (myfile.is_open()){
myfile << "This is a line.\n";
myfile.close();
}
else
cout << "Unable to open file";
ifstream myfile2 ("prova.txt");
if (myfile2.is_open())
{
while (! myfile2.eof() )
{
getline (myfile2,line);
cout << line << endl;
}
myfile2.close();
}else
cout << "Unable to open file";
}
L'esempio e' ripreso sostanzialmente dall'help in linea per cui non vengono fornite ulteriori spiegazioni
------------------------------------------------
//scrittura
QFile mfile("/home/luca/prova.txt");
if (!mfile.open(QFile::WriteOnly | QFile::Text))
{
return ;
}
QTextStream out(&mfile);
out << "La risposta e': " << 42 << "\n";
out << "Ma la domanda quale e'??";
mfile.flush();
mfile.close();
//lettura
QFile rfile("/home/luca/prova.txt");
if (!rfile.open(QFile::ReadOnly | QFile::Text))
return;
QTextStream in(&rfile);
QString t;
while (!in.atEnd()) {
QString line = in.readLine();
t = t + line + "\n";
}
ui->textEdit->setText(t);
rfile.close();
-------------------------------------------------
altrimenti in C++ classico
--------------------------------------------------
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
ofstream myfile ("prova.txt");
if (myfile.is_open()){
myfile << "This is a line.\n";
myfile.close();
}
else
cout << "Unable to open file";
ifstream myfile2 ("prova.txt");
if (myfile2.is_open())
{
while (! myfile2.eof() )
{
getline (myfile2,line);
cout << line << endl;
}
myfile2.close();
}else
cout << "Unable to open file";
}
--------------------------------------------------
lunedì 4 febbraio 2013
Modalita' scalata in VirtualBox
Una delle cose piu' fastidiose in VirtualBox e' la modalita' scalata che in pratica fa scomparire il menu' di Virtualbox dalla finestra dell'applicazione (impedendo cosi' di ripristinare la modalita' precedente via mouse)
per poter riconquistare il menu si deve premere la combinazione CTRL destro + F
![]() |
| Modalita' a finestra |
![]() |
| Modalita' Scalata |
per poter riconquistare il menu si deve premere la combinazione CTRL destro + F
Iscriviti a:
Post (Atom)
FigSpec FS-60CL
A lavoro mi hanno rifilato questo sensore iperspettrale cinese (pushbroom 400-1000 nm con larghezza di banda di 0.5 nm compatibile con DJI M...
-
Aggiornamento questo e' la risposta degli sviluppatori First of all, almost all operating systems on both mobile and laptop/desktop n...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...





