@ian@phpc.social
@ian@phpc.social avatar

ian

@ian@phpc.social

Code/infra/tech-lead mercenary. Mod/infra @ phpc.social, co-organizer https://phpc.social/@longhorn and https://phpc.social/@merge, co-maintainer at Joind.in, 🤎 https://phpc.social/@Tylae

This profile is from a federated server and may be incomplete. Browse more on the original instance.

ian, to random
@ian@phpc.social avatar

phpc.social just hit 4500 users, slightly before the Mastodon user count hit 15 million. Thanks to everyone choosing to make this instance your home on the fediverse!

As a reminder, server costs aren't free, and our OpenCollective proceeds exclusively go toward the various costs involved in maintaining this instance. For those of y'all who've donated, thanks for your support!

ian, to random
@ian@phpc.social avatar

Annoyance level: sending messages via Jira because Slack, GitHub, and both work and personal email providers don't work :|

ian, to random
@ian@phpc.social avatar

Wanna help me get Joind.in's API to zero phpstan errors on PHP 8.2? https://github.com/joindin/joindin-api/pull/944

Got it down to a little under 600 with like three hours of effort, with tests still passing of course.

ian, to random
@ian@phpc.social avatar

Is there anyone in Kobe/Osaka/Tokyo who can hook me up with a Rakuten Mobile physical or eSIM? Probably impossible since I don't have a Japanese ID card, but would be cool to test all four mobile networks here.

@nauleyco, know anyone?

ian, to random
@ian@phpc.social avatar

Apologies for the outage on phpc.social. Bit of an order-of-operations issue when attempting to start the Mastodon 4.2.0 upgrade. On the next attempt, we'll run OS package updates well before attempting the other parts of the upgrade.

Queues are catching up from the outage. Once those are caught up, I'll reindex search; we restored from a backup on the app server (database/Redis/file storage were not affected) so search will be a bit behind 'til we get that complete.

#MastoAdmin

ian, (edited ) to random
@ian@phpc.social avatar

Me: couldn't possibly still have a horrid experience on installing packages.

Me, ten minutes later: Actually, nope, still horrid. How do people function in this environment?!?

h/t to @Tylae for being correct here.

For the record, /cargo actually behaves as expected, so props to for having a thing that properly works.

Context: finding a CLI for Toggl Track. Which...the Python CLI doesn't even support the current (not 410'd) version of the API.

ian, to random
@ian@phpc.social avatar

phpc.social is now about 4100 users! Welcome to the new folks here!

As a reminder, servers and related costs are funded by donations from the community. We accept donations via https://opencollective.com/phpcommunity/projects/phpc-social,

While we have a significant financial cushion there, with recent needed server upgrades last I checked our monthly costs were a little above our monthly donations. We aren't in dire financial straits, but hopefully this heads-up we will continue to not be :)

ian, to random
@ian@phpc.social avatar

[obligatory "the new Slack lefthand panel is significantly less useful than the workspace selector and I want the workspace selector back" post]

Srsly, is there some huge % of Slack users who only have one workspace, such that this is an upgrade? 'cuz...just...no.

ian, to random
@ian@phpc.social avatar

So, back on May 26 or so, the versions of the @getsentry PHP SDK being used in one of my projects started not getting payloads to Sentry, albeit just in an AWS environment. Bumping to Sentry's latest SDK fixed it (from 3.12 to 3.19.1) but I really want to know what broke.

@alessandrolai, any ideas here?

ian, to random
@ian@phpc.social avatar

Heads-up for Backblaze users:

  1. Computer backup pricing is increasing significantly as of October. You probably want to grab a two-year plan to lock in your current rate if you're happy with the service (I just did).
  2. B2 pricing is going up 20%, though in return you'll get free direct egress (vs. via CDN partners, which is already free) for up to 3x your storage amount.

I guess this is what happens when you lose money as a public company and can't raise more (I'm a shareholder FWIW).

ian, to random
@ian@phpc.social avatar

Times Excel date handling has screwed up a data source in disturbingly subtle ways: 1/2/23 4:56 PM

ian, to random
@ian@phpc.social avatar

Due to overflowing push queue issues and way too much CPU usage, I've gone ahead and upgraded the application server for phpc.social from 4 vCPU + 8 GB RAM to 8 vCPU + 16 GB RAM, for an additional cost of ~$60 per month. OpenCollective donations appreciated :)

