Perché Facebook è meglio di Apple

Cosa hanno in comune Apple e Facebook? Niente. Apple produce hardware e software, oltre che servizi tagliati specificatamente per i suoi prodotti. Facebook vende di fatto pubblicità, collegata ad un servizio, il social, la chat, soggetto alle mode del momento, oggi va alla grande, domani chissà (ricordate Second Life o MySpace?), usato fin troppo spesso per diffondere sciocchezze, urla, falsità, e perfino odio vero e proprio.

Eppure c’è chi ritiene che Facebook abbia un futuro molto più radioso di Apple e che, per assicurarsi una vecchiaia senza problemi, sia molto più sensato investire su Facebook che sulla derelitta Apple.

Perché? Perchè all’analista di The Motley Fool, la missione aziendale di Facebook (la righetta che descrive cos’è e cosa fa l’azienda) piace di più di quella Apple. Più che un pezzo di informazione finanziaria sembra uno sketch dei Monty Python o un pesce d’aprile fuori stagione.

Ma bisogna capirli, questi giullari devono pur farsi pubblicità per vendere il loro prodotto. E cosa c’è di meglio allora che un bel titolone attira-click? Tanto qualche boccalone che ci crede si trova sempre.

Pensiamoci mentre guardiamo il keynote di stasera. E poi magari ne riparliamo fra qualche mese.

Annunci
Tagged with: , , ,
Pubblicato su hardware

iPhone XYX

Non so voi, ma a me tutta questa attesa spasmodica per il nuovo iPhone mi fa venire l’orticaria. Sono mesi che girano voci incontrollate (ed incontrollabili) sulle caratteristiche del nuovo modello, sui suoi dettagli più minuti, perfino sul nome che potrebbe aver scelto Apple per festeggiare il decennale, una cosa veramente stucchevole.

A cominciare dal nome. Ma chissenefrega se il nuovo iPhone sarà chiamato iPhone 7s oppure 8 oppure X, il nome non cambierà di una virgola la mia propensione all’acquisto del nuovo modello, e soprattutto quella delle centinaia e centinaia di milioni di utenti che lo usano già, o che vorrebbero usarlo.

Però chiamarlo iPhone X sarebbe fuori luogo, Apple ha tolto da poco il suffisso X dal nome del sistema operativo del Mac (sigh!), e ora sarebbe pronta a reinfilarlo subito in quello dell’iPhone? Un po’ di fantasia, perbacco! A questo punto meglio chiamarlo iPhone XYZ, almeno ci si porta un po’ avanti con il lavoro (ed è più facile azzeccarci)…

E poi c’è il prezzo. Non si sa ancora niente di quanto costerà, ma sono mesi che si leggono lamentazioni sul prezzo “stratosferico” del nuovo iPhone.

Come se la concorrenza, Sambung in primis, non vendesse i suoi modelli di punta a prezzi analoghi, e non facesse di tutto per renderli, in appena uno-due anni (ammesso che non esplodano prima), così lenti e obsoleti da costringere letteralmente i suoi utilizzatori ad acquistare il modello più recente.

Comprare un iPhone è impegnativo dal punto di vista economico, ma se ci serve e se da un vero valore aggiunto a quello che facciamo, perché no? È comunque un costo che si può diluire su parecchi anni, e alla fine diventa molto più conveniente dei concorrenti. 1

Nn lo dico a caso. Uso ancora un iPhone 5c, ha quattro anni ma funziona ancora alla grande. Non potrò aggiornarlo ad iOS 11, pazienza, tanto non potrei sfruttare le nuove funzioni (quelle ormai le conosciamo quasi tutte, visto che le beta ufficiali di iOS sono disponibili da mesi). E in ogni caso, con l’attuale iOS 10.3.3 il mio iPhone va benissimo, e soprattutto non mostra quei rallentamenti e quei blocchi così frequenti dopo solo pochi mesi di utilizzo sugli smartphone Android di qualunque fascia di prezzo.

