Good2Great

I finished this book during the week. It is about how good companies became great ones. They set some tough requirements as 15y performing below market and then after a transition point, 15y performing three times above market. The book was completed by 2000 so just in the middle of the .com bubble so I would be curious what the result would be now (and after the subprime crisis in 2008). And all of them are companies trading in USA and public markets. As well, for each candidate there is a counterpart to demonstrate how two companies in similar circumstances, became one great and the other not.

To be honest, from the eleven companies passing the exam, I knew five: Gillete (shaving stuff), Kimberly-Clark (paper based things), Phillip Morries (tobacco), Fannie Mae (mortgages, that collapsed in 2008 crisis..), Wells-Fargo (bank). And I was surprised for the lack of other big names.

It is interesting the history of each company and most of them related to very different sectors. So there is no really lucky strike as the study covers nearly 30y history of a company.

So the goal is to identify the traits that all these great companies had to made that transition.

The book treat the following points in each chapter:

  • Level 5 leadership: Leaders no super-stars. They are ambitious about their company and not just during their tenure. I like the example of those CEOs, people who didnt have big head and just looked through the window to explain their success. So it is that mix of humility and will that “create” them.
  • First Who, then What: Your biggest asset is the good people, no just people. So having the best ingredients and knowing how to use them, you will get a great meal. As well, you need to get rid of the no good people. This is something the level5 leader has to accomplish. So hiring is a critical part (or have the process to form these people) and dont hire until you have your candidate. And looks like money wasnt the main thing to get or maintain the good people in your bus, comparing with the counterpart companies.
  • Stockdale Paradox – Confront the brutal facts, yet never lose faith. This is based on the experience of a Vietnam war prisoner. “The optimistics” were the ones who didnt make it out. All these companies faced a challenge that after passing it, became great. They didnt ignore the reality but believed they could go through.
  • Hedgehog Concept: This is the concept I struggled more to understand. This is based in the hedgehog and fox paradox. In summary, the fox tries many different things to hunt the hedgehog, but the hedgehog always sticks with the same plan (become a spiky ball) to defeat it. So this is based on Keep It Simple Stupid (KISS) from my point of view. So see the complex world and simplified it, you focus in the essential and ignore the rest. From the business perspective this translate into the three circles:
  1. What you can be the best in the world at (and what you can’t be the best too)
  2. What drives your economic engine:
  3. What you are deeply passionate about: This is not just get passionate about something, you need to have it before. Wrong example.
  • Culture of Discipline: If you have that, you dont need hierarchy and motivation. This is based on disciplined people, disciplined thought and disciplined action. Two interesting points in this chapter are
  1. Budgeting: Based on the hedgehog concept, it is just decide what areas to be fully funded and what not at all.
  2. “Stop doing” list: Again, this is another point in just focus in the important thing.
  • Technology Accelerators: You would think that technology made some companies great. But the summary here is, technology was just a tool. You buy the technology or develop it to stick with your hedgehog concept.
  • The Flywheel: “Revolution means turning the wheel”. So you need to push the flywheel. At the beginning is hard, but with time, once it gets momentum, get easier. So this is based on a compound investment of effort, and there is no miracle involved. And the results will speak by themselves. This contrary to the doom loop where you avoid the buildup, just implement big/radical programs, without thinking.

And what after being great? It is to last as great. This is another book from the author that was written before this one about this concept.

So, based in the book, all these concepts make a great company, but it is not the recipe to last forever.

Gillete was merged by P&G in 2005. Fannine Mae didnt do very well during the mortage crisis in 2007/8. Tobacco is not healthy business, etc.

In summary, interesting book, as I used to think only the “big” corporations, famous CEOs were great companies (at revenue level) and here you can find more successful companies (at revenue level) with much less glitter around beating them very badly those for long runs.

The Antidote

During this holidays, I finished “The Antidote“. I think I bought it based on some article from Mark Mason. I was a bit sceptical because I didnt really understand the concept of “Positive Thinking”. In the first chapter, got the point quickly.

Main subject is focused on the wrong approach to extreme positivism and how could be better to focus in the negative, because the way we are defining happiness, we are sabotaging ourselves. That can be difficult to swallow and even more difficult to explain for me. But it is mainly based on the concepts of Stoicism and Buddhism. You are not your feelings, you are not thoughts, and you can’t control others or anything external to yourself. We can’t remove suffering from the world.

As well, there is another chapter for goals. I think it is important to set goals, meaningful ones, for your life but the some extreme (again) goalsetting is counterproductive.

One thing I liked is how we put in a pedestal successful people, how we write and read about them, how we try to find the magical formula for that. But we never read about the failure. And it was quite interesting to read that there is a museum for failed products, that is rarely visited from product managers, marketing executives, etc. The older I get, the more I realised that the kind of success we cheer and read in our cut-throat capitalism, it is just a mere coincidence and probability. I am pretty sure we could find hundreds of examples from people who have the same treats as those successful ones, followed the same process, and failed miserably. So yes, embracing failure and being comfortable with it, is something I believe (and I need to put in practice more often)

As well, the book talks about insecurity and death (memento mori). For the insecurity subject, he makes a lot of references to the “Wisdom of Insecurity” that I have already read but to be honest, I struggled with it. And again, the extreme obsession with security, it is counterproductive, and it is a return again to Stoicism/Buddhism concepts. And for the obsession with death, we are missing the point of leaving the current moment, and accept that is part of “life”. The book mentions “The power of Now” although not directly in this chapter. I have that book in my pile but struggled with it in the very beginning and had to put it back. I will have to give it another go.

In general, I liked the book, it was better than I expected. It touches a lot of subjects that are important for me and I want to follow and I needed a refresh, as I think I lost track lately.

Scotland

This week I have been on holidays. I needed a break nearly after a year from last one. I decided going to Scotland as I didnt have to fly, deal with COVID restrictions and because it was so close that I am ashamed of not visiting after so many years being around. And a good friend joined me.

My main goal was being outside, seeing the highlands, trekking a bit. And visit Edinburgh as many people has recommend it.

Firstly visited Isle of Skye. I drove from Edinburgh and it was a bit of a challenge as I am not used to drive with the wheel on the right and it was long drive too. But the views were amazing, so many mountains (some with snow) and so many lakes.

I visited the Talisker distillery as my friend was keen of whiskey. It was interesting to learn that most whiskey distilleries in Scotland are managed by Diageo group. The tour wasnt very good as it was too quick and didnt have time to see the whole process but I realised that this is not an artesanal product anymore. It is like a car factory chain process. A part of the process is done in the distillery and the others in some parts of Scotland. Still I was nice to “taste” different kind of whiskeys. I learn that each year in the barrel, it loses around 2% alcohol. So the longer it stays, the lowest alcohol content it has. And with each distillation, you remove some % of alcohol, as it is toxic for human beings. I am not good at drinking alcohol but was interested in the flavours. The “smoky” flour comes from burning “peat” when drying the barley. And “peat” is only found in some parts of Scotland. As well, the smokiness relates to the colour too. The ingredients are water, barley and yeast.

The main trekking we did was the The Storr. I really enjoyed. It was the best part of the trip for me, when returning, we stopped to enjoy the silence and the rain. I wish we could have walked the whole day.

We tried to walk in other places but it seemed the car parks were closed until June. At the end we drove the whole north part of the Isle stopping in some other places.

We stayed in a typical cottage and it was really good, very cosy.

Then we went to Glencoe to hike somewhere else before sleeping in Oban. It seems Glencoe was featured in Skyfall movie although the house is not real. I lost GPS/4G when getting close to Aonach Eagach and by mistake we did a totally different route, the “hidden valley” or Coire Gabhail in the Three Sisters. And it was nice, we climbed via a river birth with some nice waterfalls until a small valley. Although the best part was eating our “bocata” in the car park facing the mountains after the trekk.

