Meet Magento 2014 New York – a Personal Summary

Statue of LibertyMeet Magento 2014 New York was the first Meet Magento conference on US soil. The following is my summary of the talks I attended (mainly the technical track). Please note, the following may contain errors – it is always safer to go the original source. This summary is only to help you judge which ones are more likely to be interesting to you so you can dig in deeper if interested. Oh, and the length of descriptions reflects personal interests, not quality of the talks. I took more notes on areas I was less familiar with or more interested in.

Oh, and as a spoiler, if you are reading this post to get some juicy opinions on some of the more controversial talks you will probably be disappointed – that is not the goal of this post.

DAY 1

Brendan Falkowski of Gravity Department talked on responsive web design. He mentioned #OperationFrontendSteward which includes front end patterns for Magento as some previous work, but mostly he talked about his opinion on trends to watch out for. This included he believed RESS was going to play an important part of a good solution. (Interestingly he said at one stage that there was more and more a good front end developer is expected to know and learn – it was not a matter of a new concept replacing old ones.)

Other tidbits included Google looks at the quality of the CSS and JavaScript as part of the page ranking, canonical links are important to Google (each page on mobile specific site should have a link to a desktop equivalent page if you don’t use RWD), and Speed Index is better than page load time to measure a site.

A practical issue was around rendering images – with retina displays should you always load higher resolution images? That slows down the performance of a page. One approach is to use lower quality images for pages showing multiple products and only use full quality images when viewing a single product at a time.

Oh, my favorite quote for the conference – something like “User-Agent headers are like a person describing themselves – they often try to make themselves sound better than they are”. Classic!

Ivan Chepurnyi of Interactiv4 talked about Varnish in the real world. “It takes around 3 days to get Varnish going on an existing site.” (My goal for Magento 2 here is to get this down to more like 3 minutes – by pushing the responsibility to identify what can be safely cached to extension developers.) He talked about techniques like using the browser cache to cache Ajax call responses (e.g. cart size and user name). One of the challenges was everyone one product pages, category pages etc, but extensions often added new “page types” so you had to design the Varnish configuration per site as it may have different extensions loaded. A lot of his work is available online on GitHub.

Phillip Jackson of Something Digital talked on one of his projects that used HTML 5 Canvas Customizer for a print shop application. He picked Fabric.js due to activity of team working on it, so went with Canvas over SVG. Phil talked a bit around engaging customers – saying conversion rates go up when customers can customize the product more.

(I jumped out of the technical track at this time over to one talk in the business track by Karen.)

Karen Baker of WebShopApps gave her perspective on the state of the Magento extension marketplace and Magento Connect. The only notes I wrote down for myself were along the lines of tying down some internal staff to force them to watch her talk if the video is posted online! But there were some hard challenges around making it possible for bright new entrants to get into the market, while potentially reducing the marketplace size so there is more quality and less noise. Not easy ones to solve. Lots of other thought provoking topics (should Magento try to reduce extensions and potentially be branded as stifling an open community, or allow more extensions potentially lowering the quality of experience for merchants?), but ones we had been thinking a lot about internally recently so I did not write down many notes. Oh, and some hard hitting points about how to get Magento Connect to provide reliable indications of quality of extensions.

(Back to the technical track.)

Yoav Kutner of OroCRM talked about the OroCRM platform and products on top. (There was a little on how it can work with Magento.)

KEYNOTES

There were also 3 keynotes in the evening, but due to giving one of them I did not take notes. Ben Marks (Magento) talked about the community, various projects he was working on, and that none of them were done yet. Guido Jansen of Sanoma talked about persuasion (convincing your customers to buy, not the Jane Austen book!). I wrapped up with a few slides on Magento 2, having a bit of fun adding lib due to not checking more carefully that the full deck had been loaded correctly on the laptop. But it meant I finished quickly so the party could start on time – a good result! My main message was “we are serious about the published dates” (roughly developer beta end of this year, developer RC a quarter after that, merchant beta another quarter, GA early last quarter 2015).

DAY 2

Lee Saferite of AOE had a really good talk on Magento and security that was chock full of great tidbits. Topics included writing log files to separate hosts for improved security (if a machine is broken into then you cannot trust the logs on the machine as they may have been tampered), think about the security of your backups, Docker can help with security (isolation of components), don’t have login shells for web server account, extension developers should think about what roles a site should have (not just one ‘super user’ role), avoid installing modules directly into your production instance (much better to install in dev environment and commit to say GIT for version management of site deployments), read-only file system holding source code is best, don’t use Composer without commit hashes, and lots more. All up it was a really good security overview talk for Magento.

Tim Broder of Alexander Interactive talked about his use of Vagrant to build standard images, ensuring more consistent development environments for all users. He pointed out you can have a Vagrant container mount a file system from your local laptop so you can use a local IDE while having the files run in a standard Vagrant environment image. In development you may mount it read/write and in production read-only. The idea was to ensure all developers had a consistent supported environment.

