Feeds:
Posts
Comments

Posts Tagged ‘linux’

Due premesse sono necessarie a questa review: la prima è che sono lievemente biased dal fatto che l’hardware che ho nel Mac è il più potente tra i miei computer, quindi per alcune cose probabilmente quoto questo computer più di quanto valga veramente (rispetto ad un PC equivalente); la seconda è che l’esperienza d’uso non è e non può essere generica, ma deve per forza essere legata a quanto faccio nel mio dottorato (dettagli a seguire).

Ormai da alcuni mesi sono utilizzatore full-time (cioè almeno 5 giorni a settimana) di un MacBook Pro 15″ i7 cazzi e mazzi, che è capitato più o meno per caso nel mio ufficio e che sto quindi usando principalmente per lavoro. Ora, essendo io hard-core Linux, si potrebbe supporre che ci abbia installato subito una distribuzione a caso e non abbia fatto altro che riconfigurare il tutto con l’amato pinguino. Ebbene, la risposta è: no (e so che a qualcuno piange il cuore per questo…). Sinceramente, era diverso tempo che volevo testare Mac OS X, e quale migliore occasione di usarlo sul serio in un contesto lavorativo, per verificarne pregi e difetti rispetto a Linux ed a Windows… quello che segue è un resoconto di quest’esperienza (non in ordine temporale, non ho preso appunti in merito).

L’hardware

Devo per forza spendere due righe per dire che questo Mac è il mio computer più potente, come anticipato: ha un i7 4 core (8 con la virtualizzazione/hyper threading/whatever) ed una Nvidia come scheda video; l’hard disk è normale (non SSD, purtroppo) con 750 GB di spazio, in sostanza veramente un saaaacco di spazio (non sto cancellando praticamente nulla da 4 mesi…). Lo schermo va a 1680×1050, una discreta esagerazione dato che la prima manovra che ho fatto è stata aumentare la dimensione dei caratteri; per questo, nota a margine, trovo piuttosto inutile che i nuovi Mac abbiano risoluzioni assurde: se siete fotografi probabilmente vi piaceranno tanto, per qualunque altro uso non servono assolutamente a niente.

L’hardware, in sostanza, mi piace come potenza: poter lanciare make -j 8 ha il suo fascino, così come giocare a Urban Terror a 1680×1050 (inutile, ovviamente, su un motore grafico che ha 14 anni); il primo The Witcher gira ovviamente meglio qui che sul mio Dell, ma questo era prevedibile.

Agigungo, infine, che il touchpad di questo computer è semplicemente perfetto: mi scoccia un po’ il modo di fare click destro, che ogni tanto non mi riesce al primo colpo, ma per il resto è assolutamente ottimo e dopo un po’ che si utilizzano le gesture, vi verrà da farle anche sul vostro PC; lo scrolling “al contrario” di Mac OS X Lion è, per quanto mi riguarda, decisamente più intuitivo di quello standard (nota che criticavo da fuori, ma fino a che non lo provi non lo puoi giudicare), tant’è che dopo una giornata di utilizzo ho convertito a questa modalità tutti i miei PC. Forse questo scrolling è lievemente strano in un mouse esterno con la rotellina, ma se mi sono abituato così bene e così facilmente, pur dopo tanti anni di utilizzo dell’altra modalità, mi vien da dire che forse gli ingegneri di Apple avevano ragione (almeno in questo caso).

La batteria mi delude: non credo vada oltre le due ore e mezzo circa, che è quanto mi dura sul Dell con Linux, e sinceramente speravo in molto di più; in compenso, il Mac ha la ripresa dalla sospensione più rapida che la storia ricordi, e questo non è affatto male (vero, Linux?).

Il software

La summa, che anticipo subito, è che se Windows è praticamente inutilizzabile da informatico (a meno che non sviluppiate solo ed esclusivamente per Windows stesso, leggi: .NET), e Linux è invece perfetto da informatico, visto che avete il pieno controllo del mezzo, Mac OS X è esattamente la via di mezzo: è uno unix, quindi le cose che contano funzionano (i.e., killall), se volete fare operazioni “domestiche” non dovete fare salti mortali carpiati (ad esempio, guardare rai.tv, usare il microfono integrato senza impazzire con pulseaudio), se invece dovete lavorare a livello “più basso”, diventa un inferno.

