Va beh, sono ironico dato che a seconda del modello, il Kindle ha un processore di circa 0.8-1 GHz, RAM 256-512 MB, insomma non proprio l'ideale per sfruttarne la potenza computazionale.
Tendenzialmente si pensa che il Kindle sia adatto alla lettura ed è ovviamente questo il suo scopo. Però è presente un browser (Kindle Web Browser), nulla di eccellente, ma di fatto c'è. Il browser è compatibile anche con JavaScript, quindi... Possiamo creare una nostra pagina HTML in locale, che contenga eventuale codice JavaScript e CSS in blocco.
Vediamo i passaggi per fare ciò sul Kindle, non è semplicissimo e ho dovuto fare molti tentativi (più che altro perché diverse funzioni JavaScript non sono supportate, quindi eseguivo il codice sul PC, trasferivo a Kindle e... Non funziona 😂); quindi ho dovuto semplificare, scrivendo un codice più semplice e rudimentale ma che di fatto funziona.
- dobbiamo conoscere il percorso root del Kindle, che ve lo dico subito:
file:///mnt/us/html/nomefile.html
; in poche parole, se copiate nella directory principale un file chiamato nomefile.html, nel browser dovete scrivere questo percorso (eventualmente poi lo salvate in preferiti, per non doverlo digitare ogni volta)
- pagina HTML con codice JavaScript, CSS in blocco (riguardo al CSS vi ricordo che è inutile la personalizzazione dei colori dato che il Kindle è in bianco e nero 😅)
- copia-incolla di questo file (creato da PC) nella directory principale del Kindle
- accendiamo il Kindle, andiamo su Web Browser e inseriamo l'indirizzo corretto: si apre il nostro file HTML in locale, compreso l'eventuale codice JavaScript
Esempio: la potenza computazionale di Kindle
Faccio una premessa, come dicevo all'inizio, il Kindle pur riconoscendo JavaScript non comprende tutti i comandi quindi ad esempio al posto di performance.now()
ho dovuto usare Date.now()
, poi non c'era verso di usare l'elevamento a potenza (quindi anche radice quadrata, nemmeno ovviamente riconosce la libreria Math).
Il test di esempio riguarda il calcolo della lista dei primi 1000 numeri primi. Il codice NON è molto ottimizzato dato che anziché fermarmi a sqrt(numero)
ho dovuto mettere 0.5*numero
(e che cavolo, se non riconosce la radice quadrata o l'elevamento a potenza del tipo numero**0.5
, purtroppo non abbiamo alternativa). L'importante è avere uniformità, stesso programma, sia su PC che Kindle. Vediamo i risultati:
- PC - tempo di esecuzione: 3/4 ms
- Kindle - tempo di esecuzione: 474 ms
Insomma il buon Kindle, a parità di condizioni, ha un tempo di esecuzione oltre 100 volte più lento rispetto al mio PC. Tra l'altro faccio una precisaizone, ottimizzando meglio il codice (cosa che posso fare da PC mentre come detto non per il Kindle, non riconosce alcuni comandi) sono arrivato al calcolo dei primi 100.000 numeri primi in soli 180 ms, prestazione di tutto rispetto! 😮 Più in dettaglio, una discussione sul tema: Algoritmi per numeri primi: risultati, benchmark, considerazioni
Riporto il codice completo che ho fatto eseguire al buon Kindle (tra l'altro, quando lo uso per leggere la batteria dura di più, queste operazioni sembrano "stressarlo" parecchio ahah).
<html>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
function is_prime(numero){
if(numero%2==0){return false;}
for(var j=3;j<=0.5*numero;j+=2){
if (numero%j==0){
return false;
}
}
return true;
}
var contatore=0;
var numero=2;
function starter(N){
var start=Date.now();
while(contatore<N-1){
numero++;
if(is_prime(numero)){
contatore++;
}
}
var end=Date.now();
return (end-start);
}
alert("1000:"+starter(1000)+"ms");
</script>
</html>
Ecco un'immagine che mostra il risultato. All'inizio dove vedete la possibilità di scelta (N=1000, 10.000, 100.000) era la versione precedente, dato che realisticamente parlando sul Kindle ho eseguito solo N=1000 con questo codice, è già tanto, visto processore e RAM con gli altri andrebbe in crash 😁

Cosa ne pensate? Userete il Kindle per programmare? 🙂