Moving on from Guilt

Over the course of our lives upto this point, we all have probably done a few things we regret. Mistakes are normal to human growth. Still, the guilt that creeps in and stakes out space in your consciousness can cause plenty of emotional and physical turmoil.

You might know guilt best as the nauseating twist in your stomach that accompanies the knowledge you’ve hurt someone else. Perhaps you also struggle with recurring self-judgment and criticism related to your memories of what happened and your fear of others finding out.

As an emotion, guilt has a lot of power.

Guilt helps you acknowledge your actions and fuels your motivation to improve your behaviour. It might also lead you to fixate on what you could have done differently. If you’ve never felt able to come clean about a mess-up, your guilt might feel magnified to an almost unbearable degree.

Though guilt can sometimes promote positive growth, it can linger and hold you back — long after others have forgotten or forgiven what happened.

Letting go gives us freedom, and freedom is the only condition for happiness. If, in our heart, we still cling to anything—anger, guilt, or possessions—we cannot be free.

Thich Nhat Hanh

If you struggle with letting go of feelings of guilt you’re absolutely not alone. Most of us have all been there and continue to harbour feelings of shame or guilt about things long in the past. In the spirit of moving forward, here are seven ways to move on from guilty feelings.

1. Address It Sooner Rather Than Later
The sooner we address what’s making us guilty, the less time it has to weigh us down. If the guilt is legitimate, and making amends is relatively easy then we should minimize the self-punishment phase and allow ourselves to move forward by apologizing.

2. Remember, No One Is Perfect
Remember that absolutely no one is perfect, and we all make mistakes. Don’t engage in days, weeks or months of self-blame or battering your self-esteem because you should’ve known, should’ve acted differently, or should’ve been an ideal person. You’re not, and neither am I. That’s just life. Once you’re tried your best to make amends, try to let it go and not be so hard on yourself.

3. Don’t Keep It To Yourself
Talking out your guilt or the incident that caused it with a relative/friend can be extremely therapeutic. Secrecy is the intensifier of guilt. Once you’ve bared something that you find troubling and discover that your friend isn’t nearly as shocked as you thought he or she would be, the guilt begins to drain away and you feel better.

4. Give Yourself A Reality Check
Make sure your guilt is actually legitimate and not coming from a standard or expectation placed on you earlier in life, or even over something that isn’t upsetting anyone else.

5. Write It Down
Try writing your feelings of guilt and shame down in a journal when you’re having trouble getting past them. Write down all of your thoughts and feelings honestly, then ask yourself some questions, like: Do I need to hold onto these thoughts and feelings anymore? How would changing these thoughts or feelings make a difference in my life? How is guilt holding me back?

6. Remember Your Self-Preservation Matters
Always remember that your self-preservation matters. Maybe you couldn’t make it to your friend’s party because you were just too swamped that week, or couldn’t make it to your family member’s 30th because airline tickets were just too expensive. You are entitled to look out for your self-interest just as much as anyone else, and sometimes that means saying no or disappointing others. Remind yourself that your actions are valid, and don’t let others guilt-trip you into believing otherwise.


While guilt can often help us learn a valuable lesson, other times it weighs on us way longer than it should, affecting our self-esteem and our ability to move on. If you’re having trouble letting go, try to remember that everyone has been there and no one is perfect!

WWDC 2022: What’s new in iOS, WatchOS, MacOS?

Each year Apple kicks off its Worldwide Developer Conference with a few hours of back-to-back-to-back announcements, generally covering things from iOS to watchOS to new hardware. Here are some of the key announcements made at the keynote on Monday.

iOS 16

  • The lock screen is getting an overhaul. It’ll allow for more customization, plus support for widgets — including widgets for third-party apps. Notifications will now “roll in” from the bottom of the screen, while a “Live Activities” API will let developers update notifications in real time (think sports score tracking.)
Image Credits: Apple
  • SharePlay (which lets you, for example, watch a streamed movie in sync with a friend) will now work in iMessage, not just over FaceTime.
  • Apple is getting into buy now, pay later; Apple Pay Later will let you split an Apple Pay purchase over four payments with zero interest; Apple says it’ll work anywhere Apple Pay works.
  • Apple’s big Maps overhaul is coming to a bunch of new places this year, including “France, Switzerland, New Zealand, Belgium, Israel, Liechtenstein, Luxembourg, Monaco, Palestinian Territories, Saudi Arabia and the Netherlands.” It’s also getting improved multistop route support.
  • If you use Family Sharing to limit your kids’ iPad screen time, said kids will now be able to request more time via iMessage.
  • Live Text will be able to translate and replace text it detects in a photo, allowing you to more easily read through something like a menu in a language you don’t know.
Image Credits: Apple
  • Apple says it has reimagined the Home app “from the ground up.” All of your various devices in different rooms are brought into one screen, including a side-scrolling view of all of your HomeKit-enabled cameras.
Image Credits: Apple
  • iPadOS will get a new desktop-style window management feature called “Stage Manager” that lets you run multiple windowed/overlapping apps on screen simultaneously.
  • CarPlay is also getting a massive overhaul — Apple is basically looking to take over your car’s entire instrument cluster. It’ll support things like speed readouts, fuel gauges, AC control, etc; what works where, of course, will depend on what the car maker allows. Apple says to expect more news here “late next year.”
Image Credits: Apple

Apple Watch

  • Four new watch faces: Astronomy, Lunar, “Play time,” and “Metropolitan.”
  • New “banner” notifications will keep you updated without always taking over the whole screen.
  • Apple Watch will be able to track a few new running metrics, including vertical oscillation (“how much you move up and down” while running), stride length and ground contact time.
  • The Fitness app on iOS will now be enabled even for those who don’t have an Apple Watch, so everyone can close those rings.
Image Credits: Apple
  • Sleep tracking will use the heart-rate monitor and accelerometer to determine how much time you spent in four different sleep stages (Awake/REM/Core/Deep) while trying to catch some Zzz’s.
  • Apple Watch will be able to track your “A-fib history” to help doctors monitor heart arrhythmia and determine if treatment is helping.

macOS

The next major release of macOS will be called “macOS Ventura.” Here’s what Apple highlighted for Ventura:

Image Credits: Apple
  • “Stage Manager” mentioned above is coming to macOS as well, pitched as a way to focus on one or two apps at a time. You can “group” running apps together; tapping into a group will minimize other apps, while putting the selected group front and center.
  • Spotlight is getting a bit of an overhaul; it’ll be able to pull rich results into a new scrolling view and allow you to do things like quickly preview a found file without actually opening it.
  • The Mail app is getting support for undo send, scheduled send and timed reminders. Search within Mail is getting smarter, automatically correcting for typos and knowing how to search for synonyms.
  • Safari will now be able to use “passkeys” instead of passwords — a system built along with Google and Microsoft to allow you to log in to websites and apps with biometrics (like fingerprint sensors or facial recognition) without any text-based passwords in the mix.
  • Continuity Camera: Your iPhone’s camera is almost certainly much better than the one built into your laptop — so Apple is going to let you use your iPhone’s Camera for video calls on macOS. Clamping the iPhone onto your laptop looks a little goofy, but the impact on quality is probably worth it for important calls. There’s also a wild “desk view” feature that uses the iPhone’s wide angle lens, combined with some tricky image manipulation, to capture what you’re doing on your desk in a simulated overhead view.
Image Credits: Apple

Airbnb Moves from Webpack to Metro for Faster Builds

Like many companies, Airbnb has experienced growing pains with bundlers as its codebase grew. But even after its codebase quadrupled, the company was able to speed UX changes to the front end when it migrated its JavaScript code bundler from Webpack to Metro in 2018.

With build performance significantly improved, UI changes appeared 80% faster, as per the Time to Interactive (TTI) metric. Even the slowest production build, one compiling 49,000 modules (JavaScript files) is now 55% faster — down to 13.8 minutes from 30.5 minutes with Webpack. 

Airbnb’s own Page Performance Scores also improved (~1%) with those pages built with Metro.

For reference, after the codebase quadrupled around 2018, the average page refresh time for a simple one-line code change was anywhere between 30 seconds to two minutes depending on the project size.  

Airbnb software engineer Rae Liu covered some of the differences between Webpack and Metro and discussed some of the migration challenges which are summed up below.

What Is Metro?

Developed by Meta, Metro is the open-source JavaScript code bundler for React Native. As Airbnb’s stack doesn’t include React Native, their engineers worked directly with Metro’s engineers at Meta as well as on teams themselves to further develop the technology.

Metro breaks bundling down into three steps in the following order: resolution, transformation, and serialization.

  • Resolution: resolve the import/ require statements
  • Transformation: transpile code (source to source compiler which converts modern Typescript/ JavaScript source code into JavaScript and backwards compatible with old browsers), an example tool is babel 
  • Serialization: combine the transformed files into bundles

