Lime Pie

I have tried this pie… twice.. and failed miserably… twice.

This is the typical random video I watch and then I add it to my to-cook list.

Somehow I went for this version as I didnt want to use condensed milk as I thought it was going to be too sweet. I didnt do any meringue or used macha tea.

My first attempt was bad for a couple of reasons. The coconut milk I used was “light” (low in fat) and at the end, the cake tasted like acid (due to the lime) water. And second, I didnt put enough biscuits for the base. And the biscuits were ginger nuts so I added extra spiciness to the taste 🙂

I decided to give it a new go, using full fat coconut milk and plenty of (ginger) nuts. To be honest, it still tastes a bit bland. Shall I add more limes (but will add more acidity?), shall I add more sugar (too sweet then)? Not sure.

I think, I will try the “classic” version next time, with homemade condensed milk.

Dune2

I am just following the Dune series as I liked the first book quite a lot. The second one is obviously a continuation of the first one. It is a new thriller about Paul’s future, his religion/empire, his love, his thoughts, his doubts, his fears, etc. The struggle of which future will turn up. It is again interesting all the mixing of religion/politics. Yes, it is fiction, but somehow feels contemporary. I like the new elements of conspiracy, new baddest enemies, etc.

Looking forwards for the next book.

Baba Ghanoush

I tried some time ago Baba Ghanoush while having lunch with friends and I liked, it was a nobility for me as I could try something else apart from Humus. So sometimes I have mixed grilled aubergines with chickpeas and it produces a bit smoky (and darker) humus. But two weeks ago, I tried again from a different place and I was really shocked, it was so different, so tangy. I decided to find a good recipe and try at home. So I found this video:

Ingredients:

  • 2 Aubergines (roasted)
  • 1 tsp chopped or grated garlic
  • 4-5 tbsp of Tahini
  • 1/2 Lemon juice
  • 1 tsp salt
  • 2 tbsp Yogurt
  • Olive oil
  • Pomegranate (optional)

Process:

  • Two ways for roasting the aubergines. One, stab the aubergines with a knife and wrap in foil. Bake in oven for 40m at 175C. Second, halve the aubergines, spread a bit of oil and bake in oven for 40m at 175C, but check they dont burn! I did the second method but I will try the first one too.
  • Take the aubergines from the oven, scoop the meat and with a knife, chop it as much as you can. I think this is very important. I didnt you the food processor at all.
  • Then put the chopped/grilled aubergines in a bowl and add all other ingredients. Mix well.
  • You can server as it is or add a bit of pomegranate seeds and olive oil. I only added olive oil

When I tried, I was impressed, it was like the one I tried! I guess the yogurt and lemon are key! Congrats to the chef in the video!

Very easy recipe and super tasty!!!

BiDir + SR4

This week at work I have to deal with a couple of physical connections that were new for me. I am more familiar with LC connector and MTP is still something I am dealing with. So I learned about BiDir optics (LC) something never heard about it and the difference with SR4 optics (MTP). The vantage of using BiDir is that you can keep your current fiber install in place and upgrade from 10G to 40G without extra cost. But with SR4 you need to deploy MTP/MTO cabling although you can do breakouts (40G to4x10G or 100G to 4x25G). This is the blog entry I found quite useful for comparing both types. And this one just for BiDir.

As well, somewhere I read (can’t find the link), SR4 are more common than BiDir because is BiDir is proprietary so it has compatibility issues

This is a good link about cables and connectors.

Ginger Nuts + Corn

A couple of weeks ago I had to use ginger nuts cookies for a recipe. So now I wanted to make my own, because after eating a cookie you will feel alright.

So searching a bit, a decided to try this version:

Ingredients (10 cookies of decent size)

  • 200g self-raising flour
  • 2 tsp bicarbonate of soda
  • 4-5 tsp ground ginger (if you want a bit more, they will more fiery!)
  • 80g caster sugar
  • 100g melted butter
  • 4 tbsp golden syrup (or honey)

Process

  • Preheat oven around 190C. Line one baking tray with nonstick baking paper
  • Sieve flour, bicarbonate and ginger in a bow. Then add the sugar
  • Make a well in the center of the bowl, add the melted butter and syrup. Stir until combine. In my case, the dough was a bit crumbly. Maybe needs a bit more butter?
  • From the dough, take pieces and form roughly a ball, then flat it and put it in the tray. It looks delicate but it is fine.
  • Bake for 10-12 MAX! I did 10 minutes. Just slight golden and with cracks on top.
  • Remove from oven and let it cool down in a rack if you have. If you touch them they feel soft and not baked, but let it be. Once they cool down, they will firm up!.