Oban is a small city but it was nice. We visited Oban distillery (part of Diageo) and it was better experience, although the tasting crashed me one hour after… Here is where it was better explained the process and the different types of whiskey. We tried whiskey from a barrel (aprox 10y), that was over 60%… We learned about the blends, single malt and why it is difficult to state the age of whiskey when you change to a different barrel to give a last kick in flavour. As well, it seems all barrels comes from USA bourbon production because they can’t reuse them. It seems it was an initial rule to keep the production of barrels.

Our last trek was around Callander, as I failed to find a route to Ben Vorlich. It was heartbreaking to see “forest works” cutting trees, many trees…. And it is something we saw in several places in our trip. I thought the typical Highland mountains without tries it was normal, but it is not. We saw many mountains with trees in several parts regardless the height and others totally empty. This was clearly the low light of the trip. In Callander, my friend tried a pie of haggies and it was very tasty!

Our last stop was Edinburgh. I returned the car in one piece!!! \o/

We didnt stay much but I learned some interesting facts. In Saint Cuthbert church, John Napier is buried there. And Agatha Christie married in the church.

David Hume lobbied the town council for building public walks in Calton Hill.

We visited St Giles church. Learned about him and his deer 🙂 As well, St Andrew who is the patron saint of Scotland, never reached it.

I would have liked to visit the Castle and Holyrood, next time.

By the way, I will not never understand why so many “branches” of religion….

In general, I am glad I visited Scotland.

Braiding Sweetgrass

Tonight I finished reading this book. I had some expectations. I though it was going to be similar to other book I read about forests. But this one goes deeper. It is history of human culture, in this case North America Indian Natives, and the bonding with Mother Earth, with Skywoman. The dark past, trying to remove their identity, the struggle to recover that connection to your roots and to Mother Earth.

I really understood the real Thanksgiving. I always thought it just was a new way to sell more. But the reality, it is our appreciation to the gifts we receive by Nature: air, water, food, shelter, etc. Everything. It is a recognition of equals. It is a dependency. Nature is not it. We are the same entity, we are alive. We need to look after ourselves. And we need to show gratitude. And gratitude is more and more a very important word. I started to understand it with meditation, and I realize that is more important that I initially thought.

And this is a further example of how much disconnected we are from Mother Nature. I have read in other books of psycology about depression that the disconnection we find in our current society is partly our lost link with our natural surroundings.

We can learn so much from Nature if we make the effort. I liked a lot the example of the Three Sisters: corn, bean and squash. How these different plants work together.

And the constant fight against Windigo, the greed, our dark side.

There is hope to get better. But we need a big wake up call to do really something. I doubt the current cut-throat capitalism, religions will really help.

At least, keep the covenant of reciprocity that is at our reach. But I wonder, I am really doing something about it?

Almond Croissant

I learned most of my baking from these courses. I baked croissants later last year so last week I decided to give it another go. I was quite happy with the result. I realised that it was easier than donuts. So I enjoyed croissants the whole week. But yesterday, still had some leftovers so I decided to try something that was in my to-do list: almond croissant. The main steps are the filling called frangipane and soaking the croissants in a syrup. But checking this video, I decided to use a typical Portuguese almond liquor, amarguinha.

Frangipane:

  • 100g butter
  • 100g caster sugar (you can use less)
  • 2 medium eggs
  • 100g ground almonds
  • 20g plain flour
  • zest of 1/2 lemon

Soaking:

  • 100ml (aprox for 5 croissants) of almond liquor or sugar syrup.

Decoration:

  • sliced almonds
  • sugar powder

