teleren/devto huggingface dataset:
OpenEDU: The Open Source Education Initiative 📚
Tags: github, opensource, education
Published: 2020-06-18 08:45:47

I've started an educational initiative: OpenEDU, a GitHub repository with learning resources for 60+ engineering subjects, including notes, e-books, presentations and more. 📚 

{% github https://github.com/marwahmanbir/OpenEDU %}

### Purpose behind this...

- To make Computer Science education more open, free and accessible to the world. 🌎
- To demonstrate the wild potential of open source to beginners. 🚀
- To make remote education more achievable during COVID⁠—19 slowdown. 🐛

---

Originally, I started this initiative about 2 years ago as "[ACM BVP](https://twitter.com/acmbvp) Digital Library" for my community. 👩‍💻👨‍💻
It was merely a Drive folder until I realized how a wider audience of learners could be benefited through the resources, so I converted it into a GitHub repository. 💡

So far, we have a number of helpful contributions to the repository along with 100+ stars. To help me out with the initiative, spread a word about the initiative and help this reach out to anyone that might get benefited by the learning resources. Contributions to the repository are more than welcome; notes, e-books, guides, anything that you think could be useful to make learning fun! 

---

Let's make CS education more open and accessible for all! ❤︎
Skribul - A doodle's worth a thousand words
Tags: showdev, webdev, javascript, pwa
Published: 2020-06-18 08:39:15

TLDR; I created [Skribul.](https://skribul.app)

Facebook doesn't have an option to send drawings from its messenger app. I decided to amend that.

Skribul allows you to create a drawing and share it with your contacts.
 
![Create your Skribul](https://dev-to-uploads.s3.amazonaws.com/i/62nzqanyitqu8asghp4a.png)

![Share your Skribul](https://dev-to-uploads.s3.amazonaws.com/i/0ejjc5v7o76a7yrm0x1w.png)

With a bit of trickery, we can have messenger render these drawings as images and have them integrated into the conversation.

![Skribul in messenger](https://dev-to-uploads.s3.amazonaws.com/i/onv3byjbp057ut1lx0oj.png)

New ideas don't have to be groundbreaking, especially when it's just a bit of fun.
Get quick support to fix outlook keeps asking for password
Published: 2020-06-18 08:33:37

When you try to login into your MS outlook account, your MS outlook account is asking the password again and again. It has become a critical situation for you, so you can call our trained guide immediately. If you don’t have solutions for outlook keeps asking for password problem, you can call our live technical experts to get full technical guidance to sort out Outlook Keeps Asking For Password problem. Our online technical professionals are trained and experienced to rectify outlook keeps asking for password problem immediately. Our live technical support team is available round the clock to provide quick support for any type of technical troubles.
https://www.emailtechnicalsupport.us/blog/outlook-keeps-asking-for-password/
Some More Extensible Features of @rxweb/ngx-translate-extension for Angular Applications
Published: 2020-06-18 08:28:04

Looking at the previous article on [Why](https://dev.to/ushmidave/why-rxweb-ngx-translate-extension-is-intuitive-than-others-1obc) ngx-translate-extension, We came across through some of the useful and spectacular features of [@rxweb/ngx-translate-extension](https://www.npmjs.com/package/@rxweb/ngx-translate-extension) package integrated it into the most simplest way possible.

Some more translation features which can be into frequent need and used into internationalization of your angular application like reusing the translation text, On demand translation, Async source binding etc. Some of them are listed below, You can get the whole feature list and their examples [here](https://docs.rxweb.io/ngx-translate-extension/decorator)

# Reuse Text
This feature helps you to reuse the multilingual text based on the key name which already exists 🙂 

<b>Component: </b>
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/j4oanirvxdrwze32i9v8.PNG)

<b>Html: </b> 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/dwefeuwz9kteqlv2ak7s.PNG)

<b>Json: </b>
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/bszpf14y3iup7if2gglj.PNG)

# Inline Loaders
Inline loaders for your multilingual text using the `@translate` object 🤗

<b>Component: </b>
 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/0rhl2bhbmvkacf8vw41j.PNG)

<b>Html: </b>
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/sifar13gh9r13sa1zykj.PNG)

<b>Json: </b>
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/7gynuc4zobm98j63lxtn.PNG)
 
# Async Translation
Async Translation for the source binding through the server data using `@translateAsync` object 

<b>Component: </b>
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/lpq72g627ozir6nykaln.PNG)