In development, Airbnb engineers created a Metro server with custom endpoints to handle building dependency graphs and source maps, translation, and bundling JS and CSS files. For production builds, they ran Metro as a Node API to handle resolution, transformation, and serialization. 

The migration took place in two phases. The first priority was the Metro development server as the slow Webpack development server was the source of significant development productivity costs. The second migration phase focused on bringing Metro to feature parity with Webpack and running an A/B test between Metro and Webpack in production.

Key Differences Between Metro and Webpack

Process JavaScript Bundles On Demand

Webpack pre-compiles the entire project on startup while Metro only compiles what is needed. What does this mean? A JavaScript bundle is technically just a serialized dependency graph, where an entry point is the root of the graph. 

At Airbnb, every frontend project has a Node server that matches a route to a specific entry point. When a web page is requested, the DOM includes script tags with the development JavaScript URLs. Webpack needs to know all the entry points for all the pages before it can start bundling while Metro only needs one entry point and can process JavaScript bundles as requested.

Unseen in the following image, a developer makes a change to Page A:

In both 1a and 1b in the diagram above the browser loads Page A (1) the requests the entryPageA.js file from the bundler (2)  and the bundler responds to the browser with the appropriate bundles (4). The difference between figures 1a and 1b lies in action (3) as the Webpack diagram compiles entry points for pages B and C while Metro does not as the developer-only modified Page A in the example. 

One of the largest frontend projects at Airbnb has 26,000 unique modules with the median number of modules per page being ~7.2 modules. The number of modules Airbnb ultimately has to process doubles to roughly 48,000 due to their use of server-side rendering. After putting Metro’s compile-on-demand model into action, approximately 70% is now taking place.

Multilayered Cache

Airbnb leverages Metro’s Multilayered Caching feature with persistent and non-persistent caches. Metro does provide more caching flexibility by allowing engineers to define the cache implementation, including mixing different types of cache layers.  

Airbnb ordered their caching layers by order of priority. If a result is not found in one cache layer, the next layer will be used until the result is found. Compared with the default Metro implementation without a cache, hitting a remote read-only cache resulted in a 56% faster server build in a project compiling 22,000 files. 

The third caching layer is a remote read-only cache rather than a read-write cache as writing to a remote cache incurs costly network calls especially on a slow network. This decision saved an additional 17% build time in development.

Webpack does have a caching layer though it does differ from what Metro offers.

Bundle Splitting

One of the technical challenges detailed in Airbnb’s blog post is Bundle Splitting. This is the process of splitting the bundles by dynamic import boundaries also known as code splitting. The out-of-the-box Metro solution produced giant ~ 5MiB bundles per entry point which were taxing on browser resources, network latency, and unable to HTTP cache.

In the image above, import(‘./file’) represents the dynamic import boundaries. The bundle on the left-hand side (3a) is broken down to three smaller bundles on the right (3b). The additional bundles are requested when the import(‘./file’) statements are executed.

Suppose fileA.js  changed, the entire bundle needs to be re-downloaded for the browser to pick up the change in fileA.js. With bundles split by dynamic import illustrated in Figure 3b, a change in fileA.js only results in the re-downloading of the fileA.js bundle. The rest of the bundles can reuse the browser cache.

In production, there is no development server and the bundles are prebuilt. Airbnb engineers took some inspiration from Webpack’s bundle splitting algorithm and implemented a similar mechanism to split the Metro dependency graphs. The resulting bundle size decreased by ~20% (1549 KB –> 1226 KB) on airbnb.com as compared to the development splitting by dynamic import boundaries.

Development bundles were optimized differently as it takes time to run the bundle splitting algorithm and the engineers didn’t want to waste time splitting bundle size in development. In the instance of development, page load performance was prioritized over minimizing bundle size.

The Metro and Webpack bundle size metrics are comparable.

In Conclusion

The biggest Airbnb frontend project compiling ~48,000 modules (including server and browser compilations) saw a drop in the average build time by ~55% from 30.5 minutes to 13.8 minutes. Airbnb Page Performance Scores improved around 1% for pages built with Metro which was a nice surprise as the goal was a neutral result. Overall, the implementation of Metro is widely successful. 

