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 ]

Do not follow JavaScript trends

Categories

Tags javascript nodejs web-development programming cio agile

What to do when you feel a sudden urge to use shiny new trendy framework or tool. You may ping your team lead or send a message to your whole team about this cool new way of doing things, and you suggest that you start using it. The idea of having to learn something new is good, and I agree with that, but how often should you do that? Written by Nikola Đuza.

So many choices, so little time. What to do?

Gartner: A hype cycle

Source: @gartner.com https://www.gartner.com/en/research/methodologies/gartner-hype-cycle/

It doesn’t matter what we choose now or what we chose back in the day. We will still get tempted or have to rewrite our code later down the road. Reasons to do it might vary:

  • Your company was using [insert framework name] and is unable to hire new folks
  • You feel the old solution is not working out for you anymore, and you want something new
  • You succumbed to the industry trends and want to use latest and greatest

Unless we break the cycle.

Constant improvement and shipping a new, better version is planted deep inside our industry. The need to make more efficient, less complex, prettier, robust solutions is breathing down our necks. The article describe the thought process, how:

  • What is HDD – Hype Driven Development
  • Break the cycle
  • Do not fall for the hype. Try to “feel” what works for you and go with that
  • Deal with hype
    • Research and test out before making a decision
    • Is it solving your problem, and what is the cost?
    • Get an opinion from other people

The last one might be tricky if you are working in a small company or a team of not so experienced team members. Try to look for an opinion from an architect or a senior engineer. Just because some library is working out nicely for AirBnB and their website, might not be the best for you, and you might have overlooked some aspect of it. Talking to someone experienced is sometimes a privilege, but if you have it, use it! Excellent read!

[Read More]

How to integrate with Visual Studio Code, Azure Cloud instance and Docker desktop

Categories

Tags docker containers devops azure python

Back in January, Docker and Microsoft Joined In Hand to Hand for New Strategic way to help developers and development teams to build and ship application better way . key part of this strategy to helping involve the ecosystem. By Sangam Biradar.

Visual Studio Code is one of best tool for all developer with lot of open source extensions and it is widely used tool in day to day developer’s life.

This is step by step tutorial which covers deploying simple Python application:

  • Installing Visual Studio Code
  • Install Docker extension for Visual Studio Code
  • Create Dockerfile with Python runtime
  • Create Python application
  • Build DockerFile and run Dockerized
  • Check containers via Docker extension in Visual Code
  • Creating Azure Container Registry
  • Enable admin more
  • Check your Azure Container Registry via portal

Each step is documented with detailed screen grabs and the code is also provided via GitHub repository. Good read!

[Read More]

Memory management in Java

Categories

Tags java programming devops

In this article, we will see how does the Java programming language is doing memory management, we will look at registers, stack, heap, constants, non-ram memory, and the famous Java garbage collector. Let’s start with the fastest storage in Java the register. By Aleksandar Vasilevski.

Garbage Collector in Java is running in the background and looks into all objects that are in the memory to find out objects that are not referenced. Every unreferenced objects that are found are deleted so the space can be allocated for other objects. Unlike other languages such as C where memory allocation and deallocation it’s manually, in Java it’s done automatically by default.

The article explains in clear manner following:

  • Register
  • Stack
  • Heap
  • Constant
  • Non-RAM
  • Java Garbage Collector

Memory management in Java is a very interesting topic but very broad topic too, Java itself will manage the memory without major interventions by the programmer, but knowing how memory work in will give you the advantage of writing good and optimized code in terms of memory usage, finding and fixing memory leaks. The article also provides example code together with explanation how Java memory management would work on selected piece of code. Nice and informative!

[Read More]

An introduction to the automation test wheel

Categories

Tags tdd programming javascript json

As a software tester, I like thinking about testing a product from a number of different angles. Over the last few years I’ve learned about security testing and performance testing, and I’ve come to see how important those activities are in validating software quality. By Kristin Jackvony.