Oh, and he mentioned a few times “Vagrant Share” which allows you to share your environment with anyone in the world. This looked really useful when collaborating with clients as you can guarantee they have the same set up as you are using to develop the code.

Kurt Theobald of Classy Llama gave a thought provoking talk out the state of the Magento community and what he would like to fix. For example, like Karen, he was concerned about 6,000 extensions (many of poorer quality) and a lot of poorer quality system integrators. How to keep the quality up for Merchants? How can the community help? I think this talk generated a lot of discussions online and I am sure there is going to be a lot more coming. Being an Agilest, I consider it a form of “retrospective” (let’s review and see how to make things better as the community has evolved) with a call to action of interested parties. I think it is good to take stock periodically and have a hard look at how things are progressing and are they in the right direction. I am sure we will hear more from Kurt on this in the future (and I am sure it’s going to generate some interesting discussions inside Magento too! 😉 )

Steve Shickles of Simple Helix talked about how they build customer solutions using a Lego block component mentality. I agree with this mentality myself, and am hoping to get collaboratively developed Docker based Lego blocks along the same lines. (I am picking Docker because if its wide adoption and current high profile.)

Daniel Sloof (now at EngineYard) gave an update on HHVM (the Facebook PHP implementation). Some of the performance figures were very impressive. The challenge was HHVM is not PHP and does not always behave the same, which can be important. One of his challenges was around testing Magento 1 in a consistent way (Magento 1 does not ship with test suites). He hoped to shortly open source his Magento 1 testing tools in case useful to others. After the talk he mentioned Facebook were moving to support a more stable HHVM release every 6 months or so, which I think will make it more feasible to build sites on HHVM. (Whenever a new release of HHVM is made, you have the risk they have broken the behavior for Magento in some way.) Interestingly Facebook are running the Magento 2 test suite over HHVM to ensure compatibility while they continue to develop HHVM. Nice!

Hrvoje Jurišić of inchoo gave a second front end developer talk. Again, I took lots of notes as this is an area I am personally less familiar with. Some interesting points to me included for mobile the main problem is latency and all these higher resolution screens are not helping as higher res images means poorer latency as the image files are bigger. Techniques to look at include reducing the number of HTTP requests, use gzip on HTML pages, minimize your JavaScript and CSS files, put CSS at top of pages (pages cannot render without it), JavaScript at the bottom, use CDN’s for your static assets as much as possible. Firefox and firebug are great performance tools, along with http://webpagetest.org (but use the Google page speed test as well). He often merged JavaScript files used on a page (fewer files load faster, but make sure you can share the JavaScript across pages). This alone improved performance a lot. Even more: consider loading JavaScript and CSS files used by other pages at the end of the home page ready for usage by subsequent pages, he liked “defer.js”, avoid loading images below the fold (gets top of page loaded faster), request lower res images on lower res screens, and so on. He also inlined critical CSS styles (those needed above the fold) directly into the top of the page for speed, and then merged in external CSS later. The final result was the site was almost twice as fast – just by optimizing the front end code (no backend code changes). This is another good talk to go watch later. It also showed that front end development is now serious business – there is a lot of technology you need to understand here. I left thinking more about how Magento 2 could help reduce some of the burden for developers.

Joshua Warren of Creatuity Corp talked about testing a Magento site. He made the point that while unit testing in Magento 1 is a lot of work, functional testing (e.g. using Selenium) is not. He pointed out performance frequently should be given a higher profile. Introducing new code always has the risk of slowing down your site, and slower sites lose sales. He had conducted some surveys of what people did in the market. Lots of people do functional testing, around 50% do performance testing, most use Bamboo or Jenkins (with PHPCI having minimal usage yet, but it is still relatively new). 100% used Selenium. Gatling was his preference over JMeter because it could do things like insert random delays making it a bit more realistic. He aimed for test runs of 60 to 120 seconds so they can be run frequently. Commits with a 20% slow down over baseline performance were rejected. His company plans to open source their test tools to make them available to the community.

Luis E. Tineo of Blue Acorn talked about Kanban and test automation, including performance testing. Good stuff, but I did not take many notes – he was preaching to the converted for me. (Sorry Luis!)

Brent Peterson of Wagento Commerce talked about getting people to share tools for running an agency in much the same way as code is open sourced. For example, why not open source how to write a purchase order making it easier for individuals or small organizations to get into the Magento community faster.

Meet Magento WineConcluding Thoughts

All up a great conference. Some thought provoking discussions (Kurt and Karen), for me some interesting front end deep dives showing how much performance improvement such work can deliver (Brendan and Hrvoje), other performance talks for Varnish (Ivan) and HHVM (Daniel), lots of references to dev ops including test automation (Joshua and Luis) and standardizing builds (Tim and Steve), a great security talks (Lee), plus a smattering of other one off talks (Yoav, Phil, and Brent). A nice mix all up.

I had lots of interesting side conversations (lots to follow up on over the next few weeks) and got to meet in person lots of people who previously I only knew the twitter handles for. The event ran well and I think bodes well for future such events in the US. Congratulations to the organizers for a great event!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: