lunedì 22 aprile 2013

ISS Spotting - 16 aprile 2013 22:37

Ho scoperto quasi per caso che dalla mia finestra e' possibile in questi giorni vedere comodamente il passaggio di ISS. Peraltro vi sono delle comodissime applicazioni Android che aiutano nell'individuazione del tempo e del punto in cui osservare

La prima impressione e' : ma quanto caspita e' veloce ISS?
La seconda e' la voglia di provare a fotografare il passaggio
Con una digitale compatta i risultati sono stati sconfortanti ed ho provato una Pentax K-m su cavalletto ed esposizione di 20 secondi

L'immagine e' scalata rispetto all'originale ed a mala pena si vede il puntino luminoso dell'ISS


Migliorando l'immagine si vede piu' chiaramente nel cerchio rosso la presenza di ISS


e questo e' l'ingrandimento

questa e' la schermata di Stellarium relativa al cielo durante l'osservazione


Non e' proprio dello stesso momento ma e' quantomeno curioso che mentre qualcuno sta a naso in su a vedere il passaggio di ISS qualche poco fortunato sta a naso in giu' a guardare la Terra



afsd

domenica 21 aprile 2013

Root su Nexus S I9023 con LInux

Le indicazioni di questo post derivano dai suggerimenti di questo link

Per ottenere i privilegi di root su un Nexus S esistono vari modi ed il piu' semplice e' usare il Nexus Root Toolkit ma questa soluzione funziona solo su Windows mentre io normalmente uso una Debian Box e quindi ho cercato strade che usino anche il sistema del pinguino


Per prima cosa si devono scaricare i file relativi ad una nuova recovery  (TeamWin Recovery)ed ai file per il rooting e si deve modificare il file android.rules

sudo gedit /etc/udev/rules.d/51-android.rules
sudo chmod 0644 /etc/udev/rules.d/51-android.rules---------------------------------------------------
# Google Nexus S
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e21", MODE="0660", OWNER="luca" #Normal nexus s
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e22", MODE="0660", OWNER="luca" #Debug & Recovery nexus s
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e20", MODE="0660", OWNER="luca" #Fastboot nexus s
---------------------------------------------------
al termine dell'editazione si riavvia
/etc/init.d/udev restart

Di seguito si ritiene scontato avere l'SDK Android gia' montato

Sul sito di TeamWin c'e' un comodo motore di ricerca che seleziona il file per il proprio dispositivo..al momento io ho usato openrecovery-twrp-2.5.0.0-crespo.img mentre il rooting ho usato Superuser-3.1.3-arm-signed.zip.

Una volta scaricati i file si inserisce il Superuser sulla SDCard del telefono e si spenge il telefono e lo riavvia in fastboot mode (ovvero accendendo il telefono tenendo premuti Power e Vol +) e da linea di comando si digita

fastboot flash recovery openrecovery-twrp-2.5.9.0-crespo.img


al termine il terminale effettua un reboot
Si spenge di nuovo il terminale e si entra di nuovo in fastboot mode e stavolta si seleziona la voce di menu' Recovery (si usano i tasti del volume per salire e scendere ed il pusante di accensione per la conferma)
Il telefono si riavvia e si entra in Openrecovery
Si clicca su install e si seleziona Superuser-3.1.3-arm-signed.zip.
Si attende ed al nuovo riavvio il terminale e' sbloccato



sad

venerdì 19 aprile 2013

Root su GT-S7500

Le operazioni effettuate sono quelle indicate a questo link


Per prima cosa si deve mettere il telefono in Download Mode.
Da terminale spento si devono premere contemporaneamente i tasti Vol_Giu, Home ed Accensione

Una volta avviato si apre Odin e si collega il telefono via cavo
Si seleziona quindi il pulsante PDA ed il file recovery.zip



Si attende il termine delle operazioni ed il reboot del terminale