L’iPhone 5c è stato un ottimo acquisto, fa tutto quello che mi serve e lo fa in modo così semplice ed affidabile che so di potermi fidare ad occhi chiusi. Sono queste le cose che contano, molto di più del prezzo di acquisto (o del nome).

Non so se comprerò il prossimo iPhone, uno schermo più grande non mi dispiacerebbe, qualche nuova funzione di iOS mi potrebbe tornare utile. Ma se lo farò (o se non lo farò) non sarà certo per come si chiamerà.


  1. Sempre che non siamo fra quelli che devono avere tutte le ultime novità tecnologiche, per poi buttarle nel cassetto dopo qualche mese. 
Tagged with: , , , ,
Pubblicato su hardware

Una linea di codice

A proposito di programmazione, cosa si può fare con una linea di codice? A volte si può fare moltissimo, come dimostra questa singola linea di codice JavaScript.

    <pre id=p><script>n=setInterval("for(n+=7,i=k,P='p.\\n';i-=1/k;P+=P[i%2?(i%2*j-j+n/k^j)&1:2])j=k/i;p.innerHTML=P",k=64)</script>

Sono appena 128 caratteri, meno di un tweet, che però riescono a produrre questa bella immagine dinamica.

Ma come fa?

Alex Kras ha accettato la sfida e ha scritto un bellissimo articolo, Reverse Engineering One Line of JavaScript, in cui descrive il suo viaggio nei meandri di un codice solo apparentemente semplice.

È una splendida dimostrazione di capacità tecnica, sia di chi ha scritto il codice originale ma anche di chi si è dato tanto da fare per decodificarlo e per descriverne il funzionamento fin nei minimi particolari.

Capire tutti i dettagli dell’articolo non è facile, ma non credo che sia la cosa più importante. Ciò che importa è l’idea generale, è provare a mettersi nella testa di un programmatore per capire il suo modo di ragionare, è rendersi conto di quello che si può fare con una conoscenza più o meno approfondita di un linguaggio di programmazione (e delle basi matematiche che gli stanno dietro).

Il nostro codice non sarà mai così elegante e compatto? Che importa, l’importante è iniziare a provarci. Tanto si può solo migliorare.

Per la cronaca, questo è il codice finale dopo la decodifica.

    const DELAY = 64; // approximately 15 frames per second 15 frames per second * 64 seconds = 960 frames
    var n = 1;
    var p = document.getElementById("p");
    // var draw = "for(n+=7,i=delay,P='p.\\n';i-=1/delay;P+=P[i%2?(i%2*j-j+n/delay^j)&1:2])j=delay/i;p.innerHTML=P";
     
    /**
     * Draws a picture
     * 128 chars by 32 chars = total 4096 chars
     */
    var draw = function() {
        var i = DELAY; // 64
        var P ='p.\n'; // First line, reference for chars to use
        var j;
     
        n += 7;
     
        while (i > 0) {
     
            j = DELAY / i;
            i -= 1 / DELAY;
     
            let index;
            let iIsOdd = (i % 2 != 0);
     
            if (iIsOdd) {
                let magic = ((i % 2 * j - j + n / DELAY) ^ j); // < ------------------
                let magicIsOdd = (magic % 2 != 0); // &1
                if (magicIsOdd) { // &1
                    index = 1;
                } else {
                    index = 0;
                }
            } else {
                index = 2;
            }
     
            switch (index) { // P += P[index];
                case 0:
                    P += "p"; // aka P[0]
                    break;
                case 1:
                    P += "."; // aka P[1]
                    break;
                case 2:
                    P += "\n"; // aka P[2]
            }
        }
        //Update HTML
        p.innerHTML = P;
    };
     
    setInterval(draw, 64);
    

Incredibile, no?

I più volonterosi possono anche provare a giocare con il codice, modificandolo a loro piacimento. Si può ad esempio cambiare colore e dimensioni del testo, inserendo queste righe nella sezione CSS (e poi andando a leggere qui per capire perché).

