Archives

#158 - feb 14th 2016

Look

Examples of UI/UX, graphic performance, web design and flashy things.
Love Notes design
Send your Valentine a playlist with a secret message.

Use

Web applications, resources and tools, available for making our life easier or funnier.
Beginner's Resources to Learn Programming Languages tool
A good collection of links for web developers.
JsTips js
Mobile app that gives a JavaScript tip a day.

Install

A selection of gems or applications updated during past week.
good-migrations rb
Prevent Rails from auto-loading app/ code when running database migrations.
log_spy rb
A rack middleware sending request log to Amazon SQS.
git-blame-someone-else rb
Blame someone else for your bad code (joke).
HTTP::Accept rb
Provides a robust set of parsers for dealing with Accept and Accept-Language HTTP headers.
Services rb
A nifty service layer for your Rails app.
himawari.js js
Download real-time images of Earth from the Himawari-8 satellite
GrapesJS html5
Next generation tool for building HTML templates without coding.
Browsersync tool
Time-saving synchronised browser testing.
diff-so-fancy tool
Good-lookin' diffs with diff-highlight and more.

Read

From the blogosphere or news feeds ...
Kill Your Dependencies feb 9 rb
Some notes to app and gem developers on how not to add unneeded dependencies.
Build Your Next Web App 10x Faster with RapidAPI feb 9 tool
RapidAPI is an online platform that lets you create a back end for your web or mobile app without writing a single line of code.
Language and Locale Matching in Go feb 9 go
How Go handles multilinguism.
Introducing Dynamic Modules in NGINX 1.9.11 feb 9 ops
NGINX version 1.9.11 introduces dynamic modules, separate shared object files that can optionally be loaded at runtime.
Do You Believe in Programming Magic? feb 10 rb
Too magical makes more complex.
Making Error Alerts Less Noisy and More Useful feb 10 rb
The only thing that's worse is a real alarm sent to the wrong person.
Quick Tip: Master Closures by Reimplementing Them from Scratch feb 10 js
In JavaScript, a function doesn’t create a closure; the function is the closure.
How to Build an SMS Appointment Reminder App with Twilio feb 11 js
WUse Google Calendar to get appointments and then send the text message with Twilio.
The future of loading CSS feb 11 css3
Chrome is intending to change the behaviour of _link_ in _body_, which allows for better ways to load CSS.
How to Use ARIA Effectively with HTML5 feb 11 web
Accessible Rich Internet Applications. Don't forget about it.
Google Challenges AWS Lambda with Cloud Functions feb 11 tool
Create hooks between functions to trigger in Gmail and other Google offerings.
So you want to write a package manager feb 12 go
Very long article splitting in part the hard work of writing a package management system.
Open-sourcing Teletraan, a code deployment system feb 12 ops
Code deployment system built to deploy hundreds of services on thousands hosts.
Links curated by mose (publisher), xenor, tysliu (editors), Nauman Tariq, hsatac (contributors) .

Rant

The random rant of the week by mose.

The thin line between chaos and harmony

In the long road of my developer life I had the chance to experience a very wide variety of organizational models. The most pleasant was in the context of very large open source projects, where actions are not planned but still organized, and things fall in their place seemingly naturally. Of course there is nothing natural in that. There is a category of people, that can be called catalysts, working as gardeners and building the pathways to collaboration. But because there is no predefined hierarchy, I thought chaos had some virtues.

In other hierarchical models, there is so much waste following the rule rather than its essence. It's like there was an abstraction layer for efficiency and the staff follows the abstraction, paying no respect to the efficiency. Because after a time the set of rules is not making sense anymore. The environment moves fast and habits are hard to change. It's taking long time for an organization to change its own internal rules.

But I also have seen non-hierarchical model totally fail. When you try to apply an open-source kind of organization inside a company, it cannot be done half-way, but it cannot be done fully.

For example the volatility of contributors is an essential part of the open-source organization model. Things are working the way they do because people are free to leave and join at will, or stop working when they decide. This is totally different in a company, even if you can get some approximation, leaving and joining is a more complicated process, and has a different set of motivations. And let's not talk about the freedom to stop working at will.

This single factor leads the free-formed communities to get various incentives for contributors to feel good about their interaction in the community. The ones that don't play well along other people just end up either in a leadership position because they are geniuses, or just leave because they don't fit in. Or they stay and kill the project because everybody else leaves. But most likely they are the reason why forks exist.

But in a non-hierarchic company, those cowboys may end up hurting the whole process of collaboration by capturing some processes, getting very good at them, and give hell to everybody else for a time, under the privilege of the Power of the Bottleneck. It's very hard to get those people to share knowledge because their position depends on it. If nothing is done, the situation will become uneasy and awkward at best.

Certainly in that type of situation, if there is some power in place to mitigate this danger, all can be good and well. But from my experience such power is hard to come by. Especially if the non-hierarchic aspect of the organization depends on him/her/it. Maybe there is some way to have some kind of catalyst role, but where I have seen such role in a company, it was informal and not an official position.

That's too bad because I would love to experience again some real collective intelligence in the workplace the same way I have experienced it in some open source communities. I think maybe there are some companies out there that are doing that well, but most of the time it's not going to be structural. Most likely it will come from a specific set of people that do real good in collaboration. I still wait to see a company that includes in its genetic code, in its fundamental principle, the seeds that make it possible to be efficient and still instinctive.

Green Ruby News was a feed of fresh links of the week about ruby, javascript, webdev, devops, collected by mose, xenor and tysliu every sunday.