teleren/devto huggingface dataset:
Outsourcing Software Development
Published: 2021-02-24 08:59:04

20% to 25% of all outsourcing relationships fail within two years. Within 5 years it’s up to 50%. One major problem is that the outsourcing manager has no clear overview of what’s going on at the other end of the deal. We help You overcome this problem and establish a trustful relationship to the outsourced development team.

Our reports help You understand how Your resources are deployed and used in a project and how this influences delivery. With our help You finally get an answer to Your most common questions:

- Why am I billed for engineers that worked less on my project?

- What skill have the engineers that are working on my software?

- How is the development workflow of the team?

With the help of Jonny Git outsourcing Your software development is no longer a blackbox!

To learn more about how Jonny Git can help You with outsourcing teams, check out our website: https://jonnygit.com/managing-software-development-outsourcing/

#outsourcing #softwaredevelopment #JonnyGit
จัดการ DOM ด้วย bind:this และใช้งาน DOM
Tags: svelet3, dom, element
Published: 2021-02-24 08:50:26

ในสมัยก่อนยุคของ AJAX ปัญหาอย่างหนึ่งในการสร้างเว้บด้วยภาษา javascript ก้คือการ จัดการกับ Document Object Model(DOM) การใช้ Javascript ไป maintain DOM ทำได้ยากมาก พอมายุคที่มี jquery การเขียนคสบคุม DOM เริ่มง่ายขึ้น

เริ้มจากสร้าง HTML ง่ายๆก่อน และใช้งาน bind:this={ตัวแปร type HTMLElemnt}

```html
<!-- HTML -->
<div bind:this={Div}></div>
```

ต่อมาผูกตัวแปร Div โดย type เป็น HTMLElement

```javascript
let Div;

// Typescript
let Div: HTMLElement;
```

modify DOM ด้วย vanilaJS

```javascript
<script>
import {onMount} from 'svelte';
let Div;
	
onMount(() => {
	Div.textContent = 'Text Content'
	Div.style.color= 'red'
	Div.style.fontSize='24px'
	Div.style.backgroundColor ='#f4fcfc'
	Div.style.padding = '20px'
})
	
</script>
```
ผลลัพธ์
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pcnqmhiozzpige2h7n46.png)

