Archives

All posts by yasb


Contenuti:
Guida passo passo
Programma di esempio

Se volete installare la libreria graphics.h in Ubuntu bisogna compilare e installare libgraph che è l’implementazione delle API di  grafica del turbo c su Linux con l’uso delle SDL.

Non è una libreria molto potente e adatta alla creazione di applicazioni di qualità ma, è semplice, e  adatta a scopi didattici e cioè di apprendimento.
Continue Reading


Contenuti:
Introduzione
Guida d’installazione passo passo
Programma di esempio

Introduzione

Per aggiungere un pò di grafica in un programma in c/c++ si possono usare svariate librerie; una delle più semplici da usare si chiama graphics.h.
Non è una libreria molto potente e adatta alla creazione di applicazioni di qualità ma, è semplice, e adatta a scopi didattici e cioè di apprendimento. Continue Reading


Un albero di Natale realizzato con i caratteri ASCII? Si può fare con un programma in linguaggio C/C++; l’obiettivo è mostrare qualcosa di questo genere:

 B U O N   N A T A L E . . .

              @
             @@@
            @@@@@
           @@@@@@@
          @@@@@@@@@
         @@@@@@@@@@@
        @@@@@@@@@@@@@
       @@@@@@@@@@@@@@@
      @@@@@@@@@@@@@@@@@
     @@@@@@@@@@@@@@@@@@@
              #
              #
              #
              #


A U G U R I I I I I I I . . .

oppure di questo genere:

B U O N   N A T A L E . . .

           A
          AAA
         AAAAA
        AAAAAAA
       AAAAAAAAA
      AAAAAAAAAAA
     AAAAAAAAAAAAA
           M
           M
           M
           M

A U G U R I I I I I I I . . .

in cui sono cambiati:

  • l’altezza, e cioè il numero di righe dell’albero (adesso 7, prima 10),

  • il carattere da visualizzare (adesso A, prima @), e
  • il carattere del tronco (adesso M, prima #)

L’altezza del tronco è rimasta invece uguale (4).
Se volete ricavare il vostro albero personalizzato basta seguire i seguenti passi:

  1. andate su IDEONE (un sito per la compilazione ed esecuzione online di programmi)
  2. cliccate su “fork” (in alto a sinistra)
  3. inserite (modificando quelle già presenti) nella casella “enter input (stdin)” le 4 cose appena dette nello stesso ordine (altezza albero, carattere, altezza tronco. carattere tronco). Lasciate sempre uno spazio tra queste cose;
  4. infine cliccate sul pulsante verde “RUN” in basso a destra

Codice dell’albero di Natale in C/C++

Per coloro invece che conoscono la programmazione (o la stanno imparando) e volessero provarlo sul proprio computer (magari personalizzando anche il codice) ecco di seguito il programma in linguaggio C/C++ (compilare ed eseguire per credere 😉 ):

using namespace std;
#include 
#include 
#include 
#define spazi  4
int main()
{
  int altezza, altezzaTronco, numSimboli;
  char simbolo,simboloTronco;

//acquisizione dati di input
  cout<<"inserisci altezza albero: ";   cin>>altezza;
  cout<<"inserisci simbolo da visualizzare(es. @,#,0 ";  cin>>simbolo;
  cout<<"inserisci altezza tronco: ";   cin<>simboloTronco;
  int spaziPrima = altezza;
  numSimboli=1;
  cout<

Commenti al programma albero di Natale

Come si può notare, si tratta di un albero disegnato con i caratteri ASCII in cui è possibile personalizzare l'altezza dell'albero (senza considerare il tronco), l'altezza del tronco, e i caratteri (chiamati simbolo) con cui verranno disegnati l'albero e il tronco.
Il programma si può vedere suddiviso in tre parti; la prima parte serve appunto ad acquisire da tastiera tramite le istruzioni cout e cin (del C++) tali dati (altezza albero, altezza tronco, simbolo albero, simbolo tronco).
Successivamente in base all'altezza fornita dall'utente viene disegnato l'albero con un ciclo for che scrive su output delle linee fatte col simbolo scelto; ogni linea avrà meno spazi (precedenti al primo simbolo) e più simboli rispetto alla precedente (ecco il perchè delle istruzioni: spaziPrima--; e numSimboli+=2; ).
Dopo sarà disegnato il tronco con un altro ciclo for.

Ciao e fatene Buon uso ! 🙂

PS: Se ti è piaciuto questo articolo, ti potrebbe piacere anche un albero di Natale animato scritto in C/C++ con l'uso della libreria graphics.h. Lo trovi qui.


Ho studiato la materia “crittografia” all’università mettendola nel mio piano di studi visto che mi ha sempre incuriosito questa parte dell’Informatica (o della matematica direi).
Successivamente, dovendo preparare una lezione su un argomento a mia scelta per l’abilitazione all’insegnamento, ed avendo letto il libro: “Codici & segreti: la storia affascinante dei messaggi cifrati dall’antico Egitto a Internet” di Simon Singh, ho scelto di fare una presentazione sulla storia della Crittografia.
Ho deciso oggi di pubblicarla per renderla fruibile a chi ne avesse bisogno o fosse interessato. Continue Reading

C è un linguaggio fondamentale e molto potente, tuttavia, non c’è sul mercato moltissima richiesta di programmatori in C. Ma allora, perché un tecnico informatico, un software engineer, un programmatore o gli studenti dovrebbero imparare il linguaggio C? E per quale motivo il C è così popolare?

Imparare il linguaggio C: perchè?

Perchè il C è

Continue Reading

Vi siete mai chiesti come fa la shell di linux (interfaccia a linea di comando) a realizzare il cosiddetto TAB-COMPLETION?
Il Tab completion, una di quelle funzionalità per le quali vale la pena imparare i comandi, rende l’uso della shell molto più semplice e divertente, velocizzando e aiutando nella scrittura di comandi a volte molto lunghi. Serve, per chi non lo sapesse, a mostrare, (premendo due volte il tasto TAB sulla tastiera), l’elenco dei possibili completamenti di un comando (o di un file, directory e anche di possibili opzioni….prova ad esempio a fare un TAB-TAB dopo apt-get); in realtà, premendo una sola volta il TAB, la shell prova a completare il comando (file, directory, opzione che sia) e, nel caso di unica possibilità lo fa (fai TAB dopo aver scritto la i di install per apt-get), in caso contrario, premendo due volte TAB si ha l’elenco dei possibili completamenti.
Continue Reading

Questa è la seconda parte della traduzione di un articolo dal titolo: “Linus Torvalds’s Lessons on Software Development Management” (ovvero: lezioni di Linus Torvalds [il creatore di linux ndr] sulla gestione dei progetti di sviluppo software), scritto da Steven Vaughan-Nichols che potete trovare qui. La prima parte della traduzione la trovate qui.
<<

Sull’importanza degli strumenti di sviluppo

Ho chiesto a Torvalds cosa pensasse riguardo i cosiddetti strumenti di Software Configuration Management (SCM) come il suo Git version control system.

Continue Reading

Quella che segue è una traduzione (parziale) di un articolo dal titolo: “Linus Torvalds’s Lessons on Software Development Management” (ovvero: lezioni di Linus Torvalds [il creatore di linux ndr] sulla gestione dei progetti di sviluppo software), scritto da Steven Vaughan-Nichols che potete trovare qui, nel quale Torvalds appunto spiega le sue opinioni riguardo la gestione (creazione) dei progetti software.

<<

Se c’è qualcuno che conosce gioie e dolori della gestione di progetti di sviluppo software, questi è Linus Torvalds, Continue Reading

Registrare comandi da terminale è diventato molto semplice e questo grazie a Shelr, un tool da linea di comando che registra i comandi digitati e li ripete pubblicandoli anche sul sito: Shelr.

Lavora registrando i comandi come un Typescript (letteralmente uno script di tutto ciò che è stato scritto e visualizzato nella sessione).

Lo script può essere "ri"-scritto su terminale oppure caricato sul sito Shelr e visto online come un video.

Articolo liberamente tratto da: omgubuntu

Caro vecchio command-not-found

Se ogni tanto sul vostro terminale compare il buon vecchio command not found, questo articolo non fa per voi. Se invece, in Ubuntu o distribuzioni similari, digitando sul terminale un comando errato o che non esiste o che semplicemente non è installato, Ubuntu (il terminale di…) ti viene fornito un elenco di comandi simili a quello che hai digitato (una sorta di forse intendevi…), e questo ti da fastidio, allora continua a leggere. In alcuni casi ho visto spuntare anche i pacchetti, che è necessario installare, per far funzionare il comando. Utile (quest’ultima cosa) se non sai che pacchetti installare per far funzionare un comando.
Nonostante ciò, questa caratteristica rallenta la shell e può anche essere fastidiosa se fai molto uso dei comandi su terminale. In alcuni sistemi è di fatto non installata (su debian ad esempio spunta il vecchio e caro: command not-found….secco ma efficace).

Come risolvere

Per disabilitare questa “feature” (parola molto vicina a “future” a cui vorrebbe farci arrivare Ubuntu…senza nessuno sforzo…), si possono fare due cose.
La prima consiste nel rimuovere il pacchetto che fornisce la feature e ….bypassare un piccolo bug che rende la rimozione del pacchetto solo parziale.
Per far ciò basta quindi:
rimuovere il pacchetto command-not-found con:

sudo apt-get remove command-not-found

se si prova adesso a eseguire un comando inesistente o errato spunterà un messaggio strano dovuto al bug prima citato.
Per risolvere anche questo problema bisogna lanciare il seguente comando:

sudo mv /usr/share/command-not-found /usr/share/command-not-found.bak

Affinchè il tutto abbia effetto bisogna riavviare la shell.

Un altro modo meno drastico per disabilitare la feature senza rimuovere il pacchetto (che in qualche caso potrebbe essere utile), è quello di aggiungere al proprio ~/.bashrc la seguente linea:

unset command_not_found_handle

Se dovreste cambiare idea quindi potrete sempre eliminare la linea o semplicemente commentarla facendola precedere dal simbolo #.
Questo articolo è stato liberamente tratto (e tradotto) da: techthrobcom

Sellfy, questo uno dei siti che permette di vendere contenuti digitali sul proprio sito. Per contenuti digitali si intendono immagini, template, e-book, foto, musica, video e tutto ciò che è "digitale" (zip, doc, pdf). Il prodotto è consegnato all’utente solo dopo che costui ha pagato. A noi basta solo caricare il file, inserire il prezzo e copia-incollare il codice HTML fornito sul nostro sito, col risultato di avere un pulsante personalizzabile con scritto "buy now". Si può vendere anche tramite una pagina Facebook o un account Twitter. Il pagamento da parte degli utenti può essere effettuato tramite Paypal, Sellfy tratterrà per ogni prodotto acquistato il 5% del suo prezzo. Inoltre questo sito offre un servizio per stabilire il prezzo più adatto per il tuo prodotto (best price) e la possibilità di guadagnare facendo degli sconti a coloro che pubblicizzano il tuo prodotto su facebook o twitter.

Smush.it(TM) è un servizio di Yahoo per developer che usa delle tecniche di ottimizzazione specifiche per ogni tipo di immagini e permette, mantenendo l’aspetto e la qualità visiva, di rimuovere bytes non necessari, salvando spazio e quindi permettendo all’immagine di essere caricata più velocemente. E’ possibile sia caricare l’immagine che fornire l’indirizzo; l’immagine “smushata” sarà subito scaricabile in formato zip.
Altre info utili:
1)Permette di caricare immagini fino a 1 mega (abbastanza per le immagini sul web)
2)E’ possibile fornire indirizzi di più immagini (una per riga) e scaricare poi un unico file zip
3)Bisogna scaricare il file zippato perchè viene mantenuto per poco tempo sul server

