Bruno is a professional web developer from Croatia with Master's degrees in Computer Science and English Language and Literature. After having left his position as lead developer for a large online open access publisher, he now works as the PHP editor for SitePoint and on various freelance projects. When picking them, he makes sure they all involve new and exciting web technologies. In his free time, he writes tutorials on his blog and stalks Google's job vacancy boards.

Bruno's articles

  1. PHP News You May Have Missed – August, September 2014

    By now, you should be familiar with this post type. Every few weeks (months?), I do a summary of all the “popular but not popular enough” news from the PHP world that I think you should know about, and I link to sources containing more information. Some of those might be things we’ve already talked about on SitePoint but warrant a repost, others may have been swept under the rug by more popular news (like, I dunno, PHP 5.6 being released).

    Let’s see what’s new.

  2. PHPSummerCamp Review

    The PHPSummerCamp of 2014 is over. Three days of hands-on workshops with experts from their fields provided us all with new insights, perspectives and tricks. While I wish I could have participated in all the workshops, that was simply not an option. Hence, I’ll talk about the ones I did join.


    Before the conference, we were given a Virtualbox appliance. For the uninitiated, an appliance is a pre-configured virtual box, something like a base box when using Vagrant, with pre-installed pre-configured software inside it. In theory, just booting it up should let you have the same environment as everyone else. In practice, this is rarely so – a huge chunk of the first workshop’s time was eaten away by configuration problems and folder sharing issues.

    While it was disappointing that Vagrant wasn’t used to set up a unified development environment for everyone, the appliance actually worked amazingly well. Setting up a samba share AND maintaining a symlink consistency was less than a couple of minutes of work on my Windows machine, and while I can only imagine the hell they went through while setting it up, I wholly appreciate the ease of use it created for us, the audience. Well done to all, both speakers and organizers!

    Day 1

  3. StackEdit 4.0: Multiple Instances and Local Hosting

    There are many, many MarkDown editors out there. In fact, there are so many, I was made to rant about their current state not so long ago, and reviewed a strong competitor in the field in the hopes of finding the holy grail MD app, to no avail.

    StackEdit 4.0

    StackEdit has, through all that time, remained at the top of the browser based MD editor world, but it always lacked a certain something. Most of these shortcomings were addressed in the beta version, but this version was neither very publicly available, nor declared stable – you used it at your own risk of data loss and crashes. I’ve personally been using it reliably for months, but I understand the hesitation of the masses. Last week, however, @benweet finally released the source code of version 4 on Github and geared up for a public release.

    New features include a much improved documents panel with proper folder management, so you can stay on top of your files at all times. You can also search for any document in your stack (very important when you have hundreds).

    Synchronization with cloud services like Dropbox, Google Drive, Github and others has been much improved, and I’ve personally been enjoying auto-synchronization with Google Drive for a while now. While I’m typing, my documents get automatically synced up with my cloud services, so there’s no fear of data loss.

    You can now also add inline comments to your documents, allowing you to share them with others and collaborate in a very dynamic manner. The actual sharing of documents could still use some work, but one thing at a time.

  4. Quick Tip: Make Sure Your PHP Version is Safe with Versionscan

    There’s a tool you can use to check that you have a version of PHP with the most bugfixes. The tool is versionscan and it recently got a 1.0 release. This quick tip will show you how to install it into your environment so it’s accessible from any folder, letting you call it at any […]

  5. Quick Tip: Install Recki-CT into a Vagrant Ubuntu Box

    Recki what? If you don’t know what Recki-CT is, see @ircmaxell’s original post or the repo, we won’t go into depth here. This quick tip will merely show you how to install it on a Homestead Improved box, much like we did with other software before. Step 1 – Homestead Improved First and foremost, get […]

  6. Welcoming New Authors – July, August 2014

    Two more months, and our ranks keep growing – while some authors are basking in the summer heat on beaches around the world, others are hard at work submitting their excellent content and getting the networking they deserve.

    New Authors

    In the past two months, we’ve had a whopping ten new authors join our team, all top quality, all incredibly enthusiastic about both learning and teaching. Let’s welcome them into the fold! Note that from now on, all author descriptions will also have their social icons underneath so you can keep in touch with them via your social network of choice.

  7. PHP 5.6.0. Released

    PHP 5.6.0., considered a very important cornerstone by many, has been released today. We’ve talked about the changes this version brings in previous posts, and others have written about it, too.


  8. Quick Tip: Install Zephir and Phalcon 2 on Vagrant

    This quick tip will show you how to install Phalcon on a Homestead Improved instance, and will help you get a sample Phalcon app up and running.

    The version of Phalcon we’ll be using in this Quick Tip will be 2.0 – a pre-release. If you read this when Phalcon is already in a mature 2.x stage, let us know and we’ll update the post. To install the stable 1.x version, just run sudo apt-get install php5-phalcon and it should work.

  9. Diffbot: Repeated Collections and Merged APIs

    In the previous post on Harvesting SitePoint Authors’ Profiles with Diffbot we built a Custom API that automatically paginates an author’s list of work and extracts his name, bio and a list of posts with basic data (URL, title and date stamp). In this post, we’ll extract the links to the author’s social networks.


    If you look at the social network icons inside an author’s bio frame on their profile page, you’ll notice they vary. There can be none, or there can be eight, or anything in between. What’s worse, the links aren’t classed in any semantically meaningful way – they’re just links with an icon and a href attribute.

    This makes turning them into an extractable pattern difficult, and yet that’s exactly what we’ll be doing here because hey, who doesn’t love a challenge?

    To get set up, please read and go through the first part. When you’re done, re-enter the dev dashboard.

    Repeated Collections Problem

    The logical approach would be to define a new collection just like for posts, but one that targets the social network links. Then, just target the href attribute on each and we’re set, right? Nope.