WC 2018: Day 6: African Might

Senegal 2 - Poland 1

African teams are always passionate and hard-working which makes them fun to watch. And there will be some lone star in those teams who would play many roles – motivator, leader, and executor. Sadio Mané might not be Didier Drogba but he still infuses a lot of enthusiasm among his teammates. Senegal displayed all that might against Poland. It was refreshing to watch them go on with the same stamina and power in the 90th minute as they had in the beginning. They were skilful in the midfield, had a solid defence & nice strategic gameplay. Some of their issues lie when they enter opponent’s penalty box. Their shot selection, execution and collaboration in there was weak. Also, they need to work on their set-pieces. Mané seemed pale and was playing way back. Maybe coz he was not sure of the kind of support that he gets while playing for Liverpool. Or maybe he was saving his skills for those big matches. I would like to see them in the next round(s).

WC 2018: Day 5: Belgian rise and English dilemma

A day with less drama. Still, England maintained their tradition of displaying careless game-play in the world cups.

Belgium 3 - Panama 0

It was a game between a team of battle-tested individuals against the World Cup debutantes. And it concluded with an expected outcome. But Panama could constrain Belgians in the first half. In the second half, their legs gave up. Belgian game in the second half had glimpses of fine play which is worthy of a notice. Belgians might have a good shot at the crown, unlike their group mate –England

England 2 - Tunisia 1

English struggle in world cup finals continues. They took 91 minutes to score the winning goal. Against a team which struggled to keep the ball to themselves. Even though the English players pushed deep most of the time, their game was unconvincing. It will take a lot than what the English have showcased for a better progress this time.

WC 2018: Day 4: Day of Shockers

All matches today resulted against any cat, pig or expert’s predictions. It’s a fine day for football when the team that persevered got to keep the fame. And in all three matches, it was the underdog that shined against the stronger but poor opponent.

Germany 0 - Mexico 1

A stunning match giving this World Cup’s first stunner. It had the highest number of shots on the goal by both teams (Germany of course more than Mexico). And highest number of stupid one-on-one misses by the Mexicans. Mexico gets more score coz of their tactical gameplay. They applied the same counterattacking strategy that the Germans used 4 years back. Mexico lacked individual skills in & around the penalty box. And hence failed to convert all those straightforward one-on-ones. Still, they stood their ground against the German blitzkrieg.

Brazil 1 - Switzerland 1

One could not have missed the Swiss brilliance in this high stakes game. Whether it’s fouling Neymar or testing Brazilian defence. While in the previous game teams played in someone’s penalty boxes. They hovered around midfield for this game. Brazil, after last time’s debacle, has changed their coach & their usual gameplay. As they try to mimic the Europeans. They dragged up the midfield, lost control of the ball with measured short passes. And had a weird defensive attitude. All that was completely opposite to their natural samba way of dancing around the field. Also, it’s high time people stop idolizing Neymar. And start pointing out the frailty both in his game & in his presence on the field. Along with working on his free-kicks Neymar should spend some time in gym. So that he does not behave like stack of boxes crumbling down with a hint of air around. As a devout fan, I am still not convinced that Brazil is ready to wash off last times’ wounds and that hurts.

WC 18: Day 3: Advent of Technology & Icelandic Wall

Somehow I could never appreciate use of unnecessary technology in sports. They diminish the charm of human nature & it’s flaws to produce something highly mechanical, predictable & boring. Cricket is already progressing towards such a future of replacing human umpires with robots. Football has avoided such modern luxuries till now. Not any more.

France 2 - Australia 1

Both goals of France were thanks to the technologies - goal-line & VAR which were the only interesting situations of an otherwise boring match. Australians had a highly defensive strategy against an half-hearted France.

Argentina 1 - Iceland 1

Messi’s folks could not breach the sons of Iceland (pun intended). It’s sad to see Messi giving everything & failing in front of the Icelandish giants. Apart from blocking Argentine attack they could also show huge gaps in Argentine defence. These are exactly the kind of games fans like us tune in to the World Cup finals for.

WC 2018: Day 2: Last minute surprises

As Yogi Bera rightly said

It ain’t over till it’s over

All games yesterday had some tricks to offer in their last few minutes.

Uruguay 1 - Egypt 0

It was a game between hard workers & opportunists. Egyptians played hard as Salah watched from the sidelines hoping his team to hold on for few games. They made most of the tough moves against a team who are half-hearted during most of the game till they got their act together around final 5 mins. Suarez was useless and Salah helpless. Hope their fate changes in subsequent matches.