Metro has solved the bundling issues Airbnb was facing but the engineers also recognize that new technologies have emerged since their decision to move forward with Metro and that Metro isn’t a general-purpose JavaScript bundler. 

Success & Growth Look Different for Everyone

My wife loves plants and when I saw this quote I recalled a lot of what I see in our garden. Some plants grow outward first while other spend months growing roots before they are able to show any fruit.some plants grow outward first while other spend months growing roots before they are able to show any fruit or flowers or growth.

In the end both grow, but the process could not be more different.

It can be super easy to compare one persons growth to another, to see the one plant that already has fruit and say it is doing better than the other plant. Yet just below the surface the other plant is doing just as well, the one difference is that you cannot see it.

We have to remember everyone defines success and growth differently – and that’s more than okay, it’s necessary!

What do I mean that success looks differently to everyone and that it’s necessary? It means, if you’ve accomplished your purpose and worked diligently at whatever you do, you are successful.

For some of you this means being a full-time mom or dad. For others, it means your family made it through the week, and you spent time teaching your children life skills, like being kind. For some of you, it means you made our streets safer or you provided healthcare in an emergency or you served a customer well.

Success has many faces. Too often, we let comparison get in the way of celebrating our own successes. We spend our days looking at others and thinking, “If I did that, I’d be successful,” or, “Wow, I should be doing more with my life. Look at so and so.” Comparison only takes us backwards though. It chokes us and keeps us from seeing the individual gifts we bring to the world around us.

How do we move past comparing ourselves to others? Here are some practical things you can do:

1) Make sure you know your values. When you measure yourself against what you value, you have a solid, non-moving goal. If my values include helping others, then I can evaluate if I did that today. Did I help someone today? Then it was a successful day. Our values provide an impartial measurement tool for us.


2) When you are tempted to compare your success to someone else’s, evaluate the cost of their success. We usually only look at the benefits of success in other people’s lives and neglect the costs. For example, some may look at an air hostess and say, “You get to travel to really great places.”

And, yes, he/she do. However, if you were to evaluate the costs of their travel, you would learn that they often end up with a migraine from the pressure changes in the plane. That’s a cost. It impacts their off day home and leaves them ineffective for their family who has missed having them home. We don’t often advertise the costs associated with success, but I guarantee everyone has costs they pay for their particular success.


3) Remind yourself everyone has a purpose in life. Sometimes the purpose is glamorous, other times someone’s purpose may not be glamorous, but their purpose is essential. Think of the number of administrative assistants in the world who may not lead glamorous lives, but who make our worlds go around! Without them, we’d be nothing. We may not count that as success, but it’s more than success. It’s essential for others to accomplish their purposes.


Everyone has value. Everyone has purpose. Most often, it’s our perspective that’s off-base. This week as you are tempted to look at someone else’s success, keep these things in mind. Most importantly, evaluate your own success in light of your impact on those around you. After all, that’s what really matters.

Change Your Story

We often limit ourselves by deciding we can’t do something before we even try.  These limiting beliefs may lead us to ask ourselves, “Why bother?” or tell ourselves, “This is silly.” When we do this, we are effectively telling ourselves the answer is “no” before we even ask the question. When we do that, we’ve stopped our growth and our path to success.

This negative self-talk is a clear sign that you need to rewrite your story. Our story affects what we do, where we go and how we approach life. A powerful story leads to a life of opportunity – change your story, change your life. The first step in changing your story is to stop telling yourself disempowering ones.

How many times have you said something like this to yourself?

I have to be perfect… I’m too old… I’m just not that kind of person.

These are exactly the type of damaging thoughts that keep us from achieving our goals and, ultimately, our dreams. By addressing the following damaging thoughts head-on and treating ourselves with kindness instead of doubt, you can change your mindset and learn how to change yourself.

The stories we tell ourselves make up our identity and dictate what we believe we can and cannot do. Here are some common stories that you tell yourself that limit your opportunities for growth and indicate it’s time for you to rewrite your story:

“I have to be perfect.”

Perfection is the lowest standard anyone can have – it leaves no room for growth. While completing a task perfectly may feel good for a little while, it’s through our mistakes that we develop our greatest strengths and find life’s impactful lessons. If you have done something perfectly, you haven’t really learned anything – how to do this task better, for example, or what to avoid. By telling yourself you have to be perfect, you’re putting limits around your own capabilities. When you want to learn how to change your life around, you have to give up perfection.

