Pompey's GOAT XI

Pompey's GOAT XI

Thanks to everyone who contributed to this little off-season diversion.

It's a good looking team... but as we all know the team that will be taking to the new Fratton Park pitch on Saturday is the only one that really counts... PUP!

All players that were voted for over the ten weeks....

Player Upvotes
Linvoy Primus 206
Glen Johnson 148
Matty Taylor 148
Lassana Diarra 138
David James 110
Robert Prosinečki 104
Alan Knight 94
Niko Kranjčar 94
Sylvain Distin 92
Jimmy Dickinson 81
Sol Campbell 68
Guy Whittingham 64
Paul Merson 62
Peter Harris 53
Yakubu 49
Hermann Hreidarsson 46
Patrik Berger 45
Arjan De Zeeuw 41
Svetoslav Todorov 39
Gareth Evans 37
Kanu 37
Pedro Mendes 36
Sean Raggett 33
Nadir Belhadj 28
Jed Wallace 24
Connor Ogilvie 21
Noel Blake 21
Brett Pitman 20
Colby Bishop 20
Josh Murphy 20
Terry Devlin 18
Marlon Pack 17
Darren Anderton 16
Michael Doyle 16
Papa Bouba Diop 16
Steve Stone 16
Jamal Lowe 15
Paul Walsh 13
Steve Claridge 12
Kenny Swain 10
Sulley Muntari 10
Lomana LuaLua 9
Mark Hateley 9
Micky Quinn 9
Peter Crouch 9
Andy Awford 9
Jeff Peron 8
Justin Edinburgh 8
Ricardo Rocha 8
Fitzroy Simpson 7
Aaron Flahavan 6
Alan Biley 6
Lauren 6
Warren Neil 6
Alan McLoughlin 5
Callum Lang 5
Dave Kitson 5
Shaka Hislop 5
Brian Priske 4
Kevin Harper 4
Christian Burgess 3
Guy Butters 3
John Beresford 3
John Curtis 3
Mick Kennedy 3
Paul Hall 3
Richard Hughes 3
Teddy Sheringham 3
Vince Hilaire 3
Abu Kamara 2
Ben Davies 2
Billy Gilbert 2
Carl Tiler 2
Chamberlain 2
Collins Mbesuma 2
Gary Roberts 2
Joe Devera 2
Tal Ben Haim 2
John Marquis 1
Andy Griffin 1
u/SpoddyCoder — 7 days ago

West Ham 3 Pompey 1

Not unhappy with that - the result is unimportant, but there were a lot of positive signs. Everyone looked fit and lively, showing a lot of composure on the ball. Shein looks really impressive, Kenny looks promising and Segs has picked up where he left off last season.

Only downside is the two injuries... the challenge on Swanson was a bit naughty.

reddit.com
u/SpoddyCoder — 12 days ago
▲ 7 r/Risk

An absolute masterclass in aggressive risk

VC is one of the most aggressive players out there, but his special 1,234th video this week is peak.

youtube.com
u/SpoddyCoder — 20 days ago

Pompey's GOAT XI - Week Nine: Attacking Midfielder

Ngl, I expected Berger to be much closer to Niko, but for sure the Croatian magician is deserving of the spot...

Left Winger Summed comment upvotes
Niko Kranjčar 94
Patrik Berger 41
Josh Murphy 20
Matty Taylor 19
Jeff Peron 8
Christian Burgess 3
Chamberlain 2

Additional bit of work this week for the two sub spots, these are the current front runners from the previous midfield weeks...

Midfielder Upvotes
Patrik Berger 41
Pedro Mendes 30
Jed Wallace 24
Josh Murphy 20
Darren Anderton 16
Steve Stone 16
Papa Bouba Diop 16
Michael Doyle 16
Marlon Pack 15

The top 2 after this weeks vote will get the spots... if you want to influence the sub spots vote counts too, please mark your comment clearly and I will add any upvote counts to them.

Job no.1 tho is voting for our creative midfield maestro...

u/SpoddyCoder — 14 days ago

New pitch

Didn't realise quite how big of a change this was - looks like they're doing some really good work bringing us up to modern standards.

Shame we'll have to beat Ipswich the old-fashioned way now.

youtube.com
u/SpoddyCoder — 22 days ago

A listening experience

Superb ofc, but what most struck me was how the whole album has been crafted to listen as a whole, a meticulously crafted journey...

