Friday, 31 July 2009
Divergenze parallele
Thursday, 23 July 2009
Ticket Party
Tuesday, 21 July 2009
A Tale of Two Regions
Here's a brief chronology of the history of Judea & Samaria (or more correctly the whole of Palestine, at first at least) and Tuscany, my land. Whose history, according to some people, is nothing short of Hell on Earth. Go figure...
TUSCANY | JUDEA-SAMARIA |
---|---|
1350-1150 BC Apennine Culture 1100-700 BC Villanovian Culture | 1440 BC First mention of the Habiru 1300 BCE Possibly the birth of Moses 1187 BC Sea People invasion, possibly the Philistines among them 1000 BC Kingdoms of Judah and Israel, according to the Bible |
700-280 BC Etruscan civilization organised as a loose federation of city states: large transport infrastructure,agriculture,mining art. Fiesole, Arezzo, Volterra, Chiusi are founded. At first Rome is dominated by the Etruscans. The first kings of Rome are probably Etruscan. With the rise of the Republic Tuscany is conquered progressively by the Romans | 722 BC Assyrian invasion 586 BC Babylonian conquest of the Kingdom of Judah. The Jews are exiled, according to the Bible. 539-333BC Cyrus II conquers the Babylonian empire incorporating Judah and Israel. 333 BCE Conquest by Alexander the Great. Seleucid and Ptolemaic dinasties dispute over the land. |
280BC-476CE Roman domination: Florence, Pisa, Lucca, and Siena are founded. Social wars. In 90BC all Tuscans become roman citizens. | 165-64 BCE Maccabees, Hasmonean dinasty. 63 BCE Roman conquest, destruction of the Second Temple 70CE Destruction of the second temple. 135 CE Bar Kokhba revolt. Several hundred thousands of victims. 351 CE War against Gallus Byzantine domination Progressive christianization. |
476-569CE Ostrogoth and Byzantine domination 569CE Lombard conquest. Edict of Rothari. 772CE Desiderius, duke of Tuscany surrenders to Charlemagne. Tuscany becomes a margravate, formally a part the Holy Roman Empire. 970CE Hugh of Tuscany moves his residence from Lucca to Florence. In his honour every year a mass is celebrated in Florence. X century. Construction of several castles. | 613 CE Persian conquest under Khosrau II 638 CE Islamic conquest Umayyad,Abbasids, Tulunids, Ikshidids, Fatimids, Seljuks dinasties. The Dome of the Rock and Al-Aqsa mosques are built. |
XI century. Pisa becomes one of the most importan maritime republics, scoring victories against the saracens. The Aldobrandeschi rule in southern Tuscany. XII century Medieval communes. First medieval examples of self government and democracy. Foundation of the first Guilds. XIII century. Dante and Giotto. Battle of Campaldino. The Guelphs defeat the Ghibellines. | 1096-1244 Crusades. Jerusalem and part of Palestine is conquered by the Crusaders but part of the territory is lost and reconquered several times until the Ottoman conquest. Muslim and Jewish massacres. |
XIV Century. Rise of the Republic of Florence. Florence becomes a major trading and banking centre. XV Century Rise of the Medici signoria. Lorenzo de' Medici. The Renaissance. Almost all Tuscany is conquered by the Medici. Girolamo Savonarola. Pier Soderini. Reconquest by the Medici with spanish forces. 1737 The last Medici Grandduke- Gian Gastone dies. Tuscany is took over by the austrian Lorraine house. Under the Lorraine Grand Dukes the death penalty is abolished for the first time in a European state. Railways are built for the first time. Agriculture is reformed, the last vestiges of serfdom abolished. Drainages in the Maremma. The Lorraine house rule until 1859, excluding the napoleonic interlude. 1859 Tuscany becomes part of the Kingdom of Italy. 1865 For a brief period Florence becomes the capital of the new Kingdom, hosting its first Parliament until Rome is conquered and annexed. | 1096-1244 Crusades. Jerusalem and part of Palestine is conquered by the Crusaders but part of the territory is lost and reconquered several times until the Ottoman conquest. Muslim and Jewish massacres. |
1880s Rise of socialism. First syndicates. 1930s Rise of Fascism. New motorways, new railway between Florence and Bologna 1940 WWII. Allied bombings. Massacres of civilians by the retiring Wehrmacht. Florence is liberated by Italian partisans and allied troops August 11th 1944. | 1881 First Aliyah, after the russian pogroms. 1890 Second Aliyah 1920 Balfour declaration 1921-1947 British mandate 1924 Third Aliyah 1928 Wailing Wall incidents 1929 Pogroms in Hebron and Safed: 113 Jewish victims 1934 Illegal Jewish immigration 1935 Arab revolt 1936 Homa Oumigdal 1937 British repression against the Arabs 1938 The Irgun executes several terrorist attacks. 1944 Other terrorist attacks by the Irgun and Lehi. |
1950-60 Italian economic boom 1966 Flood of the Arno River | 1948 Proclamation of the State of Israel 1949 The West bank - assigned to the Arab state - is controlled by Iraqi and Jordanian forces. 1967 Six day war. The West bank, Gaza and the Golan Heights fall under Israeli occupation. UN Resolution 242 |
2009 The new Florence tramway line is finished ...almost. | 1993 Oslo Accords 2000 Camp David 2000 2002 Road map for peace 2009 Obama and Nethanyau debate on settlement freeze. Bibi talks about building Tuscan village-like Towers in the Israeli settlements, like in San Gimignano. |
Monday, 20 July 2009
Google Analytics e la Palestina
Friday, 17 July 2009
La Toscana non è laggiù.
Su Usenet (ah, che miniera di notizie interessanti) è stato recentemente menzionato un curioso annuncio pubblicitario della 'pro loco' della Regione del Binyamin nei Territori Occupati. Byniamin deriva dal nome della tribù di Beniamino, che secondo il racconto biblico abitava nella zona - che è al di fuori dei confini di Israele, quelli stabiliti dall'ONU almeno.
Way beyond Chutzpah
Wednesday, 15 July 2009
"una piccola finestra mobile, sostanzialmente impercettibile per le persone"
Breve guida alla creazione di servizi windows con Visual Studio
Creazione di uno scheletro di servizio
Lanciare VS2005/2008 e creare una nuova soluzione C# o VBNET
di tipo “Windows service”
- viene creato uno scheletro di classe che eredita da ServiceBase
- il metodo OnStop viene chiamato allo stop del servizi
- il metodo OnStart all’avvio
- per cambiare nome al servizio modificare i vari riferimenti al namespace e ai nomi delle classi
- attenzione anche al codice nomeservizio.designer.cs per il nome passato poi all’eventuale event logger; il nome del servizio è definito in più punti.
Così com’è il servizio non è installabile. Andare in design mode sulla classe derivata da ServiceBase e fare tasto destro e sceglire “add installer”.
Viene aggiunta al progetto un’altra classe che deriva dall’oggetto Installer ed ha una direttiva di compilazione specifica, con due componenti serviceprocessinstaller e serviceinstaller. Modificarne le proprietà per cambiare nome, nome esteso, e account di default per l’installazione alservizio (ricordo che i servizi di windows hanno un nome sintetico usato ad esempio dai comand NET START o sc da prompt e un nome esteso visibile ad esempio in pannello di controllo servizi; l’account è l’utente con i permessi del quale è eseguito il servizio)
A questo punto si può installare il servizio in windows con
l’utility installutil.exe inserita nel dotnet framework (se non è nel path andare in c:\windows\Microsoft.net\Framework\
Installutil.exe
nomeseguibile.exe per installare
Installutil.exe
/u nomesegubile.exe per disinstallare
E’ anche possibile aggiungere un progetto di installazione alla soluzione (solution = gruppo di progetti in VS.NET) ma è più laborioso, installutil inoltre è più adatto all’attività di sviluppo.
Debugging
Per quanto riguarda il debug: non si può debuggare direttamente un servizio come un normale programma. E’ necessario compilare, INSTALLARE, poi scegliere l’opzione ‘Attach process’ dal debugger di Visual Studio per agganciarsi al processo del servizio in esecuzione. Si tratta di settare uno o più breakpoint: una volta che il codice del servizio installato arriva, pur senza essere stato lanciato dal debugger, al punto del breakpoint, inizia l’esecuzione controllata. Dopo ogni modifica al sorgente bisogna disinstallare, reinstallare, far ripartire il servizio e rifare l’attach del processo. Per modifiche non sostanziali sembra possibile evitare di disinstallare e
reinstallare il servizio con InstallUtil. E’ comunque consigliabile testare prima il grosso del codice in un’applicazione convenzionale separata.
Comandi utili per controllare i servizi da prompt:
NET STOP nomesintetico
NET START nomesintetico
Sc stop nomesintetico
Sc start nomesintetico
Sc query nomesintetico
Sc query
L’ultimo comando lista tutti i servizi in esecuzione, il penultimo da informazioni solo sul servizio specificato.Il comando sc.exe è più recente del comando NET e consente di visualizzare più informazioni sul servizio, oltre a disporre di molte altre opzioni.
Note sulla programmazione dei servizi (in dotnet)
Non usare time di tipo System.Windows.Forms.Timer, ma timer di tipo System.Timer (sulla copia di Visual Studio che uso io questo tipo di timer non è presente di default sulla palette Components, però si può aggiungere facendo tasto destro Add.. sul titolo della palette stessa). I primi compilano senza problemi, ma non fanno mai scattare l’evento. Esistono anche timer di tipo System.Threading.Timer che non si possono aggiungere a design time e presentano altre problematiche.
All’avvio e all’arresto di un servizio viene generato automaticamente un evento in Visualizzatore Eventi/Applicazioni con il nome sintetico con cui è stato creato il servizio stesso. Anche eventuali eccezioni a runtime vengono loggate nella medesima destinazione. Per scrivere nel log
usare i normali componenti System.Diagnostics.EventLog settando la proprietà Log ad ‘Application’ e la proprietà Source al nome del servizio.
Per fermare il servizio dall’interno (p.es. per un errore trappato) usare this.Stop() dalla classe principale (equivale a chiamare ServiceBase.Stop() ). Verrà ovviamente eseguito il codice dell’evento OnStop
Interoperabilità col mondo COM/VB6
E’ possibile tranquillamente usare ADO (basta un riferimento a Microsoft ADO 2.x ) da un servizio dotnet. Viene creata in questo modo una dll chiamata Interop.ado.dll che deve sempre accompagnare l’eseguibile del servizio stesso.
E’ possibile usare dll visual basic da servizi dotnet sia in early che in late binding, non dovrebbero però interagire col destkop, così come del resto il servizio stesso.
I servizi in dotnet possono tranquillamente essere multithreaded – nella classe generata da VS esiste già del codice relativo da commentare, questo però è da evitare se si chiamano dll VB6/ActiveX (per il tipo di modello di threading usato da queste ultime le variabili globali – le c.d. variabili di modulo) rimangono in comune tra tutte le instanziazioni della dll stesa.
I servizi dotnet supportano la registration free COM, ovvero i file .manifest per gestire dll activex localmente, senza registrazione.