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
Current banger: ABBA - Chiquitita β€οΈ
09.03.2026 02:09
π 0
π 0
π¬ 0
π 0
Current banger: Elis Regina - Como nossos pais
#internationalwomensday2026
08.03.2026 22:21
π 0
π 0
π¬ 0
π 0
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
Current banger: Joan Jett & The Blackhearts - Season of The Witch
#InternationalWomensDay2026
08.03.2026 05:03
π 1
π 0
π¬ 0
π 0
Current banger: Blondie - Heart of Glass
#internationalwomensday2026
08.03.2026 04:55
π 1
π 0
π¬ 0
π 0
07.03.2026 22:37
π 13150
π 4982
π¬ 87
π 242
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
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
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
YouTube video by ForbrukerrΓ₯det - Norwegian Consumer Council
www.youtube.com/watch?v=T4Up...
03.03.2026 12:03
π 3
π 1
π¬ 0
π 0
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
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
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
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
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
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
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
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