An album meant to be listened to as an album is pretty old school, but amazing how much difference it makes - the way Revenant and Fangs sit within it has really changed how I hear those already.

reddit.com
u/SpoddyCoder — 1 month ago

Pompey's GOAT XI - Week Seven: Right Wing

Pretty much a landslide last week... but some truly amazing players also mentioned...

Player Summed upvotes
Lassana Diarra 138
Pedro Mendes 30
Papa Bouba Diop 16
Michael Doyle 16
Marlon Pack 15
Sulley Muntari 10
Fitzroy Simpson 7
Mick Kennedy 3
Richard Hughes 3
Jimmy Dickinson 2

Looking for that mazy right winger this week...

u/SpoddyCoder — 21 days ago

Pompey's GOAT XI - Week Six: Defensive Midfielder

Pleased to see our deep history recognised last week...

Sub Defender Summed comment upvotes
Jimmy Dickinson 81
Arjan De Zeeuw 14
Hermann Hreidarsson 12
Andy Awford 9
Sol Campbell 5
John Curtis 3
Carl Tiler 2
Tal Ben Haim 2
Ricardo Rocha 2

Little bit of housekeeping before we continue with the mildfielders; after all 4 midfield weeks, I'll take the top 2 upvoted players that didn't make it for the sub midfielder spots - we wont have a separate voting week for those.

So we're looking for the midfield general this week...

u/SpoddyCoder — 1 month ago
▲ 0 r/cursor

Composer 2.5: Random chain of thought about a different codebase - anyone seen this before?

I have a 100% python project and have been using composer 2.5 on it for weeks without any issues. Tapped in a very simple request today and it launched straight into this chain of though about a PHP codebase... none of the files referenced are in any codebase I've ever worked on. Anyone know wtf this is.... cache leakage?? (I had to force stop it, looked like it was just going to continue for some time)....

The diff shows changes to User.php, including replacing manual property copying with serialize/unserialize, adding an isEnabled() method, and updating SessionExpiredEvent.php.

Exception classes ConfigurationException.php and InstanceSuspendedException.php had unused imports removed. Base.php was also modified.

Base.php and ImageTrait.php were renamed from src/lib/lib/Controller/ to src/lib/classes/Controller/. Their namespaces were updated to Xibo\Controller\Library.

PlayerInfo.php was also moved from src/lib/lib/Controller/ to src/lib/classes/Controller/. Its namespace was updated to Xibo\Controller\Library.

Schedule.php and ScheduleReminder.php were also moved from src/lib/lib/Controller/ to src/lib/classes/Controller/. Their namespaces were updated to Xibo\Controller\Library.

Status.php was renamed to ScheduleStatus.php. Its class name and namespace were updated to Xibo\Controller\Library.

Status.php was renamed to ScheduleStatus.php. Its constructor comment was updated to "Schedule status constructor". The read-only access control check was split across two lines.

VersionControl.php was moved from src/lib/lib/Controller/ to src/lib/classes/Controller/. Its namespace was updated to Xibo\Controller\Library.

XMR.php was also moved from src/lib/lib/Controller/ to src/lib/classes/Controller/.

XMR.php was updated with a constructor comment change. The pool property now defaults to NullPool when null. A conditional block was added to instantiate LogService if logService is null.

DisplayNotifyService.php was moved from src/lib/lib/Display/ to src/lib/classes/Display/. It now implements DisplayNotifyServiceInterface. Private properties for LogProcessorInterface and LoggerInterface were added.

DisplayNotifyService.php received a constructor comment update. Its constructor now accepts ConfigServiceInterface, DisplayFactory, PlayerActionExceptionFactory, PlayerActionFactory, LogProcessorInterface, and LoggerInterface. The constructor assigns playerActionFactory and logProcessor to instance properties.

DisplayNotifyService.php now passes a second argument to displayFactory->getById. The query loop filters by userId and filterDisplayId.

DisplayNotifyService.php now passes a second argument to displayFactory->getById inside its display group processing loop. The query loop was refactored from a closure-based each() call to a foreach statement.

DisplayNotifyService.php now passes a second argument to displayFactory->getById inside its display group processing loop. The action condition was split across two lines.

DisplayNotifyService.php now instantiates LogService locally when the display ID is valid. It sets the user ID to zero and passes the logger to processPlayerAction.

DisplayNotifyService.php now catches ActionException during player action processing and ignores it. The layout change action is wrapped in a try block.

