Contributing to MooTools

Written By Arian Stolwijk, on Monday, March 18th 2013, 3:33pm

Sometimes we get requests from people that want to contribute to MooTools. In this post I would like to give some pointers how one could help, but first I’ll tell how I got involved in the MooTools project.

It was late 2009, the MooTools Forge (plugin repository) was just released, and I was learning JavaScript and MooTools by creating many plugins. This is already the first form of contributing to the MooTools project: releasing code that might benefit others. The cool thing about this was that I also helped other people on GitHub that released their MooTools plugins, and thanks to this interaction I learned even more.

At the same time the MooTools Core developers were building MooTools 1.3. I closely followed the developments and noticed that a few things were still missing. One thing that seemed easy was the documentation. So, in some spare time I dove into the MooTools source code, looking through the commit history to see what changed, and update the existing MooTools 1.2 documentation accordingly. If I remember correctly a pull request on GitHub at that time was basically a private message to the MooTools devs, so it was exciting whether my changes would be accepted. Fortunately contributing to the documentation is always helpful, so my changes got merged!

Because MooTools 1.3, at that time, was fully under construction, there were many loose ends that were easy to fix. I got invited to talk to the MooTools devs on IRC, and got involved more and more. So I started working on MooTools More 1.3, which was something else that was not updated for the new 1.3 release. This was a great way to learn how the internals of MooTools work: we had to look into MooTools Core to know how to effectively update the More code, or even fix things in MooTools Core, but at the same time it wasn’t too difficult yet.

Later that year I went to the MooTools Hackathon in London, where we finalized the MooTools Core 1.3 and More 1.3 releases which were released later that year. I also got a nice place on the MooTools developers page!

So how does my nice story tell you how to contribute? Basically what I did is look if something was blocking the release for MooTools 1.3, went ahead and fixed that, just by spamming the MooTools devs with new pull requests.

The most important point is direct communication with the developers. This mainly happened on IRC, but is still valid. Join #mootools, say you want to help out with something, or did something, explain again why we should merge your pull request. This is really the best way to get started. If you don’t directly see a loose end where you can help, the MooTools developers probably know something interesting for you.

Currently there are a few aspects where you can help. If you have followed the development on GitHub you might know about prime, elements, agent, moofx etc. There is still some stuff (especially website/documentation related) to be done for a real release. See also the roadmap on the Prime Wiki. But it’s also perfectly fine if you like to work on the current version of MooTools Core. The idea is to release a MooTools 1.5 with mostly bugfixes, and a few deprecations. The biggest chunk of work for 1.5 is a review of bug reports and pull requests.

If you’re not really comfortable contributing code or documentation directly, writing blog posts, tweeting about MooTools or helping other people on the MooTools Mailing List, #mootools on IRC or stackoverflow are really great ways to contribute too.

I would like to conclude with the benefit of contributing to MooTools or Open Source in general. I’ve learned so much and you get the opportunity to do things right. Apply testing techniques, try new technologies, learn more than you want to know about IE7 or other interesting browser behaviors. The things I learned by contributing MooTools simply made me a better developer.

Edit: we created a wiki to collaborate on design and websites for MooTools projects on GitHub. So if you’re into that kind of thing, this is another great way to contribute!

MooTools 1.2.6 Released

Written By Cristian Carlesso, on Tuesday, February 19th 2013, 12:12pm

This is a new maintenance release for the old 1.2 series. The new ECMAScript 6 specification has a proposal for String.prototype.contains that unfortunately conflicts with the MooTools implementation of contains.

Firefox 18 already ships this new version of contains. This is not a problem for MooTools 1.3.x and onward, but this breaks MooTools 1.2.5, especially the code inside the MooTools framework that utilized this method, like selectors.

This new 1.2.6 release solves these issues by overwriting the native version with the MooTools version of String.prototype.contains.

For the next MooTools version, 1.5, we will use the standard ES6 version. If you rely on the old behavior (which is only when you use the second argument), it will be possible to use the old version through the compatibility layer.

Book Review: Découvrez MooTools - Un framework JavaScript pour des sites dynamiques et interactifs

Written By Jean-Philippe Déry, on Tuesday, December 4th 2012, 5:26pm

Until recently, French literature about MooTools was pretty much non-existent. Thanks to Xavier Lecomte, now there is a very good book about MooTools in your native tongue that will get you up to speed in no time.

Découvrez Mootools - Un framework JavaScript pour des sites dynamiques et interactifs (Discover MooTools - A javascript framework for dynamic and interactive websites) is aimed at beginner and intermediate developers who wish to create spectacular effects using MooTools. This book does not go deep into topics that would likely only confuse you, but instead it keeps everything simple and provides many clear cut examples and illustrations that will facilitate your understanding. Priced at 12.5 Euros (~15$) it’s a must-have if you’re looking to learn MooTools.

As the author says, it does not cover the entire framework. Instead, Xavier Lecomte selected the most commonly used MooTools pieces and explains them in detail. Throughout this book, you’ll learn how to create classes, handle DOM elements, create AJAX requests and create effects using Fx classes. The latter is probably the most discussed topic of this book as it goes through almost every Fx-based class in MooTools. When it comes to Fx classes, the most complex part is probably options. Although they are well named, they could be difficult to grasp, especially to the novice user. This book makes this type of functionality very clear by explaining all the options for each class discussed, at times, through the use of illustrations. The Fx chapter wraps up with a complete example, where the author builds a pong game using tools explained throughout the chapter.

Finally, the book discusses work done by the MooTools community. Although it does not go deeply into each project (most of them would require a book on their own), it gives a good idea of what MooTools is able to offer.

To conclude, if you’re a native French speaker interested in learning MooTools, this book is a must-have, especially at that price. I hope Xavier Lecomte will continue writing about MooTools, the in-depth detailing of this book is amazing and will certainly benefit many.

Moobile 0.2 Released

Written By Jean-Philippe Déry, on Saturday, November 3rd 2012, 10:16am

I’m very happy to present the latest version of Moobile. This release focuses on stability and building solid groundwork for the future. This includes, for instance…

iOS 6 Theme

The iOS theme has been updated to closely match the recent changes in iOS 6 for both iPhone and iPad. This release also addresses the updated border-image syntax that casued issues with buttons inside bars or alerts. Finally, elements that were not hardware-accelerated (using only translateX or translateY) are now as smooth as they should be.

Android Theme

This release includes a basic Android 4 theme. This is still a work in progress and, since my testing devices are limited, I cannot guarantee it will work well on all devices. Any tips you can share about improving speed on Android would be greatly appreciated.

Transitions

Two more transitions were added: Cover.Page and Cover.Box. They aim to replicate modal view transition on iPad. The cover transition, using the Android theme, has also been customized to match the native Android look and feel.

Simulator

The simulator’s UI has been improved. It’s now less intrusive and provides a zoom functionality. Keyboard shortcuts were also added; you may now use the arrow keys to zoom or rotate. Settings (such as orientation, zoom and options) are now saved on a per-device basis so you won’t have to zoom out every time you use the iPad device on your laptop.

The Boiler Plate

Touch icons and startup images for all sizes have been added to the boiler plate.

Moobile.Component.defineAttribute

A minor improvement, but an improvement nonetheless. For those who were tired of writing data-option-style-name, data-style is the new alternative. It’s now possible to specify a behavior for certain attributes on a component thanks to the Moobile.Component.defineAttribute function.

The Future

The next release will geared towards adding content. Tab views, split views and on-off switches will be included in the new version. I’m also planning to improve the documentation, add more examples and make things easier to understand.

Requests

If you have any requests, you’re welcome to contact me through the GitHub page. I’ll be glad to listen to your requests and, hopefully, improve your experience working with Moobile.

Moobile is developed by Jean-Philippe Déry and is hosted on moobilejs.com

JavaScript Challenge #3: Review

Written By Christopher Pitt, on Wednesday, August 22nd 2012, 5:54am

The third JavaScript challenge showed us what it would be like to draw with canvas. The challenge was open ended, in so far as there were no restrictions as to what drawing technology could have been used, but everyone just went straight for canvas.

Read the rest of this entry »