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 ]

A developer's guide to setting and smashing career goals

Categories

Tags agile teams career how-to

An older article by Isabel Nyo about setting developer’s career goals. There is little information available for developers and software engineers on how to set these effectively.

These days, I help developers and software engineers set and smash career goals that are specific, measurable, achievable, timely, and most importantly, that align with their values and desires in life.

Find an accountability buddy who will check in with you periodically. It is better if your accountability buddy has similar goals so you can help each other out.

Author goes through five essential strategies to effectively set and smash career goals for a developer, using relatable examples and best practices:

  • Look at what is out there
  • Understand what you want
  • Set achievable goals
  • Create a personal brand
  • Be accountable

A lot of developers give up on their career goals way too early. They are either too busy in their current job, or everyday life activities like relationships, children, marriage, and paying bills had taken over and they lost sight of their career goals. Great advice!

[Read More]

Choose boring technology

Categories

Tags programming software-architecture miscellaneous how-to

The perspective of seasoned developer on development process and how big companies can have a branded way of doing engineering. Compared with situations where “the way engineering is done” is actively being figured out.

The essay basically focuses on:

  • First, how do you pick the tools you’re going to use to get your work done?
  • How do you make developers happy?

If you go up to a developer and say, “hey, what would make you happy?” you often get highly specific answers. “I would be happy if I could write Clojure at work,” they’ll say, “so you should let me do my work in Clojure.” I don’t discount that when they do this, developers are genuinely describing some kind of endorphin-rich experience they have had at some point. – The answer for many: chase shiny objects

If you think about innovation as a scarce resource, it starts to make less sense to also be on the front lines of innovating on databases. Or on programming paradigms. Software that’s been around longer tends to need less care and feeding than software that just came out. Good read!

[Read More]

Step Zero: Kubernetes on Microsoft Azure Kubernetes Service (AKS)

Categories

Tags devops azure programming software-architecture

Step to step guide how to create a Kubernetes cluster using the Azure command line tools. It describes the commands required to setup a Kubernetes cluster using the command line. By JupyterHub.

This is straightforward guide and you have two options: one is to use the Azure interactive shell, the other is to install the Azure command-line tools locally. Instructions for each are included.

The guide then lists and explains how to do these:

  • Prepare your Azure shell environment
  • Activate the correct subscription
  • Create a resource group
  • Choose a cluster name
  • Create an SSH key to secure your cluster
  • Create an AKS cluste
  • Install kubectl, a tool for accessing the Kubernetes API
  • Get credentials from Azure for kubectl to work
  • Check if your cluster is fully functional

If you prefer to use the Azure portal see the Azure Kubernetes Service quickstart. For detailed commands followe the link below, easy!

[Read More]

Mono repo vs one per service

Categories

Tags devops microservices programming agile aws software-architecture teams

An article by Yan Cui about his take on using code repository when working with microservices and serverless. With AWS Lambda, we can deploy and scale individual functions. However, we engineers still like to think in terms of services and maintain a mapping between business capabilities and service boundaries.

The service boundaries allow the teams to be autonomous and empowers them to choose their own technology stacks. Where AWS Lambda is a good fit, a service would be made up of one or more Lambda functions as well as event sources such as API Gateway. The fact that the functions that make up a service are scaled independently is merely an implementation detail, albeit one that can work very well to our advantage.

Before we delve into it, I should clarify that within a monorepo you can still deploy services independently. Functions are still organized into services, and each service would reside within a subfolder in the repository.

The article explains:

  • What is a monorepo
  • How one repository per service works
  • Which approach should you choose?

The monorepo approach offers small teams a great opportunity to gain early momentum. But you need to keep in mind that the cost of this approach would skyrocket as the organization grows beyond a certain point. Nice read!

[Read More]

The basics of Kubernetes networking

Categories

Tags devops programming kubernetes containers

Kamil Lelonek explains everything you need to know about Kubernetes networking in this article. When you deploy your application to a Kubernetes cluster, you usually want to have it accessible from the outside. For real-world production applications, one of the important questions to ask is how to get external traffic into your container.

A ClusterIP is an internally reachable IP for the Kubernetes cluster and all Services within it. For NodePort, a ClusterIP is created firstly and then all traffic is load balanced over a specified port. The NodePort itself is just an iptable rule to forward traffic on a port to a ClusterIP.

The article details:

  • Terminology – pod, node, containers, labels, service
  • NodePort
  • Ingress

In Kubernetes, an Ingress is an object that allows accessing your services from outside a cluster. Boths charts explaining the concepts and example configuration are also included. Excellent!

[Read More]

Monkey patching TLS in Node.js to support self-signed certificates with custom root certificate authorities

Categories

Tags nodejs infosec web-development app-development

David Barral wrote this detailed guide on updating TLS (Transport Layer Security) in Node.js and how to consume services that have been secured with self-signed certificates.

A self-signed SSL Certificate is an identity certificate that is signed by the same entity whose identity it certifies.

The self signed certificate in certificate chain error means that our client sees the certificates but does not know the CA that issued the server certificate and cannot trust it. That’s cool, node is helping us to protect against a man in the middle attack.

The article describes and explains:

  • Self-Signed certificates
  • How to test HTTPS server with self-signed certificates
  • Client Error: self signed certificate in certificate chain
  • How to add extra root certificates to node
  • Monkey patching tls.createSecureContext

A monkey patch is a way for a program to extend or modify supporting system software locally (affecting only the running instance of the program). good read.

[Read More]

Using graph processing for Kafka Stream visualizations

Categories

Tags analytics apache streaming queues

Article by David Allen. Focused on Graph processing for Kafka Stream visualizations. Apache Kafka® is great when one needs to dealing with streams, allowing you to conveniently look at streams as tables. Stream processing engines like KSQL furthermore give you the ability to manipulate all of this fluently.

Graphs are a more natural representation with a lot of grounding in theory for some use cases. So we can improve a portion of just about any event streaming application by adding graph abilities to it.

An article explains how to use graphs on social network example:

  • A stream of friend relationships
  • Graph the network with Neo4j
  • Configuring Neo4j to interact with Kafka
  • Using graph algorithms to recommend potential friends
  • Link prediction algorithms
  • Common Neighbors algorithm
  • Publishing back to Kafka

All of the code and setup discussed in this blog post can be found in this GitHub repository, so you can try it yourself! Charts and all the data are well explained. Nice one!

[Read More]

Getting started with the Combine framework in Swift

Categories

Tags swiftlang programming tdd

Combine is a new framework by Apple introduced at WWDC 2019. The framework provides a declarative Swift API for processing values over time. Written by Antoine Van Der Lee.

By adopting Combine, you’ll make your code easier to read and maintain, by centralizing your event-processing code and eliminating troublesome techniques like nested closures and convention-based callbacks.

The article is split into:

  • What is Combine?
  • The basic principles of Combine
  • Memory management in Combine
  • Error types and streams
  • Debugging Combine streams
  • Using Combine with MVVM
  • When should I use Combine?

Plenty of code examples provided. Together with links to more resources for studying Combine. The whole framework is even better explained with its own Swift Playground. Great read!

[Read More]

Pytorch vs. Tensorflow: which framework is best for your deep learning project?

Categories

Tags big-data programming data-science python miscellaneous

Written by Vihar Kurama. Author takes a look at two popular frameworks and compares them: PyTorch vs. TensorFlow. In simple terms deep learning is an add-on to develop human-like computers to solve real-world problems with its special brain-like architectures called artificial neural networks.

This article dives into:

  • Google’s TensorFlow
  • Facebook’s PyTorch
  • What can we build with TensorFlow and PyTorch?
  • Comparing PyTorch and TensorFlow
  • Pros and cons of PyTorch and TensorFlow
  • PyTorch and TF installation, versions, updates
  • TensorFlow vs. PyTorch: recommendation

One main feature that distinguishes PyTorch from TensorFlow is data parallelism. PyTorch optimizes performance by taking advantage of native support for asynchronous execution from Python.

You will also get links to top projects for each framework and links to useful resources. Nice one!

[Read More]

Learn Linux, 101: Fundamentals of internet protocols

Categories

Tags linux programming devops cloud miscellaneous

Ian Shields wrote this piece on TCP/IP network fundamentals for Linux system. This tutorial helps you prepare for Objective 109.1 in Topic 109 of the Linux System Administrator (LPIC-1) exam 101.

The aim of this tutorial is to provide enough information about:

  • Understand network masks and Classless Inter-Domain Routing (CIDR) notation
  • Know the differences between private and public dotted quad IP addresses
  • Understand common Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) ports and services such as 20, 21, 22, 23, 25, 53, 80, 110, 123, 139, 143, 161, 162, 389, 443, 465, 514, 636, 993, 995
  • Know the differences between and major features of UDP, TCP and Internet Control Message Protocol (ICMP)
  • Know the major differences between IPv4 and IPv6
  • Know the basic features of IPv6

Great read with detailed information about communication in layers, Internet Protocol Versions, Subnets, classes, masks, and CIDR etc.

[Read More]