Rather than striving for perfection, strive for a balanced life. Accept that you will make mistakes and when you do, use them as a starting point to realize your next level. Trying to be perfect stems from one’s fear of failure. Instead of being afraid to fail, pursue your passion no matter the outcome.

Take the opportunity to learn from your mistakes: find the cause of your problem and eliminate it. Don’t try to be perfect; just be an excellent example of a human.


“My life is harder than anyone else’s.”

Everyone is fighting their own battle. It’s how you choose to handle difficulty that determines how to change your life around.

Look at the success stories of Oprah and Tony Robbins, and the hardships they overcame to achieve a life of greatness. As Tony says, “Identify your problems, but give your power and energy to solutions.”

A hard life doesn’t prevent you from success unless you tell yourself it will. There are plenty of examples of those who overcame seemingly overwhelming obstacles to achieve greatness, and just as many examples of those born with all the advantages in the world who failed to have fulfilling lives. When it comes to rewriting your story, you must let go of the past.


“If I ignore it, it will go away.”

If you want to learn how to change yourself, you must see things as they really are. Reality always catches up with us. While we can sometimes pretend they aren’t there, our problems will always be waiting for us when we return. It’s only when we choose to face them head on that they truly go away.

Our goal is not to ignore the problems of life, but to put ourselves in better mental and emotional states to not only come up with solutions but really meet the challenges and take action. Take a good look at yourself and where you are in life and the choices you have made that have brought you to this point. This is not an opportunity to beat yourself up. Rather, it’s a chance to take inventory and understand what you need to change in order to rewrite your story.


“I’m too young, or I’m too old.”

Do you think you’re too old to learn how to change your life around?

Here’s the truth: Your age only limits you if you allow it. Create a vision and never let your environment, other people’s beliefs or the limits of what has been done in the past shape your decisions. Ignore conventional wisdom.

When you look at a possible lifespan of up to 120 years if you live right, trying to rewrite your story at age 60 suddenly seems very plausible. You can do whatever you desire at any age – as long as you believe it to be true and put in the work to make it a reality.


“I’m just not the happy type.”

By telling yourself that you aren’t “the happy type,” you’re making yourself unhappy. Happiness is a choice we make – it is a state we can become through our actions. The path to happiness is more than material items and superficial things. Rather, happiness is an all-encompassing way of being. When you change your thoughts, you learn how to change your life – that is, when you choose to be happy, your negatives shift to positives.


As achievers we all seek greatness, but is there something holding you back from your next level of success and fulfillment?

Stop Trying to Change People Who Dont Want to Change

Its hard to watch a friend or family member struggling with a problem or making bad decisions. You naturally want to help. You want to make the lives of your friends and family members easier and more joyful. You want to fix their problems and relieve their suffering.

Trying to keep a loved one out of harms way seems like a good idea, except that it doesnt work when they dont want your help.

Not everyone wants to change (or not in the way you think they should) and thats their prerogative. Despite your desire to help, you cant make people change and you cant fix their problems (even when you have great ideas and their best interest at heart!). You simply cant fix or solve other peoples problems and trying to do so often just makes things worse.

If you’re frequently frustrated that someone doesn’t take your advice or want your help, you’re tired of nagging, or you feel like you’re talking to a brick wall, you may be trying to help someone who doesn’t want to change.

Identify which part of the problem is in your control

Most people accept the notion that they cant control other people or solve their problems. But we get sucked into trying to change and fix because were confused about whose problem it is. Sometimes our desire to help, protect, and be the hero clouds our judgment. And sometimes we think we know whats best and foist our ideas upon others regardless of what they want.

We tend to think that problems that affect us are ours to solve. This false belief leads us down a futile path of trying to control things that arent in our control. For example, just because youre affected by your spouses unemployment or your teenagers smoking, doesnt mean these are problems you can solve. You cant get a job for your spouse nor can you make your child quit smoking. However, if your spouses unemployment has left you in debt and feeling anxious, stressed out, or angry, those are problems you can do something about.

And yet, some of us persist in trying to fix or change other people and their problems. This is classic codependent behavior. We abhor having things out of our control. It reminds us of bad things that have happened in the past. And we get anxious and afraid of the catastrophic things we anticipate happening if we dont step in and try to change things.

Accepting whats out of our control and that we cant solve other peoples problems doesnt mean were powerless. Quite the contrary; it allows us to put our energy into identifying what aspects of a problem we can solve and to change the things we can.

Trying to solve other peoples problems often makes things worse, not better

Not only is it impossible for us to solve other peoples problems, we can inadvertently cause a host of fresh problems when we try to help people who dont want to change (in the way we think they should).

To be honest, I often wish that I could solve other peoples problems. But it always ends badly when I try. I get bossy, give unwanted advice, and act like I have all the answers. Its definitely not something Im proud of and I imagine at least some of you can relate.

Sometimes, its downright presumptuous for us to assume that we know what someone else needs or wants. Our efforts to help may actually be conveying this harmful message: I know how to solve your problems better than you do. I dont trust your judgment or abilities. Youre incompetent or unmotivated.

Its not helpful to try to solve other peoples problems because:

  • Nagging and giving unwanted advice leads to more stress, conflict, and negatively impacts relationships
  • When we try to fix, change, or rescue, we assume that we know whats best. We take on an air of superiority and can act condescending
  • Making decisions for others takes away their autonomy and their opportunity to learn and grow
  • We become frustrated and resentful that our efforts to solve other peoples problems dont work and that they arent appreciated
  • We get distracted from solving our own problems. For some reason, fixing other people always seems easier than fixing ourselves!

Instead of doing things for other people, we need to allow them to live their own lives, make their own decisions and mistakes, and deal with the consequences of their choices. Not only does this free us up to focus on what we can control, it respects other peoples autonomy.

How to stop trying to fix, change, or solve other peoples problems

Before launching into fix-it mode, try asking yourself these questions:

  • Is this my issue or problem or is it someone elses problem thats affecting me?
  • Is this a problem I can fix or change?
  • Is changing this person or situation in my control?
  • How can I redefine the problem so that Im focusing on whats in my control?
  • Do I have any influence?
  • Did they ask for my help or ideas?
  • Am I forcing my solutions and ideas onto someone?
  • Am I helping or enabling? Whats the difference?
  • Why am I trying to solve this problem?
  • Is this actually an attempt to manage my own fears and anxiety about what may happen? And if so, how else can I deal with uncertainty and feeling out of control?

If youve been trying to fix or change people for years, it will take time and effort to change these patterns. In addition to being patient and compassionate with yourself along the way, try to focus on whats in your control and the problems that you can solve. Remember, if youre feeling particularly frustrated with your inability to change or solve a problem, you may be trying to solve someone elses problem.

.NET MAUI Reaches General Availability, Replacing Xamarin.Forms

Microsoft’s evolution of Xamarin.Forms, .NET Multi-platform App UI (.NET MAUI), has finally reached General Availability status, providing one framework for both mobile apps and, now, desktop apps.

Announced at the company’s big Build developer conference, the GA release is some six months late, as it was originally planned to debut with .NET 6 in November 2021 but “slipped the schedule.” So the dev team has been playing catch up with a series of previews and three Release Candidates, the latter just shipping a couple weeks ago. With this the conversion from Xamarin.Forms to .NET MAUI is basically complete. Xamarin support will continue through November 2023.

“.NET Multi-platform App UI (.NET MAUI), now generally available, is a new framework for building modern, multi-platform, natively compiled apps for iOS, Android, macOS and Windows using C# and XAML in a single codebase,” Microsoft said. “The framework solves the challenges developers face when building native apps across many operating systems. Instead of having to learn multiple technology stacks, .NET MAUI abstracts them into one common framework built on .NET 6.”

As a jack-of-all-trades tool (except for Linux and web), .NET MAUI uses native UI via app toolkits provided by each platform, and the dev team ships workloads to create applications that exclusively target Android, Android Wear, CarPlay, iOS, macOS, and tvOS directly using the native toolkits from .NET, and the supporting libraries AndroidX, Facebook, Firebase, Google Play Services and SkiaSharp, for examples.

What’s more, .NET MAUI can incorporate web components built with Microsoft’s Blazor framework for creating web apps primarily with C# instead of JavaScript. .NET MAUI features the BlazorWebView control, which permits rendering Razor components into an embedded Web View. By using .NET MAUI and Blazor together (Blazor Hybrid apps with .NET MAUI), developers can reuse one set of web UI components across mobile, desktop and web. As shown in the graphic below, .NET MAUI Blazor App is now a Visual Studio 2022 project type.

