Ramdajs: pros and cons

ramdaFilled_200x235

Ramda is a JavaScript functional programming library. It exposes a set of utility functions that use functional programming jargon and are composable.

My quick take on it is:

Pros

  • Writing compact code
  • Easy to build complex functional pipelines

Cons

  • Steep learning curve
  • Complex pipelines may become hard to read if not accustomed with the functional programming jargon

All in all I’d suggest to use it if the project you are working have sections that would benefit from immutability and functional programming (ie: redux reducers). I would not recommend it if you don’t have time to get use to it or you may end up mixing functional and imperative programming.

Consistency and small steps

Lately I’ve been reading many articles and blog posts on how people find ideas and discover new things. Or how they improve productivity and effectiveness.

All of them seem to have a common pattern: consistency and small steps.

Building habits requires a lot of consistency and many small steps.

Doing great job requires multiple cycles of: studying, implementing and measuring. The smaller the steps the faster the cycle. Making this consistently will give you a faster feedback to adjust and improve (and maybe stumble on something new).

Focus on few things and say “no” to others (consistently). Reflect often (small steps) on why you are doing something and decide to keep going or move on.

Maybe being consistent and doing small steps are not the only things that will give you better ideas or make you more productive, but it still seems something important to keep in mind.

People interactions

Disclaimer: This post has been waiting as a draft for nearly 2 years. It was time to hit “Publish” 🙂

people_interations

Interacting with other people requires effort. Relations need to be grown and everyone interested needs to put in some energy.

As for lot of other activities that require energy, you should choose where it’s better to invest it. Remember that this decision is your own (like any other after a certain age 🙂 ) so you should be aware of where your are spending it.

In my opinion the best way to spend energy in groups of people (2 is a group to me 😉 ) is when there are two things:

  1. feedback: even if sometime can be hard to take it, it’s better to have someone on the other side who gives it
  2. values: having common values means you have a solid base to build on and to fall back when something is not working

It may seem not enough but to me it’s a lot!

 

Open, free and with no warranty

linux

The article The kernel of the argument has been published on November 5th on the The Washington Post online journal.

It’s about linux kernel security… but also Linus Torvalds and the warranty that comes with the linux kernel. I really suggest you to read it.

There are three main themes in the article:

  • first: the linux kernel “warranty”
  • second: concerns about the kernel security
  • third: the way Linus Torvalds behaves towards contributors

From my perspective they are reported in a way that describe open-source software as insecure and lead by despotic leaders, making the linux kernel an example of that. I don’t believe this is true and making assumption like that is a way too generic approach to the problem of secure software.

The first point seems somehow misinterpreted. It seems that who is contributing and building the linux kernel should be legally responsible for it, when it’s clearly stated that it comes with no warranty. The linux kernel has always been open-source and free for anyone to use or modify.

Making open source software the base of your company is a choice. With that choice, as with using closed-source software, comes a trade off. Usually with closed-source software you are outsourcing knowledge on how something works. With open-source software you are betting on the opposite: you will always have access to the code you use.

I see advantages in both sides. With closed-source software  you don’t need to have people in house, you can have external support, etc. With open-source software you don’t have any fee, you can get help from a community or hire people already knowing the software.

It’s just a tradeoff. Linux is in a lot of servers and devices today because it was chosen for those tasks over other systems. Its copyright and warranty are just another way of releasing software. They don’t make linux less secure.

The second argument is the core argument of the article and it is very important and should be taken into consideration.

I think that after Snowden, Hacking Team and other stories of governments spying on people, the topic is going to have a lot of impact on linux kernel and linux in general.

I would really like to see big companies using linux contributing to produce a viable hardened linux kernel. But my guess is that they are hardening their systems instead of the kernel, as suggested by Torvalds, because it’s way simpler and less costly*, making sure that reaching the kernel or taking complete control of a machine is very very difficult.

The third point is something that polarize the linux community and the open-source community at large (or at least the part that I know).

I don’t like the way Torvalds sometime answers to people, and I think that being the lead of a big (the biggest?) open-source project is not an excuse. I can easily name leaders in big open-source projects that I’ve never seen answering like Torvalds sometime does. It’s a shame, because it drives people away from a project that is the base of linux and the open-source ecosystem.

* Let’s stay positive and avoid conspiracy theories 🙂