Dealing with performance is a tedious task all programmers face. It can be particularly exciting because it allows programmers to show their algorithm skills. The drawback is that it can easily lead to over-engineering or time wasting on simple tasks.
I often hear that CoffeeScript isn’t that great, that not having parenthesis is not good for readability, and so on. I think that it mostly comes from the way people write CoffeeScript, rather than the language itself.
CoffeeScript allows you to write easy to read code in a fast way. It’s close to pseudo-code, it strips everything unecessary and it’s very good at highlighting wrong code designs. Specially, because it’s based on indentations (by the way I recommend four spaces long indentation).
This article will give you hints on usual mistakes and will point you out some generic programing pitfalls, like nesting too much code.
Years ago, I was a PHP developer. I used to build apps and and websites for my classmates and communities I was part of. When I get my first job (a non technical one), I was missing programming. So, I started a webradio project called Dolebrai. I worked on it with friends who were the maintainers of Savonet/Liquidsoap a sound streaming framework. When I submit my first version of the website, David, one my two mates, was satisfied by the site but not by the code. He didn’t approve the choice of PHP as programming language and suggested me to look for alternatives like Python or Ruby.
Programming single-page applications is great to build modern web application. Publishing NPM packages are awesome if you write Node.js softwares. What’s the link between this two subjects? Both require a complex tool chain (asset managemenet, CSS-preprocessor files compiling, test preparation, JS files concatenation, etc.) to publish your software. In this post, we are going to have look to a new trend: the task runners. They are the new generation of Makefiles for the JS world.
Deploying web applications can be done on numerous hardwares: virtual private server, dedicated server, mega big cluster, raspberry pi… On every single of them applications are deployed the same way and offer the same capabilities. Though, they could adapt to the hardware on which they are deployed. They could do less and perform better on small micro-boards like the Raspberry Pi and they could propose more features on a Octo-Core Xeon server.
Today, the practice to host his web services on one’s own hardware is common among tech people. They can use personal CLI, home-made scripts and web apps to store and manage their data in a trusted location. This way, they gain productivity and improve their privacy. Unfortunately managing one’s home server requires time and efforts and is not feasible for non technical people.
Recently I read a blog post from Pascal Finett explaining how the best agile process could be a killer if it was applied too rigorously, specially to small organizations like startups. This was, during my vacation. a good time to step back and reflect on how we are organized at Cozy Cloud. Moreover, in april I gave a talk @LyonJS about this subject and it was a pretty success (see statistics on SlideShare) . For these reasons, I would like to share with you how we do things @ Cozy. It is greatly inspired by agile methods but to be frank, we don’t really stick to the SCRUM rules: we are organized in a Light Agile fashion.