“Native apps look and feel like the operating system on which they belong by default and layouts are fully adapted to each device automatically, with no additional code,” Microsoft said this week. “APIs are available directly from C# to access over 60 platform features, including isolated storage, sensors, geolocation and camera. Visual Studio 2022 includes Hot Reload technology to make developers much more productive building .NET MAUI apps. Developers can also take advantage of the latest debugging, IntelliSense and testing features of Visual Studio to write better code faster.”

How To Train Your Brain To Become More Positive?

We face many challenges in our personal life as well as in our career. In fact, career is one aspect of life which constantly makes us uncertain and at times leads us to the negative loop. From the quest of choosing the right career to the competitive peers, from ever nudging relatives to an un-supportive family and what not! There is something that you can do about all your woes. That is, to train your brain to see good in everything.

Remember that ridiculously cheery, borderline creepy scene from Mary Poppins where the children (rightfully so) complain about having to clean up their room?

I was never a huge fan of the film — but I could always relate to the kids in that scene.

Why?

Cleaning sucks.

Doing things that you don’t like sucks.

But looking back, I have to admit… maybe Mary Poppins was on to something.

Right before breaking into song, she declares:

“In every job that must be done, there’s an element of fun. You find the fun, and SNAP, the job’s a game.”

We assume that by its very nature, a job isn’t meant to be fun. That’s why it’s called a JOB.

But what if a simple formula could snap you out of boredom, lethargy and negativity — and make you excited, happy and motivated?

The key? You have to train your mind to see the good in every situation. Even situations that initially seem negative.

Here are three ways to start training your mind to see the good in every situation:

#1: Realize that success takes time — and it’s totally OK to be bored in the process

Something weird happens in our brains when we’re bored with our goals.
First, we experience the irritating feeling of listlessness — which is uncomfortable in and of itself.

But that feeling of listlessness is usually followed by aggravation.

We’re bored with our lives. Then we get mad at ourselves for getting bored. Then we get we try to think of a way to get un-bored, and the only thing we can think of doing are the things that bored us in the first place.

Try this mental reframe: From now on, I want you to begin viewing boredom not as a sign of stagnation, but as a sign of consistent, steady progress.

As long as you’re doing the little things that you need to do every single day in order to succeed, then success is inevitable. It’s ok to be bored from Point A to Point B.

Just don’t stop.


#2: Create a system to start tracking your progress

Sometimes, the biggest reason why we fail to see the good in everyday situations is because we lose perspective on how far we’ve come. You’re missing the forest for the trees.

Remember coming back from summer vacation and seeing the people who’d grown six inches? You didn’t see them for months — so their growth was quite apparent. But to them, the growth probably didn’t feel noticeable.

Point being, you have to start taking notice of the little, day-to-day improvements that you make. Over time, this will allow you to see how far you’ve come, and it will give you a reference point for where you want to go.


#3: Remember that you can still make it — even when others discourage you

It’s hard to pursue your dreams when your family, friends and coworkers don’t believe in you. It feels good to have people that you care about support your vision.

But whenever someone tells you that you can’t do something, that a goal is “impossible” or downright laughs in your face, don’t get frustrated.

Instead, train your mind to see their disbelief as a challenge.

Instead of saying, “They’re probably right. I can’t do it” — train yourself to think, “Okay. Now, I’ll SHOW you what I can do.”

Every time someone disparages you in an opportunity to show them how strong your vision is.

Turn their negative energy into your rocket fuel and blast off.


By positive thinking I don’t mean that you shut your eyes towards reality and practicality but that you approach unpleasant situations in a more positive manner. You start searching the best in the worst. Don’t think that these things will have a magical effect overnight but yes you will certainly turn into an optimist with time and will come one step closer to happiness.

Measure of Your Character

Through our lives we encounter different types of people who are successful. Some we look up to and some who teach what we should not be. No matter how educated, talented, rich or cool you believe you are, how you treat people ultimately tells all. And this is exactly what came to my mind when I saw this pic when I was scrolling through my Instagram feed.  I think it’s a message we forget all too often, especially in our celebrity-worshiping, superiority-complex-having society. 

The media taught us from a very early age that beauty is measured by what’s on the outside, that those with money deserve power, that power demands respect, and that education is synonymous with intelligence.

Worst of all, we’re taught that those with any or all of the above are somehow better than us. That their lives matter more. 

There is one thing- and one thing alone- that determines the type of person you truly are: how you treat people.  All people. That starts by realizing that we’re all equal.

