Practical Cryptography for Developers

Practical Cryptography for Developers” is a free book (with GitHub repository) by Svetlin Nakov, which aims at teaching developers some of the most practical concepts of cryptography.  The book covers hashing functions, random generators, symmetric and asymmetric keys, digital signatures, and more.  Each chapter is rich with diagrams, illustrations, code samples, as well as exercises.

Cyprus shipping photo competition

If you are a photography enthusiast in Cyprus, Cyprus Mail has some exciting news for you:

The deputy ministry of shipping has launched a photo competition in cooperation with the Cyprus Marine Club and the support of the Cyprus Photographic Society.

[…]

The competition – launched this week – will run until January 11, 2019 and is open to persons over 18.

All images should be related to merchant shipping and/or the Cyprus maritime tradition. Participants may submit up to five colour and/or black and white images. Images should be the original work of the entrants. Photos that have received awards in other competitions or have already been publicly posted will not be accepted. Participation in the competition is free of charge.

A five-member committee will choose the three best photos. The first prize is €500, second €250 and third €125. The three winners will also receive an engraved glass trophy.

There aren’t that many photography related events in Cyprus, and even less so for amateurs and enthusiasts.  So here’s your chance to participate, showcase your skills and creativity, compare yourself to other photographers, and win some money and recognition while you are at it.

Cyprus has changed significantly in the last few years, with new ports, terminals, marinas, skylines, and possibilities for aerial photography (hello drones), opening up new opportunities for photographers of all levels.  Don’t miss out on this one.

Avoid complex arrays in PHP

Now that PHP 7+ sorted out a whole bunch of problems with type-hinting of parameters, return values, variables and properties, we turn our attention to somewhat deeper issues.

Array is a native citizen in PHP.  Arrays are very convenient and are widely used.  However, if you stop and think about the times where you had to figure out somebody else’s code, I’m pretty sure complex arrays will come to mind at some point.

I’ve recently came across two completely independent blog posts which talk exactly about this particular area of problems:

Both are explaining the issues very well and make valid points.  As far as solutions and better ways go, apart from the approaches mentioned in these blog posts, I also remembered a recent blog post from which I linked to the data transfer object library, that solves exactly that.

RoadRunner – high-performance PHP application server, load-balancer and process manager

RoadRunner is a high-performance PHP application server, load-balancer and process manager, written in Goland.  It sounds like an excellent replacement for the built-in PHP server, and even more than that – it’s production-ready.  And it works on Windows too.

RoadRunner is an open source (MIT licensed) high-performance PHP application server, load balancer and process manager. It supports running as a service with the ability to extend its functionality on a per-project basis.

RoadRunner includes PSR-7/PSR-17 compatible HTTP and HTTP/2 server and can be used to replace classic Nginx+FPM setup with much greater performance and flexibility.