As testers, we should be validating the quality of the entire application. In thinking about how to incorporate all test types into a traditional testing workflow, author conceived of the idea of an Automation Test Wheel.

Automation test wheel

Source: https://www.ministryoftesting.com/dojo/lessons/an-introduction-to-the-automation-test-wheel

Each section of the wheel should be considered when you are creating a test automation strategy. Author included a GitHub repository showing a working example of each test type. Additionally, the “Read Me” section of each repository has a link to a blog post that describes how to run the tests.

The article is split into following parts:

  • The traditional approach: the test automation pyramid
  • The sections of the automation wheel
  • What about the test pyramid
  • What about manual testing?
  • Why are the sections of the wheel all the same size?
  • What about monkey testing, data-driven testing, etc.?
  • Designing a test strategy with the automation test wheel

And remember manual testing always has a place in the tester’s tool belt. Great read!

[Read More]

5 reasons Elixir can be your competitive advantage

Categories

Tags elixir web-development functional-programming software-architecture

Elixir is a relatively new programming language. Release of v1.0 was announced on September 18, 2014. Elixir has been trusted by several companies to be part of their toolset. Some of those well-known companies that publicly shared they use Elixir to build their products are Pinterest, PagerDuty and Wistia. By Elvio Vicosa.

The Elixir language and the Erlang eco-system have a special relationship with a number of industries, which have been relying on and benefiting from it: telecoms, banking, e-commerce, advertisement, instant messaging, IoT,

Elixir has the concept of Supervisors, which goes hand in hand with the “let it crash” idea. As the name implies, “supervisors” are used to supervise other processes. When a supervised process crashes, a “supervisor” kicks in and take measures to handle the crash.

The article main focus is on:

  • Battle-tested environment with modern features
  • Concurrency
  • Performance
  • Scalability
  • Fault-Tolerance

Elixir is a unique, powerful and productive language. It includes features that enable development teams to build distributed, fault-tolerant and highly-available systems. Good one!

[Read More]

Introduction to Python SQL libraries

Categories

Tags python sql database software-architecture

All software applications interact with data, most commonly through a database management system (DBMS). Some programming languages come with modules that you can use to interact with a DBMS, while others require the use of third-party packages. In this tutorial, you will explore the different Python SQL libraries that you can use. You will develop a straightforward application to interact with SQLite, MySQL, and PostgreSQL databases. By Usman Malik.

  • Understanding the database schema
  • Using Python SQL libraries to connect to a database
  • Creating tables
    • Inserting records
    • Selecting records
    • Updating table records
    • Deleting table records

SQLite is probably the most straightforward database to connect to with a Python application since you don’t need to install any external Python SQL modules to do so. What’s more, SQLite databases are serverless and self-contained, since they read and write data to a file. By default, your Python installation contains a Python SQL library named sqlite3 that you can use to interact with an SQLite database.

Links to further resources also included. Straight forward good tutorial!

[Read More]

Get a LoadBalancer for your private Kubernetes cluster

Categories

Tags devops kubernetes containers microservices

In this tutorial, author will walk through how you can expose a Service of type LoadBalancer in Kubernetes, and then get a public, routeable IP for any service on your local or dev cluster through the new inlets-operator. By Alex Ellis.

The inlets-operator is a Kubernetes controller that automates a network tunnelling tool I released at the beginning of the year named inlets. Inlets can create a tunnel from a computer behind NAT/firewall/private networks to one on another network such as the internet. Think of it like “Ngrok, but Open Source and without limits”.

Alex Ellis

First we’ll create a local cluster using K3d or KinD, then create a Deployment for Nginx, expose it as a LoadBalancer, and then access it from the Internet.

The article walks you through:

  • Prerequisites
  • Option A – Install your local cluster with k3d
  • Option B – Install your local cluster with KinD
  • Create a Cloud Access Token
  • Deploy the inlets-operator into your cluster
  • Create a test deployment
  • Expose Nginx as a LoadBalancer
  • Access your local cluster service from the Internet
  • Management and the CRD