Ma andiamo con ordine: le operazioni “domestiche”, quindi dal semplice browsing (ovviamente dopo aver installato un browser serio(TM)) all’ascolto di musica, alla visualizzazione di documenti et similia, funzionano direi in modo seamless, con le applicazioni correttamente integrate tra loro e con tutto l’insieme discretamente curato; i programmi che contano qualcosa in questo scenario funzionano out-of-the-box (vedi Skype, con webcam, microfono etc). Ciò che spesso mi lascia interdetto sono alcune piccole rifiniture, che trovo piuttosto silly:

  • non c’è taglia ma solo copia, se volete muovere le cose dovete trascinarle di cartella in cartella, con ogni tanto Finder che decide di aprire una nuova finestra senza motivo
  • Finder non ha i tab (!!!), come si possa oggi come oggi pensare ad un programma senza tab, francamente non lo capisco (perfino Filezilla ha i tab, e non dico altro…)
  • iTunes decide di ordinare le cartelle come vuole lui e non come voglio io, ad esempio creando 12 cartelle diverse per lo stesso album, se ci sono collaborazioni tra l’artista principale ed altri secondari (come in Thriller); forse c’è un’opzione per impedirglielo, ma vabbè… preferisco un approccio alla Amarok sinceramente
  • lo scroll non funziona in vim/less nella shell, o meglio lo scroll “scrolla” la finestra della shell e non il documento che avete aperto ad esempio in vim; non esistono il tasto pagsu, paggiù, inizio e fine riga, che rendono un incubo il navigare nella shell stessa (salvo usare combinazioni strambe, tipo ctrl+f per simulare paggiù)
  • il f***uto tasto Cmd: non ha alcun senso usare quello invece di Ctrl, come fanno tutti gli altri, ed oltretutto è in una posizione diversa, dove in genere nelle tastiere normali c’è Alt; morale: ogni volta che usate un PC, tenterete una scorciatoia con Cmd + qualcosa, che inevitabilmente diverrà Alt + qualcosa, e farà tutt’altro
  • se installate X (essenziale per cose come Matlab, Inkscape, Gimp), le scorciatoie tornano normali. Questo vuol dire che in una finestra dovete usare Ctrl, in un’altra Cmd, a seconda dell’applicazione del momento
  • sento parecchio la mancanza del solo tastiera di Linux: in Linux, infatti, riesco a fare tutto da tastiera; qui ogni tanto bisogna andare al mouse piuttosto che al touchpad, il che è chiaramente scomodo; ammetto di non conoscere tutte le scorciatoie da tastiera, ma temo avrebbero il solito Cmd di mezzo (sì lo so, questo punto sa più di scusa, eh purtroppo…)
  • esiste questo fantomatico inglese internazionale, che decide di accoppiare gli apostrofi con le vocali che seguono e transformarvele in accenti (se avete una tastiera non italiana), questo più o meno in tutte le applicazioni, e l’unico modo di disattivarlo (grazie Domenico!) pare sia passare ad inglese uk (o usa), dato che questa sostituzione automatica di fatto rende inusabile il computer (forse viene eseguita anche nella shell, ma dovrei controllare per esserne certo, e nel caso sarebbe veramente un’assurdità d’altri tempi, come se qualcuno dovesse scrivere accenti nella shell)
  • Office ha una versione a parte, quindi la mia licenza originale di Office Student edition è carta straccia.

Le cose serie

Quando poi si deve lavorare, iniziano le bestemmie: io per il mio lavoro ho bisogno di cross-compilare parecchio, per installare varie e variegate micro-distribuzioni di sistemi operativi su dispositivi “piccoli” (OpenWRT, piuttosto che TinyOS); nel fare questo, Mac OS X sembra quasi andare contro la sua natura di unix e complica immensamente le cose.

Tanto per cominciare, la struttura delle directory lascia il tempo che trova, e fa sì che trovare ad esempio la directory di installazione di Java non sia affatto banale (e vi serve per compilare librerie con JNI); come se non bastasse, il fatto che il sistema operativo sia a 64 bit non è così chiaro come sembra (emblematico che uname -p ritorni i386…), e spesso alcune cose vengono riconosciute con il numero sbagliato di bit quando le compilate… ah, 32 bit in Mac si chiamano universal, non 32 bit.

