Web Log di Adrian Florea

"You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away." Antoine de Saint-Exupery
posts - 440, comments - 2715, trackbacks - 3944

My Links

Archives

Post Categories

Image Galleries

.RO Blogs

.RO People

.RO Sites

Blogs

Furls

Links

vinCitori

July 2004 Blog Posts

The null type (la risposta di Dominic Cooney)

In un post del 10/06 "The null type" e in un altro del 14/06 "The null type (un po' più chiaro)", mi chiedevo cosa vuol dire "the null type" nella frase "The type of a null-literal is the null type". Ecco la risposta di Dominic Cooney (bravi anche i suoi fratelli! :-) Joseph e Patrick) "Re: Adrian Florea's comments on the 'null' type, As I understand it, the 'null' type doesn't exist outside verification. So, for example, if you're doing verification and a control flow path that does ldnull merges with one that does ldstr, the verification algorithm merges the null type...

posted @ Saturday, July 31, 2004 4:24 PM | Feedback (12) | Filed Under [ Carillon .NET ]

Main non public?

Mi sto chiedendo qual è la ragione per cui un metodo Main possa avere qualunque accessibilità... Quale sarebbe secondo voi il significato di un metodo Main non public? In Java, a partire dalla versione 1.4 è obbligatorio dichiararlo public. C# Language Specification, 2nd edition Java Language Specification, 2nd edition 10.1"Specifically, the execution environment can access the application’s entry point regardless of its declared accessibility and regardless of the declared accessibility of its enclosing type declarations." 12.1.4"The method main must be declared public, static, and void. It must accept a single argument that is an array of strings"

posted @ Friday, July 30, 2004 4:31 PM | Feedback (122) | Filed Under [ Carillon .NET ]

L'influenza di System.FlagsAttribute su ToString

Incuriosito da questo frammento dal libro di Box & Sells (l'edizione italiana, p. 119): "L'attributo [System.Flags] influenza anche l'implementazione di ToString in modo che la rappresentazione in stringa del valore sarà una lista separata da virgole dei nomi dei membri anziché del singolo membro.", ho giocato un po'. Per esempio, questo snippet: using System;class Foo{  [Flags]  enum NaN  {    Non = 1,    un = 2,    numero = 4,    reale = 8  }  static void Main()  {    NaN f = NaN.Non | NaN.un | NaN.numero | NaN.reale;    Console.WriteLine(double.NaN.ToString(new System.Globalization.CultureInfo("it-IT")));    Console.WriteLine(f.ToString().Replace(",", string.Empty));    Console.Read();  }} stampa a video: Non un numero realeNon un numero reale Un esempio meno folle :-) lo trovate nella documentazione di System.FlagsAttribute.Continuando a giocare, sono partito da questo snippet: using System;class...

posted @ Thursday, July 29, 2004 12:59 AM | Feedback (14) | Filed Under [ Quiz Sharp Carillon .NET ]

RomanEval (i vincitori con le loro soluzioni)

Grande divertimento con questi quiz, ragazzi!... Alcune soluzioni sono degne di TheDailyWTF! (sì, WTF viene proprio da What The F**k :-)) Inizio come sempre con la soluzione a cui ho pensato io e lascio poi che le vostre parlino da sole: private enum Roman{  UnFintoZeroRomano,  I, II, III, IV, V, VI, VII, VIII, IX, X,  XI, XII, XIII, XIV, XV, XVI, XVII, XVIII, XIX, XX}public static string RomanEval(string r){  string[] split = r.Split('+', '-');  int t1 = (int)Enum.Parse(typeof(Roman), split[0]);  int t2 = (int)Enum.Parse(typeof(Roman), split[1]);  Roman ret = (Roman)(t1 - t2 * ((int)r[split[0].Length] - 44));  return ret.ToString().Substring(0, ret.ToString().Length % ((Roman)0).ToString().Length);} Si può notare l'uso di una enum, l'espressione di ritorno calcolata in...

posted @ Wednesday, July 28, 2004 1:20 PM | Feedback (8) | Filed Under [ Test Sharp ]

Un altro quiz (RomanEval)

