teleren/devto huggingface dataset:
Why Azure Data Factory?
Tags: adfinterviewtips, azureinterview, adf, adftips
Published: 2021-01-04 11:59:57

I will explain this with an example:
**Scenario**: A gaming company that collects petabytes of game logs that are produced by games in the cloud.
**Business Requirements**: The company wants to analyze these logs to gain insights into customer preferences, demographics, and usage behavior. It also wants to identify up-sell and cross-sell opportunities, develop compelling new features, drive business growth, and provide a better experience to its customers.

**Tech Requirements**:
1.To analyze these logs, the company needs to use reference data such as customer information, game information, and marketing campaign information that is in an on-premises data store.
2.The company wants to utilize this data from the on-premises data store, combining it with additional log data that it has in a cloud data store.
3.To extract insights, it hopes to process the joined data by using a Spark cluster in the cloud (Azure HDInsight), 
4.Publish the transformed data into a cloud data warehouse such as Azure Synapse Analytics to easily build a report on top of it. 5.They want to automate this workflow, and monitor and manage it on a daily schedule. They also want to execute it when files land in a blob store container.

**Solution using ADF**:
Using Azure Data Factory, you can create and schedule data-driven workflows (called pipelines) that can ingest data from disparate data stores. You can build complex ETL processes that transform data visually with data flows or by using compute services such as Azure HDInsight Hadoop, Azure DataBricks, and Azure SQL Database.

Additionally, you can publish your transformed data to data stores such as Azure Synapse Analytics for business intelligence (BI) applications to consume. Ultimately, through Azure Data Factory, raw data can be organized into meaningful data stores and data lakes for better business decisions.

Check out next article in the series:
https://dev.to/swatibabber/how-does-azure-data-factory-work-j5n


![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/qtibxgtfwlph7rxtcpa8.PNG)
DOM Updates Like a Pro
Tags: javascript, beginners, performance, optimization
Published: 2021-01-04 11:55:40

Hi! This will be a small article but the performance impact on your app will be huge. I am assuming you are a Junior Dev like me who is still learning and discovering new things every now and then.

You're given a task to fetch some data over an API and add it to DOM. You have different ways of doing this but let's go with the most naive approach which most of you will pick.

#### Naive Approach
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/v2wl9poh9vcqvl0vd2fm.PNG)

This will get the job done! Looks fine. Yeah? :-1:
Actually, this is not an efficient way to do this. DOM operations are heavy and every change you make can have side-effects that require recalculating layout, styles, etc.

```js
  // 100 posts
  posts.forEach(post => {
    const li = document.createElement('li')
    li.textContent = post.title
    listing.appendChild(li)
  })
```
Right now, if there are 100 posts, you're updating the DOM 100 times. There are two ways to optimize this.

#### Not So Navie Approach
```js
const populateList = (posts) => {
  const listing = document.querySelector('#listing')
  let postsHTML = ''
  posts.forEach(post => {
    postsHTML += `<li>${ post.title }</li>`
  })
  listing.innerHTML = postsHTML
}
```

Well, that's one way of doing it but this not what this article is about. :stuck_out_tongue_winking_eye:

#### Pro Approach
> According to my current knowledge.

Introducing *DocumentFragment*.
`DocumentFragment` is an off-screen DOM that behaves like actual DOM but it saves us from expensive reflow(DOM calculations). 

Let's re-write our code using `DocumentFragment`.
```js
const populateList = (posts) => {
  const listing = document.querySelector('#listing')
  const fragment = document.createDocumentFragment()
  posts.forEach(post => {
    const li = document.createElement('li')
    li.textContent = post.title
    fragment.appendChild(li)
  })
  listing.appendChild(fragment)
}
```

1. You create a new `fragment` using `createDocumentFragment`.
2. Append your elements to the `fragment`.
3. Finally, append the `fragment` to the actual DOM.

That's it! :ok_hand:

I hope you learned something and this helps you. :pray:

Thank you for reading. :wave:

Connect with me on [LinkedIn](https://www.linkedin.com/in/thesanjeevsharma) or [Twitter](https://www.twitter.com/thesnjvsharma). :earth_asia:
How To Setup A Secondary Archive Account On GitHub
Tags: github, ruby
Published: 2021-01-04 11:53:33

If you're anything like me, you probably have a GitHub account where you've collected a lot of repositories over time, most of which you probably won't update any time soon.

You probably also want to make you sure GitHub profile is an amazing example of your best work, where a potential employer isn't going to be distracted by an old irrelevant project.

To solve this, I setup a GitHub Organisation specifically for my projects which I probably won't maintain (it's [@mikerogers0-youtube](https://github.com/mikerogers0-youtube) if you want to see it in action). It's nothing fancy, just an account where I can store stuff which is a bit out of the way.

It was really cool to do, so I wanted to share how I done it encase anyone else wanted to do the same :D

## Automating It With Ruby

Manually moving the repos felt laborious, so I wrote a script in Ruby to use the GitHub API semi-automate it:

```ruby
# Run: gem install octokit
require 'octokit'

## Generate a token at:
# https://github.com/settings/tokens
# 
# Make sure it has a scope of:
# - Full control of private repositories 
#
# Put the token in here:
PERSONAL_ACCESS_TOKEN = ""

## The account name you're going to transfer things off to:
NEW_ACCOUNT_NAME = "MikeRogers0-YouTube"

# Connect to GitHub
client = Octokit::Client.new(access_token: PERSONAL_ACCESS_TOKEN, auto_paginate: true)

# Load all the repos in the users account
repositories = client.repositories(client.user.login)

# Filter the list of repos you're going to transfer
repositories.select! do |repository|
  ## Options include:
  # repository.fork?
  # repository.private?
  repository.name.include?('Sample')
end

# Tell us what repos we're about to move
puts "You're going to transfer:"
puts repositories.collect(&:full_name)

# This stopped me accidentally breaking everything, remove the
# "return" line to actually perform the transfers.
puts 'Remove the next line to perform the change:'
return

# Start transferring the accounts to the new account
repositories.each do |repository|
  client.transfer_repository(repository.full_name, NEW_ACCOUNT_NAME, {
    accept: Octokit::Preview::PREVIEW_TYPES[:transfer_repository]
  })
end
```

It took me a few tries to get my filters about right, but once I was happy with the repositories I was transferring I removed the `return` line & let it do the transfer.

I got a bunch of emails confirming the repos had been moved, but overall it took a few seconds to transfer everything.

## What happened next?

After I transferred everything, I was worried I'd have to update a bunch of old links online, but I noticed GitHub made 301 redirects from my old projects to the new ones. This was awesome!

I feel really positive about having a digital clean out, I'd totally encourage everyone to consider it :D
A plain-text issue template for use on Github
Tags: github, markdown
Published: 2021-01-04 13:11:55

---
title: A plain-text issue template for use on Github
published: true
date: 2021-01-04 11:48:41 UTC
tags: github, markdown
canonical_url: https://www.preciouschicken.com/blog/posts/github-plain-text-issue-template/
---

When I’m creating a new issue on Github I like to use a template - it just helps me order my thoughts. Here’s the one I copy and paste if the repository maintainer has not provided one:

```markdown
## Describe the issue

## To reproduce

## Expected behaviour

## Screenshots

## Configuration

- OS: 
- Browser:

## Additional context
```

Plenty more examples in Steve Mao’s [github-issue-templates](https://github.com/stevemao/github-issue-templates) repo.
React bind(this)
Tags: react, bind, functions, events
Published: 2021-01-04 11:34:47

In React, whenever you define an event handler that uses "this", you need to add "this.methodName = this.methodName.bind(this)" to your constructor function.

This is not React-specific behavior; it is a part of how functions work in JavaScript. Generally, if you refer to a method without () after it, such as onClick={this.handleClick}, you should bind that method.
Pre- and Post- NPM Scripts
Tags: webdev, npm, build
Published: 2021-01-04 11:18:19

---
title: Pre- and Post- NPM Scripts
published: true
description: 
tags: webdev, npm, build
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/zov9w7f47y910982cqmu.jpeg
---

I've been working on a project at work recently that takes data from a CMS, builds into a React app, and bundles into an iOS app using CapacitorJS

```json
{
  "scripts": {
    "build": "react-scripts build",
    "harvest": "node harvest.js",
    "copy": "npx cap copy ios"
  }
}
```

It would be tedious to keep running `npm run harvest && npm run build && npm run copy` every single time.

I guess I could make a special case build script…

```json
{
  "scripts": {
    "build:ios": "npm run harvest && npm run build && npm run copy"
  }
}
```

I'm not a fan of long chains of commands and, it turns out, neither are NPM.

## Introducing `pre` and `post`!

```json
{
  "scripts": {
    "prebuild": "npm run harvest",
    "build": "react-scripts build",
    "postbuild": "npm run copy",
    "harvest": "node harvest.js",
    "copy": "npx cap copy ios",
  }
}
```

These suffixes can be added to any NPM script and will run automatically when you run the main script.

Now, whenever I `npm run build`, I get `npm run harvest` and `npm run copy` **for free!**

It saves my fingers, it stops me forgetting to copy my build folder to iOS, and it satisfies my compulsion for short, neat lines.

What could you do with this?
Need a pair-programmer to code with🙋‍♂️
Tags: discuss, react, django, node
Published: 2021-01-04 11:16:45

Hola!
I'm doing so many stuff at once to build my first programming project, *The Todo-list*.

I am making the same project with _Express JS_, _React_, and _Django_.

I want to make a Todo-List app that is ready be hosted on production.

Express JS - this is the least priority as I am building it to sync me to networking.

React and Django - I'm making this to build some real world stuff.

I have ideas and I'm creative but the experience is the only thing that is forcing me to give up.

I'm in search of a programmer, beginner like me, to do pair programming and we can look forward to combine React and Django by Django Rest-Framework.

I don't have money to spare but have time of about 2-3h continuously to get things done.

Looking forward for a friend to have fun any kind of response is appreciated 😁.
How SEO Improves your Odoo Website Ranking
Tags: opensource, odoo, news, erp
Published: 2021-01-04 11:14:55

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

In this tutorial, I'm going to show you how easy it's to feature keywords and phrases to Odoo and optimize SEO. Program Optimization is extremely important because it will bring more visitors to your website which will convert into customers. Remember that even the simplest keywords are worthless if you do not have valuable content on your website. I mean that it's not necessary to feature all possible combinations of words - specialize in your visitor needs. 

Search Engine Optimization (SEO) may be a set of excellent practices to optimize your website in order that you get a far better ranking in search engines like Google. In short, good SEO allows you to urge more visitors.

Search Engine Optimization (SEO) may be a huge topic that would fill a whole book all on its own. one among the main aspects of excellent SEO is that it knows what keywords which are hottest for the page you would like to market. Odoo provides a handy little tool that ensures that as you specify keywords, Odoo will allow you to know the associated keywords that also are fashionable Google.

Read more: [https://www.techultrasolutions.com/blog/our-blog-1/how-seo-improves-your-odoo-website-ranking-12](https://www.techultrasolutions.com/blog/our-blog-1/how-seo-improves-your-odoo-website-ranking-12)
Jenkins Pipeline with Active choice reactive parameter Using Git content API
Tags: jenkins, devops, activechoice, pipeline
Published: 2021-01-04 11:14:18

Hi All,

I recently posted one tutorial on jenkins pipeline with active choice reactive parameter. Do share your feedback on the same.
https://youtu.be/pC3K3XtAov4

{% youtube pC3K3XtAov4 %}
Телеграм-бот на NodeJS.

3. Отправить альбом.
Tags: telegram, node
Published: 2021-01-04 10:50:42

В этот раз вместо обработчика простого текста *(bot.on("text", ... )* мы напишем команду, которая будет выдавать альбом из трёх фото.
Наш бот будет ориентирован на выдачу контента, а не на работу с текстом, поэтому этот блок *on("text", ...)* нам не пригодится.
Вот как будет сделана команда по выдаче альбома:
```js
bot.command("group", async (ctx) => {
  const catUrl = await randomAnimal("cat");
  const dogUrl = await randomAnimal("dog");
  const foxUrl = await randomAnimal("fox");
  return ctx.replyWithMediaGroup([
    { type: "photo", media: catUrl, caption: "Мяу" },
    { type: "photo", media: dogUrl, caption: "Гав" },
    { type: "photo", media: foxUrl, caption: "Тяф" },
  ]);
});
```
А вот она в действии:
![Альбом](https://dev-to-uploads.s3.amazonaws.com/i/fdd96f6asilow3lk2olk.png)
Reset or Change Password in Laravel
Tags: laravel, showdev
Published: 2021-01-04 10:49:58

Reset or change password functionality is part of most web app authentication system that enables a user to change their forgotten password. 

Implementing this feature is part of the laravel core setup , all you need do is to configure Laravel authentication into your project. visit the [laravel documentation](https://laravel.com/docs/7.x/authentication) if you need a quick guide.

If the installation is successful, all the necessary files (views, controllers, migrations e.t.c) are automatically added to your project.

In this article, I am going to be showing you how to *activate the default laravel reset  password feature and how to avoid the error of email not being sent.*

## Prerequisite

I assume you already have your project set up as well as the laravel default authentication installed.

## Steps

The following are the required steps to enable your user  reset their  password and receive email to complete the process.

1. make sure you have your database set up and you have successfully migrated your tables.
2. verify that your `App\User` model implements  `use Illuminate\Contracts\Auth\CanResetPassword`
3. verify that your database contains the `password_resets_table`.

Run your localhost url and navigate to the login screen, on the login display form, click on change password, that should redirect you to a page for you to enter your email address (make sure, it is the same email you used while registering).

If that is successful, you will get an email redirecting you to the change password form, requesting you to enter your new password.

if, for whatever reason, you are not getting the email, add the following to your `.env` file

1. mail_from_address
2. mail_from_sender

To read more about resetting password in laravel , visit the [laravel reset password documentation](https://laravel.com/docs/7.x/passwords#resetting-database).

Original article posted on my [blog](https://judithoiku.tech/2021-reset-or-change-password-in-laravel/)
Have you been into switching-tech loophole?
Tags: watercooler, inspiration, career
Published: 2021-01-04 10:49:07

---
title: Have you been into switching-tech loophole?
published: true
description: 
tags: watercooler, inspiration, career
cover_image: https://media.istockphoto.com/vectors/infinity-symbol-logo-vector-id503333502?b=1&k=6&m=503333502&s=612x612&w=0&h=2azOxo6lqTYZUXbUmXtlmwmz5y8PLm8Bp1mlYqVq5Xg=
---
Let's say your high-traffic app gets a lot of feedback on GitHub about what could be improved, and once in a while, some even say it feels a bit outdated.

Some time passes and you have learned some new tech and feel certain it is more performant, easier to manage, and much easier to work with. Seems like a good fit for your project.

So you have left with two options - whether to continue to update the existing codebase or to re-do it from the ground up using the modern stack you have in mind.

You also already know all the build and layout principles of your app very well (as you have already designed it once), making the second option even more appealing for you, since it should not take that long to re-write it. 

Plus you have learned architectural design principles on how to structure your app better code-wise during this time, being ready to implement this in your code.

Also, this would guarantee, that you would work with the new stack from now on and you would not need to work with the previous stack you don't like that much anymore.

On the other hand, it's an endless loop-hole that will never stop, as there will always be newer tech out there, new design principles are being discovered for particular problems every day.

So have you ever been involved in this loophole and how do you tackle it?
Shu Ha Ri
Tags: agile, agilecoach, management
Published: 2021-01-04 10:34:08

Shu Ha Ri is a Japanese martial art concept that is used to describe the progression of training or learning.at different stages which can be adopted by an agile team.

Shu ha ri is roughly translated to “Understand the basics, then master it, and finally, invent something new.

In Shu – The first stage of learning technology or art, we understand the basic rules, procedures, and follow a strict discipline to grasp them. 

In Ha – The second stage when the technology or art has been understood, one tends to expand their learnings and start adopting it and in turn mastering the skills.

In Ri – When technology has been mastered and fully adopted, one tends to expand their boundaries and make innovation. One tends to depart from the basic understanding of the technology or art and create a new procedure or rules which suits our current needs.

As an Agile Coach, one must understand at which stage your team is to assist them to perform efficiently.
Chrome extension: Checklistz - a todo app
Published: 2021-01-04 10:13:12

**Download link**: [Chrome web store](https://chrome.google.com/webstore/detail/checklistz/fpoanfppddmmkkjckjomcbmjiimeaahn)


**Checklistz** is simple, free, and ad-free Chrome extension tool where you can manage your daily quick tasks and focus on completing today's work.

You don't require any registration/login to use this app. Install in your Chrome/Edge browser and start using the app.

This app uses the Chrome storage sync feature to store your data. 
If you log in to another system in the Chrome browser with the same account, your Checklistz data will be synched.

This tool can be used to:
1. Create a checklist or task that you want to accomplish today.
2. Mark the task as checked or done by clicking on the list item.
3. You can delete the task.
4. You can re-order the tasks.  


## WHY THIS EXTENSION? 
I have tried multiple notes taking apps including Notion, Evernote, Microsoft OneNote, etc and they all are great but I always like writing small notes on a piece of paper that I need to complete on that day.

These notes are not required to be organised - these notes are just like a reminder for me to finish it off by end of the day. 

So I need something on my computer which can be very simple to use without any rich interfaces. I tried sticky notes but did not work for me.

I tried a few other already-built Chrome extensions but problem was that those extensions request to read data from all websites that we visit on the Chrome browser. 

Why do those extensions need to know all sites that I visit, and need to read all data displayed on those websites?

So I thought to build a simple checklist - a quick todo Chrome extension that does not require any permission. 

And hence ended up building my first Chrome extension Checklistz. Though it can be used by others too, sharing it via [Chrome web store](https://chrome.google.com/webstore/detail/checklistz/fpoanfppddmmkkjckjomcbmjiimeaahn). Feel free to provide feedback or suggestions to improve the extension.

If you have any feedback, suggestions, or questions, please reach out to me at:

rajeevkjayaswal@gmail.com
Don't buy clubhouse invite from Ebay Sale
Tags: clubhouse, apple, ios
Published: 2021-01-04 10:07:39

Since clubhouse has got so popular, people started buying them for over $250+ and sometimes even for more than $1k!!!

![Clubhouse invite sold on Ebay Sale](https://dev-to-uploads.s3.amazonaws.com/i/xan0ypivdjp3jnkyfnd2.jpeg)
 
How's did you get your Clubhouse Invite? Hows your CH experience so far?

PS: I am running Trusted Clubhouse Pay-It Forward Invite Community inorder to tackle people scamming others or selling clubhouse invites for ridiculous price as seen above. Let me know who's interested to support this & get their invite next: https://www.buymeacoffee.com/felixbmc
How to Backup Laravel Files and Database
Tags: laravel, tutorial, laravelbackup
Published: 2021-01-04 10:02:14

Ensuring data backup is the most vital part of any application’s redundancy plan. It allows developers to ensure the second state of data in case of any accidental failures, so that the continuation of processes doesn’t get affected and the overall operation always stays in flow.

Therefore, backup is an integral part of any application development life cycle, as it provides a suitable layer of data persistence in the events of unwanted disasters.  That being said, let’s take a look at how to take backup of Laravel application with the database.

{% youtube tKu7EqGgu_A %}

The latest version of this package requires PHP 7.2 or higher with the ZIP module and Laravel 5.7 or higher. If you are using the old version of Laravel then version 5 and version 4 of this package available.

At first, you need to install the package by running the command below:
```
composer require spatie/laravel-backup
```

Once you installed the package, run the next command below which will publish the config file to `config/backup.php`.

```
php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
```

A user can also include and exclude the directories for backup. For the include we have passed the value `base_path()` and for exclude option values are `base_path(‘vendor’)`, `base_path(‘node_modules’)`. It means don’t include `vendor` and `nod_modules` folders in the final backup.

We are also passing a disks value as `local`. Doing so, our backup will stored in the `storage/app/Laravel` folder.

So far we are done with the installation and setup. Now We all set to run our first backup. Open the terminal in your project root directory and run the command:
```
php artisan backup:run
```
**Reference**

From here learn setting up backup and cron job **[scheduling for automatic backup Laravel app](https://qirolab.com/posts/how-to-set-up-automatic-laravel-backup-for-database-and-files-1607270517)**.