galvaoetibr || @galvao@phpc.social's Avatar

galvaoetibr || @galvao@phpc.social

@galvaoetibr

CTO & Co-Founder @ Hurben; Programmer; πŸ₯‘ #OSS PHP Laminas Project; Director PHP Conference Brazil, ConFLOSS, SouDevCon; Post Grad Professor.

326
Followers
230
Following
532
Posts
20.08.2023
Joined
Posts Following

Latest posts by galvaoetibr || @galvao@phpc.social @galvaoetibr

worked with the tcpdump folks on an updated set of examples for the tcpdump man page www.tcpdump.org/manpages/tcp...

the idea is that if you've forgotten how tcpdump's basic flags work, you can find a quick reference in the man page!

09.03.2026 18:16 πŸ‘ 92 πŸ” 12 πŸ’¬ 3 πŸ“Œ 0
Post image

Current banger: ABBA - Chiquitita ❀️

09.03.2026 02:09 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Current banger: Elis Regina - Como nossos pais

#internationalwomensday2026

08.03.2026 22:21 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

What coders lose by relying on AI. From our event with the University of Washington Office of Public Lectures.

(with @emilymbender.bsky.social)

06.03.2026 21:07 πŸ‘ 167 πŸ” 47 πŸ’¬ 8 πŸ“Œ 12
Post image

Current banger: Joan Jett & The Blackhearts - Season of The Witch

#InternationalWomensDay2026

08.03.2026 05:03 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Current banger: Blondie - Heart of Glass

#internationalwomensday2026

08.03.2026 04:55 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail
07.03.2026 22:37 πŸ‘ 13150 πŸ” 4982 πŸ’¬ 87 πŸ“Œ 242
Firefly Crew Teaser / Once We Were Spacemen / Nathan Fillion Alan Tudyk
Firefly Crew Teaser / Once We Were Spacemen / Nathan Fillion Alan Tudyk YouTube video by theRealDuMon

www.youtube.com/watch?v=5U1o...

07.03.2026 22:57 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image

Current banger: Muse - Uprising

07.03.2026 20:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I've lived to see a collab between Alton Brown and Guga.
That's it, carry on.

07.03.2026 18:35 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

The Onion, perfect in it's satire, as usual.

07.03.2026 17:24 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Meta won’t let morality get in the way of a product launch What a great time to add facial recognition to everything!

Meta won’t let morality get in the way of a product launch www.theverge.com/policy/88634...

06.03.2026 03:12 πŸ‘ 6 πŸ” 6 πŸ’¬ 1 πŸ“Œ 0
Preview
A GitHub Issue Title Compromised 4,000 Developer Machines A prompt injection in a GitHub issue triggered a chain reaction that ended with 4,000 developers getting OpenClaw installed without consent. The attack composes well-understood vulnerabilities into so...

I am convinced we are on the verge of the first "AI agent worm". This looks like the closest hint of it, though it isn't it quite itself: an attack on a PR agent that got it to set up to install openclaw with full access on 4k machines grith.ai/blog/clineje...

05.03.2026 18:46 πŸ‘ 161 πŸ” 71 πŸ’¬ 4 πŸ“Œ 13

Important for anyone using Proton Mail:

05.03.2026 20:53 πŸ‘ 91 πŸ” 68 πŸ’¬ 8 πŸ“Œ 2
A Day in the Life of an Ensh*ttificator
A Day in the Life of an Ensh*ttificator YouTube video by ForbrukerrΓ₯det - Norwegian Consumer Council

www.youtube.com/watch?v=T4Up...

03.03.2026 12:03 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Post image

2 long forgotten functions of #PHP:

compact() turns variable names into an associative array.
extract() does the reverse.

Named in PHP 4. Still works. Most devs forgot they exist.

Where do you see this being used?

02.03.2026 16:11 πŸ‘ 1 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

84% of the time, β€œChatGPT Health” killed a customer using their paid service as advertised

01.03.2026 23:27 πŸ‘ 1620 πŸ” 799 πŸ’¬ 37 πŸ“Œ 50
Preview
GitHub Issues Abused in Copilot Attack Leading to Repository Takeover Attackers can inject malicious instructions in a GitHub Issue that are automatically processed by Copilot when launching a Codespace from that issue.

GitHub Issues Abused in Copilot Attack Leading to Repository Takeover www.securityweek.com/github-issue...

28.02.2026 10:42 πŸ‘ 6 πŸ” 4 πŸ’¬ 0 πŸ“Œ 0

I'm just a girl, incrementing the counter on the number of times I have been sent a plaintext email from a Protonmail user telling me that the message is encrypted.

26.02.2026 07:44 πŸ‘ 219 πŸ” 21 πŸ’¬ 14 πŸ“Œ 0
Post image

oops. White nationalism is a helluva drug.

25.02.2026 12:51 πŸ‘ 23300 πŸ” 6360 πŸ’¬ 1392 πŸ“Œ 476

30 minutes but well worth the watch. I hope other countries hold him accountable and that the US does in the future.

Twitter is gone and what is left is hyper controlled & manipulated for chaos & unrest & for the destruction of democracies.

24.02.2026 11:07 πŸ‘ 18 πŸ” 7 πŸ’¬ 3 πŸ“Œ 0
Preview
Academia.edu - Find Research Papers, Topics, Researchers Academia.edu is the platform to share, find, and explore 50 Million research papers. Join us to accelerate your research needs & academic interests.

FYI, Academia.edu has changed its terms of service to give an irrevocable worldwide license for anything uploaded to its site to be used for generative AI. I do not consent to this and have pulled all my papers.

21.02.2026 16:52 πŸ‘ 601 πŸ” 489 πŸ’¬ 14 πŸ“Œ 77
Preview
Using the -from-openapi flag, resterm complains about a schema inside a schema component Β· Issue #196 Β· unkn0wn-root/resterm I have the following component inside components -> schemas: anObject: description: Annotation Object type: object schema: type: object properties: id: type: integer highlight_id: type: integer con...

BOOM! Resterm now supports @openapis.org Spec3.2! πŸŽ‰

github.com/unkn0wn-root...

