Thijs FerynRunning varnishstat remotely using an API written in Go (3.9.2015, 09:32 UTC)
Varnish is one of my favorite pieces of technology. It’s a reverse caching proxy that makes slow websites go fast. It
PHP ClassesReview: Laravel 5 Essentials (3.9.2015, 01:10 UTC)
Laravel 5 Essentials
Lopo Lencastre de Almeida
PHP books
Martin Bean
This book was a bit of an unexpected surprise. For its seven chapters and just 118 pages I was expecting less than I got. Of course, this is just an introductory book so do not expect it to have it all about Laravel 5.

Neverthless, if you are willing to know more about what modern PHP programming and Laravel is or just want to get a fast update on what's new in its version 5, then you should read "Laravel 5 Essentials".

Laravel is one of the most exciting of the newer PHP frameworks and it will gain market share in the near future. It's already the most starred PHP framework on Github and that says a lot about its popularity, so you should really consider to have it as one of your expertise areas.

This book is, for sure, is a must have and a very good starting point for all PHP newcomers and old Laravel developers.
Anna FilinaCreating Courses and Talks with Mind Maps (2.9.2015, 14:05 UTC)

Many people are intrigued when I say that I am able to cut my course and talk preparation time by roughly 70% using mind maps.

The first instinct is to write slides, but that is wrong. Slides are linear. With the ability to make transitions, add pictures and express ideas in full sentences, they are a distraction to the flow of thoughts.

How Mind Maps Help?

Mind maps remove distractions and enable you to focus on getting ideas out of your head. Your thoughts are not linear and mind maps accommodate that. You can see everything at a glance. You can jump from one topic to the next, make changes, rearrange, etc.

Planning is the most important thing. A good plan means that more than half of the work is done, since you’ll less likely to backtrack. It’s much quicker to make changes to a mind map than to a nearly-completed course or presentations.

Process Suggestion

I start with assertions about the audience. Are they developers? What is their skill level? What do they expect to get from this? Then, I write a conclusion to match those expectations. Yes, straight to the conclusion. I can’t plot a route without the destination.

I fill in the major topics. I sequence them in a way to tell a story that will progressively lead the audience to the conclusion. I read the topics out loud, linking them as I speak. Is the order coherent? Does it sound like an interesting story? I rearrange as needed.

Then I fill in with sub-topics. It’s okay to write more content than necessary. I can delete some later. Oftentimes, this part requires me to do some research about best practices, because they evolve every day. Once this is done, I quickly read everything out loud, because that’s how I spot inconsistencies and missing links. I refine the topics, delete those that add too little value and re-read once more.

At this point, the content is solid and I can write the slides, or whatever support material I need. That part is usually much, much shorter than the mind map planning. I probably spend most of that time finding good stock photos.

Things to Watch Out For

Write your points using as few words as possible. Avoid full sentences. It’s supposed to be a reminder, not a novel. It’s a map of what’s in your mind, not a full brain dump.

If you must write down the many ideas that you don’t want to forget, make sure that they’re in their own branch so that you can collapse that branch. This way, you have the ideas for later, but keep your mind map lean.


Mind maps are a powerful tool that will help you do things faster and increase quality. Try to use mind maps for everything: blog posts, functional requirements, vacation planning, etc. I actually used a mind map to write this post about mind maps.Mind maps

Cal EvansInterview with Anthony Ferrara (1.9.2015, 13:08 UTC) Link
PHP ClassesSentiment Analysis in PHP Part 2: Applying the Solution in Practice (1.9.2015, 07:30 UTC)
By Samuel Adeshina
In the first part of this article we learned about the theory of analyzing a text to determine the sentiments expressed by the user that wrote it.

Read this article to learn to how to implement a sentiment analysis application in practice based on the PHP Sentiment Analyzer class.
Rob Allenrandom_bytes() in PHP 5.6 and 5.5 (1.9.2015, 06:15 UTC)

Last week, I needed some random data and using the power of the PHP manual, came across random_bytes which does exactly what I need. However, it's PHP7 only.

As I target both Linux and Windows, I needed to do a bit more work to get it working which was fine, but a minor nuisance given that I know that there's a better way in PHP7.

Talking on the IRC channel a few days later, Anthony tells us about paragonie/random_compat which is a PHP 5.x polyfill for the PHP7 methods random_bytes() and random_int(). Usage is exactly the same, so when you switch to PHP7, you just remove the library from composer and all your code using these methods will continue to work.

I hadn't heard of it; I'm guessing that you haven't either, so now you know!

SitePoint PHPWriting PHP Git Hooks with Static Review (31.8.2015, 16:00 UTC)

If you’ve been using Git for more than a short length of time, you’ll hopefully have heard of Git hooks. If not, Git hooks, as Andrew Udvare introduced here on SitePoint back in August of last year, are scripts which run, based on certain events in the Git lifecycle, both on the client and on the server.

Hook illustration

There are hooks for pre- and post-commit, pre- and post-update, pre-push, pre-rebase, and so on. The sample hooks are written in Bash, one of the Linux shell languages. But they can be written in almost any language you’re comfortable or proficient with.

As Tim Boronczyk pointed out in September 2013, there are a wide range of meaningful purposes which hooks can be put to. These include linting, spell-checking commit messages, checking patches against accepted coding standards, running composer, and so on.

