teleren/devto huggingface dataset:
DTLS の誤解
Tags: dtls, udp
Published: 2020-07-23 13:08:56

DTLS は順序保証や再送などもうまいことやってくれると誤解されがちです。

DTLS が順序保証や再送をやってくれるのは DTLS の Handshake の最中のみで、Application Data 部分は上に乗っかるプロトコルが全部頑張る必要があります。

たとえば WebRTC の DataChannel であれば SCTP が再送やら順序保証をがんばります。

まとめ: DTLS は順序保証や再送は一切やってくれませんので、その上に乗っかるプロトコルが全部面倒見る必要があります。
How to deal with Netlify and GSuite for the same domain?
Tags: beginners, gatsby, help
Published: 2020-07-23 13:02:01

One of my family's friends asked me to build a static website for them. I purchased a domain for them, and while there are many hosting options out there, I decided to go with

* Gatsby + Netlify (redirected to their new domain)
* GSuite for handling their domain (at 5$ they get to use their @domain.com address).

Now, while the whole Netlify process is quite straightforward ([I use this](https://levelup.gitconnected.com/how-to-host-domain-to-netlify-site-for-free-step-by-step-guide-45d0c2102db3), as a guideline) I don't really know much about how Gsuit and how google handles an email for a specific domain.

I currently routed their domain through Cloudflare, in order to handle the DNS&co. 

Any suggestions on how to host the website with Netlify, redirect to their domain and at the same time use GSuite to cater for their email needs?
Azure and Angular Deployment in 10 minutes
Tags: help, azure, angular
Published: 2020-07-23 12:59:31

**Deploy Angular App to Azure**

For the Angular folks we are easily able to create a new Angular application and run it locally using 

```
ng serve
```

However, to deploy it to an Azure web site, we have to have a server that knows how to default to showing an index.html file. IIS does this by default.

**App Service Plan and the App Service**

Then navigate to [portal.azure.com](https://portal.azure.com).

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

The App Service Plan describes the type of environment.  We configured an ASP.NET Core 3.1 environment.  

The App Service is Azure speak for the Web Site which by default is served here:

```
https://websitename.azurewebsites.net/
```
You will only see the App Service after the deploy.

**Dist Folder Only**

The website only needs the contents of the Dist folder.  We accomplished this by running 

```
ng build --prod
```
Then we moved the dist folder to it's own folder...

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

**Deploy**

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

Answer yes to any questions, then click on the link to see your new website.


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

**Linux without ASP.NET Core**

Our first deployment attempts failed because the default App Service plan is Linux without ASP.NET Core. This failed because the file it wanted (to serve app) didn't exist.  We deleted that App Service plan then we created the a new plan using ASP.Net Core 3.1.


Thanks to [Lars help](https://dev.to/layzee) in guidance below, it worked!
Why Forem is Special with Ben Halpern
Tags: codeland, forem, opensource
Published: 2020-07-23 12:55:47

---
title: Why Forem is Special with Ben Halpern
published: true
description: Sharing some of the reasons why Forem, the open-source community platform that powers DEV, is so special 
tags: codeland, forem, opensource
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/gqs7ywn9g4978rv5odwh.png
---

Ben is a co-founder of [Forem](https://forem.com), the open source social network platform designed for empowering community. He is from Halifax, Nova Scotia and has a focus primarily in web development.

{% slideshare I2hPpWQzKDZiPE %}

**[Here is a download link to the talk slides (PDF)](https://drive.google.com/file/d/123bOprMOU8UvbT9fPYSivsHmadeqDvAA/view?usp=sharing)**

---
_This talk will be presented as part of [CodeLand:Distributed](https://codelandconf.com) on **July 23**.  After the talk is streamed as part of the conference, it will be added to this post as a recorded video._
TypeScript, simplified import paths, and what you have to be careful
Tags: typescript, babel, webdev, node
Published: 2020-07-23 12:53:19

As a response to this post,

{% post https://dev.to/andrewmcoupe/how-i-simplified-my-import-paths-in-typescript-4hg6 %}

Simplified import paths are easy for IDEs, especially VSCode, but hard for resolvers and Node.js itself.

So, you will need some additional packages,

- tsconfig-paths
- Babel

So, I had to put more things in `package.json`

```json
{
  "scripts": {
    "run-ts": "ts-node -r tsconfig-paths/register -O '{\"module\":\"commonjs\",\"noImplicitAny\":false}'",
    "run-ts-dev": "ts-node-dev -r tsconfig-paths/register"
  },
  "devDependencies": {
    "@babel/cli": "^7.10.5",
    "@babel/core": "^7.10.5",
    "babel-plugin-module-resolver": "^4.0.0"
  }
}
```

```js
// tsconfig.json

{
  "compilerOptions": {
    "rootDir": "./src",
    "outDir": "./dist"
    "baseUrl": "./",
    "paths": {
      "@/*": [ "src/*" ]
    }
  }
}
```

```js
// .babelrc

{
  "plugins": [
    ["module-resolver", {
      "root": ["./dist"],
      "alias": {
        "@": "./dist"
      }
    }]
  ]
}
```

Yes, it seems that you have to type out the aliases twice. Also, **the syntaxes are a little different**.

Now, for the essential commands,

```sh
yarn run-ts scripts/migration.ts
# or npm run run-ts -- scripts/migration.ts to run a short running scripts, e.g. migration

yarn run-ts-dev src/server.ts
# or npm run run-ts-dev -- src/server.ts to run a long running scripts, e.g. server

rimraf dist && tsc && babel dist -o dist
node dist/index.ts
# Yes, you can use Babel just to resolve paths. Babel onto itself as well.

# This is also possible.
rimraf dist && tsc
node -r tsconfig-paths/register dist/index.js
```

> There is one big problem. [@babel/preset-typescript is not using tsconfig.json](https://github.com/babel/babel/issues/9028); therefore, [Microsoft's Babel starter](https://github.com/Microsoft/TypeScript-Babel-Starter) is just not enough. It doesn't recognize additional features like experimentalDecorators...

Never mind, it seems that I can `tsc` first, then `babel` onto itself. 

- This will make `experimentalDecorators` work without an explicit Babel plugin. I think Babel is a configuration hell.
- I think TypeScript compiler already do much of what Babel supposed to do.
- There is another gotcha, though. `tsc` doesn't remove the old directory / output. So the solution is `rimraf dist` first.
OLM to PST Conversion tool
Tags: olmtopst, convertolmtopst, olmtopstconverter, convertfromolmtopst
Published: 2020-07-23 12:35:42


For OLM to PST Conversion you can take help of this Regain OLM to PST Conversion tool that able to Convert from OLM to PST with all emails attachments. this software comes with simple and easy GUI Interface where anyone can easily operate it. this software provides few easy steps and by following them user can Convert their Mac OLM file to PST file format with all data files. this software provides accurate results and it will not change anything from the data files.

You can try this software free trial version from here: https://www.regainsoftware.com/olm-to-pst-converter.html
Transfer Mac OLM emails to Windows Outlook PST format
Tags: olmtopst, convertolmtopst, olmtopstconverter, convertfromolmtopst
Published: 2020-07-23 12:34:48

Transfer Mac OLM emails to Windows Outlook PST file format by using this simple and easy method Regain OLM to PST Converter Software. this software easily Transfer your selected Mac OLM emails to Windows based Outlook PST format in just few seconds. this software easy to use and both technical and Non technical users can easily access it without any technical expertise. you can also save 30 emails per folder at free of cost in free demo version.

Get this software free demo version from here: https://www.regainsoftware.com/olm-to-pst-converter.html
What's your "let me write about it" moment this week?
Tags: discuss, writing, webdev, computerscience
Published: 2020-07-23 12:30:20

When I set myself the goal of writing about tech on DEV every week, I felt like I took on the role of being a creator (albeit a self-proclaimed one). With that in the back of my mind, I started to have moments in my life when I thought "this stuff is interesting, I could write an article about it!". 
This week, the inspiration came when I couldn't solve an algorithm question on my problem set. I am going to write an article on how to solve that problem, with the help of a visualization that I will be making.

What is your creative moment this week?
Early Access to App Deployment & Hosting in UI Bakery
Tags: webdev, frontend, nocode, beta
Published: 2020-07-23 12:26:41

Hi community.

It's Eugenia from the UI Bakery team.
Glad to share that very soon app deployment & hosting will become available in UI Bakery low-code platform.
You'll be able to:
- Deploy your web app with a button click to watch it live.
- Share your app with team members or clients to get feedback.
- Host your web app on the UI Bakery domain, or add and use a custom one.

Now, app deployment & hosting is in beta testing. Get early access to the new feature and please feel free to share your feedback with us: https://hubs.ly/H0sTjPz0
4 Best Big Data Solutions We have Provided For Our Customers
Tags: architecture
Published: 2020-07-23 12:18:37

Big data finds ways to analyze and extract meaningful outcomes and deals from data that are too large or complex to be dealt with. The data processing here, with respect to many cases offers high statistical power with the power to transform the way how business works and furthermore. With data arriving from all the places, businesses are prioritizing ways to transform massive volumes of data into tangible, meaningful business decisions.

Terralogic serves a wide range of industries viz. Retail, Automotive, Healthcare, Construction, etc. helping them to maximize their efficiency and increase revenue in their manufacturing, sales, HR, customer experience, and other areas.



Characterized into 4 v’s and classified into the frequency of generation and frequency of handling, recording, and publishing, here is how Big data makes a difference:-

Volume:
The volume of generated and stored data. This data gives the value and potential growth, and to confirm it as big data or not.

Variety:
The body and nature of the resulting data, where people understand effectively using the resultant. Big data can be considered from images, audio, texts and it also completes missing data through data blending.

Velocity:
Here the speed of the data is processed and generated to meet the requirements they face in the growth and development of the company.



Read more: https://www.terralogic.com/4-best-big-data-solutions-weve-provided-for-our-customers/
Today I learned (1)
Tags: typescript, angular, javascript
Published: 2020-07-23 12:17:41

* [**The Differences Between forEach() and map()**](https://www.freecodecamp.org/news/4-main-differences-between-foreach-and-map/)
* [**How to write unit tests for observables**](https://medium.com/angular-in-depth/how-to-test-observables-a00038c7faad)
Implement Themes/Dark Mode in Your Front-End in 5 Minutes
Published: 2020-07-23 12:14:42

No matter if you write your own CSS or use frameworks such as Semantic or Bootstrap, implementing dark mode is often the most procrastinated feature

{% twitter 1234905831226925059 %}

Let’s cut to the chase:

1. Write a CSS mixin containing classes of the DOM elements we want to style as a part of our theme
{% gist https://gist.github.com/bearded-impala/d08c77f9b31493984208fc51e4c37332.js %}

2. Including our mixin in the style-sheet meant to be imported in the entry javascript(index.js) or the topmost component(App.js)
{% gist https://gist.github.com/bearded-impala/dad4614a4193dc51d0bf839302e3c33f.js %}

3. Write your code to allow the user to change the class of the <body> element. In my case, I have provided a drop-down.
{% gist https://gist.github.com/bearded-impala/bb4a647d7ae86a3b7015c3ba1730ad8d.js %}
Now depending on whether you want a light switch to go dark or a dropdown to select from multiple themes (I’m using a DropDown from Semantic UI), you can have the same setTheme method for the onChange event.

4. Everything should work now unless the user refreshes. The setTheme method already sets the body class and stores user’s selection to localStorage, but we need to read that on a page load or refresh. Place the following script in your app’s entry point, either index.html or index.js, preferably the latter.
{% gist https://gist.github.com/bearded-impala/101f81f1b8b4acb55311bbf239871b61.js %}

All done !!

{% github bearded-impala/CSS-Theming no-readme %}

And the GitHub page of that repository,
https://bearded-impala.github.io/CSS-Theming

Thanks for reading.
Compete For Glory In An IoT Tug-Of-War!
Tags: codeland
Published: 2020-07-23 12:13:46

---
title: Compete For Glory In An IoT Tug-Of-War!
published: true
description: 
tags: codeland
//cover_image: https://direct_url_to_image.jpg
---

NomNom the Roomba was born in July 2020. A series 585 Roomba, NomNom never goes anywhere without its external microcontroller and <a href="https://www.twilio.com/iot/supersim"> Twilio Super SIM</a>. Its favorite activities are wearing fancy hats and eating confetti.

![nomnom](https://dev-to-uploads.s3.amazonaws.com/i/q0vwcdjrhsizz6jqolef.jpg)

Compete for glory in an IoT tug-of-war! Direct NomNom the Roomba to vacuum up your team’s confetti first. The winning team goes down in history as NomNom’s Most Favorite CodeLanders.

If you want to learn more about how we built this, check out the GitHub repository of the project.

{% github dkundel/remote-controlled-roomba no-readme %}
If you're repeatedly visiting the same Zoom-Room
Tags: zoom, hacks, commandline
Published: 2020-07-23 12:13:35

---
title: If you're repeatedly visiting the same Zoom-Room
published: true
description: How to quickly open a room in zoom
tags: Zoom,Hacks,CommandLine
//cover_image: https://direct_url_to_image.jpg
---
Here's a little "secret" hack I found to make [zoom](https://zoom.us/)-meetings easier. My company has a Pro-Account and therefore we have a meeting-room with a constant address. So I wondered if I could make it easier to attend meetings in that room. _"Wouldn't it be nice if I could just launch zoom.exe with a room-ID?"_

Hmm, that didn't work. As I digged deeper, I found that you can launch the URL `https://zoom.us/j/{magic_number}` and are redirected to the zoom-app (this is with MS Windows, but I assume Linux/Mac will have similar behaviour). Unfortunately this feels a bit "indirect" and needs confirmation etc. - didn't like that too much.

So I had a look at what this redirect actually does and found that it simply "translates" this into a call to `zoommtg://zoom.us/join?action=join&confno={magic_number}` which windows then opens - and that goes directly into the Zoom-app. So if you create a shortcut on the desktop (or in your favourite launcher) with that URL, it'll open Zoom to that room any time you click it :)

Happy zooming!

P.S: I labelled it a "secret" hack, because even Zoom-suuport does not seem to know this! ;)
Hi, We’re GitHub and we’re excited to be at CodeLand!
Tags: codeland
Published: 2020-07-23 12:09:03

---
title: "Hi, We’re GitHub and we’re excited to be at CodeLand!"
published: true
description: 
tags: codeland
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/d20vfpwd3equhllyxh5s.png
---

GitHub is a development platform inspired by the way you work. From open source to business, you can host and review code, manage projects, and build software alongside 50 million developers.

### Stickers & Early Access To Codespaces✨

Get a free GitHub sticker pack when you share your profile README in the comments below!

{% link https://dev.to/github/10-standout-github-profile-readmes-h2o %}

We encourage you to [create your own Octocat](https://myoctocat.com/) and [Profile README emojis](https://dev.to/yamadashy/emoji-cheatsheet-of-githubslackdiscordqiita-4d2f).

The three (3) best READMEs submitted by the end of CodeLand will get access to [Codespaces](https://github.com/features/codespaces/)!

Want to get in touch? Leave us a comment in the AMA.

{% link https://dev.to/github/github-profile-ama-25i7 %}
A Rudimentary Blockchain Written in Crystal Pt. 1
Tags: blockchain, crypto, crystal, ruby
Published: 2020-07-23 12:01:23

So, what is a blockchain? It’s a list (chain) of blocks linked and secured by digital fingerprints (also known as crypto hashes).

The easiest way to think of it is as a linked list data structure. That being said, a linked list only required to have a reference to the previous element; a block must have an identifier depending on the previous block’s identifier, meaning that you cannot replace a block without recomputing every single block that comes after.

For now, think of blockchain as a series of blocks with some data linked with a chain, the chain being the hash of the previous block.

Blockchains have become more practical today due to the reduced sized of and increased amount of space in hard drives. A few decades ago, not so much. Each full node on the Bitcoin network will have a copy of the entire blockchain (150GB+)! That is a copy of every block ever mined over the last 11 years.

## On to CrystalChain
I'm going to write this as a brief run-through of the code and how a blockchain's core structure is set up.

There are different hashing algorithms, and for this project, I chose SHA256, which is the one used in Bitcoin.

Each block is stored with a timestamp and an index. In theory, you only **need** one or the other. In CrystalChain, we’re going to store both. To help ensure integrity throughout the blockchain, each block will have a self-identifying hash. 

Like Bitcoin, each block’s hash will be a cryptographic hash of the block’s (index, timestamp, data, and the hash of the previous block’s hash previous_hash). The data can be anything you want for now.

block.cr

```
require "openssl"
require "./proof_of_work"
require "./transaction"
require "json"

module CrystalChain
  class Block
    include ProofOfWork
    include JSON::Serializable
    property current_hash : String, index : Int32, 
             nonce : Int32, previous_hash : String

    def initialize(index = 0, 
                   data = "data", 
                   transactions = [] of Transaction, 
                   previous_hash = "hash")
      @data = data
      @index = index
      @timestamp = Time.utc
      @previous_hash = previous_hash
      @nonce = proof_of_work
      @current_hash = calc_hash_with_nonce(@nonce)
      @transactions = transactions
    end

    def self.first(data = "Genesis Block")
      Block.new(data: data, previous_hash: "0")
    end

    def self.next(previous_block, transactions = [] of Transaction)
      Block.new(
        transactions: transactions,
        index: previous_block.index + 1,
        previous_hash: previous_block.current_hash
      )
    end

    private def hash_block
      hash = OpenSSL::Digest.new("SHA256")
      hash.update("#{@index}#{@timestamp}#{@data}#{@previous_hash}")
      hash.final.hexstring
    end
    
    def recalculate_hash
      @nonce = proof_of_work
      @current_hash = calc_hash_with_nonce(@nonce)
    end
  
  end
end
```

Follow the rest of this post on my blog @
https://nolanm.dev/posts/10-a-rudimentary-blockchain-written-in-crystal

Enjoy!
Hi CodeLand, we're Coderbyte and we're here to help you level up your interview skills.
Tags: codeland
Published: 2020-07-23 12:02:20

---
title: Hi CodeLand, we're Coderbyte and we're here to help you level up your interview skills.
published: true
description: Coderbyte is the #1 coding challenge platform for interview prep.
tags: codeland
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/8blw5o3sqap67mxpigkr.png
---
[Coderbyte](https://coderbyte.com) is the #1 coding challenge platform for interview prep. We offer a collection of code challenges and web development courses that can help you prepare for upcoming job interviews. The coding challenges range in difficulty and they can all be completed straight in our online editor!

We're so excited to be at Codeland, and hope we can help you level up your coding and interview skills.  Check us out at [Coderbyte.com](https://coderbyte.com) and take the Codeland challenge today.

Here's what you can expect (psssst scroll down for a special CodeLand discount):

![interview-kits](https://dev-to-uploads.s3.amazonaws.com/i/168soqf73yd1h4jm05f2.png)
![solution-guide](https://dev-to-uploads.s3.amazonaws.com/i/bi67gig9oynd21nedx5h.png)
![progress-tracking](https://dev-to-uploads.s3.amazonaws.com/i/po31z1n2dxl2qsjuij4k.png)
![coding-environment](https://dev-to-uploads.s3.amazonaws.com/i/mlz463y6qqew0dbbmwia.png)

### A CodeLand Exclusive Discount ✨

If you're excited about our approach to interview prep, then today's your lucky day! Please enjoy 30% off any subscriptions or crash courses with this [special CodeLand link](https://coderbyte.com/member?promo=janpromo4351&utm_source=Codeland).

If you have any questions at all, please feel free to leave a comment down below :)
Hi, we're Gitcoin and we're super excited to be at CodeLand!
Tags: codeland
Published: 2020-07-23 12:01:34

---
title: Hi, we're Gitcoin and we're super excited to be at CodeLand!
published: true
description: Gitcoin is a remote-first developer community focused on growing and sustaining open source software.
tags: codeland
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/29nenx7o2qnau07h3pm4.png
---

[Gitcoin](https://gitcoin.co) is a remote-first developer community focused on growing and sustaining open source software. We strongly believe that contributors and maintainers in FOSS should be paid for their work and to date Gitcoin has paid out nearly $6M in funding to 10,000+ developers around the world. 

We're also part of a variety of great initiatives you can get involved in, including [FOSS Responders](http://fossresponders.com/) and [Sustain OSS](http://sustainoss.org/). This year, we're super excited to add Codeland to that list and to work with DEV to help forward our mission. 

To get paid to contribute to open source, check out some of our bounties and hackathons [here](https://gitcoin.co/explorer), or, if you're a maintainer, [put up a grant](https://gitcoin.co/grants/) for your project. 

### Got Questions? Let's Chat!

We'll be hanging out at our [DEV Connect channel](https://dev.to/connect/gitcoin-28kn) from 12:00 - 4:00p ET today. We'd love to answer any questions you have about Gitcoin, so please swing by!

If today doesn't work, you can schedule a call with us anytime:  https://calendly.com/connoroday/codeland

or simply leave a comment down below :)

### Free Stuff 🎉

It wouldn't be a conference without some free swag. 

Please enjoy:
- [29 Dynamic Zoom Backgrounds](https://bits.owocki.com/o0uvlKYm)
- [Kudos NFT Airdrop](https://gitcoin.co/kudos/redeem/89117786194896327480)!

<a name="career">

### We're Hiring ✨

We currently have three open engineering roles that you can find [here](https://gitcoin.co/jobs). 

We also run a variety of incubator style programs, including one with Protocol Labs in August. If you have a [decentralized web project](https://www.wired.co.uk/article/inrupt-tim-berners-lee) you'd like to see get off the ground, reach out and we'll personally help you with your application!

-----

Gitcoin fundamentally wants to see open source software grow and become sustainable, and we believe the DEV Community does too. We're proud to be sponsoring CodeLand to help push this mission forward and hope some of you will join us!