Sometimes you have to take a break.
No matter how much you love what you do, but studying something new is always exciting and funny. As a developer, I know that is the best part of my job: when you are quite confident with a certain technology… well, maybe it’s time to learn something new.
Obviously, I am not leaving Laravel and its fantastic community. However, I decided to dedicate a slice of my time to learn a totally different stack: from LAMP, to MEAN.
Probably you already know it. If not, MEAN is an acronym that stands for
I don’t feel like someone can stumble upon serious issues while installing another PHP framework, so I decided to change the entire thing.
I just bought “MEAN Web Development” by Amos Q. Haviv from Packt Publishing. I will report here, on my blog, all my thoughts about this new path, eventually along with something else if I will find something interesting.
My learning path will be the following:
- learn the NodeJS basics;
- learn the Express basics;
- learn the MongoDB basics;
- learn the AngularJS basics;
- learn how to create and configure a basic MEAN VM on Vagrant;
- extra: learn something about Docker;
My primary focus will be on backend technologies and honestly, I can’t wait to reach the MongoDB part. We are in 2015 and I have never experienced the NoSQL paradigm. That sucks.
Let’s see what happens.
Update #1 : June 13th, 2015
Right now, I have just finished the second chapter. The first one is dedicated to the very basics: installing NodeJS and some first tests with MongoDB.
The book is awesomely clear: I love that writing style in IT books.
The second chapter is about NodeJS in a more “deeper” way. It deals with JS event-driven programming in detail, and then explains how to create some really basic server (and a little, little app) with Connect.
Can’t wait to start the 3rd chapter, about Express!
Update #2 : June 14th, 2015
Everything great with the Express chapter and the MongoDB one. A perfect introduction to both concepts.
Now I am a little stuck with Vagrant. I tried this suggested box, but got many issues and problems when using Yeoman. Maybe it’s too early. I will try a different approach: I will use the VM without Yeoman and other solutions (meanjs.org and mean.io). After all, right now I am working only with NodeJS, MongoDB and Express.
No frontend. Let’s see what happens.
Update #3 : June 15th, 2015
I found many issues, related to permissions and users, with arvindr21/mean-box. So, I decided to make a new Vagrant VM starting from the very basic (a classic hashicorp/precise64).
I solved many of these issues, but when trying to install meanjs.org or mean.io projects it failed. Sometimes on a specific package, sometimes for the tar tar.unpack untar error. Sometimes I can successfully scaffold the application using Yeoman, but then, during the npm install, something goes wrong.
Many people explain this with “vagrant vm related problems”. I don’t know: however, many problems related to the virtual machine utility are a real thing. In the next days I will try to use my VM with some basic setup. If it will work, I will publish it on github and here. 🙂
Time to learn something more about Docker!
Update #4: June 17th, 2015
Ok, quick update today.
Here’s my first contribution about MEAN and Vagrant. This is a very basic first proposal of a Vagrantfile with two separate provision files.
I will talk about it soon in more detail
Until then, you can find it here on Github.
In the following list you will find some interesting article I found about MEAN (or about its single components) around the internet. Hope they will help you. They are not only “MEAN is cool m8” articles, I will hear the opinions from both sides.
- https://www.mongodb.com/mongodb-and-mysql-compared (a good explanation about differences between MySQL and MongoDB);
- https://www.mongodb.com/presentations/mongodb-craigslist-one-year-later (a cool talk from the Craiglist guys about MongoDB);
- http://www.sarahmei.com/blog/2013/11/11/why-you-should-never-use-mongodb/ (an interesting point of view, for some specific situations, about MongoDB usage);
- http://java.dzone.com/articles/when-use-mongodb-rather-mysql (with an cool practical use case example);