Category: Daily Report

  • Day 22 – AI : What Happens When The Cost Of Creation Is Basically Zero

    We had a meeting with a fairly large online company today and the discussion was over generating large amounts of website content for them in a reasonably clever fashion.

    Turns out Google doesn’t mind AI content really, as long as it sticks to E-E-A-T (Experience, Expertise, Authoritativeness, and Trustworthiness) and a few other things.

    People will use search engines less, but they will still be used as a supplement to language models. Language models are to search engines, what social media was to websites – i.e. websites used to be of primary importance, but social media took over. Now, likewise, language models have slightly taken away the dominance of search engines.

    So it’s still worthwhile having a content strategy.

    I think ultimately it looks like Google will reward the best of human + AI, so there is going to be some human skill requirement needed. Humans + AI will outscale humans without AI so now it’s at the point that to even ‘play the game’ you need to be strapped up with AI.

    The questions is, what happens when everyone can produce high quality:

    • video
    • music
    • programming
    • writing
    • graphics

    ?

    We are soon going to find out.

    Judging by the AI music i’ve listened to, I would suggest that musicians are in a pretty bad situation; and larger agencies who produce video (not full on editors) or adverts are at risk of being massively undercut by more nimble groups.

    The nightmare is thinking that all of a sudden that everyone is going to be your competitor but humans are inherently lazy, and not everyone is going to take full advantage of AI and will stay in their lane.

    It’s difficult when you think the mountain you have to climb is insurmountable (because the market will be flooded with competition) but ultimately this is now the time where individuals or small groups of people can compete at a much higher level. Will large organisations be able to manoeuvre as quickly? Probably not, but they have larger budgets to throw at AI.

    We are the last generation who will remember what the world was like before AI.

    Anyway I’m tired. Today’s successes were:

    • More R&D. Still playing with web crawler taking sitemaps and RSS feeds, crawling multiple pages and blending with LLMs. Will do a video on it soon.
    • Meeting with large online company
    • Onboarded developer onto a project
    • Got some admin done

  • Day 21 – Building A Startup : Time & Energy Management

    Day 21 – Building A Startup : Time & Energy Management

    In previous startups I got too involved in one aspect of the business to the detriment of the other areas. It became unbalanced.

    When I had a fully working admission booking system for the UK Theme Park industry, I focused completely on customer support and product development. I failed to look at the bigger picture. And I failed to think about sales and marketing.

    So when the 2008 financial crisis began to squeeze the UK Theme Park ticket market, they got dissolved within a few years and I was left with no new customers for the booking system.

    Likewise, when I was running a web design company in London, I failed to do proper talent scouting so I could build a team. So I just ended up burning myself out by trying to do it all.

    In hindsight, in both instances, I was in a great position, but didn’t realise it. And that could have been fixed simply by making sure I put time into different areas of focuses.

    It’s not rocket science, it’s just realising that you just need to repeat certain actions with consistency in order to build up the results that you want long term.

    Generally speaking you have these aspects of your business:

    • admin / finance / hr
    • sales / lead generation / networking
    • marketing
    • research and development
    • production
    • people

    These all depend on the overarching vision you have, but once you have that you can focus on those areas. Even if you just put in 20 minutes to each of these a day, that consistency builds up.

    Starting Point – Getting the basics right

    It’s really important to support the business side of your life, with a positive and healthy personal side. If you treat your body poorly for the next decade just to try and get to some hallowed gold at the end of it, you are potentially in for a shock. Not only do you miss the point of life, but poor health is more difficult to reverse than maintaining good health.

    Last year I began implementing some basic life habits:

    Step One – Keep Your Life Clean!

    • Clean your home / office up
    • Declutter & organise
    • Process & organise paperwork
    • Have a digital tidy
    • House & garden maintenance

    It might seem a bit ridiculous talking about these things on a Startup Blog, but the point is, these things cover the bases. If you can do fifteen minutes per cycle (choose … 24/48/72 hour) … and the amount of times I can remember feeling super overwhelmed by an untidy office and paperwork everywhere. Likewise, even now my laptop is becoming a bit of a mess and I need to streamline things.

    Also if you ever watch Kitchen Nightmares you’ll know that most of the restaurants are absolutely appalling – they don’t get cleaned simply because the owners haven’t created consistent cleaning habits.

    A recent job at a startup on my first day the desks were just caked with dust. It just needed a bit of attention. I’m not saying it will change your business into a super success, but keeping your life clean is far more preferable.

    Step Two – Life Admin

    • Personal admin & errands
    • Personal finance
    • Business admin & errands
    • Business finance
    • Investments and crypto

    Doing these things regularly really does help keep on you top of things. The challenge is doing them consistently, but they are nice and simple tasks that you can apply your willpower and discipline to.

    In my early years I left accounts to the last moment, but now I keep on top of things.

    Anyway thats enough for today.

    Today’s Work

    A good day… I did some more R&D work with AgenticAI – the python library for building virtual agents. Quite interesting really. And I started building out some migrations on the laravel project. Whilst I will be using python a lot more, at the moment it still makes sense to make the most of Laravel’s very solid functionality and integrate that with a python API.

    See Agentic work diary for today

    Really good news on one of the projects but wont jump the gun there.

    Since I’ve had a cold winter without adequate central heating, I took the opportunity to warm up and sat and meditated with breath-work in the sun again in the garden. Honestly, being your own boss does have its benefits.

    There’s a lot on at the moment. But when there’s too much to consider, it’s not productive at all … and so you need a better solution.

  • Day 20 – Conversations, Social Contact, Mental Health and How AI Will Likely Ruin Us Further

    Day 20 – Conversations, Social Contact, Mental Health and How AI Will Likely Ruin Us Further

    Today was mostly conversations.

    Are conversations useful?

    If they lead to valuable action action then yes for sure.

    But if you’ve watched Stutz on Netflix, you’ll know that real world conversations – and hence socialising – are also vital for your own wellbeing and mental health. It’s more helpful if the conversations are interesting and not poisonous, but any social contact is better than none, funnily enough.

    If you are working on your own a lot as a founder, it’s so important to have social contact to ground yourself in reality. It’s very good for your brain.

    The sad reality of future AI is that people will be more and more communicating with AI generated feedback. But it’s down to each one of us to make sure you keep on talking, especially technical founders who are introverted.

    I was listening to someone the other day who said that whoever is alive now… we are the final era of humans who knew what life was like before AI (and robots) started to take over and reduce the cost of knowledge and content creation down to almost zero.

    Interesting new world!

    In other news, did some more R&D on web crawling. It turns out you can use the Crawl4AI python package in tandem with a language model and it will automatically run it through your prompt. I’ll do a video on it another time but for the moment here is my code. It basically will rewrite the BBC article as an excited Arsenal fan.

        
        # Example 2: Using Pruning filter
        url2 = "https://www.bbc.co.uk/sport/football/live/c8j00ke2r23t"
        success2, content2, file2 = await crawl_url(
            url=url2,
            filter_type="llm",
            llm_instruction="""
            Rewrite this as if you are an excited Arsenal fan.
            Include:
            - Emotive descriptive language of the goals
            Exclude:
            - Navigation elements
            - Sidebars
            - Footer content
            Format the output as clean markdown with proper paragraphs and headers.
            """,
        )

    and this is the definition of my custom function

    import asyncio
    from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, BM25ContentFilter, CacheMode, DefaultMarkdownGenerator, LLMContentFilter, PruningContentFilter
    from crawl4ai.async_configs import BrowserConfig, CrawlerRunConfig, LlmConfig
    import os
    from dotenv import load_dotenv
    
    async def crawl_url(url, filter_type="prune", query=None, llm_instruction=None):
        """
        Crawl a URL and apply a specified content filter.
        
        Args:
            url (str): The URL to crawl
            filter_type (str): Type of filter to use - "bm25", "prune", or "llm"
            query (str): Query for BM25 or Pruning filters
            llm_instruction (str): Instruction for LLM filter
            
        Returns:
            tuple: (success, markdown_content, output_filename)
        """
        # Load environment variables from .env file
        load_dotenv()
        OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
        
        # Select the appropriate content filter based on filter_type
        if filter_type == "bm25" and query:
            content_filter = BM25ContentFilter(
                user_query=query,
                bm25_threshold=1.2,
                # use_stemming=True
            )
        elif filter_type == "prune" and query:
            content_filter = PruningContentFilter(
                user_query=query,
                threshold=0.5,
                threshold_type="fixed",  # or "dynamic"
                min_word_threshold=50
            )
        elif filter_type == "llm" and llm_instruction:
            content_filter = LLMContentFilter(
                llmConfig=LlmConfig(provider="openai/gpt-4o-mini", api_token=OPENAI_API_KEY),
                instruction=llm_instruction,
                chunk_token_threshold=4096,
                verbose=True
            )
        else:
            # Default to pruning filter with empty query if no valid filter specified
            content_filter = PruningContentFilter(
                user_query=query or "",
                threshold=0.5,
                threshold_type="fixed",
                min_word_threshold=50
            )
        
        md_generator = DefaultMarkdownGenerator(
            content_filter=content_filter,
            options={"ignore_links": True},
        )
    
        config = CrawlerRunConfig(markdown_generator=md_generator)
    
        async with AsyncWebCrawler() as crawler:
            result = await crawler.arun(url=url, config=config)
    
            if not result.success:
                print(f"Crawl failed: {result.error_message}")
                print(f"Status code: {result.status_code}")
                return False, None, None
    
            # Create a filename based on the URL
            # Remove protocol and replace special characters
            filename = url.replace("https://", "").replace("http://", "").replace("/", "_").rstrip("_")
            output_file = f"{filename}.md"
            
            # Write the extracted content to a markdown file
            with open(output_file, "w", encoding="utf-8") as f:
                f.write(result.markdown.fit_markdown)
            
            print(f"Content successfully exported to {output_file}")
            return True, result.markdown.fit_markdown, output_file 

  • Day 19 – Some Basic R&D

    Finally got started on some proper AI R&D today focusing on my journey into the world of Python. It’s clear Python will play a big part in my longer term plans.

    Today I started out looking at :

    • Making an API server in Python
    • Using Pydantic for data validation
    • Using Crawl4AI which is a library that indexes websites into markdown files.
    • The basics of PydanticAI for building AI agents

    This will form the basis of the first low hanging fruit AI tool that I have in mind.

    Beyond that:

    • Another potential warm lead
    • A long conversation about using AI with Amazon fulfillments
    • Got my initial business model pricing and offering to a place I’m happy to start from
    • Setup my appointment calendar (cal is open source!)

    Random Notes

    Every Virtual Agent is going to need to be able to crawl websites. Luckily we don’t need to reinvent the wheel and can use:

    https://crawl4ai.com

    Today’s R&D looks at https://ai.pydantic.dev/

    PydanticAI is a Python agent framework designed to make it less painful to build production grade applications with Generative AI.

    Pydantic Data Validation

    PydanticAI is built upon Pydantic – which is a data validation library. Here’s an example:

    from datetime import datetime
    from pydantic import BaseModel, PositiveInt, ValidationError
    
    
    class User(BaseModel):
        id: int
        name: str = 'John Doe'
        signup_ts: datetime | None
        tastes: dict[str, PositiveInt]
    
    
    external_data = {'id': 'not an int', 'tastes': {}}  
    
    try:
        User(**external_data)  
    except ValidationError as e:
        print(e.errors())
        """
        [
            {
                'type': 'int_parsing',
                'loc': ('id',),
                'msg': 'Input should be a valid integer, unable to parse string as an integer',
                'input': 'not an int',
                'url': 'https://errors.pydantic.dev/2/v/int_parsing',
            },
            {
                'type': 'missing',
                'loc': ('signup_ts',),
                'msg': 'Field required',
                'input': {'id': 'not an int', 'tastes': {}},
                'url': 'https://errors.pydantic.dev/2/v/missing',
            },
        ]
        """

    Having not used it before, looking at the syntax I really liked several things about it:

    1. It’s really easy to set the validation, since you just do it in the class definition
    2. When you attempt to set properties of the object to something that fails the validation, you get all the validation stuff you need nice and simple

    Python Crash Course

    Creating a virtual environment

    python3 -m venv directory_name

    This creates, amongst other things, a bin dir, which you source in order to tell your terminal to use this python environment rather than your global systems one

    source bin/activate

    Make sure VSCode uses the correct one. Cmd + Shift + p … Select Interpreter … and then choose the correct one (you will see your directory_name in there)

    Then I wanted to see what it takes to setup a simple web server

    pip3 install fastapi uvicorn

    Then some basic web server code

    from fastapi import FastAPI
    
    app = FastAPI()
    
    @app.get("/")
    def read_root():
        return {"message": "Hello, Pythonic World!"}
    
    @app.get("/items/{item_id}")
    def read_item(item_id: int, q: str = None):
        return {"item_id": item_id, "q": q}
    
    @app.post("/items/")
    def create_item(name: str, description: str = None):
        return {"name": name, "description": description}
    
    if __name__ == "__main__":
        import uvicorn
        uvicorn.run(app, host="localhost", port=8000)
    

    You can then use this in a browser at port 8000

    http://localhost:8000/items/12?q=hello

    After getting confused by Google Clouds console I opted for OpenAIs API and topped up. You can integrate with:

    from openai import OpenAI
    
    client = OpenAI(
      api_key="YOUR_API_KEY"
    )
    
    completion = client.chat.completions.create(
      model="gpt-4o-mini",
      store=True,
      messages=[
        {"role": "user", "content": "write a haiku about ai"}
      ]
    )
    
    print(completion.choices[0].message);
    

    And that will pump out a response. So easy to use.

    It’s clear that I am going to need to learn more about python3 in order to make my own advanced virtual agent

  • Day 18 -Sunday Of Rest

    Day 18 -Sunday Of Rest

    Today was too good a day of weather to stay indoors, and I was feeling like a day of rest was needed. Apart from some messages between colleagues, some browsing of some AI bits and this blog, I’ve given myself permission to have day off.

    Went for run, do some weights, did some ‘yoga’ (I know a few yoga poses but not super good at it, but they help my back)… and then meditated for two hours in the garden which included some phenomenal breathwork.

    Breathwork really is a key thing I wish I had knew a long time ago.

    If you do it correctly, it knocks out negative emotions and stress, clears your mind and body in a way that’s difficult to describe.

    Anyway that was great. After some breathwork I generally need to rest – it’s called ‘work’ for a reason and you need to let your body settle. Then off to families for a sunday roast.

    I’d recently been worrying that I hadn’t done enough over the last two weeks – a crisis of confidence was starting to dawn. But actually I’ve considered everything and given my current situation and capabilities, I’ve had a great 17 days since making the decision to motor forward and build an AI startup.

    Not going to post this on LinkedIn.

  • Day 16 – NorDevCon – Norfolk’s Tech Conference

    Day 16 – NorDevCon – Norfolk’s Tech Conference

    I decided to spend most of the day at the NorDevCon tech conference. It’s difficult to know where to put your time sometimes, but I’m glad I went. NorDevCon is managed by Alex Scotton who I have worked with on some projects over last few years, and I get on well with him.

    Some of the talks were too much of a technical niche for me; but I caught up on emails, wrote some notes and pottered about on the flutter app I’m building that will interface with the main laravel system; and the automation systems like n8n.

    The main takeaways were:

    1 – A talk by Onyi Anyado reinforced getting beyond fears, and executing with speed. Speed is the key thing in what I’m trying to do here, and I need to get a lot, lot faster than I am. Speed and consistency over valuable tasks

    2 – A talk by Paul Grenyer reinforced the point that I am going to have to get used to delegating and not doing it all myself. I can do a lot with Claude + Cursor, but I’m still going to need to trust in other people to do the things that need to get done.

    3 – It’s been worthwhile doing these LinkedIn posts. I’ve only been using LI for a few weeks properly, and my connections are pretty much only people I know in the real world, but I was somewhat shocked by how many people had seen that I was doing something with an AI startup. It’s clear my posts are coming up in peoples feeds and that’s a really good beginning of momentum.

    (EDIT NEW) 4 – I forgot there was a really good mobile app talk, and I will expand on that in the future. But talked about app testing, kill switches, app feedback feature, phased rollout and crashlytics.

    Now have to catch up with things, so that’s it for today.

  • Day 14 – Two Weeks Gone. Lot’s done But It’s Never Enough. Need AI + Humans To Scale.

    Day 14 – Two Weeks Gone. Lot’s done But It’s Never Enough. Need AI + Humans To Scale.

    I’ve done a lot over the last two weeks and even had my first sales call today. I do love talking to people as an SME service business; you meet all sorts of good quality down to earth people. Dealing with large corporates can be more lucrative, but you tend to miss the human component.

    Going to leave it there for today. Sometimes your eyes and brain melt and that’s when its time for sleep.

    Off to the NorDevCon tech conference in Norwich tomorrow; and have to catch up on Google Startup School, … and I’m almost there on my dashboard signup system.

    Cheers

  • Day 13 – Startup School, Second YouTube Video, Some Sunshine and Hoping to find a Sales Partner

    Day 13 – Startup School, Second YouTube Video, Some Sunshine and Hoping to find a Sales Partner

    Sunshine!

    If you haven’t lived in England or similar you won’t know what it’s like to live under grey clouds 95% of the time for five months. But that’s what we’ve had and today we got blue skies and sunshine. Winter is starting to break. Which is great. Good to go for a run out.

    Google Startup School

    Started Google’s Startup School today. It’s exactly what I needed to find at this stage, so whilst it’s only six weeks of two days per week, it should give me a good starting point, and I’ll be able to share some of my findings.

    It’s going to be a bit of a time investment, but with a bit of effort I am going to be better versed in Google AI Studio, Vertex AI and Gemini. I will still go through the other videos that’s on my list, but this may as well be my main focus for the next six weeks.

    This combination of platforms are incredibly powerful and ready to build startups on. I will be able to use these to deliver clients for my AI Agency which is focused on AI Transformations.

    Second YouTube Video

    I’d wanted to do another video for people who have no idea what Cursor is … and no idea how good AI is at programming. Cursor breaks my mind often, and I enjoy making things in it that would take way too long to be practical in a busy life.

    Anyway, I edited it down 50% to 28 minutes, and was in a bit of a rush, and I still haven’t got the audio right yet. But it might be interesting for some people to flick through.

    In it I make a small fun tool that you can put some text on the screen, spin it around, etc and do the same for images.

    Here’s the video:

    Sales Partner

    I can’t do everything myself, so I’m meeting a friend tonight who has started to perfect the art of using AI in getting insane amounts of leads for businesses. I want to see if there’s a partnership there between us.

    Ok, hope you enjoy the video.

  • Day Twelve – Juggling

    Day Twelve – Juggling

    Time flew today. Juggled many things:

    • Improved the sign up page design and content
    • Invested an hour or so preparing sales comms for a really fun potential lead
    • Had several chats with probable co-founder
    • Helped a friend on his web problems for two hours
    • More time invested into attempting to get the DXP project working
    • Dealt with some admin

    I’ve got a whole list of tools to testing and videos on. I’m fairly clear now that the opportunities with AI will be:

    • For services … helping others navigate through AI. A lot of people are very, very much in the dark about what’s going on beyond ChatGPT. And some haven’t even used ChatGPT yet. This comes in the form of:
      • Consultancy
      • Implementation
      • Training

    As for scalable products, every day I see another AI startup website. I will eventually put these into more context, but I’m clear that the industry is moving so insanely fast because the infrastructure, money and human resources are there now. The internet rollout was slowish, but the AI boom is insanely fast.

    So in terms of making scalable products it’s going to be about finding clear and specific problems in industries that AI can fix. Which is nothing new, it’s all about identifying and fixing problems. AI can just start fixing a lot more problems!

    I do think medium/long term the personal assistant (AI will be super pervasive it won’t need to be stated) will follow everyone, learning about them, and it will help them navigate through life in ways we can’t possibly imagine; but for the ones that we can, it will mostly be about abstracting away the mundane, and protecting from information overload.

    And that’s almost happening with Language Models right… but eventually i think we will have local models on our hardware especially with these quantum chips coming out… so what’s the future for ChatGPT income? Unknown.

    It’s almost certain that Operating Systems will become far more AI driven, and then I just think that will take out a lot of markets. It will replace a whole lot of existing solutions just because its so flexible. Every market will be changed though.

    Avatars.

    The personal assistant will be founded on avatars and how wonderfully they are designed. Games will become really fun and perhaps not as linear as they used to. In one of my favourite games, Fallout New Vegas you can choose to set the charisma level of your char at the start … but now, your ability to persuade other characters within games can literally be down to the players own language. Which opens up to crazy amounts of potential.

    Anyway. Tired. Need to move on.

  • Day Eleven of Starting Up Again – Meditation & Energy In Business

    Day Eleven of Starting Up Again – Meditation & Energy In Business

    After ten fairly strenuous days (keeping up with the AI industry taxes your brain!) today I felt like I need to manage my energy levels so I meditated in the garden for an hour and a half.

    Life is a marathon. Listening to your body – which includes your mind – is crucial to not ending in burnout six months down the road. I’ve burnt-out several times in my career already but learning more about yourself through meditation can help a great deal.

    Here’s the main reasons why it works for me:

    • I get my mind back. After a long haul of programming, researching and sorting other shit out the mind can be whirring around; and meditation just winds it down to zero and lets it settle there for a while. When it’s settled, it’s a nice place to be. It’s pretty much like rebooting a laptop and everything is well again.
    • I regain perspective. This game of life has lessons to learn far greater in importance than just getting business and money right. Meditation helps you reset your perspective.
    • I feel re-energised. If you do it properly you can recharge your energy levels. Combine stretching and breathwork (preferably outside) to look after your body. There’s a reason Yogic principles has lasted thousands of years.
    • Afterwards, with my mind reset, I can reassess clearly what needs to happen next.

    Onwards