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 ]

Keras vs tf.keras: What's the difference in TensorFlow 2.0?

Categories

Tags big-data data-science software machine-learning

In this tutorial we will discover the difference between Keras and tf.keras (tf - TensorFlow), including what’s new in TensorFlow 2.0. By Adrian Rosebrock.

Understanding the complicated, intertwined relationship between Keras and TensorFlow is like listening to the love story of two high school sweethearts who start dating, break up, and eventually find their way together — it’s long, detailed, and at some points even contradictory.

Article also discusses some of the most popular TensorFlow 2.0 features you should care about as a Keras user, including:

  • Sessions and eager execution
  • Automatic differentiation
  • Model and layer subclassing
  • Better multi-GPU/distributed training support

… and much more. Code examples, charts and further resources all provided. Excellent!

[Read More]

Using SSH port forwarding on Fedora

Categories

Tags linux software infosec

Posted by Paul W. Frields. The protocol behind ssh allows terminal input and output to flow through a secure channel. You can also use ssh to send and receive other data securely.

A standard Linux system has a set of network ports already assigned, from 0-65535. Your system reserves ports up to 1023 for system use. Quite a few ports are commonly expected to run specific services. You can find these defined in your system’s /etc/ services file.

You can think of a network port like a physical port or jack to which you can connect a cable. That port may connect to some sort of service on the system, like wiring behind that physical jack. An example is the Apache web server (also known as httpd). The web server usually claims port 80 on the host system for HTTP non-secure connections, and 443 for HTTPS secure connections.

Further information in this article:

  • Local port forwarding
  • Remote port forwarding

Finally, remember port forwarding only happens as long as the controlling ssh session is open. Sweet and short!

[Read More]

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]