Fair warning: This articule is very technical and I’m not an expert on language analysis, I’m just a programmer with a problem to fix.

Extending strings in Localization

Think about the last time you played an online game. A competitive FPS, for example. The match ends, there’s a winner and the game displays:

Player xXxKillATonxXx wins the match

How can the game developers know in advance that Mr. xXxKillATonxXx was going to play? That’s either a string concatenation or a string substitution and sometimes game devs opt for the second choice. This means that in the source of the game we’ll have something in the like of (let’s not get in the discussion of if this is a good solution):

1
ID_WINNING_GAME = "Player {playerName} wins the match"

See it? that’s hell for QA. If you have, let’s say, 18 different text langs to localize: you need to be sure that those curly braces match, that the variable name “playerName” is correctly spelled on every language, and so on and so forth. That’s a reasonably easy problem to solve using RegExes but what happens when the UI team goes really wild and they allow something like this:

1
ID_WINNING_GAME = "<red>Player</red> {playerName} <blue>wins <italic>the</italic> match</blue>"

… well, in that case you don’t have a simple string anymore you have a DSL which is a way more complex problem to solve. And, from the QA perspective, it’s more difficult to track.

So at this point we have a combination of tags, variables that can be nested indefinitely, in a process that it’s incredibly error prone and very difficult to catch by eyeballing strings. It’ll also end in broken strings on screen during runtime, and that’s a risk for Certification.

And don’t forget that, due to grammar, different languages might have the tags in different places and maybe in different orders. The only rule is that any localized version should have the same tags and structure (in terms of tag nesting) than the source language.

Parsing DSLs, enters Pidgin

Facing that problem I had two alternatives: either program a recursive parser that’ll chew the strings and tokenize them properly, or use a more formal approach, in this case through Pidgin. The documentation of this library is pretty good and the test and samples folders contains a plethora of good small snippets that you can use right away.

So, let’s dig into this problem a little bit. For simplicity, I’m going to reduce the scope to single format strings that can be nested as much as we want, so let’s begin with the basics, let’s consume innocent strings:

1
2
Parser<char, string> Fluff = from f in Token(c => c != '<' &&
c != '>').ManyString()

simple enough, right? A call to Parse with that Parser will consume anything that doesn’t contain < or > and will be flagged as Success. On top of that Fluff also accepts empty strings.

We can make our lifes a little bit simpler by adding a bunch of simple parsers:

1
2
3
4
Parser<char, string> LT = String("<");
Parser<char, string> GT = String(">");
Parser<char, string> Slash = String("/");
Parser<char, Unit> LTSlash = LT.Then(Whitespaces).Then(Slash).Then(Return(Unit.Value));

so we have the basics of the language right there, LTs, GTs, slashes .. all the components. Let’s aim for something more complex, the tag Identifier, where we impose that the first element has to be a letter, in glorious LINQ like:

1
2
3
Parser<char, string> Identifier = from first in Token(char.IsLetter)	// "Token" makes this parser return the parsed content
from rest in Token(char.IsLetterOrDigit).ManyString()
select first + rest;

… we’re ready for consume a full string that starts with a format marker and ends with the closing of such format marker, something like this will do:

1
2
3
4
5
6
7
8
9
Parser<char, Tag> FormatTag = from opening in LT
from formatLabel in Identifier.Between( SkipWhitespaces )
from closing in GT
from body in Fluff // !!! Attention here
from closingTokenOpener in LTSlash
from closingLabel in Identifier.Between( SkipWhitespaces )
from closingTokenCloser in GT
where ( formatLabel == closingLabel ) // we assure that we're clossing the correct tag
select new Tag( formatLabel, body); // Let's imagine that you have this defined

If we’re lucky enough and the string that we need to parse is surrounded by a single format marker, this piece of code will take care of it and return a “Tag” object. That we’ll be able to compare and consume later.

But that’s not what we want to solve, we should change that call to Fluff for something that can potentially consume more tags that live embedded in the string. Also, we need to take care of a string that starts and ends with normal text and happens to have a Tag in the middle, let’s do that now:

1
2
3
4
5
Parser<char, Tag> tagParser =
from preFluff in Fluff
from items in Try( FormatTag )
from postFluff in Fluff
select items;

