Lately I’ve been using Warden to run some pretty large Magento sites not only with Docker Desktop for macOS but also on Docker running natively on Fedora 31 which I’ve got setup on a pretty sweet Dell T5820 I picked up recently. My local network is setup to resolve *.test domains to my Fedora setup when Docker Desktop is stopped allowing me to easily switch between the two, using VSCode Remote SSH + PHP Intelephense by Ben Mewburn as my editor and sometimes experimenting with PHP Storm over X11 in XQuartz.
Everyone who has worked with Magento for a time knows that Magento uses indexers to achieve higher performance than it might otherwise achieve when dealing with certain complex data types. A list of these indexers can be easily found by looking at the output of bin/magento indexer:status on the CLI. These indexers usually support both synchronous (Update on Save, also known as realtime) and asynchronous (Update on Schedule, also known as schedule) modes.
In this post, I’ll be walking you through how to install the pfSense software on bare-metal cloud servers powered by Packet Host. pfSense is a free open source network firewall distribution based on the FreeBSD operating system. Netgate (the company behind the project) offers “Security Gateway Appliances” but you can also build your own system as long as it meets the minium system requirements, or in my case deploy on cloud infrastructure.
This guest post by Erik Hansen will cover how to use the capistrano-magento2 Capistrano Gem to deploy Magento 2 on any static infrustructure design of your choosing. A Little About Capistrano Capistrano is a a tool used to run scripts on multiple servers, typically with the purpose of deploying code changes to those servers. Capistrano works well with both single node deployments as well as multiple node deployments that include separate application and database servers sitting behind a load balancer.
Magento 2 ships with a complete testing suite out-of-the-box. These include a complete set of operational unit, integration, and static tests. The simplest of these to run is probably the unit tests, having all necessary components setup and in-place automatically after installing Magento 2 successfully. Here I’ll show you how to run the full tests suite, run each type of tests independently, and also how to run a small portion of the unit or integration tests if need be.
There are two common ways to install Magento 2. One is to simply clone the Magento 2 GitHub repository and install. This is great for contributing, but not so much for starting a new project. Magento released the Magento 2.0 GA this Tuesday, November 17th at the MagentoLive Australia event. Very exciting stuff! With that they threw the switch on the new meta-packages server which hosts all you need to install Magento 2 with only a set of authorization credentials and composer.
Using the file-system for a cache backend on a production Magento site is just asking for your site to run slowly. But what about development? Should you use a file-system based cache there or not? Well, that is ultimately up to you, but you’ll be able to work faster if you develop on a stack with a fast cache backend. My personal favorite is currently Redis. Magento supports this out of the box in later versions of Magento 1 as well as in the developer betas of Magento 2.
Recently the crew over at Classy Llama decided to finally jump on board the OroCRM train and begin the process of implementing the software for our own internal use. Sometimes I’m known as the server dude internally, and that’s exactly how I come into play in this endeavor. The question always must be answered, where will we host it? In my neck o’ the woods we run our software on old-fashioned bare-metal servers, which does mean we have some older software than I’d like at times.
I live and breath Mac OS X on a daily basis, with a large portion of my work revolving around the command line using mostly tools which I’ve installed with brew. Bash completion has likely saved me days worth of time over the past decade or so. Little did I know, up until recently, however, that there is an official tap with completion scripts (in addition to the ones which come with individual recipes such as git) which can be installed for tools like docker, vagrant and grunt.
A common problem encountered with web development where private or local development sites with no public DNS sites are being used is the one of viewing these locally running development sites on an iPhone or iPad for testing purposes. This becomes even more of a problem when working on a mobile theme or particularly a responsive design where it’s kind of important to test simultaneously on multiple screen sizes while your implementing the breakpoints required for the content to adapt to the different displays.
By now the overhaul of the indexer system used in Magento Enterprise Edition 1.13 is fairly common knowledge, especially amongst those that have the privilege to work with it on some large builds. I’ve had the chance to work with it a fair bit on a rather large project currently still in the oven over at Classy Llama. This project has over 40 million product pages and 5 million parts in inventory!
It all started when a number of us over at Classy Llama decided to stop using the Done Done issue tracking service and move to a self-hosted Active Collab based project management system. We weren’t merely moving to Active Collab for issue tracking, we needed a way to track time, along with a hoard of other things. Tracking time was something that we’d been doing in Unfuddle, but it wasn’t working very well because it was separate from our issue tracking software, and we couldn’t let clients onto Unfuddle due to it’s limited access control abilities.
In some rare cases there is functionality that clients need me to develop that requires disabling some built-in observers due to them conflicting with the desired custom behavior. There are also some that aren’t needed by everyone that you can gain a performance boost from by disabling. I have previously disabled a few observers by rewriting the observer model and returning NULL inside the observer method. Brought to light by Colin M.
One thing that I don’t particularly care for is hard-coding snippets of text into themes, especially if there’s a possibility that they may need to be changed down the road. Unfortunately WordPress doesn’t have anything to suit out-of-the-box. With the release of WordPress 3.0, however, custom post types were introduced, which are entirely perfect for this! What I did is add a custom post type of “variable” that are not public, have a UI in the admin and support the title, editor and excerpt.