tshirtfolderVi siete mai chiesti cosa fa un ingegnere nel tempo libero? Ovviamente tiene la mente occupata per fare cose del tutto inutili ma che per la sua testa sono estremamente divertenti nonchè molto soddisfacenti dal punto di vista personale.

Questo è il tipico esempio di come tenere occupata la mente nel periodo estivo, soprattutto quando si devono piegare le magliette una volta lavate e stirate: noi siamo ingegneri e la perfezione non basta, occorre un calcolo preciso e millimetrico per cercare di mantenere costante l’entropia dell’armadio, che già di per sé aumenta sempre… quindi perchè aiutarla? Ecco un metodo molto semplice per piegare le magliette… vi serve solo un pezzo abbastanza grande di cartone, una riga, dello scotch ed un cutter… e le magliette ovviamente!

MAG
22

office2010trailer

Ultimamente Microsoft si sta dando molto da fare per rilanciare il suo marchio: dopo la volontà di aprire esercizi commerciali in stile Apple Store e dopo le pubblicità che cercavano di dare un perchè comprare un PC sia una scelta giusta rispetto ad un Mac, ecco arrivare il trailer di Office 2010.

“No Return, No Undo, No Control, No CTRL-ALT-DELETE… The Future Begins”: così viene presentato il nuovo Office. Sarà veramente così? Lo sapremo solo provandolo, io intanto mi sono iscritto per il testing ufficiale! Voi invece che ne pensate?

MAG
21

lighthouse keeper

Un custode, il suo faro. È piena notte e in paese tutti stanno divertendosi nelle locande mentre il custode del faro lavora tranquillamente alla sua scrivania. Improvvisamente la luce del faro si guasta, uno sguardo alla piccola finestrella e si nota una nave all’orizzonte. L’ultimo tentativo prima di evitare ciò che sembra ormai inevitabile.

Un corto davvero brevissimo ma con un significato a dir poco emozionante. Da notare che la casa che lo ha creato utilizza il programma open source Blender, del quale ne avevamo già parlato qualche tempo fa. Davvero notevole!

sqlPer chi crea siti Web capita prima o poi di trovarsi davanti ad un problema insormontabile: lavorare in ASP+Access, l’accoppiata vincente di Microsoft oramai superata in tutto e per tutto dal binomio PHP+MySQL. Tuttavia non tutto è perduto e ci armiamo di buona pazienza in modo da far funzionare tutto per il meglio, quando ecco sorgere problemi insospettabili. Supponiamo ad esempio di voler caricare dal DB un numero limitato di risultati di una query, caso tipico della LIMIT di MySQL e della TOP per i sistemi Microsoft, ad esempio per un sistema di visualizzazione delle news. Supponendo di avere un codice SQL del tipo:

SELECT TOP 5 * FROM tbEventi ORDER BY Data DESC

Ci aspettiamo che il codice qui sopra carichi dal DB esattamente i primi 5 risultati delle news ordinate per data. Cosa accade però se in lista ci sono più eventi della stessa giornata dei quali non abbiamo definito un ordinamento? Un caso d’esempio della tabella tbEventi è questo qui sotto:

ID	Titolo	Testo	Data
----------------------------------
1	Titolo1	Testo1	19/05/2009
2	Titolo2	Testo2	19/05/2009
3	Titolo3	Testo3	18/05/2009
4	Titolo4	Testo4	17/05/2009
5	Titolo5	Testo5	17/05/2009
6	Titolo6	Testo6	17/05/2009
7	Titolo7	Testo7	16/05/2009
8	Titolo8	Testo8	16/05/2009

In questo caso avrete come risultato della query questo:

ID	Titolo	Testo	Data
----------------------------------
1	Titolo1	Testo1	19/05/2009
2	Titolo2	Testo2	19/05/2009
3	Titolo3	Testo3	18/05/2009
4	Titolo4	Testo4	17/05/2009
5	Titolo5	Testo5	17/05/2009
6	Titolo6	Testo6	17/05/2009
7	Titolo7	Testo7	16/05/2009
8	Titolo8	Testo8	16/05/2009

Che è esattamente la tabella iniziale. Come mai? E’ molto semplice, a date uguali viene data la stessa importanza, si verifica cioè un aexequo che porta come risultato l’uscita di tutte le entry con le prime 5 date disponibili, ed in questo caso avremo il 19, il 18, il 17 ed il 16 maggio.

Come risolvere?

Facile, ci sono 2 modi: o definiamo un secondo modo di ordinamento, come questo:

SELECT TOP 5 * FROM tbEventi ORDER BY Data, Titolo DESC

In modo da permettere all’engine di discriminare tra entry della stessa data, oppure in una maniera più “sporca” facendo una sotto-query:

SELECT TOP 5
FROM (SELECT TOP 5 * FROM tbEventi ORDER BY Data DESC)
ORDER BY Data DESC

Fine. Se vi vengono in mente altre modalità per risolvere il problema, fatemelo sapere!