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 ]

Want to increase productivity? Go remote.

Categories

Tags miscellaneous management agile teams how-to

You might be surprised to learn that a ton of new research shows that remote work is good for both employers and employees. An article by Stella Garber.

The remote work movement is gaining traction across a wide variety of industries as more organizations adopt a geo-agnostic approach to building a company.

An independent analysis of 2017 census data showed a 91% growth in remote work over the last 10 years, and there are currently 4.7 million people in the U.S. who telecommute (up from 3.9 million in 2015).

The article brings insightful information on:

  • The many business benefits of a remote work strategy
  • Reduced overhead costs
  • Better employee retention
  • More successful recruiting
  • Establishing a culture of autonomy

… and much more. Working remote is often a matter of practicality for startups who can’t afford office space, but even large companies are starting to realize that a remote approach is a big money saver. Good read!

[Read More]

Why I recommend my clients NOT use KSQL and Kafka Streams

Categories

Tags streaming software-architecture apache distributed

An article by Jesse Anderson. He recommends his clients not use Kafka Streams because it lacks checkpointing. Kafka Streams also lacks and only approximates a shuffle sort. KSQL sits on top of Kafka Streams and so it inherits all of these problems and then some more.

Kafka isn’t a database. It is a great messaging system, but saying it is a database is a gross overstatement. Saying Kafka is a database comes with so many caveats I don’t have time to address all of them in this post. Unless you’ve really studied and understand Kafka, you won’t be able to understand these differences.

Checkpointing is fundamental to operating distributed systems.

The article then delves into:

  • Explaining checkpointing
  • Shuffle Sort
  • Kafka Streams and KSQL
  • What Should You Do?

Loads of useful information for anybody considering data streaming for their project. Nice one!

[Read More]

How to structure your Scala application?

Categories

Tags scala programming java oop functional-programming

Michał Matłoka wrote this piece about the application organization and structure in Scala. In Scala, one tends to see smaller libraries, which are quite flexible. That is why many things like application structure and life-cycle fully depend on developer.

The most important question is, how to keep order in your project? Initially, it may be solidly designed, but over time some mess may appear. How to avoid cycles between packages or enforce checks not allowing to use feature internal classes by another feature? There comes the ArchUnit with its DSL allowing to define all those checks in tests.

The article is split into:

  • Object creation style
  • Modules as traits
  • Modules as classes
  • Package organization
  • Tests
  • Maintaining order

Scala may give you more power but you have to be careful not to introduce mess in your project. You shouldn’t be afraid of using the good old new keyword for instantiating dependencies. And DI framework may not be really needed in your application. Enjoy!

[Read More]

Firebase: What is atomicity & how to accurately increment/decrement values in cloud Firestore

Categories

Tags nosql infosec cloud app-development web-development

In computer science, ACID (Atomicity, Consistency, Isolation, Durability) is a set of properties of database transactions intended to guarantee validity even in the event of errors, connection issues, power failure, and etc. An article by Jeff Lewis about atomicity in Firebase.

An Atomic Transaction is unique such that all of the operations occur successfully or the entire atomic transaction fails.

Since an Atomic Transaction fails completely if all of the operations are successful, Atomicity mitigates the risk of updates to the database from partially completing, which could cause data issues down the line as your application scales.

The article further describes:

  • What is atomicity?
  • Why do we use atomicity?
  • When to use atomicity and issues it prevents
  • How do we use atomicity + Firebase cloud Firestore?

Plenty of code examples in JavaScript and React included. Good read!

[Read More]

Use Kabanero, Appsody, and Codewind to build Spring Boot application on Kubernetes

Categories

Tags kubernetes programming java devops oop

An guide by Hafid Haddouti. In the era of DevOps where the team is responsible for building and running applications for their entire life cycle, choosing the best tools is crucial to help reduce the work needed for building and deploying cloud-native applications.

New open source tools from IBM — Kabanero, Appsody, and Codewind — were created to make it easier for developers to build and deploy cloud-native applications to Kubernetes.

The article then gives you step by step instruction how to build your app in VSCode:

  • Prerequisites and installation
  • How to create a Spring Boot project with Appsody
  • Codewind integration
  • Move it to the cloud

Kabanero is a new tool in the young and rapidly changing cloud-native environment. It allows a better decoupling of the application logic from the used infrastructure with the offered abstraction. Nice one!

[Read More]

Intro guide to Dockerfile best practices

Categories

Tags cicd containers docker devops software-architecture