It is a quick recipe, the result was tasty!

NOTE: Somehow, after so many years I noticed that tsp = tea spoon (small) and tbsp = table spoon (big)!!! I think I have always used the same measure /o\ Well, still got most things right anyway 🙂


As well, somehow, I bought this week a package with two corns on the cob and baked them in the oven.

Ingredients

  • A couple of corn on the cob pieces + foil to wrap
  • a bit of butter

Process

  • Preheat oven at 200C
  • Clean with water the corn cobs and wrap it in foil (dont leave any part without cover)
  • Bake for 40 minutes
  • Remove from oven, remove foil (you can reuse it) carefully, put a bit of butter (it will melt). Wait a bit and then you can eat it directly or remove the kernels with a knife.

I was really amaze with the flavour! Somehow I felt like eating corn flakes with milk! And actually, I took a gulp of milk after eat.

I want to try more often and using a fresh corn cob.

The Ascent of Money

Somehow I had low expectations about this book, but I have been totally delighted with it. It is one of the best books (mainly in economy) I have read recently.

It is about about the evolution of finance in the world from the small tablets in Babylon to today’s crypto-currencies.

The shows how the economy development in the world started to speed up when the Spaniards starting to bring tones of silver (Potosi) to Europe (and obviously they didnt make the most it). Still the economy was based in hard currency but after this ,banks, insurance, stock exchanges, bonds and other financial products started to develop in Florence/Venice (Renaissance), Amsterdam, London and Paris. Still early advances were done in the Middle Ages like the case of Fibonacci who wrote the formula to calculate the compound interest of an investment.

I liked the reference to Mary Poppins film regarding a bank run. I actually didnt remember the movie very well but was interesting to make sense to the story.

As well, there is basic example showing how money is created based on debt (based on the fact that the banks dont have to keep your deposit only a small percentage).

It is clear that we dont have that much info about the economies of 4000 years ago but based on the book, the finance has evolved like a living thing. It has become more and more complex,like us, with time. And each crisis has improved it. And each main empire, kingdom, etc in history was strongly connected to an advance it is financial/economy system.

As well, there are good references about finance and war, like the America Civil War, WW1, Napoleon wars, etc

Another topic that was very interesting is the creation of welfare systems (and how different are some of them like Europe, USA and Japan) and the evolution of the pension system. I was really surprised about the example of Chile (when it become a dictatorship) as the first country introducing the private pension system that has been exported to many other countries (Idea from Milton Friedman) And how Argentina was one of the top 10 economies in the early XX century and how things turned sour and became a defaulting machine.

There is a big part of the book focus in the subprime crisis, from the origins, development and aftermath. It is interesting that one of the factors was the “democratization” of home ownership in USA that helped to create the bubble. And how really globalization has made the world not as strong as we thought.

I have managed to make connections to other books I have read before about politics, psychology and economics so it is interesting to see similar and different opinions in several subject (mainly the subprime crisis)

As well, this book was initially published during the Subprime crisis of 2008 and the revision I had, just added two new chapters for the years up to 2018. The final part is mainly about the relationship USA-China post subprime (and Trump), Europe (Brexit), how China is taking the lead in financial technology (so that means they will (or already are) the next empire) and the explosion of crypto-currencies.

SSD + Breakout Cables

I am not as up to speed with storage as I would like to but this blog gives you a quick intro for the different types of SSD.

As well, this week struggled a bit with a 100G port that had to connect as 4x25G to some servers. It was a bit of time since I dealt with something similar. Initially I though I had to wait for the servers to power up so once the link in the other side comes up and the switch recognizes the port as 25G and creates the necessary interfaces. But I had eth1/1 only. I was expecting eth1/1, eth1/2, eth1/3 and eth1/4… The three extra interfaces were created ONLY after I “forced” the speed setting to “25G” in eth1/1….. I hope I remember this for next time.

Cachopo

When I was a kid, nearly every week, one night for dinner I had San Jocobo. But then I remember that my mum started buying pre-made ones…. didnt like them. Based on that, I wanted to try something similar, Cachopo.

To be honest, I think the best is to cook a cachopo for one meal, you just buy a piece of meat (I bought beef), prepare in the day and enjoy it warm. Because in my case, I prepared for a whole week, so three big pieces and it is not the same to eat it on the day that 4 days later.

The recipe is quite simple.

Ingredients:

  • 2 steak fillets
  • 6 slices of ham (cure ham is better) – the number will depend on the size of your flatted out fillets
  • 6 slices of cheese (same as above)
  • Eggs + breadcrumbs
  • Salt + pepper
  • Olive oil

Process:

1- Season your fillets, leave them to rest at room temperature for 15 minutes at least. Get ready for the next steps

2- Put one fillet between two sheets of baking paper and then using a rolling pin, flatten it out as much as you can (I didnt do it…) Repeat for the second one. Try to make them match the size.

3- In one flat piece, put your ham and cheese. Then add the second flat piece. Be sure the ham/cheese is fully covered. Try to push the sides with the fingers so it is sealed (it is not going to be perfect). You can use tooth sticks (I didnt have)

4- In a plate, whisk two eggs. In other plate, put the breadcrumbs. Try to use one hand for handling the cachopo so you dont get dirty in both. Get the pan hot with oil

5- Pass the cachopo first by the eggs, both sides, then the breadcrumbs both sides. Fry until golden in both sides.

I had a small piece for lunch and it was good.

The Qur’an

I am not a religious person. I just follow my own philosophy. But I am curious about the Qur’an from a social and historical point of view. I think after watching “V for Vendetta” when Stephen Fry was praising the beauty of a Qur’an, that I told myself I had to read it one day. It is like some Bibles from the Middle Ages, they were master pieces. Actually, a couple of years ago I read a biography about The Prophet Muhammad. It was very good for understanding the social circumstances and how Islam developed. So I bought this version. The intro was interesting for preparing for what was coming. I knew the Qur’an was formed by “suras” and I thought they would come written chronologically but it is not. It seems the first announced suras are actually the last one written. And I learned that exegetes are experts in interpretations of (mainly) religious texts. And in like in any holy book, there are things that only God can explain based on the exegetes expertise.

To be honest I had some expectations. I though it would similar to the bible and quite poetic. The first suras were quite long. One of them touching a lot of subjects from inheritance, divorce, etc.

I was surprised that the Children of Israel are the chosen ones. When you see all the news in that region….

As well, there are many references to the People of the Book: Jews, Christians, Sabenas and Magians. And The Quran confirms that the Torah and the Evangelis are sent by God. So why so much trouble about the three?

I was surprised that Abraham, Moses and Noah are mentioned a lot of times. Then a bit less Jesus and Mary. So you can see a lot of connections between the Judaism and Christianity.

As well, there are a lot of comments about Judgement day, God punishments to people who rejected God via other prophets (Lot, Thamud, etc). I was looking for an entry about The Prophet and the mountain, but didnt read it. As well, it is confirmed that God created everything is 6 days. Another subjet is the hijad. The word itself is not mentioned in the translation but I only could read one clear statement about it (47:6). When there are other subject that are repeated much more often: prey to god, follow god, fear god, etc.

In general, the picture I got from the Qur’am (about customs, habits, education, etc) and what you see in the world is quite different. But this is what it is, interpretations. The same would happen if I read the Bible.

Containerlab

Some months ago I read about containerlab (and here). It looked like a very simple way to build labs quickly, easily and multi-vendor. I have used in the past gns3 and docker-topo for my labs but somehow I liked the documentation and the idea to try to mix cEOS with FRR images.

As I have felt more comfortable with the years with Arista and I had some images in my laptop, I installed the software (no mayor issues following the instructions for Debian) and try the example for a cEOS lab.

It didnt work. The containers started but I didnt get to the Arista CLI, just bash CLI and couldnt see anything runing on them… I remembered some Arista specific processes but none was there. In the following weeks, I tried newer cEOS but no luck always stuck in the same point. But at the end, never had enough time (or put the effort and interest) to troubleshoot the problem properly.

For too many months, I havent had the chance (I can write a post with excuses) to do much tech self-learning (I can write a book of all things I would like to learn), it was easier cooking or reading.

But finally, this week, talking with a colleague at work, he mentioned containerlab was great and he used it. I commented that I tried and failed. With that, I finally find a bit of interest and time today to give another go.

Firstly, I made sure I was running the latest containerlab version and my cEOS was recent enough (4.26.0F) and get to basics, check T-H-E logs!

So one thing I noticed after paying attention to the startup logs, I could see an warning about lack of memory in my laptop. So I closed several applications and tried again. My lab looked stuck in the same point:

