Embrace Your Fears

Fear is a natural and universal emotion that everyone experiences. It can serve as a protective mechanism, keeping us safe from danger. However, fear can also become a barrier, preventing us from reaching our full potential and achieving our dreams. The key is to recognize fear for what it is and to not let it stop you from moving forward.

Fear often stems from the unknown, uncertainty, or the potential for failure. When faced with a new challenge or opportunity, it’s normal to feel apprehensive. However, letting fear dictate your actions can lead to missed opportunities and regret. Understanding that fear is a normal response can help you put it into perspective.

Do the thing you fear most and the death of fear is certain.

Mark Twain

Confronting Fear

The first step to overcoming fear is to confront it. Acknowledge what you are afraid of and why. Break down the fear into manageable parts. For example, if you are afraid of public speaking, identify specific aspects that scare you, such as forgetting your speech or being judged by the audience. By pinpointing the exact source of your fear, you can start to address it directly.

Taking Small Steps

Overcoming fear doesn’t mean taking giant leaps into the unknown. Start with small steps that gradually build your confidence. If you’re afraid of public speaking, begin by speaking in front of a small group of friends or colleagues. Gradually increase the size of your audience as you become more comfortable. Each small victory will help diminish your fear and build your confidence.

Reframing Your Mindset

Changing how you perceive fear can also be powerful. Instead of viewing fear as a hindrance, see it as an opportunity for growth. Embrace the challenge and understand that overcoming fear can lead to personal development and new opportunities. By reframing your mindset, you can transform fear from an obstacle into a motivator.

Everything you want is on the other side of fear.

Jack Canfield

Seeking Support

You don’t have to face your fears alone. Seek support from friends, family, or mentors who can provide encouragement and advice. Sometimes, talking about your fears with others can help you see them from a different perspective and reduce their power over you.

Learning from Failure

Accept that failure is a part of life and a critical component of success. Each failure is a learning experience that brings you one step closer to your goals. Don’t let the fear of failure paralyze you. Embrace it, learn from it, and keep moving forward.


Fear is a powerful emotion, but it doesn’t have to control your life. By confronting your fears, taking small steps, reframing your mindset, seeking support, and learning from failure, you can overcome the barriers that fear creates. Don’t let fear stop you from achieving your dreams and reaching your full potential. Embrace the challenge, and you’ll discover a stronger, more resilient version of yourself.

Why Fit In When You’re Born To Stand Out

In a world that often celebrates conformity, standing out can feel daunting. Yet, as Dr. Seuss famously said, “Why fit in when you’re born to stand out?” This powerful question encourages us to embrace our individuality and leverage our unique strengths and perspectives.

The Pressure to Conform

From a young age, societal norms and expectations shape our behavior. We’re taught to follow rules, adhere to standards, and blend into our environments. While these norms can provide structure, they can also stifle creativity and individuality. The pressure to conform can be intense, leading many to suppress their true selves in favor of fitting in.


The Power of Uniqueness

Standing out means recognizing and celebrating what makes you different. It’s about understanding that your unique traits and experiences are valuable. Every individual has a distinct combination of talents, insights, and ideas that can contribute to the world in ways that others cannot. By embracing your uniqueness, you unlock your full potential and open doors to innovation and progress.


Overcoming Fear

One of the biggest obstacles to standing out is fear—fear of judgment, failure, or rejection. However, history shows that those who dare to be different often make the most significant impact. Think of innovators like Steve Jobs, artists like Frida Kahlo, or leaders like Martin Luther King Jr. They all faced criticism and resistance but persevered because they believed in their vision and embraced their uniqueness.


Authenticity Leads to Fulfillment

Living authentically leads to greater fulfillment and happiness. When you’re true to yourself, you attract opportunities and relationships that resonate with your core values and passions. This alignment creates a sense of purpose and contentment that’s impossible to achieve by merely fitting in.


Encouraging Others to Stand Out

When you embrace your uniqueness, you inspire others to do the same. By standing out, you become a role model, showing that it’s okay to be different and that diversity is a strength. Your courage to be yourself can empower others to break free from conformity and pursue their own paths.


