Byte-sized functional programming: Pure functions encourage small code
One of the many pieces of advice for a long-term sustainable code base is to keep code small. The larger a code base is, the more effort it takes to understand all the moving parts. Your brain can only keep so much mental model of your code in it at once, and if the code you’re looking at is too large then what you can fit in your own “active memory” at once then you will have an increasingly hard time understanding it.
Most useful applications tend to grow larger than what the typical human can fit in their active memory, however, so you need a way to break up your code so you can load a relevant piece into your brain at once to understand and debug it. Usually that takes the form of encapsulation, coupling, cohesion, and other common object-oriented vernacular.
But what about just a pure function?
A pure function is a function that:
6 July 2020 – 5:13pm
Long recognized as the leader in integrated development environment (IDE) for PHP, PHPStorm from JetBrains is a full-featured IDE that can both enhance the development environment as well as reduce the development life-cycle.
PHP Internals News: Episode 60: OpenSSL CMS Support
Thursday, July 2nd 2020, 09:23 BST
In this episode of “PHP Internals News” I chat with Eliot Lear (Twitter, GitHub, Website) about OpenSSL CMS support, which he has contributed to PHP.
The RSS feed for this podcast is https://derickrethans.nl/feed-phpinternalsnews.xml, you can download this episode’s MP3 file, and it’s available on Spotify and iTunes. There is a dedicated website: https://phpinternals.news
- Derick Rethans 0:16
Hi, I’m Derick, and this is PHP internals news, a weekly podcast dedicated to demystifying the development of the PHP language. This is Episode 60. Today I’m talking with Eliot Lear about adding OpenSSL CMS supports to PHP. Hello Eliot, would you please introduce yourself.
- Eliot Lear 0:34
Hi Derick, it’s great to be here. My name is Eliot Lear, I’m a principal engineer for Cisco Systems working on IoT security.
- Derick Rethans 0:41
I saw somewhere on the internet, Wikipedia I believe that he also did some RFCs, not PHP RFC, but internet RFCs.
- Eliot Lear 0:49
That’s correct. I have a few out there I’m a jack of all trades But Master of None.
- Derick Rethans 0:53
The one that piqued my interest was the one for the timezone database, because I added timezone support to PHP a long long time ago.
- Eliot Lear 1:01
That’s right, there’s a whole funny story about that RFC, we will have to save it for another time but there are a lot of heroes out there in the volunteer world, who keep that database up to date, and currently the they’re corralled and coordinated by a lovely gentleman by the name of Paul Eggert and if you’re not a member of that community it’s really a wonderful contribution to make, and they need people all around the world to send an information but I guess that’s not why we’re here today.
- Derick Rethans 1:29
But I’m happy to chat about that at some other point in the future. Now today we’re talking about CMS support in OpenSSL and the first time I saw CMS. I don’t think that means content management system here.
- Eliot Lear 1:41
No, it stands for cryptographic message syntax, and it is the follow on to earlier work which people will know as PKCS#7. So it’s a way in which one can transmit and receive encrypted information or just signed information.
- Derick Rethans 1:58
How does CMS, and PKCS#7 differ from each other.
- Eliot Lear 2:03
Actually not too many differences, the externally the envelope or the structure of the message is slightly better formed, and the people who worked on that at the Internet Engineering Task Force were essentially just making incremental improvements to make sure that there was good interoperability, good for email support and encrypted email, and signed email, and for other purposes as well. So it’s very relatively modest but important improvements, from PKCS#7.
- Derick Rethans 2:39
How old are these two standards?
- Eliot Lear 2:42
Goodness. PKCS#7, I’m not sure actually of how old the PKCS#7 is, but CMS dates back. Gosh, probably a decade or so I’d have to go look. I’m sorry if I don’t have the answer to that one,
- Derick Rethans 2:56
A ballpark figure works fine for me. Why would you want to use CMS over the older PKCS#7?
- Eliot Lear
Truncated by Planet PHP, read more at the original (another 15109 bytes)