PHPNews

Missing Bits

Fig 1. A tweet I tweeted It's 1989, I'm 5 years old, my hair is terrible and my shorts are as long as my socks. It's the end of my third day of school, and as I queue to leave the classroom, I notice a boy standing at the doorway holding a large colourful bag. As the queue progresses, gossip fills the air and …

Continue reading »

Written by Krakjoe - - Aggregated on Thursday September 12, 2019


Bearings

Fig 1. Some Bearings There is a lot of talk about the direction of PHP as a language, there have been discussions on internals and open letters from community bloggers ... I think, actually, there is rather a lot of confusion in the air, and so I'm seeking to cleanse that air with this post. Factions A lot of …

Continue reading »

Written by Krakjoe - - Aggregated on Thursday August 29, 2019


Contriflossary

Regarding contribution to open source projects The following scenario has been played out countless times, by a large number of [first time] contributors, to a large number of OSS projects: Find OSS project we love Attempt to navigate [source of] project Find this confusing Decide that there needs to be some …

Continue reading »

Written by Krakjoe - - Aggregated on Tuesday August 20, 2019


Nailed Lids

Fig 1. A Black Box When we are developing, we go to great lengths to take measurements and gather insights with every kind of testing under the sun, coverage, reviews and so on. These measurements, insights, and processes give us the confidence to take what we made to production. Production ... a kind of black …

Continue reading »

Written by Krakjoe - - Aggregated on Sunday July 28, 2019


Trimming the Phat

Fig 1. A very fancy Tomb We all think we know how dead code elimination works, we can just reference code coverage, or run static analysis, or rely on our own internal model of the code, which is always absolutely perfect ... Dead can mean multiple things when we're talking about code, at least: Compiler …

Continue reading »

Written by Krakjoe - - Aggregated on Wednesday July 17, 2019


PHP GR8

Fig 1. A chap performing the Detroit JIT Unless you have been living under a rock, or are from the past (in which case, welcome), you will be aware that a JIT is coming to PHP 8: The vote ended, quietly, today, with a vast majority in favour of merging into PHP 8, so, it's official. Throw some crazy shapes in …

Continue reading »

Written by Krakjoe - - Aggregated on Saturday March 30, 2019


Parallel PHP: The Next Chapter

Some years ago, to prove some people on the internet wrong, and because I had a break from normal work - the first such break in years - I decided to write pthreads. My memory fails me a little, but from what I can recall, nobody actually saw that first version, I developed the idea over the following weeks and months …

Continue reading »

Written by Krakjoe - - Aggregated on Wednesday February 13, 2019


Running for Coverage

Today we're going to look at the history and the future of coverage collection in PHP. History is the easy bit: For most of the history of PHP, Xdebug has provided the only implementation to php-code-coverage. Simple. Then in 2015, just after phpdbg was merged into PHP, some clever sausages extended the instruction …

Continue reading »

Written by Krakjoe - - Aggregated on Monday January 28, 2019


Faking It

Fig 1. A Mockingbird As well as mentoring and code review one of my main tasks at work is to improve the test suites and improve the testing and development methodologies we use. This is no small task and has resulted in the publication of a few extensions, one of them is uopz. Before we continue; I work in the …

Continue reading »

Written by Krakjoe - - Aggregated on Sunday January 27, 2019


Boxes of Sand

Fig 1. A Sandbox Sandboxing is a technique used in testing and security to execute unsafe, or untrusted code in a safe environment. There are different levels of sandboxing: In security a sandboxed environment may refer to a (virtual) machine dedicated to the execution of unsafe code. In testing, a sandbox may …

Continue reading »

Written by Krakjoe - - Aggregated on Sunday January 27, 2019


Preface to idbg

Fig 1. A tweet from earlier this month We already have several options for debugging code within the PHP ecosystem. XDebug is extremely mature software, and phpdbg has been slowly gaining traction also, if for no other reason than it's very fast to collect code coverage compared to XDebug. Although phpdbg and …

Continue reading »

Written by Krakjoe - - Aggregated on Sunday June 3, 2018


PHP allows for the design of X

Fig 1. A thing I said Starting complicated twitter conversations should be avoided, I know this, and yet blurted this out on twitter recently ... This was met with a flurry of responses and I couldn't reasonably reply in tweet form. I'm going to respond to some of those tweets (indirectly) and further explain my …

Continue reading »

Written by Krakjoe - - Aggregated on Tuesday May 22, 2018


An Introduction to CQL

Recently I have been working on a CommonMark extension for PHP7 . It is based on the reference implementation in C, linking to it rather than re-implementing the spec. The reference implementation in C is extremely fast, and so the extension has a focus on performance, trying to create PHP objects only when …

Continue reading »

Written by Krakjoe - - Aggregated on Monday April 16, 2018


Sensible Targets

Fig 1. Current release cycle graph There has been a lot of talk recently about which versions of PHP you should support for your new projects or packages. As a release manager for PHP, someone who watches the way releases evolve extremely closely, and has some sway over what gets fixed and what doesn't, and as …

Continue reading »

Written by Krakjoe - - Aggregated on Tuesday January 16, 2018


Test Etiquette

Fig 1: A brigade of woobles, apparently Today, we're going to talk about testfest, in case you have no idea what that is, here is an excerpt from the website : Have you ever wanted to contribute to PHP but have been afraid that your C skills aren’t up for the challenge? Well, have no fear! If you know PHP, you …

Continue reading »

Written by Krakjoe - - Aggregated on Wednesday November 8, 2017


Expanding Horizons

Fig 1. My view of the horizon this morning. Recently I have been working on a new extension . It is a wrapper around libui , which is a cross platform user interface development library, that allows the creation of native look and feel interfaces in the environments it supports. The gravitas of this may not …

Continue reading »

Written by Krakjoe - - Aggregated on Wednesday November 2, 2016


me et mentis morbum

Fig 1. What I aspire to be ... This morning, I want to talk about mental illness ... and apologize. The preceding sentence was rewritten 42 times, and contains the words from the first revision. In some sense, it is difficult to use the words "mental illness" when we are talking about ourselves. There is a kind …

Continue reading »

Written by Krakjoe - - Aggregated on Monday September 26, 2016


Breaking Badly

If you're not running PHP 7 already, you are either crazy, or else your unit tests rely on software that I wrote for PHP 5 ... uopz . uopz is a runtime hacking extension of the runkit and scary stuff genre. When I first wrote uopz, PHP 5 was almost in a state of equilibrium. There were minor changes effecting the …

Continue reading »

Written by Krakjoe - - Aggregated on Wednesday April 13, 2016


Hacking PHP 7

Recently, I have taken part in some screen casts with my good friends at 3devs . The subject of the screen casts are extension development for , and hacking PHP 7 ( Part 1 , Part 2 ). Screen casting is a medium I haven't mastered, or had very much practice at. While I'm trying to plan the content for the show, I …

Continue reading »

Written by Krakjoe - - Aggregated on Tuesday March 15, 2016


Picking an Approach

Fig 1. Several Languages I should hope that the majority of people reading this consider themselves polyglots. A polyglot is a person able to speak in many languages; It's almost a requirement of programming that we should know more than one language. Using the right language for the job is a worthy aspiration to …

Continue reading »

Written by Krakjoe - - Aggregated on Wednesday March 2, 2016