Network & Software Engineer. Writing about BGP, routing protocols, networking fundamentals, Linux, and systems.
Resurrecting the Blog: How I Restored the Archive and Preserved 15 Years of Links
Back in 2021, I published a short post titled Welcome Back. In it, I mentioned that years prior, I had lost my entire original blog located at mellowd.co.uk/ccie during a botched server upgrade. That site had originally chronicled my journey toward my CCIE (#28448) and JNCIE-SP (#1134), along with deep dives into BGP, QoS, MPLS, and protocol internals. At the time of that 2021 post, I managed to manually piece back 13 articles using the Wayback Machine. But life got busy, and more than 20 detailed technical posts, along with dozens of network diagrams, hardware photos, and Wireshark captures, remained trapped in digital limbo. ...
Welcome Back
A long time ago I had a pretty successful blog located at mellowd.co.uk/ccie - I used this blog at the time to document my journey towards my CCIEs and well as my JNCIE. Unfortunatley, I lost the entire blog in a botched upgrade a few years back. My intention here is to try and republish some of my better posts. I’ll be able to extract this info from the wayback machine. Note that a lot of the posts were relevent years ago and things have since moved on. But some of the fundamentals never change :) ...
Cisco Live 2016 – Las Vegas
So I’m finally off to Cisco Live! This will be my first time there, and I’m hoping to meet and speak to a lot of people I speak to online. So far my timetable looks like so: Monday 11th July Troubleshooting BGP [BRKRST3320] ASR9000/IOSXR Understanding forwarding, troubleshooting the system and XR operations [BRKSPG2904] Introduction to Segment Routing [BRKRST2124] A Practical Introduction to DevOps Practices and Tools [BRKCLD1003] Tuesday 12th July IP LFA (LoopFreeAlternate): Architecture and Troubleshooting [BRKRST3020] How to write an IPv6 Addressing Plan [BRKRST2667] Addressing Networking challenges with latest Innovations in IPv6 [BRKRST2616] Wednesday 13th July Troubleshooting EndtoEnd MPLS [BRKMPL3124] Hitchhiker’s Guide to Troubleshooting IPv6 Advanced [BRKRST3304] High Availability in the Access [BRKCRS3438] Thursday 14th July Building a Software Defined Service Provider [BRKSPG2001] The Future of SP and Your Role in It [INTGEN1007] Advanced Scaling BGP [BRKRST3321] That’s it so far. I may change things around, but should be a lot of fun! ...
One Million Views
It’s hard to believe that my blog has just surpassed 1000000 views! I started this blog out just on the side to go over things I was learning. I’ve learned a lot in the process, and managed to bag myself two CCIEs, a JNCIE-SP, a job at Google, and the opportunity to write a book for Juniper. There were times I almost completely lost my blog in the past, but I’ve learned how to make good backups. My site has been reachable over native IPv6 for many years, and I moved it all to HTTPS over a year ago. ...
Visualising Big O notation
I’m currently learning as much computer science as I can on the side. I’ve come across Big O notation a few times already, and while I understand it, I’m much more of a visual guy. It’s rather easy to use Python and matplotlib to graph out how a function’s execution time grows as the size of the input grows. The important things to note is not total execution time, but rather how the runtime of that function grows in relation to the input size. This can be plotted onto a graph which should give us a nice representation of Big O notations. ...
Linked lists
Python has a rather handy list method. It allows you to add and remove items at will. How it actually does this is rather elaborate and you can read all about it over here. C doesn’t give you the same flexibility. When you create an array, it is of X size. That size cannot change as there is no guarantee that memory on either side of the existing array space is even free for you. For this reason there is a handy data structure called the linked list. ...
Structs in C
Back in March 2014 I wrote an app in Python that would log in and check various OSPF properties. When putting the data into a structure, I was limited both by knowledge and Python at the time. I ended up using a dictionary which worked rather well, but I was never 100% happy with it. Recently I’ve stumbled across structs in C, in which I can make pretty much any data structure I would like. ...
Visualising recursive functions
I’ve been doing a lot of coding practise, and recursive functions are one of those things that’s easier to visualise than think about. At it’s heart, a recursive function is one that calls itself in over and over again until a result is found. At first that doesn’t make sense so let’s look at an example. Factorial The factorial of a number is the product off all numbers from that number down to 1. Two examples follow: ...
Life is busy
I’ve had zero time to update the blog recently. As some of you may know, I recently started a new job with Google. I’ve moved my family and I over from the UK to Dublin, Ireland. To say I’m busy right now is an understatement. Not only is there a ton of reading for me to do at work, I’m also trying to sort out all the issues of moving country again. ...
Python and MySQL
Let me preface this post by stating I am not a database expert. I use them occasionally now and then. The below post probably doesn’t show best practices. If you have any suggestions feel free to comment. Over the weekend I’ve been testing various ways for me to store, update, and retrieve data from a database. At first I was using the sqlite3 package, but turned to MySQL. Why the move you ask? Well I already had MySQL running on the target machine and already had scripts backing up all databases every night. Why not just use the existing database there? ...