ดูตัวอย่างได้ที่ [REPL](https://svelte.dev/repl/85720d31b0c7433087061e56aa460efc?version=3.32.3)

หากสนใจ svelte สามารถเรียนรู้การใช้งาน svelte แบบ step by step ได้ที่
[Svelte: Framework Not Framework — (ตอนที่ 1) แรกรู้จัก](https://medium.com/@tanangular/svelte-framework-not-framework-%E0%B8%95%E0%B8%AD%E0%B8%99%E0%B8%97%E0%B8%B5%E0%B9%88-1-%E0%B9%81%E0%B8%A3%E0%B8%81%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81-434fde7ff97f)

ขอบคุณทุกท่านที่อ่านมาถึงตรงนี้ ถ้าอ่านแล้วรู้มีประโยชน์ ฝากกด Subscribe หรือ share link ให้คนอื่นรับรู้ด้วยนะครับ ขอบคุณครับ
มุด Proxy ย้อนกลับ
Tags: squid, ssh, tunnel, docker
Published: 2021-02-24 08:34:56

## เกริ่น ข้ามไปก็ได้

ปัญหาหนึ่งที่น่ารำคาญเมื่อวาง Server ไว้ที่ Colocation ต่างๆ ส่วนใหญ่ที่จะเจอคือ "ราคาค่า Inter(national) Bandwidth" ที่ค่อนข้างแพง เวลาจะจ่ายก็ต้องให้เหตุผลต่างๆนาๆ ว่ามีบริการที่ต้องวิ่งไปต่างประเทศหรือให้บริการต่างประเทศเยอะแค่ไหน คุ้มมั๊ย ใช่ครับหลายบริการแทบจะไม่ได้สนใจให้บริการต่างประเทศเลย ดังนั้นงบก็ไม่ cover ส่วนนี้

ใช่ครับ ฟังดูดี แต่ๆๆๆ ตอนจะ update patch/security หรือ update อื่นๆ (โดยเฉพาะพวก NVIDIA repo) ที่บางตัวใหญ่มากๆ และไม่มี repo ในไทย รอกันทีหลับแล้วหลับอีกก็อัพเดจไม่เสร็จ (แถมขยันมี update ซะด้วย)

![110 kB/s](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mk5u3k75kcztbkbygfyi.png)
นี่คือตัวอย่างความเร็วปกติของ inter bandwidth บนเครื่อง

อีกด้านหนึ่ง เน็ตบ้านหรือเน็ตสำนักงาน ถูกและเร็ว แถมไม่เกี่ยงเท่าไหร่ว่าเป็นในประเทศหรือต่างประเทศ แรงเร็วถูก แซงหน้าเน็ต colocation ที่ซื้อ (ไม่เถียงครับว่าเทียบกันไม่แฟร์)

ผมเลยเกิด idea หนึ่งคือ ถ้าลองเอาบ้านเราเป็น proxy แล้วให้ server วิ่งย้อนกลับมา (บ้านเราอยู่ในประเทศแน่ๆ) ให้ออกเน็ตที่บ้านเราจะเป็นยังไง จนพบทางออกครับ ดังนี้ ...


# เริ่มกันเลย

ก่อนอื่นเรามาสร้าง Squid Container ที่เครื่องเราก่อน (แน่นอนต้องแบบ Docker ดังนั้นขอข้ามขั้นตอนการลง Docker ไปเลย)
```
docker run -itd -p 3128:3128 b4tman/squid
```

ใครจะเพิ่มเติมอะไรก็ตามสะดวก

ต่อด้วย การเพิ่ม Remote Forward Tunnel ไปยัง Server ในคำสั่ง SSH (`-R 3128:127.0.0.1:3128`)
```
ssh -R 3128:127.0.0.1:3128 <user>@<server>
```

จากนั้นสั่งให้ SSH Session (คำสั่งนี้จะไม่ส่งผลต่อ SSH Session อื่น และเมื่อปิดก็จะหายไป) นั้นใช้ Proxy ผ่าน port ที่ forward ให้
```
export http_proxy=http://127.0.0.1:3128
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
export dns_proxy=$http_proxy
export rsync_proxy=$http_proxy
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
```

เป็นอันจบพิธี เรามาลองความเร็วกัน
![6344 kB/s](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/udeefn3c7nv2lybd5254.png)
เร็วขึ้นในระดับที่ใช้ได้ไม่หงุดหงิด (อาจจะมี Overhead ไม่ได้วิ่งได้เต็มขนาดนั้น) ถือว่าแจ่มเลยครับ

ขอสารภาพว่า Capture ไม่ทันใน file เดียวกันที่ download แต่ก็เป็น Inter bandwidth เหมือนกันน่าจะพอทดแทนกันได้

ไว้เดี๋ยวมาแชร์วิธีการมุดแปลกๆใหม่อีก รอติดตามนะฮว๊าฟๆๆๆ
Pair debugging iOS bugs via QuickTime
Tags: debug, debugging, tips, webdev
Published: 2021-02-24 08:23:03

Sometimes, you share a screen with a fellow developer via Skype and debug something weird on your iPhone. It turns out that the problem repeats only on the real device, while everything is fine in the emulator.

So that you don't have to tell your colleague what's going on the screen of your phone, you can share the screen:

1. Open QuickTime
2. File - New Movie Recording
3. In the drop-down near the button record select Camera - iPhone
4. Skadoosh!

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ni0wb6dozanb2m0wbuac.jpg)
I have an idea.
Tags: javascript, python
Published: 2021-02-24 08:06:43

I have a wonderful idea. Where we can work on it. This idea might be of billion dollars. But developers be ready for this workout. Here is the idea, we will design a service in which authorities, players, presidents, teachers, recruiters, media persons, press conferences should be held on the internet on this service live? They will have a question-answer forum in which one by one question shows up in the panel and the person who is conducting the question-answer session have the right to answer or ignore the question. It is different from other forums because the question will show up one by one. So that no question gets dismissed or ignored. Even poor people or rich people can ask questions directly from their government. Because recently Prime Minister Of Pakistan Imran Khan held a telephone session this February in which the common people of Pakistan asked questions live. but it took so much time that nearly 20 to 30 people can ask questions in the session. If we can make this service, productivity can increase gradually and everyone has a voice. I look forward to answering your question. I am very passionate about this project. I am a beginner developer. Anyone who wants to work with me on this project. Let me know, please. We can be great partners and developers and maybe billionares. You can message me here at https://web.facebook.com/uk03777
Azure Functions: Sendgrid & NET Core
Tags: sendgrid, netcore, azurefunctions, andreacarratta
Published: 2021-02-24 07:49:57

📧 Azure Functions: Sendgrid & NET Core

💡 Scopri come semplificarti la vita ...

Lo ammetto. Avevo abbandonato Sendgrid in favore di Mailgun, ma dopo questo esperimento potrei rimescolare davvero le carte per le mie Functions App.

🔴 In questo articolo desidero mostrarvi come utilizzando le Azure Functions scritte in NETCore sia possibile inviare mail con SendGrid in modalita' praticamente quasi trasparente.

Cosa utilizzeremo per fare questo?

1️⃣ Azure Functions 
2️⃣ SendGrid
3️⃣  Azure Queue
4️⃣ Dependency Injection: File Startup.cs
5️⃣ local.settings.json

🔥 Da dove partiamo? La carne al fuoco e' tanta ...

👍 Dite che un like/share del post me lo merito? Anche solo per il tempo impiegato a realizzare il tutto!

🔗 [Articolo completo](https://blog.devandreacarratta.it/azure-function-sendgrid-netcore/?utm_source=devto&utm_medium=coding-tips&utm_campaign=azure-function&utm_content=azure-function-sendgrid-netcore)
Prerequisites & common error scenarios in OpKey Spock Agent
Published: 2021-02-24 07:36:12

Overview:

<a href="https://www.opkey.com">OpKey</a> is now empowered with a Cloud based agent named as Spock Agent which enables you to execute your tests on this cloud agent. It is visible on the Local Execution Wizard. You can select Any, India or United States based cloud agent from the Region option and browser (Chrome, Fire or IE) from the Browser option. Once you triggered <a href="https://www.opkey.com/salesforce/">test execution</a> in this way, the execution will be performed on the chosen cloud agent but the live execution on the browser will be performed on your system.

In order to use this OpKey Spock Agent, there are few prerequisites as descibed below:

– Supported OS: Microsoft Windows 7, 8.1, 10 & Mac

– Supported Browsers (Windows systems): Latest versions of Chrome, Mozilla Firefox or IE

– Supported Browsers (Mac systems): Latest versions of Chrome, Mozilla Firefox or Safari

– Java: Java 8 & 9

There are few common error scenarios & you may come across these while working with OpKey Spock Agent.

Common Error Scenarios & recommended settings:

SSH Port should be enabled in Firewall Settings. If it’s not enabled, you will get the error message as shown below:

Image for post
If Java 8 or 9 is not installed on the system, user will get a message that Java 8 or 9 not found.

Image for post
If the user does not have read/write privileges in Registry, whenever a user tries to execute a test on Spock Agent then the .exe file for the teleporting tunnel will be downloaded every time.
Typescript - Tips & Tricks - Overloaded Functions
Tags: typescript, webdev
Published: 2021-02-24 07:14:55

Welcome back, guys!
The topic of today is [Overloaded Functions](https://www.typescriptlang.org/docs/handbook/declaration-files/by-example.html#overloaded-functions).

All self-respecting programming languages ​​have overloaded functions, so typescript has this feature too.
To use this feature in typescript, we have to declare all the signatures of this function, and at the end, we have to write a single function that includes all these signatures. The last function is the only one with the implementation. The peculiarity of this function is that it must include all the possible implementations of the previous signatures.
Here's a simple example that is more exhaustive than all these words.
```ts
function reverse(value: string): string;
function reverse(value: string[]): string[];
function reverse(value: string | string[]): string | string[] {
  if (typeof value === "string") return value.split("").reverse().join("");

  return value.slice().reverse();
}

console.log(reverse("Tips")); // 'spiT'
console.log(reverse(["T", "i", "p", "s"])); // [ 's', 'p', 'i', 'T' ]
```
As we can see, there are 2 signatures of the "reverse" function, one gets a string and returns a string as result, the second one gets a string array and returns a string array as result. The third function is the real implementation of this function. As we can see the parameter type is a literal-type that includes a string or a string array (the combination of the type in the signatures' parameters), we can make the same considerations for the result's type.
In the function implementations, we detect the parameter's type at runtime and manipulate the parameter to return the correct type according to the function we are overloading.

An important thing to remember is that the implementation function is not exposed.

That's all for today!
See you soon guys!
how to find the IP address ie IPv4 address is valid or invalid
Tags: java, codequality
Published: 2021-02-24 07:14:18

package main.java;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Sample {
    public static void main(String args[]) throws IOException {
        String IP = "null";
        boolean length_flag = true, start_end_flag = true, dot_flag = true, alphaFlag = false;
        int dot_counter = 0;
        System.out.println("Enter the IP Address");
        BufferedReader br = new BufferedReader((new InputStreamReader(System.in)));
        IP = br.readLine();
        char[] ch = new char[IP.length()];
        // Copy character by character into array
        for (int i = 0; i < IP.length(); i++) {
            ch[i] = IP.charAt(i);
        }
        //Check the number of characters is more than 15 digits
        if(IP.length()>15){
            length_flag = false;
        }
        //Check with the number of dot present in the IP address
        if(IP.startsWith(".")||IP.endsWith("."))
        {
            start_end_flag = false;
        }
        //Count the number of dot values present in the Input address
        for(int i=0; i< IP.length();i++){
            if(ch[i]=='.'){
                dot_counter++;
            }
        }
        //Check the number of dot present in the ip addres
        if(dot_counter != 3)
        {
            dot_flag = false;
        }
        //Check any alphabets present in the ip address
        for(int i=0;i<IP.length();i++) {
            if ((ch[i] >= 'a' && ch[i] <= 'z') || (ch[i] >= 'A' && ch[i] <= 'Z')) {
                alphaFlag = true;
            }
        }
        //If any of the flag is set then make the address as valid IP otherwise mark as Invalid IP
        if(length_flag&&start_end_flag&&dot_flag&&(!alphaFlag))
            {
                System.out.println("Valid IP");
            }
        else
        {
            System.out.println("Invalid IP");
        }
        }
        }
HTML mark tag a digital marker
Tags: html
Published: 2021-02-24 07:09:04

Although Mark is also a name, it's not what this HTML attribute is used for.

Mark is used to describing a highlight of a text, to mark it, or highlight it.

How it works:

```html
<p>This is some <mark>highlighted text</mark> using the Mark tag.</p>
```

And that will result in:

![Mark element in HTML result](https://cdn.hashnode.com/res/hashnode/image/upload/v1613713577920/Rn92O3wPfH.png)

## Custom styling the Mark tag

We can also add custom styling to our mark tag.

```css
mark {
  background: purple;
  color: white;
}
```

This will give the following result:

![Mark tag with custom CSS](https://cdn.hashnode.com/res/hashnode/image/upload/v1613713649833/WJvyUZmAv.png)

## Common use cases for the mark tag

One place where you often find the mark tag being used is on search result pages.

You'll find the word you were looking for highlighted.

```html
<h3>Search results for "Pikachu"</h3>
<p><mark>Pikachu</mark> is a mouse like Pokémon.</p>
<p>The evolution of Pichu is <mark>Pikachu</mark>.</p>
```

![Search results with mark tag](https://cdn.hashnode.com/res/hashnode/image/upload/v1613713914977/iO1krgrpX.png)

## Demo

You can have a play with the following Codepen I set up to showcase the mark tag.

{% codepen https://codepen.io/rebelchris/pen/zYozyjY %}

## Browser support

The mark tag is really well supported and safe to use.

![HTML mark element browser support](https://cdn.hashnode.com/res/hashnode/image/upload/v1613714308749/5QPOAzyfM.png)

### Thank you for reading, and let's connect!

Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on [Facebook](https://www.facebook.com/DailyDevTipsBlog) or [Twitter](https://twitter.com/DailyDevTips1)
Fix rustup failed with "error: linker `cc` not found" (Rust 1.50 on Alpine Linux 3.13)
Tags: rust, rustup, alpine, docker
Published: 2021-02-24 07:02:46

## Summary

Today, I made a [Dockerfile](https://docs.docker.com/engine/reference/builder/) for [Rust](https://www.rust-lang.org/) development on [Alpine Linux](http://alpinelinux.org/).
I met the error below when installing Rust with [Rustup](https://rustup.rs/):

```console
# apk add rustup
```

Then

```console
# rustup-init -y
```

The output was:

```consokle
(...)
error: linker `cc` not found
  |
  = note: No such file or directory (os error 2)
...
error: build failed
The command '/bin/sh -c cargo build' returned a non-zero code: 101
```

### Environment

- Alpine Linux 3.13
- Rust 1.50
- Rustup 1.23

## Solution

It was fixed by adding [`build-base`](https://gcc.gnu.org/) [package](https://pkgs.alpinelinux.org/package/edge/main/x86/gcc):

```console
# apk add rustup
# #apk add gcc       # here or
# apk add build-base # here
```

Then

```
# rustup-init -y
```

The output was:

```console
info: profile set to 'default'
info: default host triple is x86_64-unknown-linux-musl
info: syncing channel updates for 'stable-x86_64-unknown-linux-musl'
info: latest update on 2021-02-11, rust version 1.50.0 (cb75ad5db 2021-02-10)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: installing component 'rustfmt'
info: default toolchain set to 'stable-x86_64-unknown-linux-musl'

  stable-x86_64-unknown-linux-musl installed - rustc 1.50.0 (cb75ad5db 2021-02-10)


Rust is installed now. Great!

To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH
environment variable. Next time you log in this will be done
automatically.

To configure your current shell, run:
source $HOME/.cargo/env
```

As to Dockerfile, adding

```dockerfile
ENV PATH=#{user-home-abs-path}/.cargo/bin:"$PATH"
```

after the installation might bring a little more happiness :)

## Conclusion

The minimal installation requires, of course, just `gcc` instead of `build-base`.

It is, however, [not recommended](https://wiki.alpinelinux.org/wiki/GCC) because either `musl-dev` or `libc-dev` will be necessary in addition soon after.

In my case, installing Rust only was successful with `gcc`, but [Actix Web](https://actix.rs/), a Rust web framework using actors communication, required `build-base`.
Spring Webflux testing with Mockito
Tags: webflux, spring, mockito, reactive
Published: 2021-02-24 06:43:52

---
title: Spring Webflux testing with Mockito
published: true
description: 
tags: webflux,spring,mockito,reactive
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lbvdx4o1ktfbm9x6dtai.jpg
---
Spring Webflux provides fully non-blocking support for building web applications and Mockito is used to generate mock objects during testing. This article focuses on using Mockito alongside WebTestClient (client to test webflux server endpoints).

**Pre-requisites:**
- Spring Webflux
- Mockito

**A simple Webflux router configuration:**
{% gist https://gist.github.com/asutkarpeeyush/5d2673564b17aed31e0a45ddc83866b8 %}

**The Handler function that the router invokes:**
{% gist https://gist.github.com/asutkarpeeyush/a0ce32ae91d40b5764aca888af7629bf %}

*Note: The router and handler in the webflux world act as rest controllers in the webmvc world.*

**The Service that the handler invokes:**
{% gist https://gist.github.com/asutkarpeeyush/5306af1d39b8f8241a9afa75c57df2e3 %}

*Note: Ideally, the service would interact with the DAO layer to retrieve the data. Keeping things simple to focus on mocking during the testing.*

**Test Case:**
This test case injects mocks into the handler layer, mocks the service layer and then uses WebTestClient to call the API.

{% gist https://gist.github.com/asutkarpeeyush/131688f08a8f52aa3c73f1779e443476 %}

We can also use PowerMockito in a similar way in conjunction with Webflux and Mockito.

Further reading:
https://spring.getdocs.org/en-US/spring-framework-docs/docs/testing/integration-testing/webtestclient.html
Validate your API response structure using re-usable JSON Schema
Tags: testing, swagger, openapi, vrestng
Published: 2021-02-24 06:31:47

Watch our video #tutorial on how you may validate your API response structure using JSON Schema within few seconds using the #vREST NG Application. You may even drive your entire API Testing using Swagger2 / OpenAPI3 file.

Video Link: https://youtu.be/5ovsLl9V5Mg

Playlist: https://youtube.com/playlist?list=PLmua155_WrDzt1AbB6iV5Lsw_Z7QrzZZ0

vREST NG is an enterprise-ready application for Automated API Testing. You can download and install the vREST NG application directly on Windows, OSX, and Linux via our website.

*Important Links:*
1. [vREST NG Website](https://ng.vrest.io/?utm_source=devto&utm_medium=devto-desc&utm_campaign=video)
2. [Contact Email](support@vrest.io)
3. [Community Chat](https://discord.gg/NtRa7kw)
4. [Book a Live Demo](https://meetings.hubspot.com/dheeraj-aggarwal)

Please do like and share if you found this video helpful and let the voice heard by the testing community. Also, let us know your feedback by commenting on this post.
What is new in Go 1.16?
Tags: go
Published: 2021-02-24 06:30:36

[Go 1.16](https://golang.org/doc/go1.16) was officially released a few days ago :boom: :tada: :confetti_ball: !

{% twitter 1361770660306034690 %}

And yes everybody is excited about the new `//go:embed` directive and the Apple Silicon support, but there are some other interesting changes.

## Vet

Warns when calling [`Fatal` in goroutines](https://golang.org/doc/go1.16#vet).

## Go Modules

`go install` now supports arguments with suffixes, what this is means is that running something like:

```sh
go install github.com/MarioCarrion/nit/cmd/nit@v0.6.5
```

**Will work**, and more importantly **will not modify** the main `go.mod`, which in practice should reduce the amount of explicit imported packages, that should change the [`tools.go` paradigm](https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module) a bit in some cases.

## Deprecation of `io/ioutil`

`io/ioutil` **still works** but the recommended way is now to either use the corresponding `io` or `os` types, in practice the API is basically the same only the packages change.

## `os/signal` NotifyContext

A new function called [`NotifyContext`](https://golang.org/pkg/os/signal/#NotifyContext) added, allows using `context.Context` for handling signal events, simplifying the previous channel-based pattern.

---

Looking forward to Go 1.17!
Why doesn't the "any" option work for the "-r" flag of .NET publish?
Tags: csharp, dotnet, help, beginners
Published: 2021-02-24 06:27:13

I read in [this doc](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog) about the `any` RID, and it's the root for all other RIDs.
So, I try to use it to target all RIDs in the command
```bat
dotnet publish -c Release -r any --self-contained true
```
And it throws the following error(s):
```
C:\Program Files (x86)\dotnet\sdk\5.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(99,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'any'. [C:\Users\Administrator\Desktop\Projects\C#\langs\Janky\language\language.csproj]
C:\Program Files (x86)\dotnet\sdk\5.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(99,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'any'. [C:\Users\Administrator\Desktop\Projects\C#\langs\Janky\language\language.csproj]
C:\Program Files (x86)\dotnet\sdk\5.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(99,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'any'. [C:\Users\Administrator\Desktop\Projects\C#\langs\Janky\language\language.csproj]
C:\Program Files (x86)\dotnet\sdk\5.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(99,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'any'. [C:\Users\Administrator\Desktop\Projects\C#\langs\Janky\language\language.csproj]
```
(idk why it does it 4 times.)


So, how can I use `any`?
If I can't, is there any way to target all runtimes?
What is the default value of `-r`? And why can't I have a self-contained application w/o specifying a runtime?

If I can't have a self contained application w/o a specified runtime (because that may be equal to `any`), is there any way to get around it?



<div alt="Thanks! Cheers!">
##<b><center><b>Thanks!<br/>Cheers!</b></center></b>
</div>