“Why fit in when you’re born to stand out?” is more than just a motivational quote—it’s a call to action. It’s an invitation to embrace your individuality, overcome fear, and live authentically. By standing out, you not only unlock your own potential but also contribute to a more diverse, innovative, and vibrant world. So, dare to be different, celebrate what makes you unique, and inspire others to do the same. After all, true greatness lies not in fitting in but in standing out.

TerraCognita: Reverse Terraform

While we were checking out competitors for an opportunity with one of our clients, we came across this feature at cycloid.io to generate Terraform state files for existing infra on public cloud infrastructure (Azure, AWS, GCP) or VMWare. Was surprised to see that they had open-sourced the core of this functionality with TerraCognita!

Since I have worked with Terraform before, I was keen to see how this product would reverse engineer the state files for existing infra. 

Using TerraCognita is straightforward. First, you need to install TerraCognita.

curl -L https://github.com/cycloidio/terracognita/releases/latest/download/terracognita-linux-amd64.tar.gz -o terracognita-linux-amd64.tar.gz
tar -xf terracognita-linux-amd64.tar.gz
chmod u+x terracognita-linux-amd64
sudo mv terracognita-linux-amd64 /usr/local/bin/terracognita

If you’re macOS user and using Homebrew, you can install via brew command:

brew install terracognita

Once you have done the installation, you can use the terracognita command-line interface to generate Terraform configuration files for your infrastructure

terracognita [TERRAFORM_PROVIDER] [--flags]

The documentation isn’t too great online. Since our client was primarily using Azure, I went ahead with exploring for Azure. 

Below is a synopsis of the flags that are supported:

–client-id string              Client ID (required)

–client-secret string       Client Secret (required)

–environment string            Environment (default “public”)

–resource-group-name strings   Resource Group Names (required)

–subscription-id string        Subscription ID (required)
 -t, –tags strings                  List of tags to filter with format ‘NAME:VALUE’

–tenant-id string              Tenant ID (required)

Global Flags:
 -d, –debug                     Activate the debug mode which includes TF logs via TF_LOG=TRACE|DEBUG|INFO|WARN|ERROR configuration https://www.terraform.io/docs/internals/debugging.html
 -e, –exclude strings           List of resources to not import, this names are the ones on TF (ex: aws_instance). If not set then means that none the resources will be excluded
     –hcl string                HCL output file or directory. If it’s a directory it’ll be emptied before importing
     –hcl-provider-block        Generate or not the ‘provider {}’ block for the imported provider (default true)
 -i, –include strings           List of resources to import, this names are the ones on TF (ex: aws_instance). If not set then means that all the resources will be imported
     –interpolate               Activate the interpolation for the HCL and the dependencies building for the State file (default true)
     –log-file string           Write the logs with -v to this destination (default “/Users/kenrickvaz/Library/Caches/terracognita/terracognita.log”)
     –module string             Generates the output in module format into the directory specified. With this flag (–module) the –hcl is ignored and will be generated inside of the module
     –module-variables string   Path to a file containing the list of attributes to use as variables when building the module. The format is a JSON/YAML, more information on https://github.com/cycloidio/terracognita#modules
     –target strings            List of resources to import via ID, those IDs are the ones documented on Terraform that are needed to Import. The format is ‘aws_instance.ID’
     –tfstate string            TFState output file
 -v, –verbose                   Activate the verbose mode


Terracognita has a powerful feature that allows it to directly generate Terraform modules during the import process. To utilize this feature, you can use the –module {module/path/name} flag, where you specify the desired path for the module to be generated. This path can either be an existing directory or a non-existent path that will be created.

It’s important to note that when generating a module, the existing content of the specified path will be deleted (after user confirmation) to ensure a clean import and organization of the generated resources.

Our client had everything on the cloud mapped to app codes and environment. So my query below took that into consideration, you may tweak it based on your need

