teleren/devto huggingface dataset:
We all gotta begin somewhere...
Tags: opensource
Published: 2021-09-08 22:16:25

Hello!

I'm Joshua, a 4th year college student at Seneca College who is taking DPS909 (a course on open source development). I'm young and inexperienced, I got no idea where I'm going. But the one thing I do know is I love coding. I wanted to take this course because I felt like there was a whole world of programming I didn't know about and I needed to take a bit of a jump to see it. I'm completely out of my comfort zone and I feel like I literally know nothing while everyone else knows everything, but that is why I want to take this course. My professor's course introduction video really hit me on the mark the entire time, I just felt called out the entire time! But it also showed me that I'm starting in the right place.

Open source is interesting to me because I know that there are so many projects that are open source and are literally some of the best products/projects out there. Open source covers so many types of things and I can discover many cool projects through it. But I just don't know where or how to start with any of these. It's all incredibly overwhelming, so I wanted to take this course to push myself in the right direction and gain the skills to know what's going on or how to learn what's going on.

As for where I'm at, I'm still living at home in the GTA so fortunately for me I'm not stuck overseas or anything from the pandemic.

I'm not really sure what specifically I am hoping to accomplish from this term. I don't really have any grasp of how the open source community is, so I'm not sure what to be looking for. I guess in that sense I am just hoping to learn lots of new things and see many cool projects and get involved. I'm hoping that this course will help me just dunk myself into the ocean that is open source development and maybe I'll find some amazing stuff that helps me find a goal.

After just taking a look at some of the trending repos in GitHub there were many cool looking projects that sounded really awesome and also at the same time I had no idea what was going on. One repo that really caught my attention was TrinityCore (https://github.com/TrinityCore/TrinityCore). TrinityCore is a MMORPG Framework that is based in C++. It is derived from MaNGOS (Massive Network Game Object Server) but is now its own individual project. I have been enjoying playing the MMO FFXIV for about 2 years now and over the summer have been watching some MMO streamers and just listening in on some of the new MMOs that are coming out. So this repo caught my attention while I'm in my MMO hype phase. I was curious how an MMO framework would work and what was involved.

I'm curious to see what other projects I can find throughout this term and what kinds of things I will learn from this open source course. I hope I can gain some great experiences and start to find a spot in this vast ocean that is open source. So until next time, take care!
September 2021 Releases – Horizon 28.1.0, Meridians 2021.1.4, 2020.1.12, 2019.1.23
Tags: news, horizon, meridian, release
Published: 2021-09-13 19:17:53

---
title: September 2021 Releases – Horizon 28.1.0, Meridians 2021.1.4, 2020.1.12, 2019.1.23
published: true
date: 2021-09-08 21:49:00 UTC
tags: News,Horizon,Meridian,Release
canonical_url: https://www.opennms.com/en/blog/2021-09-08-september-2021-releases-horizon-28-1-0-meridians-2021-1-4-2020-1-12-2019-1-23/?utm_source=rss&utm_medium=rss&utm_campaign=september-2021-releases-horizon-28-1-0-meridians-2021-1-4-2020-1-12-2019-1-23
---

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

### Horizon 28.1.0

Release 28.1.0 contains a bunch of bug fixes and enhancements, including a dependency update related to a CVE.

Note that we bumped the minor version on the release because of the changes made in [NMS-13479](http://issues.opennms.org/browse/NMS-13479) — in order to optimize the flow classification processing, some significant changes were made behind the scenes. There _shouldn’t_ be any change from a user perspective, but we bumped the version just in case.

The codename for Horizon 28.1.0 is [_Bumblebee_](https://wikipedia.org/wiki/Bumblebee_(Transformers))

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.0/releasenotes/whatsnew.html).

### Meridian Point Releases

All Meridian releases this month contained minor security updates, so it is recommended that you upgrade.

2021.1.4 adds a fix for additional node metadata showing in syslog events, plus documentation improvements.

For a list of changes, see the release notes:

- [2019.1.23](https://meridian.opennms.com/releasenotes/2019/latest/#releasenotes-changelog-Meridian-2019.1.23) ([_Boinayel_](https://wikipedia.org/wiki/WASP-6b))
- [2020.1.12](https://meridian.opennms.com/releasenotes/2020/latest/#releasenotes-changelog-Meridian-2020.1.12) ([_Atoll_](https://wikipedia.org/wiki/Atoll))
- [2021.1.4](https://docs.opennms.com/meridian/2021.1.4/releasenotes/changelog.html#releasenotes-changelog-Meridian-2021.1.4) ([_Sputnik 19_](https://wikipedia.org/wiki/Sputnik_19))
Dosya Paylaşımı
Published: 2021-09-08 19:48:15

Gerekenler:

1- Domain
2- Dosya paylaşım sunucusu
3- İstemci
4- "Domain" eklentisi



## Domain Eklentisi ile Dosya Paylaşım Kısayolu Oluşturma

Liman üzerinden politika kullanarak kısayol oluşturmak için aşağıdaki 3 bilgi gereklidir.

Kısayol Konumu: Kısayolunuzun nerede olmasını istiyorsanız o yolu girin.

Çalışacak Komut: Kısayolun çalıştıracağı komut.

Başlatıcı İkonu: Kısayolun ikonu.

![Screenshot from 2021-09-02 11-30-49](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ymwalm7b954a1sm1z426.png)
 

Dosya paylaşımı için komut:
`/usr/bin/bash -c "thunar smb://dosya_paylaşım_sunucusu_makineadı.realm/paylaşım_adı/"`

Örneğin:

Dosya sunucusunda domain kullanıcılarına özel klasörler varsa
`/usr/bin/bash -c "thunar smb://kaptan.taha.lab/$USER/"`

Oluşturulmuş başka bir klasör varsa(bu örnekte 'ortak' isminde)
`/usr/bin/bash -c "thunar smb://kaptan.taha.lab/ortak/"`



İkon: 
'folder-cyan-meocloud'


## İstemci Üzerinde Değişiklikleri Test Etme

İstemcimize gidelim ve paylaşıma eklediğimiz kullanıcı ile giriş yapın. Terminalde `gpupdate` komutunu çalıştırın.

Masaüstünde 'paylasim' isimli bir kısayol görünecektir.

Kısayola tıkladığınızda paylaşımdaki dosyaları görüntüleyebilirsiniz.
Day 447 : Wow
Tags: hiphop, code, coding, lifelongdev
Published: 2021-09-08 21:26:57

_liner notes_:
- Professional : Got up early to take part in the planning for a hackathon we are sponsoring in Japan! Really wish I could be there in person. Hopefully soon. Had a couple of other meetings, reviewed some pull requests, helped out with some community questions, and got my blog post submitted to our Content Management System. For the blog post, I had to also create / redo some graphics and turn a video file into a gif.

- Personal : Last night, I drew up a layout for the events page of my upcoming side project to figure out what data I'll need to have in the database to send to the page. I think I may have worked out some more of the data structure I'll need.

![Landscape of Ridgway, CO, United States on a sunny day with few clouds in the sky, mountains in the distance, and hills of tall trees with yellow and orange leaves in the foreground](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/heplahn151f2a9ekhnq5.jpg)

It's Wednesday which means Marvel "What If". This episode, I think, has Zombies! Going to work on my side project and go through tracks for this week's radio show. We're already half way through the week! Wow!

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube ikiWa6v_Kn4 %}
Merging Interfaces in Typescript
Tags: typescript, angular, react, vue
Published: 2021-09-08 21:09:27

The simplest, and perhaps most common, type of declaration merging is interface merging. At the most basic level, the merge mechanically joins the members of both declarations into a single interface with the same name.


```
interface Box {
  height: number;
  width: number;
}
interface Box {
  scale: number;
}
let box: Box = { height: 5, width: 6, scale: 10 };


```
Sending emails with python and Twilio-sendgrid API
Tags: python, devops, codenewbie, machinelearning
Published: 2021-09-08 20:24:23

## **Prerequisites**
- Python 3.6 or later
- A free Twilio SendGrid account.

## **Setting Up the Environment**
```bash
$ mkdir email_sender
$ cd email_sender
$ python3 -m venv venv
$ source venv/bin/activate
```
After activating the environment, Install the necessary packages:
 ```bash
(venv) $ pip3 install sendgrid
(venv) $ pip3 install sendgrid
```

**NB:** the python-dotenv is a Python module that allows you to specify environment variables in traditional UNIX-like “.env” (dot-env) file within your Python project directory. It helps us work with SECRETS and KEYS without exposing them to the outside world, and keep them safe during the development of applications.[Read more](https://dev.to/emma_donery/python-dotenv-keep-your-secrets-safe-4ocn)

### **Step 1:** Create a .env file with the required variables
```bash
SENDGRID_API_KEY="mskj.bjsknlfjlsjnsnsnkjaknkkkwnkakJKkjnkKKNXKBVThdubsckeuisi"
```

### **Step 2:** create an app.py file (can name it according to your own preference)

```python
import os
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail
from dotenv import load_dotenv

load_dotenv()

message = Mail(
    from_email='senders_email@mail.com',
    to_emails='recipients_email@mail.com',
    subject='Sending emails with python and Twilio-sendgrid API',
    html_content='<strong>Thankyou for your business</strong>')
try:
    sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
    response = sg.send(message)
    print(response.status_code)
    print(response.body)
    print(response.headers)
except Exception as e:
    print(e.message)
```
### **Step 3:** In the terminal, run your app:
```bash
python3 app.py
```
### **Step 4:** Congratulations 🎉🎉🎉 check your inbox!!!
The email arrives to the recipients inbox within seconds
Politika ile Dosya Transferi
Published: 2021-09-08 19:48:04

Liman üzerinden politika detaylarına girin ve "Dosya Transferi" ni seçin.
 
![Screenshot from 2021-09-01 11-35-16](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/58mxi3qw9sh1fzhjokq4.png)
 
Yükleme Tipi: Web'ten, SMB'den veya Bilgisayar'dan yükleme yapabilirsiniz.

Dosya Tipi: Arşiv veya dosya seçebiliriz.

Hedef Yolu: İstemcilerde dosyanın gitmesini istediğiniz yol.

Dosya Sahibi: Dosyanın Linux izin sistemi tarafından tanınacak sahibi. Örneğin: 'root'

Dosya Grubu: Dosyanın Linux izin sistemi tarafından tanınacak grubu. Örneğin: 'root'

Dosya izin modu: Dosyanın Linux izin sistemi tarafından tanınacak izin modu. Örneğin: '600'


 


## Örnek Kullanım

Bilgisayardan jpeg dosya transfer örneği.


![Screenshot from 2021-09-01 11-41-53](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vxto2u1okcuhuydsd1zp.png)


Eğer dosya izin modunu 770 yapsaydık dosya sahibi root olduğu için dosyayı okuyamayacaktık.

## dosya izin modu

en soldaki rakam 'user' izinleri 
ortadaki rakam 'group' izinleri
sağdaki rakam 'others' izinleri 

örn: 
     7=111(ikilik taban)=rwx
     5=101=r-x
     0=000=---
Politika ile LibreOffice Eklentisi Ekleme
Published: 2021-09-08 19:48:00

Liman üzerinden politika detaylarına girdikten sonra "LibreOffice" seçin.
Ardından "LibreOffice Eklentisi" kısmını doldurun.

![Screenshot from 2021-09-01 08-40-01](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ysujpjbbiai3u9vv4b1m.png)

Dosya yolu türünü seçtikten sonra ona uygun dosya adresini girin ve kaydedin.

## Örnek Kullanım

LibreOffice VRT Network Equipment Gallery eklentisini eklemek için politika ayarlarını aşağıdaki şekilde doldurduk.

![Screenshot from 2021-09-01 08-40-14](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/klt52qx7u1h6vyxrk3x0.png)


LibreOffice Draw uygulamasına girerek "gallery" ye tıklayadıktan sonra biraz aşağıya inerseniz VRT şekillerinin olduğunu görebilirsiniz.

![Screenshot from 2021-09-01 10-07-57](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p51omwf8uhyjdaj4ov3w.png)
Politika ile Başlangıç Uygulaması Seçme
Published: 2021-09-08 19:47:54

Liman üzerinden politika kullanarak başlangıç uygulaması seçmek için politika detaylarından "Başlangıç Uygulamaları" seçilerek aşağıdaki bilgileri doldurun ve kaydedin.

![Screenshot from 2021-08-31 14-54-22](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ptgkqpw1te6s7h4vom0.png)

Uygulama Adı: Başlayacak uygulamanın adı
Komut: Uygulamayı başlatacak komut


## Örnek Kullanım

Örneğin firefox uygulamasını başlangıçta başlatmak için politika ayarlarını aşağıdaki şekilde doldurmanız gerekir.


![Screenshot from 2021-08-31 14-53-03](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/his4nv0ucxyxs7koqhur.png)
Liman Üzerinden Politika ile Servis aktivitesi kontrolü
Published: 2021-09-08 19:47:39

İstemcilerimizde çalışan servislerin aktivitelerini politikalar yardımıyla yönetebilirsiniz.
Açık kalmasını istediğiniz veya kapalı kalmasını istediğiniz servisleri ayarlayabilirsiniz.

Politika detaylarından "Servis" i seçin.
"Servis İsmi": Açmak, kapatmak veya bilgi almak istediğiniz servisin ismi.
"Servis Durumu": 
                -"Kapalı": Servisi kapalı halde tutar. Açık ise 5 dakika sonra kapatır.
                -"Açık": Servisi açık halde tutar. Kapalı ise 5 dakika sonra kapatır.
                -"Kapandığında/Açıldığında Bildir": Servis kapandığında/açıldığında bilgilendirir.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/08l8nh17fvpft77g854q.png)

## Tayfa politikasını kullanarak Servis politika süre ayarını değiştirme

Politika detaylarından "Tayfa" yı seçtikten sonra "Düzenli Politika Çalıştırma" kısmına politika ismi ve kaç dakika çalışacağını girebiliriz. Servis açma/kapama politikasında 5 dakika olan süreyi değiştirebiliriz.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m4o4gpjcfcani7l61bdg.png)


## Örnek kullanım

İstemciye apache2 yi indirip servisi açtıktan sonra politika ayarlarından kapalı modu seçtiğimizde servisin kapandığını görüyoruz.

apache2 yi indirmek için:
 `sudo apt install apache2`
servisi başlatalım:
`systemctl start apache2.service`
politika güncelleme:
`gpupdate`


![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s1xzl91kx1vs84izvvae.png)

Gördüğümüz gibi servis kapanıyor.
Installation Windows Set Up
Published: 2021-09-08 19:37:42

Node.js - package manager
1. Click on this link https://nodejs.org/en/
2. Choose the LTS version to download.
3. Once downloaded, an installation window will appear. Follow through the prompt. 

NPM 
NPM is installed when you install Node.js. 
To check that both are in your system, open your command prompt and type 
node --version
npm --version

Yarn
1. Open command prompt and type
install -g yarn
2. To check if Yarn has successfully installed, type
yarn --version

Open-wc
Create a folder for your projects in this class.
Open command prompt to that specific path 
Type 
npm init @open-wc
1. A prompt will appear. Select 
"Scaffold a new project"
"Web Component"
Enable all tooling options (Linting, Testing, Demoing)
"No" for Typescript
Enter your project's name
"Yes" to Write file structure to a disk
Type 
npm run start 
You are ready to code your project.
Closures and Memoization
Tags: javascript, closures, interview
Published: 2021-09-08 19:34:17

---
title: Closures and Memoization
published: true
description: Check out my first lesson where I leverage closures to optimize an exponential runtime function.
tags: javascript, closures, interviews
cover_image: https://i.imgur.com/dxjuKUI.png
---

Hi dev.to! Today I'm writing about closures and one interesting way they can be used.

You've probably seen this slow implementation of the Fibonacci series before:

```javascript
// O(2^N) time
function fib(n) {
  if (n === 0) return 0;
  if (n < 3) return 1;

  return fib(n - 1) + fib(n - 2);
```

We can rewrite the solution to make it run faster, or we can leverage higher order functions to do the hard work for us.

```javascript
function memoize(cb) {
  const cache = {};
  return function (...args) {
    const key = args.join('-');
    if (!(key in cache)) cache[key] = cb(...args);
    return cache[key];
  };
}

// now fib is O(N) time!
fib = memoize(fib);
```

If this is confusing - don't worry! There's a lot going on here, but once you become more familiar with closures writing code like this will feel natural.

I go into detail about how this works in the following video: https://www.youtube.com/watch?v=9Iyj-foHNmQ

Thanks for reading. Of course, there's plenty more advanced use cases for closures such as callbacks in react component and debouncing. I'd like to hear about any nifty closure use cases you've come across.
Introduction
Published: 2021-09-08 19:26:21

Hi! My name is Yue Lian and I am a junior majoring in Information Sciences and Technology with a focus in Integration and Application. I was born in Guangzhou, China and raised in New Jersey. Entering college I wasn't sure which major I wanted to pursue. I took introduction business and engineering courses my first year and after I weighed my options, I chose computer science. Then, the pandemic lockdown hit and I realized I wouldn't enjoy a career as a software developer. After extensive research, I realized product management is the field I actually want to enter specifically in the software development sector. I changed my major to IST at the end of my third semester and this path has now lead me to take IST 402. I still enjoy the technological focus in my courses and  web development has always interested me. I am excited to learn about the fundamentals of web development in the course as it is an important skill to have and so I understand what makes the product work in my career.
Days of code [2]
Tags: beginners, csharp, dotnet
Published: 2021-09-08 19:25:01

The challenge today was this one:

"You are given an integer array nums where the largest integer is unique.
Determine whether the largest element in the array is at least twice as much as every other number in the array. If it is, return the index of the largest element, or return -1 otherwise."

So, to solve this one:

## Step by step
 * Get largest int in the array, lets call this var as 'max'
 * Get index of largest int in the array 
 * After that, sort the array
 * And reverse it
 * With this I created a new array without the first item, cause it was the largest int
 * Multiply all int by 2 in the new array
 * Now get the largest number in this new array, lets call this var as newMax
 * Now check if Max is equal or higher than newMax, if so return tne index that was taken before, if not set result to -1

So, we have:

``` C#
    public static class LargestNumberInArray
    {
        public static int DominantIndex(int[] nums)
        {
            int result = -1;

            if (nums.Length == 1) return 0;

            // Get largest number and respective index
            int max = nums.Max();
            int tempResult = Array.IndexOf(nums, max);
            
            Array.Sort(nums);

            // Sort array in desc order and get a new one skipping first number as we know it is the largest
            var arr = nums.Reverse().Select(x => x * 2).ToArray().Skip(1);

            int newMax = arr.Max();

            if (max >= newMax)
            {
                result = tempResult;
            }

            return result;
        }
    }

```


{% github ronaldoperes/Challenges %}
Locking editor panes in Visual Studio Code prevents unwanted multi-tab experiences
Tags: editors, fix, vscode, edge
Published: 2021-09-08 19:22:20

---
title: Locking editor panes in Visual Studio Code prevents unwanted multi-tab experiences
published: true
description: You can lock editor groups in VS Code
tags: editors, fix, vscode, edge
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7bo7lqi8efzfkedaqzjw.png
---

When using the [Edge DevTools for VS Code](https://aka.ms/devtools-for-edge extension) inside the editor, one thing that I kept doing wrong was opening files by accident next to the tools. 

By default, the tools show up as their own pane next to the main editor. This is an editor pane of VS Code, and thus supports many things, including tabs.

![Edge DevTools open in Visual Studio Code](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rvtroyqkhqs7fsngkg2z.png)

When I use the tools, this group has focus. And when I go open another file to edit, it opens as a new tab next to the tools. Many a time this messed up my screencasts.

![File accidentally opened next to the DevTools instead of the main editor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x296imn9kqm1xg73wf0e.png)

The trick is to lock the group with the tools in them. You do that by activating the … menu of the tools pane and select "Lock Group". 

![Locking the pane with the DevTools Extension](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7bo7lqi8efzfkedaqzjw.png)

The locked group then shows a lock icon and no other files will open as tabs on it, even if it had the focus.

![Locked pane](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8k2tbsr61nvw9giezfx0.png)

You can see this in action in the following screencast.

{% youtube kTRvYkvu1tQ %}
THE STRUGGLE IS REAL…
Tags: azure, learning, developer, productivity
Published: 2021-09-08 19:08:33

This December I’ll be 4 years into my Azure journey and the struggle is real.

Before going any further I am a very upbeat person, I love to have a laugh and wind people up, this isnt meant to sound like I am complaining, its more a personal story.

What do I mean by that? Well its a similar struggle for people starting out learning Azure.

Instead of where, and how do I get started (which is a common worry when starting out) I have thoughts like how do I stay relevant, what services should I keep an eye on, what areas should I go deep on?

I am what’s called a T-Shaped developer, think of the letter T – I have a breadth of knowledge and go deep in the dev space.

I never wanted to be the goto person in one area, thats just not me, I have always wanted to know something, about as much as I can, and therefor I pay a heavy price for that.

People who are experts in one area will tend to do better than the person who has a good knowledge across a lot of areas. Why do I think that, I just do, It’s hard to stand out as the goto person yeah, but if you are good at one thing then you can devote all of your energy to that one thing. I have a passion for learning and I can be like that forever.

So my struggle invloves, what should I learn?, I love working with Azure, its my primary focus area at this time. The thing to remember is technology changes, it evolves, the Cloud changes at speed. I keep an eye on trends ans I see where the trends are heading and If I am honest – not a huge fan of some of the latest technologies.

We seem to be making developing a solution a lot harder than it used to be, we seem to have black boxes which our code runs on which no one really fully understands. Maybe I am just old and need to get with the cool kids who knows.

So as you can see the struggle is real, keeping your skills up to date isnt too hard if you have the time and energy to do it. My struggle right now is deciding what technologies I want to learn, AI and Data, AKS, Machine Learning.

With Ignite coming in November I’m sure things might change and VNext is the next cool thing.

Anyways getting back to the main point, the struggle is real for all of us, not just the person getting started – we are all doing our best to stay relevant, to learn and help our customers.

Right now I am evaluting what I want to do next, I love my job and I am very lucky to work where I do. This is a personal choice I need to make and its a struggle figuring it all out.

What are you struggling with? – comment below.


Don’t forget to subscribe to my [YouTube Channel.](https://youtube.com/gregorsuttie)