Visualizzazione post con etichetta programmazione. Mostra tutti i post
Visualizzazione post con etichetta programmazione. Mostra tutti i post

13/01/08

vim e programmazione in C

Con l'inizio dell'universita' ho iniziato a fare qualche programmino in C: qualche tempo fa avevo gia' segnalato Code::Blocks, un IDE (Integrated Developement Environment) molto valido, ma con il tempo mi sono reso conto che lo strumento piu' veloce e immediato per programmare e' un semplice editor di testo, cui affiancare ovviamente il compilatore gcc.

Questo chiaramente vale per i programmi di minima complessita' con cui ho a che fare; forse per progetti imponenti, un IDE puo' essere utile.




All'interno del vasto panorama di editor disponibili (e in particolare nell' ambito dell'editor war fra Vim e Emacs :D) ho deciso di utilizzare Vim (Vi IMproved).
Dopo essermi fatto un giro con vimtutor , un tutorial che permette di conoscere i comandi principali di vim, sono passato alla personalizzazione del file di configurazione di vim in modo da renderlo piu' comodo per la programmazione, abilitando l'autoindentazione e l'evidenziazione della sintassi.

Per prima cosa, se si usa Ubuntu (o Debian suppongo) bisogna installare la versione "completa" di vim, perche' di default e' installata una versione ridotta (vim-tiny), priva di queste funzionalita'.
A questo punto bisogna modificare con l' editor preferito (vim! :D) il file /etc/vim/vimrc e decommentare le righe seguenti

syntax on

if has("autocmd")
filetype indent on
endif


e se, come nel mio caso, lo sfondo del terminale e' scuro

set background=dark

24/11/07

Aprire i link sop:// con sopcast su linux

Ricordate Sopcast, il software per vedere la tv in streaming con linux?

L'interfaccia grafica, gsopcast, e' molto utile e ben fatta, ma ha un piccolo difetto: non prevede la possibilita' di aprire link "esterni", non appartenenti alla sua lista di canali; per questo motivo risulta impossibile aprire direttamente dal browser i comodi link sop:// presenti sulle pagine web, ad esempio quelli di myP2P.eu.
Ho provato quindi a fare un piccolo script che, utilizzando il programma sp-sc (cioe' il sopcast vero e proprio, non la GUI gsopcast), permetta di aprire comodamente i link presenti sulle pagine web.

Lo script

In un file vuoto, inseriamo il seguente codice:

#!/bin/sh
/usr/bin/sp-sc $1 3908 8908 > /dev/null &
sleep 15
mplayer http://localhost:8908/tv.asf
echo Exiting...
kill -9 $(pidof sp-sc)


Salviamo il file con il nome che preferiamo (ad esempio io l'ho chiamato sopper) e rendiamolo eseguibile con

chmod +x sopper

Infine spostiamolo in /usr/bin (attenzione a non sovrascrivere nessun file!)

sudo mv sopper /usr/bin

Cosa fa questo script? Passa l'indirizzo sop:// al programma sp-sc con questa sintassi (l'output fastidioso e lunghissimo viene mandato a /dev/null)

sp-sc sop://url localport playerport

A questo punto ho inserito 15 secondi di pausa per permettere al buffer di stabilizzarsi un minimo, altrimenti il player da' errore. Il valore puo' comunque essere cambiato ;)
Infine si apre mplayer (ma si possono usare altri player, come vlc) su http://localhost:8908/tv.asf. Lo script uccide il processo sp-sc alla chiusura del player.

Impostiamo il browser

Con questa procedura potremo aprire i link direttamente dal browser (Epiphany nel mio caso, ma ovviamente funziona anche con Firefox; per Konqueror o altri non ne ho idea :P).

-Digitare about:config nella barra degli indirizzi
-clic destro > New > Boolean
-digitare network.protocol-handler.external.sop
-impostare il valore a true
-clic destro > New > String
-digitare network.protocol-handler.app.sop
-inserire il precorso dello script (/usr/bin/sopper)

Ora, cliccando sui link di tipo sop:// dovrebbe aprirsi direttamente il player con il video. A volte i canali non sono disponibili quindi il player non partira'... Riprovate piu' tardi ;)


AGGIORNAMENTO 04/02/2009