Tibor Vass wrote this piece about best Dockerfile practices. There are over 1 million Dockerfiles on GitHub today, but not all Dockerfiles are created equally. Efficiency is critical, and this blog series will cover five areas for Dockerfile best practices to help you write better Dockerfiles: incremental build time, image size, maintainability, security and repeatability.

In a development cycle, when building a Docker image, making code changes, then rebuilding, it is important to leverage caching. Caching helps to avoid running build steps again when they don’t need to.

The article highlights following:

  • Incremental build time
  • Reduce Image size
  • Maintainability
  • Reproducibility

We liked: Multi-stage builds is the go-to solution to remove build-time dependencies.

Author explains how they went from building bloated images inconsistently to building minimal images in a consistent environment while being cache-friendly. Very insightful with more detailed advice in the article!

[Read More]

Why every test automation engineer needs Jenkins

Categories

Tags cicd containers docker devops

Continuous Integration (CI) is a game-changer for increasing the adoption of test automation for every step of the software development process. In this article, the author will describe how CI affects the working day from a test automation engineer’s point of view and what are the achievable benefits of CI. By Vincenzo Marrazzo.

Test automation engineers (TAEs), for example, are a mandatory building block that allows this challenging scenario to succeed. TAEs main task is to validate software quality under the continued compression of working time. Every software development cycle contains more features and requires more validation.

The article also deals with:

  • What is the role of a test automation engineer?
  • What is continuous integration?
  • How is CI related to Jenkins?
  • Why test automation engineers need Jenkins
  • Which kind of resources do you require to implement and use Jenkins?
  • How much effort does using Jenkins require?
  • Setup a new Jenkins installation

… and more. Long article with links to further reading and detailed explanation of CI process, includes running Jenkins in a Docker container. Exciting one!

[Read More]

Building a distributed time-series database on PostgreSQL

Categories

Tags database software-architecture distributed performance

TimescaleDB, a time-series database on PostgreSQL, has been production-ready for over two years, with millions of downloads and production deployments worldwide. Authors publicly shared their design, plans, and benchmarks for the distributed version of TimescaleDB. By Mike Freedman and Erik Nordström.

PostgreSQL is the fastest growing database right now, faster than MongoDB, Redis, MySQL, and others. PostgreSQL itself has also matured and broadened in capabilities, thanks to a core group of maintainers and a growing community.

Our new distributed architecture, which a dedicated team has been hard at work developing since last year, is motivated by a new vision: scaling to over 10 million metrics a second, storing petabytes of data, and processing queries even faster via better parallelization. Essentially, a system that can grow with you and your time-series workloads.

The article then explains broad range of topics related to time series databases, including:

  • Chunking, not sharding
  • Benchmarks
  • Five objectives of database scaling
  • Designing for Scale
  • Introducing Distributed Hypertables
  • Design Principles

TimescaleDB doesn’t overcome the CAP Theorem. We do talk about how TimescaleDB achieves “high availability”, using the term as commonly used in the database industry to mean replicated instances that perform prompt and automated recovery from failure. This is different than formal “Big A” Availability from the CAP Theorem, and TimescaleDB today sacrifices Availability for Consistency under failure conditions. Good read!

[Read More]

How to create a todo list with Phoenix LiveView

Categories

Tags programming erlang functional-programming

Phoenix LiveView is a great solution for anyone who wants to get a real-time app out to the world quickly without spending a ton of time building out both frontend and backend. By Dennis Beatty.

The author provided video on youtube together with code on GitHub and detailed instructions in this tutorial.

The tutorial covers:

  • Set up a new project with Phoenix LiveView
  • Generate the Schema
  • Set up the page
  • Display the Todo List
  • Updating in Real-Time with PubSub

LiveView is awesome, but Phoenix PubSub is pretty amazing too. It was super simple for author to subscribe to events and publish those when we update our database, and that allowed them to get this all set up really easily. Excellent!

[Read More]

It's on you: How to build an inclusive business

Categories

Tags management agile teams miscellaneous cloud

An interview with Atlasian head of diversity and belonging Aubrey Blanch about building an inclusive business. By Stephanie Palmer-Derrien.

The new Atlassian Team Playbook is touted as a “no bullshit guide to unleashing your team’s potential”, allowing businesses to analyse their people data on a team level.

We take a really data-informed social science approach to build what we think of as an equitable and balanced company, Blanche tells StartupSmart.

Atlassian uses a machine learning tool to remove gender-biased and racially biased language from its job ads.

The interview covers following:

  • Build an inclusive culture before you need to
  • Make an effort
  • Watch your language
  • Take responsibility

And one we liked: The fact is, you can hire underrepresented folks all you want, but if your culture isn’t supportive, you’re not going to keep them anyway. Nice one!

[Read More]