Blog

  • Day 75 -Emails With AI

    The system I’ve designed is capable of indexing and tagging emails. Just need to build the module that grabs them via IMAP. But emails really annoy me. They are incredibly unstructured and they allow anyone from ‘the internet’ to take up my time often with completely unstructured, poor quality information delivery.

    I’ve said quite a few times that language models are really primed for abstracting information away from people; and providing it to them in a much more synthesised fashion. As the amount of information increases exponentially, and the more busy you get the more shit you need to deal with.

    Hence, language models having excellent potential for emails. Not necessarily writing emails. I’ve sent a few emails that have been completely AI driven, and I always felt a bit sick afterwards. It just feels completely non genuine especially when they to people I know. But the idea of having an assistant that tracks incoming information, assessing and categorising them according to your training, this is a nice idea.

    Obviously already done and out there as a service; but the market will be extensive since everyone will have their own VA eventually.

  • Day 72 -74 Of Building An AI Startup

    A lot of my time and mental energy recently has been taken up with some paid work. But during that time I’ve made a lot of use of Cursor, now my goto IDE. It definitely makes me more capable and when I get stuck it can spot obvious mistakes which happen to the best of us.

    Overall, things are going well.

    My energy, attitude and work rate compared to day 0 are way better. I’ve had a few blips for sure.

    Building a team

    I was reading this week that the most effective companies are going to be small teams of senior experienced / C-Suite level thinkers and doers; working together toward building something.

    Employing people in the UK is incredibly expensive. I have no idea what junior level people are going to do anymore. The ones that work hard and compete, will do fine as always; but there will be a huge drop off of demand.

    Building an automated company

    The tools are now here to automate actions that are regularly taken in a company. It might be just the signing up of a customer to various systems, that are manually done. It might only save a few minutes but it means someone doesn’t need to context switch. So it’s not just the time saved, it’s also the mental energy saved.

  • Day 71 – Sora !

    For today thought I would just add my first Sora video.

  • Day 70 – AI makes you a 10x more useful programmer.

    Day 70 – AI makes you a 10x more useful programmer.

    Today was a breakthrough day.

    I needed to collect some data from two sources and cross-link them.

    I was able to use Claude 3.7 to generate several python scripts that used Playwright to crawl a site, intercept a script call and grab a particular value from it, and insert it somewhere else.

    Claude was able to generate the python scripts for me.

    I wouldn’t be able to do this without spending a long, long time learning python and how to use some of the libraries.

    So, another win for “AI”.

  • Work Diary #10

    Filament Forms

    In the last work diary, I covered how easy it was to link select fields … where values of select B are dependant on the value of select A.

    When you get an excessive amount of options though its nice to add a searchable field:

    Forms\Components\Select::make('venue_id')
    ->searchable()
    ->preload()

    So easy!

    But Filament gets even better.

    You can add an inline form to the select!

    ->createOptionForm(Venue::getForm())
    ->editOptionForm(Venue::getForm())

    The getForm function simply returns an array of form elements like you would get in the normal filament resource files.

    The amount of work this saves the developer is crazy good.

    Filament is really very good at first glance although I’ve noticed some very minor bugs.

  • Day 69

    Felt a bit refreshed past few days.

    Here’s what’s going on in the main

    1 – Still helping out on the DXP project … this is a Digital Experience Platform which manages websites at scale. We have a working version up and running on BetTodayUSA and are closing in on releasing the beta version very shortly, which will allow us to do a lot more public testing.

    2 – Helping a leading UK holiday rental company transition into a new booking software infrastructure.

    3 – Early stage discussions on AI startup for a scaled sentiment analysis

    4 – Also in early discussions with a friend who is amazing at producing leads through various data crawling and AI analysis techniques. Trying to figure out way forward.

    5 – I am building my own platform that is capable of being the infrastructure that all these projects (and more) would run on. It’s a relatively thin layer, but super useful.

    6 – Early stages of working with a 3D avatar

  • Work Diary #9 – Laravel Filament

    Enums can be super powerful …

    … use them in factories

    'region' => fake()->randomElement(Region::class),

    Filament Forms are really robust.

    Forms\Components\Select::make('region')
    
    ->enum(Region::class) // <-- This enforces validation!
    
    ->options(Region::class)
    
    ->required(),

    These days you really don’t want to spend any time doing form validation. It’s already been done. I like the above because it will ensure that even on frontend tampering it still means server side validation will enforce the values to be one of the enums. Honestly, that’s a small chunk of boilerplate that you don’t need to do.

    Laravel Shift :: Blueprint

    Blueprint gets the migrations for you.

    Get Filament To Generate The CRUD UI For You

    php artisan make:filament-resource Venue --generate

    Dependant Select Pickers

    Since Filament is a LiveWire app, all form elements are set with wire:model, with none of them being live updates. But you can easily change them live which means on any change, we send a request to the server and re-render the component. This gives the opportunity to query for options. Such as:

    Forms\Components\Select::make('region')
    
    ->live()
    
    ->enum(Region::class)
    
    ->options(Region::class)
    
    ->required(),
    
    Forms\Components\Select::make('venue_id')
    
    ->relationship('venue', 'name', modifyQueryUsing: function (Builder $query, Forms\Get $get) {
    
    ray($get('region'));
    
    return $query->where('region', $get('region'));
    
    }),

    The keys here are:

    • Using a custom closure in modifyQueryUsing
    • Passing the Forms\Get $get method into that closure
    • Using a query on region to match the selected region value

    Spatie Ray Debugging

    Debugging makes software programming so much easier. The Spatie crew have made ‘Ray’ which is a real-time logging utility. I did buy Herd Pro for this purpose, but I will probably end up up returning the Hero Pro licence since it’s not as useful as I thought … and stick with Ray. Highly recommend ray

  • Days 65 – 68 – Random Thoughts!

    Elimating Distractions, Interruptions and Overcommunication

    So last few weeks I’ve fallen in the habit of logging onto slack early in the morning; and I’d catch up with a developer on a project. This is still a very much needed ‘thing’ to be doing … but the problem is, it immediately scrambles my brain for the day.

    It’s the same for loading up your brain with any sort of communication early in the morning. That’s the time when you just want to use your fresh mind to work on important challenges.

    Emails are never important enough to get done first thing, although many will say they are. If they are that important, get them done the night before and send them. But to sacrifice your fresh mental energy to deal with messages coming in from slack, whatsapp, email, discord … it’s such a waste; and when you are self-employed and on your own time you just can’t afford to waste that energy.

    There’s always exceptions to the rule … that one important email which seals a deal, or solves an urgent and pressing matter. But in general, emails and all messaging will be abstracted away from us in the future world of AI Personal Assistants.

    I am guilty of it as well – ‘brain farting’ when I have an idea that I think is so great that I need to tell someone. Or having found something ‘great’, forwarding it to someone who I think will find it useful. But all I’m doing is consuming their attention and perhaps breaking their concentration on something potentially important.

    So the main thing going forward is no communications at least until 3pm. That’s normally the time when my fresh mind runs out of juice. Between 3pm and 8pm I generally don’t work very effectively.

    Overwhelm & Stress

    Recently hit a point where I got overly stressed with all the things going on. Partly that was down to me not managing the over communication going on in my life.

    It was also down to me not single handling tasks, and trying to manage more than one thing at a time. I think it was proven in a repeatable scientific method way that multi-tasking was insanely inefficient. So, as I was beginning to have more than one thing on my mind at any one time… it was tearing me in several directions.

    Also, the notebook that i started 70 days ago (ish), is now full… and whilst all the ideas are in there … it’s now time for a brand new clean notebook that builds on everything I’ve been working out over last few months.

    I’ve now started back at zero point – choose the key projects and short term goals for next thirty days within them, and cycle between them … without the overhead of multi-tasking, digital overwhelm, or without letting too many people into my head.

    Sports Psychology & Visualisation In Business

    Sports psychology is one of my favourite things to study, and in an different quantum timeline, maybe I would have been an athlete … but that didn’t happen for whatever reasons and no reason to not accept it. But you can apply SP to your own daily business life; and many would say it really is the key to their rather large successes.

    The very core of SP is in learning to work with your mind in a very specific way. Your ‘mind’ is actually the result of the central nervous system … (read Psychocybernetics for a new paradigm change on the subconscious) and it works pretty much like you would expect a robot to behave. You give it a clear goal that your biological machine can understand, and it will go and do it.

    We live and operate both as the passengers and drivers of ourselves. It’s a weird paradox that most don’t get to appreciate unless you unravel your mind and wake up to what’s beyond it.

    Point is, have a clear list of priorities… then mentally cycle through them – seeing what they look like at the end of completion. The key is knowing you won’t visualise it perfectly done first time, so just hold the intention, outcome and feeling of winning at it, and see what pictures come up into your mind. You will gain insights, and as you rewind from the end point to now, you will map out the journey in a way that your subconscious mind can understand better.

    I’d got out of the habit of doing this many years ago, but in reality, it’s the only way of true mental control.

  • Day 64 – An example of AI getting it wrong

    With Cursor, on a 1000 line script, it could not find where an API token was until I specified it.

    This has happened more regularly recently. The AI just gets basic shit wrong, or it leaves code in there which doesn’t need to be there. I’ll happily admit vibe coding is great, and I’ll also happily admit I’m wrong … but I think you really need to know what you are doing with AI else it becomes a mess quickly.

  • Day 63 – Are you seeing it yet?

    The generative industry is moving so fast; with images, video, music, speech, written word all now improving at a rapid place.

    Many people are not seeing it.

    Today I was able to build a web tool that may not be great for production but is really quite good for the debugging and investigation of an API. The ‘AI’ was able to understand some of my complex but no quite so explanatory prompts in a way that blew me away and was able to produce some really valuable work.

    I don’t fully know whether programming is going to die as a profession. I think *eventually* yes, it probably will be abstracted away much like assembly language has been. All the patterns will be fully understood, trained, tweaked and they will be able to replicate huge swaths of code that actually create a great product.

    When you do get into complex systems though – whilst I’m no silicon valley person – it does seem that there are limitations on it, and it must have an experienced human (developer) guiding it to get it to the last 5% of properly working.

    That’s just programming. The rest of the generative industry is equally as mind blowing.

    Are people really seeing what’s going on?

    And do they understand the magnitude?

    And are they embracing?

    Work Diary

    Laravel Herd & Filament

    Whilst I have been prototyping with Vanilla, I checked out Filament last night on Laracasts:

    Filament Forms

    The Form library alone is complete enough to warrant using Filament. It has so many small quality of life features that add up. From memory here’s a few that convinced me:

    • Really nice prefix and suffix options
    • Really nice icon and description and helper text integrations
    • Excellent search integration into long selects in one line of code
    • A really easy wizard workflow setup
    • Excellent integration of new entity creation when a user needs to be able to add a new option to a select list
    • Easy linking between SELECTS

    This is of course on top of it working solidly as you would expect.

    So, I’m flipping my prototype to use Filament … which is an excellent basis going forward.

    Filament File Uploads

    In one line, its got a drag and drop file upload, with image preview built in. Uses filecon JS