<b>Service: </b>
The service used as serviceModel and serviceMethod in @translateAsync object.

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

<b>Html: </b>
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/7798rqtbp6222pt2ami3.PNG)

# On Demand Translation
Resolving the translation text based upon some event(user's click or user's input selection) 🙃

<b>Component: </b>
 ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/erfli33oc2q0486em4gj.PNG)

<b>Html: </b>
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/1j8rbp8hzce33g140gaw.PNG)

<b>Json: </b>
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/v1xsieuf97ym68m92d2k.PNG)

# Conclusion
These features of translation using decorator approach can help you to achieve a lot of scenarios where there exist to enhance the power of internationalization into your angular application in the most simple and intuitive manner with best practices implemented.
Technical Writing with DEV
Tags: technical, writing
Published: 2020-06-18 08:11:15

# Technical writing

The development  world has dramatically evolved drastically. An important implication of the rapid stride in technology has led to the emergence of demand for technical writers. In other words, technical writers do technical writing.

## Introduction 

Technical Writing is writing or drafting technical communication used in technical and occupational fields, such as computer hardware and software, engineering, 

Technical writing is a very good skill for 

1. Developers help in writing great documentation.
2. Security analysts/researcher - help in writing well informative reports.
3. Basically almost any one in the tech community.

You can find some helpful resources here to help you get started https://github.com/BolajiAyodeji/awesome-technical-writing


## Technical documents

Although  we can  focus  technical writing on writing software documentation, others could be focusing on scientific writing. Technical writing covers many genres and writing styles, depending on the information and audience.
Some examples of technical documentation include:

- Instructions and procedures
- Proposals.
- Technical reports 
- API guides
- Technical/Engineering Blogs
- And many more

## About DEV

> From DEV about page

DEV is a community of software developers getting together to help one another out. The software industry relies on collaboration and networked learning. We provide a place for that to happen. DEV is open source,

Link https://dev.to/


> This is obviously not the end, There is alot to talk about technical writing,
5 Important Things to Consider While Selecting an RPA Tool

Tags: rpa, automation
Published: 2020-06-18 08:04:46

RPA is right now one of the hot topics in the technology sector. No doubt businesses are also opting for it to accelerate their regular work process and letting their employee try other creative tasks.


As choosing the <a href="https://www.sphinx-solution.com/blog/top-rpa-tools-and-their-comparison/">RPA tools</a> plays an important role in the automation journey. So, to help you out we have collated some points to remember while selecting the RPA tool.

<b>Ease of Use:</b> Some tools don’t need IT the expertise to control. They come with the simple record and playback based automation. These tools are user-friendly too. You will also find some tools to be technically sophisticated than other. What is recommended is that business must go according to their need and opt for the platform which can be operated with minimal technical know-how as well.

<b>Reliability:</b> Though RPA tools are relatively new, you still can judge and opt for the reliable one. Look for the robustness of the underlying automation framework on which the platform is developed. Also, check with the tool ability to cater to different use cases, under different conditions.

<b>Scalability:</b> Some tools allow you to start with small investments, while some will insist you to get additional bots and plug-ins even if you don’t need it. Check the execution whether it requires dedicated automation or it can work on-demand through cold services. And also, can it help multiple robot executions and increase the workflows?

<b>Flexibility:</b> Off-the-shelf features may not be applicable for all the business needs. In that case, you need to talk to the vendor for customizations. It is better you identify the prospect and talk for customization on the first stage itself to avoid extra expense. Additionally, you can go for a tool which will let you develop custom features, so you can get the flexibility.

<b>Monitoring:</b> Having strong monitoring and control mechanisms is important for business continuity. For instance, if there may be vital activities that are assigned to the bots, and if one of them goes down unexpectedly, it’s required that the right stakeholders are notified to provide the relevant workaround. Thus, an execution dashboard is a necessary component of any tool you consider. 

<a href="https://www.sphinx-solution.com/blog/how-can-smb-implement-rpa/">RPA help businesses</a> to help 25%-50% cost savings, to improve the accuracy and efficiency of the process execution and reduce human intervention.
Understand the difference between isNaN and Number.isNaN
Tags: javascript, nan, isnan, numberisnan
Published: 2020-06-18 07:54:43

---
title: Understand the difference between isNaN and Number.isNaN
published: true
description: Understanding the difference between isNaN and Number.isNaN
tags: javascript,nan,isNaN,NumberisNaN
//cover_image: https://direct_url_to_image.jpg
---

Before we take a dive into the difference between isNaN and Number.isNaN, let's take a look at what NaN is

According to the javascript spec NaN stands for Not a Number, when you encounter something like this in javascript, you will have to cross check what you are trying to do it's either
1. you are trying to carry out an invalid mathematical operation or
2. you are trying to cast something that's not a number (except for a string of numbers) to a number for example

`parseInt('hello'); // a string of characters cannot be converted to a number therefore the operation will return NaN`

`Number(undefined); // NaN`

`'string'/2; // NaN`

One thing you have to know is that you cannot compare NaN to NaN or Number.NaN, therefore

`parseInt('hello world') === parseInt('hello world'); // false`

So you know, this does not have to do with strict equality comparison or abstract equality comparison

`parseInt('foo') == parseInt('foo'); // false`

But you can actually make a check for the above with `Object.is`

`Object.is(parseInt('foo'), parseInt('foo')); // true`
`Object.is(NaN, NaN); // true`

Apart from using Object.is , you can also check if a value is NaN, which can be done with

1. isNaN // on the global object
2. Number.isNaN

Which ever one you choose will determine how you will get backstabbed by javascript. 
So this bring us to the difference between isNaN and Number.isNaN

**isNaN does two things**
1. It checks if the value passed to it is NaN or
2. It will try to coerce the passed value into a number if the result is NaN then the return value will be true

Number.isNaN does only one thing
1. It checks if the current value passed in actually NaN


for example

`isNaN('javascript'); // true`
The reason for this is because isNaN coerces 'javascript' to a number and since javascript is not a number the return value is false

`Number.isNaN('javascript'); // false`
The reason for this is because 'javascript' is a string and not the value NaN, so the return value will be false

`isNaN(NaN); // true`
NaN is not a number hence true

Number.isNaN(NaN); // true 
NaN is not a number hence true



What you should get from the above is that Number.isNaN does not do any form of coercion, it just check if the value passed to it is NaN, if it's not NaN then the return value will be false.

Open to corrections, this is my first ever article. Thanks for reading
Importance of Collaboration in a Workplace
Published: 2020-06-18 07:47:39

Why are companies encouraging team collaboration? 
There are many questions on the subject of the importance of collaboration in a workplace, but the basic understanding is that better team <a href="https://blog.telebu.com/importance-of-collaboration-in-a-workplace/">collaboration in the workplace </a>helps you get things done faster, and that the importance of effective collaboration in team-building cannot be overstated. 
Collaboration is a management and communication approach that’s actively used by organizations to increase their productivity. It is a part of their work culture and stands parallelly with their ethics and values as a collective unit. 
Companies have now embraced a parallel hierarchy where teams are individually responsible for their united growth. Their interdependence is taken in a positive stride and the higher management doesn’t always indulge in approving decisions. This approach solves three compelling issues of the corporate world –
Augmented Work Culture
Self-motivated Employees 
Supersonic Decisions
Use different Collaboration Tools:
Offline collaboration, internal or external, can create a lot of confusion. Be it when to meet, what to do or how to do, there’s no clear understanding. If you have scattered teams, distance might also be a pressing issue. Using diaries or calendars to fix your dates doesn’t help anymore. 
In fast-paced companies, there’s a lot of ad hoc work on the table. You might have to juggle your time to accommodate this work. In this process, informing your fellow collaborators and rescheduling your meetings drains a lot of your energy and time. This can be solved with the help of various collaboration tools out there.
For us, at Telebu, the concept of collaboration is pretty simple and straightforward—the better a team collaborates, the better are their chances to succeed in the given objective, mission, or project. And that’s what our products stand for.
We’ve created a complete team communication suite that emphasizes and empower better communication and teamwork. Our popular products: grptalk <a href="https://www.grptalk.com/">(audio conferencing services),</a> TelebuJoin (SaaS <a href="https://www.telebu.com/join">video conferencing solution), </a>TelebuPing <a href="https://www.telebu.com/ping">(team collaboration and instant messaging software)</a> and TelebuHub <a href="https://www.telebu.com/hub">(Call center software)</a>
 
Read More : https://blog.telebu.com/importance-of-collaboration-in-a-workplace/
Tài liệu và cách học Java, OOP từ cơ bản đến nâng cao
Published: 2020-06-18 07:41:53

Được ra đời từ rất sớm (từ năm 1991) – ngôn ngữ lập trình Java ngày càng có hệ sinh thái phát triển. Thành thạo Java các bạn có nhiều cơ hội việc làm hấp dẫn từ lập trình Mobile (Android), lập trình Web (Spring, Play Framework), phân tích dữ liệu (Data Scientist), lập trình hệ thống…

Sau 5 năm mình làm các dự án với ngôn ngữ Java, hôm nay mình xin chia sẻ kinh nghiệm học Java từ cơ bản đến nâng cao. Hi vọng giúp ích cho các bạn sinh viên mới bắt đầu và người có nhu cầu tìm hiểu chuyên sâu về Java.

Học về Java cơ bản sẽ không chỉ tìm hiểu về cú pháp mà còn học về Lập trình hướng đối tượng.

Lưu ý: Các level dưới đây là cách chia theo quan điểm của mình, các bạn có thể nhìn nhận theo cách khác.

Level 1. Tìm hiểu cú pháp Java
Để đạt level 1, các bạn cần dành ra khoảng 20-30 giờ tự học.

Tài liệu đầu tiên mình học là cuốn Head First Java

Link down: https://drive.google.com/file/d/0B-hV1HrMP8j1MHVTcTlzVlVtUVk/edit

Các ebook series của Head First rất dễ bắt đầu vì viết theo kiểu kể chuyện, nhiều hình.

Ngoài ra để đỡ nhàm chán, các bạn có thể học Java qua video, trước mình tự học qua Blog Study and Share bằng tiếng Việt. https://studyandshare.wordpress.com/link/javabasic/

Các bạn có đọc thêm cuốn Effective Java để tìm hiểu sâu hơn. Link down: https://raw.githubusercontent.com/harvies/books/master/Java/%5BJAVA%5D%5BEffective%20Java%203rd%20Edition%5D/%5BJAVA%5D%5BEffective%20Java%203rd%20Edition%5D.pdf

Các cuốn sách trên bao gồm cả kiến thức cơ bản và nâng cao, để đạt Level 1 thì bạn chưa cần phải hiểu hết toàn bộ các chương đâu nhé 😉

Level 2. Tìm hiểu cơ bản Lập trình hướng đối tượng
Khi đã đạt Level 1, để có được các kiến thức về Lập trình Hướng đối tượng (OOP), các bạn cần dành ra khoảng 15-20 giờ tự học. Phần này các bạn cần phải chăm chỉ lập trình nhiều để hiểu sâu sắc và quen với cách lập trình OOP.

Lập trình hướng đối tượng (OOP) là kiến thức nền tảng, giúp bạn thiết kế module tốt hơn. Để bắt đầu mình khuyên các bạn đọc cuốn Lập trình hướng đối tượng của cô Trần Thị Minh Châu (Trường ĐH Công nghệ – ĐHQGHN). Link down: https://uet.vnu.edu.vn/~chauttm/e-books/OOP_2013.pdf

Nội dung Lập trình hướng đối tượng sẽ được đề cập từ chương 3 đến chương 8. Chỉ cần đọc và làm lại các ví dụ trong sách là các bạn sẽ hiểu được cơ bản nguyên tắc và khái niệm OOP.

Đối với level 2 mình nghĩ chỉ cần đọc tài liệu tiếng Việt là ok rồi nhé 😀

Kết thúc phần 1
Mindmajix
Published: 2020-06-18 07:23:54

Mindmajix - The global online platform and corporate training company offers its services through the best trainers around the globe. We fulfill your skill based career aspirations and needs with wide range of customizable courses, self paced videos, on-the-job support, and job assistance. We make learning - easy, affordable, and value generating.
https://mindmajix.com/
Understanding Istio: part 10 – Gateway
Tags: kubernetes, devops, docker, beginners
Published: 2020-06-18 07:14:21

---
title: Understanding Istio: part 10 – Gateway 
published: true
description: Serie of sketchnotes about Istio. Explaining in a visual way Istio principles.
tags: Kubernetes, DevOps, Docker, beginners
series: Understanding Istio in sketchnotes
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/apt7z64mth8y8m5tq66c.jpg
---

Understanding Cloud technologies, like Kubernetes, can be difficult or time-consuming. In order to spread knowledges about it, I started to create [sketchnotes about Kubernetes](https://dev.to/aurelievache/kubernetes-sketchnotes-pods-4ib0) and know it's time to talk about a perfect companion of Kubernetes, a service mesh, Istio.

We continue our new serie of Sketchnotes about Istio, with a sketchnote about Gateway.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/apt7z64mth8y8m5tq66c.jpg)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/rmcutw2kz6lwku8m9pm7.jpg)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/tiswp6oxxomcn59bkmab.jpg)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/kao4djchl2x18frav3c9.jpg)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/1ke2c5hbl94a855swndv.jpg)

