teleren/devto huggingface dataset:
Has GitHub Been Down More Since its Acquisition by Microsoft?
Tags: devops
Published: 2020-06-04 12:30:32

Two years ago, on June 4th of 2018, Microsoft announced its acquisition of GitHub, unicorn darling of the developer tools startup ecosystem, [for $7.5B in stock](https://techcrunch.com/2018/06/04/microsoft-has-acquired-github-for-7-5b-in-microsoft-stock/). The announcement unearthed a wide range of [opinions and pontifications](https://news.ycombinator.com/item?id=17221527), ranging from “GitHub is doomed” to “Microsoft is smart”, with many predictions about GitHub’s future. Some thought Microsoft’s growing investments in its cloud offering, Azure, might help GitHub. Could an investment by Microsoft improve GitHub’s reliability or harden them against outages like [DDOSes](https://www.wired.com/story/github-ddos-memcached/)? Have any of these predictions come true?

We set out to analyze one angle of the GitHub acquisition: Has GitHub become more reliable since its acquisition by Microsoft? Our service, [StatusGator](https://statusgator.com/), monitors more than 700 status pages of cloud providers and SaaS companies large and small. We aggregate and normalize status page data and make it available to our subscribers however they need: in notifications by email, Slack, Teams, or webhook, and in a [unified status dashboard](https://nimbleindustries.io/2020/01/24/how-to-save-precious-minutes-during-incident-response/) for all service dependencies.

## GitHub Incidents Before and After Acquisition

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

## Summary


Here's a summary of our findings, which are [detailed in our blog post](https://nimbleindustries.io/2020/06/04/has-github-been-down-more-since-its-acquisition-by-microsoft/):

* Incident Counts increased from 89 to 126, a 41% increase.
* Minutes of Downtime increase from 6,110 to 12,074, a 97% increase.

Has GitHub really been down more? Or are they just dedicated to increase transparency now that they are owned by Fortune 50 company? What's your experience with GitHub downtime been like recently?
Job Market In India Now On A Hiring Spree
Published: 2020-06-04 12:27:21

Data science is principally the application of a mix of mathematical, statistical, analytical and programming expertise for the collection, group and interpretation of knowledge to allow effective and proper management of the enterprise whose knowledge it's. Best knowledge science training institute in kukatpally. Logistics and transport amenities can use knowledge science too in a productive method, like figuring out essentially the most most well-liked routes, <a href="https://g.page/ExcelRSolutionsBanaglore?share">Business Analytics courses</a> routes which can lower costs, estimating delivery time etc. Construct Machine Learning, Deep Studying and Neural Network algorithms with Python and R language Apprehend forecasting to take proactive enterprise choices.

The course curriculum on this Information Science Coaching In Hyderabad Program is specifically designed by consultants to complement the present trade necessities. So, be a part of the very best information science course in hyderabad to enhance your IT profession. Get accustomed to Knowledge Science & knowledge analytics learning Techniques for newbies. When you determine to join Intellipaat's Knowledge Science certification in Hyderabad, we are going to make sure that you not only acquire the exact abilities as per industry necessities but in addition get lucrative jobs.

A certification in Data Science Training from our institute will make you eligible for the high paying job roles in Data Science. So the professionals with the skills of Data Science will succeed in the forefront organizations. This Knowledge Science certification training program will make it easier to shape your Data Science career dream into turning into a reality.

Be assured that you are coming into the future of data science a lot earlier to seize these wonderful alternatives arising from this biggest want of the enterprise world. Information science is seen as the most revolutionary and futuristic area that is promising not only in the aspects of offering jobs to the youth but also rising prospects in the field.

Superior Data Science ideas like Business Analytics, Predictive Analytics, Forecasting, Text Mining, Hadoop and Apache Spark, Big Knowledge Analytics are additionally lined as a part of this Data Science training program. Analytics Path Information Science coaching is reputed for our quality, professionalism and excellence across the Data Science industry.

We are located at : 
Location : 
ExcelR - Data Science, Data Analytics Course Training in Bangalore
49, 1st Cross, 27th Main BTM Layout stage 1 Behind Tata Motors Bengaluru, Karnataka 560068
Phone: 1800-212-2120/ 070224 51093
Hours: Sunday - Saturday 7AM - 11PM
JavaScript Closures
Tags: javascript, codenewbie
Published: 2020-06-04 12:08:30

Like learning any new language, your knowledge can drip away when your focus shifts.

My focus did indeed shift over the past month - from intense language learning (JavaScript!) to interview prep to strictly coding practice.

What I really needed, silly me, was a sweet lil' mixture of coding and concepts. 

Reviewing JavaScript basics, most concepts soaked right back in - except for one.

##Closures

Originally a mathematical concept, from lambda calculus (did you know that?! me neither!). But for our purposes here, we know a closure to be a behavior of functions.

And *only functions*.

An object cannot have closure.

Nor does a class have closure.

**Only functions.**

For closure to be observed, a function must be invoked.

*And*, it must be invoked in a different branch of the scope chain from where it was originally defined.

##Closure Simply Defined

Each reference from an inner function to the variables in an outer scope is called a closure.

##Closure's Purpose

A closure gives you access to an outer function’s scope from an inner function. 

The closure is a function that remembers the variables from the place where it is defined, regardless of where it is executed later.

Many (and I mean *many*) other authors claimed to explain closures simply, but I believe Dmitri Pavluti did it best:

[Simple Explanation of Closures](https://dmitripavlutin.com/simple-explanation-of-javascript-closures/)

Have a different resource or explanation that helped closures "click" for you? Share below - would love to hear more.
Next.JS is awesome!
Tags: javascript, node, webdev, tutorial
Published: 2020-06-04 12:03:02

Hey folks,

I recently stumbled upon a requirement: A **blog/portfolio** website for all my content creation activities. I wanted it to be a one stop destination for all my content. 

### Purpose
Basically, there are the different places where I create content:

- My Youtube channel, where I create **animated tech videos**.
{% youtube ncq_PE3T0WI %}
- This dev.to blog where you are reading the current article. 
{% link https://dev.to/comscience/react-development-using-just-a-single-file-5e65 %}
- My twitter account where I create **sketchnotes** related to Javascript.
{% twitter 1266375664212389895 %}

### Product Requirement
The product requirement was simple - A home page where users would land and get a **summary/dashboard** of the best content from all the 3 places mentioned above. And then a side-menu where they can naviagte between a detailed list of all of these.

### Technical Requirement
My tech requirement was different. I have been working with react for quite some time now but this time around, I thought to experiment with **SSR (Server side rendering)**. I wanted to experience the power of **pre-rendering** and also get advantage of the **SEO** that comes along with SSR. I know that **gatsby** and **next** were two of the most famous ways to accomplish the above. 

tl;dr - I checked out **next.JS** first and fell in love with it (Still haven't looked at Gatsby). 😛

### Next.JS - What I was looking for
#### So what did I find in next.js?

I found exactly what I was looking for:
- I would still code my SSR blog with react! ❤️
- The pre-rendered pages
- automatic routing based on file paths (how aweosme is that!)
- Sass support 
- Zero configuration deployment with **vercel**!

It was all too good to be true. I was able to push the first build of my blog (rather a raw build) to production in about 2 hours in total from the point of creating the repo. And the cherry on top: vercel even provides you a free **.now.sh** domain!

I'll still hold off from sharing the first build of my blog as it is still a work in progress. But the experience so far has been flawless! fingers crossed. 🤞🏽

Kudos team vercel!
Cheers!
Daily Developer Jokes - Thursday, Jun 4, 2020
Tags: jokes, dailydeveloperjokes
Published: 2020-06-04 12:00:23

---
title: "Daily Developer Jokes - Thursday, Jun 4, 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%20Jun%204%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/5e1258b924543.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:
A programmer's significant other tells them, "Run to the store and pick up a loaf of bread. If they have eggs, get a dozen."

The programmer comes home with 12 loaves of bread.
 -->
How to move Chrome, Firefox or Edge cache to save space
Tags: google, cache
Published: 2020-06-16 10:45:38

---
title: How to move Chrome, Firefox or Edge cache to save space
published: true
date: 2020-06-04 12:00:00 UTC
tags: google,cache 
canonical_url: https://www.ma-no.org/en/news-and-events/how-to-move-chrome-firefox-or-edge-cache-to-save-space
---

Caching is a technique used by many programs to improve their performance, especially for applications that run over the Internet, such as streaming programs or web browsers. This technique consists of saving all or part of the information being processed in a directory so that, if we return to it, instead of having to download it again from the Internet it is loaded directly from the computer. And although it may seem like a good feature in general, if we don't control the cache of the programs it may cause us some headaches.That's why, sometimes, we may want to change… !

[Read all ](https://www.ma-no.org/en/news-and-events/how-to-move-chrome-firefox-or-edge-cache-to-save-space)
Support for RAD Studio Sydney in New Versions of Devart Data Access Components
Tags: delphi, macos, radstudio
Published: 2020-06-04 11:59:31

---
title: Support for RAD Studio Sydney in New Versions of Devart Data Access Components
published: true
description: Devart presented updated Delphi DAC products which got support for the recently released RAD Studio 10.4 Sydney and some other important improvements.
tags: delphi, macOS, RAD Studio
---

*Devart presented updated Delphi DAC products which got support for the recently released RAD Studio 10.4 Sydney and some other important improvements.*

Devart, the leading provider of database management software, connectivity solutions and developer tools, rolled out new versions of [Delphi Data Access Components](https://www.devart.com/dac.html) to keep assisting software engineers in developing fast native applications. The key feature of the recently updated products is support for the newly released RAD Studio 10.4 Sydney.

The release also includes such key enhancements as:

- support for macOS 64-bit in the latest version 2.0.8 of Lazarus;
- support for the Pipe, Secure Pipe, and Secure TCP protocols in NexusDB;
- support for the Line geometric type in PgDAC;
- a new option AllFieldsAsNullable in DBF.

**Devart Delphi Data Access Components** are the libraries of components for Delphi developers that provide direct access to multiple databases, and allow developing multi-platform applications in Embarcadero RAD Studio, Delphi, C++Builder, Lazarus, and Free Pascal on Windows, Linux, macOS, iOS, and Android, for both 32-bit and 64-bit platforms. 

To read the news on the vendor’s official blog, please visit https://blog.devart.com/delphi-data-access-components-with-support-for-rad-studio-10-4.html

**About Devart**

Devart is one of the leading developers of database tools and administration software, ALM solutions, data providers for various database servers, data integration and backup solutions. The company also implements Web and Mobile development projects.
For additional information about Devart, visit https://www.devart.com/.
how to change App Package name Or Application ID in flutter
Published: 2020-06-04 11:54:11


I will show you how to change the App Package name Or Application ID in Flutter with Easy Way. Every App has a Unique Application Id that Looks like com.example.yourappname. 

Application Id is used to Identify your app in the Google PlayStore.

At the Time new version of your app, the Application Id Or Package name must be Same As an Original Apk.

###**Watch Full Video**:- https://youtu.be/ycJ1VsOf8_Q



Official Documentation Set the Application ID:-
https://developer.android.com/studio/build/application-id

Package link(change_app_package_name):- 
https://pub.dev/packages/change_app_package_name

***Update The Following Files***
[x] Update AndroidManifest.xml files for release, debug & profile
[x] Update build.gradle file
[x] Update MainActivity file. Both java & kotlin supported.
[x] Move MainActivity file to new package directory structure
[x] Delete old package name directory structure.
The Power of TypeScript in a plain JavaScript project
Tags: typescript, javascript
Published: 2020-06-04 11:53:55

Yes, [TypeScript](https://www.typescriptlang.org/) is nice. Nevertheless, I hardly use it in projects (at the moment). But the type-checking protects against potential bugs and the code completion of your own libraries in projects is also great.

Some days ago I published the following post:

{% post danielbayerlein/how-to-add-typescript-declaration-files-without-typescript-418e %}

With this solution you already offer the code completion with your library. In the project itself the type-checking is still missing. Additionally it is a manual effort to write the TypeScript declaration files.

## The Power of TypeScript in a plain JavaScript project

First of all we need to add the `typescript` package as a dev dependency.

```bash
npm install typescript --save-dev
```
Now we have to initialize TypeScript. This command creates the configuration file `tsconfig.json` in the root folder.

```bash
npx typescript --init
```

There are many configuration options ([📖 Reference](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html)), but the necessary configuration is manageable.

```json
{
  "compilerOptions": {
    "allowJs": true,
    "checkJs": true,
    "declaration": true,
    "emitDeclarationOnly": true
  }
}
```

* `allowJs`: Allow import of JavaScript files
* `checkJs`: Errors are reported in JavaScript files
* `declaration`: Generate `.d.ts` files for every JavaScript file
* `emitDeclarationOnly`: Only emit `.d.ts` files

Now the configuration is complete and we can run the TypeScript compiler.

```bash
npx tsc
```

✨ The TypeScript declaration files (`.d.ts`) are now automatically generated from the [JSDoc](https://jsdoc.app/).

### Time for an example

*File:* `src/unit/index.js`

```js
/**
  * Converts celsius (C) to fahrenheit (F)
  *
  * @param   {number} value Temperature in celsius
  * @returns {number}       Temperature in fahrenheit
  */
export const cToF = (value) => (value * 9 / 5) + 32
```

After the TypeScript compiler was executed (`npx tsc`), the following declaration file was created.

*File:* `src/unit/index.d.ts`

```js
export function cToF(value: number): number
```

💡 The declaration files should be delivered with the library. For this I use the [webpack](https://webpack.js.org/) plugin [`copy-webpack-plugin`](https://github.com/webpack-contrib/copy-webpack-plugin).

## The Power of VS Code

When using [VS Code](https://code.visualstudio.com/), a type-checking is also performed using the TypeScript configuration and JSDoc in addition to the code completion.

![VS Code](https://dev-to-uploads.s3.amazonaws.com/i/b1ym88ntmqddia1g0i7v.gif)

—

If you have any kind of feedback, suggestions or ideas - feel free to comment this post!
Build an email service with Liteflow
Tags: tutorial, liteflow, sendgrid, email
Published: 2020-06-04 11:52:40

---
title: Build an email service with Liteflow
published: true
description: In this tutorial, we start with the basics of Liteflow, learning how to create and use a Liteflow service that sends emails using SendGrid.
tags: 
  - Tutorial
  - Liteflow
  - Sendgrid
  - Email
//cover_image: https://direct_url_to_image.jpg
---

Today we will learn how to create and use a Liteflow service that sends emails using [SendGrid](https://sendgrid.com/).

# Create the Liteflow Service

It's time to create our Liteflow application with its first service. Open a terminal and run the following commands:

```bash
npm I -g @liteflow/cli
liteflow init service-email-sendgrid-tuto
cd service-email-sendgrid-tuto
liteflow service:init services/email --template javascript
```

You will now have a new directory services/email with the boilerplate of a service.

# Send emails through a task

Let's define the task we want to create in the `liteflow.yml` file (in your services/email directory).

## Configure your service

This service will use Sendgrid to send emails and require the Sendgrid library and a Sendgrid API key. You can add the variable `SENDGRID_API_KEY` as env of your service.

The services also define a task called send responsible for sending an email. This task has the following inputs/outputs:

## Inputs:
- from (String): the account to send the email from
- to (String): the recipient of the email
- subject (String): the subject of the email
- text (String): the text of the email

## Outputs:
- status (Number): status of the sent email

With the configuration and the send task, your `liteflow.yml` should look like:

```yml
name: sendgrid-service
configuration:
  env:
    - SENDGRID_API_KEY=
tasks:
  send:
    inputs:
      from: { type: String }
      to: { type: String }
      subject: { type: String }
      text: { type: String }
    outputs:
      status: { type: Number }
```

Continue the tutorial here > [https://blog.liteflow.com/2020/06/04/send-emails-with-sendgrid/](https://links.liteflow.com/email-service)
Function domain
Tags: functional, haskell, typescript
Published: 2020-06-02 16:45:40

Functional programming is, funnily enough, all about functions. As such, it's good to refine how we write them. This post is all about the domains of our functions.

## What's the domain?

A function's domain is the set of all its possible argument values, for example:

```haskell
exclaim :: String -> String
exclaim x = x <> "!"
```

```typescript
const exclaim = (x: string): string => x + '!';
```

The domain of this function is a set of all possible strings. In other words, the input `x` could be any possible string; there are no constraints on this argument except the string type.

## Totality

Can you spot the problem with this function?

```haskell
head :: [a] -> a
head (x:_) = x
```

```typescript
const head = <A>(xs: A[]): A => xs[0];
```

It's _partial_, meaning its implementation is not defined for all possible inputs, specifically in the case of an empty list.

One way in which we can address this is to return `Maybe`/`Option`, thus making our function _total_ i.e. non-partial:

```haskell
head :: [a] -> Maybe a
head (x:_) = Just x
head _     = Nothing
```

```typescript
const head = <A>(xs: A[]): Option<A> => O.fromNullable(xs[0]);
```

Really, totality means only ensuring that you've handled all possible inputs such that no input could cause the function to throw or otherwise unexpectedly fail.

Note that property-based testing would be a good way to catch edge-case bugs such as that in our first, naive implementation, and could be used to ensure that this implementation isn't somehow flawed for some input we haven't considered.

## Constrained inputs

There is an alternative technique we can employ however, one that's often preferable. That is to limit our function's domain itself through the use of more restrictive types:

```haskell
head :: NonEmpty a -> a
head (x:|_) = x
```

```typescript
const head = <A>(xs: NonEmptyArray<A>): A => xs[0];
```

By constraining our function's domain we've been able to define a safe head function that's maximally ergonomic. If someone doesn't already have a decidedly non-empty list, they can _maybe_ make one and be no worse off than before. On the other hand, if the consumer's list is definitely non-empty, then they no longer have to deal with a false notion of nullability. Additionally, it's simplified our function implementation.

If you ever catch yourself widening your output type to satisfy a bad input, that's a sign that you might need to constrain your domain. A very common mistake from beginners to the `Maybe` type is to discover that they need to manipulate it in their business logic path, and write a function of type `Maybe a -> Maybe b`. Never do this! This is what functors are for.

## Codomain

To round up this post, a quick mention that just as `a` in `a -> b` is the domain, `b` is the _codomain_.

---

This post can also be found on my personal blog: 
https://www.samhh.com/blog/function-domain
Why ReactJS is better that other JS frameworks - developer’s point of view
Published: 2020-06-04 11:47:15

We discovered React.js not so long ago and were fascinated by its speed and performance. See the key benefits of React from our developers’ point of view.
https://y-sbm.com/blog/why-reactjs-is-better-that-other-js-frameworks-developers-point-of-view
All you need to know about JSON in 5 minutes
Tags: javascript, webdev, tutorial
Published: 2020-06-04 11:38:50

Hi! I've never thought that JSON can be a topic for a standalone tutorial/post. But recently I got this suggestion from one of my followers on Instagram and decided to make a quick overview of JSON. I actually think now that it might be useful for some devs. So I recorded the 5 minutes video:

{% youtube ut2Pw2tS7Ek %}

You also can get through the points by yourself, it's not difficult for understanding anyway. Let's write it down:

**JSON** (JavaScript Object Notation) is a lightweight format for storing and transporting data. It's heavily used on modern web.

## Syntax

* File extension is ".json"
* Root element must be an object or an array
* All keys must be double-quoted
* String values must be double-quoted (escape double quotes in the value)
* Number and boolean values must NOT be double-quoted
* Comments are not supported by design
* No trailing commas

A browser's environment, as well as Node.js, has the global object `JSON` working with this format. Basically, you need to know just two its methods:

* `JSON.parse(argument)`: string -> object/array
* `JSON.stringify(argument)`: object/array -> string

```javascript
// examples
JSON.parse("{\"key\": \"value\"}"); // { key: "value" }
JSON.stringify({key: "value"}); //"{"key":"value"}"
```

---

That's what you need to know about JSON. Did I miss something important? Please let me know in comments then.

Thanks for watching/reading and welcome to **JavaScript Room** blog on  [Instagram](https://www.instagram.com/room_js), [Twitter](https://twitter.com/room_js), [Facebook](https://www.facebook.com/roomjs) and [Telegram](https://t.me/room_js)!