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.

Conclusion

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

Link
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.
Link
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 #joind.in 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!

Link
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%

Link
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.

Link
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.
Link
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.

Link
Nomad PHPWhat to Learn First In PHP (28.8.2015, 16:12 UTC)
Speaker: Tessa Mero @TessaMero Are you interested in learning how to use PHP? In this presentation, you will gain the tools necessary to get started with programming. PHP is one of the easier programming languages to learn and I will show you all the basics you need to know to start writing code. I will …
Link
SitePoint PHPLogging with Monolog: From Devtools to Slack (28.8.2015, 16:00 UTC)

Logging is an important part of the app development/maintenance cycle. It’s not just about the data you log, but also about how you do it. In this article, we are going to explore the Monolog package and see how it can help us take advantage of our logs.

Installation

Monolog is available on Packagist, which means that you can install it via Composer.

composer require 'monolog/monolog:1.13.*'

However, there is a great chance that you’re using a framework for your app. Monolog provides a list of integrations for most popular frameworks. I’m using Silex for this demo, but I won’t be using the provided integration to show how you can configure Monolog for any of your apps.

The Logger

When you create a new logger, you should give it a channel name. This is how you distinguish your list of loggers. I will bind my logger to the app container.

// app/bootstrap/container.php

$logger = new \Monolog\Logger('general');
$app->container->logger = $logger;

Because Monolog is PSR-3, you can be sure that you are adhering to the PHP-FIG standards. This will allow you to switch to any other implementation if you don’t feel comfortable with Monolog (I don’t see any reason why you wouldn’t). You can now start logging using one of the following methods, depending on your log level. (log, debug, info, warning, error, critical, alert, emergency).

Continue reading %Logging with Monolog: From Devtools to Slack%

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