Sand Fox πͺπͺπΊπ¦
-
No Discrimination
In these uneasy times I just want to remind to all these passionate activists around that there are other ethical points beyond any given "today thing" even when the today thing is truly horrible.
The Open Source Definition states that open-source software must comply with the following criteria:
5. No Discrimination Against Persons or Groups The license must not discriminate against any person or group of persons.
6. No Discrimination Against Fields of Endeavor The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
So whether you are breaking these rules for fun or showing your political position, you should remember:
It is not as fun as it seems.
You are not hurting the people you hate, you are hurting the open-source community.
-
PHP 5: if (\false)
I was wondering why the typical class alias boilerplate code uses this weird backslash in
if (\false)
like here for example.It turns out this code will wish you a happy debugging in PHP 5.3-5.6:
<?php namespace ns; define('ns\\false', 1); if (false) { echo "Happy Debugging", PHP_EOL; }
Not a very useful knowledge now but an interesting history fact.
-
PHP 8.1 Syntax Showcase
PHP 8.1 was released when I was suffering from COVID so I'm a bit late.
<?php enum Status { case OK; case Error; } #[SomeAttr(new SomeNestedAttr())] class TestTest { public function __construct( public readonly Status $status = Status::OK, private Logger $logger = new FileLogger(perm: 0o644), ) {} public function process(Iterator&Countable $value) { if (count($value) === 0) { $this->error(); } } public function error(): never { $this->logger->error('Error!'); exit; } } $test = new TestTest(); $arr1 = ['a' => new ArrayObject()]; $arr2 = ['b' => new ArrayIterator()]; $result = array_map($test->process(...), [...$arr1, ...$arr2]);
-
Torrent File 2.2
-
CVE-2021-41106
Nice, now I have my first CVE :D The one I've found, not the one I've created :D
If you're using
lcobucci/jwt
, please upgrade. -
IsResource
Inspired by a recent discussion in the PHP Internals, I decided to provide a userland solution. Check this:
<?php $hash = hash_init('md5'); // vanilla functions: is_resource($hash); // true in PHP <= 7.1, false in PHP >= 7.2 get_resource_type($hash); // "Hash Context" in PHP <= 7.1, various errors otherwise // library functions: \Arokettu\IsResource\is_resource($hash); // true \Arokettu\IsResource\get_resource_type($hash); // "Hash Context"
Get it on my dev portal: https://sandfox.dev/php/is-resource.html
-
sass-hsv
I haven't found a nice small helper for HSV/HSB color format like the one LESS has so I published my first npm package.
-
TOML vs YAML
So... Let's compare.
-
Open Letter in Support of Richard Stallman
https://rms-support-letter.github.io
Please even if you do not agree with him politically but still don't like that raging mobs decide for others, sign the letter here: https://github.com/rms-support-letter/rms-support-letter.github.io/pulls
-
Pseudolocale Lib for PHP
I haven't found a good standalone pseudolocalization library for PHP so I wrote my own.
https://sandfox.dev/php/pseudolocale.html
Or if you're using Symfony Components or you don't mind using huge libraries for simple tasks, there is one good alternative:
PseudoLocalizationTranslator
in the Symfony Translation Component since version 5.2.