Rituals

January every year is a month of new beginnings and self-improvement. There are many self help books and methodologies out there.

A common theme in a lot of these is habit. So for example there is Charles Duhigg’s The Power of Habit or there is The 7 Habits of Highly Effective People by Stephen R. Covey.

The idea is that if you keep repeating positive traits, they become habits and easy to repeat.

Habits are very powerful and precisely why they are built into many facets of our daily lives. For example, we brush our teeth in the morning and evening. We don’t even think about what we do when driving. It becomes so easy that it requires very little conscious effort.

I have been trying to put these into practice for the last few weeks, but I am ramping it up in January and trying to bring rituals into everything that I do in the hope that they become habits.

This has been a well known strategy for ages. Think of the way scrum has all it’s ceremonies of planning sessions, stand-ups etc..

It doesn’t have to be that structured either. You can have your daily list for example. A ritual around that might be something as simple as making sure it’s up-to-date when you are having your morning cup of tea.

Another example is to be proactive with your calendar. At the start of the week have a ritual of setting yourself in order. (Side-note: Calendars are not just for meetings, block out time for your tasks that you need to complete as well.) It helps if at the start you reward yourself for completing a ritual. For example, if you do your weekly planning, you can watch a funny youtube video.

Ultimately, after a while this will become second nature and you will be completing tasks with having to even think about it.

Component based web systems

The Web as a platform is all the rage these days. It’s not hard to see why. With the ability to create web apps in a matter of hours with very little experience in coding, it will soon be the de facto way to build applications.

It even looks like the war between web based apps and native apps on mobile has been won by the web platform in the guise of progressive web apps (pwas).

The driving force behind all these apps is javascript and the many, many frameworks that are out there.

The reason for this, is of course because after fending off Flash and Java applets, JS is the only way to code applications on the web.

Components are becoming popular as it allows companies to create block of UI that they can reuse across apps and sites. For example EA Games share a set of components through their many individual game sites.

React is the most popular framework out there at the moment and at it’s core, it is a component system. React components are created with jsx, a JavaScript templating engine.

React components can be shared between applications and sites. There are many sites out there that even offer UI libraries of React components.

Polymer
Polymer

Polymer is a project that is backed by Google. It aims to help you create components with a small library to ease the process. The Polymer project also includes a CLI (command line interface) to help you build and test your components.

Webcomponents.org is the home for a W3C project that aims to make web components a standard. It outlines 4 specifications that make up web components; Custom Elements, Shadow DOM, ES Modules and HTML Templates.

Webcomponents.org

Custom elements allow developers to create custom HTML tags. So for example, you could create an element called <my-side-navigation> that would render a side navigation on your site. You could then share it with your other sites.

The Shadow DOM allows you to encapsulate HTML and CSS so that they don’t effect the rest of the site.

ES Modules are essentially JavaScript Modules. This specification allows you to create js modules and then import them.

HTML Templates are where the components html is created. This is the HTML that is rendered when the tag is added to a page.

There are other libraries out there for creating web components, but these are the main ones.

Web components are sign of the maturing of the web as a platform. In traditional application development, components have been around for a long time. Together with concepts like Atomic Design, there are now really powerful tools for developing reusable components to put together really compulsive experiences for your visitors.