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 ]

Which programming languages use the least electricity?

Categories

Tags programming miscellaneous

David Cassel is author of this older but interesting article about university research into energy usage data by various programming languages. Can energy usage data tell us anything about the quality of our programming languages? Six researchers in Portugal from three different universities decided to investigate this question, ultimately releasing a paper titled “Energy Efficiency Across Programming Languages.”

A faster language is not always the most energy efficient.

Specifically, they used 10 problems from the Computer Language Benchmarks Game, a free software project for comparing performance which includes a standard set of simple algorithmic problems, as well as a framework for running tests.

Power consumption was measured using a tool from Intel — the Running Average Power Limit tool. The paper took a hard look at the common assumption that a faster program will always use less energy.

Read to learn more!

[Read More]

Understanding microservices with tracing

Categories

Tags docker microservices devops distributed messaging

An interesting article on codacy blog from rtfpessoa. A typical system now is microservices-oriented, distributed and event-driven, and following its flow of information is a complicated endeavor. Moreover, instrumenting such a system to trace the flow of information has, at least historically, been an intricate task.

In this article authors take a look at patterns and tools to implement Distributed Tracing. It is written in Scala tools as examples, but all of the concepts apply to many other languages, for which you can find similar tooling.

Distributed tracing, also called distributed request tracing, is a method used to profile and monitor applications, especially those built using a microservices architecture. In a system each request is assigned a unique ID- (usually injected into the headers). This transaction is normally called a trace.

The article then dives deeply into:

  • Motivation, How and What to trace
  • Distributed Tracing in Scala
  • OpenTracing Implementations

Zipkin and Jaeger are the most well-known open source solutions providing a very good interface for displaying the data sent by your apps.

OpenTracing provides a great specification that allows you to program against a very well-defined API instead of a concrete implementation. Excellent!

[Read More]

Litmus: Journey of storage e2e and chaos framework for Kubernetes

Categories

Tags docker microservices devops containers kubernetes

Karthik Satchitanand is the author of this article documenting journey of the Litmus project. Project helps evaluate stateless workloads on Kubernetes. It was which was announced & open-sourced during the KubeCon Europe 2018.

The objective of the Litmus project is to help evaluate stateful workloads on Kubernetes via storage & infrastructure focused end-to-end (e2e) tests that use chaos engineering tools & principles, amongst other aids, with the test cases executed as kubernetes jobs.

The article describes the team journey:

  • Increased application & use-case coverage
  • Refactoring Litmus into a more “microservice-oriented” model
  • Litmus e2e test result visualization
  • Case Study: OpenEBS CI Powered By Litmus

Litmus now includes support for multiple popular stateful applications (Percona MySQL, MongoDB, Apache Cassandra, MongoDB, Minio, Crunchy PostgreSQL, NuoDB, Prometheus etc…) whilst covering common app lifecycle scenarios such as deployment, load, reschedule, scale-up, upgrade & de-provision.

The improvements made to the Litmus project have been possible only due to the amazing support from the community both in terms of feedback. Especially useful for anybody working on opens source project!

[Read More]

CI/CD with Jenkins pipeline: managing infrastructure with Terraform and Docker

Categories

Tags docker devops containers web-development

An article by Alexander Savchuk in which he continues his series on CI/CD with Jenkins. This blog post attempts to document some of the lessons we learned during their two-year journey with Terraform.

Terraform is really easy to start using for a “Hello world” type of project on a local machine, but the learning curve steepens quite significantly when we start thinking about multiple environments and more complex infrastructure configurations.

The article provides:

  • System overview
  • Project layout
  • Typical deployment
  • Preventing configuration drift
  • Separating application and infrastructure deployments
  • Wrapping up with Docker

Running Terraform deployments in Docker has an added benefit of isolating dependencies specific to each project.

It’s important to be able to run Terraform locally to test your changes when you are developing some infrastructure code. To achieve this, they encapsulate Terraform core along with all providers, external data sources, and wrapper scripts in a Docker image. Excellent read!

[Read More]

Google's EdgeTPU benchmarked vs Intel's Movidius

Categories

Tags big-data data-science analytics machine-learning

An article written by Frederik Bode about the first benchmark of Google’s EdgeTPU Dev Board is in. Read about comparison is made against Intel’s (first generation) Movidius Neural Compute Stick, and Google is the clear winner regarding inference time.

The Edge TPU is a small ASIC designed by Google that provides high performance ML inferencing for low-power devices. For example, it can execute state-of-the-art mobile vision models such as MobileNet V2 at 100+ fps, in a power efficient manner.

At the moment Edge TPU supports TensorFlow Lite only.

The article then describes:

  • Benchmark setup including parents and children
  • The data source
  • Usability and plug-and-play
  • Advice around troubleshooting

In conclusion, EdgeTPU far outperforms the first generation Movidius Compute Stick, and confidently awaits its next contender, Intel’s Movidius Neural Compute Stick 2. The speedup generated by the EdgeTPU Dev Board is ~13x. Great for any Raspberry Pi enthusiasts.

