spatie/period is a PHP library that provides complex period comparisons. It implements a variety of methods for calculating gaps, boundaries, overlaps, and other operations on multiple dates.
Category: Web work
These days, most of my work is very related to the online world. Building web sites, reviewing web applications, integrating with web services, coordinating people who are far away from each other, etc. Whenever I find a new tool or service or an innovative, interesting idea about working online, I share it in this category.
PHP – Password Exposed Helper Function
Password Exposed Helper Function is a tiny PHP library that helps checking user passwords against the Have I Been P0wned website API.
This is quite common new functionality on many websites and services (see GitHub, for example), which is now available as a quick composer dependency for your PHP projects.
MySQL High Availability at GitHub
Shlomi Noach, GitHub’s Senior Infrastructure Engineer, shares some details on both the current and future high availability setup of MySQL databases at GitHub.
This is probably way too far out for most people using MySQL for their web applications. But it does highlight the technical complexity of running high load web applications, and how some of the issues can be solved or worked around.
Pretty fascinating stuff there …
Advanced web security topics
“Advanced web security topics” blog post goes over a variety of ways that a web application can get p0wned. Some of these include:
- Cross-site scripting (XSS)
- Mime-type attacks
- A variety of injections – SQL, JavaScript, HTTP
- URL indexing
- Click-jacking
- … and more.
git merge vs. git rebase
There’s a lot of confusion between git merge and git rebase even among seasoned users of git. “An Introduction to Git Merge and Git Rebase: What They Do and When to Use Them” is a great article explaining the pros and cons of each, and when and why using each of this is better.
While I understand it a lot better now, I still much prefer the merge approach. It’s simpler and less dangerous, and maintains the full history. This might get noisy at times, but works as a last resort when trying to understand what was going through the developer’s head when he was working on a piece of code.