…o meglio: come abbellire il proprio blog (o sito in generale) appiccicando (to stick) cose (immagini, testo, forme ecc.) senza toccare una riga di css o di html (o quasi)l!!!
Sì, proprio così, stiqr si presenta come una piattaforma di modifica siti web come servizio…( direttamente dal proprio browser ). Una delle fantasmagoriche possibilità degli strumenti web2.0 (usa jquery tanto per cambiare).
Descrivo velocemente come funziona:
1)sul proprio sito aggiungere prima della chiusura del tag </body> il codice contenuto qui e seguire le istruzioni di quella pagina ovvero:
2)premere shift-F2 e registrarsi (basta fornire una e-mail e una password)…quindi
3)premere shift-F2 nuovamente e …ecco fatto … modificate quello che vi pare senza paura….le modifiche vengono salvate solo se cliccate su “save changes”

Il sito offre ancora poche possibilità (poche immagini, poche forme ecc.) ma comunque interessanti. Di recente è stata aggiunta la possibilità di creare facilmente uno slideshow!
Volete provarlo? Andate sul demo presente sul sito e premete shift-F2 (password: demo).
Se non siete ancora convinti guardate i sandali sulla destra, i fiori a sinistra e le due cornici attorno al logo di Yasb e al titolo di questo blog nonchè il Benvenuti…sono state aggiunte in pochi minuti grazie a stiqr (presenti fino a poco tempo fa prima dell’aggiornamento del sito).