terracognita azurerm \
--client-id <client_id> \
--client-secret <client_secret> \
--resource-group-name <resource_group> \
--subscription-id <subscription_id> \
--tenant-id <tenant_id> \
--hcl ./azure \
--module ./output/<env>/<appcode> \
--tags appcode:<appcode> \
--include azurerm_key_vault,azurerm_mssql_database,azurerm_mssql_server,azurerm_mssql_virtual_machine,azurerm_public_ip,azurerm_storage_account,azurerm_kubernetes_cluster,azurerm_container_registry,azurerm_resource_group,azurerm_monitor_action_group

Your output will be something like this


Validation

To confirm the accuracy of the infrastructure snapshot, navigate to the “terracognita” directory and execute terraform init followed by terraform plan. If the auto-generated code accurately represent your existing Azure resources, Terraform should not detect any changes. Depending on your specific setup and requirements, some manual code adjustments may still be necessary.

Limitations

  • The tool lacks comprehensive documentation, making it challenging for users to understand its functionalities thoroughly
  • The exporting process can be time-consuming, especially when dealing with policies
  • The auto-generated Terraform code may lack accuracy, requiring additional manual adjustments

Conclusion

Using Infrastructure as Code (IaC) is now a widely recognized best practice. It’s a great idea to translate your infrastructure into Terraform, and there are tools to help with that. But remember, these tools have limitations. No tool is perfect; they all have constraints and challenges. While these tools can be useful, it’s up to the software engineers to make sure the move to Infrastructure as Code is successful and accurate.

Why is the Feast of the Annunciation moved to April 8 this year?

The Feast of the Annunciation of The Lord is normally celebrated on 25 March. This day is exactly nine months before the celebration of Christmas, which occurs on December 25. In the past, most feasts that had the rank of solemnity were considered a holy day of obligation, requiring all Catholics to attend Mass on that day. The Annunciation still remains a solemnity, but is no longer a holy day of obligation.

March 25 will occasionally fall during Holy Week, which means, in the Western Church, that the liturgical celebration is suppressed. Whenever this occurs, the liturgical observance is moved to the next available week day that is not a solemnity.

Since the week following Easter is considered “a week of solemnities,” the Annunciation gets pushed back even further.

This year, 2024, the Annunciation is moved from March 25 all the way to Monday, April 8. This means that all the liturgical readings and prayers for the solemnity of the Annunciation are used on April 8, even though it is not March 25.

Nonetheless, despite this change of dates, it does not diminish the importance of the event that we commemorate, as linking to what we are celebrating this Easter, it was all made possible by the acceptance of Mary of her crucial role in being the Mother of our God and Saviour, Jesus Christ.


Some of you may ask what is the difference between a solemnity, a feast and a memorial.

A solemnity in the liturgical year is a feast day of the highest rank celebrating a mystery of faith such as the Trinity, an event in the life of Jesus, the Blessed Virgin Mary, or important saints. The observance begins with the vigil on the evening before the actual date of the feast. On these days, both the Gloria and the Creed are recited. Along with the Annunciation, other examples of solemnities include the Solemnity of St. Joseph (March 19), the Solemnity of the Sacred Heart of Jesus (Friday after the Feast of Corpus Christi), and the Solemnity of St. Peter and St. Paul (June 29).

Feast days in the liturgical year are second importance and assigned one date out of the year for each and every canonized saint. The saints are remembered on their individual feast days with special mention, prayers, and possibly a scripture reading. On these days, the Gloria is recited but not the Creed.

Next in line are memorials, which are classified as either obligatory or optional.  Memorials commemorate a saint or saints.  Obligatory memorials must be observed whereas optional memorials do not have to be observed. Only the memorials of those saints who are of “universal significance” are observed by the whole Church and marked in the general liturgical calendar.

Like we’ve seen with the feast of the Annunciation this year, at times we may have more than one celebration and hence we have the order of precedence. The basic rule of thumb is this: 

  • Sundays, other Solemnities, Holy Week, and the Octave of Easter always take precedence. 
  • These are followed by Feasts, weekdays of Advent (December 17-24), days within the Octave of Christmas, weekdays of Lent, obligatory memorials, optional memorials, weekdays of Advent (through December 16), other weekdays of the Christmas Season, other weekdays of the Easter Season, and weekdays in Ordinary Time.

