Blog
Why and How Git Tags Can Save Your Sanity
Published: September 1, 2016
I want to talk to you about tags in git. If you’re already using them great! You may not need to read this post (although you’re of course welcome to). I’m guessing, however, that there are a good number of you who aren’t. If you fall into the latter category, read through the below to find out what you’re missing out on.
5 Enterprise_PageCache Pro Tips
Published: August 19, 2016
I recently gave a talk on monitoring and improving your full page cache hit rate with Enterprise_PageCache
at NomadMage. The talk dives deep into the internal’s of Enterprise_PageCache
, investigating how requests are saved to and loaded from cache. In this post, I wanted to highlight 5 key aspects of FPC that are revealed in the talk.
Mentioning People (by Name) in Comments
Published: August 15, 2016
When commenting code, the most important thing to do is explain why the code exists. Anyone can figure out what the code does, but, other than the individuals involved in the decision that lead to the implementation, no one else will know the reason.
Creating Grafana Annotations with InfluxDb
Published: August 8, 2016
When reviewing historical data in tools such as InfluxDb, it’s typically useful to overlay a timeline of key events. For example, Google Analytics features a simple GUI for adding annotations and New Relic offers an API for marking deployments. In this post we’ll look at creating annotations for your InfluxDb powered Grafana visualizations.
One "Weird Trick" To Instantly Break usesSource
Published: August 5, 2016
As you might know, Magento features several frontend input types for catalog attributes. For example the “New From Date” attribute, is stored as DATETIME
in the catalog_product_entity_datetime
table, whereas the product’s “Name” is stored as VARCHAR(255)
in the catalog_product_entity_varchar
table.
For both of these attribute types, the values can be pulled directly from the db and are ready to display to the end user with no further manipulation. However, there are a couple types which are initially stored numerically (e.g. in catalog_product_entity_int
) and need to be translated via eav_attribute_option
and eav_attribute_option_value
before they are ready to be displayed to the end user.
There is a method in Mage_Eav_Model_Entity_Attribute_Abstract
(an ancestor of Mage_Catalog_Model_Resource_Eav_Attribute
) called usesSource
. It is uncommented, but at first glance it looks like it can reliably used to determine whether or not an attribute’s values need to be translated in that way…
public function usesSource()
{
return $this->getFrontendInput() === 'select' || $this->getFrontendInput() === 'multiselect'
|| $this->getData('source_model') != '';
}
However, as I learned the hard way, there’s this “one weird trick” that will cause usesSource
to return true no matter what.
Magento Enterprise_Index Lesson #329 - Don't TRUNCATE the _cl tables
Published: July 29, 2016
I’ve been looking into a problem recently that was reported by the client as follows…
“Sold out products continue to show as in stock, until I go into the Magento admin, mark the product as out of stock and save it.”
The issue took a lot of time to diagnose, but ended up with a really interesting discovery.
Don’t TRUNCATE
the _cl
tables (and no, it wasn’t me who did it here, although I’m pretty sure I’m guilty of doing so in other places).
Let me explain why.