go:1.16.3|py:3.7.3|tomas@athens:~/storage/technology/containerlabs/ceos$ sudo containerlab deploy --topo ceos-lab1.yaml 
INFO[0000] Parsing & checking topology file: ceos-lab1.yaml 
INFO[0000] Creating lab directory: /home/tomas/storage/technology/containerlabs/ceos/clab-ceos 
INFO[0000] Creating docker network: Name='clab', IPv4Subnet='172.20.20.0/24', IPv6Subnet='2001:172:20:20::/64', MTU='1500' 
INFO[0000] config file '/home/tomas/storage/technology/containerlabs/ceos/clab-ceos/ceos1/flash/startup-config' for node 'ceos1' already exists and will not be generated/reset 
INFO[0000] Creating container: ceos1                    
INFO[0000] config file '/home/tomas/storage/technology/containerlabs/ceos/clab-ceos/ceos2/flash/startup-config' for node 'ceos2' already exists and will not be generated/reset 
INFO[0000] Creating container: ceos2                    
INFO[0003] Creating virtual wire: ceos1:eth1 <--> ceos2:eth1 
INFO[0003] Running postdeploy actions for Arista cEOS 'ceos2' node 
INFO[0003] Running postdeploy actions for Arista cEOS 'ceos1' node 

I did a bit of searching about containerlab and ceos, for example, I could see this blog where the author started up successfully a lab with cEOS and I could see his logs!

So it was clear, my containers were stuck. So I searched for that message “Running postdeploy actions for Arista cEOS”.

I didnt see anything promising, just links back to the main container lab ceos page. I read it again and I noticed something in the bottom of the page regarding a known issue…. So I checked if that applied to me (although I doubted as it looked like it was for CentOS…) and indeed it applied to me too!

$ docker logs clab-ceos-ceos2
Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted

So I started to find info about what is cgroup: link1, link2

First I wanted to check what cgroup version I was running. With this link, I could see that based on my kernel version, I should have cgroup2:

$ grep cgroup /proc/filesystems
nodev	cgroup
nodev	cgroup2

$ ls /sys/fs/cgroup/memory/
cgroup.clone_children           memory.kmem.tcp.limit_in_bytes      memory.stat
cgroup.event_control            memory.kmem.tcp.max_usage_in_bytes  memory.swappiness
cgroup.procs                    memory.kmem.tcp.usage_in_bytes      memory.usage_in_bytes
cgroup.sane_behavior            memory.kmem.usage_in_bytes          memory.use_hierarchy
dev-hugepages.mount             memory.limit_in_bytes               notify_on_release
dev-mqueue.mount                memory.max_usage_in_bytes           proc-fs-nfsd.mount
docker                          memory.memsw.failcnt                proc-sys-fs-binfmt_misc.mount
machine.slice                   memory.memsw.limit_in_bytes         release_agent
memory.failcnt                  memory.memsw.max_usage_in_bytes     sys-fs-fuse-connections.mount
memory.force_empty              memory.memsw.usage_in_bytes         sys-kernel-config.mount
memory.kmem.failcnt             memory.move_charge_at_immigrate     sys-kernel-debug.mount
memory.kmem.limit_in_bytes      memory.numa_stat                    sys-kernel-tracing.mount
memory.kmem.max_usage_in_bytes  memory.oom_control                  system.slice
memory.kmem.slabinfo            memory.pressure_level               tasks
memory.kmem.tcp.failcnt         memory.soft_limit_in_bytes          user.slice

As I had “cgroup.*” in my “/sys/fs/cgroup/memory” it was confirmed I was running cgroup2.

So how could I change to cgroup1 for docker only?

It seems that I couldnt change that only for an application because it is parameter that you pass to the kernel in boot time.

I learned that there is something called podman to replace docker in this blog.

So at the end, searching how to change cgroup in Debian, I used this link:

$ cat /etc/default/grub
...
# systemd.unified_cgroup_hierarchy=0 enables cgroupv1 that is needed for containerlabs to run ceos.... 
# https://github.com/srl-labs/containerlab/issues/467
# https://mbien.dev/blog/entry/java-in-rootless-containers-with
GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.unified_cgroup_hierarchy=0"
....
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
....
$ sudo reboot.

Good thing that the laptop rebooted fine! That was a relief 🙂

Then I checked if the change made any difference. It failed but because it containerlab couldnt connect to docker… somehow docker had died. I restarted again docker and tried container lab…

$ sudo containerlab deploy --topo ceos-lab1.yaml 
INFO[0000] Parsing & checking topology file: ceos-lab1.yaml 
INFO[0000] Creating lab directory: /home/xxx/storage/technology/containerlabs/ceos/clab-ceos 
INFO[0000] Creating docker network: Name='clab', IPv4Subnet='172.20.20.0/24', IPv6Subnet='2001:172:20:20::/64', MTU='1500' 
INFO[0000] config file '/home/xxx/storage/technology/containerlabs/ceos/clab-ceos/ceos1/flash/startup-config' for node 'ceos1' already exists and will not be generated/reset 
INFO[0000] Creating container: ceos1                    
INFO[0000] config file '/home/xxx/storage/technology/containerlabs/ceos/clab-ceos/ceos2/flash/startup-config' for node 'ceos2' already exists and will not be generated/reset 
INFO[0000] Creating container: ceos2                    
INFO[0003] Creating virtual wire: ceos1:eth1 <--> ceos2:eth1 
INFO[0003] Running postdeploy actions for Arista cEOS 'ceos2' node 
INFO[0003] Running postdeploy actions for Arista cEOS 'ceos1' node 
INFO[0145] Adding containerlab host entries to /etc/hosts file 
+---+-----------------+--------------+------------------+------+-------+---------+----------------+----------------------+
| # |      Name       | Container ID |      Image       | Kind | Group |  State  |  IPv4 Address  |     IPv6 Address     |
+---+-----------------+--------------+------------------+------+-------+---------+----------------+----------------------+
| 1 | clab-ceos-ceos1 | 2807cd2f689f | ceos-lab:4.26.0F | ceos |       | running | 172.20.20.2/24 | 2001:172:20:20::2/64 |
| 2 | clab-ceos-ceos2 | e5d2aa4578b5 | ceos-lab:4.26.0F | ceos |       | running | 172.20.20.3/24 | 2001:172:20:20::3/64 |
+---+-----------------+--------------+------------------+------+-------+---------+----------------+----------------------+
$ sudo clab graph -t ceos-lab1.yaml 
INFO[0000] Parsing & checking topology file: ceos-lab1.yaml 
INFO[0000] Listening on :50080...       

After a bit, it seems it worked! And learned about an option to show a graph of your topology with “graph”

I checked the ceos container logs

$ docker logs clab-ceos-ceos1
....
[  OK  ] Started SYSV: Eos system init scrip...uns after POST, before ProcMgr).
         Starting Power-On Self Test...
         Starting EOS Warmup Service...
[  OK  ] Started Power-On Self Test.
[  OK  ] Reached target EOS regular mode.
[  OK  ] Started EOS Diagnostic Mode.
[     *] A start job is running for EOS Warmup Service (2min 9s / no limit)Reloading.
$ 
$ docker exec -it clab-ceos-ceos1 Cli
ceos1>
ceos1>enable 
ceos1#show version 
 cEOSLab
Hardware version: 
Serial number: 
Hardware MAC address: 001c.7389.2099
System MAC address: 001c.7389.2099

Software image version: 4.26.0F-21792469.4260F (engineering build)
Architecture: i686
Internal build version: 4.26.0F-21792469.4260F
Internal build ID: c5b41f65-54cd-44b1-b576-b5c48700ee19

cEOS tools version: 1.1
Kernel version: 5.10.0-8-amd64

Uptime: 0 minutes
Total memory: 8049260 kB
Free memory: 2469328 kB

ceos1#
ceos1#show interfaces description 
Interface                      Status         Protocol           Description
Et1                            up             up                 
Ma0                            up             up                 
ceos1#show running-config interfaces ethernet 1
interface Ethernet1
ceos1#

Yes! Finally working!

So now, I dont have excuses to keep learning new things!

BTW, these are the different versions I am using at the moment:

$ uname -a
Linux athens 5.10.0-8-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64 GNU/Linux 

$ docker -v
Docker version 20.10.5+dfsg1, build 55c4c88

$ containerlab version

                           _                   _       _     
                 _        (_)                 | |     | |    
 ____ ___  ____ | |_  ____ _ ____   ____  ____| | ____| | _  
/ ___) _ \|  _ \|  _)/ _  | |  _ \ / _  )/ ___) |/ _  | || \ 
( (__| |_|| | | | |_( ( | | | | | ( (/ /| |   | ( ( | | |_) )
\____)___/|_| |_|\___)_||_|_|_| |_|\____)_|   |_|\_||_|____/ 

    version: 0.17.0
     commit: eba1b82
       date: 2021-08-25T09:31:53Z
     source: https://github.com/srl-labs/containerlab
 rel. notes: https://containerlab.srlinux.dev/rn/0.17/

My concern is, how this cgroup1 will affect other applications like kubernetes?

BTW, I have the same issue with containerlab as with docker-topo, when I use “Alt+Home(left arrow)” my laptop leave X-Windows and gets to the tty!!!