Progetti come MacPorts o altri (che non ho mai usato) permettono di compilarvi il solito software di cui avete bisogno, mettendolo in una cartella a parte nel sistema ed automatizzando un po’ parte del lavoro; quando però vi scaricate OpenWRT ed iniziate la compilazione della toolchain, emergono tutta una serie di complicazioni più o meno insulse: alcuni Makefile non trovano le librerie di base, perchè per qualche oscuro motivo non includono /usr/include, o in altri casi non includono la directory giusta di MacPorts, o si basano su uname per capire in che sistema si trovano, e come detto alcune opzioni falliscono… per non parlare di quando alcuni software si compilano a 32 bit ma non a 64 (o viceversa), e lì è necessario reinstallare alcune dipendenze nella versione giusta.

Ogni tanto scoprite che il gcc installato da MacPorts non compila certe cose, e dovete usare quello installato da XCode, o viceversa, e naturalmente il messaggio di errore che ottenete in compilazione è più o meno random e di certo non vi spiega cosa ci sia che non va realmente.

TinyOS, per fare un ultimo esempio, non va proprio: la versione ultima di nesc è esplicitamente riconosciuta come non compatibile con il Mac, quindi bisogna andare di macchina virtuale.

Tirando le somme

Al momento non mi vengono in mente altri esempi da fare, perciò tirerò le somme: al momento sono ancora con Mac OS X in questo computer (anche se un paio di volte sono stato molto vicino a mettere Linux (ovviamente ripartizionare è un incubo, e per farlo avete bisogno di un disco con Windows, e non dico altro…)), e dopo essermi abituato a quasi tutte le sue idiosincrasie, penso lo lascerò (ma potrebbe succedere qualcosa ad agosto… non ho ancora deciso del tutto…); se ad oggi dovessi comprarmi un computer mio (quindi non pagato da terzi), comprerei un PC e metterei Linux, per me non credo prenderei un Mac: mi mancano la libertà totale di installare cose dove dico io e come dico io, mentre apprezzo la possibilità di usare facilmente altre cose senza dover cercare configurazioni esoteriche, ma il primo aspetto batte il secondo nel guidare un’eventuale scelta.

Per quanto riguarda il futuro, sono livemente preoccupato dal fatto che Apple cerchi di avvicinare sempre di più Mac OS X ad iOS: temo che se la gabbia dorata del Mac cominci ad assomigliare a quella di iOS, bisognerà abbandonare la nave, e con una certa rapidità…

Read Full Post »

News flash: le USB parrebbero funzionare correttamente con l’ultimo update del firmware di Carambola.

Come avevo anticipato due giorni fa, ho scaricato l’update del firmware di Carambola ed ho ricompilato il tutto ieri (operazione non brevissima, dato che sono cambiate sia le versioni di gcc che di uclibc in uso, e questo ha implicato una ricompilazione a due passi di praticamente tutta la toolchain), ed ho fatto immediatamente un test con una chiavetta USB: viene riconosciuta tranquillamente, montata correttamente ed ho anche provato a creare qualche file o eseguire codice Erlang senza alcun problema o errore (e senza usare alcun hub).

Ora, è necessario qualche altro test intensivo, ma se tanto mi dà tanto, forse ci siamo…

P.S.: giusto per essere fair, l’unica altra spiegazione che posso dare è che la chiavetta testata ieri era diversa da quella che avevo provato in precedenza, e “di marca” (mentre l’altra era regalata ad una conferenza); non so se questo possa influire in maniera così decisa, ulteriori test vaglieranno tutte le ipotesi sul tavolo.

Read Full Post »

Avevo promesso un breve update su Carambola, e quindi eccolo qui.

Dico “breve” per il semplice motivo che non ho fatto molti esperimenti fino ad ora: la maggior parte del tempo l’ho infatti spesa per cercare di far funzionare la versione 15B di Erlang sul sistema OpenWRT installato sulla scheda, operazione che posso assicurarvi non è stata completamente banale causa limiti di spazio sulla flash (8 MB sono veramente pochi!) e necessità di patchare la nuova release (sorvolando sui problemi di cross-compilazione con il nuovo Mac che sto usando per lavoro), e per provare i pin GPIO presenti sempre sulla scheda stessa.

