Development

The Magento 2 Certification Problem

With all the discussion around the technology behind Magento 2, the release schedule and the excitement of how Magento 2 will help transform eCommerce, I have to admit, I hadn't thought at all about certifications for Magento 2 until someone at Magento asked my opinion about it. So here's the challenge - when Magento 2 launches, how will an employer or merchant know a developer knows Magento 2? Magento (both as a community and as a company) has always made it clear that they understand that a big part of the success of Magento is thanks to the large, vibrant community of Magento developers.

However, the current Magento training and certifications cover Magento 1, not Magento 2. New things are in the works, but with the release date of Magento 2 approaching quickly and fairly major changes still taking place in the codebase, how do you have a way on Day One of Magento 2's release to know a developer is Magento 2 ready?

In an ideal world, all of us Magento developers would be spending a significant amount of time staying up to date with the changes the Magento 2 team is pushing each week on Github, and we'd all be studying and learning Magento 2 in-depth over the next 11 months until Magento 2 is released.

However, Magento 1 developers are in high demand. We all have our Magento 1 work to do, and we all seem to be getting even busier.

So, let's say Magento 2 is completely feature/architecture frozen by the end of March (a date I made up, by the way, just as an example). The Magento 2 release date is Q4 of this year. For this example, we'll say that's on December 31st, 2015.

That works out to 9 months. 9 months to prepare a complete training program or certification exam, release it to the community and for Magento 1 developers to complete it. Split that time 50/50, and let's say Magento Inc spends 4.5 months preparing this information, giving Magento 1 developers 4.5 months between when the training is available and when Magento 2 goes live.

How many of you, while still completing your Magento 1 work and maintaining your other commitments could go from 0 knowledge of Magento 2 to ready to take and pass a certification exam in 4.5 months?

I'm sure there's some of you saying "Oh, yeah, that's more than enough time". And that's awesome. You'll be one of the trailblazers on Magento 2, and that's something the community really needs. However, that's not what the average developer is saying.

Here's an example - there's less than 450 Magento Certified or Certified Plus Developers in the United States. Let's say 20% of developers feel they can get trained up on Magento 2 and certified on it in 4.5 months (and from the conversations I've had, I think 20% is probably high). That means that if they all are able to achieve that, that gives the entire US market only 90 people who are able to become Magento 2 certified by launch day.

No one is really sure yet what user demand will look like - Magento 1 will continue to be supported for quite some time, so many merchants will stay on or implement on Magento 1 in 2015 and 2016. But there will also be quite a bit of buzz and excitement about Magento 2, and I have a feeling that there are many people on aging platforms that are waiting for Magento 2's release before they make the switch to Magento. Add to that how many merchants plan major projects or migrations for January, and you can easily see how there will be significantly more Magento 2 implementations than official trained/certified Magento 2 developers in December or January.

So, as a community, how do we handle that? How do we make sure we're not only preparing ourselves for Magento 2, but also making sure that merchants and employers are able to identify those developers who really are prepared for Magento 2? I don't think anyone has a practical, workable solution yet, so I'm curious to see what the community thinks and what we can come up with as we discuss this.

What is new in Magento 2 with Tobias Zander @airbone42 at #phpworld

What is new in Magento 2 with Tobias Zander @airbone42 at #phpworld Ever since October 4th of 2013, the Magento 2 team has been pushing weekly updates to GitHub.

Magento2 is built on HTML5, CSS3, jQuery, LESS, requirejs. This means that Magento 2 won't support IE8.

Layout configuration is changing in Magento 2. Breaking the XML files into multiple files to make it easier to find what you need to change.

Unlimited theme fallbacks are coming in Magento 2.

Magento 2 currently has support of PHP 5.4 & 5.5. PHP 5.6 support will be coming soon.

Magento 2 follows PSR-0, PSR-1, PSR-2 and uses real namespaces.

XSD support for XML files is coming to Magento 2.

New file structure in Magento 2 so that modules have one folder, no need to install modules into multiple folders.

Magento 2 has Composer support. You can install Magento 2 from Composer.

Added the Service Layer to make things more reusable and easier to extend. More details at https://alankent.wordpress.com/2014/05/22/magento-2-service-layer/)

Dependency injections and interceptors are coming to Magento 2.

There’s great improvements coming for admin users in Magento 2 as well - adding products is MUCH simpler.

Magento 2 consists of 1.5 million lines of code currently. 2,600 integration tests. 7,600 unit tests. Not complete code coverage, but significantly better than Magento 1 which shipped with no coverage at all.

100 JS unit tests, over 100 static tests including PHP mess detector. 9 performance tests.

phpworld keynote: Turning Your Code into a Company: The Parts They Don't Tell You by Luke Stokes

Turning Your Code into a Company: The Parts They Don't Tell You by Luke Stokes - @lukestokes. Founder, CTO of Foxycart. Founded in 2007. Goal was to provide income for his growing family.

Starting a company is hard - it took 4 years of working full-time and then building Foxycart in the evenings and on the weekends, working as much as 10 hours on Saturdays. Don't believe the hype on TV - Shark Tank isn't real life. It's hard to build a company. But it's worth it!