Morocco 0 - Iran 1

An anti-climatic finish to an otherwise fluid game, especially from the Moroccans.

Portugal 3 - Spain 3

A much-hyped game which got overshadowed by one prized individual’s immaculate skills. Ronaldo’s equalising free kick in the dying minutes was what we call in India total paisa wasool (bang for the buck). It was so good that Spanish goalkeeper also paid respect to it by just seeing the beauty swirling inside. Spain dominated most of the game playing passes to each other (what they call as tiki-taka). And Portugal waited for Ronaldo to sprint, kick & bend.

WC 2018: Day 1: A perfect start

Russia 5 - Saudi Arabia 0

The mood of this match was as casual as the ones of their leaders watching from behind the glass. Saudis were never interested in the game. They never shot on target during the first half and only a couple in the second. But, the 70,000 + 11 Ruskies were enjoying the moment. It was a perfect start for the host nation. But they have a long way to go.

2018 World Cup Journals

I’ll be journalling my reactions to the matches starting tomorrow like I did 4 years back. As its happening in Russia this time, most of the matches are during Indian evenings (few of them are late night). Which makes a nice after-work evening setup. But now I’ve got a 2-year-old which might make me watch fewer matches than I would want to. Nevertheless, I like to write my feelings every 4 years so I would try to catch one match every day (I hope !).

I have always been a supporter of Seleção and yes I got disappointed last time. It’s not easy to change your darlings after years of emotional investment. I hope Brazil reach at least till quarters. But it does not matter as I like to write about the beautiful game which is beyond a particular team.

Bravehearts vs Champions

When Klopp came to Merseyside 3 years back he said his number one priority is to focus on defense. I wrote then that I wanted no miracles from him and rather let local fans let him do his thing. Now after 3 years, Klopp might not have fixed Liverpool’s defense but fans supported him on his weird player pickings, on-field fanaticism, and heavy-metal game play. And all that got us to the showdown tonight.

Last time when Liverpool won Champions League, I was in the final year of my undergrad with no access to a live game. I came to know of the achievement after many days. No enthusiasm. Since then, it was a dream to witness a similar situation. For me, playing a Champions League final is a much major achievement than any other league including winning the Premier League.

It’s nothing short of a miracle to reach this final with the current team. I would give most of the credit to Klopp (apart from the Salahs & Manes) for infusing the bravery among all of the players to believe that only way to win a game is by scoring goals. And no wonder Liverpool is the team with the most goals.

Whether Liverpool could continue the same fluidity & hunger for goals of the previous matches tonight against a team that are born to win this cup is not the point. The point is for how long they could do that. Longer they challenge Real, stronger the chances of glory.

I will be watching my dream come true tonight and would love if they could get the cup the sixth time. But it does not matter.

You will never walk alone

Retrospecting 2017

From Typeclassopedia’s Functor page

Intuition will come, in time, on its own.

This year’s highlight, for me, is the shift from Scala to Haskell.

I started the year with a lot of enthusiasm continuing programming in Scala. Focussing on the functional side of things, I chose cats shapeless, akka (especially the streams) & monix for various use-cases where they seemed fit. shapeless was really interesting & mind-bending at the same time, hence I worked my way through Type Astronaut’s Guide to get a better grasp of it. I managed to solve relevant tasks elegantly using these tools and I was happy the way I was progressing.

At the same time, I was also drinking a lot of kool aid reading papers & blog posts to further my journey in the beautiful land of Fun Programming. Most of those text contained code in Haskell, of course. It got gradually difficult for me to continue understanding those codes without a proper understanding of basic tenets of Haskell. So I decided a digression to actually learn Haskell, just so that I could get a proper understanding of those pedagogy and then will come back to Scala to implement leveraging that acquired knowledge.

So I started with the Haskell Book and, honestly, the first chapter on Lambda Calculus half-converted me. It was really shocking to me when I realised how the kind of reasoning that we can do with Haskell programs, mostly due to its strict ideological stance to remain pure whatever it takes, can never be done with Scala. Never.

This realisation became more apparent as I went back to those papers & posts & realized how people implicitly leveraged that same purity for their ideas. The nice thing with Haskell’s purity by design is that it never cheats on you. Which is not the case in Scala, and I discovered it as I went back to all those codes of mine and observed them now with my new lens of purity. I tried to refactor but it got really complex & lost all its elegance.

