giovedì 26 settembre 2013

MTP in Nexus 7 e Debian Testing

Con il Nexus 7 e Android 4.3 e' cambiato il sistema per accedere alla memoria di Android
Se prima per abilitare la memoria si doveva esplicitamente cliccare attualmente inserendo il cavo USB viene riconosciuta subito una unita' esterna

Il protocollo di trasmissione dati e' MTP e, come si vede dall'immagine sottostante, Debian testing monta automaticamente il dispositivo



Cercando di copiare dati si generano in modo abbastanza casuale errori di questo tipo


Ho notato che modificando il nome del file permette di compiere senza errori l'operazione ed in altri casi e' la dimensione del file che genera l'errore

Ho provato ad aggiornare libmtp all'ultima versione compilando dai sorgenti ma senza sensibili miglioramenti. Ho quindi compilato dai sorgenti il programma Mtpfs (link) con poco successo (il dispositivo e' stato montato ma era molto lento nel fare la lista dei file presenti)

Ho provato anche questo sistema ma senza significativi miglioramenti

In buon sostanza la cosa migliore al momento rimane Airdroid

Postare su GMail con Temboo in Php


Insieme ad Arduino Yun viene fornito anche il supporto per Temboo, un metodo semplice per utilizzare le API di diversi servizi Web come per esempio Google o Facebook

Per utilizzare questo metodo, dopo essersi registrati, si deve individuare quali sono le Application Keys. Per l'account Free e' possibile definire una sola applicazione con un limite di 1000 transazioni/mese 



Si puo' quindi scaricare l'SDK preferito (in questo caso Php) e creare il seguente semplice script
Di fatto devono essere inserite le credenziali di Temboo (username=c1p81, Appname = myFirstApp e Secret Key) e poi le variabili per spedire la mail con le credenziali (in chiaro....scelta un po' opinabile) di Google
----------------------------------------------------------
<?
require './php-sdk/src/temboo.php';
$session = new Temboo_Session('c1p81', 'myFirstApp', '09d467e6-xxxxxxxxxx');
$sendEmail = new Google_Gmail_SendEmail($session);
$sendEmailInputs = $sendEmail->newInputs();
$sendEmailInputs->setMessageBody("Da Giglio")->setSubject("Giglio automatico")->setUsername("lucainnoc")->setPassword("xxxxxx")->setFromAddress("lucainnoc@gmail.com")->setToAddress("l.innocenti@xxxxxxx.it");
$sendEmailResults = $sendEmail->execute($sendEmailInputs)->getResults();
?>

Ancora su Arduino Yun


Un po' di aggiornamenti sulla Yun

1) Al contrario di Arduino Uno, gli sketch di Yun non si resettano quando si collega il terminale sulla seriale virtuale. Per effettuare il reset si deve premere il pulsante fisico di reset oppure collegarsi alla serial con una velocita' di 1200

2) Nelle configurazioni avanzate e' presente un menu avanzato per visualizzare lo stato della rete denominato Luci


3) Se la Yun non e' in modalita' Access Point e' possibile collegarsi in SSH. L'utente e' root e la password e' quella che e' stata impostata dall'utente


4) Dopo un riavvio da modalita' Access Point a modalita' normale la Yun non puo' essere pingata ma solo chiamata con il nome impostato (per esempio c1p81.local).

5) Direttamente dal forum di Arduino Yun il pinout
6) Per poter osservare i messaggi che prima si potevano inviare sulla seriale virtuale quando vi e' la sola connessione WiFI od Ethernet si deve usare la libreria Console.h al posto di Serial.h. I messaggi si osservano come al solito sul monitor serial della IDE
Per esempio
------------------------------
#include <Console.h>

void setup() {
  Bridge.begin();
  Console.begin(); 

  while (!Console){
    ; // wait for Console port to connect.
  }
  Console.println("You're connected to the Console!!!!");
 }

void loop() {
 }

Httpclient con Arduino Yun

Un primo esempio dell'HttpClient di Yun

-----------------------------------------
#include <Bridge.h>
#include <HttpClient.h>
#include <Console.h>


void setup() {
  Bridge.begin();
  Console.begin(); 
  while (!Console) {
  }
  Console.println("Inizio"); 
}

void loop() {
  HttpClient client;
  client.get("http://mxxxxxxxx/luca/examples/like3.php");

  while (client.available()) {
    char c = client.read();
    Console.print(c);
  }

  Console.flush();

  delay(5000);
}
-----------------------------------------

Questa e' la risposta del server

m.msn.unifi.it:80 151.44.64.150 - - [19/Sep/2013:16:17:02 +0200] "GET /luca/examples/like3.php HTTP/1.1" 200 394 "-" "curl/7.29.0"

Budenza Demo 1994


Frugando su Internet ho trovato questa demo scritta nel 1994 da un paio di miei amici (tanto per dare l'idea era scritta per DOS e sviluppata su 386 e 486 per le VGA)
L'aspetto ancora piu' curioso e' che all'epoca Internet era (in Italia) ancora sostanzialmente sconosciuta ed infatti sono riportati gli indirizzi mail in formato FIDO-Net (BBS Telin)

All'epoca ne seguii di riflesso lo sviluppo (conoscendo anche alcuni trucchi che sono stati utilizzati per gli effetti grafici) e non mi sarei mai aspettato di metterla in esecuzione 19 anni dopo in una Debian Box








Elettronica in un telefono

Per tentare di recuperare un po' di elettronica ho smontato un telefono da tavolo
Con mia grande sorpresa la scheda si presentava come nella foto sottostanti

In pratica di elettronica discreta sono presenti solo

n.1 A7275AL-A52533
n.2 switch
n.4 diodi
n.10 resistenze
n.1 buzzer

in buona sostanza tutte le funzionalita' (tastiera + telefonia) sono racchiuse in un solo chip con pochissimi altri componenti


a




Libsoup crash in Eclipse 64 Bit

Se si utilizza Eclipse 64 bit per Android c'e' un fastidioso bug nella gestione della libreria libsoup

Per correggere il problema si deve correggere il file eclipse.ini aggiungendo la seguente riga
-Dorg.eclipse.swt.browser.DefaultType=mozilla
informazione ripresa da https://bugs.eclipse.org/bugs/show_bug.cgi?id=405786

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f1c73b60ab1, pid=5477, tid=139761754089216
#
# JRE version: Java(TM) SE Runtime Environment (7.0_40-b43) (build 1.7.0_40-b43)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.0-b56 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libsoup-2.4.so.1+0x6fab1]  soup_session_feature_detach+0x11
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/luca/android/eclipse/hs_err_pid5477.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

Ollama e Jetson Nano 4G

Ancora nel tentativo di utilizzare in modo serio la Jetson Nano ho provato ad usarla per Ollama seguendo le istruzioni da https://dev.to/aje...