Vediamo questo come vi pare: Data una stringa r che rappresenta un'operazione di addizione o di sottrazione tra due numeri da 1 a 10 scritti con cifre romane si chiede di implementare la funzione: public static string RomanEval(string r) che ritorni il risultato sempre in cifre romane o la stringa vuota in caso di risultato 0. Si presuppone che l'espressione sia sempre valida, non possa dare risultato negativo e nell'implementazione non si richiede una sua verifica. E' vietato l'uso di istruzioni di selezione, istruzioni di iterazione oppure dell'operatore condizionale "?"! Alcuni esempi: "VIII+II" dovrebbe ritornare "X";"IX-VI" dovrebbe ritornare "III";"III-III" dovrebbe ritornare string.Empty; I vincitori e le...

posted @ Sunday, July 25, 2004 12:00 PM | Feedback (7) | Filed Under [ Test Sharp ]

23 patterns in a single paragraph :-)

Qualche visitatore del mio blog, magari osserverà leggendo questo paragrafo di Mark Brooks che i pattern non sono così astratti, che vale insomma la pena di passare il ponte che separa il modo in cui costruiamo adesso i nostri prototipi e il modo in cui dovremmo, con un po' di strategia e magari dopo qualche iterazione pensarli. interpretarli, in fine adattare quelli giusti al nostro problema. Non è una roba di facciata, di sola moda, un'ennesima minchiata per decorare il nostro CV ma, ricordatevi sempre questo, è un mezzo per raggiungere quello stato di cose fatte bene, quel mischio di...

posted @ Thursday, July 22, 2004 10:55 PM | Feedback (15) | Filed Under [ Pattern Dappertutto Varie ]

Do return an empty array instead of a null reference

Questi giorni, oltre al progetto .NET su cui normalmente lavoro, dedico parte del tempo a preparare un corso di JSP e Servlet che terrò da settembre a dicembre. Sono ormai quasi 2 anni e mezzo da quando ho lasciato Java e sono scappato con .NET in un'inaspettata e dolcissima avventura :-) Guardo quindi Java con altri occhi, adesso che devo rivedere la materia. Per esempio, il metodo getParameterValues dell'interfaccia javax.servlet.ServletRequest ritorna java.lang.String[] : public java.lang.String[] getParameterValues(java.lang.String name) "Returns an array of String objects containing all of the values the given request parameter has, or null if the parameter does not exist." Già il fatto di ritornare...

posted @ Thursday, July 22, 2004 12:09 PM | Feedback (5) | Filed Under [ Carillon .NET Pattern Dappertutto ]

Sogno di una notte di mezza estate - #2 (i vincitori con le loro soluzioni)

I vostri feedback sono un ottimo barometro della qualità, che vuol dire che quando piovono email da voi, il problema non è male, altrimenti vi annoia e non mi mandate - giustamente :-) - niente. Così è successo col sogno #1 (che ha avuto un'ottima accoglienza!) e sempre così è successo col sogno #2 (che avete trovato troppo semplice e quindi ha avuto molto meno successo...). I vincitori stavolta sono due: Marco Poponi che mi ha mandato per primo una soluzione corretta (nel precedente quiz era arrivato quinto) e Massimo Prota secondo, che mi ha mandato una soluzione identica a quella...

posted @ Sunday, July 18, 2004 5:36 PM | Feedback (8) | Filed Under [ Test Sharp ]

Sogno di una notte di mezza estate - #1 (i vincitori con le loro soluzioni)

Come promesso, ecco i vincitori con le loro soluzioni. Ricordiamoci prima il problema: Dato un array di interi dispari, oddArray, che determina una sequenza monotona crescente, e un intero pari, evenValue, si chiede di implementare la funzione: public static int IndexOfOddGreaterThanEven(int[] oddArray, int evenValue) che ritorni l'indice del primo elemento di oddArray maggiore di evenValue. Nel caso evenValue > max(oddArray) la funzione ritorna -1. Si presuppone che i parametri siano validi e che quindi l'implementazione non richieda una verifica di questi. Nell'implementazione è vietato l'uso di istruzioni di selezione, istruzioni di iterazione oppure dell'operatore condizionale "?"! Abbiamo un array ordinato di elementi (interi dispari)...

posted @ Wednesday, July 14, 2004 3:01 PM | Feedback (1) | Filed Under [ Test Sharp ]

Sogno di una notte di mezza estate - #2

Dai vostri feedback ho capito che il test in questa forma vi piace di più rispetto a quello con risposta multipla - infatti così è più difficile sia per voi che per me, quindi più bello per tutti :-) Vediamo allora il secondo test (per il primo, domani pomeriggio saprete i nomi di quelli che hanno risposto correttamente, finora 4, e le soluzioni, finora 3 diverse): Dato un array di interi tutti diversi tra loro, array, e un intero value, si chiede di implementare la funzione: public static bool IsInSmallest13(int[] array, int value) che ritorni true se l'intero value è tra i 13 interi più...

posted @ Tuesday, July 13, 2004 7:15 PM | Feedback (10) | Filed Under [ Test Sharp ]

Quiz Sharp 29

Questo prendetelo come relax, così sbaglierete di sicuro :-) Una divisione tra due variabili int, quante eccezioni può generare: A. 1 B. 2 C. dipende dal contesto checked o unchecked

posted @ Tuesday, July 13, 2004 11:44 AM | Feedback (6) | Filed Under [ Quiz Sharp ]

Sogno di una notte di mezza estate - #1 (info)

Finora abbiamo 3 soluzioni corrette e diverse tra loro - che dire, complimenti ragazzi! Saprete i nomi e le soluzioni commentate mercoledì pomeriggio. Nel frattempo aspetto le vostre altre soluzioni all'indirizzo che trovate nel post precedente - peccato che non vi possa offrire un premio, l'avreste meritato! Mi adeguo alle vostre mail, inserendo una precisazione aggiuntiva: nell'implementazione è vietato l'uso di istruzioni di selezione, istruzioni di iterazione oppure dell'operatore condizionale "?"! Un'altra cosa che ho visto in alcune delle vostre mail: NON fatte il presupposto che gli interi dispari siano "consecutivi" (per esempio {9, 11, 13}) - la soluzione deve funzionare...

posted @ Monday, July 12, 2004 5:23 PM | Feedback (11) | Filed Under [ Test Sharp ]

Sogno di una notte di mezza estate - #1 (errata corrige...)

Preso dall'onda della soluzione più che strana per il mio problema di ieri, non mi sono reso conto di un vincolo necessario: l'array oddArray dev'essere una sequenza monotona crescente.Il testo adesso corretto del problema, diventa: Dato un array di interi dispari, oddArray, che determina una sequenza monotona crescente, e un intero pari, evenValue, si chiede di implementare la funzione: public static int IndexOfOddGreaterThanEven(int[] oddArray, int evenValue) che ritorni l'indice del primo elemento di oddArray maggiore di evenValue. Nel caso evenValue > max(oddArray) la funzione ritorna -1. Si presuppone che i parametri siano validi e che quindi l'implementazione non richieda una verifica di questi.Nell'implementazione...

posted @ Sunday, July 11, 2004 4:25 PM | Feedback (8) | Filed Under [ Test Sharp ]

Sogno di una notte di mezza estate - #1

Se a qualcuno non ho fatto dormire di notte con la serie di Quiz Sharp (come mi hanno confessato alcuni dei partecipanti alla cena dopo il workshop del 22 giugno), allora vediamo cosa direte di questo problema, che pure a me che l'ho composto sembra bastardo :-) Dato un array di interi dispari, oddArray, e un intero pari, evenValue, si chiede di implementare la funzione: public static int IndexOfOddGreaterThanEven(int[] oddArray, int evenValue) che ritorni l'indice del primo elemento di oddArray maggiore di evenValue. Nel caso evenValue > max(oddArray) la funzione ritorna -1. Si presuppone che i parametri siano validi e che quindi l'implementazione...

posted @ Saturday, July 10, 2004 5:50 PM | Feedback (1) | Filed Under [ Test Sharp ]

Powered by:
Powered By Subtext Powered By ASP.NET