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 ]

Understanding garbage collectors

Categories

Tags java programming miscellaneous oop

Great explanation how the default garbage collectors work. Garbage collection (or GC) is an automated way to reclaim for reuse memory that is no longer in use. By Christine H. Flood.

Unlike other languages in which objects are allocated and destroyed manually, with GC, Java programmers don’t need to pick up and examine each object to decide whether it is needed. Instead, the omniscient GC housekeeper process works behind the scenes quietly discarding objects that are no longer useful and tidying up what’s left. This decluttering leads to an efficient program.

The article does a great job explaining:

  • What is garbage collection?
  • Parallel garbage collector
  • Garbage-first garbage collector
  • Shenandoah garbage collector

Also note that since this article was first published, GC in the JDK has evolved in new ways. Nice work!

[Read More]

An overview of server-side HTTP APIs in Go

Categories

Tags golang programming apis web-development

An tutorial by Abhishek Gupta in which he explores the net/http package in Golang which provides the server and client-side APIs for HTTP services.

This is another piece in a series on the Go programming language which covers some of the most commonly used Go standard library packages: encoding/json, io, net/http, sync, etc.

In this article you will learn about the fundamental building blocks, ServeMux and Server:

  • ServeMux (Multiplexer)
  • Server (HTTP server)
  • Functions as handlers

Nice read! You would cover the basic constructs of the server-side HTTP APIs offered by the net/http package. You will also have access to the all of the code examples on GitHub.

[Read More]

How does Alibaba ensure performance of system components in a 10,000-node Kubernetes cluster?

Categories

Tags devops kubernetes cloud containers software-architecture

The production environment of Alibaba consists of more than 10,000 containerized applications, with the entire network of Alibaba being a massive system using millions of containers running on more than 100,000 hosts. This is how they run it. By alibaba.com.

When running common loads in the simulated cluster, the team encountered extremely high latency, up to 10s in fact, for some basic operations such as pod scheduling. Moreover, the cluster was also unstable.

The article then describes, how:

  • Storage capacity of etcd was improved by separating indexes and data and sharding data. The performance of etcd in storing massive data was greatly improved by optimizing the block allocation algorithm of the bbolt db storage engine at the bottom layer of etcd. Last, the system architecture was simplified by building large-scale Kubernetes clusters based on a single etcd cluster
  • List performance bottleneck was removed to enable the stability of operation of 10,000-node Kubernetes clusters through a series of enhancements, such as Kubernetes lightweight heartbeats, improved load balancing among API servers in high-availability (HA) clusters, List-Watch bookmark, indexing, and caching
  • Hot standby mode greatly reduced the service interruption time during active/standby failover on controllers and schedulers. This also improved cluster availability
  • Performance of Alibaba-developed schedulers was effectively optimized through equivalence classes and relaxed randomization

Excellent read, well worth your time!

[Read More]

How a single Raspberry Pi made my home network faster

Categories

Tags software iot software-architecture learning

The Pi Hole project adds an entire new level of performance and security to our home network. Powered by Docker and a Raspberry PI I can now block all unwanted Ads and Metrics network wide. By Brian Christner.

The author used Raspberry Pi project Pi Hole as the gatekeeper to his home network.

The Pi Hole answers your computer’s DNS queries and if it is a domain on the blacklist, it sends the request to the Pi Web server. This Web server just serves up a blank page. So instead of loading the ad from the real domain, the blank page from the Pi is downloaded, thus “blocking” the ad or metric.

The article then describes:

  • Installing Pi Hole – everything in a Docker container
  • Pi Hole in Operation
  • Review after 1 month in operation

The Pi has been chugging along at 8% memory utilization, and the network is considerably faster when surfing the web. Statistically speaking author’s household averaged 15% of queries blocked and a spike over a bad weather weekend of 30% blocked. Nice one!

[Read More]

Run Python versions in Docker: How to try the latest Python release

Categories

Tags python docker containers learning programming

Geir Arne Hjelle put together this guide about how to run different Python versions using Docker, including how you can have the latest alpha running on your computer within minutes.

A Docker container is an isolated environment. Therefore, you usually don’t need to add a virtual environment inside the container. Instead, you can run pip directly to install the necessary packages

In this tutorial, you’ll learn:

  • Which versions of Python are available
  • How to get started with Docker
  • How to run different Python versions in Docker containers
  • How to use Docker containers as Python environments

Links to further resources and interesting reading provided. Good, detailed guide for anybody relatively new to containers and Docker. Give it a try!

[Read More]

