Saturday 22 October 2016

Honor to the Harkis

France is an amazing country. I can say this out and loud without risking to be considered a chovinist or something of the sort, as I have not been born here, I have no French nationality and I have a crappy level of French. I've just lived some time here and it has been enough to develop a certain feeling of belonging to it (which is pretty interesting for someone that never got any sort of identification with the coutry in his passport, just with a small "region" hidden between the sea, the clouds and the mountains). For sure this is not a perfect country, there are tons of problems: Islamofascism, la racaille, huge taxes spent in feeding people that don't want to be part of this community... but anyway it's a fascinating country.

The French Revolution, Laicite, an incredible culture, a last stage of the colonization "with a human face", the most amazing architecture in the world, an open, mixed and multicultural society... OK, OK, this post was not supposed to be an exaltation of the French nation, on the contrary it's to talk about a not so known disgraceful episode in its history.

If you are Spanish maybe you'll be thinking about the horrible treatment given to many Republicans seeking refuge when the fascist scum won the Spanish Civil War. I'll talk about an even more shameful episode (as it affected people that had fought for France), the Harkis. I prefer to use the term to refer to any Algerian Muslims fighting/supporting the French side in the Algerian independence war, regardless of whether it was officially integrated in the auxiliar units under that name.

You should read the wikipedia article, as I'm not plannig to resume it. I'll just say that to me what de Gaulle did, abandoning Harkis to death/torture in Algeria (see paragraph below) or interning in concentration camps the few that somehow (many times thansk to the aid of French soldiers disobeying de Gaulle commands) managed to reach France, is absolutely inhuman, an act of pure treason, that along with his decision to get out of Algeria rather than turning it into an overseas territory, places him, regardless whatever he did in the WWII, on the side of the monsters of history.

Hundreds died when put to work clearing the minefields along the Morice Line, or were shot out of hand. Others were tortured atrociously; army veterans were made to dig their own tombs, then swallow their decorations before being killed; they were burned alive, or castrated, or dragged behind trucks, or cut to pieces and their flesh fed to dogs. Many were put to death with their entire families, including young children.

What I find even more shocking of all this is that after the Algerian War the French government would be accepting an enormous amount of Non-Harkis Algerians. So France would open its doors to Algerians that had turned against France and supported the Algerian independence (but now were abandoning their beloved Algerian nation and moving to the "hated colonial empire" for a better future), while those ones that had spilled their blood to remain as a part of France were neglected or treated like beasts ...

In the last decades the French Government has recognized its responsibility in the Harkis tragedy, establishing a Day of National Recognition. I think it's particularly interesting the attitude of the FN, with its support and recognition for the Harkis, directly calling them "compatriots". This is quite interesting, cause while the FN strongly adheres to the disgusting idea of Jus Sanguinis (notice that for me the right to nationality should not be based on Jus Soli either, but in a proof of assimilation and loyalty), they accept a different (and quite beautiful really) condition to deserve the nationality, the blood risked or spilled (Français par le sang risqué et par le sang versé,). Anyone that (like the Harkis) has risked or spilled its blood to defend the French nation, is a French citizen. I really like this concept, and while I would consider it tragic and catastrophic if the FN ever reached power, it comes to show that it's not easy to consider them a real Far-Right party anymore. If they support that you can become a French citizan by your loyalty and your services to the French community, regardless of your DNA... it's quite difficoult to continue to consider them racists.

Friday 21 October 2016

AsyncEnumerable

This is a topic that has got me confused a few times, and now that I have seen a reference to something similar for a future ES version, I thought of writing a short reference here.

Let's start by a necessary clarification. When we talk about enumerating/iterating/looping in an asynchronous way, there are 2 quite different things:

  • Obtaining the item is not time costly and asynchronous, what is asynchronous is treating the item. This used to be the most common case for me [1] 2. It's what I've usually called async-loops. You would have a list of items and an asynchronous function to run on each of them, and you will pass as callback a function to continue with the iteration. I've written about it a few times. With the advent of async the code is now pretty simple, as the compiler takes care of all the heavy lifting. We now can write code like this (in C#):
    foreach (var item in myEnumerable)
    {
    await treatItemAsynchronously(item);
    }
    
  • The other case is when obtaining the iteration item is time costly and hence implemented asynchronously. Thinking in terms of C# and IEnumerable/IEnumerator, that would mean having a sort of async MoveNext. Then, the treatment of the item could also be asynchronous, so we would have case 1 and case 2 together.

This post is focusing on the second case. It would be nice to be able to write something like this (which is just "fiction syntax":

foreach await (var item in myAsyncEnumerable){}

I've read somewhere of awaiting for a method returning a Task<IEnumerable<T>>. That makes no sense. What we could do is to return an IEnumerable<Task<T>> and use it this way:


class FilesRetriever
{
public IEnumerable<Task<String>>> GetFiles(){...}
...
}

var filesRetriever = new FilesRetriever(new List<string>(){"file1", "file2"});
			foreach (Task<string> fileTask in filesRetriever.GetFiles())
			{
				var fil = await fileTask;
				Console.WriteLine(fil);
			}

That is not so bad, but there is a problem. It works fine for cases where the the stop condition of the Enumerator (MoveNext returning false) is known beforehand, for example:

		private string GetFile(string path)
		{
			Thread.Sleep(1000);
			return "[[[" + path.ToUpper() + "]]]";
		}
		
		
		public IEnumerable<Task<String>> GetFiles()
		{
			foreach (var path in this.paths)
			{
				yield return Task.Run(() => {
				                      	return this.GetFile(path);
				                      });
			}
		}

But if that stop condition is only known depending on the iteration item (stop when the last retrieved file is empty for example), this approach would not be valid.

We could think then of some interface like this:

	public interface IAsyncEnumerable
	{
		async Task<bool> MoveNext();
		
		async Task<T> GetCurrent();
	}

that could be combined with a new foreach async loop construct. The loop would get suspended and the execution flow of the current thread would continue outside this function. Then once the Task.Result of that MoveNext is available another thread would continue (the sort of ContinueWith continuation) with GetCurrent, its treatment and the next iteration of the loop. This feature should come with the possibility of doing yield return await.... I assume combining the compiler magic used for yield and await will not be easy.

I've read that there are some requests for something similar

, and one guy implemented a pretty smart alternative back 5 years in time

In ES land, they got the async/await a bit later, but they are striding to get this async iterators thing in the short term. You can read about the proposal here

Sunday 16 October 2016

Rotterdam

I had heard on some occasion about how interesting Rotterdam is from a Modern Architecture perspective, but I have to admit that having visited Paris-La Defense, London-Canary Dwarf, Frankfort (Mainzhattan) or Warsaw, I thought that I had already seen the best on offer for that in Europe (of course Istambul is not Europe, and as for Moscow... well, Rusia has little to do with my interpretation of what Europe means) and didn't expect Rotterdam to impress me. Well, I finally made it there a few days ago, and Rotterdam not just impressed me, it hypnotised me.

Of course Modern Architecture is not just high rise buildings, but for sure it's an essential part for me. Rotterdam is quite far from the highest heights in the E.U. (if you look here it does not show up until position 62! but it has such an amount of high rises (for me that means buildings above 80 meters) and scattered all over the city, not just in a specific business area, that I would say it's the most vertical city in Europe.

Most of these high rises are done with really good taste, some of the most impressive overlook on both sides that huge water extension that is the Nieuwe Maas, gifting you with an amazing skyline. Such an amount of high rises means that many of them are not offices, but residential buildings. That's great, because the idea of living in the 30th floor of a beautiful building (with a balcony as many of them have!) overlooking the river and with a view of this middle size metropolis is more than exciting.

For residential buildings, I loved these not so tall ones right next to the impressive new Central Train Station:

and also this 30-something stories dark twins:

Of course I really enjoyed the view of "De Rotterdam", "New Orleans" and "Montevideo":

that is even better when enriched by a "floating high rise" in the passangers terminal of the port:

I've always loved buildings with an upper part standing out of the base of the building. This is an amazing example

And as for the good taste of these constructions, these ones with dark brick facade and those green, steep roofs, along with their proximity to the Maastoren, just verge on perfection.

Not all the city is a continuation of modern buildings. There are many "very Dutch" areas, with 3 of 4 stories buildings in dark brick. Some of them are recent, but others seem to have a certain history behind (you should also note that while the Nazis raided by air the whole city center, other areas of the city were not affected). Furthermore, if you go to Delfshaven you'll find a good, and complementary, dose of traditional Dutch architecture and charm.