23.02.2026 11:49 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
A clean API for reading PHP attributes PHP 8.0 introduced attributes, and they're a great way to add structured metadata to classes, methods, properties, constants, and parameters. The concept is solid, but the reflection API you need to actually read them is surprisingly verbose. What should be a simple one-liner ends up being multiple lines of boilerplate every time. And if you want to find all usages of an attribute across an entire class, you're looking at deeply nested loops. We just released [spatie/php-attribute-reader](https://github.com/spatie/php-attribute-reader), a package that gives you a clean, static API for all of that. Let me walk you through what it can do. <!--more--> ## Using attribute reader Imagine you have a controller with a `Route` attribute and you want to get the attribute instance. With native PHP, that looks like this: ```php $reflection = new ReflectionClass(MyController::class); $attributes = $reflection->getAttributes(Route::class, ReflectionAttribute::IS_INSTANCEOF); $route = null; if (count($attributes) > 0) { $route = $attributes[0]->newInstance(); } ``` Five lines, and you still need to handle the case where the attribute isn't there. With the package, it becomes: ```php use Spatie\Attributes\Attributes; $route = Attributes::get(MyController::class, Route::class); ``` One line. Returns `null` if the attribute isn't present, no exception handling needed. It gets worse with native reflection when you want to read attributes from a method. Say you want the `Route` attribute from a controller's `index` method: ```php $reflection = new ReflectionMethod(MyController::class, 'index'); $attributes = $reflection->getAttributes(Route::class, ReflectionAttribute::IS_INSTANCEOF); $route = null; if (count($attributes) > 0) { $route = $attributes[0]->newInstance(); } ``` Same boilerplate, different reflection class. The package handles all targets with dedicated methods: ```php Attributes::onMethod(MyController::class, 'index', Route::class); Attributes::onProperty(User::class, 'email', Column::class); Attributes::onConstant(Status::class, 'ACTIVE', Label::class); Attributes::onParameter(MyController::class, 'show', 'id', FromRoute::class); ``` Where things really get gnarly with native reflection is when you want to find every occurrence of an attribute across an entire class. Think about a form class where multiple properties have a `Validate` attribute. With plain PHP, you'd need something like: ```php $results = []; $class = new ReflectionClass(MyForm::class); foreach ($class->getProperties() as $property) { foreach ($property->getAttributes(Validate::class, ReflectionAttribute::IS_INSTANCEOF) as $attr) { $results[] = ['attribute' => $attr->newInstance(), 'target' => $property]; } } foreach ($class->getMethods() as $method) { foreach ($method->getAttributes(Validate::class, ReflectionAttribute::IS_INSTANCEOF) as $attr) { $results[] = ['attribute' => $attr->newInstance(), 'target' => $method]; } foreach ($method->getParameters() as $parameter) { foreach ($parameter->getAttributes(Validate::class, ReflectionAttribute::IS_INSTANCEOF) as $attr) { $results[] = ['attribute' => $attr->newInstance(), 'target' => $parameter]; } } } foreach ($class->getReflectionConstants() as $constant) { foreach ($constant->getAttributes(Validate::class, ReflectionAttribute::IS_INSTANCEOF) as $attr) { $results[] = ['attribute' => $attr->newInstance(), 'target' => $constant]; } } ``` That's a lot of code for a pretty common operation. With the package, it collapses to: ```php $results = Attributes::find(MyForm::class, Validate::class); foreach ($results as $result) { $result->attribute; // The instantiated attribute $result->target; // The Reflection object $result->name; // e.g. 'email', 'handle.request' } ``` All attributes come back as instantiated objects, child classes are matched automatically via `IS_INSTANCEOF`, and missing targets return `null` instead of throwing. ## In closing We're already using this package in several of our other packages, including [laravel-responsecache](https://github.com/spatie/laravel-responsecache), [laravel-event-sourcing](https://github.com/spatie/laravel-event-sourcing), and [laravel-markdown](https://github.com/spatie/laravel-markdown). It cleans up a lot of the attribute-reading boilerplate that had accumulated in those codebases. You can find the full documentation [on our docs site](https://spatie.be/docs/php-attribute-reader/v1/introduction) and the source code [on GitHub](https://github.com/spatie/php-attribute-reader). This is one of the many packages we've created. If you want to support our open source work, consider picking up [one of our paid products](https://spatie.be/open-source/support-us).

πŸ”— A clean API for reading PHP attributes
#php #package #spatie #PHP

23.02.2026 07:42 πŸ‘ 5 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

I likedd this a million times. That's what that little digital like represents.

Tolkien === ❀️

23.02.2026 10:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

IKR? 😁

23.02.2026 01:06 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - unkn0wn-root/resterm: Terminal API client for HTTP/GraphQL/gRPC with support for SSH tunnels, WebSockets, SSE, Workflows, Profiling, OpenAPI, Kubernetes port-forwarding and response diffs. Terminal API client for HTTP/GraphQL/gRPC with support for SSH tunnels, WebSockets, SSE, Workflows, Profiling, OpenAPI, Kubernetes port-forwarding and response diffs. - unkn0wn-root/resterm

So glad to be contributing - by bug hunting - to my absolute favorite @openapis.org client tool: resterm.

github.com/unkn0wn-root...

I'm finding issues with one of it's most amazing features: you feed it an OAS and it generates the requests for you to test.

The people behind it work HARD. ❀️

22.02.2026 22:12 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Amazon's Blundering AI Caused Multiple AWS Outages At least two outages at Amazon Web Services occurred after one of the company's AI models made changes to code.

Remember that day-long AWS outage that downed big chunks of the Internet in December?

Turns out that was caused by Amazon's in-house AI 'assistant', having been given unsupervised root-level access.

Expect this to happen worse and stupider as tech bosses double down on their wild overinvestments!

22.02.2026 07:55 πŸ‘ 79 πŸ” 42 πŸ’¬ 3 πŸ“Œ 2
Preview
Safe abortion care for all women 229 million women live in the EU, and they all deserve safe, affordable abortion care. 1 million citizens have spoken, and so has the Parliament. It’s time for the Commission to act: make safe abortio...

229 million women live in the EU, and they all deserve safe, affordable abortion care. 1 million citizens have spoken, and so has the Parliament. It’s time for the Commission to act: make safe abortion access a reality across Europe NOW! βœŠπŸ’œ action.wemove.eu/sign/2026-02...

21.02.2026 21:39 πŸ‘ 10 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
I Verified My LinkedIn Identity. Here's What I Actually Handed Over. I wanted a blue badge on LinkedIn. To get it, I gave a US company my passport, my face, and my biometric data. Then I read the fine print.

thelocalstack.eu/posts/linked...

22.02.2026 03:07 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0