see that try modifier? That’s what enables the parser to backtrack in case of failure. In essence you don’t “lose the input” and you can use other rules. Incredibly useful. But still, we can’t consume several of this rules, let’s fix that now:

1
2
3
Parser<char, IEnumerable<Tag>> stringParser =
OneOf( Try( tagParser.AtLeastOnce() ),
Try( Fluff.ThenReturn(null as IEnumerable< Tag > ) ) );

That needs some unpacking:

OneOf accepts a sequence of Parser and will try to execute them in sequence for left to right, once one consumes input that one is selected, otherwise it fails. In this case we’re trying to either parse a tag or simple and innocent text.
At least once executes the previous parser one or more times and accumulates the output into an Enumerable container.
ThenReturn Let’s you return whatever you want once a Parser has completed succesfully, in this case we need to change the output of fluff from string to IEnumerable Tag. At the end, the goal is not to know what the string contains but just to ensure that the structure remains between different languages.

So, going back to our “FormatTag” Parser, we need to tweak it a little, with:

1
2
3
4
5
6
7
8
9
Parser<char, Tag> FormatTag = from opening in LT
from formatLabel in Identifier.Between( SkipWhitespaces )
from closing in GT
from body in stringParser // <<<<<<<<
from closingTokenOpener in LTSlash
from closingLabel in Identifier.Between( SkipWhitespaces )
from closingTokenCloser in GT
where ( formatLabel == closingLabel )
select new Tag( formatLabel, body);

And there we have it, nested strings, embedded indefinitely, with your memory as the only limitting factor in this solution.

This is, of course, an incomplete solution. But it covers the main points of the grammar in place: recursion and tag verification.

Some lessons

  1. Recursive grammars become incredibly complex to parse. Using TDD is a must.
  2. Chop, chop, chop your problem. Every parser should do the absolute minimum, combining cases is the shortest route to failure and headaches.
  3. Test for End() Sometimes the strings are empty or you want to check that you’ve consumed the whole input.
  4. OneOf + Try is a patter on its own. The library might have something more compact, but with my knowledge, I like to use it.

Not data driven, but flexible enough

One of my few regrets with this solution is that it’s not completely data - driven. Other 2-step solutions would’ve been more flexible. Imagine a grammar description in an external file that it’s compiled in runtime and ends in an in memory parser that you can use as you please. That’d been way cooler, but also more complex, at least with my current knowledge of this libraries and technologies.

Comment and share

We’ve been playing the new entry on the South Park games: The fractured but whole.

This is a game for fans of the show. If you aren’t up to date with it you’re going to miss a lot of references and gags. South Park it’s not for everybody, but I loved it since episode 1. There’s something about the creativity of the show that grabs me.

The story moves from a fantasy setting into a superhero game. Cartman and the kids go full blown Marvel Universe: Sworn enemies, franchises, plans for series, movies, comics, cross overs, the return of the glorious Mysterion and Jimmy as “The Flash”. Their mocking of Marvel’s production plans is on point and funny.
The first part of the game is narratively a little bland. But the second half is a rollercoaster of twists, gags, creatures with too many asses and super mutants. We laughed a lot playing it.
Maybe, the fart jokes can go a little bit stale after 12 hours of constant references to flatulence, winds and gases. Still worth it.

I played the PS4 version and it seems like some of the dialogues are dropped, the mouths are animated, but without sound. That was the only technical issue we encountered.

How does it compare to the first?

Well, first of all, it looks exactly the same as the previous one. It’s a South Park episode that lasts around 15 hours. Some of the loading times are a little long, and, believe it or not, I noticed some framedrops here and there. For a game that is moving nothing on screen it’s particularly surprising.

The finishing acts of the first game The Stick of Truth felt like a chore. Once the party was formed you keep persisting on the same moves and tactics. It was getting tiresome.

Mechanically, the new game is more tactical than the first part. The title abandons the Final Fantasy approach to combat and introduces a grid system. You can move your characters around and that makes a real difference. It’s a very simple game though, the combat is not the main selling point.

If you compare the game scripts, my opinion is that the first one is superior to this entry in the series. It has loads of memorable moments. The Fracture But Whole packs less punch.

The character creation has been modified too, now you can play with a girl. It’s not like anyone cares. Doesn’t matter if you create an heterosexual white boy, the rednecks will still go after scum like you.

In terms of duration, they’re very similar. And they’re packed with twists and classic South Park moments.

Want to see more?

If you’re interested you can watch the initial minutes of the game, including character creation from our stream last week (spoilers of the initial segment)

Comment and share

Previously in my blog [1] I wrote about the Catalonian independentism. But now it’s time to step up our game. We Spaniards are being played out by one of the oldest tricks in the bag: hypernormalisation. But what’s this about?

Here I should really take a stop. If you know nothing about Adam Curtis and his work, you should probably spend the next 22 hours watching his material and, just skip this silly blog.

What the hell is going on?

Brace yourselves.

There´s no reality. The linear narrative is dead. This idea comes from a Russian minister: the non linear warfare.

Nothing is true

After the enlightenment we accepted the linear reasoning. And this is what the Hypernormal theory challenge. The claim is that reality is fluid, flexible and arguable. And, in essence unassailable. The main point is that we can’t understand it, that nothing makes sense. The motives behind any action are so complex that no human mind can grab it.

Let’s examine what’s going on in the “Catalonian independentism” crisis. It seems like the separatist block has exploded in pieces. Some of them travelled to Brussels, the rest remained in Barcelona. Are they divided? Is the movement broken? No, it’s not. It’s non-linear warfare.

Many sides, acting in different fronts: Brussels, Barcelona, Madrid … The idea here is the simple notion that if you insist on an idea for long enough it suddenly becomes true.

While we pay attention to this, ‘cos let’s be real, this is helping everyone, the criminals walk free in Spain.

The next steps

I’m noticing that it might seems like I approve or support the current Spanish government. I don’t. The current president has to fall. And fall hard. He and his party has been accused of a number or grave crimes, he must end in jail, with many of the party top dogs, full stop.

But, for now let’s address the existential crisis.

  1. I hate that sheat, btw.

Comment and share

After so many words about the current state of my country, what to say next? What’s going on?
It’s particularly difficult to explain. Let’s take Mr. AteoTube for instance. Italian. In his 30s. Do you think he can “get it”? Nope … it’s challenging, and requires such amount of dedication that it’s ridiculous.

It’s been two very intense weeks. Politicians sending letters to each other (a legal recourse, obviously) veiled comments, strange maneuvers. And, well, a probably planned crisis that will last long. The first estimates are pointing to the 6 months mark. 6 months: of companies moving their headquartes and tax return location.

Companies

One of the main points of the separatists was that the companies, the biz, the hard cash. Will remain in the territory, given the vast superiority of the to-be-republic. Well, that has been proven to be, not exactly true. As in completely false.
At this moment 2 main banks, and hundreds of companies have move their “fiscal homes” to other territories. Madrid, Valencia, Alicante, Mallorca, Zaragoza and other cities are the new places of the bussiness.

So, that’s one. No reasonable company wants to abandon the EU in favor of a completely unexplored legal ground. They have interests to protect.

Attrition

We don’t know the intent of our (current) president. What is he up to? What’s the plan? We’ll see when it’s done. And that’s not something I particularly like. We’re not kids. We deserve to know. What is the state going to do?

What it’s clear is that this situation is a war of attrition. At this moment we don’t have trenches or violence. But we’re going to endure this long standoff. This makes no sense, it’s painful and will damage Spain, and Europe. This is our current president’s motto: “to victory through lack of action”.

I’m incredibly tired of this

Comment and share

Recent Spanish history

As I argued in previous posts, Spain is an ancient place. A political entity born centuries ago. What is not so old, however, is the Spanish democracy. We’re a young country in many ways. Let’s remember this moment from 1975:

… the death of Francisco Franco, the dictator. During his rule, one could argue that quite a lot of oppression happened. Catalonia and the basque country were cracked down upon. Starting at that time the new government decided to transition the Spanish kingdom into a liberal democracy.

