Welcome back! It's 2015 and the year ahead is set to be a busy one for the Squiz Labs team. We already have some exciting developments in the works and trust me, there is a lot to look forward to!
Unfortunately, all can not be revealed just yet... but we have some nice goodies to tide you over.
Our first releases of the year will be out next week and we already have some new features to report, including enhancements to the system's Purge Trash tool.
Continue reading below for more information on all this weeks developments.
Purge Trash Tool Enhancements
Due for release in version 22.214.171.124 (TBA)
The Purge Trash tool in Squiz Matrix allows you to remove the assets on your system that are currently in the trash.
Previously, the Purge Trash screen allowed you to purge either all assets in the trash, or those from a certain selection(s) of these assets (based on root node).
This feature introduces a new field to purge assets based on their age, as well as new scheduling options.
The Link Age field allows you to specify a time period value. If this field is set, when a user selects to purge the trash and clicks Commit, only links in the trash that are older than the specified time period will be purged.
The Link Age field allows you to specify a time period value in either minutes, hours, days, weeks, months or years.
Additionally, a new Purge Trash Job Scheduling section has been added on the Purge Trash screen, allowing users to set a scheduled job for purging trash, where you can also specify the root nodes and/or link ages to purge.
You can set the time the purge should be scheduled, and can then specify whether or not to repeat the job at a selected time interval (minutes, hours, days, etc.).
These enhancements have been added to aid in the purging of trash on systems with large numbers of assets in their trash. These tools should help streamline the purging process and allow users to more accurately identify and select the assets they want to purge.
New Exiftool Tool for Metadata Extraction
Due for release in version 126.96.36.199 (TBA)
Squiz Matrix will now use Exiftool for metadata extraction, which supports different image metadata formats such as EXIF, XMP, IPTC, etc. The previous tool used by Matrix, the PHP JPEG Metadata Toolkit was used for extracting XMP data only.
Once upgrading to Matrix 5.2, systems using the old PHP JPEG Metadata Toolkit tool will receive a warning regarding the missing Exiftool when attempting to create or upload new image files.
Additionally, previously extracted image metadata using the old tool will remain unaffected, until the metadata is re-extracted using the new Exiftool tool.
While Squiz Labs has been as busy this year as we ever have, 2014 was a year headlined by a few major announcements and releases, rather than a constant stream of news. This meant that throughout the majority of the year, we've were working hard towards what has been some of the most significant developments ever for our Squiz Matrix product, headlined by the release of Matrix 5.
In this week's newsletter, we take a look back at the year that was. So grab yourself a cup of coffee, make sure your comfortable and let's relive 2014.
Squiz Labs 2014
As is the norm, the year began with a string of our first Matrix releases of 2014 on January 6th. Versions 4.16.6 and 4.18.2 were the first two of fifty-six releases of Squiz Matrix this year! Head over to our Release Information page for a full list of this year's releases.
In March, the upcoming release of Squiz Matrix 5 was announced for late April. With months of development, Matrix 5 was poised to be the most significant leap in the history of our product, with notable updates and improvements to almost every aspect of the system. Two of the most apparent changes were our new Administration and Edit+ for Squiz Matrix interfaces, which we headlined in our announcement blog post.
Later in March, Matrix 5 went into testing and a release date of Monday, April 28 was set.
Also in late March, Labs celebrated Harmony Day with a multicultural bring-and-share lunch. It was a delicious melting pot of cuisines, with main dishes including baked macaroni, stir-fried beef, prawn noodles, pastizzi, chicken curry, spinach cob dip, pierogi, momo dumplings, not to mention lemon semolina cake, profiteroles, and bread and butter pudding for dessert. So good!
April was an extremely busy month, leading up to the release of Matrix 5. We kicked off the month by announcing that, as of Matrix 5, the Edit+ for Squiz Matrix WYSIWYG editor would be available for use within the administration interface for Squiz Plus customers.
We also made changes to the way we distributed access to our Matrix code versioning system, with Matrix moving to Git from the release of Matrix 5.
Later in April, we outlined a new release schedule for Squiz Matrix and updated versioning system. As of Matrix 5, Labs moved to a more ad hoc release system, releasing new versions as they were warranted.
It was also time to say farewell to the trusty Bug Tracker, that had been around since the launch of Matrix and had seen almost 7000 bugs reviewed and resolved. With Matrix 5, bug management moved to Squiz's internal Roadmap system, Squizmap.
Finally, at the end of April, Squiz Matrix 5 had arrived! Matrix 5 welcomed new, completely revamped interfaces for both the Administration and Edit modes, as well as new Marketo integration tools, conditional content rules, and support for the Edit+ Editor in the back-end.
In May, Squiz Labs revealed our brand new logo. It was pretty similar to our previous logo, except ... better. We made some minor adjustments to bring Labs more inline with the rest of Squiz. Did you know that the Labs logo is an ambigram, meaning that it can be turned 180° and still look the same? I think that's kind of awesome.
Towards the end of June, we announced a new Maintenance Mode for Squiz Matrix designed to assist in the system upgrade process. This mode, when enabled, would disable the functionality of specified assets on the front-end, instead printing a maintenance message for your users.
News for July was headlined by our announcement of Matrix 5.1 and, as as we approached the September release, we detailed much of the exciting new functionality that could be looked forward to.
In August, we presented our new depreciation system for old and unused assets and features, which was to be implemented with out Matrix 5.1 release. We also announced a number of assets that would be moving into the first phase of the deprecation process in the upcoming release.
Also in August, we released v.1.7.0 of Squiz Roadmap, containing a bunch of great new functionality, including a new Batch Edit interface, a new way to easily move ideas between projects, and a new project creation system. To read more, check out the What's New in the Latest Release of Squiz Roadmap? blog post.
On the 1st of September, Squiz Matrix 5.1 was made available, our first minor release since we had unveiled Matrix 5 back in April. It would be an overstatement to say that Matrix 5.1 was jam-packed with functionality, with over sixty brand new features and enhancements!
In early December, the Squiz Matrix Newsletter celebrated our 500th edition. We celebrated with some cool facts about the Matrix newsletter (Did you know it's been running for over 10 years now?) as well as some of our favourite past newsletters.
We wrapped up the year this week with our Labs end-of-year celebration lunch, and a Christmas morning tea, complete with secret santa gifts! It has certainly been a fun way to cap off the busy year.
2014 was a year of development and growth for Squiz Labs, most notably for our Squiz Matrix product. We're definitely proud of the leaps and bounds that Matrix has made over the past year, along with our other products and releases.
We do have a lot of other exciting developments just hanging in the wings, waiting for their moment to shine! 2015 is sure to be another big year for Squiz Labs, so stay tuned!
On behalf of the Squiz Labs team, we want to wish all our readers a very Merry Christmas and a Happy New Year. Have an enjoyable and safe holiday break. We'll see you all again in 2015!
Next week will be our last full working week of the year. We'll be releasing our final Matrix releases of the year, versions 188.8.131.52 and 184.108.40.206 on Wednesday, December 17th.
It will also be our last newsletter of the year. As usual, we'll be taking a look back at the year's highlights in our Squiz Labs 2014 retrospective. Be sure to check back next week for that!
This week we have one new feature to report, the ability to clone assets within the Edit+ for Squiz Matrix interface. Continue reading below for more information on all this week's developments.
Edit+ for Squiz Matrix: Clone Asset Tool
Due for release in version 220.127.116.11 (TBA)
Along with moving and link assets, Squiz Matrix's Administration Interface allows users to clone assets, creating a copy of the asset and any of its dependent assets in another area of your system.
This functionality, however, was not previously available when using the Edit+ for Squiz Matrix editing interface.
This feature introduces the ability to clone assets within Edit+ via a new Clone Existing Asset button in the Asset Creation Wizard pop-up (accessed when creating a new asset).
Clicking this button will display the Clone Existing Asset pop-up, allowing you to select the asset you want to clone, enter a name for the cloned asset and specify where in the system you want to create the asset.
When you have configured these settings, clicking the Clone button will create a clone of your asset.
This feature has been added to further enhance the Edit+ for Squiz Matrix interface and the functionality available.
Today, we've reached a rather big milestone for the Squiz Matrix Newsletter, our 500th issue!
In order to commemorate this achievement, we've created one of those fancy wall plate things that you always see available at truly momentous occasions. We've tried to maintain the
gaudiness extravagance that you often see in these beautiful pieces.
This special Squiz Matrix Newsletter Quincentenary plates are available now, in a strictly limited run of infinite. To order your plate, simply right click on the image below and select Save ;)
If you hover over the plate (and the stars align) you might get another little surprise ... gotta love Grumpy Cat! (If you see nothing, you might need to clear your browser cache).
In all seriousness though, five hundred is a pretty big stack of newsletters, so before we get to this week's features, let's take a look at some fast facts about the history of the Squiz Matrix Newsletter.
Extra! Extra! Read all about it
- It's been almost exactly ten years ago that we released the first issue of the newsletter, back on December 10th, 2004.
- The newsletter was originally titled the MySource Matrix Developer Newsletter and used to be sent to subscribers via email.
- It wasn't until our 280th issue, back in June 2012, that we began posting the newsletters here on the Squiz Labs blog.
- Four different people have been in charge of writing the newsletter.
- Over the years we've reported on ... well, we don't know exactly how many features and enhancements we've written up. We'd guess in the thousands ... let's just say 'a lot'.
- Based on the first release of the newsletter, we should be up to issue #522 this week. So we've misplaced twenty-two issues somewhere... oops.
If you've just joined us, here's a list of some our more noteworthy newsletters:
- MySource Matrix Newsletter Issue #280: The one that started it all on the Squiz Labs blog. It also seems there was an oddly large amount of stuff happening that week.
- Squiz Matrix Newsletter #308: Our first yearly review, when we took a look back at Squiz Labs in 2010.
- Squiz Matrix Newsletter #333: This issue was all about the number 3. I don't know why, but we took it and ran with it and this is what we got. Lots of interesting tidbits actually!
- Squiz Matrix Newsletter #359: We look back at 2012, the year when we said goodbye to MySource. I'm still not over this loss... :(
- Squiz Matrix Newsletter #404: As an homage to the dreaded 404 Not Found, issue #404 of the newsletter went missing... literally! Thankfully we ended up finding it and shared some of our favourite 404 pages around the web.
- Squiz Matrix Newsletter #409: In this issue, we take a look back at Squiz Labs' extremely busy 2012.
- Squiz Matrix Newsletter #413: On Australia Day, we took the opportunity to share some of our favourite Aussie slang, and cool BBQ logo!
- Squiz Matrix Newsletter #437: We celebrated Squiz Labs' 5th anniversary in this issue of the newsletter, with a cake logo and a group photo (hover over for some hood action!).
- Squiz Matrix Newsletter #459: The year that was... 2013. This issue had a cool Christmas logo.
- Squiz Matrix Newsletter #468: The one we'd all been waiting for, the announcement of Squiz Matrix 5!
Well, enough with all the newsletter talk... we've got a great new features to get to!
This week we have one new feature to report, new Copy/Paste from Word and Drag & Drop Image functionality on the Edit+ WYSIWYG editing area. Continue reading below for more information on all this week's developments.
Edit+ WYSIWYG: Copy/Paste from Word and Drag & Drop Image
Due for release in version 18.104.22.168 (TBA)
This feature introduces a new extension that will allow you to copy and paste, or drag and drop and image located on your local computer or inside a Word document, into the Edit+ WYSIWYG editing area.
Once an image has been copied into the WYSIWYG, a temporary image preview will be displayed, marked with a dotted blue border, along with the inline Image plugin tool.
The image preview will maintain the original image's width and height, so that you can visualise how the image will look amongst your content.
The inline Image tool allows users to specify the settings of the image, including its URL and location, before uploading it to your system.
One an image has been uploaded, you can click Commit to save your changes on the page. If click Commit before uploading the image you have dropped or copied into your content, Matrix will remind you that you of this and prompt you to upload your image.
The Drag and Drop Image functionality is currently available on all latest Firefox, Chrome and Safari browsers, as well as IE10 and 11.
The Copy/Paste from Word functionality is available on the latest version of Chrome and IE11.
Nineteen months ago, I started work on a project to allow PHP_CodeSniffer to fix the problems that it finds. Doing this required a lot of changes to the core classes, a lot of iteration and refactoring of the fixing and testing code, and an enormous amount of time and testing across many PHP projects to ensure I am confident enough to release something that actually modifies code. I could keep writing unit tests forever, but I've finally got to a point where I am happy to release this first version of the PHP Code Beautifier and Fixer (PHPCBF), for when you just can't be bothered fixing coding standard errors yourself.
I originally started with a goal of being able to fix the most commonly found errors when checking PHP projects using the PSR2 coding standard, but I expanded that goal to include all coding standards (including custom standards) and supported file types (PHP, JS and CSS). So as of version 2.0.0, when you run PHP_CodeSniffer and get your standard report of the errors found, you will now be able to see which of those errors can be automatically corrected by PHPCBF. Sample report output can be seen on the wiki: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Fixing-Errors-Automatically
Custom Coding Standards
If you have a custom coding standard that uses the sniffs included with PHP_CodeSniffer, you will find that many of the errors your standard finds are already fixable with PHPCBF. PHP_CodeSniffer comes with just over 600 unique errors and PHPCBF is able to fix just over half of those. The rest of the errors are almost entirely made up of things that cannot be automatically fixed, such as variable names and changes to comparison operators.
If you have your own custom sniffs, you are able to add auto-fixing code to them using the new auto-fixing tools built into PHP_CodeSniffer. You have access to all the normal token-based functions you are used to, as well as some new fixer-specific functions to do things like replacing token content and adding content and newlines to tokens. PHPCBF is also able to group a set of changes so that they are all applied or rejected together, detect sniffs trying to fix the same piece of code in the same run, and detect and resolve conflicting changes that are being applied.
The Diff Report
Along with the new PHPCBF script, PHP_CodeSniffer adds a new report type; the diff report. If you don't like the idea of a script fixing errors automatically, you can instead ask PHP_CodeSniffer to output a diff of the fixes that it would make using the command line argument --report=diff. If you like what you see, you can simply change the phpcs command to phpcbf, leave all the command line options the same, and let PHPCBF patch your files.
Version 2.0.0 brings a lot more changes that just auto-fixing, including:
- a completely rewritten comment parser that is design to allow for auto-fixing (see https://www.squizlabs.com/php-codesniffer/2.0.0a1-released)
- a new information report to show you how your code is written rather than if it conforms to a standard (see https://github.com/squizlabs/PHP_CodeSniffer/wiki/Reporting#printing-an-information-report)
- the ability to set command line arguments in ruleset.xml files (see https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml#the-annotated-sample-file)
- the ability to create your own custom reporting classes and use them with PHP_CodeSniffer
- distribution of PHPCS and PHPCBF as phar files
- support for running on HHVM
- detection of minified CSS and JS files
So many developers have helped test this auto-fixing code over the last year and half. More than twenty developers have directly contributed code to make the auto-fixing more accurate and more still have reported bugs to help diagnose issues with the fixing.
But I'd like to send special thanks to Alexander Obuhovich (@aik099 on Github and Twitter) for both testing PHPCBF and for being so active on Github issues and PRs, and to the developers working on the WordPress coding standards (https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards) for working with me to find solutions for running and testing complex custom coding standards and for trying out the auto-fixing code in their standard.
I've also released version 1.5.6 today and I'm keeping the 1.5 branch around for a little while longer to make it easier to upgrade to 2.0, especially for developers who need to change custom coding standards. If you have having problems with the 2.0 version, please use 1.5.6 in the meantime.