A human being should benefit from what you do as a developer.

There's no such thing as an overnight success.

Getting "funded" is not a destination.

Build a business, not a startup.

Think about what do you believe - what will keep you motivated at 2AM?

Your focus has to be about the customer.

Belief that commerce technology makes the world a better place kept Luke going as he built FoxyCart.

Coders are insecure - we have a habit of hiding our code away. Don't be! Every failure is a step closer to success.

As a developer: solve problems, add value, keep learning.

Listen to your customers!

Motivation - passion is required, but it isn't enough. Who will talk you off the ledge? Think about paying customers. Encourage each other.

There's no glamour at 2AM - building a business is hard.

Solve real problems - if you'd pay for it, others might also.

How did Luke get to where he is with Foxy cart: slow and steady, grow the team with awesome people, focus on the product.

Focus on the product. Build a solid development team, not a sales or marketing team early on.

Fear can be healthy - don't make the jump to full time with your new company until revenue is a nice, consistent positive number.

There's great tools out there to help you build your company now. Check out http://bit.ly/foxytools for some recommendations.

php[world] opening remarks

Eli is opening up php[world] with the opening remarks. Welcome to the first PHP[WORLD]!

The goal is to bring the entire PHP community together.

Get out there and talk to people from other platforms/communities that are here today.

Twitter hashtag is #phpworld

WiFi is Sheraton_Conference, user: php14, password: sheraton14

Game night tonight, open source hackathon tomorrow night.

Open spaces - sign up for a slot. You don't have to be an expert on the topic, just talk about something you're interested in.

Please use join.in - https://joind.in/event/phpworld - provide feedback on all of the talks.

Visit the User Group Alley to learn more about some of the user groups that are represented here.

 

Saving time and money with Vagrant - Meet Magento New York 2014 Talk

This is the Meet Magento New York 2014 talk "Saving time and money with Vagrant" with Tim Broder. Vagrant lets you QA server configurations for your Magento site just like you do your code.

Vagrant lets you setup a dev environment for a new project in 5-6 commands and about 10 minutes.

Everyone benefits from Vagrant - solo developers, startups, agencies, large scale businesses.

Vagrant helps with complex stacks - such as using Solr, Varnish, etc. - getting it all setup in one Vagrant box saves a lot of time.

Chef, Puppet, Docker, Ansible and Salt are all options for provisioning Vagrant boxes.

Slides, examples and much more are available here.

Magento Security and Us Meet Magento New York 2014 Talk

This Meet Magento New York 2014 tech track presentation is Magento Security and Us by Lee Saferite. Limit your attack surface - don't open unnecessary ports, and ideally use a server in a different subnet from your web server to provide SSH access into your site.

External log file storage - if your server is compromised, you can't trust anything on it. Transfer logs to a 3rd party service or another server in realtime.

Backup security - your backups contain all of your data - it should be secured well.

Your Magento site shouldn't have any writable PHP code - only var and media need to be writable, and they should only be writable by the web server user.

Magento extension authors should define specific, granular permissions in their extensions so that Magento site owners can restrict who can do what.

Don't install extensions directly from Connect - you need to run a code review/security audit first. You also don't want extensions that automatically update, because you don't know what their code might do.

If you're online for long and you're selling online, you will be a target, and at some point you will be compromised. Have a written incident response plan for what needs to be done when this happens so that you're prepared for it.

 

Magento: A Journey Down the Open Road Meet Magento New York 14 Talk

This talk is "Magento: A Journey Down the Open Road", a Meet Magento New York 14 Talk by Yoav Kutner. It was surprising to see how many people were using Magento for non-eCommerce purposes.

Based on this experience, OroCRM was written with a layer between the app and the framework - Oro Platform.

Oro Platform has ACL's built in, also Grids and reports and a workflow system.

The technology stack for Oro Platform is great thanks to it's fresh start. PHP >= 5.4.4., Symfony2, Doctrine, PHPUnit, HTML5, CSS3.

Oro Platform is focused on quality - 65% unit test coverage, code standards, and more.

Existing CRMs didn’t fit for eCommerce - is a shopping cart a lead? Opportunity? That's why Oro CRM is focused on being an eCommerce CRM.

Oro CRM collects data from multiple channels and segments customers.

Don't just want to look at how many people add items to the cart - we want to know who added items to the cart. Segment to specific users.

OroCRM integrates with Magento, Amazon and eBay.

 

Hacking Magento: Creating an HTML5 Canvas Customizer on Magento Bundles - Meet Magento New York 14 Talk

This Meet Magento New York 2014 talk is Hacking Magento: Creating an HTML5 Canvas Customizer on Magento Bundles by Philip Jackson. When consumers control the features of a product, they have control over the process.

Customization vs personalization: customization is unique, has unlimited choice, is made to order. Longer turnaround, lots of planning. Personalization is prefab, limited choice under an existing SKU, shorter turnaround, could be purchased on impulse.

In the next 5 years, 20% of eCommerce transactions will contain a customization step.