This process was not without victims. During this time Spain suffered under the actions of 3 terrorist groups: ETA, Terra lliure and GAL. I can recall some of the killings and executions. In one occasion one of these groups tied a couple to chairs and they attached bombs to their chests making them explode in their living room.

At this point the “constitutional assembly” created the new fundational law of the Spanish state. And, right there, just under the first article, we have the acknowledgement of the “historic regions”. And then, we knew that such recognizement was a ticking bomb waiting to explode at any minute.

Democracy

During my childhood years government was synonymous with the Socialist Party. For 15 years they keep the parliament and the senate. Until this happpened:

… and that’s an interesting video. As I said in previous posts due the Spanish election law, the nationalistic parties have a surprising amount of representation in the Parliament, making them fundamental to pass certain laws, like the national budget[1]. In the 90s it was clear that something was going on in Catalonia. And let me illustrate with an example:

… that, my friends is a Catalonian dub of “Dragon Ball”. When I was 13 years old I could watch the daily show only if the weather was sunny and the mountains didn’t block the transmission. And that’s how I learnt Catalonian. Years after I understood that this made no sense. Why restrict the broadcast of such a content to a single region and a minority language? Well, the answer is pretty obvious. It was a tool, an instrument, to teach kids the “neo lingua”.

9th November 2014

This not the first time the Catalonians do this show. Let’s bring our sight back and remember what happened in 2014:

… another referendum. Same validity, meaning, none. And again our state let unsung civil heroes to burn and crash alone: let’s remember the lone school principal that was sacked after refusing to open her school to perform an illegal act. Spain is packed with Quixotic figures. We fight windmills, and we die alone.

Friends and relatives

The population of Catalonia is one sixth of the Spanish citizens. Every Spaniard has contact with some Catalonian, that’s unavoidable. And … in their view, they’re heroes. They’re fighting the good fight. Their motivations seem so pure, so prudent, so righteous, that it’s difficult to oppose them. But I have. It’s time to stop, it’s time to reflect, and to come to terms with reality.

This is the time of open borders. And great opportunities wait for us. The national identity discourse is irrational and silly. I’m not proud to say this but we’re living in a “global society” and, believe me, no one cares about Catalonian exceptionalism.

About corruption

We Spaniards are famous for being considered lazy (I can’t count the number of jokes regarding naps I heard during the last 5 years) and, a tad corrupt. And, sadly, that is true. The Spanish Government is involved in, at least 3 major cases of corruption and theft.

The Catalonian government is critizicing this heavily, while at the same time they’re involved in equally severe corruption cases, as was sufficiently proven during the 3% cases, or the infamous money packed suitcases.

  1. Arguably the only law that matters, really.

Comment and share

Choping nations

This is an interesting time for my homeland: Spain. Since the XV century Catalonia has been a constant source of trouble and malcontent. The claim is that “Catalonia is a nation“:

… a large body of people united by common descent, history , culture, or language, inhabiting a particular state or territory. …

… we can get into the very murky discussion about large, or perhaps history. In the case of a place that was, in essence, founded by the Carthaginians (check Barcino if you’re interested on that) But that’s not different that many other places in the Iberian Peninsula. My town, for instance has been inhabited for more than 2.2 millenia, some digs are even older than that. As so many other places in Europe, we have history by buckets. Regarding size, well, arguably there is more people in Catalonia than in the whole Iceland, so that’s a large body of people.

Let’s check the history of Spain as I know it. It’s one of the oldests nations in Europe. Born 5 centuries ago, after what we call the reconquer or reconquista it’s one of the initial bastions of what we nowadays call the “Western culture”. One would say that, back in the day, we had ballz of steelz as you can say of contemporary Poles. At the begining of the XIX century we created one of the most advanced constitutions in human history. I believe we should take a stop here. Italy, as an example, is 120 years old. Germany, as we know it nowadays, is a product of the WWI, younger than a century. Yugoslavia (as we knew it) existed for less than 50 years. Poland was an empire in the XVI century. After this, the existence of the Spanish state is a reality that we can’t discuss. However:

What we perceive as the political reality and staticism is such a wobbling entity that it’s almost comical.

States change, evolve and develop. Puerto Rico is a good example, the collapse of Argentina is also interesting, Korea (both of them) are also relevant in this discussion. Nothing is fixed. But all of these changes have a massive cost in suffering and sometimes, lives.

And, well, I’m old enough to remember this happening in the Spanish congress in February 23 of 1981:

As an european, I know that things can go bad, fast. In our history we have massive pogroms, holocausts, general random killing and, even randomer war. If you want to learn about attrocities check with the closest european, that human will give you all you need to know about apes behaving like monkeys.

In recap, and pretty obvious: political reality evolves. Societies take very long to form and stabilize and the road to chaos and civil unrest is short and fast. And, on top of everything, the idea of nation is so close to our beloved tribalism, that should be looked upon with utmost suspicion.

Here, it might seem that I’m taking a conservative position. In this issue, yes, I am a conservative. States are not toys. I don’t believe in good intentions and altruistic motivations. Nationalism is an illness that we should combat.

Catalonian independentism

Let’s be very clear. Catalonia is not oppresed by the state. Quite the contrary. Due to the electoral laws, the Spanish government has pivoted on Catalan parties for the last 20 years and that has resulted in quite a benefit for their interests. In hindsight the investments the Catalonian authorities did in education, some would say indoctrination, was the cornerstone of all this movement. Started 30 years ago they’ve build the citizens that we currently enjoy. Victims. They don’t go towards a goal, they reject and run away from what they perceive as evil and unjust. It’s, in many ways, a negative movement. It’s based in the simple idea that:

We’re not like you. Spain steals us.[1]

As the basques did with the infamous blood RH-, they claim to be genetically closer to the French that to the rest of the Spanish state. More irrational nonsense, but it’s the base of the narrative.

Spain is not a perfect state. It´s oversized and clumsy, like many European states. But it´s not the enemy. Madrid, for instance is an example of evolution and progress, ironically, under the nationalistic authority Catalonia has become smaller and poorer. Companies left the place, favoring either Madrid or Portugal. But they don´t seem to care or value that. The wellfare of their population is secondary to the identity question. And here is where I draw the line.

Let´s draw a parallel between human psyche and states. Let´s think about the question: who am I? The teen angst is almost palpable. And that, for me, is the key of this issue. That’s a completely sterile discussion. Navel gazing, self centered, and utterly neutered ideas only led to catastrophe. There’s a reason why we left such indagations behind us. We open up and act in the world. From a fake sense of victimhood where we’re constanly aggravated, we walk in the world and start transforming it.

What now?

I might lack imagination here but I can only imagine two outcomes after this.

  1. My country collapses. It wouldn’t be the first time this has happened. A shitload of suffering and pain will ensue. Every citizen will get poorer and will loose some of their civil rights.
  2. The crackdown. The state reacts (at last) and incarcerates the heads of the seccesionist movement. No force is restrained. From that point we face years of civil unrest and disorder.

In both cases we face recession. The country needs to be refounded. And our collective nightmares come true. We’re back at the hands of the authoritarians.

Gents … ¡Viva España!

  1. Information made public by the Spanish tax agency shows that this is not only a lie, but quite the contrary, the Catalonian regions are inmensly benefitted.

Comment and share

The last weeks have been intense in many ways. So let’s get into detail.

Weaponizing cat GIFs

My family is big. At one point I had around 12 uncles and aunts. With their SOs and children, dogs, hobbies and all the rest. One of my aunts decided to create a whatsapp group and she added the whole bunch to it. It was a good idea. Family matters more than pretty much anything else. However there’s a catch. Given the limitted topics that can be discussed in such a narrow group of people [1], this conversation tends to follow some predictable patterns:

  • They send pictures of their children.
  • Weather comments are encouraged.
  • Random meme forwarding, mainly covering local politics are, ermh, tolerated.

And. Well, I think I get it. But this group lacked my voice. What can I say? In Warsaw the weather is nice? Or, I solved an issue in a massive entity framework codebase? Nah, not really. It’s a weird position to be in. I want to take part. But I don’t believe I have any reasonable input to these people. And then, … everything became obvious. Let’s use the hive mind, let’s … become the interneCs. And there’s just one way of doing so. By sending cat GIFs.

And this is what I learnt: you can stop any conversation in any digital media by a well placed cat GIF. Simple. Effective. Evil. And this deserves some deeper analysis. By doing so, are we improving the world? [2] Well, perhaps; who am I to answer such a deep question. What I know for sure is that it works. When they know that any BS is going to be answered with some brief movie of a cat doing catty things, somehow they loss some of their motivation. And this makes everyone lives a little bit better.

The dark ones

For the last 2 years I’ve been following the US campuses news with interest.

You must understand that I spent my university years in a tech institute. 95% boys. No beer allowed in the campus at all. It was just us, and advanced calculus. During that time I grow completely dettached of anything human[3]. Only the machine was relevant. What will it compute? What’s the intent of this piece of code? What are we trying to achieve?

During those years, I never, and I mean it, I never thought about the lack of ladies. It was the situatcja. It was reality, nothing you could argue with. 15 years after that I was hired by DICE and a new period just opened. There, the situation was different. The lady proportion was higher (but not by much)

And here is when everything started.

I was introduced to the world of the Politically Corret[5]. It was, and it is, a battle on language. Reality morphs. Timeless concepts are no longer valid. What you believed it was reasonable it’s now dead, unreasonable and bigoted. And that, … that was a shock. But … what the hell was happening?

  • Knwoledge evolves, get up with times.

This is true. I guess. Dunno. We’re just newcomers in this life race[4]. But the problem with language is that any change propossed to it is a blatant challenge on the individual conception of the world. Through this lense, accepting new terms is not exactly a cheap matter.

On the other hand, as we advance and get a more nuanced vision on everyday issues, the appearance of new words is, in essence, unavoidable.

  • Agendas, everywhere.

And here comes the problem. When you’re exposed to a new wording of a known fenomena. What’s happening? Well, in my view the problem arises with the intent of the person that is introducing this new concept. A reasonable question to ask is “what’s the intent of this individual?”. And here is where everything comes apart.

  1. The issue with feelings/awareness.
    And here is where my problem begins. I guess. But, how much data do they contain? And, again, the answer is “not much” really. More in the future.

  2. Working with new facts:
    This is the real double whammy.
    When facing new realities there is no darkness is just[6] us and the new reality. It’s painful. But at the end of the day, better for everyone. But, my question here is: how often can a new fact be uncovered? Because my intuition is that this could happen only on particularly extreme cases. In this light I tend to revert to case 1.

Smurfling songs

A couple years ago, during Christmas. In a strange Saturday morning mood. I decide to make the best kind of present to my close friends: a smurfled version of a particularly sexist song from the Spanish 60s:

  1. Mainly for civil reasons. I mean, everyone has that weird-brother in law. And I’m not different that anyone, that’s for sure.
  2. I discovered a couple years ago that the vast majority of the rethorical questions are supposed to be answered “no”.
  3. Yes, it was like become a SEAL but with an HP Unix mainframe.
  4. A reference to the red queen race, btw.
  5. At that time I discovered the idea of “feelings” in discourse.
  6. Me.

Comment and share

What a beautiful weekend we had. Both Nacho-the-man-the-lengend-Banan and my brother visited us. They’ve been walking the city and trying every kind of Pierogi you can imagine. We had some drinks, a lot of meat, and had the opportunity to check the city life. Here’s the LEGEND.

I’m sure it’s been a good change of pace for both of them. My brother is enjoying slightly colder days, and Nacho just went back to some summersies shennnnannnigans. Let’s share some pictures of the trip, again, took with my faithful GP4.

On a completely random order, this is the Bald Penguing pub. A fantastic place on a very hipster (?) part of town.

and, from the other side …

They’ve been in parks, streets, restaurants, … but this was, IMO, the highlight of their visit:

Warsaw Rising

This huge place is devoted to keep the memory of the events of August 1944. After too many years of German occupation the Poles are organized and ready to face impossible odds against a retiring but extremely dangerous and hardened 3rd Reich. This museum follows a chronological route from 39’s invasion of the country to the final Soviet occupation.

They have two very informative and cool pages, the Museum main page and the more chronological and informative: Warsaw Rising … for the last link you’ll need some time and some dedication since it’s jampacked with information, graphs, even movies from the time.

The visit follows the development of the events from the Nazi invasion during the end of the 30s untill the mid 40s. They have some real debri from the royal palace in exhibition:

… cover the state of the Polish army and the challenge they faced during the first invation. And let’s not forget that they were trapped in a pincer move between the soviet army and the german army, as it’s described here:

The museum goes in very deep detail about the war and what was going on with the exiled Polish government in the UK. This is the kind of things they have on exhibition:

And a section devoted to soviet propaganda and the actions of the secret police:

… quite an informative museum. All and all, an horrifying place. Where you can discover the extent of the word “monster”. A section that shocked me were the memories of a Wehrmacht soldier describing the weeks where the Germans decided to shell the city out of existence.

Comment and share

It’s been a long time since my last update. And there’s a simple reasons for that. I changed job. I moved to Poland to work with the amazing CD Projekt RED. Now I live in Warsaw and I’m part of both Gwent and the new title of CDP: Cyberpunk 2077

This city is an amazing place. It feels so close to Madrid. Vibrant, active, everything is constantly open … I’m liking it a lot.

For now you can have some of the latest pictures I took: here you have the block just next to Pawilon:

This was an interesting day. I was crossing the city south to North. I was looking for a 4th edition of Vampire. And I visited 4 different comic and games shops. None of them had the book, but I discovered new and interesting places.

Nowadays Poland is experiencing some political turmoil, but sadly I still don’t have a full grasp on the details, however I was able to capture this:

… a protest regarding the composition of the new supreme court. Pretty interesting stuff. Something that makes me think about Spain and its political system too.

It was such a warm day that Warsaw water deployed a truck to keep people hydrated:

… and last but not least, a shout out to the Polish public transport, with the lovely trams and buses:

Good stuff kids …

Comment and share

Last May I decided to take swimming more seriously. After talking by my friend Carlos I just accepted that my technique sucked. As with any other sport you need to consider both your strength and your technique to do real improvements. I was obssesed with strength and had a fight with the water instead of working with it. As technique goes, I started working with the material of Total Immersion. That makes a lot of emphasis on body rotation and balance on the water. It’s good stuff if you’re new to swimming or want to explore other styles.

Obviously technique is way more influential than raw strength. This is what explains the grandmas wooshing and passing over. According to Taormina the relation is around 80% - 20%. In any case is the combination of both what makes a well rounded swimmer.

Increasing strength

I didn’t want to start lifting weights for two reasons. First I’ve never done it and I know nothing about technique. It’s easy to get injured with weights so kids, be careful. And second I somewhat dislike the gym thingy. I wanted something to do at home at my own pace and without too much hustle.

One day I crossed paths with Mr. Tsatsouline (conveniently packed in an interview with Tim Ferriss) And then, the world of the kettlebell was just revealed. Here’s the man himself explaining some presses at his gym:

And that’s it. A kettlebell. A cannonball with a handle. The simplest thing.

But as I said, I am very technique conscious about moving heavy weights. For training the basic movements I got a copy of Enter the Kettlebell and went through the drills again and again untill I was confident enough to do series of swings and get-ups and ventured a little into snatching and pressing.

Looking to expand my knowledge I checked the appropriate subreddit about it I can recommend it. It’s a nice bunch. Interestingly, in that community Tstsouline is not that much loved. But I think it’s fair to accept that he was pretty much responsible of the popularization of this form of exercise in the US.

And then I wanted a program. To apply some method to my madness and be able to track progress. A framework. One of the most recommended programs for getting real with KB is Pavel’s Simple & Sinister This is a good review of it:

That’s it, just swings and get-ups. Short and designed to be combined with other activities, it’s the complement I needed for my swimming.

ok … about all that, but are you swimming faster?

Maybe 3% faster. But I’m having a great time and it feels good.

What’s going to be the next gimmick?

Was thinking about introducing elastic bands in my traning. They’re very versatile, pack nicely and keeping them at home is not difficult.

I’ll write about swimming technique other day, I pinky promise.

Comment and share

jc_bellido

My name is Carlos Bellido and I work coding games in Stockholm. I rediscovered swimming and gymns after moving to Sweden. Keep in mind that Kalles Kaviar is an an acquired taste.


I work in the audio department in FatShark