… and more. Plenty of screen shots and good explanation of all the commands you will use to run your cluster. There is also link to video demo. By using inlets and the new inlets-operator, we can now get a public IP for Kubernetes services behind NAT, firewalls, and private networks. Exciting!

[Read More]

How to design for panic resilience in Rust

Categories

Tags programming functional-programming learning performance

Don’t panic! Learn to build quality software resilient to errors. In this story, we discuss methods for panic resilience in Rust applications, to make quality software users can rely upon. By Luke I. Wilson.

If you consider your software a car driving at about 60 miles per hour, a panic is like hitting a brick wall.

Some newer languages designed after C use exceptions for error handling, which is a high-level abstraction to error codes. Calling a function which may fail and cause an exception requires a try and catch block – to execute code that may cause an exception, and to handle the error signaled by the exception. Exceptions are still not always explicitly handled, and thus some lazy programmers handle exceptions the same way as .unwrap() handles errors in Rust — print the error and fail.

A crash is not ever “appropriate” behavior, but it’s better than allowing your system to cause physical damage. If at any time it may be believed that the software could cause something deadly, expensive, or destructive to happen, it’s probably best to shut it down.

The article looks at three crucial sections about handling errors in Rust:

  • When to Panic,
  • Handling Errors,
  • And the additional section: Error Handling in a Library.

It is always better to exit with an error code than to panic. In the best situation, no software you write will ever panic. A panic is a controlled crash, and must be avoided to build reliable software. Rust empowers anyone to build highly robust, reliable, and efficient software. So don’t panic! Use the correct methods for writing reliable software with Rust. You will get links to further reading and example code to explain points mentioned in article. Well done!

[Read More]

How to deploy Deno applications to production

Categories

Tags javascript open-source nodejs devops

In this tutorial, you will be creating a simple Deno application to display hello world. Unlike NodeJS, you do not need to run npm init to create a new application. You can simply create a TypeScript file and start coding away. By Michael Okoh.

You will need Docker installed on your server and local machine, an Ubuntu server, you can get one from DigitalOcean, basic understanding of git, basic understanding of the command line interface.

The article covers the following topics:

  • Prerequisites
  • How to create a Docker configuration
  • How to build and run the container
  • How to deploy to production (using push to Github)

All the code is provided together with the commands to run on the remote server instance. Good read for anybody new to Docker, containers and app hosting!

[Read More]

How I created a coronavirus tracker app in just 3 days with Ionic and Firebase

Categories

Tags app-development react javascript open-source android ios

Kapil Raghuwanshi creted this tutorial for any fun of hybrid mobile apps. He is really fond of Hybrid App technologies – they help us achieve so much in a single codebase. Using the Ionic Framework, author developed a cross-platform mobile solution for tracking Coronavirus cases in just 3 days.

You are going to learn how to develop an Android, iOS, and Progressive Web App to track the cases around us with the latest related news, help, and feedback sections. Thus this tutorial is for everyone who has just a basic understanding of Web Fundamentals. So, let’s begin.

The author then describes everything in detail:

  • Idea, plan, and engineering
  • Technology stack
  • Tooling
  • Installation & scaffolding
  • Developing COVID19 dashboard and safety guidelines tabs
  • Developing country and news tabs
  • Developing the help tab and deployment

The article is very detailed and contains a ton of resources, detailed explanations of the code with multiple screen-grabs for all 3 targeted platforms (Progressive Web App (PWA), IoS and Android). Due to policy issues of the epidemic, Google Play Store, Amazon App Store, and others are not accepting app packages related to the Coronavirus. So until and unless you have authenticity proofs from any Government, Hospitals, or any designated Health Institution, no stores are accepting these apps. Still super useful and we recommend to bookmark the article for your future reference!

[Read More]