teleren/devto huggingface dataset:
October 2021 Releases – Horizon 28.1.1, Meridians 2021.1.5, 2020.1.13, 2019.1.24
Tags: news, horizon, meridian
Published: 2021-10-18 19:35:03

---
title: October 2021 Releases – Horizon 28.1.1, Meridians 2021.1.5, 2020.1.13, 2019.1.24
published: true
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cee608ls33lqsu1t1o14.png
date: 2021-10-14 17:14:02 UTC
tags: News,Horizon,Meridian
canonical_url: https://www.opennms.com/en/blog/2021-10-14-october-2021-releases-horizon-28-1-1-meridians-2021-1-5-2020-1-13-2019-1-24/?utm_source=rss&utm_medium=rss&utm_campaign=october-2021-releases-horizon-28-1-1-meridians-2021-1-5-2020-1-13-2019-1-24
---

In October, we released updates to all OpenNMS Meridian versions under active support, as well as an update for Horizon 28.

### Note: Breaking Changes Coming in Horizon 29

We are currently planning on releasing Horizon 29 next month.

Along with a bunch of bug fixes and enhancements, we have a couple of things that are changing significantly that it's worth noting.

1. **OpenNMS will run as non-root by default.**  
_However_, because it is possible to have a significant number of resources writing files into the `$OPENNMS_HOME/share` directory, we will not automatically fix ownership of those files on upgrade, because it could take an indeterminate amount of time to run `chown` on the entire shared data tree.<br><br>Be prepared for some downtime while upgrading.

2. **Amazon SQS support for communicating with Minion will be removed.**  
RPC communication and the handling of configuration are changing significantly enough that we would need to rewrite the SQS component and we don't believe it to be in wide deployment, compared to using gRPC or Kafka.

### Horizon 28.1.1

Release 28.1.1 contains a number of bug fixes and enhancements, including web UI, Minion, Docker, and documentation improvements.

For a high-level overview of what has changed in Horizon 28, see [What’s New in OpenNMS Horizon 28](https://docs.opennms.com/horizon/28.1.1/releasenotes/whatsnew.html).

The codename for Horizon 28.1.1 is [_Mikaela Banes_](https://transformers.fandom.com/wiki/Mikaela_Banes).

### Meridian Point Releases

Meridians 2019 and 2020 included some fixes in how Docker containers are generated, plus an enhancement to queries used by Helm to support more fields in queries.

Meridian 2021.1.5 also contains a number of other bug fixes and enhancements, including web UI and documentation improvements.

For a list of changes, see the release notes:

- [2019.1.24](https://meridian.opennms.com/releasenotes/2019/latest/#releasenotes-changelog-Meridian-2019.1.24) ([_Hairu_](https://wikipedia.org/wiki/HD_7199_b))
- [2020.1.13](https://meridian.opennms.com/releasenotes/2020/latest/#releasenotes-changelog-Meridian-2020.1.13) ([_Strait_](https://wikipedia.org/wiki/Strait))
- [2021.1.5](https://docs.opennms.com/meridian/2021.1.5/releasenotes/changelog.html#releasenotes-changelog-Meridian-2021.1.5) ([_Viking 1_](docs/modules/releasenotes/pages/changelog.adoc))
How To Shortlist Online Courses ?
Tags: udemy, coursera, onlinecourse, androidclub
Published: 2021-10-14 17:11:26

I am a Gen-Z student pursuing engineering. I never explored learning beyond college classes but the pandemic helped me broaden my horizon to newer skills and I found that the best way to do this was through online courses. Virtual learning has become a dire need and it has caused significant changes in the educational field. Personally, I have expanded my skill-set by exploring courses like Web Development, playing guitar, photography, content writing and digital marketing ...

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4gwrlt69c06ae9kiyw6o.jpg)

Here are the 4 factors I considered while choosing an online course which even you can be mindful of.


* <b>Decide the amount of time you can devote</b>

First and foremost, one should recognize the level up to which learner wants to learn and determine the time one would be able to provide to this course. Use duration filter in search options and select the duration slab which one has decided upon earlier.


* <b>The content should be thoroughly analysed</b>

It is always a good practice to know the final outcome you expect from a course and then matching it with the content offered by the course. On Coursera and Udemy one can check the video titles and their descriptions before enrolling on a course. See if the course offers practical assignments and their solutions.
If you are already an intermediate level knower of the skill, you should check if the course offers advanced level skills by analyzing the content of the course.

Never rely on difficulty level filter in search options!!

* <b>Flexibility of the course</b>

Almost all the online courses offered are fully flexible with respect to the content watching deadlines but some courses offered by universities have assignment submission deadlines from the date of course enrollment (Such courses might even be graded).

* <b>Course review and educator review from previous learners</b>

Many course creators run YouTube channels and publish some modules from their courses on YouTube. Those videos are a brilliant way to check your compatibility with educators. Student reviews are subject to one’s personal opinion but can be checked for red flags !! about educators.

Online courses have become an integral part of our education now. These courses also help digital nomads—someone who espouses a technology-enabled or location-independent lifestyle (I am probably the KING of this clan !!). No matter where you are in this world you can continue with your learning journey.

#### ⚠️⚠️WARNING !!! (serious talk ahead) ⚠️⚠️

One of the most important aspects is the inherent flexibility of such courses, however, there is a catch, one has to be extremely self-motivated in order to learn efficiently through these courses.
#### HAPPY LEARNING😁😁
Simple guide to Web Scraping with NodeJS
Tags: node, javascript, programming, webdev
Published: 2021-10-14 17:00:51

With one of my projects ( [rocketcrew.space](https://rocketcrew.space) A job board dedicated to the space industry ), I have to collect job offers on career pages of different companies. Every site is different, but each one can be scraped with one of three methods.

## 1 - Look for an API
The first thing you have to look at when you want to scrape a website is the network tab of the browser dev tools.
Press F12 and go to the "Network" tab. You will be able to see every request that the site is making.
If you're lucky, you can spot an API call that the website is using to get its content information, like job offers for a career page.
So all you have to do is to use the same API request to get the website content. You can use the Axios library for example.

## 2 - Server Side Rendered websites

Some websites are SSR, short for Server Side Rendered. It means that all the HTML page is generated on the backend. So what we want to scrape can be found directly in the HTML, we just have to parse it.

To do this you can use Axios to get the HTML page, and Cheerio to parse it.
Cheerio allows you to parse the HTML with the same syntax as jQuery.

Here is a simple example.

```jsx
const response = await axios.get(`https://website-url.com`);

const $ = cheerio.load(response.data);
const description = $('#description').html();
```

## 3 - Client-Side Rendered websites

The last type of site you can encounter is a SPA ( Single Page Application ). In that case, the server only sends a basic HTML file and the rest of the site is generated with Javascript, client-side.
In that case, we cannot use the previous method because the GET request would only return a basic HTML file without its content.
So to scrape this kind of site, we have to simulate a browser in the backend to allow Javascript to generate the website content.
With NodeJS, we can use Puppeteer, which will allow us to create, and control a Chrome browser.

Here is a little example to get a page h1 text.

```jsx
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto("https://website-url.com");

const pageTitle = await page.evaluate(() => document.querySelector("h1").textContent);

await browser.close();
```

Let me know if you have any questions!

Follow me on Twitter If you want to learn how I am building RocketCrew!
[https://twitter.com/siglavesc2](https://twitter.com/siglavesc2)
How to create your own custom VS code snippets.
Tags: vscode, webdev, beginners, productivity
Published: 2021-10-14 16:57:52

Code snippets can be very useful and can potentially increase productivity and reduce input errors.

With snippets we can insert commonly used code blocks and can create boilerplate templates saving us keystrokes.

Snippets in VS code are written in JSON and to create your own custom snippet.

Snippets can be configured through Preferences (Ctrl + Shift + P) -> Configure User Snippets.

It should look something like this.
![snippets](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t5ijjpgnzqrdeaaj8ivp.png)
 
Snippets can be configured for every file or specific languages in their JSON file.

Every snippet has 3 main properties
1. prefix - Shortcut by which it will be called.
2. body - Actual code to be inserted
3. description - Description of the code

This is a custom snippet with prefix **arfc** for generating a React component. It works in following steps.
1. Imports React
2. Creates a functional React component with placeholder name *functionName*
3. Returns an empty *div*
4. exports the component
![arfc](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q9yalroltabwlhj667uw.png)

It will yield this code.

![arfc result](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4xqdirsepqvthwy1kpz6.png)
 
Another one of my favorite is
![fetch data](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/48r8hrjxddf7du348lk6.png)

The **ftcData** will inject this piece of code

![fetch api](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wtlqt1cncp4x2i8ft8v.png)
  
A very good tool to generate custom snippets is this [Snippet Generator](https://snippet-generator.app/), which works for Sublime and Atom as well.

A very popular VS code extension for JavaScript, React, React-Native, Redux snippets
![vs code extension](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8et000zlnuygc3hrfw5a.png)
(SHOWCASE) Netflix Clone(basic) in Sveltekit
Tags: tailwindcss, svelte, javascript, css
Published: 2021-10-14 16:56:42

{% youtube LJ-8MUyfftQ %}

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ops7a6fg754glmqvs58w.png)![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/paz5aihs2x274v0m66t4.png)![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/noapnloxoxlqs26clo9i.png)
This is a Netflix Clone Project with Sveltekit, Tailwind CSS, TMDB API.

##SOURCE CODE [CLICK HERE](https://rebrand.ly/netflix_svelte)
##DEMO URL [CLICK HERE](https://netflix-clone-svelte.vercel.app/)


#Features:

 1. Basic Functionality

 2. Most Focus is on design

 3. Movie thumbnails loaded from API

 4. Server Side Application

 5. Single Page Application

 6. The API key is hidden.



# Start a Project

1. Create an API key in TMDB website 'https://www.themoviedb.org/'
2. Add the key in .env file

# Run the Project

1. `npm i`
2. `npm run dev`

# Build the project

1. `npm run build`

## To Preview

`npm run preview`
Michael Weber
Tags: computerscience, machinelearning, programming, webdev
Published: 2021-10-14 16:55:20

![MichaelWeber](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4chys4vm68pb6tdsnkkt.jpg)
Michael Weber - Researcher
Artificial intelligence & computer science
Hi i am new here just to say:
"Hello World"
More news at 11
https://vvv.code.blog
Code For The Future
Michael Weber
Tech Mahindra "Student Report" Recruitment Exam Question
Tags: java, computerscience, programming
Published: 2021-10-14 16:52:41

## Statement :- 
>Given a list of N students, every student is marked for M subjects. Each student is denoted by an index value. Their teacher Ms. Margaret must ignore the marks of any 1 subject for every student. For this she decides to ignore the subject which has the lowest class average.<br>Your task is to help her find that subject, calculate the total marks of each student in all the other subjects and then finally return the array of the total marks scored by each student.

**Input Specification:**
**input1:**
 An integer value N denoting number of students

**input2:**
An integer value M denoting number of subjects 

**input3:**
A 2-D integer array of size N'M containing the marks of all students in each subject.

**Output Specification:**

Return an integer array of size N containing the total marks of each student afte deducting the score for that one subject.


### Example 1:
**INPUT**
```
3 5
75 76 65 87 87
78 76 68 56 89
67 87 78 77 65
```
**OUTPUT**
```
325 299 296
```
### Example 2:
**INPUT**
```
3 3
50 30 70 
30 70 99 
99 20 30
```
**OUTPUT**
```
120 129 129
```

**Explanation:**<br>
Out of these subjects, the students average was lowest in subject 2 <br> i.e 30+70+20= 120/3=40

So the teacher will ignore marks of this subject and will consider the title other two subjects for each of the three students i.e. 120 129 129 respectively

Hence (120 129 129) is returned as the final output.

[Click Here to RUN CODE](https://blog.atharvasid.me/tech-mahindra-student-report)

Solution:-
```
import java.util.Scanner;

public class MyClass {
    public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
		int noOfStudents = sc.nextInt();
		int noOfSubjects = sc.nextInt();
		int index=0;
		int[] avg = new int[noOfSubjects];
		int[] total = new int[noOfSubjects];
		int[] result = new int[noOfStudents];
		int[][] marks = new int[noOfStudents][noOfSubjects];
		
		for(int i=0;i<noOfStudents;i++)
		{
			for(int j=0;j<noOfSubjects;j++) {
				marks[i][j] = sc.nextInt();
			}
		}
		for(int i=0;i<noOfSubjects;i++)
		{
			for(int j=0;j<noOfStudents;j++) {
				total[i] += marks[j][i];
				
			}
		}
		for(int j=0;j<noOfSubjects;j++) {
		//	System.out.print(total[j]+" ");
		}
		// System.out.println("");
		for(int j=0;j<noOfSubjects;j++) {
			avg[j] = total[j]/noOfSubjects;
			
		//	System.out.print(avg[j]+" ");
		}
		int min = avg[0];
		
		  for(int i = 0; i < avg.length; i++)
	       {
	            if(min > avg[i])
	            {
	                min = avg[i];
	                index=i;
	            }
	        }
		//  System.out.println(index);
		  
		  for(int i=0;i<noOfStudents;i++)
			{
				for(int j=0;j<noOfSubjects;j++) {
					if(j!=index) {
					result[i] += marks[i][j];
					
					}
				}
			}
		  for(int j=0;j<result.length;j++) {
				System.out.print(result[j]+" ");
			}

    }
}
```
Coding offline vs. on the grid
Tags: internet, homeoffice, workfromhome
Published: 2021-10-14 16:36:59

These are the programming languages in my journey, chronologically:
* C
* Assembly
* C++
* Python
* Bash
* C++, again
* C#
* Python, again
* JavaScript
* C#, again
* Java
* now: full-stack with Java, Spring Boot, and Angular

# Retrospective
Now looking back, among those languages, I think: working with C++ and Python for my computer vision and robotics projects were the most enjoyable. Why: I could be satisfied with just my laptop, anywhere, especially in 30-plus-minute train rides, without Internet.

# The present
Back to the present: I deal with web and middleware applications. The resources that I need are relatively huge:
* IntelliJ IDEA (jokingly said that it can turn our machine to a heater for the cold winter days),
* Internet connection,
* one or two other running applications (usually on other servers),
* Postman,
* databases,
* browser (let's bear in mind on how gluttonous Chrome is with RAM), 
* and once a while: Docker.

## The struggle
Sure, I can host those locally. But I'll be frank, even with 32 GB of RAM and a high performance multicore processor, I prefer not to host other instances and databases on my own machine. It's like forcing a fully loaded truck to go uphill. Sure, the truck is up for it, but think of the gas! LOL. And I'm being cautious of my electricity bill, since most of us work from home since COVID-19. Shouldn't our employers compensate us for using our own Internet and electricity?

For one particular bug fix ticket, I did have to host a containerized database on my machine. Verdict: not bad. 7/10 I'd do that again.

I wrote this with the thought of missing the old days working offline with C++ and Python, especially these two are the main ingredients of my side projects.

My side projects are now dormant, because in my free time, I prefer to attend to other leisure activities (manga, walking, coffee shops, movies, and SLEEPING) - which are good actually for my health.

# Conclusion
Now that I've seen what I can do with Jenkins, AWS, Docker, etc, I am sure that I will always need to work online. The thought of working offline (without Internet) is unfathomable.
Live From INTERACT: Microsoft’s Developer Velocity Research
Tags: techtalks, podcast, cloud, agile
Published: 2021-10-14 16:29:00

This week we have another episode from the 2021 engineering leadership conference INTERACT. In this live conversation, Conor Bronsdon, Community Lead at LinearB and the executive producer of the Dev Interrupted podcast, interviews Henrik Gütle, GM of Azure for Microsoft Canada.

Henrik joins the [Dev Interrupted podcast](https://devinterrupted.com/podcast/live-from-interact-microsofts-developer-velocity-research/) to break down the results and key takeaways of Microsoft’s research into the impact of remote work on developer velocity — and what engineering leaders can learn from it.

The exhaustive study taken over the course of more than a year, both before the pandemic and while it was ongoing, surveyed hundreds of companies regarding a host of topics including: agile practices, cloud adoption, toolsets and talent acquisition. The results of this survey are far-reaching and serve to provide companies with an understanding of transformative business practices.

If you want to read the Microsoft’s Developer Velocity Report for yourself, you can find it on their website: [https://azure.microsoft.com/en-us/resources/developer-velocity-lessons-from-digital-leaders/](https://azure.microsoft.com/en-us/resources/developer-velocity-lessons-from-digital-leaders/)

#**Listen to the full episode**
{% spotify spotify:episode:0JU3SKIjGvr9IoWDICGQ8c %}

## Episode Highlights Include:

* The business impact of developer velocity

* Whether or not remote teams saw a drop in productivity

* The importance of tooling and toolsets

* Why every leader needs to think about talent acquisition daily

* How to interpret this study if you are starting a business

## Check out a clip from the Dev Interrupted YouTube

{% youtube cYuGPmgaIgU %}

## Join the Dev Interrupted Community

With over 1800 members, the Dev Interrupted Discord Community is the best place for Engineering Leaders to engage in daily conversation. No sales people allowed. [Join the community >>](https://discord.com/invite/devinterrupted)

![](https://cdn-images-1.medium.com/max/2048/0*NIp55MSa7-kTC6wO.png)

*Originally published at [https://devinterrupted.com](https://devinterrupted.com/podcast/live-from-interact-microsofts-developer-velocity-research/).*
Visualize dependencies across your code with code maps in Visual Studio 2019
Published: 2021-10-14 16:06:53

(1). In Solution Explorer, select the projects, assembly references, folders, files, types, or members that you want to map.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fgg5qkwh5bu2roo0it7q.png)

(2). On the Solution Explorer toolbar, choose Show on Code Map Create New Graph From Selected Nodes Button. Or, open the shortcut menu for one or a group of items and choose Show on Code Map.

You can also drag items from Solution Explorer, Class View, or Object Browser, into a new or existing code map. To include the parent hierarchy for your items, press and hold the Ctrl key while you drag items, or use the Include Parents button on the code map toolbar to specify the default action. You can also drag assembly files from outside Visual Studio, such as from Windows Explorer.

(3). The map shows the selected items within their containing assemblies.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l769tyi2jaomq4ahgt23.png)

(4). To explore items, expand them. Move the mouse pointer on top of an item, then click the chevron (down arrow) icon when it appears.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p38x5r2foozz03w1z4bb.png)

To expand all items, select them using Ctrl+A, then open the shortcut menu for the map and choose Group > Expand. However, this option isn't available if expanding all groups creates an unusable map or memory issues.

(5). Continue to expand items you are interested in, right down to the class and member level if necessary.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lt0pr8l4g23qp50q2zzm.png)

To see members that are in the code but don't appear on the map, click the Refetch Children icon Refetch Children Icon in the top left corner of a group.

(6). To see more items related to those on the map, select one and choose Show Related on the code map toolbar, then select the type of related items to add to the map. Alternatively, select one or more items, open the shortcut menu, and then choose the Show option for the type of related items to add to the map.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sf0t3jat88wlvfi4xu83.png)

(7). The map shows the relationships. In this example, the map shows the methods called by the Find method and their location in the solution or externally.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3e90ut7pu3j6yb8miogp.png)

(8). To simplify the map and focus on individual parts, choose Filters on the code map toolbar and select just the types of nodes and links you are interested in. For example, turn off display of Solution Folders, Assemblies, and Namespaces.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xtnkuzs6wulj6ou2qpgt.png)

Ref: https://docs.microsoft.com/en-us/visualstudio/modeling/map-dependencies-across-your-solutions?view=vs-2019
Some thoughts about lab 2 and week 1 of SPO600
Published: 2021-10-14 15:43:39

Hello guys, today's blog I'm going to share some thoughts about what I learned in the second week of SPO666(Software Portability and Optimization) and the [lab2](https://dev.to/qzhang125/lab-2-6502-assembly-language-lab-15fj).

##Machine language##
Machine language is a collection of binary digits or bits that the computer could read it. The computer is able to convert the digits or bits into a series of high and low level pulse signals to drive the hardware and process the order from the user.

##Assembly Language##
Assembly language was invented to solve the problem that programmer can not understand the binary digits or bits which the computer could read. So the main part of the assembly language is to help people to understand the machine language.

##Conclusion##
6502 assembly language is the first low-level language I have stepped on so far, it is more complicated than I thought about low-level language. The low-level language is quite a bit far from the popular programming language like C++, Java, Java script. It is more closer to the machine language and it also frequently accesses the memory and other basic components of a machine. It is a bit challenging for me to read and write a little program base on 6502 Assembly language at the beginning of assembly coding experience but I will do more research on it.