As part of this, we're now running four Sidekiq queue workers, 100 threads (from 2/50), and 12 Puma processes x 36 threads/process (up from 6).

Will take a bit for queues to go back to normal, but...this'll help.

ian, to random
@ian@phpc.social avatar

Use Value Objects rather than massive $options arrays when exposing an interface for configuring requests made by your SDK, because you want to make your SDK code as self-documenting as possible. - @SecondeJ #phptek

ian, (edited ) to random
@ian@phpc.social avatar

So, I realized that my example "PSR-11 container in a 280-character tweet", for my #tek23 talk tomorrow, wasn't compliant with PSR-11 2.0. Fixed that below:

Later edited to fix a bug in has().

class Container implements Psr\Container\ContainerInterface{
private $s=[];
function __set($k,$c){$this->s[$k]=$c;}
function __get($k){return $this->s($k)($this);}
function get(string $k){return $this->s$k;}
function has(string $k):bool{return isset($this->s[$k]);}
}

ian, to random
@ian@phpc.social avatar

Twitter over here having an existential crisis

ian, to random
@ian@phpc.social avatar

Cup stacking, but make it PRs that touch composer.lock.

ian, to random
@ian@phpc.social avatar

So, I figured out my Lambda layer issue mentioned in @merge: Bref's runtime build assumes Amazon Linux 2 (not AL2023), so you need to spec AL2 in the function for it to work.

I've updated the readme at https://github.com/iansltx/spongebot to point this out.

ian, to random
@ian@phpc.social avatar

phpc.social update: we're back to normal. Made a couple tweaks to give us a bit more headroom and respond to issues like this more quickly. Guessing we'll be good until next Thursday morning, which seems to be a hotspot traffic-wise across the fediverse.

Trying to avoid needing to bump our server costs another $48/mo quite yet (4 vCPU / 8 GB to 8 vCPU / 16 GB). Might next week though.

ian, (edited ) to php
@ian@phpc.social avatar

Pro tip: pear/Math_BigInteger's native #PHP implementation is bugged for certain values, such that it'll at the very least stringify things wrong. phpseclib's implementation OTOH is not bugged and is a drop-in for my use case, so...yeah, use that one instead, since the Pear package is abandonware at this point.

Things broke with 50510988650892635772999999979803115519 and 50510988650892635772999999979803115520.

ian, to random
@ian@phpc.social avatar

Pro tip: unless you're explicitly told to refactor all the things, and have very good reason to do so (e.g. you're taking ownership of the thing), a codebase is not a fire hydrant and you are not a dog.

ian, to random
@ian@phpc.social avatar

As part of the "spam sweep" we've been doing at phpc.social, we've limited and rejected media for mastodon-ero.xyz and meetbeauties.social. The instances are actively used, but between adult content and not cleaning up the current spam wave, something had to be done.

#fediblock #mastoAdmin

ian, to random
@ian@phpc.social avatar

So, Cloudflare WARP (not the paid version) is pretty solid these days. Hitting 500+ Mbps over my Google Fiber connection...for a VPN-esque service that costs nothing. Not bad.

ian, to random
@ian@phpc.social avatar

Current status #ercot

ian, to accessibility
@ian@phpc.social avatar

Remove alt tags for decorative images. Alt="" is the worst thing you could do - Paulo Fernandes #phptek #a11y

ian, to random
@ian@phpc.social avatar

#MastoAdmin PSA: Vultr cloud storage costs are now down to $6/TB/mo.

Backblaze B2 still has the edge on data transfer costs (they bundle data transfer up to 3x the storage amount) but IIRC bandwidth is pooled with cloud servers on Vultr anyway, so you probably won't pay for outbound anyway, and it's one less vendor in the stack to manage. Which is nice when you have better things to do than babysit various vendor accounts as part of running an instance :)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • osvaldo12
  • DreamBathrooms
  • mdbf
  • InstantRegret
  • ngwrru68w68
  • magazineikmin
  • everett
  • thenastyranch
  • Youngstown
  • slotface
  • cisconetworking
  • kavyap
  • ethstaker
  • JUstTest
  • modclub
  • GTA5RPClips
  • khanakhh
  • tacticalgear
  • Durango
  • rosin
  • normalnudes
  • Leos
  • provamag3
  • tester
  • cubers
  • anitta
  • lostlight
  • All magazines