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

settembre 2005 Blog Posts

[OT] Merlin & Rollo

Merlin espone mostre in tutto il mondo da splendidi titoli come "When You Drain the Pool, You Don't Consult the Frogs First", "When in Doubt Blame the Victim" oppure "Look What You Made Me Do". Rollo invece, il suo fratello, vince il Premio Loebner per 2005 con il fantastico chat robot Jabberwacky (provate una conversazione, è divertentissimo!) ... jabberwacky: What is your biggest fear?user: I'm afraid that I will be alone for the rest of my life.jabberwacky: What are your options?user: I could suddenly transform into an extrovert, or I could pay a psychotherapist thousands of dollars to help me, or I could...

posted @ venerdì 30 settembre 2005 17:48 | Feedback (22) | Filed Under [ Varie ]

I numeri Ramsey e le cene UGIdotNET

Se fossimo almeno in 6 (notiamo con p questo numero; p come persone) ad una cena UGIdotNET, sappiate che si verificherebbe una di queste due situazioni: o almeno 3 di noi (notiamo con a, a come amici) si sono già conosciuti un'altra volta, o almeno 3 di noi (notiamo con s, s come sconosciuti) si conoscono per la prima volta alla cena. E tutto questo in base al numero Ramsey R(3, 3) = 6. Con questa notazione, abbiamo p = R(a, s). Si sa che: 6 = R(3, 3)9 = R(3, 4) = R(4, 3)14 = R(3, 5) = R(5, 3)18 = R(4, 4) = R(3, 6)...

posted @ giovedì 22 settembre 2005 11:52 | Feedback (25) | Filed Under [ Un po' di numeri Varie ]

GetILAsByteArray e l'opzione /bytes dell'ildasm

Per vedere "the actual bytes (in hex) as instruction comments" nel codice IL, abbiamo l'opzione /bytes dell'ildasm. Per esempio, per il metodo Foo::Sum della classe: class Foo{      public int Sum(int a, int b)      {            return a + b;      }} otteniamo: IL_0000:  /* 00   |                  */ nopIL_0001:  /* 03   |                  */ ldarg.1IL_0002:  /* 04   |                  */ ldarg.2IL_0003:  /* 58   |                  */ addIL_0004:  /* 0A   |                  */ stloc.0IL_0005:  /* 2B   | 00               */ br.s       IL_0007IL_0007:  /* 06   |                  */ ldloc.0IL_0008:  /* 2A   |                  */ ret dove con rosso sono scritti in esadecimale gli opcode (e i loro parametri! - vedi lo 00 nella colonna...

posted @ martedì 20 settembre 2005 16:02 | Feedback (143) | Filed Under [ Carillon .NET ]

Sul modificatore static per i membri di una static class

Mi stavo chiedendo perché dobbiamo specificare esplicitamente il modificatore static per tutti i membri di una static class. Per esempio, tutti i membri di un'interfaccia, hanno implicitamente l'accesso public ed è vietato specificare qualunque modificatore. Cerco di darmi una risposta, ma è solo una mia supposizione: Visto che possiamo dichiarare una static class così: partial class Foo{      //...} static partial class Foo{      //...} senza essere obbligati a specificare static per tutte le dichiarazioni parziali: static partial class Foo{      //...} static partial class Foo{      //...} la dichiarazione implicita static per i membri creerebbe confusione nella dichiarazione parziale: partial class Foo{      // membri static o instance?} visto che potrebbe...

posted @ martedì 20 settembre 2005 11:49 | Feedback (20) | Filed Under [ Carillon .NET ]

Le vostre domande sul futuro dei pattern

Potete sfruttare questa bella e rara occasione per porre le vostre domande sul futuro dei pattern, scrivendo al mio connazionale Dragos Manolescu che salirà lunedì 26 settembre sul palco della JAOO Conference 2005 per il panel "Panel of experts on the future of patterns" all'interno del track "Patterns - Past, Present, and Future", insieme ad altri 4 massimi esperti.

posted @ domenica 18 settembre 2005 12:56 | Feedback (17) | Filed Under [ Pattern Dappertutto ]

Should I be a C# Puzzler?

Sono rimasto un po' male quando ho scoperto che è già uscito questo libro (il 24 di giugno): J. Bloch, N. Gafter, "Java Puzzlers: Traps, Pitfalls, and Corner Cases", Addison-Wesley Professional (2005) visto che, questa primavera mi è stata rifiutata una proposta identica da un editore con la motivazione: un libro di quiz bastardi? no, non si venderebbe... A voi dice qualcosa questo elenco? "reveals oddities of the Java programming language through entertaining and thought-provoking programming puzzles" "I laughed, I cried, I threw up (my hands in admiration)" "dive deep into the subtleties of the Java programming language and its core libraries" "95 diabolical...

posted @ venerdì 9 settembre 2005 13:47 | Feedback (19) | Filed Under [ Quiz Sharp ]

System.Double.Epsilon con un pizzico di surreale

Per chi ha voglia di un pizzico di surreale, ecco uno snippet che mi ha fatto impazzire... // foo.cs//// csc /d:DUMMY foo.cs # stampa False // csc foo.cs # stampa True using System;using System.Diagnostics; class Test{      [Conditional("DUMMY")]      static void Dummy(double x)      {            x = x;      }       static void Main()      {            double x = Math.Pow(double.Epsilon, 2);            Dummy(x);            Console.WriteLine(0 < x && x < double.Epsilon);      }} Questo codice stampa False se compilato col simbolo DUMMY e True in caso contrario, cioè l'espressione: 0 < x && x < double.Epsilon ha valori diversi in base al fatto che Dummy (che in teoria non dovrebbe far nulla) venga...

posted @ giovedì 8 settembre 2005 18:17 | Feedback (43) | Filed Under [ Bugs? ]

Sul valore di default del layout

Mi sono chiesto: perché il valore di default dell'enum System.Runtime.InteropServices.LayoutKind è LayoutKind.Sequential e non LayoutKind.Auto? (come dicono le specifiche ECMA-335, Partition II, 10.1.2, 3rd ed.).Secondo me, la risposta sarebbe questa: il layout di default è auto per i tipi di riferimento e sequential per i tipi di valore mentre l'unica signature in cui appare l'enum LayoutKind è quella del costruttore dell'attributo pseudocustom System.Runtime.InteropServices.StructLayoutAttribute che, anche se applicabile sia alle classi che alle struct, viene quasi sempre utilizzato per le struct (da dove anche il nome, StructLayoutAttribute).

posted @ mercoledì 7 settembre 2005 13:03 | Feedback (21) | Filed Under [ Carillon .NET ]

Test Sharp con fiaba

C'era una volta una classe, non mi ricordo se in C# o in J#, con un solo membro definito: MembroNonRicorsivo(){MembroNonRicorsivo();} che, stranamente, non era ricorsivo. Non mi ricordo cosa c'era scritto al posto di MembroNonRicorsivo... Aiutatemi voi a ricordarmi il linguaggio e l'intera definizione della classe. Quante soluzioni possibili ci sono? P.S.: Per chi al momento del post si trovava in vacanza, questo linkato qui è un altro Test Sharp.

posted @ giovedì 1 settembre 2005 21:28 | Feedback (11) | Filed Under [ Test Sharp ]

Powered by:
Powered By Subtext Powered By ASP.NET