Un giorno “oggi” sarà “quei bei vecchi tempi”…

A volte mi ritrovo a pensare che, un tempo, ragazzi, col pallino dell’informatica, si sono ritrovati in un garage ed hanno dato vita a piccoli pezzi di storia dei videogiochi (o anche di roba ben più grossa): ripenso a Jordan Mechner che creò il primo Prince of Persia riprendendo il fratello che si scapicollava per realizzare le animazioni che diedero vita alla tecnica del rotoscoping, oppure ai Bitmap Brothers che col loro look metalico ed alle musiche pompate hanno dato vita a prodotti indimenticabili. Da un pò di tempo seguo la sorte di tre ragazzi col pallino di lasciare la loro impronta in questa immaginaria Via delle Stelle: parlo di Sam McGrath, Travis Stringer e Trevor Stringer. I tre hanno fatto “una colletta” per comprare l’hardware ed il software necessari a realizzare un engine per i giochi FPS (First Person Shooter: quelli a-la Doom per intenderci) di prossima generazione. Non si può dire che i tre mancassero di ambizione e dopo un anno di lavoro i tre sono usciti con questo video tratto da scene in-game e non di rendering artefatti:

Il settore dei videogiochi ha avuto un forte scossone, se si pensa agli investimenti che occorre fare per realizzare qualcosa di simile; e così i primi clienti sono arrivati ed ora, dopo interviste su giornali ed in trasmissioni televisive la Offset Software conta ben 19 dipendenti. Nel frattempo la società ha sfornato un gioco di successo e si può facilmente immaginare che tutti e tre vivranno felici e contenti ripensando a quei bei vecchi tempi…

Total Commander

Il non plus ultra dei file manager per Windows, espressione alla massima potenza del mitico Norton Commander per DOS, Total Commander vi da il completo controllo del vostro sistema grazie all’inumerevole sfilza di documenti. Ed una volta imparate le scorciatoie di sistema si riescono a compiere operazioni alla massima velocità. Il software consente di effetturare operazioni di multi-rinomina, codifcia UUE/BinHex, confronto directory e file e un ottimo client FTP. I plugin si suddividono in

  • plugin per visualizzatore: attivabili, in base al tipo di file, col tasto F3 (oppure CTRL-Q); consentono di aprire il contenuto del file o di esaminare le sue caratteristiche.
  • plugin per compattatori: attivabili, in base al tipo di file, col tasto CTRL-PGDN: consentono di esaminare il contenuto di file compressi o comunque di file che sono archivio di altri file (ISO, file di risorse, eseguibili); utilizzando ALT-F5 consentono di creare un file dello stesso tipo.
  • plugin per file system: vere e proprie estensioni di total commander, sono attivabili sfogliando la rete.

I miei plugin preferiti sono:

Insomma per chi passa ore e ore davanti al pc Total Commander non può mancare. Un’utility simile gratuita è possibile reperirla qui. Mi attendo che qualcuno inizi a farne una versione open source scritta in Mono!

Wikipedia 2.0?

Larry Sanger, uno dei fondatori di Wikipedia della prima ora, ha deciso di partecipare alla realizzazione di un fork di Wikipedia. In altre parole, non essendo soddisfatto di come Wikipedia si sta sviluppando, ha deciso di lavorare a un altro progetto simile che inizialmente avrà gli stessi contenuti di Wikipedia, ma che con il passare del tempo sostituirà gli articoli wikipediani con altri propri.
Il progetto si chiama Citizendium (contrazione di “citizen” e “compendium”) e si differenzierà da Wikipedia soprattutto per il fatto che i contributi agli articoli verranno supervisionati da figure esperte del campo prima di essere pubblicate e non sarà possibile contribuire in forma anonima.

Lo scopo è quello di evitare le guerre di religione che spesso si sono scatenate in wikipedia su alcuni argomenti caldi e di impedire gli episodi di vandalismo che wikipedia subisce ripetutamente. Citizendium quindi è il tentativo di creare un progetto più maturo e di maggior qualità senza rinunciare ai vantaggi del modello collaborativo del bazaar.

In realtà, non è questo il primo tentativo di fork di Wikipedia, ma tutti i precedenti hanno avuto un successo molto limitato. Questo fork ha suscitato molto clamore perché coinvolge un co-fondatore di Wikipedia e perché i problemi che tenta di risolvere sono spesso utilizzati per screditare Wikipedia.

È una buona idea? Avrà successo? Lo scopriremo presto.

Papà perché? Perché papà?

Eravate anche voi come me dei piccoli curiosoni rompiscatole da bambini? Vi aggrappavate anche voi ai pantaloni di papà chiedendo: “Perché papà? Come funziona papà? A che serve papà?”

Ho io quello che fa per voi!

Questo sito è il non plus ultra della conoscenza. Come se McGyver e il manuale delle giovani marmotte fossero frullati insieme in un frappé a prova di Trivial pursuit. Per la serie chiedete e vi sara detto :).

Quando dici le buone idee…

Leggevo sulle notizie recenti della nuova release di Gnome 2.16, ottimo Windows Manager per Linux, che introduce finalmente un supporto alle schede video avanzate consentendo di scaricare su di esse gli effetti tanto di moda in questo periodo: finestre trasparenti, che appaiono e scompaiono gradualmente, che si deformano e tutte quelle chicche che XGL ha già avuto modo di mostrare. Ma, anche se meno importante è l’adozione di un piccolo programmino che da tempo vado indicando tra quelle micro rivoluzioni dell’usabilità del desktop, ovvero Tomboy. Il programmino in questione si occupa di redigere piccole note con lo stile di Wiki ossia correlando automaticamente le note tra di loro.

Tomboy screenshots

Supponiamo ad esempio di aver scritto una nota su “Sandro Zacchino” in cui abbiamo scritto che “è un Ingegnere Informatico e redattore del sito www.KeepInTech.it”; adesso, sfruttando un plugin per Tomboy che fa da reminder per gli appuntamenti scriviamo una nota in cui diciamo che “alle 13 di Lunedì appuntamento con Sandro Zacchino”. Automagicamente Tomboy renderà le parole “Sandro Zacchino” clickabili facendole puntare alla nota scritta prima. Carino vero? (nell’imagine si nota il collegamento con le parole “Gnome 2.16”)
In pratica è lo stesso sistema con cui viene scritta Wikipedia, o tutti i wiki-site sparsi per il mondo. E’ un sistema comodo che appena prenderà piede consentirà di organizzare meglio tutti i nostri pensieri. Non avrà la potenza di sistema di mind-viewing ma è molto più rapido e facile da usare.
E per la serie non è mai troppo meravigliarsi…

(bella la musichella fischettata :) ) e il nuovo tessuto luminoso di Philips

Giochi faidaté

Microsoft mi stupisce ancora… L’apertura ai progetti open source e a Mozilla in particolare! Chi l’avrebbe mai detto? Ma una novità passata quasi inosservata durante la settimana di ferragosto è stato il rilascio di XNA Game Studio Express (beta). Un framework gratuito per la scrittura di videogiochi per xbox 360. Questo framework si aggancia all’altrettanto gratuito Microsoft Visual C# 2005 Express per consentire a chiunque di scrivere videogiochi sfruttando tutto l’hardware messo a disposizione dalla nuova xbox!

Questo mi catapulta indietro di 20 anni, quando con il mio Commodore 128 mi sollazzavo a implementare giochi faidamé in basic con qualche manciata di assembler. Gli sprite, il raster register, X, Y, l’accumulatore, … Che infanzia felice!

Questo Python pò esse fero e pò esse piuma…stavorta e stato fero

Cari amici torno dalle mie vacanze con una notiziola simpatica: il gruppo Microsoft ha rilasciato, sul loro fenomenale sito CodePlex, la versione 1.0 di IronPython, l’incarnazione .Net di Python. La notizia, sulle prime, mi ha lasciato indifferente ma poi ho voluto provare qualche feature più simpatica di questo strumento open source. La prima cosa che ho provato a fare è quella di testare una libreria Python consolidata (la Polygon) che non ha funzionato. Mmmhh…leggendo sulle faq è emerso che (giustamente) giacchè il sistema è integrato con .Net era inutile utilizzare le .pyd (le .dll di Python) ed optare direttamente con le dll di .Net. Vabbè, dico io, ho scritto una dll .Net, proviamo un pò…vediamo se è vero. Copio le due dll SweepLineAlg (che contiene la classe SegmentIntersection) e SweepLine (che contiene il namespace Geometry2D e la classe Edge) nella cartella Lib di IronPython ed inizio (per inciso la libreria che importo l’ho scritta io e contiene un’algortimo per effettuare l’intersezioni tra segmenti con l’algoritmo di Bentley-Ottman):

import clr
clr.AddReference("SweepLineAlg")
clr.AddReference("SweepLine")
from SweepLineAlg import *
from Geometry2D import *
si = SegmentIntersection()
si.edges.Add(Edge(0,5,6,2))
si.edges[0].Label = 0
si.edges.Add(Edge(1,7,4,1))
si.edges[0].Label = 1
si.Run()
for v in si.Q.Points:
... print v.ToString() + " " + v.isIntersection.ToString()

L’output è stato:

(0,5) False
(1,7) False
(2,66666666666667,3,66666666666667) True
(4,1) False
(6,2) False

Quindi ha funzionato (ossia ha riportato come true il punto di intersezione tra i due segmenti dati come input)!….in pratica IronPython ha correttamente importato le dll da me scritte, comprese classi e metodi in esse definite, e mi ha consentito di testarle al volo con un piccolo sorgente (che conserverò per i futuri regression tests). Oltre a questo IronPython si aggiunge ai linguaggi .Net (quindi è possibile sfruttarlo dentro Visual Studio) ed è compatibile con Mono.

In una prossima puntata verificherò la possibilità di chiamare degli script dinamici dentro un programma .Net.

A presto!

Non farlo così!

Molti di voi conoscono il concetto di design pattern o più in generale di pattern: delle indicazioni o delle tecniche lungamente testate e sempre riapplicabili per risolvere specifiche classi di problemi. Esistono in architettura, in informatica e persino nella musica.

I più creativi storceranno il naso dicendo: “io sono uno spirito libero e faccio da me”. Ma vi assicuro che conoscendoli e usandoli si risparmiano tempo e neuroni. Capisco comunque che non sia bello sentirsi dire come fare le cose… È molto meglio sentirsi dire come non farle! A questo scopo sono nati gli anti-pattern, in italiano qui.

Date un’occhiata alla lista dei nomi, ce ne stanno di divertenti, tipo: “Spaghetti code”, “Oggetto Dio”, “Poltergeist” 😀