This month’s most useful tools for developers – September

Tim LeRoy
by
on 07 September 2016

Every month one of our team shares their pick of articles that are useful specifically for software developers.

Some are about new thinking or new techniques, some are about old or legacy technology and some are just useful resources for different languages or platforms.  The brief is simple – if we think they’re useful, you might too.

This month Mark Vallins rummages in his toolbox.

React Server

All things must be React – Blazing fast page load and seamless navigation.

What is it?

Provides an optimised framework for using React for server-side rendering.

Why use it?

Delivery of traditional single page applications to a mobile browser over a slow data connection can cause the application to appear slow to start (while all of the SPA support code is downloaded) and subsequently slow to display any useful information (the application needs to start before any content is rendered).

Server side rendering of pages ensures that only the necessary code and content is delivered to the browser, this helps reduce the time to download and see useful content in the browser.

In addition to the client side speed benefit, search robots without JavaScript support cannot index your content unless it is rendered on the server.

[Here’s the link]

 

LogicJS

LogicJS adds logic programming (typically known by the language Prolog) to JavaScript.

What is it?

A JavaScript implementation of the logic programming paradigm based on formal logic which allows a program to express facts and rules about some problem domain as a set of sentences in logical form.

Why use it?

When your programming language’s native paradigm doesn’t cut it, it can be useful to adopt an alternative means of expressing a problem. Logic programming is traditionally performed using a dedicated logic programming language like Prolog but it is not always convenient or easy to combine multiple languages into a single project.

LogicJS allows a JavaScript program to express a problem as a set of facts and rules that are used to resolve incomplete statements in the same domain.

[Here’s the link]

 

Incremental web caching

This is an interesting idea; partial downloads for updated cached files in the browser.

Continuous delivery is great, but it comes at a price on performances. The more you deliver, the less browsers will use assets they had in cache, because of file versioning.

[Here’s the link]

 

Verifying copies

Most of the time, we explicitly trust that our tools are doing what we ask them to do. For example, if we rsync -a /source /target, we trust that the contents of /target will exactly match the contents of /source. That’s the whole point, right? But once in a while, we might decide to empirically and thoroughly check our copied data… things might get weird.

This article explores the weirdness, and looks at how to interpret it.

[Here’s the link]

 

NoSQL Databases

A Survey and Decision Guidance. This NoSQL Toolbox helps make sense of the options and filter potential system candidates based on central application requirements.

[Here’s the link]

 

A Generation Lost in the Bazaar

This article is a few years old, interesting nonetheless (and we’ve seen this sentiment repeated with node and npm): Quality happens only when someone is responsible for it.

[Here’s the link]

 

The Joy of Coding

And finally the Joy of Coding Book Bundle. A great library of useful books on coding – obviously – but the joy is that you ‘pay what you want’ and support the charity as well as the author and publisher. Happy reading.

[Here’s the link]

 

Subscribe

Subscribe to our newsletter for free advice delivered to your inbox on a fortnightly basis.

Related articles