Magento Developers Paradise 2011 - Day 1
Monday, 06 June 2011This weekend the Magento Developers Paradise 2011 started on Ibiza. It's the event for Magento developers world-wide, and - with a team of 3 men - we're excited to be here. Here's an oversight of the first day - Sunday.
Pre-party on Saturday
Actually the night before, at 8 pm, the event started officially with a small speech of Thomas and Yoav. There was time for some champagne and some social chat - for some of us a quiet night with a regular bedtime, for others a reason to go out drinking to come back at 4 am. Who was that guy at the first session at Sunday who ran off to the toilet every 10 minutes?
Keynote of Yoav Kutner
Sunday at 09 am the first session started - a keynote of Yoav (Magento CTO). He started with giving a general intro on the growth and popularity of Magento - there are now 280+ employees working for Magento, while Magento Enterprise and Professional have been sold over 1000 times. Magento is being googled more than the word e-commerce itself, which shows the huge popularity of Magento. And because of this success, there is already a shortage of good Magento developers - in a certain way, this means more business, which is good. But it also shows there is a problem - perhaps due to the complexity of Magento itself.
Yoav also talked about Magento Enterprise: Version 1.8 seems to performance 200% better compared to version 1.6, which shows that with Magento Enterprise you indeed get a performance gain. Some notes were also made about Magento CE 1.6 which is at the moment still in alpha: Some of its new features include the introduction of a new RDBMS with support for other databases then MySQL, an order status widget (available when using guest checkouts), RMA functionality, and a thing called the Minimum Advertized Price (MAP) which allows you to hide the price of products until the checkout is reached, or to make the price only visible through some kind of modal popup.
Funny enough Yoav also mentioned the Add Exception functionality that exists for Magento themes, but when looking for a response who knew about this feature, there was actually little response: Hopefully enough people know about this feature nonetheless. The talk of Yoav also covered Magento Go, with new drag & drop features for the theming design.
Finally but certainly not least, Yoav gave a short preview on Magento 2: It will replace ProtoType with jQuery, it will include automated testing procedures (like unit testing), it will include a graphical template editor (like now already incorporated in Magento Go), it will include support for Oracle and Microsoft SQL (more on this later in this blog), the web API will be improved, and much much will be documented by Magento. Less JavaScript will be used - for instance in the catalog when using a simple Add-to-cart functionality. It all sounds very exciting. One major note was that Magento 2 will not be rewritten from scratch, but will be a refactoring instead: This will ease the transition to Magento 2 for the core team but aso developers (like us). Last but not least, Magento 2 (codename M2) will be faster with an expected 20% performance increase (and counting).
Andrey Tserkus - RDBMS
After the keynote of Yoav, Andrey gave a good and technical presentation on the RDBMS system of Magento: Through this new architecture popular databases like Microsoft SQL and Oracle will be supported by Magento - and therefor generate more business. The migration is troublesome however: Different database-systems apply different rules, and therefor pieces of Magento code need to be rewritten: For instance, the LIMIT statement only exists within MySQL, while Oracle needs to use a clever SELECT-statement by using the primary key to identiy which subset of records needs to be fetched. Other weirdness includes naming schemes in Oracle that only allow for tablenames up to 30 characters, while MySQL allows a length up to 64 characters.
The Magento codebase will be rewritten in the upcoming releases to allow for more flexibility: The pieces to support Oracle and Microsoft SQL are already there, but the Database Abstraction Layer was so far only made compatible with MySQL. Now the work is finalized. Besides dealing with different syntaxes across database systems, the refactored DAL also replaces the current installation / upgrade procedure. For instance, instead of a standard CREATE-statement to create new tables, the class Varien_Db_Dld_Table is used instead. The only downside is still that Magento extensions (at least, the ones that include SQL code) will need to be rewritten for the RDBMS to be fully implemented.
Vitaly Korotun - Modifying the checkout workflow
Vitaly started off with a hilarious set of slides, among which a comparison between the various types of programmers - among which the "smart inventor" should be the ideal. After this, Vitaly made an important point: Because Magento is complex, a project could easily become too complex too handle. The simple way to deal with this is, is to be modest with functionality. Customers often give complaints on performance or pending bugs, or ask for new features that are supposed to be simple. All this requires more time if the project itself becomes too complex. Settling down for a minimal set of features might make this easier to deal with.
Referring to the three-headed beast of Magento (performance, security, data integrity), Vitaly pointed to the OnePageCheckout of the Magento core: It's serving many people well, but has some pitfalls as well. Too much JavaScript is used, and for every step in the checkout two HTTP requests are needed. The procedure of storing data in the database is also complex: First a new order increment ID is fetched, then the product stock is looked up, and only then the order is saved. This is fantastic for stores that deal with numerous orders per second, but is actually overly complicated when dealing with smaller shops. Instead of handing over the solution, the point Vitaly made was that Magento is flexible enough to accomodate a different solution - perhaps through a new extension built by a third party developers.
NBS Systems - Xen virtualization
Sponsor NBS Systems (Philippe Humeau & Emile Heitor) had a presentation on scalable performance using virtualization. While scaling hosting resources on a regular basis (like Christmas) is easy, there are a lot of other situations where the needed resources are hard to predict: For instance, a marketing event might increase traffic, but the marketing event might not have been communicated to the technical staff. Scaling should be on a short term basis and be effectively immediately. At NBS, they are working with virtualization as platform (using Xen virtualization and HP hardware), and currently scalability and virtualization really work nicely together. Specifically for Magento, other tricks are included as well into the VM itself, like Nginx as webserver, using a separate media-server, applying common performance tricks, memcache, etcetera. More tricks include using a shared DocumentRoot for clustering purposes (using various filesystem syncing solutions like NFS, rsync, GFS, drbd and Lustre).
Nickolay Tischenko - Magento Mobile
Being the last session of day 1, Nickolay gave an overview of Magento Mobile. Android is currently the most popular mobile OS, and expected to cover 60% of the market in 2012. The problem is that websites (including Magento shops) often are optimized badly for mobile devices. While the UX (user experience) should be optimized (a site should be fast, with an optimized design, appear securely, with lots of features, but still easy to use), with different themes per different mobile device this is hard too maintain. Using the app-based Magento Mobile lightens this burden: Different screen-resolutions are defined in the XML-layout and offer for various layouts - limited features for small screen devices, more added features for bigger devices like the iPad. Even cooler features are based on the capabilities of the device itself: The iPhone is able to react on shaking the device in your hand, and this is picked up Magento Mobile to reset filters in the category pages. Besides all these neccessary features, Magento Mobile is actually more popular due to its integration with social media like Twitter, LinkedIn and Facebook.
