terry matula

Aspiring Hallmark Christmas movie soundtrack composer.

* Pro PHP developer since 2009
* Started the #laravel Austin meetup in 2013
* Wrote the "Laravel Application Development Cookbook" in 2014.
* Worked at various startups
* Currently software engineer at a healthcare company.

terry matulaterry@phpc.social
2026-03-10

99% of my usage is "turn these files into 320k mp3s" or "convert this file to an mp4"... And that's solid. But I also noticed it'll attempt other ffmpeg flags as well, like being able to edit the length of a file... Or convert to gif. I added some volume level shots as well, but haven't really tested it.

I'm not really sure what ffmpeg the Qwen model has by default. But might be cool to custom train one and get the model size as lean as possible.

terry matulaterry@phpc.social
2026-03-10

github.com/matula/ai-ncoder

I hacked this together months ago because I found myself converting a bunch of old audio files, and I was continually googling #ffmpeg flags. I thought it would be cool to use natural language for transcoding, but wanted it to keep it local, and workable offline.

So I grabbed the smallest, usable model and hacked together some Python and prompts... And it just kind of worked.

I thought I'd clean it up and share.

terry matula boosted:
Draken BlackKnightdraken@masto.nyc
2026-03-04

The guy on the left was a US Marine Lt. Colonel who was arrested and convicted for selling missiles to Iran.

The guy on the right is a Fox "news" *snicker* "military analyst" who says Iran shouldn't have missiles.

They're the same guy.

Ollie North's mugshot from his arrest related to the Iran-Contra AffairOllie North on Fox "news", a few decades after Iran-Contra
terry matulaterry@phpc.social
2026-03-04

Ha! Just yesterday was musing about how I hadn't seen any Anthropic traffic. At least their UA is easily blockable.

screenshot of site analytics with Anthropic making multiple calls in a short time
terry matulaterry@phpc.social
2026-03-04

@bobmagicii I could just be lucky, and looking at logs I don't see any "Claude" ua. I do see "amazonbot" and "GPTBot" among others. If Anthropic is hitting my site, they're not slamming it at least.

Looking at search referrers, it's interesting I don't see Google. Just DDG and Bing. Not sure if that's just because of the type of people who might search for obscure Houston bands, or Gemini screwing up search.

terry matulaterry@phpc.social
2026-03-04

@bobmagicii it's a bit janky, but I pass the IP to the Team Cymru service to get the ASN. And I'm storing the asn to a blocklist.json file.

My biggest issue was with Tencent Chinese servers, with multiple IPs but they all had the same ASN. This way I can block ALL of them with a single value instead of hundreds/thousands of different IPs.

For AI bots that have "good" user agents, I have a separate system that parses the ua and blocks based on that. Most big AI companies are good about it.

php code to block based on asnphp code to get asn from team cymru
terry matulaterry@phpc.social
2026-03-04

I learned about Team Cymru, and their IP services. Pretty cool, and "free". Using PHP's dns_get_record, I'm able to make a super quick query for an ASN record, and block the ones I don't want.

I'm no security expert, but this seems to be working well.

This whole project is just pleasant to work on... no frameworks or database or external dependencies. Just pure PHP, with a smattering of CSS and JS.

terry matulaterry@phpc.social
2026-02-28

Kind of wild to see all the Mastodon/Fediverse instances that immediately ping my site after posting a link or even replying to a post with a link.

And then right after that, all the "exploit" pings.

terry matulaterry@phpc.social
2026-02-27

Site is now getting hammered by bots trying exploits. I may need to put CloudFlare in front, which is sad.

This is why we can't have nice things.

terry matulaterry@phpc.social
2026-02-26

I've been working on and off the past year on a site that chronicles the Houston (alt rock) music scene from the 80s and 90s: houstonmusicarchive.com/

No frameworks or build processes, and all json-powered. I've even got a "functions.php" file. Last I checked, the total download size was 81kb.

terry matulaterry@phpc.social
2026-02-20

"I left a party at 9:30 on a Saturday. Not tired. Not sick. I wanted to get back to my agents."

terry matulaterry@phpc.social
2026-02-18
terry matulaterry@phpc.social
2026-02-18
terry matulaterry@phpc.social
2026-02-15
terry matulaterry@phpc.social
2026-02-11
terry matulaterry@phpc.social
2026-02-10
terry matulaterry@phpc.social
2026-02-08
terry matulaterry@phpc.social
2026-02-07

The last few weeks I've been learning about GameBoy game roms and compression algorithms. And I saw the DuckTales game was only 64k, and thought "that's smaller than my company's Contact page"... "can I run it in PHP?"

The short answer is no, but you can pull out images and sprites:

terrymatula.com/random/2026/de

#ducktales #php #gameboy

terry matulaterry@phpc.social
2026-02-06

I liked the new Star Trek: SA episode. I don't care about some of the YA-ish stuff, but I accept it's not targeted to me, and it's only like 10% of the episode.

If I weren't a robot, I legit could've gotten emotional at the end.

terry matulaterry@phpc.social
2026-02-05

My favorite moment in a start-up's life is when they have to stop doing "firstname@company" email addresses, and move to "first initial last name@company" emails.

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst