Posts tagged mean

Too Big… Fail!

On June, I wrote a post about changing my work stack to something different. My purpose was, as always, to learn something new.

I was really fascinated by the M.E.A.N. stack (and I still am!), but I did several mistakes while studying it. Something went wrong and I abandoned it. It was strange: starting big, finishing poorly.

So, as a result of this fail, I decided to write a post to put down in black and white what I learned. Maybe it will be useful to someone.


One Item at Time, Please!

We are talking about an entire stack here. In this context, a stack is, by definition, a set of software subsystems or components needed to create a complete platform*. Every single item, this time, was totally new for me. I tried to study them all together, learning something little about every single element and then making a first, brutal and rudimentary tentative to build an app with it.

Everything became sloppy and confused, immediately.

What I learned: if you are studying a stack, the best way to do things is to explore it in its entirety, but only on a very high level. Right after, choose the first item, learn a good amount of things about it and then go forward.

Let’s make a simple example. As many of you already know, I am absolutely in it with Laravel. So, the best thing for me would be try to study something I can easily integrate with it. Angular is a frontend framework, Laravel a backend one. A good choice would be to study Angular first, and after that learning how to integrate it with Laravel. Finally, I would go forward to other stack elements with a greater knowledge of it all, including integrations.


The “Learning Fury”

If you read the previously mentioned post, you will notice that I studied every single day something new on the book. Cool, but I was under the effect of what I call the “Learning Fury”. I leaved and ignored everything I was doing to focus all my  energies on a single thing. This time, the “single thing” was the M.E.A.N. stack.

I was terribly wrong, because after the first 72 hours the effect vanishes.

What I learned: don’t fall under the “Learning Fury” fire. You can’t master a new technology in days or months. If you want to study it properly, take your time and be patient. Every developer is often lazy and impatient. A good developer is someone who learned to become patient and active.


What Happens Now?

Well, I think I will try to study AngularJS first and integrate it with Laravel, creating a sample one page app. Then I will think about including a new technology in the stack (MongoDB for persistence) and finally I will switch from Laravel to ExpressJS.

Let’s see what happens 🙂 Obviously, I will post other updates here.


 

* Wikipedia definition for “Solution Stack”

Changin’ the Stack

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

  • MongoDB;
  • Express;
  • AngularJS;
  • NodeJS;

I don’t feel like someone can stumble upon serious issues while installing another PHP framework, so I decided to change the entire thing.

3285OS_MEAN Web Development_cover

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.

Cheers!


Useful Resources

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.