This sequence is definitely a bit confusing, and that is why the Bishop’s Committee on the Liturgy of the National Conference of Catholic Bishops publishes an annual Ordo which outlines the proper celebrations and their particulars throughout the liturgical year.

Wishing you all a Happy Feast!

How to Navigate Tough Times

One of my all time favourite quotes is “When the going gets tough, the tough get going!” We have two options when we are in the midst of challenging situations, one is to play a victim, cry and complain about our situation and the other is to figure out what’s the best way to move ahead, how to grow, how to be a student – learn on the best path forward.

Whether it’s personal struggles, academic pressure, or external circumstances like economic downturns or global crises, maintaining resilience and staying proactive are key to navigating these difficult periods without succumbing to a victim mentality.

Here are some strategies to help you be a student and not a victim during hard times:

Maintain a Positive Mindset: Your mindset plays a crucial role in how you perceive and respond to challenges. Cultivate a positive outlook by focusing on what you can control rather than dwelling on what you can’t. Embrace a growth mindset, understanding that setbacks are opportunities for learning and growth.

Set Realistic Goals: Break down your academic and personal goals into smaller, manageable tasks. By setting realistic goals, you can maintain a sense of accomplishment and progress even during tough times. Celebrate your achievements, no matter how small they may seem.

Stay Organized: Create a schedule or to-do list to prioritize your tasks and manage your time effectively. Organizing your workload can alleviate feelings of overwhelm and help you stay on track with your responsibilities. Remember to include time for self-care and relaxation to prevent burnout.

Seek Support: Don’t hesitate to reach out for help when you need it. Whether it’s academic support from teachers or counselors, emotional support from friends and family, or seeking out resources in your community, know that you’re not alone. Asking for help is a sign of strength, not weakness.

Practice Self-Care: Take care of your physical, emotional, and mental well-being. Get enough sleep, eat healthily, exercise regularly, and engage in activities that bring you joy and relaxation. Practicing self-care is essential for maintaining resilience and managing stress during challenging times.

Adapt and Be Flexible: Hard times often require us to adapt to new circumstances and be flexible in our approach. Be open to change and willing to adjust your plans as needed. Embrace innovation and creativity in finding solutions to problems that arise.

Focus on Solutions: Instead of dwelling on the problems you encounter, focus on finding solutions. Adopt a problem-solving mindset and approach challenges with a sense of determination and resourcefulness. Remember that setbacks are temporary, and you have the ability to overcome them.

Practice Gratitude: Cultivate an attitude of gratitude by reflecting on the things you’re thankful for, even in difficult times. Focusing on the positive aspects of your life can help shift your perspective and foster resilience in the face of adversity.

Stay Informed but Limit Exposure: While it’s important to stay informed about current events and developments, be mindful of how much negative news and information you consume. Limit your exposure to sources of stress and anxiety, and prioritize activities that promote positivity and well-being.

Believe in Yourself: Above all, believe in your abilities and strengths. Trust that you have the resilience and determination to overcome challenges and succeed in your academic endeavors. By maintaining faith in yourself and your potential, you can rise above adversity and thrive as a student, even during the hardest of times.


Remember that you have the strength and determination to weather any storm, and by embodying these principles, you can transform adversity into opportunities for learning and personal growth. So, embrace the journey, believe in yourself, and know that you have the power to be a student who thrives, not just survives, during hard times.


Just recently I came across this video which is apt for this reflection where Robin Van Persie shares his experience with his son.

My Unforgettable Experience at Ed Sheeran’s Concert

Attending an Ed Sheeran concert live is an experience unlike any other. From the moment you step into the venue, there’s an electrifying energy in the air, buzzing with anticipation and excitement. As fans gather from all walks of life, united by their love for Sheeran’s music, you can feel a sense of camaraderie and connection that transcends boundaries.

Calum Scott performed before Ed came on stage :)

The stage is set, lights dimmed, as the 8 minute countdown begins. The crowd erupts into cheers as Ed Sheeran steps onto the stage, armed with just his guitar and loop pedal. There’s something incredibly intimate about witnessing him perform live, stripped down to the essence of his artistry. With nothing but his voice and his guitar, Sheeran captivates the audience from the first chord, drawing them into his world with each heartfelt lyric and soulful melody.

One of the most striking aspects of an Ed Sheeran concert is his sheer talent as a performer. Watching him effortlessly loop and layer intricate guitar riffs, beatboxing, and harmonies to create a rich tapestry of sound is nothing short of mesmerizing. His raw talent and genuine passion for music shine through in every note, leaving the audience in awe of his musical prowess.

But beyond his technical skill, what truly sets an Ed Sheeran concert apart is the emotional depth and authenticity of his performance. Each song feels like a personal confession, a glimpse into Sheeran’s own experiences and emotions. Whether he’s singing about love, heartbreak, or the trials of life, there’s a raw honesty to his music that resonates deeply with listeners, creating an emotional connection that transcends the boundaries of the concert hall.

As the night unfolds, the crowd becomes a chorus of voices, singing along to every word, their voices blending with Sheeran’s in perfect harmony. There’s a sense of unity and shared experience that permeates the air, as strangers become friends, bonded by their mutual love for Sheeran’s music.

And then, just like that, the concert draws to a close, leaving the audience craving more. But as they spill out into the night, hearts full and spirits lifted, they carry with them the memories of an unforgettable experience. For those fortunate enough to have attended an Ed Sheeran concert live, it’s not just a night of music—it’s a moment frozen in time, a reminder of the power of music to inspire, uplift, and unite us all.


Here are some of the clips I managed to capture, it definitely doesn’t do justice to the experience, but I hope you enjoy it! :)

GitOps Workflow – Simplified Visual Guide

GitOps brought a shift in how software and infrastructure are managed with Git as the central hub for managing and automating the entire lifecycle of applications and infrastructure.

Here’s a simplified visual guide (from my favourite blog, bytebytego)

It’s built on the principles of version control, collaboration, and continuous integration and deployment (CI/CD). 

Key features include: 

  1. Version Control and Collaboration: 
    Centralizing code, configurations, and infrastructure in Git for control and collaboration. 
  2. Declarative System: 
    Describing the system’s desired state for easier version control. 
  3. Automated Delivery: 
    Automating deployment through Git-triggered processes, closely integrated with CI/CD pipelines. 
  4. Immutable Infrastructure: 
    Making changes via Git instead of directly in the live environment to prevent inconsistencies. 
  5. Observability and Feedback: 
    Monitoring systems in real-time to align the actual state with Git’s declared state. 
  6. Security and Compliance: 
    Tracking changes in Git for security and compliance, with role-based access for added control.

Over to you: Do you see GitOps’ declarative approach speeding up your deployments?

Duck or Eagle?

I was at the airport when a taxi driver approached.

The first thing I noticed in the taxi was a sentence, that I read: Duck or Eagle? You decide!

The second thing I noticed was a clean & shiny cab, the driver well dressed, white shirt & pressed pants, with a tie.

The taxi driver got out, opened the door for me & said: “I am John, your chauffeur.While I keep your luggage, I would like you to read on this card what my mission is.”

On the card was written: John’s Mission: Take my customers to their destination quickly, safely & economically, offering a friendly environment.

I was impressed!

The cab’s interior was equally clean.

John asked me:
“Would you like a coffee?”

Playing with him I said:
“No! I prefer a juice.”

Immediately he replied: “No problem. I have a thermos with regular juice & also diet, as well as water” he also told me: “If you’d like to read, I have today’s paper & some magazines as well.”

When the cab started, John told me: “These are the radio stations I have & this is the repertoire they play.”

As if that wasn’t enough, John asked me if the air conditioning temperature was good.

Then he told me the best route to my destination & whether I wanted to talk to him or whether he preferred that I not be interrupted.

I asked:”Do you always serve your customers like this?”

“No!” He replied. “Not always.
Only in the last two years.
My first years as a taxi driver I spent most of my time complaining like other taxi drivers.
One day I heard a doctor specializing in personal development.
He wrote a book called Who You Are Makes a Difference.
He said: If you get up in the morning expecting to have a bad day, you will!
Don’t be a DUCK! Be an EAGLE!

