Welcome to curated list of handpicked free online resources related to IT, cloud, Big Data, programming languages, Devops. Fresh news and community maintained list of links updated daily. Like what you see? [ Join our newsletter ]

Brain on code - functional MRI Imaging

Categories

Tags programming

Older article by Tina Amirtha on topic how human brain interprets coding. Researchers at the University of Passau have looked into the brains of programmers, using the imaging tools of neuroscience. You can find the study here in PDF form.

Each person (university students) read several different Java code snippets of similar difficulty so that the researchers could average the resulting brain imaging data.

So, does computer programming fall into the languages subject area?

“It appears to make some sense, based on what we have learned from the study,” Siegmund says.

[Read More]

Managing Shared Secrets

Categories

Tags infosec programming

Jakob Holderbaum article about managing shared secrets when working on a shared codebase. Handling such secrets in a working team and during deployments can be a challenging and sometimes even intimidating task.

Few approaches are considered and trade-offs are mentioned:

  • simply having constants in your source code.
  • storage of secrets in configuration files not checked into version control
  • or use of environment variables
  • GPG and password manager pass (*nix systems)

Password manager pass on the other hand is a neat little utility that basically comprises a convenient wrapper around GPG.

An example application code with detailed explanation how to set up secure keys for pass to work is included.

[Read More]

The shocking secret about Static Types

Categories

Tags programming functional-programming

Eric Elliott has written excellent article about static types and why the feeling that they make us more productive may be wrong.

He points out that static types give you a false sense of security, despite undeniably true fast that static types catch a significant subclass of bugs.

He also notes that type correctness does not guarantee program correctness. Also offers answer to the question what really does reduce bug density… Test Driven Development (TDD). Specifically, test-first methodology.

He also mentions The Springer study – it showed 40% - 90% reduction in bug density relative to similar projects that did not use the test-first practice.

[Read More]

How to build a full-page website in Angular

Categories

Tags angular javascript

Lukas Ruebbelke in depth tutorial will walk you though process of creating fully functioning website using latest Angular.

This is the first part in a series on how to build a full-page animated website in Angular and includes source code in github repository. It walks you through:

  • how to create project with @angular/cli
  • how to include animations and Angular material
  • how to introduce a page component and build it
  • how to introduce generate the content service
  • how to setup routing

and more … Really good intro into building web apps with Angular.

[Read More]

gRPC-Web: Moving past REST+JSON towards type-safe Web APIs

Categories

Tags microservices restful apis

Michal Witkowski and Marcus Longmuir wrote blog post on their experiece with gRPC in order to create type safe web APIs.

This blog post presents how Improbable expanded use of gRPC, the lingua franca for their microservice and client libraries, towards use in browser Web Apps. They also show how this move, together with their adoption of TypeScript in order to end up in type-safe Web App Nirvana.

Article explains what gRPC is and why they decided to use it. gRPC is the next-generation of Google’s in-house RPC library based on the HTTP2 protocol with support for code-generating clients and server stubs in multiple languages. At the same time they leveraged backwards and forwards compatibility of protocol buffers - language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols.

In depth article with details how their usage of gRPC extened: they first used gRPC REST Gateway for using gRPC from the browser, later hacked modern browser to communicate via binary protocol buffers.

Code examples and links to open sourced repositoy included.

[Read More]

Testing Microservices – A Beginner's Guide

Categories

Tags microservices software-architecture

Amir Ghahrai’s article aimed at microservices beginners and importance of testing. Microservice is defined as an architectural style, an approach to developing a single application as a suite of services.

Testing Microservices is becoming more and more important as many of the new applications are being built using Microservices architecture. Article also explains how are microservices different to SOA.

The main part about testing of microservices describes:

  • unit tests
  • component tests
  • integration tests
  • contract tests

The challenge of the mocking/faking 3rd party APIs when doing integration testing of microservices is mentioned too.

[Read More]

How To Build Android Apps with Jenkins

Categories

Tags app-development cicd devops

Digital ocean article you will learn how to setup Jenkins to build Android apps. It will mostly talk about the new build system called Gradle.

Article will guide you through:

  • Installation of Android SDK
  • Configuring the Android SDK
  • configuring Jenkins
  • Setting up the Job

The Jenkins instance can hold more than 1 job. And gradle can also sign the apps automatically. Complete example code for build is attached.

[Read More]

Java 9: Step by Step From Zero to Modules (Part 1)

Categories

Tags programming java

Tomer Ben David wrote guide which covers the basic building blocks of making modules in Java 9. Java 9 is around the corner, so it makes sense to get started with making modules.

No matter whether you are writing in a dynamic language or a static language, modules are a super important part of your application. Modules are the building blocks of microservices!

Article is one piece in 3 parts series. It depicts and executes detailed plan from installation of Java 9 to deploying of your newly created module. It also touches on naming convention to be followed while creating a module path and something similar when creating the source code. Nice chart with all the new stuff in Java 9 also inlcluded.

Short and straight to the point tutorial. Please also follow parts 2 and 3.

[Read More]

How Algolia Reduces Latency For 21B Searches Per Month

Categories

Tags search nginx servers

Josh Dzielak, Developer Advocate as Algolia wrote interesting article about building search engine from scratch.

At the core of Algolia is a built-from-scratch search engine exposed via a JSON API. In February 2017, they processed 21 billion queries and 27 billion indexing operations for 8,000+ live integrations.

In this post tehy’ll look at how their stack is designed from the ground up to reduce latency and the tools we use to monitor latency in production.

The article touches many interesting topics including deployment, scaling, monitoring, collaboration, teams. Josh also quickly describes their stack. Many people are surprised when they’ll learn that:

  • The Algolia search engine is written in C++ and runs inside of nginx
  • API clients connect directly to the nginx host where the search happens
  • Algolia runs on hand-picked bare metal (high frequency CPUs)
  • Algolia uses a hybrid-tenancy model (shared and dedicated)
  • Algolia doesn’t use AWS or any cloud-based hosting for the API
[Read More]

Create lean Node.js image with Docker multi-stage build

Categories

Tags docker containers

Alexei Ledenev’s blog post about single Dockerfile that can build multiple helper images with compilers, tools, and tests and use files from above images to produce the final Docker image.

Article depicts basic idea behind the Docker build container pattern. A Dockerfile is a text file that contains a list of all the commands needed to build a new Docker image. The syntax of Dockerfile is pretty simple and the Docker team tries to keep it intact between Docker engine releases. The core principle is very simple: 1 Dockerfile -> 1 Docker Image. This principle works just fine for basic use cases.

Article then describes changes introduced in Docker 17.0.5 which extends Dockerfile syntax to support new multi-stage build, by extending two commands: FROM and COPY.

Example Dockerfile for multi-stage Node.js app with explanation is included. With Docker multi-stage build feature, it’s possible to implement an advanced Docker image build pipeline using a single Dockerfile.

[Read More]