Girovagando trovai questa pagina http://www.istitutomajorana.it/passare-linux/index5.html.
Ebbene, l’ articolo presente in essa spiega che ci sono ALMENO (e sottolineo almeno) 27 validi motivi per passare, finalmente, a Linux.
Leggetelo e convincetevi anche voi che passare a Linux è la miglior cosa da fare. Resterete certamente soddisfatti.
Tag: Infos
Perchè dovreste passare a Linux
L’ Evoluzione di un programmatore :)
Quello che sto per scrivere (ovvio frutto del mio vagare senza una metà nel web
) è un documento un pò vecchiotto ma che comunque ha sempre il suo fascino. Una pagina che gira in rete da tempo che descrive il processo evolutivo di un programmatore, dalla scuola superiore fino a quando diventa un manager di primo livello. L’evoluzione del programmatore è formata da pochi passi, chiari e semplici. Si comincia dal Basic per arrivare poi al Perl, passando per Pascal, C, C++ e Lisp. Ad un certo punto della scala evolutiva c’è una certa regressione verso lo stato iniziale. Lo capirete da soli leggendo. ![]()
Che spettacolo! ![]()
High School/Junior High
10 PRINT "HELLO WORLD" 20 END
First year in College
program Hello(input, output) begin writeln('Hello World') end.
Senior year in College
(defun hello (print (cons 'Hello (list 'World))))
New professional
#include <stdio.h> void main(void) { char *message[] = {"Hello ", "World"}; int i; for(i = 0; i < 2; ++i) printf("%s", message[i]); printf("\n"); }
Seasoned professional
#include #include class string { private: int size; char *ptr; public: string() : size(0), ptr(new char('\0')) {} string(const string &s) : size(s.size) { ptr = new char[size + 1]; strcpy(ptr, s.ptr); } ~string() { delete [] ptr; } friend ostream &operator <<(ostream &, const string &); string &operator=(const char *); }; ostream &operator<<(ostream &stream, const string &s) { return(stream << s.ptr); } string &string::operator=(const char *chrs) { if (this != &chrs) { delete [] ptr; size = strlen(chrs); ptr = new char[size + 1]; strcpy(ptr, chrs); } return(*this); } int main() { string str; str = "Hello World"; cout << str << endl; return(0); }
Master Programmer
[ uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820) ] library LHello { // bring in the master library importlib("actimp.tlb"); importlib("actexp.tlb"); // bring in my interfaces #include "pshlo.idl" [ uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820) ] cotype THello { interface IHello; interface IPersistFile; }; }; [ exe, uuid(2573F890-CFEE-101A-9A9F-00AA00342820) ] module CHelloLib { // some code related header files importheader(); importheader(); importheader(); importheader("pshlo.h"); importheader("shlo.hxx"); importheader("mycls.hxx"); // needed typelibs importlib("actimp.tlb"); importlib("actexp.tlb"); importlib("thlo.tlb"); [ uuid(2573F891-CFEE-101A-9A9F-00AA00342820), aggregatable ] coclass CHello { cotype THello; }; }; #include "ipfix.hxx" extern HANDLE hEvent; class CHello : public CHelloBase { public: IPFIX(CLSID_CHello); CHello(IUnknown *pUnk); ~CHello(); HRESULT __stdcall PrintSz(LPWSTR pwszString); private: static int cObjRef; }; #include #include #include #include #include "thlo.h" #include "pshlo.h" #include "shlo.hxx" #include "mycls.hxx" int CHello::cObjRef = 0; CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk) { cObjRef++; return; } HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString) { printf("%ws\n", pwszString); return(ResultFromScode(S_OK)); } CHello::~CHello(void) { // when the object count goes to zero, stop the server cObjRef--; if( cObjRef == 0 ) PulseEvent(hEvent); return; } #include #include #include "pshlo.h" #include "shlo.hxx" #include "mycls.hxx" HANDLE hEvent; int _cdecl main( int argc, char * argv[] ) { ULONG ulRef; DWORD dwRegistration; CHelloCF *pCF = new CHelloCF(); hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); // Initialize the OLE libraries CoInitializeEx(NULL, COINIT_MULTITHREADED); CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, &dwRegistration); // wait on an event to stop WaitForSingleObject(hEvent, INFINITE); // revoke and release the class object CoRevokeClassObject(dwRegistration); ulRef = pCF->Release(); // Tell OLE we are going away. CoUninitialize(); return(0); } extern CLSID CLSID_CHello; extern UUID LIBID_CHelloLib; CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */ 0x2573F891, 0xCFEE, 0x101A, { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 } }; UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */ 0x2573F890, 0xCFEE, 0x101A, { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 } }; #include #include #include #include #include #include "pshlo.h" #include "shlo.hxx" #include "clsid.h" int _cdecl main( int argc, char * argv[] ) { HRESULT hRslt; IHello *pHello; ULONG ulCnt; IMoniker * pmk; WCHAR wcsT[_MAX_PATH]; WCHAR wcsPath[2 * _MAX_PATH]; // get object path wcsPath[0] = '\0'; wcsT[0] = '\0'; if( argc > 1) { mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1); wcsupr(wcsPath); } else { fprintf(stderr, "Object path must be specified\n"); return(1); } // get print string if(argc > 2) mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1); else wcscpy(wcsT, L"Hello World"); printf("Linking to object %ws\n", wcsPath); printf("Text String %ws\n", wcsT); // Initialize the OLE libraries hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED); if(SUCCEEDED(hRslt)) { hRslt = CreateFileMoniker(wcsPath, &pmk); if(SUCCEEDED(hRslt)) hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello); if(SUCCEEDED(hRslt)) { // print a string out pHello->PrintSz(wcsT); Sleep(2000); ulCnt = pHello->Release(); } else printf("Failure to connect, status: %lx", hRslt); // Tell OLE we are going away. CoUninitialize(); } return(0); }
Apprentice Hacker
#!/usr/local/bin/perl $msg="Hello, world.\n"; if ($#ARGV >= 0) { while(defined($arg=shift(@ARGV))) { $outfilename = $arg; open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n"; print (FILE $msg); close(FILE) || die "Can't close $arg: $!\n"; } } else { print ($msg); } 1;
Experienced Hack
#include #define S "Hello, World\n" main(){exit(printf(S) == strlen(S) ? 0 : 1);}
Seasoned Hacker
% cc -o a.out ~/src/misc/hw/hw.c % a.out
Guru Hacker
% cat Hello, world. ^D
New Manager
10 PRINT "HELLO WORLD" 20 END
Middle Manager
mail -s "Hello, world." bob@b12 Bob, could you please write me a program that prints "Hello, world."? I need it by tomorrow. ^D
Senior Manager
% zmail jim I need a "Hello, world." program by this afternoon.
Chief Executive
% letter letter: Command not found. % mail To: ^X ^F ^C % help mail help: Command not found. % damn! !: Event unrecognized % logout
Quello che un “Linuxiano” dovrebbe sempre avere!
In realtà non sono cose proprio necessarie ma se le si ha è meglio (almeno per me)
..Quello che secondo me non dovrebbe mai mancare ad un linuxiano è lo splendido simbolo della nostra comunità, ossia il pinguino di Linux, altresì conosciuto come Tux. Bene, io l’ ho ordinato da qui. Si tratta di un piccolo peluche che ognuno di noi dovrebbe tenere in casa come custode e protettore dei nostri pc dotati di distro Linux
. Diciamo che è venuto un pò caro in quanto ho speso in tutto una quindicina di euro ma sono più che soddisfattto. Lo definirei un affare!!
Un’ altra chicca che dobbiamo avere è uno sticker. Di cosa sto parlando?…Ebbene avete presente quell’ adesivo orrendo che su ogni portatile trovate accanto al trackpad??..Quello con su scritto “Designed for Microsoft Windows bla bla bla”??????….Ecco sarebbe veramente ora di sostituirlo con qualcosa di più decente, non credete?
Proprio per questo googlando ho trovato questo sito, unixstickers.com. Quindi adesso munitevi di carte di credito e acquistate immediatamente un set di stickers e, dopo aver rimosso “l’ orrendo adesivo”, incollate uno dei tanti che vi sono stati recapitati a casa!..
In alternativa all’ acquisto diretto c’ è un’ altra soluzione
..Andate sul sito openstickers.com, scaricate i due volumi di stickers (in file .odg che ovviamente apre soltanto openoffice!), comprate carta adesiva lucida fotografica, munitevi di stampante a colori laser e stampate tutti gli adesivi che volete!..ah e ritagliateli e incollateli. ![]()
Fate tutto ciò per promuovere quello che penso sia il più grande sistema operativo, affinchè sempre più persone entrino a far parte della nostra comunità, e si dimentichino di quell’ obrobrio di Winzozz.

Vedo vermi dappertutto!!..Worms sarai la mia rovina!
Ovviamente non potevo non postare un articolo riguardante uno dei miei giochi preferiti per pc nonchè quello che mi fa stare più tempo incollato allo schermo!…Sto parlando del mitico Worms Armagedddon, sviluppato da Team17.
In se lo considererei un gioco molto banale ma vi assicuro che una volta provato non vorrete più smettere di giocare..proprio come è successo a me!
Aggiungerei inoltre che come gioco è un pò datato, infatti sono in attesa di ricevere una nuova versione del gioco chiamata Worms Forts: Under Siege, che presumo sarà altrettanto meravigliosa!
Lasciate che vi spieghi un pò come funziona il gioco. ![]()
Il gioco è basato su due fazioni di vermi che combatto con armi da guerra sulle classiche basi di un videogioco strategico a turni; il giocatore controlla una squadra di quattro componenti contro l’intelligenza artificiale o un altro giocatore il cui scopo è la conquista del terreno di gioco mezzo l’eliminazione fisica o la resa dell’ avversario.
I giocatori hanno a disposizione un arsenale che spazia dalle armi bianche alle armi da fuoco arrivando fino agli attacchi comandati a distanza e può usare un solo attacco per turno, ad eccezione di qualche arma o oggetto particolare; in alternativa può usare oggetti dall’utilità stategica come il martello pneumatico, la trave, la corda elastica e il teletrasporto. Al di fuori del lanciarazzi standard, sia le armi che gli oggetti hanno un numero di utilizzi limitato ma incrementabile grazie a delle casse che cadono a intervalli regolari sul campo di gioco. Ogni arma causa un danno che va da 1 a una quantità teoricamente infinita per via delle “catene” che oggetti come barili esplosivi e mine presenti sul campo di gioco possono generare e il danno può essere subito sia dagli avversari che dai propri vermi dato che il gioco prevede il “fuoco amico”. Dopo un certo periodo di tempo, qualora la partita non si fosse ancora conclusa si entra in modalità “Sudden Death” durante la quale tutti i vermi presenti sul campo di gioco vedono scendere i loro punti vita a 1 solo punto.
Lo scenario di gioco è solitamente costituito da un’isola o da più isole collegate da ponti di travi che danno sull’acqua e sono generati casualmente ad ogni partita da un algoritmo scritto appositamente; gli scenari sono totalmente distruttibili e se un verme cade in acqua, muore. Un ulteriore fattore caratterizzante delle partite è il vento, variabile da partita a partita, che influenza la direzione delle armi da fuoco – specialmente di quella del lanciarazzi principale.
Consiglio inoltre di provare Worms 3D e Worms 4: Mayhem che sono altrettanto spettacolari!!
Bene, dopo aver dedicato un intero post a Worms mi sento davvero meglio! ![]()
E indovinate cosa ritorno a fare adesso?…Analisi Matematica 1..-.-
Alla prossima!!!
Blog…Blog…Il Bloggatore!
Ebbene sì!…anche io, come moltissimi ormai, sono stato “mangiato” da Il Bloggatore!!!..
..Scherzi a parte, giusto qualche minuto
fa ho ricevuto dallo staff de Il Bloggatore un e-mail in cui scrivevano che avevano provveduto ad inserire il mio blog nell’ elenco dei blog iscritti.
Ma vediamo di cosa si tratta, scopriamo realmente cos’ è (o chi è
) questo Bloggatore.
In realtà, si tratta di un aggregatore di feed on line, orientato a tutti quei blog che trattano argomenti legati al mondo dell’informatica! L’obiettivo fondamentale è la divulgazione e la diffusione di informazioni utili per gli appassionati di Linux, Windows, Mac, Sicurezza, Grafica, Tecnologia, Programmazione ecc! Inoltre, un aggregatore di feed on line consente di aumentare la visibilità dei blog che vi sono iscritti, consentendo a tutti coloro che possiedono dei propri blog (Bloggatore compreso lol) di avere a disposizione una sorta di “finestra virtuale” grazie alla quale entrare maggiormente in contatto con chi vuole leggere le notizie pubblicate al loro interno.
Presumo e spero che questo servizio possa diventare un utile strumento per aumentare il numero di visitatori verso i blog iscritti, nonchè la loro popolarità. Una particolarità di Il Bloggatore è che non fornisce ai visitatori le notizie complete, bensì delle anteprime di notizie, dalle quali è poi possibile giungere ai blog iscritti. In questo modo viene realizzata una reale promozione dei blog partecipanti.
In definitiva penso proprio che sia un bel progetto, molto utile sia a noi possessori di blog sia a tutti coloro che vogliono essere sempre informati sul mondo della tecnologia.















