×

Ogni tanto..

.. mi sembrava un delitto passare per il mio blog quasi per caso e non aggiornarlo. I miei migliaia di visitatori giornalieri vorranno avere mie notizie!

Ecco qua un po’ di updates a casaccio:

  • Ho passato le selezioni territoriali delle olimpiadi d’informatica, intorno alla 20° posizione per punteggio. A Novembre devo andare a Verona a fare le selezioni nazionali.
  • Mi sono addentrato nel mondo della programmazione PSP. ho scoperto che hjanno fatto un portin dell’interprete Python per psp. Sto scrivendo un gioco. Sta uscendo abbastanza bene
  • Un giorno che non sapevo che accipicchia fare mi sono registrato su sourceforge ed ho deciso di joinare un progetto. Ho scelto radakan [sf]. Sto imparando un sacco di cose.
  • Mi sono cancellato da facebook
  • Ho ripreso a leggere. Al momento sto leggendo “Se questo è un uomo” per scuola, “Il tesoro di Gengis Khan” per mio conto.
  • Tra il tempo che passano al pc, quello che passo dormendo (sempre più) e quello che passo leggendo libri non trovo più tempo per leggere Topolino. Continuano ad accumularsi (sono abbonato), ormai ne avrò una decina da leggere..

xorg 2.6 e intel

Ho abilitato tempo fa il repository testing su arch (E si, sono passato ad arch anche sul fisso) il quale qualche giorno fa mi ha fatto installare (dando pacman -Syu) il nuovo xorg (2.6) ed anche i nuovi driver intel.. Questi aggiornamenti a me hanno creato molti problemi: quando funzionava andava tutto malissimo (compiz laggava tantissimo mentre coi driver vecchi filava perfettamente) ed oggi non si avviava proprio X..
Ho reinstallato il vecchio xorg-server, xf86-input-evdev, xf86-input-mouse xf86-input-keyboard, xf86-video-intel ed è tutto tornato alla normalità.

Prima di installare il nuovo xorg coi nuovi driver intel preparatevi… probabilmente avrei potuto risolvere i problemi ed ottenere prestazioni migliori di prima, ma in questo periodo non ho proprio voglia di smanettare, quindi ho scelto la via facile.

Eee PC

Ed ecco il primo post dal mio nuovo EeePC 900A!

Xandros non è certo il massimo, ma non è nemmeno così male come avevo sentito dire. La barra spaziatrice fa un po’ i capricci.. per il resto tutto ok, almeno per ora!

Olimpiadi Informatica - Selezione Scolastica - Aggiornamento

Ho passato la selezione scolastica, secondo con 36 punti su 40, due risposte errate (entrambi errori un po’ assurdi =/).

Ad Aprile devo fare le selezioni regionali (selezioni territoriali a dire la verità), nel frattempo la scuola mi paga questo corso: Dall’idea al programma.

The Big Bang Theory

Ormai mi sono davvero appassionato di questa serie. Divertente, bizzarra, nuova.

http://it.wikipedia.org/wiki/The_Big_Bang_Theory

Con tantissimi colti e divertenti riferimenti ed citazioni dal mondo della fisica (Come il costume da effetto Doppler di Sheldon, uno dei personaggi principali) e da quello nerd (Star Wars, Battlestar Galactica, fumetti, MMORPG, Halo ecc.), è probabilmente la serie che più mi piace.

Attualmente stanno trasmattendo in America la seconda stagione, mentre in Italia su Steel stanno trasmettendo la prima, ma vi sconsiglio di vedere la versione doppiata in Italiano: come spiega bene questo articolo spesso il doppiaggio è orrendo poiché la maggior parte dei riferimenti al mondo nerd sono cancellati, sostituiti con pezzi di tutt altro umorismo, sicuramente di livello inferiore.

Il mio consiglio: Scaricatevi le puntate da torrent (sono 175MB a puntata) e i sub in Italiano da qui, divertimento assicurato!

Olimpiadi Informatica - Selezione scolastica

Oggi sono andato a svolgere la selezione scolastica delle olimpiadi d’informatica.

Ero un po’ preoccupato, dato che pensavo dovessimo fare subito quello che si fa dalle selezioni regionali in poi, ovvero danno il testo di un problema che noi dobbiamo risolvere scrivendo un programma adatto, eppure per questa selezione scolastica il ritrovo era in un’aula senza computers, il che mi aveva portato a pensare che dovessimo fare qualche oscenità tipo scrivere il programma in penna su un foglio di carta :|.

Vado comunque insieme al mio compagno nell’aula (io e il mio compagno gli unici due di terza, l’altra ventina di ragazzi era di quarta), ed una volta lì ricomincio a sperare in un qualcosa di serio, dato che il prof che gestiva il tutto è davvero uno molto in gamba e capace. Ed effettivamente la prova mi è piaciuta molto. Era divisa in due parti: una logico-matematica ed una di programmazione.

Gli esercizi logico-matematici erano esercizi del tipo:

