Blog

  • Psychological Traps: How They Shape Our Decisions and How to Overcome Them

    This idea was Taken from https://www.youtube.com/watch?v=MChqrjv4YFI&ab_channel=LITTLEBITBETTER

    Our minds are prone to cognitive biases—psychological traps that subtly influence our decisions. Recognizing these biases can help us make better choices and avoid common pitfalls. Here are 38 psychological traps you should be aware of, along with practical examples and strategies to counteract them.

    1. Ostrich Effect

    Ignoring negative information because it makes you anxious. Example: A person avoids checking their bank balance because they fear bad news. Solution: Face uncomfortable facts head-on; information empowers better decision-making.

    2. Inability to Close Doors

    Fear of missing out leads you to continue something despite losses. Example: A trader keeps holding onto a losing stock, fearing they might miss a rebound. Solution: Focus on one thing and accept that every choice has trade-offs.

    3. Contrast Effect

    Overvaluing something because it is compared to something worse. Example: A car salesman shows you an overpriced model first so that the next option looks like a bargain. Solution: Evaluate things independently, without relative comparisons.

    4. Chauffeur Knowledge

    Trusting someone who sounds smart but lacks true wisdom. Example: Following financial advice from a social media influencer who repeats expert opinions without understanding them. Solution: Ask deeper questions to reveal genuine understanding.

    5. IKEA Effect

    Overvaluing something just because you created it. Example: A startup founder overvalues their failing product because they built it. Solution: Seek external feedback to ensure objective evaluation.

    6. Curse of Specificity

    Giving too much weight to irrelevant details. Example: Choosing a job based on a single perk rather than overall benefits. Solution: Focus on the big picture rather than unnecessary specifics.

    7. Spotlight Effect

    Believing others notice you more than they actually do. Example: Feeling embarrassed about a small stain on your shirt, assuming everyone notices it. Solution: Realize that people are generally more focused on themselves.

    8. Halo Effect

    Allowing a good impression in one area to influence judgments in others. Example: Assuming a friendly coworker is also highly competent. Solution: Separate different aspects when evaluating a person or situation.

    9. Reciprocity

    Feeling obligated to return favors even when unnecessary. Example: Feeling pressured to buy something after receiving a free sample. Solution: Act out of genuine intent, not just obligation.

    10. Self-Serving Bias

    Attributing success to oneself but blaming failure on external factors. Example: A student credits themselves for good grades but blames a teacher for poor ones. Solution: Take responsibility for both success and failure.

    11. Diderot Effect

    One purchase leading to a spiral of unnecessary spending. Example: Buying an expensive suit, then feeling the need to purchase matching shoes and accessories. Solution: Be mindful of cascading consumption.

    12. Anchoring Effect

    Giving disproportionate weight to the first piece of information received. Example: Seeing a product originally priced at $500, then marked down to $300, making it seem like a great deal. Solution: Consider all options equally before deciding.

    13. Negativity Bias

    Focusing more on negatives than positives. Example: Remembering one negative review about a restaurant despite hundreds of positive ones. Solution: Consciously highlight and appreciate positive aspects.

    14. Sunk Cost Fallacy

    Continuing an endeavor due to past investments. Example: Staying in a bad relationship because of years already spent in it. Solution: Focus on future returns, not past losses.

    15. Paradox of Choice

    Struggling to choose because of too many options. Example: Spending an hour trying to decide what to order from an extensive menu. Solution: Simplify choices to avoid decision fatigue.

    16. Framing Effect

    Decisions influenced by how information is presented. Example: A medication labeled “90% success rate” sounds better than “10% failure rate,” even though both are the same. Solution: Reframe information objectively.

    17. End of History Illusion

    Believing who you are now is who you will always be. Example: Thinking your current career or hobbies will never change. Solution: Accept that personal growth is ongoing.

    18. Pygmalion Effect

    Higher expectations lead to better performance. Example: A teacher who believes in their students helps them perform better. Solution: Set ambitious but realistic goals.

    19. Consistency Effect

    Staying accountable due to external expectations. Example: Announcing a goal publicly to encourage follow-through. Solution: Find an accountability partner.

    20. Planning Fallacy

    Underestimating time and effort required for tasks. Example: Assuming you can complete a project in a week when it realistically takes a month. Solution: Plan thoroughly and set realistic timelines.

    21. Confirmation Bias

    Noticing information that supports pre-existing beliefs. Example: A person who believes a conspiracy theory only seeks information that supports it. Solution: Challenge your own assumptions actively.

    22. Bandwagon Effect

    Following the crowd without critical thinking. Example: Buying a trending stock without researching its fundamentals. Solution: Make decisions based on your own needs.

    23. Dunning-Kruger Effect

    Overestimating one’s own competence. Example: A beginner investor believing they can outperform the market. Solution: Consult experts and stay humble.

    24. Loss Aversion

    Fearing failure more than valuing success. Example: Not investing in stocks due to fear of losing money. Solution: Reframe losses as learning opportunities.

    25. Decoy Effect

    Choosing something because it looks better than a worse option. Example: Opting for a medium-sized popcorn because the large one seems overpriced. Solution: Evaluate options independently.

    26. Availability Heuristic

    Judging probability based on easily recalled events. Example: Avoiding flying after seeing news of a plane crash. Solution: Rely on data, not just personal experience.

    27. Gambler’s Fallacy

    Believing past events affect future outcomes. Example: Thinking a coin flip must land on heads after ten tails in a row. Solution: Recognize that independent events remain independent.

    28. Hindsight Bias

    Believing you “knew it all along.” Example: After a stock market crash, claiming you saw it coming, despite making no prior decisions to avoid losses. Solution: Acknowledge uncertainty and learn from outcomes.

    29. Reactance Bias

    Doing the opposite of what is advised due to a perceived threat to freedom. Example: Ignoring dietary advice because it feels restrictive. Solution: Evaluate guidance objectively and consider its benefits.

    30. Action Bias

    Acting hastily without enough information. Example: Making an impulsive investment decision during a market dip. Solution: Be patient and gather sufficient information before acting.

    31. Survivorship Bias

    Focusing only on successes while ignoring failures. Example: Assuming all entrepreneurs become successful without considering those who failed. Solution: Study both successes and failures for a balanced view.

    32. Unity Principle

    Trusting someone more just because they belong to your group. Example: Choosing a candidate in an election just because they share your background. Solution: Evaluate people based on merit, not group affiliation.

    33. Zeigarnik Effect

    Remembering incomplete tasks more than completed ones. Example: Feeling restless about an unfinished project but forgetting completed tasks. Solution: Organize and complete tasks systematically to reduce stress.

    34. Bystander Effect

    Failing to act because others are around. Example: Seeing someone in distress but assuming someone else will help. Solution: Take personal responsibility and act when needed.

    35. Ambiguity Effect

    Avoiding choices that seem unclear. Example: Ignoring investment options due to a lack of familiarity. Solution: Research and clarify uncertainties before deciding.

    36. Curse of Knowledge

    Assuming others know what you know. Example: A teacher explaining a concept too quickly, forgetting students lack prior knowledge. Solution: Communicate clearly and confirm understanding.

    37. Illusion of Averages

    Believing averages tell the whole story. Example: Choosing a job based on average salaries without considering individual differences. Solution: Look at the full range of data, not just the average.

    38. Endowment Effect

    Overvaluing something just because you own it. Example: Refusing to sell an old car at a fair price because of sentimental attachment. Solution: Consider an outsider’s perspective when assessing value.

    Final Thoughts Psychological traps can cloud our judgment, but awareness is the first step toward overcoming them. By recognizing these biases, we can make more rational, balanced, and thoughtful decisions in all aspects of life.

  • Catan & the power Of AI

    Why?

    Recently while doing some Xmas shopping i game across the board game Catan it fitted into an idea i have had for a while about a game along these lines.

    I Also wanted to see if i could build a game with the help of AI without coding a single thing myself.

    After 26 Iterations i present you with

    https://github.com/herepete/games/blob/main/catan.py

    You will only need to install 1 package

    pip3.11 install PrettyTable

    It might not be fully finished but it was a fun experiment playing with AI.

    I found the default chatgbt model of GPT-4o pretty good for the initial setup but when the script got more complicated to 200 ish lines plus it started struggling in the terms of removing core features without being asked.

    It did get quite frustrating and then i tried chatgbt o1 model and it has worked really well. It made the occasional error between iterations but it was helpfull.

    AI Guard Rails

    I found giving these instructions helped giving the AI some guard rails…

    Version Incrementing:
    Each new full version of the code should have its version number incremented on the second line. For example, after # Version 1.13, the next full version you provide should be # Version 1.14, then # Version 1.15, and so forth.

    Full Code with Each Update:
    Whenever you request changes, I should provide the complete updated script—not just a snippet—so you have a full, up-to-date version of the code at each iteration.

    Preserve Existing Code Unless Necessary:
    Do not remove or rewrite large sections of code unless it’s required to implement the requested changes. Keep as much of the original logic and structure as possible, only adjusting or adding code where needed.

    Implement Requested Features/Modifications Incrementally:
    Each time you requested changes—like adding a 4th AI player, explaining aspects of the game, improving the trading logic, or allowing the human player to accept/reject/counter AI-offered trades—I incorporated those changes step-by-step, ensuring stability and that previous features remained intact.

    Clarification and Reasoning:
    Before implementing changes, I asked clarifying questions when needed to ensure I understood your requirements correctly. Where possible, I explained what was done and why, so you understood the reasoning behind each update.

    No Removal Without Reason:
    Unless you explicitly allowed or it was necessary for the change, I avoided removing or altering code unrelated to the requested features to maintain code integrity and continuity.

    End Result

    Enter your name: asdas
    Welcome to Catan!
    
    --- Purpose of the Game ---
    Earn 10 Victory Points (VP) by building settlements, roads, and cities.
    
    --- How the Game Works ---
    1. The board is composed of hexes, each producing a specific resource (brick, lumber, ore, grain, wool) or desert.
       Each hex has a number (2-12). At the start of a turn, you roll two dice. The sum determines which hexes produce resources.
    2. Settlements adjacent to a producing hex earn 1 resource; cities earn 2 of that resource. Desert hexes never produce.
    3. If a 7 is rolled, no one collects resources and the robber would be activated (not fully implemented here).
    4. Your goal is to reach 10 VP. Settlements grant 1 VP, cities grant an additional VP over a settlement, reaching 2 total.
    5. On your turn, you can:
       - Build: Use resources to construct a settlement, road, or upgrade a settlement to a city.
       - Trade: Offer your resources and request others. AI players consider fairness, scarcity, and personal benefit. You can accept, reject, or counter trades offered to you.
       - Pass: If you pass without having built or traded, you gain 1 random resource as a bonus.
    6. The game features AI players with different personalities (generous, fair, greedy) who evaluate trades differently.
    7. Once you or another player reaches 10 VP, the game ends immediately and that player wins.
    8. After the last player in a round finishes their turn, press Enter to continue and start the next round.
    
    Starting the game!
    
    asdas's turn!
    
    --- Board ---
    [1] wool (3)                             [2] grain (11)                           [3] wool (10)                            [4] desert (2)
    [5] lumber (7)                           [6] ore (3)                              [7] grain (5)                            [8] lumber (7)
    [9] brick (12)                           [10] brick (8)                           [11] brick (7)                           [12] ore (8)
    [13] wool (11)                           [14] desert (6)                          [15] ore (8)                             [16] grain (2)
    [17] lumber (12)                         [18] desert (12)
    
    --- Dice Roll Explanation ---
    You rolled a 7. The robber would be activated (not yet implemented):
    - No hexes produce resources this turn.
    - The robber would move to a chosen hex, blocking it.
    - Players with >7 cards would discard half of them.
    +-------------+-------+--------+-----+-------+------+-------------+--------+-------+----------------+
    |    Player   | Brick | Lumber | Ore | Grain | Wool | Settlements | Cities | Roads | Victory Points |
    +-------------+-------+--------+-----+-------+------+-------------+--------+-------+----------------+
    |    asdas    |   2   |   0    |  1  |   1   |  1   |      0      |   0    |   0   |       0        |
    | AI Player 1 |   2   |   0    |  1  |   1   |  1   |      0      |   0    |   0   |       0        |
    | AI Player 2 |   0   |   0    |  3  |   1   |  1   |      0      |   0    |   0   |       0        |
    | AI Player 3 |   2   |   1    |  1  |   1   |  0   |      0      |   0    |   0   |       0        |
    +-------------+-------+--------+-----+-------+------+-------------+--------+-------+----------------+
    
    Actions: 1. Build  2. Pass  3. Trade
    Choose an action:
    ....
    
  • AI Agents

    Playing around with OpenAI Swarm and ChatGBT and this was the result (although as you can see i went off on a tangent not using Swarm) but a fun excercise.

    https://colab.research.google.com/drive/1gx5zmdIcJwwKIvDmNRoJmqpdeLh6UnCN?usp=sharing#scrollTo=4k3_qWopAGE_

    https://github.com/openai/swarm

    I have uploaded to https://github.com/herepete/Ai_playing/blob/main/ai_agents.py

    See my other AI posts about putting the OpenAI key in as a variable 🙂

    $ cat ai_agents.py
    #!/usr/bin/python3.11
    
    import openai
    import os
    os.system('clear')
    
    OPENAI_API_KEY = os.getenv('OPENAI_API_KEY')
    
    # Function to determine the most appropriate agent to respond
    def select_agent(agents, user_input):
        if "joke" in user_input.lower():
            return "Joke Creator"
        elif "fact" in user_input.lower() or "verify" in user_input.lower():
            return "Fact Checker"
        else:
            return "Creative Thinker"
    
    # Function for the agent to respond based on instructions
    def agent_respond(agent, context):
        try:
            # Make the call to the OpenAI API with clear and explicit structure
            response = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=[
                    {"role": "system", "content": agent["instructions"]},
                    *context
                ],
                max_tokens=150
            )
            return response['choices'][0]['message']['content'].strip()
        except Exception as e:
            print(f"Error: {e}")
            return None
    
    # Function to create an agent
    def create_agent(name, role, instructions):
        return {"name": name, "role": role, "instructions": instructions}
    
    # Create agents
    agent_1 = create_agent("Fact Checker", "assistant", "You are a detailed fact-checker. Provide accurate and concise responses.")
    agent_2 = create_agent("Creative Thinker", "assistant", "You are a creative agent that provides out-of-the-box thinking.")
    agent_3 = create_agent("Joke Creator", "assistant", "You are a joke creator. Provide funny jokes when asked.")
    
    # List of agents
    agents = [agent_1, agent_2, agent_3]
    
    # Initial explanation to the user
    print("Welcome! We have three agents here to assist you:")
    print("1. Fact Checker: This agent helps with verifying information, providing accurate answers, and fact-checking.")
    print("2. Creative Thinker: This agent helps with brainstorming ideas, creative problem-solving, and thinking outside the box.")
    print("3. Joke Creator: This agent helps you by creating jokes and providing humor.")
    print("Feel free to ask any questions, and our most suitable agent will assist you.")
    
    # Run an interactive conversation loop
    while True:
        # Ask user for input
        user_input = input("\nWhat do you need help with today?\nYou: ")
    
        # Break loop if user wants to quit
        if user_input.lower() in ["quit", "exit"]:
            print("Ending the conversation.")
            break
    
        # Determine the most appropriate agent based on user input
        selected_agent_name = select_agent(agents, user_input)
        selected_agent = next(agent for agent in agents if agent["name"] == selected_agent_name)
    
        # Reset messages to contain only the most recent user input for new prompts
        messages = [{"role": "user", "content": user_input}]
    
        # Run the selected agent to process the current context
        response = agent_respond(selected_agent, messages)
        if response:
            messages.append({"role": "assistant", "content": f"{selected_agent['name']} response: {response}"})
            print(f"{selected_agent['name']} response: {response}")
        else:
            print(f"No response from {selected_agent['name']}.")
    

    result

    Welcome! We have three agents here to assist you:
    1. Fact Checker: This agent helps with verifying information, providing accurate answers, and fact-checking.
    2. Creative Thinker: This agent helps with brainstorming ideas, creative problem-solving, and thinking outside the box.
    3. Joke Creator: This agent helps you by creating jokes and providing humor.
    Feel free to ask any questions, and our most suitable agent will assist you.
    
    What do you need help with today?
    You: tell me a joke
    Joke Creator response: Why did the scarecrow win an award? Because he was outstanding in his field!
    
    What do you need help with today?
    You: tell me a fact
    Fact Checker response: Fact: The Earth is the only planet in our solar system known to support life.
    
    What do you need help with today?
    You: what is the meaning of life?
    Creative Thinker response: The meaning of life is a deeply personal and subjective question that can have many different answers depending on individual beliefs, experiences, and perspectives. Some people find meaning in pursuing their passions, building connections with others, contributing to society, seeking personal growth, exploring spirituality, or simply in enjoying the present moment. Ultimately, the meaning of life is something that each person must decide for themselves based on what brings them fulfillment and purpose.
    
    What do you need help with today?
    You:
    

  • OpenAi chat with a bot from Linux CLI

    Available in Github at https://github.com/herepete/Fidelity/blob/main/chat_with_openai.py

    A standalone script to allow you at the command line to chat with OpenAI

    [ec2-user@ip-172-31-33-224 Fidelity]$ cat chat_with_openai.py
    #!/usr/bin/python3
    import openai
    import os
    
    
    # Your OpenAI API key
    openai.api_key = os.getenv("OPENAI_API_KEY")
    
    def chat_with_ai():
        messages = [
            {"role": "system", "content": "You are a helpful assistant."}
        ]
    
        print("Start chatting with the AI! Type 'exit' to end the conversation.")
        while True:
            # Get user input
            user_input = input("You: ")
    
            # Exit the chat loop if the user types 'exit'
            if user_input.lower() == 'exit':
                print("Ending the conversation. Goodbye!")
                break
    
            # Add the user's message to the conversation history
            messages.append({"role": "user", "content": user_input})
    
            # Get the AI's response
            response = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=messages,
                max_tokens=150  # Set the maximum number of tokens for each response
            )
    
            # Extract and print the AI's response
            ai_response = response['choices'][0]['message']['content']
            print(f"AI: {ai_response}")
    
            # Add the AI's response to the conversation history
            messages.append({"role": "assistant", "content": ai_response})
    
    
    chat_with_ai()
    

    Sample Run

    ]# ./chat_with_openai.py
    Start chatting with the AI! Type 'exit' to end the conversation.
    You: Tell me  a Joke
    AI: Sure, here's a joke for you:
    
    Why couldn't the bicycle stand up by itself?
    
    Because it was two-tired!
    You: nice one, tell me an intresting fact?
    AI: Here's an interesting fact for you:
    
    Honey never spoils! Archaeologists have found pots of honey in ancient Egyptian tombs that are over 3000 years old and still perfectly edible. Honey's high sugar content and low moisture levels create an environment that prevents the growth of bacteria and yeasts, making it one of the only foods that never spoils.
    You:
  • API,OPENAI & Finance Python Project

    High level

    So combining a few of my interests:
    1) Python

    2) Finance

    3) AI

    I have uploaded the script to

    https://github.com/herepete/Fidelity

    Setup steps

    From a AWS Linux Vm

    yum install git
    yum install pip
    pip3.9 install bs4 pandas
    pip3.9 install openai==0.28

    create openai account > https://platform.openai.com/docs/overview, create an API key , add openai key to .bashrc for example

    export OPENAI_API_KEY="bla"


    make sure its visible when running

     env | grep OPEN

    run test api script.py – fix issues
    run option 1 on menu within main.py -fix issues

    run option 2

    High Level Aim

    A script to find a list of income funds i am interested in.

    Then pass that list to openai for some feedback.

    What it does

    Based on the config in config.py

    connect to the Fidelity OpenAi and with the minimal of calls check against criteria namely:

    is it an Income fund?

    does it have a yield over 4%

    is the cost under 1%

    As it produced a return of over 3 in the last 1,3 & 5 years

    If the Api fails for any reason or the criteria is not met reject the fund straight away to reduce the number of API Calls needed.

    If all the tests are passed some extra info is grabbed Last Years Yield, and Overall Morning Star Rating.

    At the end you should have a list of funds which have passed all off the test and then that information is all passed to openai to get some feedback.

    Considerations and Ideas

    I am the first to admit this script needs tweaking and improvement but my aim was to get a first version published rather than having a perfect solution.

    I though about multi-threading or multi-processing to speed everything up, but i don’t want to hammer the API.

    I could do more with the AI i.e langchain but my aim was to get version 1 working.

    I did wonder about getting the results written to a db like sqllite but thats another option for version2

    In the output i could use colour and ask the Openai for more information.

    You need quite a wide screen to display the ouput as designed.

    Maybe play with different openai models to check output.

    Maybe open a chat type windows from the command line to allow you to ask questions about the funds.

    Play with Openai instructions to get better answers, i haven’t done any fine tunning of the commands.

    Files

    config.py – basic config, set testing to 0 if you want to unleash the power! & set any criteria you wish on the other fields

    main.py – main script to run

    test_openai.py – a basic test to check openai is being called, can be run on its own or from the menu in main.py

    failer_test_fund.txt – is a log of what fund errored and why, this is only generated when option 2 from main.py is run. We use the funds here and mark them as Previously checked so we don’t unnecessarily test them again.

    fidelity_funds.csv – this is your master list of funds to consider about 3,000 ish. This file is only generated when option 1 from main.py is run. The first check in option 2 of main.py is looking through all funds names and removing anything with the word “inc” in.

    Typical workflow

    setup enviorement

    download git scripts

    run main.py choose option 1 to create your all files lookup

    run main.py chose option 2 – 10 funds are checked

    edit config.py and change testing to 0

    run main.py choose option 2 – sit back and watch and review results

    Interface

    It’s all Command line but i have tried to make it visualize as nice as possible.

    The page should refresh:

    Income stocks found should be about 1117 ish – is all income funds found in fidelity_funds.csv

    Previously checked – funds found in failer_test_fund.txt, which is failed funds from any previous runs.

    This Round checking – how many funds to check based on Db.config values

    This round rejected – how many funds failed

    This round suitable funds found – how many funds passed

    Verbose stuff – a log of the 10 most recent things than happened

    Basic run with no Funds found

    Basic run with Funds found

    note anything below the line “**Analysis:**” is aI generated.

    A Screenshot didn’t look as good here so i have copied and pasted the output as a code line

    Income Stocks Found           Previously checked            This round Checking           This Round Rejected           This Round Suitable Funds found
    
    1117                          537                           20                            18                            2
    
    Verbose Stuff...
    Starting work on - Rathbone M-A Strategic Growth Port S Inc
    Yield check failure
    Starting work on - Rathbone M-A Strategic Income Port S Inc
    Yield check failure
    Starting work on - Rathbone M-A Total Return Port S Inc
    Yield check failure
    Starting work on - Schroder High Yield Opportunities Z Inc
    Suitable Fund Found=Schroder High Yield Opportunities Z Inc
    Starting work on - Schroder Strategic Credit L Inc
    Suitable Fund Found=Schroder Strategic Credit L Inc
    
    Here are the raw results and the AI feedback on those funds...
    Based on the provided data, here is a comparison of the two income funds:
    
    | Fund Name                           | ISIN          | Fee (%) | Yield (%) | Frequency     | Y1_Annualized | Y3_Annualized | Y5_Annualized | Last Year's Yield | Morning Star Rating |
    |------------------------------------|-------------------------------|--------|----------|----------------|----------------|----------------|----------------|------------------|---------------------
    | Schroder High Yield Opportunities Z Inc | GB00B5143284 | 0.72   | 7.71      | Monthly        | 15             | 3             | 5                | 7.82                 | 5                   |
    | Schroder Strategic Credit L Inc         | GB00B11DP098 | 0.67   | 6.33      | Semi-Annually | 12             | 3             | 4                | 5.90                 | 5                   |
    
    **Analysis:**
    
    **Schroder High Yield Opportunities Z Inc:**
    - **Pros:**
      - Higher yield (7.71%)
      - Monthly frequency of payouts
      - Higher Y1_Annualized return (15%)
      - Higher Last Year's Yield (7.82%)
      - Morning Star Rating of 5
    
    - **Cons:**
      - Slightly higher fee compared to the other fund (0.72%)
      - Lower Y3_Annualized and Y5_Annualized returns
    
    **Schroder Strategic Credit L Inc:**
    - **Pros:**
      - Lower fee (0.67%)
      - Lower fee than the other fund
      - Consistent Morning Star Rating of 5
    
    - **Cons:**
      - Lower yield (6.33%)
      - Semi-annual frequency of payouts
      - Lower Y1_Annualized and Last Year's Yield
      - Lower Y3_Annualized and Y5_Annualized returns compared to the other fund
    
    **Additional Research:**
    - Further research into the credit quality of the underlying assets might provide insights into the risk profile of these funds.
    - Comparison of the fund performance against relevant benchmark indices.
    
    In summary, the Schroder High Yield Opportunities Z Inc fund offers a higher yield and better short-term performance, but at a slightly higher fee. On the other hand, the Schroder Strategic Credit L Inc fund has a lower fee and consistent Morning Star Rating, but with lower yield and overall returns. Investors may consider their investment goals, risk tolerance, and liquidity preferences when choosing between these two funds.
    AI Anslysis completed
  • Running you own LLM using Ollama

    Highlevel

    Olama hosts LLM models and allows you to interact with them all locally

    openwebui is a nice gui front end for Ollama and models

    Sites

    Download Ollama on Linux

    library

    Open WebUI

    Videos

    Run Through

    Ran from an Aws Vm, the basic Micro doesn’t have enough /tmp space and you have to fudge around with things.

    The quickest solution is uping the instance type to something with more power a t2.xlarge seems to work well

    Bundled install

    curl -fsSL https://ollama.com/install.sh | sh
    yum install pip -y 
    pip install ollama
    ollama run llama3.1

    Install Ollama – Shell

    curl -fsSL https://ollama.com/install.sh | sh

    by following instructions on Download Ollama on Linux

    Install Ollama – Pip

    yum install pip pip install ollama

    Install a LLM Model

    ollama run llama3.1

    find model in library and copy command

    To check what LLM models you have and other stuff on Ollama

    $ ollama list
    NAME            ID              SIZE    MODIFIED
    llama3.1:latest 42182419e950    4.7 GB  38 minutes ago
    gemma2:2b       8ccf136fdd52    1.6 GB  2 hours ago
    $ ollama
    Usage:
      ollama [flags]
      ollama [command]
    Available Commands:
      serve       Start ollama
      create      Create a model from a Modelfile
      show        Show information for a model
      run         Run a model
      pull        Pull a model from a registry
      push        Push a model to a registry
      list        List models
      ps          List running models
      cp          Copy a model
      rm          Remove a model
      help        Help about any command
    Flags:
      -h, --help      help for ollama
      -v, --version   Show version information
    Use "ollama [command] --help" for more information about a command.

    Passing Input files – Bash

    $ cat /home/ollama_files/helloworld_testfile       i have 5 oranges and 2 apples
    if i eat 4 oranges and 1 apple
    how much is left?
    $ cat /home/ollama_files/helloworld_testfile | ollama run gemma2:2b  "prompt"
    Here's how to figure out the remaining fruit:
    Oranges Left: You started with 5 oranges, and you ate 4, so you have
    5 - 4 = 1 orange left.
    Apples Left:  You started with 2 apples, and you ate 1, leaving you
    with 2 - 1 = 1 apple.
    Answer: You have 1 orange and 1 apple left. 🍊🍎

    Passing Input files – Python

    # cat ./llm_test.py
    #!/usr/bin/python3.9
    import ollama
    notes = "helloworld_testfile"
    with open(notes,'r') as file:
        content= file.read()
    my_prompt = f"give me the answer {content}"
    response = ollama.generate(model="gemma2:2b", prompt=my_prompt)
    actual_response = response["response"]
    print(actual_response)
    #  ./llm_test.py
    Here's how to solve that:
    Oranges: You started with 5, and you ate 4, so you have 5 - 4 = 1 orange left.
    Apples: You started with 2, and you ate 1, so you have 2 - 1 = 1 apple left.
    Answer: You have 1 orange and 1 apple left.

    Quick Chat

    $ ollama run gemma2:2b
    >>> tell me a joke
    Why don't scientists trust atoms?
    Because they make up everything! 😄
    Let me know if you want to hear another one! 😊
    >>> Send a message (/? for help)
  • Creating a Pocket of Magic: How to Spark Change in Your Team and Environment

    Change, whether in life or in the workplace, is never easy, especially when we don’t feel in control. But here’s the secret: you don’t have to be in a position of authority to create powerful change. You can spark it from within your team and environment, influencing not just the people around you but even your boss. It starts with small, intentional actions that create a ripple effect—what Simon Sinek refers to as “a pocket of magic.”

    Here’s how to create that magic and spark lasting change in your environment.

    Focus on the Behavior Around You

    Often, we wait for someone at the top to drive change, especially in professional settings. But real change doesn’t always start from the top. It begins right where you are—by focusing on your team, the people beside you, and yes, even your boss.

    When you actively shape the behavior in your immediate environment, you influence how your peers act, think, and respond. Your small, consistent actions create a pocket of magic—a space where positivity, creativity, and progress thrive.

    Here’s how you can start:

    • Model the Behavior You Want to See: Want a more collaborative and open team? Start by being more collaborative and open yourself. When you actively listen, share ideas freely, and offer help, others will begin to mirror that behavior.
    • Build Trust and Transparency: Whether it’s through one-on-one conversations or team discussions, being open about challenges and triumphs creates a safe space for others to do the same. This builds a foundation of trust, which is crucial for change.
    • Celebrate Small Wins: Every step toward change, no matter how small, is progress. Recognize and celebrate the efforts of your team. This positive reinforcement encourages others to stay on track.

    Focusing on the people around you is key. Change doesn’t happen in isolation—it’s a collective effort. When your team sees your behavior, they’ll begin to align with that energy, sparking their own transformations.

    Create Magical Ripples of Change

    Once you’ve created this pocket of magic in your immediate environment, the next step is to extend its influence. It’s about creating ripples that move outward, touching others beyond your immediate circle. These ripples of change are subtle but powerful, and they can reach far and wide if sustained.

    Here’s where Simon Sinek’s law of diffusion comes into play. According to Sinek, you don’t need to convince everyone to get on board with your vision. In fact, only 15-18% of people need to embrace the change before you reach a tipping point. At this point, the change gains momentum and spreads more naturally to the rest of the organization or team.

    Here’s how to amplify those magical ripples:

    • Engage Early Adopters: Focus on the people who are naturally open to new ideas or who already align with your vision for change. These early adopters are essential because they help spread the message. Once they’re on board, they’ll influence others, extending your reach.
    • Inspire Through Action: People are more likely to embrace change when they see it in action rather than just hearing about it. Show them how the change works in real time. For example, if you’re advocating for more transparency in team meetings, model this by openly sharing information or ideas in your own meetings. Actions inspire more than words.
    • Let Go of Control: Once your ripples start, let go of the need to control every aspect of the change. Trust that the energy you’ve created will continue to spread and adapt in ways you might not expect. Allow others to take ownership of the change, and watch how they make it their own.

    Reaching the Tipping Point

    As your ripples of magic continue, you’ll eventually reach a tipping point. This is when enough people—around 15-18%, according to the law of diffusion—embrace the change, causing a shift in the wider team or environment. The momentum becomes unstoppable, and the change feels almost inevitable.

    At this stage, the most important thing is to maintain the culture of openness, trust, and consistency that you’ve built. The tipping point is a fragile moment—it’s when the change is still taking root but hasn’t yet fully integrated into the fabric of your environment. Continue reinforcing the behaviors that sparked the change, and encourage others to do the same.

    Pocket of Magic: A Sustainable Change

    Creating this pocket of magic isn’t about short-term gains or temporary wins. It’s about creating an environment where positive change is sustainable, where people feel empowered to contribute, and where progress becomes part of the team’s DNA.

    What starts as a small pocket of magic can expand, reaching beyond your team to the entire organization. You might influence how your boss approaches decision-making, or how different departments collaborate. But remember, it starts with you—your behavior, your commitment, and your belief in the change you want to create.

    Conclusion: Change Starts With Us

    Creating meaningful change doesn’t require a title or position of authority. It requires consistency, influence, and a clear understanding of how change spreads through human behavior. By focusing on your immediate team and environment, you can create ripples of positive change that extend far beyond what you might expect.

    When 15-18% of people embrace that change, a tipping point is reached—and suddenly, what once felt difficult or impossible becomes the new norm.

    So, start today. Create your pocket of magic, nurture it with small actions, and watch as it grows, influencing not just the people beside you, but the entire system. The power to change is already in your hands.

    Blog Based on

  • Make Work Enjoyable: A Path to Fulfillment and Success

    In today’s fast-paced world, work often becomes something we dread—a routine obligation we endure to make ends meet. But what if work didn’t have to feel like a burden? What if you could actually enjoy it, finding fulfillment, motivation, and even joy in your daily tasks? It’s not only possible but crucial for a happy and productive life.

    In this post, we’ll explore a few simple yet powerful strategies to help you make work enjoyable. Whether you’re an entrepreneur, employee, or freelancer, these tips can be your guide to transforming how you approach your workday.

    1. Align Your Work with Your Values

    The first step toward enjoying work is ensuring it aligns with your personal values. When your work reflects what you believe in, every task feels more meaningful. Ask yourself: What do I stand for? Whether it’s creativity, helping others, or continuous learning, identify your core values and seek ways to integrate them into your work.

    Example: If learning is one of your values, carve out time during your week to upskill or explore new areas related to your field. This can make even mundane tasks feel like a stepping stone to something bigger.

    2. Focus on Growth, Not Perfection

    Too often, we chase perfection in our tasks, creating unnecessary stress. Instead, shift your focus from perfection to progress. Celebrate small wins and milestones, understanding that growth is the true marker of success. This mindset removes pressure and encourages you to enjoy the learning process.

    Pro Tip: Keep a journal to track your progress and accomplishments. Reflecting on what you’ve achieved can help you stay motivated and positive about your work.

    3. Create a Positive Work Environment

    Your physical and emotional environment significantly affects how you feel about work. A cluttered workspace, negative colleagues, or a lack of organization can drain your energy. Strive to create a work environment that fosters focus, creativity, and positivity.

    • Declutter your space for a clearer mind.
    • Surround yourself with supportive people who uplift and inspire you.
    • Add personal touches to your workspace—photos, plants, or anything that sparks joy.

    4. Take Breaks and Prioritize Well-being

    Work can be exhausting if we push ourselves too hard without allowing time to recharge. Breaks aren’t a luxury; they’re essential for maintaining high energy levels and creativity. Adopt the Pomodoro Technique or schedule short breaks throughout your day to maintain productivity without burnout.

    Moreover, take care of your physical and mental health. Regular exercise, mindfulness, and even short walks can drastically improve how you feel during the workday.

    5. Develop Strong Relationships with Colleagues

    Work is more enjoyable when you have positive relationships with your coworkers. Take time to connect with the people you work with—whether it’s sharing ideas, collaborating on projects, or simply chatting during breaks. Strong interpersonal bonds create a sense of community, making you feel more engaged and motivated.

    Tip: Consider organizing a weekly coffee catch-up with colleagues or participating in team-building activities to strengthen these bonds.

    6. Pursue Passion Projects on the Side

    Sometimes, you may not have complete control over the nature of your work. However, if you pursue passion projects alongside your main job, you can still find joy and excitement in your career. Working on something that aligns with your passions can inject creativity and energy into your life, making even the most monotonous tasks more bearable.

    7. Adopt a Mindful Mindset

    One of the most effective ways to enjoy work is through mindfulness—being fully present in each moment without judgment. When we rush through tasks or constantly worry about future deadlines, we miss the opportunity to engage with what we’re doing. Practice mindfulness by focusing on one task at a time, paying attention to the details, and approaching your work with curiosity and openness.

    8. Celebrate Wins, Big and Small

    No matter how small, celebrating your successes can make work feel rewarding. Recognize your accomplishments and reward yourself in ways that matter—whether it’s treating yourself to something special or simply taking a moment to reflect on your progress.

    Final Thoughts Making work enjoyable isn’t about having the perfect job. It’s about changing your perspective, building positive habits, and aligning your work with what matters most to you. When you approach your work with purpose, positivity, and mindfulness, you’ll find that not only does your work become more enjoyable, but you’ll also become more productive, creative, and fulfilled.

    In the end, happiness at work isn’t a destination—it’s a journey. With the right mindset and tools, you can find joy in the process and achieve lasting fulfillment in your career.

    Blog Based on