teleren/devto huggingface dataset:
Copy on one device and paste on any other
Tags: productivity, cli, clipboard
Published: 2021-03-30 06:45:26

Sometimes you want to share stuff between two computers. You email it to yourself and then you log on to the other computer and then you find that you forgot your email password and then you click "forgot password" and then you enter the one time code and then you make a new password and then you find the email and then you finally copy the text and get on your way.

It took you 10 minutes just to get some text from one computer to the other.

Then, you wonder - *"What if, what if I could directly copy it to the other computer? It would take 3 seconds then."*

Apple users might know that you can copy and paste between devices. Well, now you can do that with Android, Linux and Windows devices too! (macOS as well, of course!)

I made [Uniclip](https://github.com/quackduck/uniclip). It's a CLI tool that lets you copy on one device and paste on another. You can even connect multiple devices all at once so you can have sort of a *"shared clipboard"* between all of them.

## Install

If you're on macOS, you can install it with
```shell
brew install quackduck/tap/uniclip
```
if not, simply fetch an executable from [releases](https://github.com/quackduck/uniclip/releases) and install it to somewhere in your `$PATH`

For Android, you'll also need to install the [Termux](https://termux.com/) app. Termux lets you have a command line interface.

Now install the Termux:API app from the Play Store so we can access the clipboard. Then, install the Termux:API package from the command line using:
```shell
pkg install termux-api
```

That's it!

## Using it

To use it, we start up like so:
```shell
foo$ uniclip
Starting a new clipboard!
Run `uniclip 192.168.86.24:51607` to join this clipboard

```
Now, on your other computer (or computers), we run:
```shell
bar$ uniclip 192.168.86.24:51607
```
That's it! Your clipboards are now connected to each other. Try copying on one device and pasting on the other.

Now because Uniclip works by sending messages over a connection, your clipboard may be visible to attackers. To encrypt your clipboard while sending it, you can use the `--secure` option:
```shell
foo$ uniclip --secure
Password for --secure: 
Starting a new clipboard!
Run `uniclip 192.168.86.24:51607` to join this clipboard
```
Uniclip now asks you to set a password which will be used to encrypt and decrypt your clipboard.
Then, on the other computer:
```shell
bar$ uniclip --secure 192.168.86.24:51607
Password for --secure: 
```
You must enter the password you set earlier for your clipboard to decrypt.

If you liked Uniclip, consider giving it a ⭐️: [github.com/quackduck/uniclip](https://github.com/quackduck/uniclip)
Hyperstack vs Hotwire
Tags: rails, ruby, turbolinks, hotwire
Published: 2021-03-30 06:34:12

Пора читать новый перевод: [Hyperstack vs Hotwire](https://blog.rnds.pro/012-hotwire?utm_source=devto&utm_medium=post)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8eh3spwuag3lwy9gt8tp.png)
Dockerize SSH server using Dockerfile
Tags: docker, devops
Published: 2021-03-30 06:28:35

<b>Hope you are having a great day, let us begin this journey :D </b>
<br />
Recently I came across a use case where I had to configure a web server on top of a docker container using Ansible, which means I had to set up an ssh server on top of the Docker container for Ansible to gain remote access and automate the configuration process.
<br />
So I went on the path of creating an SSH-enabled Docker Image using Dockerfile. We shall be using the Open SSH of the secure shell family in this use-case and centos: latest as the base image for our docker image.
<br />
<h3>Dockerfile -</h3>
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5k2065sgzdvfk8mjbeiv.png)
You can download the pre-created docker image that I uploaded on Docker-Hub using 
<b><i>docker pull submar1n3/openssh:v1</i></b>
<br />
You can also use the same code and create your own Docker Image -
https://github.com/RajitPaul11/Dockerfile/tree/main/openssh
<br />
Thanks for reading, cheers :D
Sveltekit & Tailwind CSS Combo
Tags: svelte, tailwindcss, vite, ux
Published: 2021-03-30 06:27:20

Hi friends. I've decided to share my setup process for a perfect project with Svelte & Tailwind. Maybe some of you will find it useful. For those who are not familiar, the Svelte and Tailwind are a perfect match for quick and enjoyable web development. However, before, we had to manually configure everything in Rollup. Not anymore, with just a couple of simple commands, you get, IMHO, the best UX ever. Tailwind has just come out with JIT (just in time compiler) that makes it very quick. Add to this the new SvelteKit and Vite and you have an enjoyable web-dev process! Here are the commands:

- We create a new folder and change the working directory to it
```bash
mkdir my-app
cd my-app
```

- Initialize a new SvleteKit project in the folder
```bash
npm init svelte@next
```

- Add the static adapter so we can build and export static files

```bash
npm i -D @sveltejs/adapter-static
```

- Add Tailwind with JIT
```bash
npx svelte-add tailwindcss  --jit
```

- Install all the dependencies
```bash
npm i
```

- Run the development server
```npm run dev```

One thing to notice that in order to build static files we will need to modify a bit the svelte.config.cjs file in the root folder of the project.


Instead of

```javascript
const node = require('@sveltejs/adapter-node');
```

We need to import this

```javascript
const static = require('@sveltejs/adapter-static');
```

and also instead of the default node adapter

```javascript
adapter: node(),
```

we will need to add the static adapter like this

```javascript
adapter: {
 adapt: static
        },
```

After 

```bash
npm run build
```

in build folder, you'll find the files that could be uploaded to your CDN of choice for free hosting, like Vercel, Surge or Cloudflare. I hope it helps, my friends! Happy development!
Python Zen vs Perl TMTOWTDI
Tags: perl, python
Published: 2021-03-30 06:09:37

Perl has been said to be a writing-only language for over a decade(Although In fact, it's a lie.).

Only Python Zen was evaluated.

Age has moved forward. 

People want diversity and inclusion.

Perl TMTOWTDI means "There's more than one way to do it".

This message contains the philosophy of diversity and inclusion.

I hope the time will come when Perl's philosophy will be evaluated fairly.
90+ Top Social bookmarking Sites List for 2021 (High PR & Dofollow)

Published: 2021-03-30 05:56:52

“If you would like to bookmark your website link for SEO, make sure you have chosen the top social bookmarking sites list.”

Social Bookmarking is the way to relate your website or blog to a different niche. It would be helpful for getting backlinks with organic search traffic.

Here we at [WPressBlog](https://www.wpressblog.com/top-social-bookmarking-sites-list/) have listed some top new social bookmarking sites for 2021. All the sites have a high Page Rank and Domain Authority. I hope, this blog post would be greatly beneficial for SEO or Digital Marketers.
“If you would like to bookmark your website link for SEO, make sure you have chosen the top social bookmarking sites list.”

Social Bookmarking is the way to relate your website or blog to a different niche. It would be helpful for getting backlinks with organic search traffic.

Here we at WPressBlog have listed some top new social bookmarking sites for 2021. All the sites have a high Page Rank and Domain Authority. I hope, this blog post would be greatly beneficial for SEO or Digital Marketers.
“If you would like to bookmark your website link for SEO, make sure you have chosen the top social bookmarking sites list.”

Social Bookmarking is the way to relate your website or blog to a different niche. It would be helpful for getting backlinks with organic search traffic.

Here we at WPressBlog have listed some top new social bookmarking sites for 2021. All the sites have a high Page Rank and Domain Authority. I hope, this blog post would be greatly beneficial for SEO or Digital Marketers.
The Cloud Resume Challenge (series): Part 7 - Deploying & Configuring CloudFront
Tags: devops, serverless, cloud, aws
Published: 2021-03-30 05:47:20

---
title: The Cloud Resume Challenge (series): Part 7 - Deploying & Configuring CloudFront
published: true
tags: devops, serverless, cloud, aws
---

This is the seventh episode in a series on the cloud resume challenge series where we setup a Route53 DNS entry to point to the Cloudfront distribution we created in the last video. 

{% youtube YfAj7iSDKm0 %}

If you’ve not heard of the cloud resume challenge, it’s a free challenge that you can take to build a resume using cloud tech.

It’s a great starting point for beginners or those new to the cloud. But… it’s definitely not for the faint of heart.

The challenge is tough and requires you to learn lots of different aspects of the cloud from CDN's to CI pipelines. The best way to learn any technology is by getting hands-on and using it in anger.

The point of this YouTube series is to provide some extra structure and guidance to the challenge for those daring to attempt it!

But it's not about giving you all the answers, just some prompts, and some ideas to push you in the right direction.

So... if you're thinking of getting into the cloud, do you dare take on the cloud resume challenge? 😁

If you’re interested in Cloud I write a monthly newsletter for Cloud Software Engineers. I spend the month digging around the internet for the best cloud engineering content and provide a monthly summary. I read every article I share, and I focus on fundamentals as much as possible.
Daily Log: Day 9 & 10
Tags: 100daysofcs
Published: 2021-03-30 05:37:50

* The stack we talked about in the last post is to hold intermediary values generated by our interpreter, e.g.:

  ```
  fun echo(n):
      print n;
      return n;

  print echo(echo(1) + echo(2)) + (echo(4) + echo(5));
  ```

  While our interpreter is computing `echo(2)`, it would need some space in memory to hold the output from `echo(1)` -- That's where the stack comes in. Similarly, it would need to store the output of `echo(1) + echo(2)`, while it computes `echo(4) + echo(5)`. These "produced" values are all pushed in a stack.
* After implementing the stack, noticed that the order of execution of opcodes is not correct in the last output:

```
== Test Chunk ==
0000  122 OP_CONSANT          0 '1.2'
0002  123 OP_CONSANT          1 '456'
0004  124 OP_RETURN
0001    | OP_CONSANT          0 '1.2'
1.2
0003    | OP_RETURN
456
0005    0 OP_CONSANT          0 '1.2'
```

The `chunk.code` should look like this:

```
OP_CONSTANT
0 // Address of 1.2 in chunk.values
OP_CONSTANT
1 // Address of 456 in chunk.values
OP_RETURN
```

and `chunk.values`:

```
1.2
456
```

Now, notice that `OP_RETURN` was executed before the last `OP_CONSTANT`. Still debugging why.
Twitcord
Published: 2021-03-30 05:30:14

This is Twitcord, an interactive mobile UI concept of if Twitter was owned by Discord.

This project was created to practice my frontend dev skills.

## Inspired by
This [concept art](https://www.reddit.com/r/discordapp/comments/lxjoe1/if_twitter_were_owned_by_discord/) on reddit.

## Interactions
* Follow Button
* Reactions
* Tweets Nav Bar

## Built With
* HTML5
* CSS3
* JavaScript

## Code
{% github anniedotexe/twitcord no-readme %}

## Live Demo
[Twitcord](https://twitcord.anniew.xyz/)

![Screenshot of Live Demo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ly2aoeoch024034ezj02.png)

## Feedback
Any type of feedback or ideas to add to the project are welcome.

![Dancing Pikachu](https://media.giphy.com/media/fSvqyvXn1M3btN8sDh/giphy.gif)

## Check out some of my other projects below

{% link https://dev.to/anniedotexe/finally-created-my-personal-website-2n6p %}

{% link https://dev.to/anniedotexe/simple-music-player-ui-4nn1 %}

The end,
annie.exe

---

{% gist https://gist.github.com/anniedotexe/a42e127d321261928104e5b2c0cdf24c %}
49 Days of Ruby: Day 3 - Interactive Ruby
Tags: ruby
Published: 2021-03-30 05:22:49

---
title: 49 Days of Ruby: Day 3 - Interactive Ruby
published: true
description: Join us on a 49 day learning journey through Ruby!
series: 49 Days of Ruby
tags: #ruby
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/9m73qaetuse3nm3y3it8.png
---

**Welcome to day 3 of the 49 Days of Ruby! 🎉**

Today we are going to introduce ourselves to IRB (Interactive Ruby).

IRB is an integral tool when working with Ruby. It allows you to run Ruby expressions in a real-time environment. The tool will become an indispensable utility in your toolkit as you continue to figure out the contours of the language.

Lucky for us, when you installed Ruby yesterday you also installed IRB with it!

To start IRB run `irb` from the command line. Once you do so you will see something like this:

```ruby
irb(main):001:0>
```

You are now inside IRB.

We are introducing IRB first after installing Ruby. We have not yet learned about variables, conditions, or any other Ruby syntax. That's okay! We are showing IRB first, because so much of what comes after will depend on some comfort with it.

Run the following inside IRB: `puts 'Hello World!'`.

You will see the following output:

```ruby
Hello World!
 => nil
```

You just ran your first Ruby expression, congrats! The `puts` method outputs to the screen what you tell it to output. In this case, we outputted `Hello World!`.

Why did you see `=> nil` on the line after the text output? 

That's because Ruby will always return the last value in the expression. The method `puts` returns `nil`, so that is what you see at the conclusion. 

*(The `nil` itself comes from a special class in Ruby called `NilClass`. What's a class and what's `NilClass`? We'll get to that later on!)*

To exit IRB, you can type `exit` and it will return you back to the command line.

That's it for today! Come back tomorrow for more Ruby goodness!

**Come back tomorrow for the next installment of 49 Days of Ruby! You can join the conversation on Twitter with the hashtag [#49daysofruby](https://twitter.com/hashtag/49daysofruby).**
To achieve stack in simple way in JavaScript
Tags: javascript
Published: 2021-03-30 05:07:04

#Stack: 
Inserting element into last of your array, remove element top of your array(LIFO).
```
let stack = [];
//insert element
stack.push(1);
stack.push(2);
stack.push(3);
//output [1,2,3]
//remove element
stack.pop()
//output [1,2]
Making Auth Simpler for Static Web App APIs
Tags: azure, staticwebapps, javascript, webdev
Published: 2021-03-30 05:37:47

---
title: Making Auth Simpler for Static Web App APIs
published: true
date: 2021-03-30 04:51:02 UTC
tags: azure,staticwebapps,javascript,webdev
canonical_url: https://www.aaron-powell.com/posts/2021-03-30-making-auth-simpler-for-static-web-app-apis/
---

[Azure Static Web Apps](https://docs.microsoft.com/azure/static-web-apps/?WT.mc_id=javascript-17897-aapowell) has built-in [Authentication and Authorization](https://docs.microsoft.com/azure/static-web-apps/authentication-authorization?WT.mc_id=javascript-17897-aapowell) for both the web and API part of the application.

At the end of last year, I wrote about a package [to make it easier in React apps](https://dev.to/azure/simplifying-auth-with-static-web-apps-and-react-5145) to work with auth and get access to the user details. But this still left a gap in the APIs, your APIs need to parse the JSON out of a custom header, which is base64 encoded. All a bit complicated in my book.

So, I decided to make another package to help with that, [`@aaronpowell/static-web-apps-api-auth`](https://github.com/aaronpowell/azure-static-web-apps-api-auth).

## Using the package

The package exposes two functions, `isAuthenticated` and `getUserInfo`. Here's an example of an API that uses the package:

```typescript
import { AzureFunction, Context, HttpRequest } from "@azure/functions";
import {
  getUserInfo,
  isAuthenticated,
} from "@aaronpowell/static-web-apps-api-auth";

const httpTrigger: AzureFunction = async function (
  context: Context,
  req: HttpRequest
): Promise<void> {
  context.log("HTTP trigger function processed a request.");

  if (!isAuthenticated(req)) {
    context.res = {
      body: "You are not logged in at the moment",
    };
  } else {
    const { clientPrincipal } = getUserInfo(req);

    context.res = {
      body: `Thanks for logging in ${
        clientPrincipal.userDetails
      }. You logged in via ${
        clientPrincipal.identityProvider
      } and have the roles ${clientPrincipal.userRoles.join(", ")}`,
    };
  }
};

export default httpTrigger;
```

The `isAuthenticated` function takes the request that the API receives and returns a boolean of whether the user is authenticated or not, and the `getUserInfo` unpacks the header data into a JavaScript object (with TypeScript typings) that you can work with.

Hopefully this makes it just that bit easier to work with authenticated experiences on Static Web Apps.
Perl's SPVM is similar to Python's Cython.
Tags: perl, spvm, python, cython
Published: 2021-03-30 04:49:14

I thought about how to explain SPVM to people who don't know yet.

Perl's <a href="https://yuki-kimoto.github.io/spvmdoc-public/">SPVM</a> is similar to Python's Cython.

Both is

・C language transpiler
・This is converted to machine code
・Perl can call SPVM subroutine, Python call Cython function.

I would appreciate it if you could remove the prejudice against Perl and make a fair comparison.

Enjoy!
Must-Try Open-Source Deep Learning Projects for Computer Science Students
Tags: computerscience, datascience, python, machinelearning
Published: 2021-03-30 04:47:12

#[Must-Try Open-Source Deep Learning Projects for Computer Science Students](https://medium.com/analytics-vidhya/must-try-open-source-deep-learning-projects-for-computer-science-students-798da65ab0a8)

##The ability to process large numbers of features makes deep learning very powerful when dealing with unstructured data. However, deep learning algorithms can be overkill for less complex problems because they require access to a vast amount of data to be effective.

##Deep learning algorithms try to learn high-level features from data. This is a very distinctive part of Deep Learning and a major step ahead of traditional Machine Learning. Therefore, deep learning reduces the task of developing a new feature extractor for every problem.

###So here is a link to the article I wrote on "Must-Try Open-Source Deep Learning Projects for Computer Science Students" to enhance their skills for happy learning.

{#ml #ai #datascience #machinelearning #artificialintelligence #deeplearning #computerscience #opensource #resources #projects #DNN #deepneuralnetworks}
Why is outlook not syncing emails on iphone?
Tags: outlook, email, problems
Published: 2021-03-30 04:38:15

Are you currently unable to sync your Hotmail account on the iPhone? Do not worry, that might be happening because of incorrect username or password issue. Besides this, if you haven’t configured the outlook account properly. your phone won’t be able to sync to the mail servers. 
So here in this blog, I am sharing the quick techniques. Through which, you can easily sync issue without more delay.so apply these techniques on your devices. 
How to fix outlook not syncing emails? 
Method 1 – check the internet connectivity- 
Whenever iPhone is unable to connect to the mail server. first thing, you need to do is, check the internet connectivity. There are high chances of no internet connectivity on the phone. So check the mobile data or wifi settings, which method, you are using for the internet connectivity. 
Method 2- update the password- 
Once you have internet on the device, next thing you need to do is, update the outlook password on iphone. May be the phone is using an old password or incorrect password. that’s why outlook is not authorizing the access. So you need to go to the mail settings on the iphone and click on the outlook settings. now remove the current password from the device and enter the new password. finally, your device will start working fine.  
Method 3- enable the auto syncing option- 
When auto sync settings are not turned on. You may have the syncing related issues. In that case, you need to open the settings on the iphone again and click on the mail settings. now double tap on the outlook account and press the turn on auto sync option. 
Method 4- reconfigure the outlook account- 
If you have already changed the outlook settings but still your emails are not working fine. you need to remove the current outlook account from the phone and re-add it on your device using the correct outlook settings on your phone. 
Method- 5- Use outlook app- 
Sometimes, an out dated email app can cause [not receiving emails problem on hotmail account](https://www.askprob.com/how-to-fix-hotmail-not-receiving-emails-problem/). So you should try to update the mail app first. 
So you should try to update the mail app first. If that doesn’t work. You should install the outlook app and start using it on your phone.
Integrate Slack to Microsoft Teams

Published: 2021-03-30 04:22:32

Some of the interesting Microsoft Outlook- Slack integrations using Quickwork are:

Create new status updates in Slack with Microsoft Outlook calendar events
This integration will automatically set your Slack status at a specified time before an event in your Microsoft Outlook calendar starts.
 
Send Slack messages from new Microsoft Outlook emails
This sends every new email you receive on Microsoft Outlook to a channel you choose on Slack. 
You can start integrating the apps here- https://automation.quickwork.co/#/
100 Bytes Of Wisdom: Day 36
Tags: career, journey, advice
Published: 2021-03-30 03:55:09

---
title: 100 Bytes Of Wisdom: Day 36
published: true
description: Bytes of Wisdom is a new project by Sam Jarman that brings together snippets of advice for software engineers
tags: career, journey, advice
//cover_image: https://direct_url_to_image.jpg
---

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

Major steps forward in your career can come at the seemingly most random of times and certainly not in a nice, evenly paced way. Don't be too disheartened if you haven't had one in a while, just keep working on your goals, double-check they've been set well, and just keep going.

Heads up: As with any terse bit of advice, there will be exceptions of course, and subtleties and nuance that can't possibly be captured in a Byte of Wisdom. This has been what I've experienced, I'd love to hear yours in the comments too!

You can catch up with all the other bytes at http://bytesofwisdom.com/
Writing a custom log4j appender in java, using RabbitMQ
Published: 2021-03-30 03:44:39

---
title: Writing a custom log4j appender in java, using RabbitMQ
published: true
description: We look into writing a custom log4j appender in java and how to send you to log messages with an appender to RabbitMQ. Writing a custom appender is challenging due to performance considerations.
tags:
cover_image: https://i.ytimg.com/vi/XKsbZcz-bX4/maxresdefault.jpg
---

{% youtube XKsbZcz-bX4 %}

We look into writing a custom log4j appender in java and how to send you to log messages with an appender to RabbitMQ. Writing a custom appender is challenging due to performance considerations.