If you are interested, I published a book with all the sketchnotes on Istio (and new ones!): ["Understanding Istio in a visual way"](https://gumroad.com/aurelievache#vJYhM).

As usual, if you like theses sketchnotes, you can follow me, and tell me what do you think. I will publish others sketchs shortly :-).
How to merge two Objects or Arrays in JavaScript
Tags: javascript
Published: 2020-06-18 06:57:09

So for a while now I've know the spread operator in JavaScript. I have been using it for while now but I never knew it worked for objects too.

## Merging two Arrays
```js
let a = [1, 2, 3, 4, 5];
let b = [6, 7, 8, 9, 10];
let c = [...a, ...b];
console.log(c);
// output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
```

## Merging two Objects
```js
let a = {
  name: 'Han'
};
let b = {
  age: 98
};
let c = {...a, ...b};
console.log(c);
// output: {name: 'Han', age: 98}
```

I hope you also know now. Thanks for reading!
How to stop being a procastinator
Published: 2020-06-18 06:40:14

 How to stop procrastinating 
 Plan your tasks -preferably, microtasks. ⁣
When your day starts, begin by making a list of the tasks you should finish by the end of the day. When you see there's a task that might take the entire day or more than 2 hours, split this task into a large number of small atomic activities. The trick is to split the activity into tasks that seem small in purely subjective terms. The reason why is no matter how mundane and unpleasant the task is, it’s just a small activity that you can easily get out of the way. ⁣
Although you still may feel an urge to procrastinate, the urge would be much weaker compared to a large task with an ambiguous goal. ⁣ ⁣

 ⁣
📵 Remove distractions (that includes Instagram, whatsapp and other social media) ⁣
When we are focusing on a task, we need to remove anything that can distract us. Turn off notifications, or apps that cause notifications. Take a break from your email, slack, chat, messenger... I think you get the message here. ⁣ ⁣


 Find a flow that works for you ⁣
One of the top recommended techniques is the Pomodoro Technique where you set a time limit and then you turn off all distractions and work for x amount of time and you also have a defined breaktime before restarting again your work. You can check it out going to https://pomofocus.io/ ⁣ ⁣


  Tell others about your goal ⁣
When you tell others about your goal for the project, now you have to be accountable. This reinforces the seriousness of those deadlines you set for yourself with each task. ⁣ ⁣
 ⁣

  Stop overthinking ⁣
At the end of the day, it comes down to making a decision and taking action. List tradeoffs between implementations and commit to one. When it comes to software development (or life), there is no correct way to do something. There will be many different ways to reach the goal. If your choice really does not work out, you can always backtrack and take another approach. Look at it as learning something new instead of a loss will keep you going. ⁣ ⁣ ⁣
💭 How do you stop yourself from procrastinating? ⁣ ⁣
Cloudflare now allows registering new domains
Tags: webdev, discuss, devops, news
Published: 2020-06-18 06:38:12

You may already know but Cloudflare posted a blog on Sep 27, 2018 [Introducing Cloudflare Registrar](https://blog.cloudflare.com/cloudflare-registrar).

Cloudflare had many benefits like zero mark-up purcahses. This means that you pay the wholesale price that Cloudflare pays, this is unlike all (most?) other registrars that add their own fee on top of the ICANN fee.

The downside to this was that Cloudflare was only allowing transferring existing domains to their registrar, until today.

I have just been through our company Cloudflare account and noticed a new button on the home page ![Cloudflare register domain beta](https://dev-to-uploads.s3.amazonaws.com/i/eq1ivy2zlgkluk9k2a2l.png) :D

Looks like you can now register new domains through Cloudflare. This may be a staged roll out and it seems another Cloudflare account didn't have access to this button.

Here is what the searching looks like!

![Cloudflare register domain search](https://dev-to-uploads.s3.amazonaws.com/i/if5f7mbdhy8ldznfdjgv.png)

Oh and if you are interested in getting a status page for your website checkout my other dev.to post, [I built a status page using React and GitHub Issues](https://dev.to/tadhglewis/i-built-a-status-page-using-react-and-github-issues-4nkl)