The ducks only make noise & complain, the eagles soar above the group.

I was all the time making noise & complaining. So I decided to change my attitudes & be an eagle.

I looked at the other taxis & drivers. Dirty taxis, unfriendly drivers & unhappy customers.

I decided to make some changes. Since my customers responded well, I made a few more changes.

In my first year as an eagle, I doubled my income. This year, I already quadrupled.

You were lucky to take my taxi today. I’m no longer at the taxi stand. My clients make reservations on my cell phone or text me. If I can’t answer, I can get a reliable “Eagle” taxi driver friend to do the job.”

John was different. He offered a limousine service in a regular taxi.
John the taxi driver, decided to stop making a noise & complain as ducks do & started to fly over the group, as eagles do.

It doesn’t matter if you work in an office, maintenance, teacher, civil servant, politician, executive, employee or a professional or a taxi driver! How do you behave? Are you dedicated to making a noise & complaining? Or rising above the rest?

Remember: THE DECISION IS YOURS! This key only opens from the inside!

AND EACH TIME YOU HAVE LESS TIME TO CHANGE!

Love your Priests

According to recent studies… many priests quit each year. They don’t quit because they have a lack of faith in God. They don’t quit because they don’t believe in the calling God has placed on their life. Most don’t even quit because of financial reasons.

Priests quit because they are overwhelmed with mental exhaustion.

Until you’re a priest, you’ll never fully understand what it’s like to carry spiritual burdens for people. Getting up in the middle of night, praying for your family of faith. Awakened in the middle of night with someone on your heart. Overwhelmed with concern by a persons absence or distance.

Your mind continually occupied with the presentation of the upcoming Sunday message – how to preach it, what to teach on, how do we apply it? Getting critiqued on a continual basis.

Being told you need to do better or that some areas of the church simply need to be better.
priests invest their whole life into people and yet people will turn their backs on their priests at the first sign of a storm, usually without a conversation. Priests stand in the middle of disputes.
priests stand in the middle of gossip.
Priests council broken marriages.
Priests comfort those who have suffered loss. Priests navigate the waters of imperfect people with a desire to see each one thrive in their faith.

They long for spiritual breakthroughs. Your Priests craves the very best for you. All of this, while trying to battle their own flesh and grow in their own relationship with God.
Priests see the posts.
Priests hear the whispers.
Priests endure the negativity.
Priests are continually caring for the sheep while fending off the wolves.
Priests pour out and pour out – rarely being poured into.

What keeps a Priest going? YOU!

You – the person who is genuinely hungry.
You – the person who worships with passion and freedom.
You – the teenager who is striving to be a follower of Jesus.
You – the single mom who understands the beauty of the hope found in Christ.
You – the one who walks through the door for the first time because you’re in search of peace, hope, and community.

Pray for your Priests. Serve with your Priest.
Talk with your Priest. Encourage your Priest.
They are human. They need You more than you think!

What doesn’t kill you makes you stronger?

My dad and I once had a disagreement over him using the adage
“What doesn’t kill you makes you stronger.”

I said, “That’s just not true. Sometimes what doesn’t kill you leaves you brittle and injured or traumatized.”

He stopped and thought about that for a while. He came back later, and said, “It’s like wood glue.”

He pointed to my bookshelf, which he helped me salvage a while ago.

He said, Do you remember how I explained that, once we used the wood glue on them, the shelves would actually be stronger than they were before they broke?”

I did.

“But before we used the wood glue, those shelves were broken. They couldn’t hold up shit. If you had put books on them, they would have collapsed. And that wood glue had to set awhile. If we put anything on them too early, they would have collapsed just the same as if we’d never fixed them at all. You’ve got to give these things time to set.”

It sounded like a pretty good metaphor to me, but one thing I did pick up on was that whatever broke those shelves, that’s not the thing that made them stronger. That just broke them. It was being fixed that made them stronger. It was the glue.

So my dad and I agreed, what doesn’t kill you doesn’t actually make you stronger, but healing does. And If you feel like healing hasn’t made you stronger than you were before, you’re probably not done healing. You’ve got to give these things time to set.