Questa guida è stata scritta ai tempi Ubuntu 7.10. Fra i commenti ho ricevuto diverse segnalazioni di problemi e malfunzionamenti dello script con versioni successive di Ubuntu: purtroppo non utilizzo più né sopcast né lo script... perciò non posso esservi di aiuto :(
Se qualcuno ha aggiornato lo script o ha qualche modifica da proporre che possa essere d'aiuto agli altri, commenti pure ;) Grazie!

13/11/07

Android: prova su strada



Musica: I fantastici 4, Gem Boy :D


Ecco come si presenta allo stato attuale di sviluppo Android, che ho provato con l'emulatore messo a disposizione da Google insieme al Software Developement Kit (grazie a Jak per le istruzioni).
Come tutti saprete, essendo la notizia al centro dell'attenzione della blogosfera da qualche giorno ormai, Android e' la nuova piattaforma mobile sviluppata da Google: basata su Linux, sara' adattabile a diversi tipi di hardware e soprattutto sara' aperta allo sviluppo di applicazioni di terze parti (altro che iPhone...)

Che dire? Promette bene no? :P

Interessanti anche i 10 milioni di dollari messi in palio per gli sviluppatori delle migliori applicazioni: venghino signori venghino, che qui c'e' il vino buono!
E invece no, perche' l'Italia e il Quebec, oltre alle nazioni con l'embargo imposto dagli USA, sono esclusi dal contest a causa di non meglio precisate "local restrictions". Un altro caso in cui la legge e la burocrazia italiana mettono i bastoni fra le ruote a chi vuole emergere?

12/11/07

Scherzetti wireless

Hai una rete senza fili? I tuoi vicini continuano a sfruttare il tuo accesso a Internet senza neanche ringraziare?
Allora puoi cifrare la tua rete o, in alternativa, puoi divertirti un po' :D



Il fumetto odierno del sempre spassoso xkcd (se non ne capite l'umorismo tranquilli, significa che non siete nerd :D) ci rivela l'esistenza di Upside-Down-Ternet, uno script molto semplice con delle applicazioni moolto gustose: sarete in grado di ridirigere il traffico del vostro vicino su un sito di voltra scelta (Pete, l'autore dello script, raccomanda kittenwar.com :D), capovolgere le immagini dei siti da lui visitati o renderle sfocate.

Have fun!



Qualche schermata di esempio:


03/11/07

Netsukuku

Netsukuku e' uno dei progetti piu' affascinanti del FreakNet Medialab di Catania: e' un sistema di routing sperimentale di tipo p2p, nato per costruire una rete che si genera e si sostiene autonomamente.

La rete, il cui funzionamento e' basato su teorie del caos e dei frattali, e' in grado di gestire un numero illimitato di utenti, con un piccolissimo dispendio di CPU e memoria: il protocollo di Netsukuku struttura l’intera rete come un frattale e, per calcolare tutte le rotte necessarie, fa uso di un algoritmo chiamato Quantum Shortest Path Netsukuku. Un frattale e’ una struttura che puo’ essere compressa all’infinito, perche’ ogni sua parte e’ composta dallo stesso frattale. Pertanto il suo alto livello di compressibilita’ offre la possibilita’ di conservare l’intera mappa di Netsukuku in soli pochi Kilobyte.

Il modo migliore per la connessione fra i nodi e' il wifi o comunque le reti senza fili: Netsukuku sara' in grado di costruire una rete alternativa a Internet e indipendente (anche se durante la sperimentazione sara' comunque possibile sfruttare tunnel virtuali su Internet).

In breve: finalmente nessun vincolo con gli ISP (Internet Service Provider), accesso immediato alla rete, sicurezza e anonimato senza costi ne' burocrazia. Una bella spallata al digital divide.

Approfondimenti:

faq
Descrizione generale del progetto
Voce su Wikipedia

11/10/07

Code::Blocks su Ubuntu 7.04

Code::Blocks è un ottimo IDE (ambiente integrato di sviluppo) per la programmazione in C/C++, open source e multipiattaforma.

L'ho scoperto al poli e, considerando che sono alle prime armi per quanto riguarda la programmazione, sono rimasto piacevolmente sorpreso: posso usare lo stesso ambiente di sviluppo sia a casa (GNU/Linux) che a scuola (Windows purtroppo).

Per quanto riguarda l'installazione, Code::Blocks non si trova (ancora?) nei repo di Ubuntu, ma fortunatamente sul forum del sito ufficiale si trovano facilmente i pacchetti .deb e .rpm delle nightly build.

Un piccolo "ostacolo" per l'installazione su Ubuntu Feisty: è necessario un repository aggiuntivo per aggiornare le librerie wxWidgets alla versione 2.8.4 (i repo di Ubuntu sono fermi alla 2.8.1), ma è tutto ben spiegato a questo indirizzo. Per Gutsy invece non dovrebbero esserci problemi ;)