#p {
    color: blue;
    font-size: 10px;
}

Oppure modificare le le strighe "p" e ".", rispettivamente alle linee 39 e 42 del codice JavaScript, per cambiare i caratteri mostrati sullo schermo. Ancora più interessante è variare il valore di DELAY nella prima riga del codice JavaScript e vedere l’effetto che fa.

Sembra solo un giochetto un po’ stupido, ma si impara a programmare (anche) così.

Tagged with: , ,
Pubblicato su programmazione

Cray-1 per approfondire

A conclusione di questa serie di articoli sul Cray-1 (Cray-1 il macina numeri, Cray-1 a confronto e Cray-1 saltare le conclusioni), qualche link utile per approfondire la conoscenza di questa macchina affascinante, una dei computer più significativi della storia.

Pagine web contenenti ulteriori informazioni sul Cray-1
CRAY 1.
The Cray-1 Supercomputer.
Cray Super Computers.
Cray-1 – the eight million dollar super-computer.
Original Cray-1 Supercomputer Unveiled in Seattle.
High Performance Computer Architectures: A Historical Perspective – The Cray-1

Articoli tecnici, ma piuttosto comprensibili, sul Cray-1
R.M. Russell, The CRAY- 1 Computer System, Communications of the ACM, vol. 21 no. 1 (1978).
J. S. Kolodzey, CRAY-1 Computer Technology, IEEE Transactions on Components, Packaging and Manufacturing Technology, vol. CHMT-4 no.2 (1981).

Una introduzione semplificata al Cray-1, che riprende in parte i due articoli precedenti
A. Hioki, The Cray-1 Supercomputer (2002).

Brochure di presentazione del Cray-1 e dei suoi successori
The Cray-1 Computer System.
The Cray-1 S Series of Computers.
The Cray X-MP Series of Computer Systems.
The Cray 2 Series of Computer Systems.

Manuali scannerizzati contenenti la documentazione originale del Cray-1
http://bitsavers.informatik.uni-stuttgart.de/pdf/cray/CRAY-1.

Emulatori del Cray-1
Emulatore in scala 1:10 del Cray-1.
The Cray simulator.
COS 1.17 disk image for Cray-1/X-MP.

E per finire una bella foto d’epoca, dove si vede un Cray-1 in fase di montaggio (che poteva durare settimane). La struttura alla base su cui il tecnico poggia il piede contiene il sistema di alimentazione e parte del complesso sistema di raffreddamento della macchina (il resto si trova nel pavimento). Alla fine del montaggio diventa un caratteristico sedile di pelle, una space di marchio di fabbrica dei supercomputer dell’azienda.

.

Tagged with: , ,
Pubblicato su hardware

Cray-1 saltare le conclusioni

Oops…! Troppe cose da fare, troppe distrazioni (in particolare in questi giorni di tarda, ma ancora infuocata, estate), e così succede di saltare completamente tutta la prima (lunga) parte delle conclusioni dell’articolo precedente. Eccole qui, e già che c’ero le ho riviste (ed estese) un po’.

Le conclusioni mancanti

Nell’articolo precedente, che mette a confronto le prestazioni del Cray-1 con quelle dei computer odierni, si è visto che un qualunque computer odierno è un mostro di velocità rispetto ad un Cray-1 e che persino un umile Raspberry Pi da poche decine di euro lo sopravanza di almeno 5 volte.

Ma se i nostri computer di oggi sono così veloci, perché abbiamo sempre l’impressione contraria e pensiamo sempre che stiano andando pianissimo? E perché dopo pochi anni diventano obsoleti?

Perché non è solo una questione di velocità di calcolo. Come già detto, i MFLOPS misurano la velocità di un computer nell’eseguire calcoli, ma sono assolutamente inadeguati a valutare le prestazioni delle altre componenti di un computer (RAM, scheda grafica, dischi rigidi, etc.)