C’è una paninoteca nella quale fanno scegliere al cliente quali ingredienti mettere nei panini. Ci sono 5 ingredienti, ognuno dei quali può essere messo nel panino o meno indipendentemente dagli altri, basta che nel panino ci sia sempre almeno un ingrediente.

Quanti panini diversi si possono creare?

Se pensiamo che ogni ingrediente può essere messo o meno, possiamo associare subito quest’idea al sistema binario. Ogni bit indica un ingrediente, 1 indica che l’ingrediente è presente, 0 che non è presente.

Le diverse combinazioni possibili saranno quindi:

00000

00001

00010

00011

00100

00101

.. e così via, per un totale di 2^5 combinazioni, ovvero 32. Ma dato che ci deve essere sempre almeno un ingrediente dobbiamo scartare 00000, le combinazioni possibili sono quindi 31.

gli esercizi di programmazione erano invece principalmente esercizi nei quali bisognava comprendere cosa faceva un determinato programma o una funzione, per esempio:

si consideri la funzione:

int foo(int x) {

if ( x == 1): return 1;

else: return foo(x - 1) + 2*x -1

}

Cosa ritorna la chiamata foo(10)?

In questo esempio la funzione ricorsiva non fa altro che calcolare il quadrato di un numero, per cui ritornerà 100.

(infatti, se consideriamo y come il nostro argomento possiamo dire che: y = x + 1 -> y^2 = x^2 + 2x + 1 = x^2 + 2 * (y - 1) + 1 = x^2 + 2y - 1, ovvero esattamente la formula della funzione, come vedete non è magia ;))

Io il mio compagno ed un altro che non conosco eravamo gli unici ad eseguire la prova per il linguaggio C/C++ (poiché siamo autodidatti), mentre tutti gli altri hanno scelto Pascal, dato che è l’unico linguaggio che insegnano a scuola, ed non avevano ancora fatto la ricorsione: per questo noi autodidatti eravamo molto avantaggiati :D

Penso la prova mi sia andata molto bene, non ho trovato nessun problema particolarmente difficile, anche perchè i quesiti logico-matematici erano molto simili a quelli che faccio ogni anno, da ormai 4 anni, delle olimpiadi di matematica.

Alle fasi regionali passano i primi due, spero di essere tra quei due.

Di seguito vi scrivo qualche altro quesito che mi ricordo con le relative soluzioni.

  1. Piero oggi compie gli anni. La zia lo vede ed esclama: “Come sei diventato alto” - “già, sono alto, in centimetri, 12 volte la mia età, e pensa che 3 anni fa ero alto 13 volte la mia età, e nel frattempo sono cresciuto di 24 centimetri”. Quanti anni compie oggi Piero?
  2. Marco si mette a contare sulle dita nel seguente modo: 1 sul pollice, 2 sull’indice, 3 sul medio, 4 sull’anulare, 5 sul mignolo, 6 sull’anulare, 7 sul medio, 8 sull’indice, 9 sul pollice, 10 sull’indice e così via. Su che dito si troverà il numero 2008?

Soluzioni:

1: 15. Si poteva impostare matematicamente il problema nel seguente modo: rappresentiamo l’altezza con y e l’età con x:

y = 12x;

y - 24 = 13(x-3) -> 12x - 24 = 13x - 39 -> x = 15.

infatti: 15 * 12 = 180

12 * 13 = 156

180 - 156 = 24

2: sull’indice. Per trovare su che dito si troverà un qualsiasi numero basta dividere il numero per 8 e guardare il resto: se è 1 il dito è il pollice, se è 2 o 0 l’indice, se 3 o 7 il medio, se 4 o 6 l’anulare, se 5 il mignolo.

N.B. Le soluzioni sono mie soluzioni che ho trovato oggi, molto probabilmente sono corrette, ma ci potrebbe essere qualche errore o magari non ho compreso bene il testo del problema, quindi potrebbero anche essere sbagliate.

Incredibile?

Sabato scorso ho visto, ed hanno visto anche un centinaio di ragazzi della mia età, una scena apparentemente strana:

Due uomini in piedi sul tetto di un bus, con una motosega in mano, ed attorno al bus tanti uomini vestiti si giallo fosforescente, eppure nessun ragazzo tra quelli che ha visto la scena era particolarmente stupito.

Sapete dare una spiegazione? :P

e-Socrates. Il sapere libero.

Oggi ho trovato davvero un bel portale: e-Socrates.

Dalla home:

What does e-Socrates.org do?
e-Socrates.org aims to create the best free Moodle hosting service for everyone who wants to do e-learning activities. If you want to create a course, login or create a new account and fill a course request, you’ll have the full moodle power in your hands, without restrictions of any kind! You’ll also be able track your students subscriptions setting a password for the course enrolment.

And what about ethic?
This is THE question, as you may know we strongly believe that knowledge is a whole humanity’s heritage (that’s why we created the e-Socrates.org community). When you create a course within e-Socrates you always allow website visitors the right to read your contents, you can prevent them from subscribing as students but you can’t prevent them from accessing the material. This is the only “fee” we ask teachers in change of the free hosting service.

il portale è nato in Italia, grazie ad un’idea della CreaLabs, ed al momento conta 67 corsi in Inglese ed 46 in Italiano, più corsi in altre lingue.