Process:

  • Slice your croissant horizontally. Soak the inside parts in the almond liquor. Just a bit and this is alcoholic and you dont want a strong liquor flavour. The goal is the almond touch.
  • Join the croissants again and put them in a tray with baking paper.
  • Prepare the frangipane. Cream the butter and sugar. I do it manually.
  • Then add the eggs, bit a bit, and keep mixing.
  • Then add the almond flour and plain flour, and keep mixing.
  • Finally add the lemon zest.
  • With a kitchen spatula, take the croissant and add a good frangipane layer in the middle.
  • Once you have all croissants filled, spread more frangipane in the top of the croissants.
  • In a bowl, add the sliced almonds, then take the croissants and press the top into the bowl of almonds. The almonds should stick into the frangipane.
  • In a pre-heat oven at 210C, bake the croissant for 15 minutes or the almond get golden.
  • Once ready, taken out of the oven and spread some sugar power. Wait a bit to cool down and enjoy!!!

Foundation

I finished Asimov’s Foundation yesterday and I really enjoyed it. I had zero expectations, I knew it was something about sci-fi but that’s all. I have heard from Asimov before but never had the change or interest to read anything from him as sci-fi wasn’t one of my favourite topics in the last years. But I am glad I did. To be honest, I didnt have the feeling that it was sci-fi. It seemed to me that all the issues plotted in the book (that was written in the 40s) belonged our current time. It is a small book and hook you quickly. I am planning to read the rest of the books and see how it goes.

Another thing it impressed me was the amount of books (nearly 500) he wrote in his life based in the intro and wikipedia. He was really focus in his craft!

BGP AIGP and BGP churn

I have read BGP churn before, I find the meaning and then forget about it until next time.

BGP churn = the rate of routing updates that BGP routers must process.

And I can’t really find a straight definition.

As well, I didnt know the actual meaning of churn was. So it s a machine to produce butter and the amount of customer stopping using a product.


I read at work something about AIGP from a different department. I searched and found that is a new BGP optional non-transitive path attribute and the BGP decision process is updated for that. And this is from 2015!!! So I am 6 years behind…. And there is a RFC7311

Note: BGP routers that do not support the optional non-transitive attributes (e.g. AIGP) must delete such attributes and must not pass them to other BGP peers.

So it seems a good feature if you run a big AS and want BGP to take into account the IGP cost.

grep multiline

I want to count the number of interfaces that have some specific configuration in my router. I want to use the most basic tools found in linux (so dont have to assume anything else is installed) and I want to use as less commands as possible.

So this is my config:

frr version 7.5
frr defaults traditional
hostname R2
log syslog informational
no ipv6 forwarding
service integrated-vtysh-config
!
interface ens6
 ip router isis ISIS 
 isis circuit-type level-2-only
 isis network point-to-point
!
interface lo1
 ip router isis ISIS 
 isis passive
!
interface ens7
 ip router isis ISIS 
 isis circuit-type level-2-only
 isis network point-to-point
!
interface lo2
 ip router isis ISIS 
 isis passive
!
mpls ldp
 router-id 172.20.15.2
 !
 address-family ipv4
  discovery transport-address 172.20.15.2
  !
  interface ens6
  !
  interface ens7
  !
 exit-address-family
 !
!
router isis ISIS 
 net 49.0001.1720.2001.5002.00
!
line vty
!

And I want to count the number of interfaces that have “isis network point-to-point” regardless of any other config.

In this example, we have just two interfaces.

interface ens6
 ip router isis ISIS 
 isis circuit-type level-2-only
 isis network point-to-point

interface ens7
 ip router isis ISIS 
 isis circuit-type level-2-only
 isis network point-to-point

The pseudo-pattern should be something like:

^interface ens.*point-to-point$

So something that starts with “interface ens”, it can have anything after that and then it ends with “point-to-point”

Ideally I want to use just “grep” and it is a standard and common tool

But grep mainly works in one line each time. And my pattern covers multiple lines.

So I searched for some help and found this that uses “perl compatible regular expressions” (PCRE). I have no idea about perl but let’s give it a go:

$ grep -Pz '(?s)interface ens.*point-to-point\n' r5.txt
frr version 7.5
frr defaults traditional
hostname R2
log syslog informational
no ipv6 forwarding
service integrated-vtysh-config
!
interface ens6
 ip router isis ISIS 
 isis circuit-type level-2-only
 isis network point-to-point
!
interface lo1
 ip router isis ISIS 
 isis passive
!
interface ens7
 ip router isis ISIS 
 isis circuit-type level-2-only
 isis network point-to-point
!
interface lo2
 ip router isis ISIS 
 isis passive
!
mpls ldp
 router-id 172.20.15.2
 !
 address-family ipv4
  discovery transport-address 172.20.15.2
  !
  interface ens6
  !
  interface ens7
  !
 exit-address-family
 !
!
router isis ISIS 
 net 49.0001.1720.2001.5002.00
!
line vty
!

Let’s explain the parameters provided to grep so far:

  • -P: Use perl compatible regular expressions (PCRE).
  • -z: Treat the input as a set of lines, each terminated by a zero byte instead of a newline. i.e. grep treats the input as a one big line.
  • (?s): activate PCRE_DOTALL, which means that ‘.’ matches any character or newline.

But if I count, we dont have the expected answer of 2:

$ grep -Pzc '(?s)interface ens.*point-to-point\n' r5.txt
1

The “z” parameter is treating the file as a single line so for grep, there is one match only. The initial command shows in bold just one block.

We notice that the pattern is matching “interface lo1” and that is not what we want, it should be ignored.

So our pattern should match the smallest string. So we want a non-greedy matching regex. So searching again, found this. It seems for Perl regex, we need to use ? after *

$ grep -Pz '(?s)interface ens.*?point-to-point\n' r5.txt
frr version 7.5
frr defaults traditiona
hostname R2
log syslog informational
no ipv6 forwarding
service integrated-vtysh-config
!
interface ens6
 ip router isis ISIS 
 isis circuit-type level-2-only
 isis network point-to-point
!
interface lo1
 ip router isis ISIS 
 isis passive
!
interface ens7
 ip router isis ISIS 
 isis circuit-type level-2-only
 isis network point-to-point
!
interface lo2
 ip router isis ISIS 
 isis passive
!
mpls ldp
 router-id 172.20.15.2
 !
 address-family ipv4
  discovery transport-address 172.20.15.2
  !
  interface ens6
  !
  interface ens7
  !
 exit-address-family
 !
!
router isis ISIS 
 net 49.0001.1720.2001.5002.00
!
line vty
!

So now, we can see two blocks highlighted. So now let’s print only the matched strings using -o:

$ grep -Pzo '(?s)interface ens.*?point-to-point\n' r5.txt
interface ens6
 ip router isis ISIS 
 isis circuit-type level-2-only
 isis network point-to-point
interface ens7
 ip router isis ISIS 
 isis circuit-type level-2-only
 isis network point-to-point

So this looks correct but still counting (-c) doesnt work properly because -z is treating the entry as one big line.

I haven’t been able to find the solution with just one command so at the end, I have to pipe another grep. The initial grep matches the pattern, so the second one should just count a specific pattern like “point”. It should be that simple:

$ grep -Pzo '(?s)interface ens.*?point-to-point\n' r5.txt | grep point
grep: (standard input): binary file matches

Weird, I thought this was pure text but seems the ouput of the first grep has some binary data:

$ grep -Pzo '(?s)interface ens.*?point-to-point\n' r5.txt > r55.txt
$ vim r55.txt
interface ens6
 ip router isis ISIS
 isis circuit-type level-2-only
 isis network point-to-point
^@interface ens7
 ip router isis ISIS 
 isis circuit-type level-2-only
 isis network point-to-point
^@

But we can tell grep to read binary data too using -a as per this blog and then count.

$ grep -Pzo '(?s)interface ens.*?point-to-point\n' r5.txt | grep -a point
 isis network point-to-point
 isis network point-to-point