Con i supercomputer questo parametro funziona benissimo, perché i supercomputer (come il Cray-1) sono fatti solo ed esclusivamente per fare calcoli. Anzi, il Cray-1 era tanto ottimizzato per il calcolo numerico puro da avere un hardware costruito specificatamente per quello e un sistema operativo minimale, fatto solo per gestire le varie componenti dell’hardware e l’esecuzione dei programmi. Tutto il resto, dall’avvio del sistema operativo del Cray all’interazione con l’utente, era gestito da un minicomputer esterno interfacciato alla macchina principale, la cosiddetta Maintenance Control Unit (MCU), lasciando libero il Cray-1 di occuparsi solo di quello che sapeva fare meglio, calcolare.

Ma in un computer c’è tanto altro, c’è la memoria RAM, c’è il sistema grafico (che oggi ha una importanza preponderante), ci sono le memorie di massa (come i dischi rigidi a stato solido o meccanici) e tutti questi componenti contribuiscono in modo profondamente diverso alle prestazioni generali e avvertite di un computer.

Ma tutto sommato l’hardware è il meno. In realtà ciò che ormai influenza di più la nostra valutazione delle prestazioni velocistiche di un computer è il software, il sistema operativo e le applicazioni che ci girano sopra.1

I sistemi operativi moderni sono mostri di complessità inestricabile, devono fare milioni di cose diverse e occupano gigabyte e gigabyte di spazio sui nostri dischi rigidi. Lo stesso, e persino peggio, per le applicazioni, sempre più gigantesche e sempre meno ottimizzate.2

Del resto, a che serve perdere tempo ad ottimizzare il codice? Molto più comodo presupporre che sia l’hardware a fare la sua parte: la nuova release del sistema operativo X o del programma Y è lenta? Colpa del computer, bisognerà prenderne un altro più moderno e veloce.

Ma siamo sicuri che tutto ciò sia necessario?

Ecco perché è utile, utilissimo, tornare alle basi, riscoprire lo spirito degli home computer degli anni ’80. Lasciar perdere il Mac (o il PC) sulla scrivania e provare ad usare un computer piccolo piccolo come il Raspberry Pi. Imparare a programmarlo e vedere l’effetto che fa, magari realizzando qualche progetto già esistente. E poi provare ad usare l’interfaccia a linea di comando invece di quella grafica, per accorgersi che tutto diventa improvvisamente scattante ed efficiente.

Con il Cray-1 (e non solo) hanno fatto calcoli pazzeschi, sfruttando al massimo l’hardware che avevano a disposizione e inventando trucchi geniali per superarne le limitazioni. Non è il caso di smettere di adagiarci fra i nostri comodi cuscini tecnologici e riscoprire le basi dell’uso del computer?

(continua…)


  1. Negli anni ’80-90 non era così, i dischi rigidi e le schede grafiche in particolare erano così lenti rispetto a processore e RAM da rallentare sensibilmente l’esecuzione dei programmi. 
  2. Se usate un Mac, lanciate iTunes, andate alla sezione delle app per iPhone/iPad ed elencatele per dimensione. Vi accorgerete che solo una minoranza di quelle che avete occupa meno di 10-20 MB (senza dati) e che parecchie, non solo giochi ma anche cose più serie, superano tranquillamente i 200 MB. Sul mio iPad l’aplicazione più grossa occupa ben 1.5 GB. E stiamo parlando di dispositivi mobili. Figuriamoci quanto sono grandi le applicazioni per il Mac! 
Tagged with: , , , , ,
Pubblicato su hardware
Informativa
Questo sito utilizza cookie di terze parti per inviarti pubblicità e servizi in linea con le tue preferenze. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie, clicca qui. Scorrendo questa pagina, cliccando su un link o su qualunque altro elemento o proseguendo la navigazione in altra maniera, acconsenti all'uso dei cookie.
Follow MelaBit on WordPress.com
Categorie
Archivi
%d blogger hanno fatto clic su Mi Piace per questo: