Sunday, 26 April 2015

Aghet 2.0

These days it's the 100 anniversary of the beginning of the Armenian Genocide (Aghet), one of the most horrendous crimes ever committed, and considered the first genocide, the first attempt to completely annihilate a human group. The monstrosity of these acts committed by the Turkish government and many Turks (others opposed it and even died because of it) has been aggravated by the continuous denial by all the different Turkish governments (and by a large part of the Turkish population) to these days. Adding injury to insult, Turkey has had the impudence to try to reverse the facts, justifying "the dead of some Armenians" as a response of the Turkish population against the crimes committed by the Armenians against the Turkish nation. There's at least one documentary portraying this distortion of true, it's so revolting to me that I won't even provide a link.

Aghet is a really good documentary, and I think it's pretty appropriate to give it a watch these days. It's interesting to see how before the genocide the Turkish government had treated Armenians as second class citizens, submitting them to higher taxes and stripping them of rights, just for being Christians and ethnically different. When the ultra nationalist and Islamist Young Turks gained power, things went much worse, and their idea of "Turkey for the Turks" (puff, pretty far-right scum) resulted in the Genocide. Apart from xenophobia, the idea of looting the belongings of 1.5 million people seemed quite appealing to the Turkish government. It was not only an attack on Armenians, other "foreigners" (like Greeks) were also attacked, and it should be noticed how the Turks pillaged European villages as they were expelled from their "colonies" (Serbia, Montenegro...)

100 years later the current Turkish government not only continues to deny the Genocide, but seems quite inspired by the leaders of that time, the blood thirsty Three Pashas. The government of Erdogan is following the 2 same basic directives, Ultra-Nationalism and Islamism. This has taken Turkey to support Islamo-Fascists in Syria and Irak (Al-Nusra, ISIS), prevent any sort of help to the Kurds in Kobane (since stopping the Kurds to cross the border to join the resistance to preventing humanitarian aid to cross that same border). Indeed, I think the Turkish goverment would be pretty happy to perpetrate a Kurdish Genocide (just think of the millions of Kurds that were displaced during the war with the PKK liberation army), but hopefully 100 years later they can't do it so clearly, and have to be a bit more subtle (support terrorist groups, send the secret services to kill Kurds in Europe, compare the YPG/JPG with ISIS...)

When I first watched Screamers, that excellent documentary about the Genocide where System of a Down (all of them of Armenian descent) guide us through this madness, it shocked me when they explain how the lack of response by international powers to the slaughter prompted Hitler to go ahead with the Holocaust (he declared in 1939, "Who remembers the Armenians?"). Indeed, Germany played a particularly disgusting role during the Genocide. They had Turkey as their allies, but Germany was the strong side of this alliance, so they could have forced Turkey to stop the murders, but they preferred not to bother "their friends", as the lives of the Armenians had no major interests to the "Reich".

If we wanted to find something "positive" in the tragedy, we could say that the survivors were forced to flee to different places all over the world, and over the years the Armenian diaspora has contributed a great deal to the different countries where they found shelter (they integrated and thrived, I think I've never heard about "Armenian ghettos" or something of the sort). In France this community prospered particularly, and has always had the support of the Government and the rest of the population. This week many acts have taken place over the country in commemoration of this madness, and of course Toulouse has not been an exception

Sunday, 19 April 2015

.Net 4 vs 4.5

Last time we needed to verify at work if one machine had .Net 4.0 or .Net 4.5 there was some confusion, so I'll gather here some information about this.

Years ago it was simple to determine the installed Framework version/versions, it was just a matter of going to C:\Windows\Microsoft.NET\Framework and checking what folders you have there. With .Net 4.5 this is not so immediate as .Net 4.5 is an in place replacement for .Net 4.0. This means that regardless of whether you have .Net 4.0 or 4.5, the folder with the biggest number that you'll find there is v4.0.30319.

You have mainly 2 ways to check your version, checking the Registry or checking the version of clr.dll.

  • For the Registry option you'll have to check this key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client\1033\version
  • For the clr.dll, you have to bear in mind that both .Net 4.0 and 4.5 use the same CLR version, version 4.0, but anyway the dll's are not same build, so if you check the version number of clr.dll (or clrjit.dll), if the last block 4.0.30319.34000 (not sure if that's the build or the revision) is 19000 or bigger, that's .Net 4.5. Of course I didn't find this on my own, I just got the information from here

.Net 4.5 is backwards compatible, so an assembly compiled for 4.0 runs seamlessly on 4.5. I assume that one application running on 4.5 can mix assemblies compiled for 4.5 and for 4.0 without a problem On the contrary, you can not run a 4.5 assembly on .Net 4.0. If for example you are compiling an application for 4.0 and you reference an assembly compiled for 4.5, SharpDevelop will ask you to change the target of your application to 4.5.

By the way, thanks to this I've finally understood what's the use of .Net Reference Assemblies (those assemblies located in C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework). As .Net 4.5 assemblies replace the 4.0 ones in the GAC, how is the compiler chain able to target 4.0 (preventing you from using classes, methods missing in 4.0)? The answer is that the compiler chain uses the Reference Assemblies (and you have there both the 4.0 and 4.5 ones) rather than the ones in the GAC. The Reference Assemblies are smaller than real ones, cause as they are used only for compilation but not for execution they have only the metadata, but the real IL code has been taken out of them.


Hopefully, after the Charlie Hebdo tragedy many French Muslims expressed their pain for such monstrosity and showed their support for the victims. Of course I don't think that normal Muslims have to ask for forgiveness or anything of the sort, as obviously they are not responsible for what some bastards do in the name of a distorted vision of their religion, but honestly I think it's fundamental that moderate Muslims make it clear that they don't support this madness and are totally against it. I am vegetarian, and if a gang of "radical vegetarians" put a bomb in a MCDonalds killing people of course I would not ask for pardon to anyone, but I would try to make it clear that I'm against such act.

However, other Muslims rejected to attend to the demonstrations, or for example rejected to wear the "Je suis Charlie" logo that all the rest of their football team players were wearing (e.g. 2 Montpellier players and I think also 1 TFC player). They would say that they were not Charlie because Charlie was offensive to Islam. I think any Muslim (or Christian or whatever, remember that the Pope basically justified the killings) that thinks like that is full of shit and is a fundamentalist (and if it were in my power would be expelled of this country to prevent him from spreading his sickness).

Why do I consider that being offended by a funny caricature of the Prophet makes them fundamentalists? Basically because they expect that non Muslims observe a Muslim rule, so they are trying to impose their religion. It's as if they wanted that non Muslims had to observe Ramadan. I understand that based on the Islamic beliefs if a Muslim were drawing the Prophet he would be committing an offence, but for a non Muslim the normal social rules of what is offensive and what is not must be applied, and under normal rules drawings like these below are not offensive.

I think Charlie Hebdo is incredibly respectful of Islam. First, because they have always established a clear distinction between moderate Muslims and Fanatic ones, and have confronted Fundamentalism. These are the best actions that one can conduct to fight Islamophobia, try to show the world that normal Muslims are not like that. Any moderate Muslim should appreciate this stand, cause they are fighting the Monsters that moderate Muslims should fight. Second, because Charlie Hebdo is very good at being offensive :-D so if they wanted to be offensive to Islam they would have published very different drawings... For example, their caricatures of Marine Le Pen are hilarious and excellent, but I admit that they are deeply offensive and even when I absolutely support them, I would understand it if they were sued for them. This week's front page makes a pretty good and beautiful example of what I say:

Thursday, 16 April 2015

Viyan Peyman and Ivana Hoffman

Those fighting in Kurdistan against the ISIS monsters (like anyone anywhere confronting any other form of fascism) are not just fighting for their people, they are fighting for all those of us who believe in individual freedom. These anonymous heroes are dying for us, so it feels painful to know about their death in combat. Recently, while visiting the very interesting site of the Comite de Solidaridad con Rojava y el Pueblo Kurdo, I came across with the sad news of the fall in combat of Viya Peyman.

She was a Kurdish Freedom Fighter, poet and a singer. A PKK member that after years of fighting for the social an national liberation of the Kurdish people took part in the defence and liberation of Kobane, and finally died in another combat against IslamoFascists in another part of Rojava. This video that shows her among the ruins of Kobane interpreting a painful song about the city is just devastating. I guess those rappers and MetalCore tough idiots that love to look like bad and dangerous guys in stupid videos singing stupid shit should be green envy with this video. That's the real life, that's a real tough and brave human being, not by choice but by need...

Viyan Peyman was her "war name", meaning "Will and Commitment". You can read more about this great woman here.

"We stand and fight, especially here in the Middle East where women are treated as inferiors," Peyman told us. "We stand here as symbols of strength for all the women of the region."

Last month Ivana Hoffman, a German citizen enlisted in the MLKP (a Turkish internationalist communist force deeply committed to the Rojava Revolution) also lost her life in combat.

Honor and Glory comrades, rest assured your sacrifice has not been in vein

By the way, last week I watched The city that beat ISIS, a short new documentary, filmed just when Kobane was about to be liberated.

Monday, 6 April 2015

Some DB Stuff

This made us lose some hours at work recently, so I'll write it here in case it helps others. When connecting to Sql Server using a Windows Account (Windows Authentication) the authentication will always be done for the Windows User that is running the Thread that tries to open the connection. So don't try to put a different Windows User/Password in the connection string thinking that it will try to authenticate with them, cause it won't work (you can find samples of connection strings that mix both things, like this:
Integrated Security=SSPI;uid=user;pwd=password

You better forget it, as I say it won't try to use that user and password as Windows User Accounts, they are going to be ignored and it's going to try to connect via Windows Authentication with your current user. What I'm not sure is whether that attempt fails it'll try to connect with Sql Authentication using that user/password, I haven't tested it. You can verify it here.

I find this limitation quite annoying, though I sort of understand why Microsoft imposes it, it's just the same as with the runas command and not being a to give the password as argument and being forced to type it. Microsoft wants to avoid .bat files and configuration files with passwords in them. For runas all what it manages is forcing you to use another tool like psexec (that well, now is owned by Microsoft). For connecting to SqlServer it will force you to impersonate a thread under that account or go one step further and launch a second process under that account. So in the end you will end up with a password in your config file. Obviously passwords in configuration files should always be encrypted. But if you put them in clear text, you end up with just the same problem that MS is trying to avoid. Eventually this Microsoft's policy of forcing you to use impersonation is useless, it adds no real security and can give you some headaches depending on your control (or lack of control with some versions of Entity Framework) on how/when the connection is opened/closed.