[Read More]

Deep-dive tutorial series on React, TypeScript, and TDD

Categories

Tags javascript react web-development app-development

Paul Everitt, PyCharm Developer Advocate form JetBrains, posted this article with links to resources for learning React, TypeScript and Test Driven Development (TDD). React is obviously super-hot, TypeScript has recently become super-hot, and the combination is attracting increasing interest.

JetBrains released this long “under construction” tutorial series. It includes videos, code, write-ups with screenshots, organized into 12 parts.

It aims to have:

  • Full writeup explaining the tip, what problem it is solving, and variations on the tip for different situations
  • Links to related tips, along several axes (technology, topic, author)
  • Links to external content (e.g. help system articles)
  • A short, narrated video about that tip
  • Playlists which organize the tips into a certain sequence

Enjoy this 12-part tutorial series! Really good for anybody into Reactjs and wanting to learn TDD.

[Read More]

The data science behind Natural Language Processing

Categories

Tags miscellaneous big-data data-science learning

John Thuma published this piece about the data science behind Natural Language Processing (NLP). Human communication is one of the most fascinating attributes of being sentient. We communicate in a variety of ways including speech and written symbols.

Chris Manning, Professor in Machine Learning at Stanford University describes communication as “a discrete, symbolic, categorical signaling system”.

Natural language processing (NLP) is a discipline in computer science and artificial intelligence. The article details some of the basic capabilities of these algorithms in the field of natural language processing:

  • Tokenization
  • Parts of Speech
  • Stop Word Removal
  • Stemming
  • Lemmatization

Linguistics is the study of language, morphology, syntax, phonetics, and semantics. This field, including data science and computing, has blown up over the past 60 years. Code examples in Python included. Insightful!

[Read More]

The science of drawing and memory

Categories

Tags miscellaneous teams learning

Interesting article by Youki Terada about experience of experts in the science of memory – how people encode, retain, and recall information. It’s long been known that drawing something helps a person remember it.

A new study shows that drawing is superior to activities such as reading or writing because it forces the person to process information in multiple ways: visually, kinesthetically, and semantically.

Scientists from the University of Waterloo conducted experiments to better understand how activities such as writing, looking at pictures, listening to lectures, drawing, and visualizing images affect a student’s ability to remember information.

Participants recalled 20 percent of words they had written down, but more than twice as many – 45 percent – of the terms they had drawn.

Their recommendation how teachers can incorporate drawing to enrich learning:

  • Student-created learning aids
  • Interactive notebooks
  • Data visualization
  • Bookmarking – create their own books to visually represent topics
  • Assessing learning through art

Follow the link to learn more about results of the study and more advice. Good read!

[Read More]

Code Migration in Production: Rewriting the Sharding Layer of Uber's Schemaless Datastore

Categories

Tags database data-science nosql

An older article by Jesper Lindstrøm Nielsen and Anders Johnsen about how Uber Engineering built Schemaless, their fault-tolerant and scalable datastore, to facilitate the rapid growth of our company.

After determining that our datastore could reap significant performance gains if we rewrote Schemaless’ fleet of Python worker nodes in Go (a language that features built-in support for lightweight concurrency), we migrated our product systems from the old implementation to the new one—all while still in production.

The article then dives into:

  • Schemaless background
  • Designing the Frontless architecture
  • Read endpoints: validation by comparison
  • Write endpoints: automated integration tests
  • Frontless results

Project Frontless showed that it is possible for Uber Engineering to rewrite a critical system in an entirely new language with zero downtime. Detailed explanation how they did it plus scheme and charts included. Very impressive!

[Read More]

How to run HA MongoDB on IBM Cloud Kubernetes Service

Categories

Tags cloud kubernetes nosql

A tutorial by Janakiram MSV about running highly available MongoDB cluster on IBM Cloud Kubernetes Service. IBM Cloud Kubernetes Service is a managed Kubernetes offering running in IBM Cloud. It is designed to deliver powerful tools, intuitive user experience, and built-in security for rapid delivery of applications that can be bound to cloud services related to IBM Watson, IoT, DevOps and data analytics.

This tutorial is a walk-through of the steps involved in deploying and managing MongoDB cluster.

The following steps are described:

  • Launching an IKS cluster running on bare metal servers with software-defined storage (SDS)
  • Installing cloud native storage solution like Portworx as a Daemonset on IKS
  • Createing storage class defining your storage requirements like replication factor, snapshot policy, and performance profile
  • Deploying MongoDB using Kubernetes
  • Test failover by killing or cordoning node in your cluster
  • Expanding the volume size dynamically
  • Performing backup and restore through snapshots

Through the integration of STORK (Storage Orchestration for Kubernetes), DevOps and StorageOps teams can seamlessly run highly available database clusters in IKS. Nice one!

[Read More]