We need to let go of this idea that one person is somehow better than another just because they make more money, went to school longer, dress better, have a smaller waist or a more viral Instagram account. None of those things make you better than me or me better than you.

Judge a person not by how he treats you, but how he treats others. The former reflects what he wants you to think of him, the latter truly reflects who he is

Betty Jamie Chung

Let me tell you, money can’t buy a personality or brains. Four years of Ds can still earn you a degree. Outer beauty fades. Waistlines expand. In other words, none of those things are real and none of them tell you a single thing about a person’s true nature.

When you strip away the size of your bank account, following, or IQ, you’re left with the true measure of your worth- the size of your heart (metaphorically speaking, of course). If you ask me, I think a big heart beats a big bank account or brains any day!

I was raised to treat the janitor the same as I treat the CEO.

Janelle Monae

It’s easy to admire those with a certain title or job position but what we can’t tell from those things is who that person is. Although we may look up to someone for their achievements, true admiration comes when we see someone treat another person with respect and kindness even though they have no obligation to. 

It is easy to go through life only thinking of yourself and what your needs are, but when you extend compassion to others is when you truly contribute to the world. When you give the same respect to every person, you effect people more than you realize. The small acts of kindness you extent turn into a snowball of happiness through people passing it forward. 

I’m sure we have all experienced an interaction with someone that brightened our day. These come from true connections with people who show compassion towards us and can completely alter our attitude. Let’s all shine a light in other people’s lives by interacting with empathy and leading with character!

You Have EVERYTHING You Need

Have you ever stopped and wondered why you do the things that you do? Have you ever questioned why you spend so much time consuming content on the internet, television, or social media?

It’s easy to tell yourself the story that you won’t be happy or complete until you achieve x, y, and z. Or you need a, b and c to start on your dream. But what if I told you that you’re not lacking an answer. You don’t need more information or more resources or different people to support your goals.

Do you know how you can stop procrastinating?
Do you know how to stop wasting your time?

By realizing that you already have everything you need. It might sound like a simplistic way of looking at life, but there’s truth in it.

The reason we believe we need more stems from the idea that you yourself are not enough. You’re not enough as is so you have to collect accomplishments and material wealth to be seen as someone. We feel like there’s more to be done to become our best selves. You can work on self-improvement if you like, that’s a positive thing if it’s done right, but you have to first understand you have what you need and you’re enough as you are.

If you pull up a search on what it takes to be successful guess what you’ll find? The majority of the things listed are traits. They’re inside your mind, they’re part of your body. There’s always knowledge to consume, there’s always something to learn, but you have to stop underestimating yourself and start understanding that you have everything you need to succeed. It’s all within you waiting for you to tap into it.

For me, it took a long time to understand that the successful people I looked up to achieved what they did because of their internal motivations and their internal traits. They recognized that they had what they needed, they drew from a place of abundance, and they found that extra mile to run when everyone else gave up. With everyone around them looking for more support, more information, more experience, more physical resources, they relied on what they had and it was enough.

If I could wish for anything for you, it would be that you could understand that. That you’re enough and that you have everything you need.

There’s no pot of gold at the end of your rainbow, there’s no unicorn waiting for you to ride off into the sunset. None of that is real, but what is real is you and your abilities. The worst thing you can do is believe you need more than what you have because that, my friend, is simply an excuse to avoid your life’s work.

 You’re already enough, you already have enough, but you have to learn how to live that truth.

Appreciate

If you already have everything you need and you don’t know it, then the problem is you need to focus on appreciating this simple fact. Start building a habit of noticing what you have, being grateful for it, and stop taking everything for granted.


Respect

If you appreciate someone or something, then you more than likely treat it with respect. Respect the people around you, respect the things around you, and when you start the practice you’ll notice that it shows in your actions. It’s much easier to believe and recognize that you have everything you need when you respect the things you have and the people you meet.


Support

If you have enough why do you spend so much time worrying about it? Wouldn’t it make more sense to do for others? A lot of people in this world are suffering, is there something you can do to make a difference?

There’s a range of issues going on in the world and people are touched by all kinds of difficulties. What can you do to ease some of those ills? Of course, you can’t do it alone, but any contribution is a step in the right direction.


It’s difficult to remain present and appreciate life with everything going on in the world. You’re not immune to difficulty or pain, but that doesn’t mean you don’t already have everything you need. The more often you do the above three points, the quicker it will become second nature and you’ll recognize the profound miracle that is your life. You already have everything you need, all you need to do is see it.