Voices of the ElePHPantInterview with Juliette Reinders Folmer (26.4.2016, 04:00 UTC)


Audio only


Show Notes

The post Interview with Juliette Reinders Folmer appeared first on Voices of the ElePHPant.

Ben RamseyPost-Open Source (26.4.2016, 00:00 UTC)

I’m a tad late to this discussion, but I think it’s still pertinent today—perhaps even more so—and Jordi Boggiano’s recent post, “Common files in PHP packages,” got me thinking about the lack of open source licenses in public repositories.

In his post, Jordi explains how he analyzed all packages at Packagist, specifically for the sake of identifying common file names developers are using for their change logs. As part of that analysis, he was also able to tell how many projects have a license file, about which he writes:

55% [of PHP packages at Packagist] have a LICENSE file, that’s.. pretty disastrous but hopefully a lot of those that don’t at least indicate in the README and composer.json

In a 2013 analysis of software licenses on Github, Aaron Williamson, then Senior Staff Counsel at the Software Freedom Law Center, found that 14.9% of repositories had a top-level license file, while 3.7% only announce the license in the project’s README1. Of the top licenses, he noted that there has been a significant shift since 2000 in favor of more permissive licenses (MIT, BSD, etc.) and surmises this could be the result of “corporate influence/allergy to GPL” or a reaction against the GPL, favoring “freedom of developer over freedom of users.” Why are so few repositories adding open source licenses?

Luis Villa posits it might be because developers are rejecting permission culture.

The open license ecosystem assumes that sharing can’t (or even shouldn’t) happen without explicit permission in the form of licenses. What if “post open source” is an implicit critique of that assumption – saying, in essence, “I reject the permission culture”?

So, when James Governor posted in September 2012 his sentiment about younger developers being about “post open source software,” it was perhaps a bit of tongue-in-cheek crotchety cane-shaking about a cultural shift in developer attitudes toward open source and the need to grant permission.

If we’re in a post-open source era and open source licenses represent permission granted to use one’s code, then is this era marked by a reaction against the need for that permission? After all, the “younger devs” grew up in a post-Napster world full of DRM, EULAs, IP/copyright lobbyists, and legalspeak about what we can and cannot do with the content and software we’ve purchased. Open source licenses are yet another way to proliferate that permission culture. It’s no wonder there’s a backlash against the need for licenses.

In Lawrence Lessig’s 2004 book Free Culture, Lessig warned:

Free cultures are cultures that leave a great deal open for others to build upon; unfree, or permission, cultures leave much less. Ours was a free culture. It is becoming much less so.

Are open source licenses just another manifestation of the shift to a permission culture and away from a free culture? While companies have embraced open source software and many contribute back to open source projects under a variety of permissive licenses, I can’t help but feel that open source is losing its soul. These days, I don’t hear people talking about it as a philosophy. Rather, the focus is always on licensing and business cases—the permission to use it.

What do you think? Do open source licenses propagate permission culture? Are we in a post-open source era?

  1. The analysis used FOSSology to examine 1,692,135 Github repositories out of about 6 million. Alternate locations of licenses could not be accounted for (file headers, subdirectories, unexpected file names, etc.).

Truncated by Planet PHP, read more at the original (another 956 bytes)

Adam CulpUbuntu 16.04 and PHP 7 not rendering (25.4.2016, 23:48 UTC)

After reloading my working laptop with Ubuntu 16.04 LTS (I prefer to do a reload versus an upgrade, for each LTS version) I was very excited to install PHP 7, and installed Apache2 and PHP7 using the standard Ubuntu repositories. I used the typical commands:

$ sudo apt-get install apache2
$ sudo apt-get install php7.0

However, after doing the installs I discovered the PHP scripts would not render in a browser. After a small amount of digging I realized that doing the installs did not include one important piece. The package ‘libapache2-mod-php7.0’ was not automatically installed as expected, and as it did in the past. (I don’t remember needing to install it separately in the past.)

$ sudo apt-get install libapache2-mod-php7.0

So one quick install like shown previous and all is working fine.

Happy PHP’ing.

SitePoint PHPFirst Look at Pagekit CMS – Clean, Extensible, Fast, But… (25.4.2016, 16:00 UTC)

Pagekit hit version 1 recently, and as I'd been looking at personal blogging engines, I thought it'd only be fair to check it out. Granted, blogging is merely a subset of the functionality Pagekit can offer, but a good basic test-drive subset nonetheless.

Pagekit logo


Note: we'll be using Homestead Improved for the environment in which to test things. All the commands, if any, will be listed with that in mind. Adapt for your own OS if necessary.

To install, we download and extract their archive, then point the web server to the newly created folder. Pagekit will immediately greet us with the installer screen.

Pagekit installation screen

After a short but incredibly smooth installation process, we land on the dashboard.

Pagekit dashboard

From the dashboard, we can access all other parts of the site like managing users, configuring new pages and routes, installing themes and extensions, deal with widgets, and more.

