teleren/devto huggingface dataset:
Fruition - free, open source toolkit for pretty URL slugs & custom domains for Notion
Tags: productivity, opensource, notion, sideprojects
Published: 2020-05-07 13:18:33

Hello! My name is [Stephen](http://stephenou.com/), a huge Notion fan and a software engineer. I decided to combine the two and build something cool for the Notion community.

The result is [Fruition](https://fruitionsite.com): https://fruitionsite.com.

Features: pretty URLs, custom domains, Google Fonts, SEO support, script injection

Use cases: perfect for your portfolio, blog, landing page, or business site

Benefits: completely free, no coding required, no lock-in, open source
CRAO a CLI for creating react apps offline.
Tags: node, npm, javascript, react
Published: 2020-05-07 13:13:20

#### We can make it offline
We all know the struggle, every time we need to create a new react app wi must start by typing this command 
```sh
npm create-react-app my-app
```
Then the skeleton of our app get created automatically with no build configuration, the problem here is there is a lot of **NPM** packages to download.
If you are like me living in a country with a very slow network, the process of creating new react app can take a while.
On the other hand if you are using a metered connection this is also can be a bad thing.

As we all know, necessity is the mother of invention.
So i made this tool that could help a lot of react developers to create apps offline and very fast you can find it here in [NPM](https://www.npmjs.com/package/create-react-app-offline) or in [GitHub](https://github.com/Baronsindo/create-react-app-offline)

#### installation
The installation process is as easy as drinking water.
```sh
npm install -g create-react-app-offline
```
#### Now we don't need internet, lets create our first app.
```sh
crao -n <app-name>
```
for example :
```sh
crao -n my-app
```
It will create a directory called my-app inside the current folder.
Inside that directory, it will generate the initial project structure and install the transitive dependencies:

```
my-app
├── README.md
├── node_modules
├── package.json
├── .gitignore
├── public
│   ├── favicon.ico
│   ├── index.html
│   └── manifest.json
└── src
    ├── App.css
    ├── App.js
    ├── App.test.js
    ├── index.css
    ├── index.js
    ├── logo.svg
    └── serviceWorker.js
    └── setupTests.js
```
#### Let's help each other
You can visit the [repo on github](https://github.com/Baronsindo/create-react-app-offline) or follow me on [twitter](https://twitter.com/Elbaron_V3I), and lets work together on making more open source projects.
Micro store with React Hooks and RxJS
Tags: react, rxjs
Published: 2020-05-07 13:11:52

Recently I got curious about RxJS as a replacement for Redux and all the boilerplate code needed to integrate it with a React project. For this example, I wanted to create a "micro-store" and initialise it with data from the [https://randomuser.me/](https://randomuser.me/) API.

# Creating a micro store

Let's start by creating and exporting an initial state in a `store/users.js` file. We will also declare a `state` variable that will contain the current state of this store over time.

```javascript
const initialState = {
  loading: false,
  users: [],
}

let state = initialState

export default {
  initialState,
}
```

Then we will add a [BehaviorSubject](https://rxjs-dev.firebaseapp.com/guide/subject#behaviorsubject) and initialise it with the initial state.

```javascript
import { BehaviorSubject } from "rxjs"

let subject = new BehaviorSubject(initialState)
```

We can now add a function all subscribers can use to synchronise their state with the current state of our store, using their `setState` method.

```javascript
export default {
  initialState,
  subscribe: setState => subject.subscribe(setState),
}
```

Lastly, we will request users array from the API and update the content of our micro-store.

```javascript
import { ajax } from "rxjs/ajax"
import { catchError, delay, map } from "rxjs/operators"

subject.next({ ...state, loading: true })

ajax
  .getJSON('https://randomuser.me/api/?results=10')
  .pipe(
    delay(2000), // This simulate some latency
    map(({ results }) => subject.next({ ...state, loading: false, users: results })),
    catchError(() => subject.next({ ...state, loading: false })),
  )
  .subscribe()
```

The final content of `store/users.js` is:

```javascript
import { BehaviorSubject, of } from 'rxjs'
import { ajax } from 'rxjs/ajax'
import { catchError, delay, map } from 'rxjs/operators'

const initialState = {
  loading: false,
  users: [],
}
let state = initialState

let subject = new BehaviorSubject(initialState)

subject.next({ ...state, loading: true })

ajax
  .getJSON('https://randomuser.me/api/?results=10')
  .pipe(
    delay(2000),
    map(({ results }) => subject.next({ ...state, loading: false, users: results })),
    catchError(() => subject.next({ ...state, loading: false })),
  )
  .subscribe()

export default {
  initialState,
  subscribe: setState => subject.subscribe(setState),
}

```

# Link store to a component

```jsx
import React, { useState, useEffect } from "react"
import usersStore from "./store/users"

export default function App() {
  const [{ loading, users }, setUsers] = useState(usersStore.initialState)

  useEffect(() => {
    const subscription = usersStore.subscribe(setUsers)
    return () => subscription.unsubscribe()
  }, [])

  return (
    <div className="App">
      <h1 className="text-3xl">Users:</h1>
      {loading ? (
        <p>Loading ...</p>
      ) : (
        <ul>
          {users.map(user => (
            <li key={user.email}>{user.name.first}</li>
          ))}
        </ul>
      )}
    </div>
  )
}
```

# Result

{% codesandbox dazzling-snow-bxuyc %}
VimTrick: Swap two characters
Tags: vim
Published: 2020-05-07 13:09:47

Here’s a quick trick that requires no plugins. You probably already know both of these commands but many people, including myself, might not have internalized the combination. A little reminder is sometimes all we need.

Use xp to swap the character under your cursor with the one to its right.

For example, suppose you have a misspelled word like so:

```
puts "Hlelo world!"
```

With your cursor on the misplaced l in Hlelo, type xp:

```
puts "H█elo world!"
```

The x deletes the character under the cursor and puts it in a register and p pastes that register to the right of the cursor. You end up with:

```
puts "Hello world!"
```

There's a quick screencast gif [over on my VimTricks post](https://vimtricks.substack.com/p/vimtrick-swap-two-characters) for this. 

I'm publishing new Vim tricks and tips every Monday and Thursday as an exercise to help me learn Vim. Even just writing up tips like this has had a tremendous impact on my productivity.
Deno.js says hello!
Tags: javascript, typescript, news, node
Published: 2020-05-07 13:07:06

Do you like Node.js but not its package manager [npm], and you want a more secure JavaScript runtime environment than. You might find the new open srource project Deno of interest. Although it's still under development.

 https://deno.land/

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

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

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

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

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

What are your thoughts about this ?
The comments section is waiting for you !

PS: Feedback will be appreciated!
Proper web research - The new superpower of 2020
Tags: webdev
Published: 2020-05-07 10:23:12

Lately I've gotten a decent amount of questions on how I achieve certain things and when my response goes like "I just Googled it" it's often perceived as a joke or some sort of "whining".

Personally I've been able to achieve a lot just by looking it up on a search engine. A couple of days back I was approached by a client who asked me to build a sales funnel (Something I had never heard of before 😔). But I told him I could do it 😂.

Here are a couple of things I feel helps one to solve complicated problems





###**There is life beyond the first page of Google**

Most developers and people in general have this issue when it comes to extensive web research and if you're being honest with yourself, you're guilty as well.

Well in as much as the results on the first page has reviews and 60% of the times we tend to find what we are looking for on the first page of Google
But in a case where you can't find it on the first page, Don't go to bed, there are tons of other pages that may have what you're looking for.




###**Use the Keyword 'How to ....'**

As we all know, Google and other search engines are a large marketplace for knowledge. So you might want to be a little bit specific, i mean search engines don't read minds.

So starting your search with the phrase 'How to ' kind of filters out all the noise out on the internet which at the end gives you a more accurate set of answers.


###**Stack Overflow is not only Senior Developers**

I know this one is a little bit off but i know a reasonable amount of Junior developers think that their problems are too 'simple' to be on stack overflow.

So a small note the the junior developers out there, your HTML and CSS problems have answers on stack overflow. I mean senior Devs were once junior Devs so there is a high chance they had the same challenge(s) at a point in their development journey. So never be scared or ashamed on asking certain questions on stack overflow.


I hope you found this read helpful, you can hop over to your favorite search engine and try out your new superpower and don't forget to leave a ❤️
Infrastructure as Code and How Terraform Fits Into It
Tags: terraform, chef, puppet, aws
Published: 2020-05-07 12:57:17

---
title: Infrastructure as Code and How Terraform Fits Into It
published: true
description: Learning Terraform: Part I
tags: terraform, chef, puppet, aws
cover_image: https://assets.mkdev.me/posts/covers/000/000/012/original/mkdev_article.png
---
In our first Lightning Course we are going to learn Terraform in under 1 hour, split across 6 videos. In this first video, Kirill Shirinkin will explain what Infrastructure as Code is and how Terraform fits into this concept. 

{% youtube P0FUfo-Xdg4 %}

***

**Terraform Lightning Course**

* Part I: [Infrastructure as Code](https://dev.to/mkdev/infrastructure-as-code-and-how-terraform-fits-into-it-40bl)
* Part II: [Terraform Fundamentals](https://dev.to/mkdev/terraform-fundamentals-state-management-and-dependency-graph-creating-the-first-server-1756)
* Part III: [Configuring Terraform Templates](https://dev.to/mkdev/configuring-terraform-templates-variables-and-data-resources-5b99)
* Part IV: [Multi-cloud Terraform Environment](https://dev.to/mkdev_me/creating-multi-cloud-terraform-environment-with-the-help-of-remote-state-backends-and-aws-s3-1l0)
* Part V: [Refactor Terraform code with Modules](https://dev.to/mkdev_me/refactor-terraform-code-with-modules-1o21)
* Part VI: [Learning Provisioners](https://dev.to/mkdev_me/creating-kubernetes-clusters-with-terraform-learning-provisioners-2o6o)

*You can always hire [our mentors](https://mkdev.me/en/specializations) and learn directly from them!*
How to learn a lot and keep going? My Personal experience
Tags: podcast, motivation, career, codenewbie
Published: 2020-05-07 12:54:43

{% spotify spotify:episode:31wEXf7Icw8C7xEYFYAKj4 %}


## Intro

Most of us want to achieve big in our life, how 'big' that is, is debatable and is unique to each one of us. But there is only one thing that will lead you there. In this podcast, I exactly discuss that with dp_says.

## What's in this podcast?

- How do you achieve your goals?
- How to find your niche?
- What should you be cautious about?

Hope you like this podcast, This is Tharun Shiv, and you're listening to my podcast. Thanks for listening.
You can find my Podcast episodes on Majority of the podcast platforms, the podcast is with name **Tharun Shiv**. Link: https://anchor.fm/developerTharun
May 7 — Daily CodeNewbie Check-in Thread
Tags: codenewbie, checkin, beginners, discuss
Published: 2020-05-07 12:39:33

---
title: May 7 — Daily CodeNewbie Check-in Thread
published: true
description: A daily thread to ask questions, share progress, and stay accountable!
tags: codenewbie, checkin, beginners, discuss
series: Daily Checkin
---

You are encouraged to use this daily thread to:
- Ask for help (all questions encouraged)
- Explore topics you’re curious about
- Share something you’ve written or read
- Celebrate your wins
- Stay accountable to your goals
- Support your fellow programmers

Happy Coding!

---

_Interested in joining the twice-weekly live [#CodeNewbie Twitter chats](https://twitter.com/search?q=codenewbie)?  You can find us [on Twitter](https://twitter.com/search?q=codenewbie) each Wednesday at 9pm ET (1am GMT on Thursday) and Sunday at 2pm ET (6pm GMT)!_
Covid-19 Stats Chrome Extension - Angular
Tags: angular, javascript
Published: 2020-05-07 12:38:34

Hi everyone, I want to share my Chrome extension to display Covid-19 statistics.

[Download link](https://chrome.google.com/webstore/detail/covid-19-stats/pjfcgnbgefoebpppegbmjigihbjmoijj)

[Github repository](https://github.com/deerawan/covid-19-stats)

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

## Tech stack: 
- Angular 9
- Jest
- Cypress 

## Things learned
- This is actually my first Chrome extension 😬 so it's been a great experience
- CSS variables for switching light and dark mode
- Github Actions to run Jest and Cypress (I used to use Travis CI)
- I used Figma to design the UI (I used to use Sketch)

Hope you guys like it
What is your favorite Udemy course?
Tags: udemy, elearning, discuss
Published: 2020-05-07 12:35:29

---
title: What is your favorite Udemy course?
published: true
description: 
tags: Udemy, elearning, #discuss
---

When I start learning about a new topic, I usually watch a video course on Udemy which covers a wide range of the topic.

What is your favorite Udemy course?

The one I learned the most about a topic was probably Angular - The complete Guide by Maximilian Schwarzmüller a couple of years ago. The course really helped me to get into the world of Angular. Even now it is getting updated and a helpful resource for me.
But I also enjoyed Spring 5 Framework - Beginner to Guru by John Thompson a lot.
Hey all Udemy is offering courses at $9.99
Tags: productivity, python, aws, datascience
Published: 2020-05-07 12:29:30

If you are looking to learn new skills during lockdown, now is the best time to go ahead, as Udemy is offering around [120,000 online courses](https://click.linksynergy.com/deeplink?id=GxnmeFBS/Pk&mid=39197&u1=DEV999May2020&murl=https%3A%2F%2Fwww.udemy.com%2F%3Fdeal_code%3DSKILLUP2020) at just $9.99 each at the moment.

Learn new skills or master an existing one, turn the boring lockdown days into productive days. Think about upskilling by learning futuristic skills.

Here are the popular topics on Udemy:

Development
Business
IT and Software
Design
Marketing
Personal Development
Photography
Music
Apart from these, the website hosts courses on [100s of topics](https://click.linksynergy.com/deeplink?id=GxnmeFBS/Pk&mid=39197&u1=DEV999May2020&murl=https%3A%2F%2Fwww.udemy.com%2F%3Fdeal_code%3DSKILLUP2020). Just look for the one that interests you and start learning straight away.

Disclaimer: I may get compensated if you buy any courses following the links I have shared in this post.
Software/tools for self-publishing books
Tags: selfpublishing, tools, help
Published: 2020-05-07 12:26:43

---
title: Software/tools for self-publishing books
published: true
description: what software would you recommend/use for authoring books?
tags: #self-publishing #tools #help
canonical_url: https://dcblog.dev/softwaretools-for-self-publishing-books
---

I've recently published 2 books with Packt publishing which was an interesting experience but now I'm looking to start self-publishing.

My question is what software would you recommend/use for authoring books?
I used Microsoft Word with Packt. Now I'm looking the following software looks promising:

* Ulysses App
* Bear App
* Google Docs
* Scrivener

I'm thinking something web-based may be best then I can write on any device.

Each of these has epub export formats not sure whether I should care about the export options before I have even started writing?

Ideally, I'd like a tool that can create a table of contents that links to the chapters, can export to epub, and can help in making a manuscript file.

Would love to hear what other people have used.
My First JavaScript Page
Published: 2020-05-07 12:14:54

Well y'all, I've made my first JavaScript page that is outside of class assignments.  It's fairly simple, but it was nice to see I could do something on my own using things I've learned from the class.

Link: https://codepen.io/aaronmac/pen/PoPEvKO

I decided to attach JavaScript functions to the < button > elements on my HTML page and identify them with IDs.  I know that using classes is the preferred way of structuring HTML, but I have not figured out the syntax for that in JavaScript (my class has shown it but has not really explained how to do it).

At the moment, I'm pretty confident with HTML and CSS.  I have not had a lot of practice yet with writing JavaScript functions for web development, but the goal for the next few days is putting about 7-8 hours into the class itself to better understand it and review what I've already done.

Until next time, stay safe out there!

Cheers, y'all.
Daily Developer Jokes - Thursday, May 7, 2020
Tags: jokes, dailydeveloperjokes
Published: 2020-05-07 12:00:16

---
title: "Daily Developer Jokes - Thursday, May 7, 2020"
description: "Check out today's daily developer joke! (a project by Fred Adams at xtrp.io)"
series: "Daily Developer Jokes"
cover_image: "https://private.xtrp.io/projects/DailyDeveloperJokes/thumbnail_generator/?date=Thursday%2C%20May%207%2C%202020"
published: true
tags: #jokes, #dailydeveloperjokes
---

Generated by Daily Developer Jokes, a project by [Fred Adams](https://xtrp.io/) ([@xtrp](https://dev.to/xtrp) on DEV)

___Read about Daily Developer Jokes on [this blog post](https://xtrp.io/blog/2020/01/12/daily-jokes-bot-release/), and check out the [Daily Developer Jokes Website](https://dailydeveloperjokes.github.io/).___
### Today's Joke is...
![Joke Image](https://private.xtrp.io/projects/DailyDeveloperJokes/public_image_server/images/5e1259924ce05.png)

---
*Have a joke idea for a future post? Email ___[xtrp@xtrp.io](mailto:xtrp@xtrp.io)___ with your suggestions!*

*This joke comes from [Dad-Jokes GitHub Repo by Wes Bos](https://github.com/wesbos/dad-jokes) (thank you!), whose owner has given me permission to use this joke with credit.*

<!-- 
Joke text:
___Q___: What did the command line die of?

___A___: A Terminal illness.
 -->
Home Assistant - Open Source Home Automation
Tags: podcast, homeautomation, automation, development
Published: 2020-05-18 11:12:17

---
title: Home Assistant - Open Source Home Automation
published: true
date: 2020-05-07 12:00:00 UTC
tags: podcast, home automation, automation, development
canonical_url: https://share.transistor.fm/s/e582c48c
---

{% spotify spotify:episode:3WSFpSJHQ083DWvCBRo2Ju %}

Open-source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.  
  
2 major players in the Open Source 

- Home Assistant - [https://www.home-assistant.io/](https://www.home-assistant.io/)
- OpenHab - [https://www.openhab.org/](https://www.openhab.org/)
Privacy first -
- you control your data/integrations
- stored locally
- no cloud involved unless you allow it
HA - has 3 different use cases:  

- **Observe** - tracks the state of all devices in your home
- **Control** - Interact with your devices via UI or mobile app
- **Automate** - set up rules to perform tasks when you leave the house or during certain times of the day
  
The founder's vision - [https://www.home-assistant.io/blog/2016/01/19/perfect-home-automation/](https://www.home-assistant.io/blog/2016/01/19/perfect-home-automation/)
- The perfect App is no App - home automation should blend your current workflow, not replace it
- Home automation should run at home
  
Community Cookbook (Automation Examples)  
**DEMO Link** - [https://demo.home-assistant.io/](https://demo.home-assistant.io/#/lovelace/0)
How to get into the Deep Web: a guide to access TOR, ZeroNet, Freenet and I2P
Tags: deepweb, darkweb
Published: 2020-06-15 15:00:08

---
title: How to get into the Deep Web: a guide to access TOR, ZeroNet, Freenet and I2P
published: true
date: 2020-05-07 12:00:00 UTC
tags: deepweb, darkweb
canonical_url: https://www.ma-no.org/en/seguridad/how-to-get-into-the-deep-web-a-guide-to-access-tor-zeronet-freenet-and-i2p
---

We would like to present you with a guide that will allow you to enter the main darknets that make up the Dark Web, colloquially known as the Deep Web, although this last term has another meaning. The hidden Internet or Dark Web is a portion of the network in which you need certain applications to be able to connect, and that is precisely what we are going to help you, to download and configure these tools to enter them.We're going to show you how to connect to four different darknets. The first one will be TOR, which is probably… !




Read on [📖!](https://www.ma-no.org/en/seguridad/how-to-get-into-the-deep-web-a-guide-to-access-tor-zeronet-freenet-and-i2p)
My First Deno App: UUID Generator
Tags: typescript, javascript, deno, beginners
Published: 2020-05-07 11:56:50

This is a simple script that generates UUIDs and prints to the screen. We can pass in an argument to specify how many UUIDs we want to generate.

```typescript
import { v4 } from "https://deno.land/std/uuid/mod.ts";
import { parse } from "https://deno.land/std/flags/mod.ts";

const { args } = Deno;
const count = parse(args)._[0] || 1;

for (let i = 0; i < count; i++) {
  const uuid = v4.generate();
  console.log(uuid);
}
```

We can run this with deno:

```
deno uuid-gen.ts 3
```

```
cb41ae5f-aa37-4f32-b29b-486a06d439fe
93c81358-f372-491b-a683-db66fc104334
f437a7cd-23c4-498e-b10f-2ded65ce0390
```