Il giudizio complessivo che posso dare ora come ora è il seguente: voto 6.5 in crescendo. Questo perchè:

  • lato connettività, direi che non ci sono particolari problemi: non ho provato le porte wired, se non per fare aggiornamento del sistema, ma con la connessione WiFi ho creato addirittura reti ad-hoc senza nessun problema (se non capire bene che parametri inserire nei file di configurazione). Certo, i chip scaldano abbastanza… sarebbe interessante capire se spegnendo la wireless scalda di meno, dato che magari in un contesto in cui si tiene la scheda collegata ad un router per far girare qualcosa tipo torrent o un mini-serverino (VPN et al.), potrebbe essere una possibilità concreta (in fondo sono gli usi tipici che si fanno con router riprogrammabili con OpenWRT, e ricordo che la Carambola ha di fatto un set hardware di quel tipo)
  • lato connettività hardware (GPIO, SPI, I2C etc), scarseggiamo discretamente: far funzionare i GPIO è in realtà piuttosto semplice (la modalità più facile è leggendo e scrivendo il device /dev/gpio), ma abilitarli non è facile e/o chiarissimo, dato che il chip RT3050 ha i pin che possono funzionare secondo diverse modalità; esistono alcune guide sulla Wiki o sul forum, ed un tool che è necessario scaricare per scrivere alcuni valori nei registri del microprocessore, ma la cosa resta non banale. Con SPI e I2C sembrano esserci un po’ di ritardi lato software, non è chiarissimo se le cose funzionano o meno: in particolare, con SPI pare che le velocità siano discretamente lente. Le cose non vanno meglio con le USB, dove pare che l’hub integrato nella devboard non riesca a reggere benissimo ad alcuni picchi di potenza; pare in realtà che il problema si risolva usando uno hub esterno, il che se risolvesse il problema sarebbe decisamente interessante, vedi punto successivo; non ho ancora testato questa ultima soluzione, ma mi ripropongo di farlo al più presto
  • lo spazio su disco è veramente poco (almeno, per i miei usi): chiaramente, la memoria flash interna viene usata solo per installare i programmi, ma ce ne stanno veramente pochi; per questo, sarebbe molto importante far funzionare la presa USB, anche come repository per applicazioni tipo server Web/FTP/p2p, magari collegando addirittura hard disk esterni (meglio se anche alimentati esternamente, penso)
  • recentemente gli sviluppatori hanno rilasciato una 2.0 del software: l’ho scoperto oggi, ho ricompilato mezzo mondo ed ora ho un’immagine pronta da testare, vedremo se ci sono stati dei benefici…

Ora, ho scritto “in crescendo” perchè alcuni dei problemi riportati qui sopra si stanno risolvendo (anche se mooolto lentamente) soprattutto sui forum, dove se non altro gli sviluppatori hw/sw intervengono spesso e volentieri per aiutare gli utenti, ed il forum stesso inizia ad essere un po’ più frequentato rispetto a qualche mese fa; resta comunque un device utile all’interno di un progetto che seguo nell’ambito del mio dottorato, quindi continuerò ad usarlo e non appena ho qualche statistica ed opinione più ampia non esiterò a pubblicarla (ad un certo punto spero infatti di raggiungere una release stabile del software di cui ho bisogno, così da potermi concentrare nell’uso della scheda invece che nell’uso della sua toolchain di compilazione!).

Peraltro, sto giusto pensando di acquistarne una seconda “ad uso privato”, con tanto di scatola, da usare a casa come piccolo database per salvare dati da sensori…

Read Full Post »

If, someday, your Intel-equipped computer should stop having OpenGL working in the X session, it may be due to the (completely useless) installation of NVidia/ATI drivers… so, open a shell and type in as follows:

sudo apt-get purge nvidia*
sudo apt-get purge fglrx*
sudo apt-get install –reinstall xserver-xorg-video-intel libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core
sudo dpkg-reconfigure xserver-xorg
sudo update-alternatives –remove gl_conf /usr/lib/nvidia-current/ld.so.conf

Read Full Post »

Carambola

Carambola

Habemus Carambola! Non ho ancora avuto tempo di metterci le mani dentro (salvo un boot di test), ma intanto è lì. Ricordo le specifiche:

  • processore MIPS @ 320 MHz (Ralink RT3050)
  • 32 MB RAM
  • 8 MB flash
  • 2 porte Ethernet
  • Wifi
  • 20 GPIO
  • USB host