$ grep -Pzo '(?s)interface ens.*?point-to-point\n' r5.txt | grep -ac point
2

Funny enough, if I just want to count, I dont need -a:

$ grep -Pzo '(?s)interface ens.*?point-to-point\n' r5.txt | grep -c point
2

So not sure if this is the best solution but it took me a bit to find it. It seems to work:

grep -Pzo ‘(?s)interface ens.*?point-to-point\n’ r5.txt | grep -ac point

Veggie Lasagne

Last week I fancied a lasagne but I didnt have mince meat so I decided to try a veggie version based on a vegan dish I cooked for a friend in Christmas. You replace the mince meat with shredded mushrooms.

Ingredients:

  • 500gr of chestnut mushrooms
  • garlic + 1 onion, oregano.
  • tomato sauce, splash of read wine
  • roasting veggies: 1 onions, 1 red pepper, 1 green pepper, 1 courgette, 1 potato
  • milk, flour and butter for the white sauce. Nutmeg
  • lasagne sheets (3 layers, 9 sheets in my case)
  • grated cheese
  • olive oil, salt, pepper

Process:

  • Pre-heat oven at 180C. Chop all roasting veggies, coat with a bit of olive oil and a pinch of pepper/salt. Put in the oven.
  • In a food processor, put all mushrooms and whizz until shredded.
  • In a pan, add olive oil, once hot, and the garlic. Cook for a minute, then add the onion, cook for a couple of minutes, then add the mushrooms. Cook for a bit, then add the tomato sauce. Pinch of salt/pepper to taste. Add some oregano and splash of red wine.
  • Once the mix thickens up, remove from the heat.
  • Check the roasting veggies.
  • Prepare the white sauce. In a saucepan at medium heat, put a big know of butter. Once melted, add 3 big tsp of flour. Mix until all combine. Then start pouring some milk, and whisk. Then keep adding milk bit by bit until you have a smooth, not very thick sauce. Add nutmeg, salt, pepper. Taste.
  • Veggies should be ready.
  • Time to assemble everything.
  • In ovenproof glass dish, spread a bit of the white sauce (or butter) in the bottom. Then add a layer of lasagne sheets. Then add half of the mushroom mix, add half of the roasting veggines, add some white sauce. Add a new layer of lasagne sheets, the rest of the mushrooms mix and veggies, add a bit of white sauce. Finally the last layer of lasagne sheets. Pour all the white sauce and spread the grated cheese.
  • Put the lasagne in the already hot oven for 30 minutes or until cheese is crispy.

Really happy with the result!

Ginger, Date and Oats loaf

This cake doesnt have a specific name. I found it in a magazine from my supermarket. I have a pile of recipes collected over the years and rarely try them. But I fancied cooking something related to ginger and this cake looked ideal.

Ingredients:

  • 125g butter, softened
  • 50g of peeled ginger. Then grate it
  • 150g pitted dates (if they are hard, put them in boiling water for 30 minutes until soft)
  • 100g plain wholemeal flour
  • 75g oats
  • 4 eggs
  • 2 tsp baking powder
  • 3 tsp honey or agave sirup
  • 150g soft cheese
  • 1 lime zested

Process:

  • Preheat oven at 180C. Prepare a loaf tin with non-stick paper or spread some butter.
  • In food processor. Cream the butter, then add the grated ginger, dates, flour and oats. Once all combined (pieces of date are ok), add eggs, baking powder and honey.
  • Pour the mix into the tin. Bake it for 1h. Cover with foil for the last 10-15 minutes if it browns to much. Remove from the oven once you insert a knife and comes out clean
  • While it rests, whisk the soft cheese, 1 tsp honey and the lime zest. Give a taste, it should have a hint of lime, no too strong.
  • The spread the mix on top of the cake. Ready to eat!

It doesnt taste too sweet (most sugar comes from the dates). And the ginger taste is not very strong neither. Having the soft cheese with lime I think it balances. Maybe I should have added more lime but for the first time, it was good!