Now, PHP’s a great language, don’t get me wrong, but it’s not necessarily the best language for shell scripting. Admittedly, it’s gotten a lot better than it once was. But compared to languages such as Bash, Python, and Ruby, it hasn’t been quite as suitable for creating Git hooks; that is, until now.

Thanks to Static Review, by Samuel Parkinson, you can now write Git hooks with native PHP, optionally building on the existing core classes. In today’s post, I’m going to give you a tour of what’s on offer, finishing up by writing a custom class to check for any lingering calls to var_dump().

Installing the Library

Like most, if not all modern PHP libraries and packages, StaticReview is installable via Composer. To install it in your project, run composer require sjparkinson/static-review in the root of your project. With that, let’s get going.

Continue reading %Writing PHP Git Hooks with Static Review%

Stefan KoopmanschapWeCamp Day 5 (31.8.2015, 14:45 UTC)

I still owe you one day, so here it is. This blogpost came a bit late because as day 5 ended we still needed to get the island back into its regular state, get speakers back to the airport etc. Enough excuses… here’s day 5.

The last day of WeCamp 2015 was an exciting day. After 4 days of preparations and hard work, this was the day that Team Enygma would present Project Cypher. A project that we had kept an utter secret aside from the name.

During the morning, I had another round of individual conversations with my team members to see how their short-term goals were working out. It was very good to see that all team members had either reached their goals or at least were very close to reaching their goals. Some also had a clearer view of what to do with their long-term goals thanks to the experience of WeCamp. One person had not actually reached his goal, but instead had gotten something completely different and unexpected out of WeCamp which he still counted as a win.

The preparations for the presentation of the product went well, although it was finished slightly too late (lunch had already started). Still, good enough.

Then it was time for the project presentations. Team Enygma was presenting as the last team, so we could see the other teams present their stuff first. It was awesome to see what people had come up with: Being able to use a Slack Bot to control an Arduino, community-minded projects for new speakers to get feedback on their project, even a daemon that you can use to play battleships. So very cool. The presentations also gave us an overview of what people had learned. An amazing amount of things were learned, that is clear.

And then… Project Cypher was presented. The idea behind the project was to be able to keep track of information about people you know. In the original project pitch by team member Remco it would be like a CRM for Friends (FRM?). The problem (and I can so relate to this problem): Forgetting about specific things (Where do I know this person from? What do they like? When is their birthday). As we worked on the project, we came to the conclusion that this was also the ultimate tool for stalkers, but it could also very easily be applied by the police for keeping track of criminals. So it was creepy, or not. Team member Paul (who wanted to learn to be a public speaker) killed it in the presentation, sharing what we had learned and also doing an awesome demo of our system in action: Everyone that was at WeCamp was in our database, nicely tagged and easily searchable. You might be able to imagine the feeling of pride I had when I saw all this. 4 people who had never before met had created this project in just 5 days, and learned so much in the process.

After that, it was time for the closing notes and saying goodbye to everyone. The crew and coaches stayed behind to have a final dinner together and chat for a bit more, processing everything that had happened along the way. Such a fantastic week. Thanks everyone who was there.

PHP ClassesCalculating Periodical Events in PHP Part 1: The Problem Challenges (31.8.2015, 03:05 UTC)
By Dan Thanh
Sometimes it is necessary to calculate the days of periodical events, like for instance sweepstakes, contests, regular publications, etc..

In general, it is an easy problem to solve. However when the events span multiple days and must not occur in holidays, the problem becomes less trival to solve.

Read this article to learn how you can use the PHP Sweepstakes class to compute the days of regular event taking in account these nuances that may complicate the calculations.
Stefan KoopmanschapWeCamp Day 4 (29.8.2015, 08:10 UTC)

In terms of working, day 4 was actually only half a day. But since the last day of WeCamp would also just be half a day, some work had to be done. The team focussed on finishing their MVP and ended up actually finishing this as well! A great accomplishment for a team that, 4 days ago, did not know eachother at all.

After lunch the Pragmatist Survival Game was scheduled. We were randomly assigned team mates (get out of that little comfort zone you built during this week!) and went on to do four different games. The games were: A balance game to get team members over the water (preferably without falling in), trying to get as many floating items out of the water, making a fire and lighting gun powder with it and sword fighting. It was awesome to see everyone get into their pirate role so well, including the secret assignment each team got, which was to make a song or poem about Mikke One-Eye. For me personally it was fun to speak to and work with some people from outside of my team as well. And I succeeded pretty good in the whole “being a pirate” by stealing the tally stick of another team, thereby robbing them of the points they earned. Unfortunately our plan to add those points to our own points was stopped by the pirate leaders denying to add it to our points. Still, we earned a third place, which I think is pretty good, out of 8 teams.

Then it was time for the Enrise BBQ (which I was told by Eli should actually not be called a BBQ, but rather a grill-out). This was a perfect way to end the day with all attendees, plus some extra guests: Rick and Stefan from Enrise, Merel and a friend (Merel is the awesome graphical artist who did our coach avatars) and my wife and kids. The night ended in the big tipi around a campfire. I hear some people didn’t go to bed until 5AM. Not surprisingly, this morning the stand-up had some people missing in action.

Today is the last day of WeCamp. It means polishing up the projects, preparing the presentation and delivering the presentation. For me it also means sitting down with my team members to evaluate their personal goals for WeCamp. It’s going to be an interesting day.

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