Distributed teams are helping startups scale faster

Categories

Tags startups teams miscellaneous career cio

An article by Alexandre Lazarow about a broader trend – the growing trend of a distributed workforce model.More startups are using a distributed workforce model earlier in their lifecycle.

Mary Meeker’s latest Internet Trends Report shows for instance that 5% of the American labor force works remotely (nearly double the 3% in 2000), representing over 8 million Americans. Astoundingly, nearly 50% of the US workforce has spent at least some time working remotely.

The article dives into:

  • What ‘distributed’ means
  • Diversifying the talent pool
  • The labor cost advantage
  • More integrated, not less

Distribution refers to an organization where the team is dispersed across multiple locations. For startups, that might mean the technology development team and sales teams are in different geographies. Some startups choose to go a step further by becoming remote, where they may not have formal offices. Nice one!

[Read More]

How to conduct UX research if you're an introvert

Categories

Tags ux how-to big-data data-science management teams

If your goal is to gather as many insights as possible, you need to open your participant up. And how do you open someone up if you’re scared yourself? Here are some things I learned along the way that you might find helpful. By Olga Wojnarowska.

Memorize formalities you have to say at the beginning. And in case you get nervous and your memory fails, have some notes on you that will help you go on.

The article then describes the steps you can take to conduct interview:

  • Be prepared
  • It’s your territory – you are in charge here
  • Start off with an icebreaker
  • Take breaks
  • Try an unconventional approach

If you’re an introvert, it might not mean that you’re super shy, but it probably means that social interaction drains you. So take breaks to help your energy levels. Good read!

[Read More]

Practicing computer science skills anytime

Categories

Tags learning programming how-to data-science

As parents, we are constantly getting advice on how to prepare our children for the future. At the same time, the tools they are using to learn, like tablets, computers, and the internet, may be very different than the ones we grew up with. By Katie Hessen, M.S.

For this young generation, computer science will be a part of many aspects of their lives — even if they don’t become professional computer programmers. While many schools do not start computing classes until middle school, there is no need to wait to introduce your child to computer science.

Computational thinking practices set up learners for more than working on a computer. Building your child’s computational thinking skills will increase her confidence and better prepare her for the road ahead. Best of all, you are probably already using computational thinking practices in your everyday life. Here are some ways you can practice computational thinking skills as a family:

The article focuses its attention on some ways you can practice computational thinking skills as a family:

  • Decomposition
  • Debugging
  • Persistence
  • Pattern Recognition

The article also has plethora of further resources for playing, reading, watching. Excellent!

[Read More]

HTML, CSS and Go: Vugu premise and example

Categories

Tags javascript frameworks nodejs web-development miscellaneous

An article by Brad Peabody about Vugu andd WwebAssembly. Vugu is a Go library that makes it easy to write HTML markup and Go code which is compiled and run in the browser using WebAssembly.

To put it differently: Vugu lets you write single-page web applications (SPAs) starting with HTML layout and using Go to handle program logic.

The article dives into the topic:

  • How it Works
  • Hello, World
  • But Why?
  • What Makes Web Development Productive
  • Reactive web programming has proven its effectiveness

… and more. The example code is also available in this repo. While Vugu is in its infancy, it still supports many features one would expect in a complete web UI library or framework: single-file components, event handling, conditions and loops with vg-if and vg-for, nested components with properties, static html generation, a caching system to reduce unnecessary updates, a development server to handle the edit/build/reload cycle upon page refresh, a basic playground. Give it a try!

[Read More]

Safer code with container types (Either and Maybe)

Categories

Tags javascript nodejs web-development programming how-to

Joan Llenas put this article together about safer types with TypeScript. There are only two hard things in Computer Science: null and undefined.

Every time we annotate a variable with a Type, that variable can hold either a value of the annotated Type, null, or undefined (and sometimes even NaN!).

That means, to avoid errors like Cannot read property ‘XYZ’ of undefined, we must remember to consistently apply defensive programming techniques every time we use it.

Another tricky aspect of the above fact is that semantically, it’s very confusing what null and undefined should be used for. They can mean different things for different people. APIs also use them inconsistently.

The article then focuses on:

  • What can go wrong?
  • Maybe to the rescue
  • Either to the rescue

And here is an example:

import { Maybe } from "ts.data.maybe";

interface User {
  id: number;
  nickname: string;
  email: string;
  bio: Maybe<string>;
  dob: Maybe<Date>;
}

We’ve learned that container Types are wrappers for values that provide APIs so we can safely operate with them. Nice one!

[Read More]