martedì 30 giugno 2015
Congiunzione Venere Giove 30 giugno 2015
E' necessario ingrandire a piena risoluzione la fotografia per apprezzare la congiunzione tra Giove e Venere. Dal vivo ed ad occhio nudo la separazione tra i due pianeti e' assolutamente apprezzabile ma rimane sempre un bello spettacolo
martedì 23 giugno 2015
Raspberry Kiosk (read only mode)
Per una installazione di un monitor informativo (una semplice pagina web che si autoaggiorna) ho pernsato di installare una Raspberry in modo da avere un sistema economico e con poco consumo di corrente
Cio' che non avevo previsto e' che il luogo dell'installazione e' particolarmente soggetto a mancanza di corrente e nel giro di dieci giorni dalla messa in esercizion il sistema e' crollato perche' il filesystem sulla SD Card si e' corrotto
Un sistema che e' provato e' quello suggerito da questo link ma mi sono subito insospettito perche' viene disinstallato il server X. Facendo le prove infatti il filesystem va effettivamente in modalita' di sola scrittura ma X ha necessita' di scrivere dentro la directory /home e quindi la strada proposta non e' perseguibile perche' X Windows non si avvia (rimane uno schermo nero con un cursore che lampeggia beffardo)
L'altra soluzione e' quella di rendere il sistema a sola lettura in generale e di creare invece un filesystem virtuale in memoria per quelle directory in cui e' necessario scrivere come proposto da questo link
Vale comunque la pena di seguire il consiglio di disinstallare i sistemi di log
apt-get remove --purge wolfram-engine triggerhappy cron anacron logrotate dphys-swapfile
in sintesi si modifica /etc/fstab per mettere in sola scrittura il filesystem della schedina
/dev/mmcblk0p2 / ext4 defaults,noatime,ro 0 1
(io per essere sicuro ho messo in sola lettura anche la partizione di boot) e si mette la directory /tmp in memoria
mkdir /ro
unionfs-fuse#/tmp=rw:/ro/var=ro /var fuse cow,allow_other,nonempty
mount / -o remount,rw
Cio' che non avevo previsto e' che il luogo dell'installazione e' particolarmente soggetto a mancanza di corrente e nel giro di dieci giorni dalla messa in esercizion il sistema e' crollato perche' il filesystem sulla SD Card si e' corrotto
Un sistema che e' provato e' quello suggerito da questo link ma mi sono subito insospettito perche' viene disinstallato il server X. Facendo le prove infatti il filesystem va effettivamente in modalita' di sola scrittura ma X ha necessita' di scrivere dentro la directory /home e quindi la strada proposta non e' perseguibile perche' X Windows non si avvia (rimane uno schermo nero con un cursore che lampeggia beffardo)
L'altra soluzione e' quella di rendere il sistema a sola lettura in generale e di creare invece un filesystem virtuale in memoria per quelle directory in cui e' necessario scrivere come proposto da questo link
Vale comunque la pena di seguire il consiglio di disinstallare i sistemi di log
apt-get remove --purge wolfram-engine triggerhappy cron anacron logrotate dphys-swapfile
in sintesi si modifica /etc/fstab per mettere in sola scrittura il filesystem della schedina
/dev/mmcblk0p2 / ext4 defaults,noatime,ro 0 1
(io per essere sicuro ho messo in sola lettura anche la partizione di boot) e si mette la directory /tmp in memoria
tmpfs /tmp tmpfs defaults,size=30M 0 0
a questo punto si installa unionfuse, il sistema per creare il filesystem in memoria (il valore di 30M e' puramente indicativo, si puo' andare tranquillamente fino a 200M)
apt-get install unionfs-fuse
si spostano le directory /var e /home che saranno quelle ad essere realizzate in memoria
mv /var /ro
mv /home /ro
mkdir /var /home
e si aggiorna /etc/fstab
unionfs-fuse#/tmp=rw:/ro/home=ro /home fuse cow,allow_other
al succesivo riavvio si potra' scrivere in /home e /var (ma le modifiche saranno in memoria e quindi perse al successivo riavvio) mentre nel resto del file system sara' impossibile accedere in scrittura a meno di non digitare
Questo sistema e' ottimo e funziona ma ovviamente si va ad occupare parte della ram con un disco virtuale quindi i processi che gireranno non dovranno essere esosi di ram
Per far partire il sistema direttamente in X conviene riconfigurare
sudo raspi-confige poi scegliere il menu "Enable Boot to Desktop" > select "Desktop Log in .."
Per far partire il sistema direttamente in X conviene riconfigurare
sudo raspi-confige poi scegliere il menu "Enable Boot to Desktop" > select "Desktop Log in .."
per vari motivi puo' essere conveniente installare un browser come Chromium (piu' pesante di quello preinstallato ma con meno problemi nella visualizzazione dei siti)
per mandare in esecuzione automatica Chromium quando parte X si edita il file
nano /etc/xdg/lxsession/LXDE-pi/ autostart
aggiungendo la linea
@chromium --kiosk --ignore-certificate-errors --disable-restore-session- state "http://www.domain.com"
lunedì 22 giugno 2015
Fauna caldinese
E' tempo di lucciole ma anche di questi simpatici animaletti
Le chiavi danno un'idea delle dimensioni
Le chiavi danno un'idea delle dimensioni
Luna Giove e Venere 20 Giugno 2015
sabato 20 giugno 2015
Slow Php Redirect
Uso spesso il redirect verso una pagina html nei siti scritti in Php, piu' che altro per pagine di validazione di password, e non ho mai avuto problemi
basta indicare
<?php
header("Location: www.google.com");
?>
echo "<html></html>";
flush();
ob_flush();
exit;
?>
il reindirizzamento e' immediato
basta indicare
<?php
header("Location: www.google.com");
?>
e non effettuare nessuna operazione di scrittura (leggasi print od echo) e la cosa funziona
Ultimamente ho sviluppato una applicazione per Android/IOS che usa una WebView all'interno della quale c'e' una pagina (ospita su un server esterno) che usa la funzione di redirect ed ho notato un ritardo anche di 10 secondi tra quando viene effettuata la richiesta e quando la connessione viene reindirizzata
Il problema non era nella applicazione mobile. Riscrivendo il codice php in questo modo
<?php
header("Location: www.google.com",true,307);echo "<html></html>";
flush();
ob_flush();
exit;
?>
il reindirizzamento e' immediato
venerdì 19 giugno 2015
Aggiungere directory raw in Android Studio
La directory /raw non e' creata di default da Android Studio.
Per includerla si deve cliccare destro sull'albero del progetto /New/Android resource directory
e poi selezionara rae dal secondo menu a tendina
Includere librerie aar in Android Studio
In questo post viene descritto come includere librerie Android in formato aar in un progetto di Android Studio. Per questo esempio viene indicato come installare Android Beacon Library
1) Esempio 1 : partendo dal file aar
In questo caso si scarica in locale il file aar dal sito del produttore
1) Esempio 1 : partendo dal file aar
In questo caso si scarica in locale il file aar dal sito del produttore
Dal progetto precedentemente create si clicca destro per New/Module
Selezionando Import Jar or Aar Package
Per selezionare il file si usa il quadratino all'estrema destra della prima casella di testo
Al termine si osserva che compare la nuova libreria nell'albero del progetto
Per includere la nuova libreria nella catena di compilazione di Gradle si deve editare il file build.gradle relativo al Modulo app (attenzione, esistono diversi file build.gradle all'interno di un progetto Android Studio) come indicato dalla riga evidenziata
-----------------------------------------------
apply plugin: 'com.android.application'
android {
compileSdkVersion 21 buildToolsVersion "21.1.2"
defaultConfig {
applicationId "luca_innocenti.nearbeewear" minSdkVersion 21 targetSdkVersion 21 versionCode 1 versionName "1.0" }
buildTypes {
release {
minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.support:wearable:1.2.0' compile 'com.google.android.gms:play-services-wearable:7.5.0' compile 'org.altbeacon:android-beacon-library:2+'}
-----------------------------------------------
1) Esempio 2 : usando un repository remoto
al posto di installare la libreria in locale si puo' richiederla al momento della compilazione da un server remoto. Per ottenere cio' basta indicare l'indirizzo del server remoto ed il nome della libreria che si vuole includere sempre nel file build.gradle del modulo dell'applicazione (vedi parti in giallo)
Per seguire questa strada e' necessario che la macchina di sviluppo sia sempre connessa con Internet
al posto di installare la libreria in locale si puo' richiederla al momento della compilazione da un server remoto. Per ottenere cio' basta indicare l'indirizzo del server remoto ed il nome della libreria che si vuole includere sempre nel file build.gradle del modulo dell'applicazione (vedi parti in giallo)
Per seguire questa strada e' necessario che la macchina di sviluppo sia sempre connessa con Internet
-----------------------------------------------
apply plugin: 'com.android.application'
android {
compileSdkVersion 21 buildToolsVersion "21.1.2"
defaultConfig {
applicationId "luca_innocenti.beacontrasmitter" minSdkVersion 21 targetSdkVersion 21 versionCode 1 versionName "1.0" }
buildTypes {
release {
minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }
}
}
final def var = repositories {
jcenter{
url "http://jcenter.bintray.com/" }
}
var
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.support:wearable:1.2.0' compile 'com.google.android.gms:play-services-wearable:7.5.0'}dependencies {
compile 'org.altbeacon:android-beacon-library:2+'}
Crash su sottomissione ad Apple Store
Oggi una sorpresa. Mandando in verifica una app su Apple Store con la stessa procedura che ho fatto solo un paio di giorni fa XCode ha crashato in modo non recuperabile
Chiudere ed aprire Xcode non serve a niente e nemmeno reinstallarlo
La soluzione arriva da questo link: si deve archiviare l'applicazione, lanciare Organizer, chiudere il progetto nella finestraa principale di XCode lasciando aperto Organizer e solo a questo punto si effettua l'upload su Apple Store
Ancora devo capire perche' continuo a pagare soldi per questo tipo di servizio....
giovedì 18 giugno 2015
Settare il tempo su Centos 7
Un piccolo promemoria su come settare il tempo su Centos
Per prima cosa si deve settare/modificare la propria timezone mediante il comando
timedatectl set-timezone Europe/Rome (Italia)
timedatectl set-timezone Etc/UTC (UTC)
per sincronizzare l'orologio con un servizio NTP si deve configurare il file /etc/ntp.conf con l'indirizzo di un timeserver ed aggiornare la regola del firewall
firewall-cmd --add-service=ntp --permanent
Per prima cosa si deve settare/modificare la propria timezone mediante il comando
timedatectl set-timezone Europe/Rome (Italia)
timedatectl set-timezone Etc/UTC (UTC)
per sincronizzare l'orologio con un servizio NTP si deve configurare il file /etc/ntp.conf con l'indirizzo di un timeserver ed aggiornare la regola del firewall
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
systemctl start ntpd
systemctl start ntpd
Disinstallare applicazioni da Android Wear
Per disinstallare applicazione da Android Wear non esiste un sistema integrato all'interno dell'orologio.
Se si ha l'applicazione/installer sul telefono basta agire sul telefono che la modifica si replica anche sull'orologio ma se si sta per esempio sviluppando una applicazione in proprio questa strada non risulta applicabile
Ci viene quindi in aiuto adb ma si deve conoscere il nome reale del pacchetto installato (e non il nome dell'applicazione)
Per listare le applicazioni installazione sull'orologio si puo' digitare
adb shell
pm list packages
diciamo che il pacchetto che si vuole disinstallare luca_innocenti.soundwear si esce dalla shell e si digita
adb uninstall luca_innocenti.soundwear
queste istruzioni funzionano se l'orologio e' collegato via USB (ovvero se e' collegato sulla sua basetta). Se invece il debug e' avviato via bluetooth si deve procedere con
adb forward tcp: 4444 local abstract: / adb hub
Se si ha l'applicazione/installer sul telefono basta agire sul telefono che la modifica si replica anche sull'orologio ma se si sta per esempio sviluppando una applicazione in proprio questa strada non risulta applicabile
Ci viene quindi in aiuto adb ma si deve conoscere il nome reale del pacchetto installato (e non il nome dell'applicazione)
Per listare le applicazioni installazione sull'orologio si puo' digitare
adb shell
pm list packages
diciamo che il pacchetto che si vuole disinstallare luca_innocenti.soundwear si esce dalla shell e si digita
adb uninstall luca_innocenti.soundwear
queste istruzioni funzionano se l'orologio e' collegato via USB (ovvero se e' collegato sulla sua basetta). Se invece il debug e' avviato via bluetooth si deve procedere con
adb forward tcp: 4444 local abstract: / adb hub
adb connect localhost: 4444
adb devices a
db-s localhost: 4444 shell
pm list packages
adb -s localhost: 4444 uninstall luca_innocenti.soundwear
lunedì 15 giugno 2015
Android Wear con Eclipse
Ho un vecchio progetto (vecchio per modo di dire ... ma nell'informatica un anno ha una valenza un po' particolare) in Eclipse a cui volevo aggiungere il supporto ad Android Wear senza trasportare tutto in Android Studio
La procedura per impostare l'ambiente di sviluppo non e' molto lineare e deriva da quanto descritto a questo link
Per prima cosa da Sdk Manager deve essere aggiunto il Google Repository
Una volta terminato il download si deve andare nella directory del proprio SDK ed in particolare in
./extras/google/m2repository/com/google/android/support/wearable/1.0.0/wearable-1.0.0.aar
copiare il file .aar, rinominarlo in .zip e decomprimerlo (attenzione esiste anche un file wearable-1.0.0.jar da non usare)
Dopo lo scompattamento si entra nella cartella, si crea un directory libs e vi si copia il file classes.jar
Si apre quindi Eclipse e si importa la directory con File/New/Project/Android Project From Existing Code
Dopo l'importazione si clicca destro sulla directory wearable-1.0.0. /Properties/Android, si flagga IsLibrary, Apply, Ok e da questo punto in poi e' stato aggiunto il supporto di Android Wear ad Eclipse
Per aggiungere il supporto ad Android Wear ad un progetto si clicca sulle proprieta' del progetto/Android e si aggiunge la libreria wereable
giovedì 4 giugno 2015
ISS Spotting 1 giugno 2015
Grazie ad un passaggio quasi zenitale, l'assenza di nuvole ed un orario non impossibile (22:30) ho provato a riprendere la ISS (dopo i tentativi del 2013 e 2014)
Questa volta mi sono organizzato con una Pentax Mz con un tempo di apertura di 30 secondi e sensibilita' a 3200 ASA ed un Fuji Lumix DMC LS 5 in modalita' ripresa video (la prima montata su cavalletto la seconda semplicemente appoggiata per terra rivolta verso l'alto)
Questa volta mi sono organizzato con una Pentax Mz con un tempo di apertura di 30 secondi e sensibilita' a 3200 ASA ed un Fuji Lumix DMC LS 5 in modalita' ripresa video (la prima montata su cavalletto la seconda semplicemente appoggiata per terra rivolta verso l'alto)
| Pentax modificata aumentando il contrasto |
video da Fuji (da vedere a tutto schermo alla massima qualita')
lunedì 1 giugno 2015
Mysql SSH Tunnel
In questo precedente post avevo indicato come mettere in ascolto un demone SSH su due schede di rete
Mi e' stato chiesto, sulla stessa macchina di poter interagire con il server Mysql, sia dalla scheda con indirizzo interno che da quella con indirizzo pubblico. Nonostante i vari tentativi di modificare il bind-address (impostandolo per esempio a 0.0.0.0 per il server SSH) non sono riuscito a mettere il server in ascolto.
A questo punto entra in gioco un piccolo trucco; visto che l'accesso SSH e' garantito si puo' creare un tunnel mysql over ssh, in pratica il traffico mysql viene instradato con canale SSH ed il client non si collega direttamente all'indirizzo remoto ma ad un propria porta locale
Il comando per fare cio' e' il seguente
ssh -fNg -L 3307:127.0.0.1:3306 luca@10.1.1.238
ci si collega dal client alla macchina remota (10.1.1.238) collegando la porta remota 3306 (Mysql) con una porta locale 3307
per collegarsi ed interrogare il database si puo' usare quindi la sintassi
mysql -h 127.0.0.1 -P 3307 -u luca
(testato su Os X e Linux)
Mi e' stato chiesto, sulla stessa macchina di poter interagire con il server Mysql, sia dalla scheda con indirizzo interno che da quella con indirizzo pubblico. Nonostante i vari tentativi di modificare il bind-address (impostandolo per esempio a 0.0.0.0 per il server SSH) non sono riuscito a mettere il server in ascolto.
A questo punto entra in gioco un piccolo trucco; visto che l'accesso SSH e' garantito si puo' creare un tunnel mysql over ssh, in pratica il traffico mysql viene instradato con canale SSH ed il client non si collega direttamente all'indirizzo remoto ma ad un propria porta locale
Il comando per fare cio' e' il seguente
ssh -fNg -L 3307:127.0.0.1:3306 luca@10.1.1.238
ci si collega dal client alla macchina remota (10.1.1.238) collegando la porta remota 3306 (Mysql) con una porta locale 3307
per collegarsi ed interrogare il database si puo' usare quindi la sintassi
mysql -h 127.0.0.1 -P 3307 -u luca
(testato su Os X e Linux)
Planet Trails con uno smartphone
In attesa di riprendere la ISS al passaggio del 1° Giugno, ho provato a sostituire la digitale reflex con il telefonino per riprendere Giove e Venere
Le fotografie sono state riprese dalle 21.47 alle 23.00 del 29/05/2015 con il programma Android Camera FV - 5 con una foto al minuto con un tempo di apertura di 10 secondi
Le foto sono state unite mediante il programma StarTrail
Le tracce sono state registrate ma si vede chiaramente l'assenza delle stelle. Confrontando con il programma Stellarium, Giove e Venere erano gli unici oggetti ripresi con magnitudo negativa
Questa l'animazione (osservando attentamente si osserva anche il passaggio di un aereo)
Considerando che il passaggio della ISS e' previsto per 22:30 del 1° Giugno con una magnitudo -3.6 sara' possibile filmarla con il telefono ma ci si puo' scordare si fotografare oggetti con magntudo inferiore a -1 (quindi non si possono fotografare le stelle)
Le fotografie sono state riprese dalle 21.47 alle 23.00 del 29/05/2015 con il programma Android Camera FV - 5 con una foto al minuto con un tempo di apertura di 10 secondi
![]() |
| Piu' in alto Giove, piu' luminoso ed in basso Venere |
Le foto sono state unite mediante il programma StarTrail
Le tracce sono state registrate ma si vede chiaramente l'assenza delle stelle. Confrontando con il programma Stellarium, Giove e Venere erano gli unici oggetti ripresi con magnitudo negativa
Questa l'animazione (osservando attentamente si osserva anche il passaggio di un aereo)
Considerando che il passaggio della ISS e' previsto per 22:30 del 1° Giugno con una magnitudo -3.6 sara' possibile filmarla con il telefono ma ci si puo' scordare si fotografare oggetti con magntudo inferiore a -1 (quindi non si possono fotografare le stelle)
Iscriviti a:
Post (Atom)
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...
-
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...




