Pure functional programming provides referential transparency for free & thereby resulting in equational reasoning. And all these results in sleeping peacefully at night. These known heresies become real in Haskell. Scala just gave an illusion of them but I found very late that they were all lies.

Scala’s weird syntax never bothered me much, also when programming with higher-kinded types. To me, semantics mattered more. But with Haskell, that trade-off also went away. Now I believe that Haskell’s syntax is the only natural way of writing expressions.

I worked my way through Haskell Book, few other online courses, and some side projects (one of them was migrating this blog to Hakyll). But then LambdaConf videos came out especially the Let’s Lens workshop from Tonny Morris. I had watched Kmett’s talk on deriving lenses and could not get most of it. Tony’s lets-lens exercises provided the best progression to eventually understand Kmett’s derivation of lenses. The video was also interesting for me to help understand how people actually think when writing Haskell. There were many enlightening moments in that 6hrs long video that really gave me a lot of confidence in writing Haskell for everyday programming.

I met Tony in person at Functional Conf this year. Got a lot of unconventional wisdom, worked my way through his superb fp-course and all that boosted my spirits to write more Haskell.

I consider this year to be one of the most productive years personally for me. I wrote & read a lot of Haskell code. Both of which I feel is highly necessary to build intuitions.

I’ve read complaints on Haskell’s community & it’s availability of documentation. My experience was very different though. I learn a lot hanging around in Haskell IRCs and also lately the Scalaz IRC! I think most of the Haskell related blog posts actually are of higher quality than the ones written with other languages (esp. Scala). Haskell requires a different way to think about solving problems and with that respect available pedagogy is really good. There will always be a scope of doing better and I think people like Julie Moronuki are trying to make that happen.

Haskell made me value the importance of science in Computer Science and hence I believe understanding the underlying theories is absolutely necessary to write any significant code in Haskell. With Haskell, I believe, the concept of design works the same way irrespective of whether the context is small/local or large/distributed. And that’s only possible on account of those underlying mathematical/logical foundations. There are enough prior arts in Haskell community where a theory that applies to a basic program can be lifted at a system level to achieve something big (e.g. haxl, lens). And that’s the beauty of designing programs with Haskell - if done properly (i.e. polymorphically), it liberates the implementation from the shackles of any kind of contexts (execution or deployment).

Apart from Haskell & Scala, I wrote few boring machine learning/statistics code with Python & a good amount of shell scripts 1. I deliberately stayed away from writing any JavaScript this year. But I had to review a lot of them (which is a whole different story).

Among new frameworks that I played around this year, Kubernetes (K8S) & Nix are really the coolest ones. K8S is kind of a beast. I am still grappling with all the concepts there but it will be a big part of my professional life next year so maybe I might talk more about it in future. Nix is a personal interest of mine as it’s kind of a darling within Haskell community and I really like the underlying ideas.

It won’t be surprising now that next year I am planning to write more Haskell. It has taken me quite a long time to learn the concepts by reading a lot of theories, working my way through toy programs & reading a lot of code. And I’m looking forward to doing more of those next year as well. But one of my primary goal for next year is to use Haskell to solve some real-world use-cases that I would be expected to do in some other mainstream languages. And apparently, Haskell fit right into some of my ongoing interests for next year like new ways to do distributed computing & knowledge systems.

  1. Automation & AI are the current marketing gimmicks around Enterprises

How to play WWDC Session Videos in Chrome ?


Oh you can’t

Gruber few days back was praising Safari

Safari is Apple’s browser for Apple devices.

I think it should be

Safari is Apple’s browser for Apple devices to serve Apple’s walled garden interests.

The keynote is available in YouTube so every browser could play it, same keynote in Apple’s website could be streamed in every browser but none of the session videos could be streamed in any browser other than Apple’s own Safari and they are not in YouTube. Any guesses on why such discrepancy !

In the What’s new in Swift session, presenters were talking on some new features geared towards server side Swift. Unfortunately, all those developers who are in Linux using Chrome thinking about using open source Swift for their next system software or server side usage can’t see / listen them.

There is always the option to download SD (min. size 400 MB) / HD (min. size 1.4 GB) videos of sessions, am sure that’ll be a really nice experience.

Apple’s support handle in Twitter is confused about it and developer forum is mum.