The permissions/roles subsystem is a bit limited in its default state, supporting only authenticated users, admins, and guests, but for a blog, which is what we're testing here, that's more than enough. If need be, more roles can be added in the Roles screen later.

Setting up a Pagekit Blog

Custom Pages

First things first, let's set up an about page. If we head off to Site, and then Pages, we can set up a new page. Conveniently, Pagekit supports Markdown out of the box so we can use that to write the content.

Creating an about page

Continue reading %First Look at Pagekit CMS – Clean, Extensible, Fast, But…%

Zeev SuraskiSelling PHP 7 to Your Boss (25.4.2016, 14:29 UTC)

Investing the time to upgrade to PHP 7 is one of the easier sells in PHP's history.
Still, if you need help convincing your boss it's worth the time, just use this simple illustration:

PHP 5.6

PHP 7.0

I tried to get the elePHPants to do that but they weren't nearly as collaborative...
PHP ClassesHow to Win a Big PHP ElePHPant Plush Mascott Every Month and Innovation Award Certificates? (25.4.2016, 09:09 UTC)
By Manuel Lemos
Lately the PHP Classes site has been listening to many class authors about improvements that they wanted to see in the site.

Some of them would like to be able to buy the elePHPant plush mascot. So starting this month they will be able to earn an elePHPant for free for participating in the Innovation Award.

Other requests that were implemented follow here. The article shows also screenshots of the requested improvements:

- Notable packages get more instant exposure to the site users by email and in the site blog
- Simplified package submission with less instructions and forms
- Responsive interface for package submission pages so you can do it from a mobile device with a small screen
- Faster importing of packages from GIT repositories without filling file description and role forms
- How to get more contributors to collaborate in your package development
- Faster package approvals (one day at most)
- Download printable certificates for all past and future Innovation Award nominated packages

Finally, at the end of this article there is an invitation to participate on a new project I am starting.

That project aims to teach and help to all of you developers that want to create your own software businesses working just for themselves on your own software products, from home or anywhere else, anytime you want, without putting up with bosses that make you do boring tasks.

Read this article to learn more about these improvements and how you can participate in the new project.
Ben RamseyIntroducing ramsey/uuid (24.4.2016, 18:00 UTC)

It seems quite absurd for me to introduce ramsey/uuid, a library that saw its 1.0.0 release on July 19, 2012, and is now at version 3.4.1, having had 35 releases since its first, but what’s even more ludicrous is that I haven’t once blogged about this library. I mention it only in passing in my “Dates Are Hard” post. So, allow me to introduce you to perhaps a familiar face, an old friend, the ramsey/uuid library for PHP.


I’ve been asked on more than one occasion why I created ramsey/uuid. Why was it needed? Why did I open source it?

It all began with Composer. In 2012, Composer was taking off, and there was a lot of excitement around creating userland PHP packages and distributing them for others to use. I had contributed a number of times to open source projects, but I had never maintained one of my own. So, it began as an experiment. I wanted to experience what it was like to manage an open source project and accept pull requests, feedback, and bug reports from others.

Once I had resolved to create a package for this little experiment, I needed something to work on that presented a problem I felt others in the PHP community had not yet sufficiently solved. I also looked to other programming language communities to see what problems they had solved that PHP could benefit from.

At some point, I stumbled across the Java and Python UUID implementations, both of which provide rich interfaces for generating UUIDs. Aside from the PECL uuid package and a handful of small libraries generating UUIDs with mt_rand(), I couldn’t find a PHP userland implementation providing functionality similar to that of the Java and Python libraries.

I had found a problem in need of a PHP userland solution! I set to work right away, quickly releasing a 1.0.0 version. Little did I know this marked the beginning of a long road for a small package that would become popular and widely-used.

What is a UUID?

UUID is an acronym for universally unique identifier. A UUID is a 128-bit integer with some special formatting rules based on its variant and version. When presented as a string, a UUID looks something like this:


A UUID aims to be practically unique such that information may be uniquely identified across distributed systems, without central coordination of identifiers. There are 1632 possible UUIDs, so it’s highly unlikely that there will be a duplicate. According to Wikipedia, for randomly generated UUIDs, “only after generating 1 billion UUIDs every second for the next 100 years, the probability of creating just one duplicate would be about 50%.”

RFC 4122 defines a specific variant of UUIDs having five versions:

  • Version 1 is constructed from the current timestamp and local machine MAC address
  • Version 2 is the DCE Security version; it is similar to version 1, but RFC 4122 does not explicitly define it, so it is left out of most implementations
  • Version 3 is constructed from a namespace and an MD5 hash of a name; given the same namespace and name, the UUID generated will always be the same
  • Version 4 is randomly-generated and is probably the most common version used
  • Version 5 is the same as version 3, but it uses SHA-1 hashing instead; it is the preferred version for name-based UUIDs

What’s In a Name?

What’s in a name? That which we call a rose
By any other name would smell as sweet.

Juliet Romeo and Juliet