Un progetto che merita senza dubbio di essere pubblicizzato!

Kernel Ricompilato

Ho appena ricompilato il kernel, ora utilizzo il 2.6.27.5 ottimizzato per la mia configurazione hardware. Ho dovuto ricompilarlo 4 volte, perchè ogni volta dimenticavo di compilare staticamente qualche componente essenziale, ma alla fine ci sono riuscito ed finalmente ho un kernel “tutto mio”.

I vantaggi? I tempi di boot sono passati da circa 45-55 secondi a 20-30, ed il sistema in generale risponde meglio, senza contare che supporta di default la mia chiavetta wireless (Belkin F5D7051) senza dover utilizzare ndiswrapper! http://kernel.xc.net/html/linux-2.6.27/x86/USB_NET_RNDIS_WLAN

Ho fatto una configurazione proprio su misura, ma io non sono tipo da frequenti aggiornamenti hardware quindi non dovrei avere particolari problemi. E se proprio serve, ho sempre il kernel di default selezionabile all’avvio da grub ;)

Problemi con la partizione swap

Nel post precedente vi avevo detto che avevo aggiornato ad Intrepid Ibex ed ne ero rimasto molto soddisfatto poichè non avevo riscontrato problemi.

Oggi ne ho avuti.

Ieri sera spengo il pc, vado a letto, dormo. Vado a scuola. Torno a casa ed accendo il pc:

La barra di caricamento di Ubuntu si blocca nella parte iniziale. Premo ctrl + alt + F1 e leggo:

kinit: No resume image, doing normal boot.

E rimane così per circa 2 minuti. Dopodichè si sblocca all’improvviso, riprende la sequenza di boot e dopo qualche manciata di secondi mi ritrovo il mio desktop pronto.

Googlando un po’ vedo che è un problema abbastanza diffuso e trovo svariate soluzioni, dalle più semplici (come sudo apt-get install ubuntu-desktop o sudo update-initramfs -u) a soluzioni di 6-7 passaggi non altrettanto semplici.

Comunque alla fine unendo un po’ di soluzioni ne ho trovata una che ha funzionato per me: ho però di fatto unito comandi di “guide” diverse, potrei quindi aver eseguito qualche passaggio inutile che non serve al risultato finale.

Comunque penso (non ne sono sicuro) che il problema fosse che la mia partizione di swap non si attivava all’avvio (il comando top mi restituiva swap: 0 total, 0 free, 0 used, <tot> cached e il comando sudo swapon -s non ritornava niente) e che l’uuid di tale partizione segnato in /etc/fstab e in /etc/initramfs-tools/conf.d/resume era sbagliato.

I passi che ho eseguito per risolvere:

Primo: Ho installato gparted (stranamente non è presente di default o,o): sudo apt-get install gparted

Secondo: Avviare gparted (Sistema -> Amministrazione -> Editor di partizioni o gparted da terminale), e guardate quale partizione vi segna come partizione di swap: nel mio caso è /dev/sda5. tasto destro sulla partizione e cliccate su Attiva swap

Terzo: in un terminale, dare il seguente comando: sudo mkswap /dev/sda5 ovviamente sda5 va sostituito

Controlliamo che ora la partizione swap funzioni: sudo swapon -s dovrebbe ritornarvi una riga che inizia con /dev/sda5

A questo punto, sistemiamo il problema degli uuid. Come prima cosa otteniamo quello reale della nostra partizione di swap: sudo vol_id -u /dev/sda5 (non devo dirvi ogni volta di sostituire sda5 con la vostra partizione di swap, vero?)

Segnatevelo.

Ora, apriamo il file /etc/fstab : gksu gedit /etc/fstab (questo è il comando per avviare l’editor di testi predefinito, se ne volete uno nel terminale date sudo nano o sudo vim) e guardiamo la riga di dev/sda5 che nel mio caso è:

# /dev/sda5
UUID=06e20bb2-5849-452f-b38f-50dd5ffa6746 none  swap  sw  $

Al posto dell’uuid trovato inseriamo quello preso in precedenza.
Facciamo la stessa cosa col file /etc/initramfs-tools/conf.d/resume:

RESUME=UUID=06e20bb2-5849-452f-b38f-50dd5ffa6746

Cambiamo l’uuid e salviamo.

A questo punto diamo il comando sudo update-initramfs -u (ricrea il file initrd) e dovremmo essere a posto!

N.B. Non sono tipo che elenca una serie di comandi e dice “scrivete questo, quello e premete invio”. In genere cerco di spiegare alla gente quello che sta facendo. Se trovate che la mia sia stata un po’ una lista di comandi senza spiegazioni, non me ne vogliate: il post sarebbe diventato un po’ troppo lungo ed inoltre non conosco bene alcuni dei comandi io stesso, quindi non sono certo la persona più adatta a spiegarvene il significato. Se avete dubbi potete comunque dare un “man <comando>” che vi mostrerà una guida introduttiva al comando. E se anche questo non sazia la vostra sete di sapere, internet è piena di guide di tutto.