venerdì 23 novembre 2012

Leggere SMS in Android



Per leggere  gli SMS contenuti nel telefono e' sufficiente inserire la regola in AndroidManifest.xml


<uses-permission android:name="android.permission.READ_SMS"/>

e poi usare il codice seguente 

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

Uri uriSms = Uri.parse("content://sms/inbox");
Cursor cursor = getContentResolver().query(uriSms, new String[]{"_id", "address", "date", "body"},null,null,null);
cursor.moveToFirst();
while  (cursor.moveToNext())
{
        String id = cursor.getString(0);
         String address = cursor.getString(1);
         String body = cursor.getString(3);
         Log.d("testo",id + " "+address + " "+body);
}

giovedì 22 novembre 2012

Convertire stringhe in datetime in Python

per lavoro ho avuto la necessita' di leggere in input un file testo con una serie di stringhe rappresentanti delle letture effettuate nel tempo e dover capire quale fosse la differenza di tempo tra le acquisizioni

Il metodo piu' semplice e' quindi convertire le stringhe in un formate datetime e poi effettuare le operazioni

In Python la cosa si risolve cosi

---------------------------------------------
from datetime import datetime

data1 = datetime.strptime('Jun 27 2012  7:14PM', '%b %d %Y %I:%M%p')

data2 = datetime.strptime('Jun 27 2012  7:16PM', '%b %d %Y %I:%M%p')
diff = data2 - data1
print diff
print diff.seconds 
---------------------------------------------
che riporta come risulta 0:02:00 ovvero l'attesa differenza di 2 minuti e la differenza espressa in secondi (120)

mercoledì 14 novembre 2012

Snail Mail da Google

E' troppo curioso ricevere una lettera di carta da Google per non pubblicarlo


fra parentesi e' un pubblicita' per AdWords




martedì 13 novembre 2012

Slax

Sempre alla ricerca di creare un sistema Linux da portarmi a giro come Live Cd mi sono imbattuto in SLAX una derivata da Slackware


Boot di Slax

la caratteristica piu' interessante e' quella di non fornire una ISO prestabilita ma di poter creare la propria Linux Box con la funzione Slax Build

In estrema sintesi si puo' partire da un sistema di base ed aggiungere i vari moduli di interesse (io mi sono creato un sistema per la programmazione) fino ad scaricare un file .iso con tutto montato
Il sistema non e' perfetto e le dipendenze devono essere in qualche caso corrette a mano ma in fin dei conti e' poca cosa

Il modulo CodeBlocks aggiunto alla ISO
Interessante e' anche la possibilita' di salvare la configurazione dei moduli su un file per poterlo correggere o riprendere la selezione in un secondo tempo

Creare una Live-Cd partendo da una installazione funzionante

Una delle cose che ho sempre desiderato e' quella di potermi portare dietro i programmi e le impostazioni che mi servono anche se non ho dietro il portatile

Ho cosi' provato un po' di soluzioni per poi decidere il sistema riportato da Remastersys

Non volendo sacrificare il portatile mi sono creato una macchina virtuale minimale partendo da una installazione standard di Ubuntu Server 12.04 (Remastersys non gestisce Debian Testing e quindi ho escluso di provare su Debian) per poi aggiungere openbox

apt-get install openbox obconf obmenu openbox-themes startx xterm

in questo modo si ha un ambiente grafico minimale
E' giunto il momento di creare una iso del nuovo sistema prima aggiungendo ad apt la chiave del repository di Remastersys

wget -O - http://www.remastersys.com/ubuntu/remastersys.gpg.key | apt-key add -

dopo si modifica il file /etc/apt/sources.list aggiungendo la riga
deb http://www.remastersys.com/ubuntu precise main

seguito dall'aggiornamento di apt
apt-get update
e
apt-get install remastersys

e' giunto il momento di creare il file iso includendo anche i file personali (e non solo quelli di sistema)
remastersys backup nome_file.iso

il file viene generato nella directory /home/remastersys

dopo un (bel) po' viene creato il file iso che puo' essere masterizzato o messo su chiavetta USB e distribuito
Al riavvio si presenta questo menu


e tutto funziona magnificamente

lunedì 12 novembre 2012

Wget dietro proxy server

Per utilizzare il comando wget in una rete schermata da un proxy server non e' sufficiente impostare la variabile bash http_proxy con il comando

export http_proxy=http://myproxy:8080

perche' il programma di fatto non legge questa impostazione

la soluzione piu' semplice e' creare un file .wgetrc inserendo la stringa
http_proxy=http://myproxy:8080

sabato 10 novembre 2012

Installa Ruby on Rails su Debian per Passbook Server



per questa installazione si e' partiti da una Debian Testing netinstall perche' la versione Stable ha come pacchetti Ruby 1.8 mentre a me serve la versione piu' recente di Ruby (la 1.9) accoppiata al piu' recente Rails (3)

Esiste un Live Cd di TurnKey che propone un ambiente Ruby On Rails gia' configurato ma essendo un derivato da Debian Stable anche in questo caso si trovano pacchetti datati

Lo scopo finale e' quello di settare un ambiente di sviluppo/test per i Passbook di Apple

una volta installato il sistema in modalita' server (quindi niente ambiente desktop) si procede con
apt-get update
apt-get upgrade
apt-get install build-essential apache2 libapache2-mod-passenger
apt-get install rdoc ruby1.9.1-full
apt-get install ruby1.9.1-dev libopenssl-ruby rubygems1.8
gem install fastthread
apt-get install ruby-rails-3.2
gem install coffee-rails uglifier
con queste impostazioni si ha un ambiente di svliluppo generico che permette di usare gli esempi riportati a questo link

a questo punto si inizia a settare le dipendenze per il Passbook Server
gem install sinatra sequel sqlite3 rubyzip rack json terminal-table

si scompattano gli esempi Passbook che si trovano su Apple Developer e ci si posiziona nella directory ServerReference/pass_server e si lancia
gem install lib/sign_pass-1.0.0.gem
chmod 755 lib/pass_server_ctl 
lib/pass_server_ctl -s







Analisi MNF su spettri di riflettanza di plastica

Devo cerca di lavorare su spettri di riflettanza di plastica e la prima domanda e': quale sono le bande significative? Sono partito dal ...