In the 1590's commerce had a large shift with market segmentation and emergence of customer choice. Niche products, especially in home appliances.

Customers are more likely to engage with a brand and convert when customization is available. The time spent in customizing a product develops a connection with the user, which makes them more likely to order.

Current generation product customizers should use HTML5 canvas that generates a PDF for web-to-print.

Raphael and Fabric.js were evaluated - Raphael was built in 2008 and not very well maintained, so Fabric.js was used.

Update: Philip has uploaded his slides to Slideshare.

 

Varnish Cache and its usage in the real world Meet Magento New York 2014 Talk

This talk at Meet Magento New York 2014 is Varnish Cache and its usage in the real world by Ivan Chepurnyi. Varnish is a way to accelerate sites such as Magento websites by caching as much content as possible.

Varnish is controlled by VCL - the Varnish configuration language.

vcl_recv is the entry point for a customer request, and you can detect a customer segment based on cookies and serve a specific type of content for that segment.

vcl_hash builds the cache hash for a page - it gives the possibility to serve different content based on customer device type, detected customer segment, etc.

Secret of successful Magento Varnish integration is in 4 key components: headers, cookies, Javascript and browser storage.

Varnish is all about communication via headers - specify cache TTL from Magento in headers.

Cookies connect dynamic actions, shopping cart, etc., in Magento and Varnish.

Javascript is used to serve dynamic content via AJAX calls.

Browser storage should be used to minimize AJAX calls.

There's a framework that already caches basic pages in Magento, and you can easily add your own page type. Ivan has released the code on GitHub at https://github.com/EcomDev/EcomDev_Varnish

 

Returning to my Geeky Roots in the Magento Community

Magento Imagine

Over the years as I've grown Creatuity from a single developer (myself) to a company employing over 25 people, my average day has changed quite a bit. Originally, I did everything - sales, billing and all of the development work. With my background in PHP development (I've been working with PHP for over 15 years - I have to catch myself when I talk to our new developers and development interns, because I have found myself saying things like "Back when I started, we didn't have all these object oriented features in PHP!"), the past 3-4 years as Creatuity has really grown have challenged me. I've found myself spending less and less time developing and writing code and more and more time doing things I had never done before that took me well outside of my comfort zone. It's been a great experience - I've learned more about business, management, hiring (and firing, unfortunately), marketing and what it truly means to be an executive in the past few years than I ever imagined I'd learn in a lifetime. I've also gone from working by myself to having an awesome team of developers, designers, writers, account managers, interns and other managers to work alongside. I'm incredibly proud of where the Creatuity team has taken us over the past 6 years.

Recently, I've found myself in an interesting position - I've stepped back from the breakneck 90+ hour weeks, working from the moment I woke up to the moment I finally crashed in the middle of the night on pushing Creatuity from a startup to a successful ecommerce development agency. We've grown to the point that I can allow myself a slightly less hectic schedule and know that our team will still work together to keep us moving in the right direction. As this has happened, I've been asking myself the best way I could spend the bit of additional time I find myself with.

The answer, so far, has surprised me a bit - while we have a team of Magento Certified Developers at Creatuity that do all the heavy lifting on our client projects, I find myself wanting to get back into development. And wow, has it changed. As I became more of a manager and less of a developer, I fell out of touch with the Magento development community; I didn't have or take the time to pursue Magento Certification or a spot on the Advisory Board when I was asked about that several years ago. To put it another way - the last time I was spending all of my time on Magento development, implementing Magento sites and customizing them myself as a developer, GitHub - where so many community members freely share their Magento work now - was so new that I didn't know of a single Magento developer using it. Most of us were still using svn, and there were no certifications, no study guides - learning Magento was a completely different experience.

In a lot of ways, these changes have put me off from getting back into the Magento development community - I feel somewhat like an outsider and fairly overwhelmed, and coming from my position as CEO of a Magento Solutions Partner, I am always worried it will seem like an intrusive attempt at social marketing by a company that should know better. However, I've been keeping up with quite a few Magento developers on Twitter and I'm slowly but surely sharpening my Magento development skills back up. Thanks to some awesome community members like Kalen JordanDaniel Fahlke, Phillip Jackson and Vinai Kopp, not only am I beginning to feel at home in the Magento dev community again, but I also have found some interesting opportunities surrounding my interests in writing, continuous integration and continuous deployment where even with my fairly rusty "hands on" Magento skills, I can contribute back to the community.

I'm renewing my interests in other areas as well - travel, craft breweries and writing in general - so expect to see a wide variety of topics from me here and on Twitter, but first and foremost, expect to hear about Magento and Magento development quite a bit. So, for my less geeky friends and family - my apologies, it's about to get pretty technical in here. But hey, you can always keep up with my less technical goings-on via my Facebook and Foursquare accounts. And to anyone in the Magento dev community reading this - send me a quick hello on Twitter and let me know what you're working on. I'd love to help out!

With special thanks to Nathan Castle for taking the excellent photo from Magento Imagine and releasing for the community to use via Flickr, which I've used as the cover photo for this post. Certainly the coolest photo I've seen of a large gathering of Magento geeks.