git add –patch and –interactive

I knew about git interactive staging for a while now, but I’ve never really used it.  Most days I work on a single feature or bug fix at a time and can commit sequentially, one change after another.  For an occasional mess, I found git interactive staging user interface too be too cumbersome.

The last couple of days at work were quite chaotic, with me jumping from one thing to another, and I decided to master that feature once and for all.  Looking for a better tutorial, I came across this blog post, which covers the interactive staging, but also provides a much simpler approach – “git add –patch“.

It’ll take some practice to get it into my finger memory, but I think I’m settled now.

Graphical vi-vim Cheat Sheet and Tutorial

Graphical vi-vim Cheat Sheet and Tutorial is yet another attempt to explain and visualize Vim commands to the editor’s new users.

This is a single page describing the full vi/vim input model, the function of all keys, and all major features. You can see it as a compressed vi/vim manual.

Using non-breakable spaces in test method names

Using non-breakable spaces in test method names is a great example of how something can start as a joke and quickly turn into something very practical and useful.

if we decide to not follow PSR-2 naming for test methods because of readability, we might as well use non-breakable spaces since it’s even more readable…

Why So Many Top Hackers Hail from Russia

Brian Krebs has an interesting post on “Why so many top hackers hail from Russia“:

Conventional wisdom says one reason so many hackers seem to hail from Russia and parts of the former Soviet Union is that these countries have traditionally placed a much greater emphasis than educational institutions in the West on teaching information technology in middle and high schools, and yet they lack a Silicon Valley-like pipeline to help talented IT experts channel their skills into high-paying jobs. This post explores the first part of that assumption by examining a breadth of open-source data.

Overall, not very surprising, but the details and references are interesting.  It seems a lot has changed since I graduated (back in 1995).

Via Slashdot, which also has some insightful comments.

Phinx joins CakePHP!

These are some really good news – Phinx joins CakePHP family!  If you are from a different technology stack and not familiar with these, Phinx is an excellent database migrations tool, which has been used by CakePHP framework for a while now.  The two worked great together.  Now that they are under the same roof, I’m expecting even more goodies!

We are very excited to announce that Phinx has joined the CakePHP team. The Github project has already been moved to the CakePHP organisation. The project itself will stay MIT-licensed but be gradually transformed into a Cake Software Foundation project. Other great news is that the current way to install and update Phinx remains unchanged.

As you are aware, CakePHP has been using Phinx since 3.0.0 for database migrations. The CakePHP Core team welcomes the opportunity to look after and maintain the project and will now start making changes to bring the code in line with the CakePHP (our) coding standards. As well as cleaning up issues and PR’s soon. We will be following up with our plans for the code and setting roadmaps in the coming weeks.

We welcome Phinx to the CakePHP family and hope to see Rob Morgan, Richard Quadling, Woody Gilk around!

Dear BitBucket, please dial down your LGBT celebration

Dear BitBucket, can you please dial down your LGBT celebration.  Changing your website logo is one thing.

But adding 20+ lines with ANSI codes to the “git push” output and all without warning is way too much.  If you don’t believe me, check #bitbucket hashtag on Twitter, and see how many happy customers you have now.

P.S.: keep in mind that this is a paid service too. WTF?

Regex101 – online regex editor and debugger

Regex101 is an online regular expression editor and debugger.  You can test your regular expressions against sample data, see if the expression worked, watch it matched, and so on.  Having an explanation for each part of the regular expression dynamically generated, and a quick reference nearby is super handy too.