If you used ramsey/uuid before the 3.x series, you’ll recall that this library began its life with the vendor name Rhumsaa. There were several problems with this name. It was too close to Ramsey, so many people assumed that’s what it was. As a result, in conversation, it was referred to as Ramsey UUID, and folks searching for it would use the search terms “Ramsey UUID.” It became very confusing, and those who knew it

Truncated by Planet PHP, read more at the original (another 20519 bytes)

Anna FilinaWe are all biased (22.4.2016, 19:23 UTC)

If you think that you are special and not biased, you’re not. We are all biased in some way. Before we talk about bias, let’s talk about inference and prejudice.

Why does prejudice exist?

When we are children, everything is new. We don’t have the experience to decide whether something is good or bad, so we don’t assume anything and look at everything from a fresh perspective. That’s why kids ask “why” all the time, and our answers shape their reasoning abilities later on.

As we grow older, we accumulate experience about the world, based on our own observations and based on what people tell us. This helps us to make decisions more quickly. This is generally a good thing, because without some amount of inference, we’d need way too much time to decide anything. For example, we usually assume that an applicant with only 3 months of practical experience will not be as productive as someone with 20 years. We can also assume that someone who makes too many grammar mistakes on a resume is not fluent in English.

How can inference be bad?

Here is an example. We tend to consider young people as having more energy and associate levels of energy with productivity. I can therefore assume that an older applicant will not be as productive. However, with more experience, it takes less effort to accomplish something. Again, that’s another assumption and I’d really have to speak with the applicant to decide.

Now let’s try another example. Say I noticed that there are fewer women who create software than men, and the women who do often work with CSS (visual part) rather than PHP (logical part). Although this is what I generally observed throughout my career, using that information to make a quicker decision can be bad. I might assume that a female applicant for CSS is probably good at what she does while a female applicant for PHP is probably not so good, while thinking the reverse for male applicants. We don’t really think this way because we’re not sexist… or are we?

I found out about my gender bias

I have been organizing conferences for web programmers since 2006. This means that I was partially responsible for going through hundreds of talk proposals and picking speakers. I never thought that I could be biased towards my own gender. But I was and I didn’t know it. Bias is subconscious.

I discovered it by starting to look more closely into my decision process. My process was that I would research a person’s attitude, their speaking experience and style as well as their skills relating to the topic, to see whether they actually know what they’re talking about.

This is where I discovered an uncomfortable truth: I often assumed that men who submitted on some topics knew what they were talking about and spent less time researching that part as opposed to women who submitted on the same topics. Why would I assume that women might not be knowledgeable about PHP and why would I assume that men might not be knowledgeable about CSS? This is especially strange since I am myself a PHP programmer.

Whatever anecdotal evidence led me to believe those general principles, in the end it really didn’t matter. What mattered is that I started to be more conscious about this bias, which led me to research speakers of all genders equally on all topics. While revisiting older speaker lineups, I noticed that this had an impact. There is now a better distribution of gender across these topics. There will always be other biases, but at least now I know that they exist and that they can be addressed.


If even a woman can have a negative bias towards women, then nobody is truly safe. That doesn’t make us bad people. Denying that we might be biased doesn’t help, because we are most definitely biased in some way. It’s how we survive.

Put your ego aside and start observing your own actions more closely. I guarantee that you will discover something that can be improved. Addressing bias is merely bringing it from the subconsciousness into our consciousness and the rest is easy. You don’t have to admit anything to anyone: just try to be a better person tomorrow than you are today and the world will be a better place.

SitePoint PHPWhat is SparkPost? (22.4.2016, 16:00 UTC)

I've used Mandrill for as long as I can remember. It sends transactional email, like the kind you receive when you sign up for a new account. Like me, many have been happy to use a free account for sending a relatively low number of emails a month.

Mail flying off

That is, until recently, when Mandrill caused a bit of a stir. The heart of the matter is that Mandrill removed their free tier. Anybody wishing to send mail through Mandrill now requires a paid-for MailChimp account.

Perhaps they grew tired of making no money for sending lots of emails. Whatever the reason, many folks were surprised, and some even angry at the move. It's akin to a popular open source library suddenly going closed-source.

What is SparkPost?

Mindful that people are looking for alternatives (to power their personal newsletters or whatever), I spoke to Aydrian Howard. Aydrian is the Developer Advocate at SparkPost, whom I met at FluentConf. We talked for a bit about SparkPost and what makes it different from MailChimp...

1. What are your thoughts on the recent MailChimp/Mandrill news?

We have a lot of respect for MailChimp and think they are a great company. We understand when they say that transactional email isn’t the business they’re in. Thanks to our great relationship with MailChimp, they are recommending us as a Mandrill replacement.

Continue reading %What is SparkPost?%

Nomad PHPGrown-up MongoDB: Schema Design (22.4.2016, 00:01 UTC)

July 2016 2016 - EU
Presented By

Derick Rethans
July 28, 2016
20:00 CEST

The post Grown-up MongoDB: Schema Design appeared first on Nomad PHP.

LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP