Last year I spoke at WordCamp Sofia and the videos are finally up on WordPress.tv. I spoke about templating in WordPress, about how and why the template hierarchy works, and covered some of the core functions like
locate_template() and filters like
You can find the slides and reference links right here.
I’ve seen tens, maybe hundreds of different plugins, all with different approaches at creating social profile links in WordPress themes via widgets, menus, shortcodes, and “insert this piece of PHP code in footer.php” and whatnot.
A few days ago I stumbled on what I think is the right way.
I’ve been using the Limit Login Attempts plugin for WordPress for quite a while. It basically logs failed login attempts and automatically blocks multiple attempts from a single IP address. A few days ago I’ve switched to fail2ban instead, which is pretty new to me.
Fail2ban is a fairly simple yet very flexible framework that monitors log files for certain patterns, and runs preconfigured actions upon certain events.
Out of the box fail2ban comes with many so called filters, which are sets of matching rules, for example SSH auth failure, vsftpd login failure and more. As well as predefined actions, like block the IP address via iptables, send an e-mail with the IP WHOIS info, etc.
I haven’t had too much time to play around with the configs, but I did manage to get it to work with my WordPress install on nginx, and here’s how.
At Automattic we get to upgrade our computers once every two years or so, and a few weeks ago I got a brand new 13″ MacBook Pro with Retina display. This was my first reaction:
Even large sites like Facebook and Twitter are not Retina-friendly, despite the fact that it’s now been well over a year since the first Retina MacBook hit the shelves. It’s like looking at low-quality JPEG.
Working with screenshots is very painful, because when you take a screenshot and then share it, the image you get is twice as large and also low-quality. Well, low-quality as in non-HiDPI. I guess that’s an annoyance I can live with.
I’m still getting used to the slightly larger font size, down to 1280 width from 1440 (13″ MacBook Air), although the Display settings allow you to configure that, and bring it up to 1440 or even higher, thus bringing quality down. Not something I see myself changing, unless it’s for testing purposes only.
Other than that, the Retina laptop is not too different from my older 13″ MacBook Air. It’s slightly smaller and weighs a little more, but the battery lasts much longer, which is perfect for travel. I haven’t really measured it, but I think the Retina MacBook generates a little bit more heat.
Overall I’m happy with my new MacBook, especially since I now have more room for WordCamp stickers :)
Twenty Thirteen (the year, not the theme) is almost over, so I’d like to go back and review some of the things I had planned and the goals I had set for the year.
Here’s what happened in 2013.
You know WordPress 3.8 has arrived, right? It’s got a total of eight new and beautiful color schemes for you to choose from, and another eight (at the time of writing) in an official plugin called Admin Color Schemes, so sixteen total. How do you pick one? Easy.
Meet Color Schemes Roulette — a brand new WordPress plugin, that will randomly change your admin color scheme every time you hit that Publish button. It’s also a great motivator, proven to increase blogging frequency up to 170% right after activation!
Yup, this is my way to celebrate the 3.8 release. Although I haven’t contributed much this time, I’m still super excited to see it all come together. Thanks to Matt and the whole team behind 3.8, for making such a beautiful WordPress.
_n_noop() is one of the many functions overlooked by WordPress developers, probably because of it’s somewhat cryptic name, or perhaps due to lack of a good use case. Let’s see what the docs say:
Register plural strings in POT file, but don’t translate them.
Exactly. No, seriously, that’s what it does.