Read Full Post »

SooperLooper è un simpatico programmino per Linux, compatibile con Jack, che permette di registrare loop e riprodurli istantaneamente; è piuttosto utile quando volete suonare qualcosa ad esempio con una chitarra, ma ha ovviamente il difetto di aver bisogno di un supporto hardware con cui attivare la registrazione, dato che se state suonando avete probabilmente le mani occupate.

Bè, nulla di più facile: basta avere un pedale “vergine” (come quelli per il sustain delle tastiere), che generalmente ha un’uscita con un jack da 6.3″, da collegare (con un circuito piuttosto semplice, in cui il pedale di fatto funge da interruttore) ad un Arduino. A questo punto, con una decina di righe di codice ed il firmware MIDI, l’Arduino stesso sarà in grado di trasmettere i messaggi CC giusti al looper, che ad ogni pressione del pedale avvierà alternativamente la registrazione di un loop o la sua riproduzione.

Nel video vedete un esempio del circuito e del looper (escludendo un momento di defiance del tutto nella parte centrale, forse dovuto alla poca pressione che si esercita con una mano rispetto ad un piede); non ho una chitarra con me, ma l’insieme nel complesso sta comunque funzionando correttamente.

Read Full Post »

Personalmente amo Android da quando ha trasformato il mio cellulare da “quella cosa irritante che devo portare in giro perché mia moglie possa raggiungermi” in “un pezzo di elettronica realmente utile con cui posso controllare la mia email”. Odio davvero parlare con le persone al telefono, ma una piattaforma mobile per rimanere in contatto attraverso vie differenti è qualcosa di grande. Inoltre avere a disposizione un po’ di videogame per i voli lunghi non è affatto male. Comunque ciò che è veramente importante in merito all’open source è il fatto che Google non abbia alcun bisogno del mio aiuto. Che mi piaccia il mio telefono Android è un fatto relativamente irrilevante. Potrebbero usare Linux indipendentemente da ciò che penso, la cosa giusta da fare, e migliorarlo nel modo che preferiscono. E’ questo l’importante, non Google ed Android. Il fatto che che ognuno possa usare Linux per i propri scopi e possa modificarlo nella direzione che preferisce è importante, come il fatto che non debba chiedere il permesso o firmare un accordo di riservatezza o pagare qualcun’altro. L’Open Source funziona se giochi alla pari con gli altri giocatori, altrimenti no. Ciò è un bene, favorisce una vera competizione sul mercato. Nessuno può fermare gli altri quando tentano di migliorare le cose.

(Intervista completa su Wired.it)

Read Full Post »

Anche quest’anno ho partecipato al LinuxDay, finalmente tenutosi in sessione congiunta da tante associazioni per il software libero di Milano, tra cui naturalmente il POuL; ho avuto anche il piacere di tenere un talk introduttivo a LaTeX, in parte ispirato a quanto già mostrato qualche mese fa in occasione della conferenza su LyX che abbiamo fatto al Politecnico. Ripropongo qui le slides aggiornate.

Read Full Post »

Anche quest’anno ho dato un (piccolo) contributo ai Corsi Linux organizzati dal POuL, introducendo agli studenti KDE; ecco di seguito le slide che ho preparato (tutte le immagini sono tratte dai siti kde.org e satelliti).

Read Full Post »

Linus Benedict Torvalds
Aug 26 1991, 2:12 am

Hello everybody out there using minix -

I’m doing a (free) operating system (just a hobby, won’t be big and
professional like gnu) for 386(486) AT clones.  This has been brewing
since april, and is starting to get ready.  I’d like any feedback on
things people like/dislike in minix, as my OS resembles it somewhat
(same physical layout of the file-system (due to practical reasons)
among other things).

I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work.
This implies that I’ll get something practical within a few months, and
I’d like to know what features most people would want.  Any suggestions
are welcome, but I won’t promise I’ll implement them :-D

Linus (torvalds@kruuna.helsinki.fi)

PS.  Yes – it’s free of any minix code, and it has a multi-threaded fs.
It is NOT portable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that’s all I have :-(  .

Read Full Post »

Older Posts »

Follow

Get every new post delivered to your Inbox.

Join 116 other followers