Oggi volevo segnalarvi due siti molto interessanti e utili per condividere frammenti di codice con chi vogliamo. Il primo sito è Pastie; consente di incollare codice in moltissimi linguaggi (di programmazione e non) o anche il testo di Makefile o shell script colorandoli in maniera corrispondente (cioè facendo l’utilissima Syntax highlighting). Una volta premuto incollato il testo e premuto il tasto Paste (incolla) basterà dare il link (di solito un numero di 6 cifre dopo pastie.org) alle persone con le quali lo vogliamo condividere. Utile anche la possibilità di “embeddare” il codice nel proprio sito copia-incollando il codice html fornito.

L’altro sito è: friendpaste che permette, oltre a frammenti di codice, anche puro testo (plain text); permette inoltre di aggiungere un titolo al proprio snippet e, cosa interessante, una password che consente di permettere o vietare l’editing del proprio snippet a differenza di Pastie che invece consente a tutti di editare.
E’ pure possibile incollare il codice senza aprire il browser e andare sul sito, installando un tool scaricabile su services.

Vi lascio col motto di Pastie che è: Be nice. 🙂 Use Pastie for good, not evil. 😉

Debian Lenny ha qualche problema a far funzionare VLC il noto media player. Si tratta di un conflitto con il repository debian-multimedia il cui effetto è quello di non far funzionare i video con VLC. Questo articolo spiega come risolvere il problema. Bisogna fare il downgrade delle versioni di ffmpeg e le librerie bavcodec51 libavdevice52 libavformat52 libavutil49 libpostproc51 libswscale0. Cioè bisogna portare quei paccchetti alla versione precedente.
Ecco i vari passi:
1)commentate il repository debian-multimedia sul vostro sources.list (se non sapete di cosa sto parlando mandate un commento a questo articolo) e aggiornate con

    
sudo apt-get update

2)rimuovete vlc tramite ad esempio il classico:

sudo apt-get remove vlc 

3)Il comando

apt-cache policy $package

permette di sapere la versione precedente di ogni pacchetto, quindi basta vedere la versione precedente di uno dei pacchetti prima citati e se non avete il sistema configurato in maniera strana tutti gli altri sono uguali. Nel mio caso ad esempio facendo:

  apt-cache policy ffmpeg

ottengo:

  ffmpeg:
  Installato: 0.svn20080206-18+lenny2
  Candidato: 0.svn20080206-18+lenny2
  Tabella versione:
 *** 0.svn20080206-18+lenny1 0
        500 http://security.debian.org lenny/updates/main Packages
        100 /var/lib/dpkg/status
     0.svn20080206-17+lenny1 0
        500 http://ftp.it.debian.org lenny/main Packages

da dove si evince che la versione attuale di ffmpeg è la 18+lenny2 e quella precedente è la 18+lenny1
4)Il passo successivo è lanciare il comando per fare il downgrade alla versione precedente (18+lenny1) ovvero:

sudo apt-get install --reinstall ffmpeg=0.svn20080206-18+lenny1 libavcodec51=0.svn20080206-18+lenny1 libavdevice52=0.svn20080206-18+lenny1 
libavformat52=0.svn20080206-18+lenny1 libavutil49=0.svn20080206-18+lenny1 
libpostproc51=0.svn20080206-18+lenny1 libswscale0=0.svn20080206-18+lenny1

Come potete notare la differenza tra il comando descritto su zeitoun e quello da me lanciato è il fatto che l’autore dell’articolo ha fatto il downgrade alla versione 8 mentre, nel mio caso, la versione è 18+lenny1: quindi prima di lanciare il downgrade assicuratevi di scrivere per ogni pacchetto la versione precedente corretta.
Adesso VLC dovrebbe funzionare perfettamente…ah dimenticavo: prima di provarlo cancellate il contenuto di .vlc con:

rm -rf ~/.vlc

e ovviamente reinstallate il pacchetto ad esempio con:

sudo apt-get install vlc