teleren/devto huggingface dataset:
How does the network architecture of the standard Lorawan Gateway Protocol work?
Published: 2022-09-19 02:23:22



At present, most researches focus on how to integrate the information obtained by multiple [LoRaWAN gateways](https://www.cdebyte.com/Modem-Lorawan-LorawanGateway) to improve network scalability and decoding rate, and less research on the gateway itself. How to optimize the layout of one or more gateways so that each gateway can play the most role in a specific application is also an issue that needs to be discussed.


Time difference of arrival is a positioning method that determines the target position by detecting the time difference between the arrival of the signal to two base stations. Several studies have begun to try to use TDoA to locate LoRaWAN end devices. These studies use the frame arrival timestamp given by the LoRaWAN gateway and equate the timestamp to the time stamp of the signal arriving at the gateway. However, the timestamp when the signal actually arrives at the gateway is not equal to the timestamp given by the application layer. In addition, time stamps with microsecond precision cannot support precise ranging and positioning, so the positioning errors of these methods are generally between tens of meters and hundreds of meters.  designed and conceived a LoRa backscattering device, relying on the TDoA principle to achieve 3D positioning with meter-level accuracy. However, LoRa end devices requiring customized wireless scattering cannot be directly applied to existing LoRaWAN end devices and networks.


According to the LoRa Alliance's description of the protocol, LoRaWAN's network architecture is deployed in a star topology, with gateways relaying between end devices and a central network server. Gateways connect to web servers via standard IP, acting as a transparent bridge, just translating RF packets into IP packets and vice versa. Wireless communication takes full advantage of the long-range nature of the LoRa physical layer, with a single point link between the end device and one or more gateways. All modes enable two-way communication, support multi-channel search, provide support when performing tasks such as firmware over-the-air upgrades or other batch messaging, and make efficient use of spectrum.

Ebyte IoT wireless communication expert Lorawan gateway product recommendation:
Network interface: RJ45
Carrier frequency: EU 863-870MHz ISM/AS 923MHz
Transmit power: 27dBm
Product size: 120*120*28mm
Product introduction: E890-868LG27 is a LoRaWAN communication gateway launched by Chengdu Ebyte Electronic Technology Co., Ltd. It is a standard IoT relay device. As an information converter of the LoRaWAN communication system, it is responsible for connecting network servers and terminal nodes. Communication, realizing the protocol conversion and forwarding of message communication between terminal equipment and server.
Routes management for admin and user panel.
Tags: react, routes
Published: 2022-09-19 02:13:58

Hello Everyone,

I need a help to setup the admin and user panel routes in ReactJS.

I want to separate admin and front routes.

Please find my below code.

Appp.js File

```````````
import React from "react";
import { Admin } from "./Admin";
import { Front } from "./Front";
import {
  BrowserRouter as Router,
  Routes, Route
} from "react-router-dom";


function App() {
  return (

    <Router>
      <Routes>
        <Route path="/" element={<Front />} />
        <Route path="/admin/*" element={<AdminLayout />} />
      </Routes>
    </Router>
  );
}

export default App;

```````````

AdminLayout.Js

````````
import React from "react";
import { Header } from "./Header";
import { Sidebar } from "./Sidebar";
import { Footer } from "./Footer";
import { Dashboard } from "../Dashboard";
import { Products } from "../Products";

import {
  BrowserRouter as Router,
  Routes, Route
} from "react-router-dom";

export function Layout() {
  return(
  <div className="container-scroller">
    <Header />
    <div className="container-fluid page-body-wrapper">
      <Sidebar />
      <div className="main-panel">
        <Routes>
                <Route path='/admin/dashboard' element={< Dashboard />}></Route>
                <Route path='/admin/products' element={< Products />}></Route>
              </Routes>
        <Footer />
      </div>
    </div>
  </div>
  )
}
````````

Same as front layout.

Now when admin/dashboard, will code my dashboard component should be call.
When admin/products will code, then products component will call.

same as in frontend, if users will come into the url, then users component will call.
Free & Discount Online Courses - 9/19/2022
Tags: beginners, webdev, programming, react
Published: 2022-09-19 01:52:36

Free Courses for Today

..

Car Flipping : The Art of Running Car Business - OCSALY 2022

.

https://theprogrammingbuddy.club/course/car-flipping-earn-money-from-selling-used-cars-ocsaly/

..

Effective Time Management For Professionals

.

https://theprogrammingbuddy.club/course/time-management-m/

..

Curso WordPress 2022: Cómo Crear una Página Web Desde Cero

.

https://theprogrammingbuddy.club/course/curso-wordpress-como-crear-un-blog-gratis-paso-a-paso/

..

Learn 4 STEPS to Make Money Online by Blogging!

.

https://theprogrammingbuddy.club/course/make-money-online-blogging/

..

Introduction to Drinking Water Treatment

.

https://theprogrammingbuddy.club/course/introduction-to-drinking-water-treatment/

..

CSS And Javascript Crash Course

.

https://theprogrammingbuddy.club/course/css-and-javascript-crash-course/

..

PSM1 Practice Tests Scrum Master certification-160Q

.

https://theprogrammingbuddy.club/course/psm1-practice-tests-scrum-master-certification-160q/

..

Microsoft AZ-104: Azure Administrator Exam Prep Test

.

https://theprogrammingbuddy.club/course/microsoft-az-104-azure-administrator-exam-prep-test/

..

Acting course - tools of acting

.

https://theprogrammingbuddy.club/course/learn-acting/

..

Podcast with Passion and Inspiration

.

https://theprogrammingbuddy.club/course/learn-to-podcast-with-passion/

..

Podcast Pacing For Audience Engagement

.

https://theprogrammingbuddy.club/course/learn-podcast-pacing/

..

Fundamentos do Lean Six Sigma + 1 Curso Extra + Kit Completo

.

https://theprogrammingbuddy.club/course/fundamentos-do-lean-six-sigma-1-curso-extra-kit-completo/

..

Learn Java and Python in One Course

.

https://theprogrammingbuddy.club/course/learn-java-and-python-in-one-course/

..

Best of Google SEO 2022: SEO & Copywriting Made Simple & Fun

.

https://theprogrammingbuddy.club/course/seo-2022/

..

JavaScript - Basics to Advanced step by step [2022]

.

https://theprogrammingbuddy.club/course/javascript-basics-to-advanced/

..

Comptia A+ Core 1 & Core 2 Practice Test

.

https://theprogrammingbuddy.club/course/comptia-a-core-1-core-2-practice-test/

..

Logística: Gestión de almacenes y Control de inventarios

.

https://theprogrammingbuddy.club/course/logistica-administracion-de-almacen-control-de-inventarios/

..

Learn Python in 7 Days with Exercises and Assignments

.

https://theprogrammingbuddy.club/course/learn-python-in-7-days-with-exercises-and-assignments/

..

Aprende Lenguaje C de CERO a EXPERTO

.

https://theprogrammingbuddy.club/course/aprende-lenguaje-c-de-cero-a-experto/

..

Learn JavaScript Programming in 7 Days

.

https://theprogrammingbuddy.club/course/learn-javascript-programming-in-7-days/

..

SEO - The Complete SEO Course Beginners to Advanced 2022

.

https://theprogrammingbuddy.club/course/seo-the-complete-seo-course-beginners-to-advanced-2022/

...

.

.

Happy Learning!

#podcast #inspiration #seo #python #comptia #googleseo #azure #microsoft #happylearning #learnpython #beginners #advanced #advanced #complete #seocourse #introduction #psm1
Web Design Agency Sydney
Tags: webdev, seo, design
Published: 2022-09-19 01:47:09

RGC is an award-winning Web Design Agency in Sydney that can improve your brand with Effective Designing strategies.

RGC Digital Marketing is an award-winning Web Designing agency in Sydney, with over 20 years of experience developing web designing strategies. Since 1998, our Web Design agency has achieved award-winning results through rock-solid strategies, impressive creative and delivery through highly effective Designs.

So kindly Visit: [Web Design Agency Sydney](https://rgcdigitalmarketing.com.au/web-design-sydney/)
SEO Agency Sydney
Tags: seo, webdev
Published: 2022-09-19 01:44:38

RGC is an award-winning SEO Agency in Sydney that can improve your Organic Search Rankings with Effective SEO strategies.

RGC Digital Marketing is an award-winning SEO agency in Sydney, with over 20 years of experience developing award-winning SEO strategies. Since 1998, our Sydney SEO agency has achieved award-winning results through rock-solid strategies, impressive creative and delivery through highly effective SEO techniques.

So kindly Visit: [SEO Agency Sydney](https://dev.to/wequestionaustralia/seo-agency-sydney-10ee)
Algorithms Challenge (2) Combination Coin Change - Different coins added up to a given amount
Tags: java, algorithms, dynamicprogramming, bottonup
Published: 2022-09-19 01:29:22

Question : 
There are {1, 2 , 5} dollar types coins for selection. Use different combinations of these types coins to adding up to the given amount 50. 

Answer:
We can use different types of dynamic programming methods to solve this problem.  In this article , we choose to use Dynamic programming -  Bottom up method. 

The implementation logic is simple like this : 

1. Set combinations as an array , its size is "amount +1" 
2. combinations[0] = 1 ,  it means the first combination ways number is 1 
3. We can loop the coins into the combinations array. When 
  the amount(the value in the position of the combinations array) is greater than coin , then we can use the formular : 
   combinations[amount] += combinations[amount - coin];


Code: 
```
public class coinsCombinationWays {

    static int getTotalWays(int[] coins, int amount){
         int[] combinations = new int[amount + 1];
         combinations[0] = 1;
         
         for(int coin: coins) {
            for(int j=1; j<combinations.length; j++){
              if(j>=coin)
               combinations[j] += combinations[j-coin];
           }
         }
        return combinations[amount];
   } 

   public static void main(String[] args) {
       int[] coins = {1, 2, 5};
       int amount= 50; 
       
       int totalWays += getTotalWays(coins, amount);
       System.out.println(totalWays);
    }

}
My Visual Studio Code setup
Tags: vscode, settingssync, customization
Published: 2022-09-19 01:03:31

Microsoft Visual Studio Code is so popular among developers around the world.

We have lot of customization options to do with our code.

**How I setup my VS Code for development?**

Theme - Ayu or GitHub

Icon - Ayu or vscode-icons

Font - Fira Code or Cascadia Code → free

In settings.json

`
{

“files.autoSave”: “afterDelay”,

“editor.fontFamily”: “‘Fira Code’, Consolas, ‘Courier New’, monospace”,

“editor.renderWhitespace”: “boundary”,

“editor.cursorStyle”: “line”,

“editor.wordWrap”: “on”,

“editor.letterSpacing”: 0.5,

“editor.lineHeight”: 25,

“editor.cursorBlinking”: “expand”,

“editor.cursorSmoothCaretAnimation”: true,

“editor.cursorWidth”: 5,

“editor.fontLigatures”: true,

“editor.fontWeight”: “normal”,

“workbench.colorTheme”: “Ayu Mirage”,

“workbench.iconTheme”: “ayu”,

“eslint.alwaysShowStatus”: true,

“liveServer.settings.CustomBrowser”: “chrome”,

“liveServer.settings.donotShowInfoMsg”: true,

“editor.formatOnPaste”: true,

“editor.formatOnSave”: true,

“editor.formatOnType”: true,

“[html]”: {

“editor.defaultFormatter”: “vscode.html-language-features”

},

“[css]”: {

“editor.defaultFormatter”: “vscode.css-language-features”

},

“[javascript]”: {

“editor.defaultFormatter”: “esbenp.prettier-vscode”

},

“[jsonc]”: {

“editor.defaultFormatter”: “vscode.json-language-features”

}

}`

Now VS Code is way better :)

You can try the above settings to your environment. Definitely, you’ll fall in love with your VS Code❤
SASS vs SCSS
Published: 2022-09-19 00:58:53

Sass (Syntactically Awesome StyleSheets) have two syntaxes:

a newer: SCSS (Sassy CSS)
and an older, original: indent syntax, which is the original Sass and is also called Sass.
So they are both part of Sass preprocessor with two different possible syntaxes.

The most important difference between SCSS and original Sass:

SCSS:

Syntax is similar to CSS (so much that every regular valid CSS3 is also valid SCSS, but the relationship in the other direction obviously does not happen)

Uses braces {}
Uses semi-colons ;
Assignment sign is :
To create a mixin it uses the @mixin directive
To use mixin it precedes it with the @include directive
Files have the .scss extension.

Original Sass:

Syntax is similar to Ruby
No braces
No strict indentation
No semi-colons
Assignment sign is = instead of :
To create a mixin it uses the = sign
To use mixin it precedes it with the + sign
Files have the .sass extension.

source: https://stackoverflow.com/questions/5654447/whats-the-difference-between-scss-and-sass
JSAbacusFramework.io
Tags: adventofcode, regex, javascript, webdev
Published: 2022-09-19 00:58:03

## [Advent of Code 2015 Day 12](https://adventofcode.com/2015/day/12)

## Part 1
### `regex`, `map()` and `reduce()` for an easy win!
I need to calculate:
> the sum of all the numbers in the document

One part `regex`:
```
/-*\d+/g
```

Two parts `map()` and `reduce()`:
```js
[...input.matchAll(/-*\d+/g)]
  .map(el => +el[0])
  .reduce((sum, num) => sum + num)
```

Voila! The correct answer!

## Part 2
1. Collapse, collapse, collapse
2. Copy-paste-rerun

### Collapse, collapse, collapse
- I viewed the parsed JSON in my web browser
- This shows the document as a collapsible tree of key-value pair
- I use `Find...` to locate all references to `red`
- Then collapsed each object containing `red` as the value for one of its keys
- Being sure not to collapse any arrays with `red` as an element

It took about 20 minutes to collapse everything, then to double-check I didn't miss anything.

### Copy-paste-rerun
- I copied the collapsed, parsed JSON as raw text into a new file
- And I ran my algorithm on that file

Thankfully, I caught everything, because it generated the correct answer!

## I did it!!
- I solved both parts!
- Using `regex`, my trusted array methods, and the toggle buttons in the parsed JSON view in my web browser!
- In under a half hour!

I'm a bit sad I didn't use an algorithm to fully solve Part 2.

Although, I'm glad I didn't have to...thanks to my web browser's handy view!

This puzzle may be the first Post-Day-10 puzzle I solved in under a half hour.

Or maybe not.

Either way, on to the next one!
Lazy Load Images
Tags: webdev, html, javascript
Published: 2022-09-19 00:51:15

Lazy loading is a performance booster for any site that will render images.

## Why Lazy Load?

The page upon arriving will begin to render all assets including every image on a page. If a page has too many photos, this will increase the time which users to the site will be able to see them.

Lazy loading is a technique to load images only when they are about to enter the viewport which gives several benefits.

### Site Performance

With image loading being delayed, this will decrease the amount of the page that will need to be downloaded on initial page load. For images that are on the landing page and within the view, these images will get loaded first and be faster.

### Bandwidth

Having a site hosted on Heroku or Netlify will have only a limited amount of bandwidth available, and lazy loading will help decrease the amount of bandwidth needed to load the page.

## Load Images Lazily

A way of loading images can be done using HTML and JavaScript to change the `<img src="">` from blank to information. The `src` gets read by the browser upon load and will be delayed with JavaScript by changing the `src` to what the image source will be.

Start with some basic image tag in HTML:

```html
<img class="lazy-loading-image" data-src="./assets/some-image1.jpg" />
<img class="lazy-loading-image" data-src="./assets/some-image1.jpg" />
<img class="lazy-loading-image" data-src="./assets/some-image1.jpg" />
```

And now the JavaScript that will act on window scroll and start lazy loading:

```js
document.addEventListener("DOMContentLoaded", () => {
  const images = document.querySelectorAll("img.lazy-loading-image");

  let lazyTimeout;

  const lazyLoad = () => {
    if (lazyTimeout) {
      clearTimeout(lazyTimeout);
    }

    lazyTimeout = setTimeout(() => {
      let scrollTop = window.pageYOffset;
      images.forEach((img) => {
        if (img.offsetTop < (window.innerHeight + scrollTop)) {
          img.src = img.dataset.src;
          img.classList.remove("lazy-loading-image");
        }
      });

      if (images.length === 0) {
        document.removeEventListener("scroll", lazyLoad);
        window.removeEventListener("resize", lazyload);
        window.removeEventListener("orientationChange", lazyload);
      }
    }, 10);
  }

  document.addEventListener("scroll", lazyload);
  window.addEventListener("resize", lazyload);
  window.addEventListener("orientationChange", lazyload);
})
```

There are plenty of third party options towards lazy loading as well, `lazysizes` or `jQuery Lazy` to name a couple. 

And with that creating full pages full of images (or videos and iframes) can be loaded later rather than have the site become slowed down by unseen assets.
Taking the LEAP p1
Tags: beginners, programming, codenewbie, firstpost
Published: 2022-09-19 00:50:11

# Thinking about it
 
These are three *phases* I gone through before making the decision to take the **LEAP!** and become a software engineer part 1.  


We've all gone through it, At some point in life we had that discussion with ourselves. I want to change careers, I want something more challenging to do, I want a new field of work. For those individuals i'm happy to tell you, you aren't alone. I too was in this position, I planned on transitioning from Physical Therapy to Accounting until a patient of mine convinced me to give Software Engineering a try. I did some googling and realized how cool the tech field was. But I needed to do some self reflecting before going forth with this decision.I asked myself three questions:

 "Why do I want to join tech?"

 "Is this the best fit for me?"

 "How do I plan on achieving this?" 

asking myself these questions were crucial, NEVER rush a decision. Below are my reasoning and thought  process.   

##Why I wanted to join tech?

1. Technology is the backbone in today's society, all the advancement in technology has lead to a more connected, convenient and informative way of life. I've had the privilege of watching technology grow over the past decades and seeing the impact of softwares like educational platforms, financial technology apps, Social media. This was a big motivator for me to get into tech, the ability to create and impact many lives through software was inspiring to me and it is why I decided to learn software engineering.

##Is this the best fit for me?

2. You may be asking "how do I know if this is the best fit for me?" The way I found out for myself was by going on youtube, learning about the industry from others currently in it. I used beginner friendly apps like mimo and challenged myself with web apps like https://freecodecamp.org. By applying myself I was able to know if tech was a good fit for me. I paid attention to my ability in problem solving and my approach on it. I observed how it made me feel when I was stuck on the same problem/errors for hours. I Come to realize how entertained I was by the challenge of creating working lines of code. I noticed how fast time flew by when I began coding, hours would go by and I would not sense any kind of fatigue. I knew it was right for me when being consistent with learning didn't feel like a chore. 
   
##How do I plan on achieving this?

3. My approach to becoming a software engineer is to get better everyday, learn a minimum of one concept a day. When you understand the overall concept of a method, you will better understand how to implement your knowledge. I will also get comfortable with googling things I don't know! it'll serve me well.  Google, stackOverflow, w3Schools are great resources to use when you are coding these are your tools.
Repetition and consistency is how I plan to achieve my goals of becoming a full stack engineer. I'm currently attending 
Flatiron school's software engineer bootcamp!

This was my thought process through my decision to take the leap on becoming a full stack engineer.
rost_gen - A simple static site generator
Tags: opensource, rust
Published: 2022-09-19 00:14:06

This is a project that I created as part of my course in open-source development. [rost_gen](https://github.com/Eakam1007/rost_gen) is a basic static site generator made using [Rust](https://www.rust-lang.org/) that generates html files from text files.

## Usage
Detailed installation and usage instructions can be found in the Readme.md file on github [here](https://github.com/Eakam1007/rost_gen).

``` ./rost_gen [OPTION] ```
**Available options:**
`[-i, --input] [PATH]`
  Specify a path to the input file or folder containing files. 
  The file or files must be .txt files to be converted. By default, this will output generated html files to the ./dist directory. Any existing content will be deleted. 

`[-i, --input] [INPUT PATH] [-o, --output] [OUTPUT PATH] `
  Specify an output directory. This will create a directory if it doesn't exist but keep existing content.

`[-h, --help]`
  Display help message

`[-v, --version]`
  Display name and version of tool

**Usage examples:**

- Generate html from a single text file
    ``` ./rost_gen --input file_to_convert.txt ```

- Generate html from a folder containing text files
    ``` ./rost_gen -i folder_with_text_files ```
  
- Specify an output directory
    ``` ./rost_gen --input file_to_convert.txt --output output_dir ```

## Features
- **Seperate paragraphs with blank lines**
  The tool will parse paragraphs and enclose them in `<p>` tags. Just separate paragraphs in the text file with blank lines:
    ```
    This is the first paragraph
    
    This is the second paragraph
    This is the second line of the second paragraph
    ```
- **Specify a file title with two blank lines**
  If the first line is followed with two blank lines, it will be used as the title of the generated html file. The tool will also add a `<h1>` tag in the generated html body containing this title:
    ```
    Title of the document
    
    
    Start of content
    ```
    Generated html body will look like this:
    ```
    <h1>
      Title of the document
    </h1>
    <p>
      Start of content>
    </p>
    ```

## About the name
I based the name on a scene from one of one of the episodes from "The Mentalist" where one of the characters uses "Roth" (which comes from the German word "rot" meaning "Red) as part of one of their aliases. 
So, I decided to use Google Translate to translate Rust into German and ended up with rost, and gen for generator. Also, st_gen can be short for static_generator.