DisplayNotifyService.php now wraps DataUpdateAction in a try-catch block too. ActionException is caught and ignored.

DisplayNotifyService.php now uses null coalescing (?? []) when logging the number of active schedules. The override schedule debug log was also updated.

DisplayNotifyService.php now checks schedule activity with !empty($schedules) instead of count($schedules) > 0. The processPlayerAction method signature was updated to accept LogService|null $logService.

The processPlayerAction method now falls back to $this->getLogService() when LogService is null. A debug log line was added to record the display ID and player action type.

ImageProviderService.php was moved from src/lib/lib/Widget/ to src/lib/classes/Widget/. Its namespace was updated to Xibo\Widget\Provider.

ImageProviderService.php now implements ImageProviderServiceInterface. Its cache property was renamed to pool. The constructor assigns the media factory, pool, and logger to instance properties. The MD5 key generation logic was also updated.

ImageProviderService.php now builds the MD5 cache key by imploding the resize threshold with the image data, extension, width, height, and proportional flag. The cache lookup now checks the pool property and retrieves the item via pool->getItem().

ImageProviderService.php now returns early when the pool is null. LocalImageProvider.php was also moved from src/lib/lib/Widget/ to src/lib/classes/Widget/.

LocalImageProvider.php was moved from src/lib/Widget/ to src/lib/classes/Widget/. Its namespace was updated to Xibo\Widget\Provider. The library location setting now uses getSetting().

RemoteImageProvider.php was moved from src/lib/Widget/ to src/lib/classes/Widget/. Its namespace was updated to Xibo\Widget\Provider.

ModuleInterface.php was also moved from src/lib/lib/Widget/ to src/lib/classes/Widget/.

ModuleInterface.php was updated. The render() method now takes no arguments. The view property is set directly from render(). The getSetting() method signature now includes a string parameter type.

ModuleTemplate.php was moved from src/lib/lib/Widget/ to src/lib/classes/Widget/. Its namespace was updated to Xibo\Widget\Provider. The private _log property was renamed to protected $logService, and the constructor now assigns the pool and log service to these instance properties.

RenderMediator.php was moved from src/lib/lib/Widget/ to src/lib/classes/Widget/. Its namespace remained Xibo\Widget\Render. New imports include Carbon\Carbon, GuzzleHttp\Client, GuzzleHttp\Exception\GuzzleException, Intervention\Image\ImageManagerStatic, Psr\Log\LoggerInterface, Psr\Log\NullLogger, and Slim\Http\ServerRequest.

RenderMediator.php now imports Slim\Http\Response as SlimResponse. Its constructor now accepts PoolInterface, ImageProviderServiceInterface, LoggerInterface, and SlimResponse. The pool property defaults to null. Three new private properties were added: imageProviderService, logger, and response.

RenderMediator.php's constructor documentation was updated to clarify that RenderController passes one widget module, an optional Stash pool, and request/response objects.

RenderMediator.php's constructor now explicitly types the pool parameter as PoolInterface. It adds ServerRequest and SlimResponse parameters with nullable types. The constructor documentation was updated to describe these new parameters.

RenderMediator.php's constructor now assigns the shallow hash image extensions setting to the instance property. It stores the request, response, and image provider service as instance variables.

RenderMediator.php now initializes the logger as NullLogger when none is provided. Preview mode now uses empty output. Interactive HTML cache keys now include request query parameters.

RenderMediator.php now checks for interactive GET requests using the stored request object directly instead of calling a method.

RenderMediator.php now fetches the image provider service via getImageProviderService() instead of instantiating ImageProviderService directly. The thumbnail download call was updated to use the retrieved service.

RenderMediator.php now throws NotFoundException when the downloaded image is null. Base64 image data is stripped of its data URI prefix and decoded. The method no longer returns a MIME type-prefixed string for direct downloads.

RenderMediator.php now writes image data to the stored response object when handling direct downloads. It sets the Content-Type header using the image provider's mime type and returns the response. The method throws a RuntimeException if no response object exists. The cached media duration is still fetched.

RenderMediator.php now sets a Content-Length header on the response. For non-preview responses it calculates the cache lifetime from the configured duration or a default value, then adds Cache-Control and Pragma headers. The base64-decoded image data is written to the response body.

RenderMediator.php now checks cache expiration using Carbon's isPast() method. It also verifies the response object directly instead of calling getResponse().