A questo punto essere un ottopode non e' necessario ma e' fortemente consigliato in quanto  il telefono deve essere riavviato un Recovery Mode ovvero (da telefono spento) si devono tenere premuti contemporaneamente i tasti Vol_Su, Vol_Giu, Home e Accensione (una volta avviato il telefono si puo' rilasciare l'accensione)

Si entra quindi in modalita' Recovery e si seleziona il file zip Superuser-3.1.3-arm-signed.zip.
Al termine delle operazioni si effettua l'ultimo reboot e si ha finalmente il controllo completo del terminale


d

adb no permissions in Linux

Nel cercare di connettere il Samsung GT-S7500 alla mia Debian Box mi sono scontrato contro il messaggio

adb no permissions


per risolvere il problema si deve diventare superutente (root) e digitare
adb kill-server
adb start-server

a questo punto si puo' ritornare sull'utente normale e si puo' interagire con il telefono

martedì 16 aprile 2013

Finestre a dimensione fissa in Qt

Per ottenere una finestra non ridimensionabile in Qt si puo' procedere settando questa proprieta'


this->setFixedSize(this->size());

DYI : cambiare le pastiglie del freno anteriore di un Kymco Agility ruote 12"

Si apre un nuovo settore di questo blog ovvero il fai-da-te non informatico.
In questo caso e' anche l'elogio della stupidita' perche' mi sono ritrovato a cambiare le pastiglie del freno quando oramai erano finite (frenando si sentiva chiaramente il fischio dell'attrito acciaio su acciaio)

La sostituzione e' piuttosto semplice in quanto necessita di due chiave ed un cacciavite ma come al solito le cose non vanno bene perche' 2 delle 4 viti sono risultate estremamente difficili da smontare

quindi conviene CON IL FRENO ANCORA MONTATO iniziare a svitare le due viti con testa  a brugola
Ad un certo punto non usciranno piu' perche' e' terminata la filettatura e si possono smontate tutto il blocco freno (senza rimuovere la ruota)




A questo punto si devono tirare con forza verso l'esterno le due viti con testa a brugola si liberano i pattini

Da notare l'usura del pattino usato, in alto, e quello nuovo in basso


s

Modificare il titolo di una finestra Qt

Per modificare il titolo di una finestra in Qt si procede con

this->setWindowTitle(QString);



lunedì 15 aprile 2013

Calcolare differenze di tempo in Qt

Di seguito un metodo semplice per calcolare la differenza in secondi tra due variabili QDateTime


---------------------------------------------------

#include "mainwindow.h"
#include "ui_mainwindow.h"

QDateTime ora;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ora = QDateTime::currentDateTime();
    ui->dateTimeEdit->setDateTime(ora);
    ui->label_ora->setText(ora.toString());


   }

MainWindow::~MainWindow()
{
    delete ui;
}



void MainWindow::on_pushButton_clicked()
{
    QDateTime partenza = ui->dateTimeEdit->dateTime();

    int diff = ora.secsTo(partenza);
    QString qStr = QString::number(diff);
    ui->label->setText("Diff.secondi : " +qStr);
}


---------------------------------------------------
Ancora Giove (in alto a destra) trionfa nel cielo invernale, stavolta insieme con la Luna ed Aldebaran

venerdì 12 aprile 2013

Dialog window modale e non modale in Qt

Di seguito un esempio su come aprire una finestra QDialog in modalita' modale e non modale (ovvero sempre in primo piano con focus attivo o meno)   


---------------------------------------------
   Dialog_class *dialog_class = new Dialog_class();
   dialog_class->setAttribute(Qt::WA_DeleteOnClose, true);
   
   //apre la finestra in modo modale
   dialog_class->exec();
   //apre la finestra in modo non modale
   dialog_class->show();
   dialog_class->raise();

Cancellare file in Qt