RenderMediator.php now sets the Content-Type header for raw image responses. It adds both Pragma and Cache-Control headers when caching is enabled. A protected getImageProviderService() method was added to the class.

The getImageProviderService() method lazily instantiates ImageProviderService when the property is null, injecting the media, config, image provider, pool, and logger. A debug logging method was added. RssProvider.php was moved from src/lib/lib/Widget/ to src/lib/classes/Widget/.

RssProvider.php was moved from src/lib/lib/Widget/ to src/lib/classes/Widget/. Its cache property was renamed to pool, and all cache lookups now use pool->getItem().

ValidDatesTrait.php was moved from src/lib/lib/Widget/ to src/lib/classes/Widget/. Its namespace was updated to Xibo\Widget.

WidgetDataProvider.php was moved from src/lib/Widget/ to src/lib/classes/Widget/. Its event callback check was tightened to ensure the method is callable and is a Closure.

WidgetDataProviderInterface.php was moved from src/lib/lib/Widget/ to src/lib/classes/Widget/. Its handleEvent method now explicitly types the $data parameter as mixed.

WidgetDataProviderInterface.php now types the $data parameter as string|null. DataSetFactory.php and DisplayProfileFactory.php were moved from src/lib/lib/Factory/ to src/lib/classes/Factory/.

LayoutFactory.php, LayoutXlfFactory.php, and ModuleFactory.php were also moved from src/lib/lib/Factory/ to src/lib/classes/Factory/.

reddit.com
u/SpoddyCoder — 2 months ago

2026-7 Fixture List

Just released, highlights:

First 5 fixtures…

Sat 15th August - QPR (Home, 15:00)
Sat 22nd August - Lincoln (Away, 15:00)
Sat 28th August - Bristol City (Away, 15:00)
Tue 1st September - Derby (Home, 19:45)
Sat 5th September - Cardiff (Home, 15:00)

Derbys…

Sat 10th October - Southampton (Away, 15:00)
Sat 27th February- Southampton (Home, 15:00)

Last 5 fixtures…

Sat 10th April - Cardiff (Away, 15:00)
Sat 17th April - Bristol City (Home, 15:00)
Tue 20th April - Derby (Away, 19:45)
Sat 24th April - Preston (Home, 15:00)
Sat 1st May - West Ham (Away, 12:30)

https://www.bbc.co.uk/sport/football/teams/portsmouth/scores-fixtures/2026-08

u/SpoddyCoder — 2 months ago

Pompey's GOAT XI - Week Three: Left Back

Last week's tallies were not too surprising, I'd guess Linvoy might be our most popular player ever... with good reason...

Centre-back Summed comment upvotes
Linvoy Primus 206
Sylvain Distin 92
Sol Campbell 68
Arjan De Zeeuw 41
Sean Raggett 33
Noel Blake 21
Ricardo Rocha 8
Jimmy Dickinson 4
Guy Butters 3
Billy Gilbert 2
Hermann Hreidarsson 2
Joe Devera 2
Andy Awford 2

This week is Left Back... some very tough competition for this spot.

u/SpoddyCoder — 2 months ago

Pompey's GOAT XI - Week Two: Centre Backs

Very close last week! And I'm sure the result will be a touch controversial for a few of us old guard... but the votes are the votes....

Goalkeeper Summed comment upvotes
David James 110
Alan Knight 94
Aaron Flahavan 6
Shaka Hislop 5
Ambiguous / not assigned 4

I saw both play and there's no doubt James was the better keeper and deserves the spot, but personally my vote went to Alan Knight, because as u/amusedfridaygoat pointed out - "over 800 appearances and represented the club across all four divisions (as well as the same number of decades!)".

Lets do both centre-backs this week. 2 most upvoted get the 2 spots.

u/SpoddyCoder — 2 months ago

Pompey's GOAT XI - week one, Goalkeeper

The recent Patrik Berger sublime goal post prompted this thought - we've had some amazing players over the years.... some of these positions are gonna be impossible to pick!

I'll post a thread a week for each position - most upvoted gets the spot. And we'll do the subs in the final week, for those honorable mentions.

If you can - please add some colour with your picks - why were they so great, did you watch them live, video of their best/worst moment etc... I'm sure there's a few stories that would be great to re-live.

Tough one this week, GK.... lol....

u/SpoddyCoder — 3 months ago