Un metodo per cancellare file in Qt
--------------------------------------------------------
void MainWindow::on_actionCancella_CVS_triggered()
{
    QFile file( QDir::homePath() + QDir::separator() +"anagrafiche_export.txt");
    if (file.exists())
    {
        file.remove();
    }
}

Aprire una porta UDP su un Firewall Linux

Un metodo rapido per aprire il firewall iptables di Linux per permettere le connessioni UDP sulla porta 55000


iptables -A INPUT -p udp --destination-port 55000 -j ACCEPT

Riportare al firmware originale Nexus S GT-I9023

Mi sono comprato usato un Nexus S GT-I9023.
Il telefono mi e' arrivato con una custom ROM con Android 4.2.2 ed ho deciso riportarlo al firmware originale di Google (un po' perche' mi sembrava un po' scattoso, un po' per avere la sicurezza di compatibilita')

La procedura e' quanto mai semplice:
Si scarica il firmware originale del telefono a questo indirizzo e si scompatta in una macchina con SDK Android installato (in realta' basta avere adb e fastboot)
Si riavvia il telefono in fastboot mode
Si lancia quindi (su Linux) lo script flash-all.sh
Gia' finito...bello avere un Nexus



Il telefono riavviato in Fastboot Mode


Il riavvio dopo aver flashato

Questi sono i messaggi a video, si osservi il tempo totale
----------------------------------------------------------------------
root@debianx40:/home/luca/Downloads/soju-jzo54k# ./flash-all.sh 
sending 'bootloader' (1536 KB)...
OKAY [  0.210s]
writing 'bootloader'...
OKAY [  0.382s]
finished. total time: 0.592s
rebooting into bootloader...
OKAY [  0.001s]
finished. total time: 0.001s
< waiting for device >
sending 'radio' (12288 KB)...
OKAY [  1.641s]
writing 'radio'...
OKAY [  1.903s]
finished. total time: 3.545s
rebooting into bootloader...
OKAY [  0.001s]
finished. total time: 0.001s
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
--------------------------------------------
Bootloader Version...: I9020XXLC2
Baseband Version.....: I9020XXKI1
Serial Number........: 373342FC9C0400EC
--------------------------------------------
checking product...
OKAY [  0.001s]
checking version-bootloader...
OKAY [  0.001s]
checking version-baseband...
OKAY [  0.001s]
sending 'boot' (3964 KB)...
OKAY [  4.966s]
writing 'boot'...
OKAY [  0.563s]
sending 'recovery' (4308 KB)...
OKAY [  0.768s]
writing 'recovery'...
OKAY [  0.643s]
sending 'system' (337443 KB)...
OKAY [ 75.814s]
writing 'system'...
OKAY [ 42.327s]
erasing 'userdata'...
OKAY [  0.361s]
formatting 'userdata' partition...
Erase successful, but not automatically formatting.
Can't determine partition type.
OKAY [  0.015s]
erasing 'cache'...
OKAY [  1.690s]
formatting 'cache' partition...
Erase successful, but not automatically formatting.
Can't determine partition type.
OKAY [  0.001s]
rebooting...

finished. total time: 127.162s

martedì 9 aprile 2013

StrTok in Qt

Data una QString composta da piu' campi divisi da un separatore si possono ottenere le sottostringhe utilizzando un metodo differente da Strtok tipico di C ovvero passando attraverso una StringList
Nell'esempio che segue la stringa di input e' data da un pacchetto UDP cosi' formato

1;Luca;Innocenti

per ottenere il primo campo (il valore 1) si puo' procedere come segue

----------------------------------------------------------------------
QString pacchetto = datagram.data();




QStringList myStringList = pacchetto.split(";");
QString str_pettorale = myStringList.at(0);

----------------------------------------------------------------------
in pratica si preleva il primo campo (indice = 0) della StringList



LLama3 Anita

A seguito di questo post ho provato a vedere ho provato a vedere cosa accadeva ad utilizzare un modello specifico per la lingua italiana in...