teleren/devto huggingface dataset:
7 trends you should consider while working on your SaaS idea
Tags: saas
Published: 2019-05-22 15:21:41

---
title: 7 trends you should consider while working on your SaaS idea
published: true
description: For business owners just getting started, a few important trends to sculpt SaaS ideas better and boost your bottom line.
tags: SaaS
cover_image: https://www.mindk.com/blog/wp-content/uploads/2019/05/333268-P9UEGR-975-1920x1080.jpg
canonical_url: https://www.mindk.com/blog/7-trends-for-saas-idea/
---
The current growth dynamics and investments in SaaS are remarkable (SaaS industry is now worth $116 billion worldwide). It is a promising and competitive business. If you already have a great SaaS idea, these trends will definitely help you stand out from the big boys in SaaS world.

The SaaS industry is maturing each year, as more and more businesses are moving from on-premises software models to web-based Software-as-a-service (SaaS) solutions.

Global SaaS market is expected to grow to a value of $117 billion by the end of 2022, according to Market Research Future (MRFR).

The rising market raises competition. On average, an emerging SaaS business is reported to have more than 9 competitors.

Yeah, the bar is higher than ever to succeed, but we’ve yet to hit peak SaaS. Adopting at least one of the below-mentioned trends can help propel success to your SaaS idea and drive faster, more efficient growth.

[Continue reading...](https://www.mindk.com/blog/7-trends-for-saas-idea/)
AskDev: Real-time group project collaboration tools?
Tags: help, discuss, research, a11y
Published: 2019-05-22 15:15:01

Hey DEV! I'm in grad school, and I'm taking a course for the summer semester all about Education Technology. The class is structured almost like an independent study, where we spend the semester researching a topic of personal interest and producing something (original research, a tool to solve a problem, or some educational content). As a web developer with a long-time interest in accessibility, I'm exploring a few different angles for building a tool to address accessibility issues with online courseware (MOOC platforms, learning management systems, that kinda stuff).

So, I have a question for the community: are you aware of any software/web applications focused on long-distance group collaboration, such as for team projects and stuff? I'm looking for examples with real-time communication capabilities, file sharing (and ideally editing/reviewing) capabilities, shared notes, etc. I haven't had a reason to use this sort of app in the past, so I'm not familiar with any popular platforms or anything. My first thought is the Google suite (Hangouts/Chat + Google Drive basically), but are there more focused platforms out there?

Thanks in advance!

**EDIT**

To clarify, I'm not looking for a tool to use myself, I'm looking for tools to examine for accessibility, and I'm thinking about building an alternative myself. So I'm especially looking for full-featured combination tools if they exist, especially tools specifically aimed at coursework and student group projects.

And to clarify further, I'm definitely also interested in more general solutions that are often used by student groups for collaboration on school projects (e.g. G Suite, Slack), so let me know what you've used, especially if you're a current student!
Should I open source my code?
Tags: opensource, discuss
Published: 2019-05-22 15:09:38

---
title: Should I open source my code?
published: true
description: 
tags: #openSource #discuss
---

I've developed a program for automatic text extraction on ID cards (only for local id cards, for now) using computer vision.

I didn't reinvent the wheel, but i'm pretty sure that where i live, my code could be used in many services, and i could make some money out of it. 

Now, I have two questions coming in mind:
* Should i create a product and sell it?
* Should i open source my code (as a library for example) and anyone can clone it an build his solution ?

I haven't figured out what to do, my program is still sleeping in my computer for months now... Any advice?

Have you ever been in this situation? If yes, how did you tackle this dilemma?
GraphQL Code Inspector
Tags: graphql, webdev, tutorial, beginners
Published: 2019-05-22 15:08:24

---
title: GraphQL Code Inspector
published: true
description: Prevent breaking changes in your GraphQL API
tags: graphql,webdev,tutorial,beginners
cover_image: https://thepracticaldev.s3.amazonaws.com/i/6iv1jsriqaftnl1dysp4.png
--- 

[GraphQL](https://graphql.org/) is really about collaboration, and the teams that get furthest are those who can work seamlessly together on their GraphQL API.

This idea is well-known for the members of [The Guild](https://github.com/the-guild-org) know from open-sourcing amazing graphql tools. Its members work constantly on new solutions aiming to automate & increase the type-safety of our GraphQL projects. After open-sourcing such tools as [GraphQL Code Generator](https://graphql-code-generator.com/) or [GraphQL Modules](https://graphql-modules.com/), their next work seen daylight - the [GraphQL inspector](https://graphql-inspector.com/)


[GraphQL Inspector](https://graphql-inspector.com/) is a tool published by [Kamil Kisiela](https://github.com/kamilkisiela/), that detects changes, similar or duplicated types, validates documents against a schema and looks for deprecated usage. 

![Example](https://thepracticaldev.s3.amazonaws.com/i/em7rri7pnzleik7b6era.jpg)

**Key features/commands:**
- [diff](https://graphql-inspector.com/docs/essentials/diff) - that detects breaking or dangerous changes,
- [validate](https://graphql-inspector.com/docs/essentials/validate) - validates documents against a schema & searches for deprecated usage,
- [similiar](https://graphql-inspector.com/docs/essentials/similar) - lists similar types in order to find duplicates,
- [coverage](https://graphql-inspector.com/docs/essentials/coverage) - finds unused parts of GraphQL Schema based on clients’ fragments & operations.



The tool is available as:
- [CLI tool](https://graphql-inspector.com/docs/installation)
![GraphQL Inspector CLI](https://thepracticaldev.s3.amazonaws.com/i/ew294o56vnh5kr93e3f4.gif)

- [Github Application](https://github.com/apps/graphql-inspector)
![GraphQL Inspector GitHub](https://thepracticaldev.s3.amazonaws.com/i/1wxx8ev382cfgplycl4s.jpeg)
##### Source: [GraphQL Inspector](https://graphql-inspector.netlify.com/)

There is also a [programmatic API](https://graphql-inspector.com/docs/api/schema) available in case you want to build something on the top of it on your own.
First Duplicate!!Swift Coding Challenge!!
Tags: thetealpickle, algorithms, challenge, beginners
Published: 2019-05-22 15:03:04

---
title: First Duplicate!!Swift Coding Challenge!!
published: true
description: Find the number of common characters between them
tags: #thetealpickle #algorithms #challenge #beginners
---

Swift coding challenge!!
First Duplicate. Given an array a that contains only numbers in the range from 1 to a.length, find the first duplicate number for which the second occurrence has the minimal index. 

😛 Level: Easy 😛 
<img src="https://thepracticaldev.s3.amazonaws.com/i/gyhdqryflq1ev1wyteg1.png" />

I have included a solutions video!! The video gives some insight into how I’ve solved the problem. Don’t forget to try the problem out BEFORE checking out the solution video and solution code 😉 😉 

<img src="https://thepracticaldev.s3.amazonaws.com/i/br40giilqcrclj9gfs0x.png" />

If you have a coding challenge you want me to solve feel free to drop a comment or message me with the problem!! 😊 😊 let’s get swole 💪🏾 💻 💻
How to transform a customer software to an generic product
Tags: discuss, dotnet, react, howto
Published: 2019-05-22 14:36:45

Hi,

I know, this is a very complex questions and I think there are many solutions. 

But we had a Software project, now we want to create a generic product from this Software. 

For now we use an ASP.net webapi as backend Server for accessing the data from the Datasource. 

For the frontend we use react. 

What are the best practise for now to "convert" it to a Product. 

First of all the custom specifica for the customer must be separated. We have the idea to handle this with Feature flags (as Pattern by Martin fowler). 

But how can I handle the datastore, especially when other customer wants this part of software too?

Is there any resource that can descibe the best practise pattern for this?
Programming Languages Quick Reference
Tags: programming, languages, reference, documentation
Published: 2019-05-22 14:36:00

---
title: Programming Languages Quick Reference
published: true
description: 
tags: programming, languages, reference, documentation
cover_image: https://thepracticaldev.s3.amazonaws.com/i/jg9uvlsoqrvx44ruc6c6.PNG
---

We've all seen language documentation at one point or another. Occasionally you will find yourself in a spot where you need to look up something, and have no internet access or nothing saved offline.

Obviously the first place to look at is the source code if all fails, or other tools like xcode have built-in documentation but it is not always the case for all languages/tools.

Here's where [Zeal](https://zealdocs.org/) comes into play, it was inspired by [Dash](https://kapeli.com/dash). It is an awesome application where you can download docsets for easy offline usage for whatever languages you use. I'll be honest about it, I didn't know such of tool existed for so long. I hope you find it to be useful in your quest.

**Note:** Zeal version is free for linux, and windows. Dash is for mac, dash is free to use but will nag you to purchase, and if you have the dough please support them. (Not sponsored by Dash :) )

Let me know of other tools alike, or other ways you browse language documentation.

![enter image description here](https://thepracticaldev.s3.amazonaws.com/i/p4pseo12m08izji7q0w4.PNG)

![](https://thepracticaldev.s3.amazonaws.com/i/jg9uvlsoqrvx44ruc6c6.PNG)
Is there any way to detect if a user "can go back" in PWAs (desktop PWA most specifically)
Tags: help, javascript, webdev, pwa
Published: 2019-05-22 14:01:47

---
title: Is there any way to detect if a user "can go back" in PWAs (desktop PWA most specifically)
published: true
description: 
tags: help, javascript, webdev, pwa
---

Firstly, thanks for the discussion yesterday:

{% link https://dev.to/ben/how-to-handle-outbound-links-in-desktop-pwa-3o4n %}

I took the feedback and made a couple PRs:

{% github https://github.com/thepracticaldev/dev.to/pull/2921 %}

Now I'm curious about another PWA feature I haven't been able to track down.

We've implemented navigation buttons right into the DEV desktop PWA like such:

![](https://cl.ly/7c0698059ded/Image%202019-05-22%20at%209.52.12%20AM.png)

_team pink mode_ 💕

They work easily enough using `window.history.back();` but right now, they have no "on/off" state because I'm not sure how to determine of a user "can go back or forward". I know that this is not available in the typical window API but given that we're responsible for the back button ourselves in PWA I was wondering if there is anything exposed that would help determine this?
What the Error? ReactJS: Nothing returned from render
Tags: beginners, discuss, tutorial, tips
Published: 2019-05-22 13:57:12

---
title: What the Error? ReactJS: Nothing returned from render
published: true
description: How to debug and fix the "Nothing returned from render" error in ReactJS
tags: beginners,discuss,tutorial,tips
cover_image: https://owenconti.com/static/images/nothing-was-returned-from-render.jpg
---

This is the third video in my new series, What the Error? where I debug and resolve common error messages in web frameworks.

This video covers ReactJS's "Nothing returned from render".

{% youtube 4wkG3bq_Frc %}
ERADICATING THE  CHALLENGES 
FACED BY THE PROGRAMMING 
COMMUNITY IN NIGERIA
Tags: codenewbie, career, computerscience
Published: 2019-05-22 13:34:15

Nigerians Want to Write Code…They Just Don’t Know How 
 
It would be quite the understatement to say most Nigerians have not tried to delve into programming, but they never do – and that’s because they were never taught or urged to do so. Although quite a few Nigerians are successful in programming, but their knowledge is limited when it comes to knowing the existence of libraries, frameworks, or tools they can use in their code.
There’s no doubt that you can benefit from joining some developer forum. Joining programming communities are a great way to connect to a support network of millions of developers, find answers to burning questions, and stay on top of your game by helping others.  It’s no secret that the life of a programmer, especially that of a freelance developer, can be pretty isolating. Truth is, the more into the code we get, the more we don’t get out. We spend all of our time eagerly plugging away at our keyboards, looking for that pesky bug or learning a new way to build an app so that it stands out from the crowd. Because we’re so focused on the screen in front of us, we tend to forget to think of our networks as a programming community when in fact, that is exactly what they are.
This challenge has pushed me to create a platform called Coders Entity Owned (CEOwned) is a platform to help foster awareness of better practices, superior tools, proven methodologies and techniques within the software development community. A platform where coders share ideas and help each other grow. An online community for sharing and discovering great ideas, having debates, and making friends. Anyone can share articles, questions, discussions, etc. 

What do you think about this idea?

Please leave a useful comment with your thoughts, then share this on your Facebook and let's reap the benefits together. Thank you for sharing and being nice!
These are the People Who Really Need to Use a Virtual Private Network
Tags: vpn
Published: 2019-05-22 13:32:19

---
title: These are the People Who Really Need to Use a Virtual Private Network
published: true
description: 
tags: VPN
---
If you utilize the internet a lot, you are risking the data on your internet connected devices to hackers, who can cause identity theft and other big problems for you. 

A Virtual Private Network or VPN, allows you to have a secure internet connection, to protect you when web surfing, no matter where you are in the world. Many people think that a VPN is a luxury item, but for a lot of us, it should be mandatory. Here is a short list of people who should use a VPN.

Professionals Who Work a Lot Online

Many jobs today require that you are on the road a good part of the time. In the office, you usually have very strong online security that is in some cases managed by an IT department. And all of the devices and connections are constantly checked to ensure that they are secure. 

When you leave the office however, things are not nearly as secure. Traveling around town, cafes, restaurants, airports, train stations, and hotels, offer Wi-Fi that is hardly ever secure enough for you to entrust your company’s business. Many of these Wi-Fi networks even utilize unencrypted connections, which are a magnet for hackers. These illegal operators can steal your data and identity, causing you and your company lots of problems. 

A VPN always utilizes encryption to protect your valuable information, and to thwart thieves who intend on getting this data. A VPN will work anywhere you make an internet connection, so you are always secure and protected. 

Lovers of Online Entertainment

If you are one of the millions around the world who love to watch movies, television shows, and sports online, but have problems trying to find certain entertainment you want to see because of restrictions in the country you are in, you should utilize a VPN. When you use a VPN you can get around any limited access wherever you are and see any content that is available, even if it is live. 

Those Who Want to Maintain Their Privacy

The most important group who should use a VPN, is those of us who want to maintain our privacy when online. When you are online surfing, the things you look at should be private. And your browsing history should be exclusively yours. Today it is likely that your internet provider is storing your browsing history and can make it available to others. If you live in a country that is restrictive of the internet, they may even be checking your browsing history on a daily basis. With a VPN, your internet surfing is totally anonymous. No one knows what you have been viewing and there is no record of it. 

VPNs typically charge fees for using them, and in some cases these fees can really add up. There are however several free VPNs that offer services that fit the needs of most. The review of <a href="https://cooltechzone.com/proton-vpn-review">ProtonVPN at Cooltechzone.com</a> proves this fact. Having read that, you can make a great decision about getting the best online protection.
The Abort-able Fetch
Tags: fetchapi, abortcontroller, javascript, codecleanup
Published: 2019-05-22 13:10:57

---
title: The Abort-able Fetch
published: true
description: How to effeciently handle dangling network requests in web app.
tags: ['FetchAPI','Abortcontroller','javascript','code clean up'] 
---

Fetch API have come a long way into becoming a more mature, stable and supportive Web API. We use it extensively in our app. However we weren’t using its abort-able functionality i.e to stop or terminate requests in mid way. Support for abort able fetch was proposed in 2̶0̶1̶5̶ forever ago. Then in 2017 it finally was included in the standard and Edge was first to support it. Now it [mostly supported](https://caniuse.com/#feat=abortcontroller) amongst browsers.

### The poly fill

Still to support other browsers we use `whatwg-fetch` , which is a polyfill that implements Fetch whatwg [specifications](https://fetch.spec.whatwg.org/). In addition to that, we had to see if abort able feature was natively supported in the browser ; if not then we use poly filled fetch.

```javascript
import { fetch as fetchPloyfilled } from 'whatwg-fetch';

const isAbortableFetchSupported = 'signal' in new Request('')

const _fetch = isAbortableFetchSupported ? window.fetch : fetchPloyfilled;

// _fetch is then passed down via props to be used in app
```

### Preparing for aborting

Promises are aborted using the new API provided by the DOM standard. We create a new instance of `AbortController`. From this controller we grab a reference to `AbortSignal` object using the `AbortController.signal` property. This `AbortSignal` can then be passed on to fetch in its options.

```javascript
const abortController = new AbortController();
const abortSignal = abortController.signal

..
...

// later in fetch

await this.props.fetch(requestURL, {  
    method: 'GET',
    signal: abortSignal
    })

```

### Aborting

```javascript
abortController.abort();
```

Calling the above method will stop your fetch promise and throw an error, which you will need to catch and handle properly.

```javascript
(err.name === 'AbortError’) {
console.error(’fetch safely aborted for quick stats’, err);
}
```

### Why abort at all?

Are you familiar with “Warning: Can’t call setState (or forceUpdate) on an unmounted component. This is a no-op”. This usually happens if you have a state that is dependent on after effects of your network call, and the context in which that call was made is lost. In simple terms : You went to a page, that started a network request to get list of stuff. You then quickly navigated away to another page. There might be a state responsible for getting list and updating the UI. But now since you navigated away , setState was still called on the former page which is now unmounted. And hence the warning. Its important to take care of it as it leads to memory leaks and uncertainty.

> We abort all our network request in componentWillMount

That way we make sure no setStates are called if fetch request are aborted.
The Abominable Fetch
Tags: fetchapi, axios, javascript, codecleanup
Published: 2019-05-22 13:09:43

---
title: The Abominable Fetch
published: true
description: Trimming down long browser Fetch API functions with Context API
tags: ['FetchAPI','Axios','javascript','code clean up'] 
---

The first question i get is why use Fetch API instead of Axios library. Well there are many post online which do well to show the similarities and differences in both libraries. Well for us what worked will be discussed some other time.

Lets jump to the post.

### Current situation

Our fetch calls are long and cumbersome to write.

```javascript
await fetch(URL_GOES_HERE, {
   method: 'GET',
   mode: 'cors',
   credentials: 'same-origin',
   headers: {
     Authorization: `token ${this.props.user.loggedInUser.token}`,
     'Accept-Language': language,
     'Content-Type'] = 'application/json'
   }
 }
);
```

That's a lot of code to just “GET” from the API. Most of the above boiler plate code is repeated for other similar fetch functions across the app. It was evident that mode, credentials, headers can be abstracted out and shared with other fetch functions.

### Improvement

To be able to do this effectively, a createFetch wrapper was created which will pass default values to fetch. This new wrapper fetch was then passed down to app via Context React API.

```javascript
context.fetch = createFetch(window.fetch, {
    baseUrl: context.apiConfig.apiUrl,
    language: store.getState().intl.locale,
    authToken: store.getState().user.loggedInUser.token
```

You might be wondering where does token come even before app is started. So this context is created after appropriate APIs are called just before starting the app.

The createFetch wrapper consists of defaults which will add to the options of fetch function. As mentioned below :

#### Headers

```javascript
let options = {};

// language variable is passed down from createFetch params. 
options.headers[’Accept-Language’] = language;


// Since mostly JSON object is returned. 
options.headers[’Content-Type’] = 'application/json’;


// authToken variable is passed from createFetch params. 
options.headers.Authorization = `token ${authToken}`;
```

#### Mode

```javascript
options.mode = 'cors';
```

#### Credentials

```javascript
options.credentials = 'same-origin';
```

All the above options are only alloted if they are not explicitly passed. Concluding the defaults we then return the function as follows:

```javascript
fetch(url, options);
```

End result

```javascript
await this.props.fetch(URL_GOES_HERE, {
   method: 'GET'
   }
 );
```

This resulted in a clean and crisp fetch function. Since it was passed down though context, fetch was accessed via props. However the above function is completely flexible to other values.

> The default values can be overridden if required, to bring in different options.
Fixing a very common warning of Sequelize.js
Tags: squelizejs, javascript, codecleanup
Published: 2019-05-22 13:08:29

---
title: Fixing a very common warning of Sequelize.js
published: true
description: We had this constant squelize error showing up in our development logs stating String based operators are now deprecated. It was time to fix this.
tags: ['squelizejs', 'javascript', 'code clean up']
---

We had this constant error showing up in our development logs :

> squelize deprecated String based operators are now deprecated. Please use Symbol based operators for better security, read more at http://docs.sequelizejs.com/manual/tutorial/querying.html#operators node_modules/sequelize/lib/sequelize.js:236:13

On simple google search, lead me to this huge issue on GitHub [https://github.com/sequelize/sequelize/issues/8417](https://github.com/sequelize/sequelize/issues/8417).

Conversation over there is huge, there seems to be many potentials solutions, the ones which collaborators most suggested was to disable operator aliasing. So any string based operator will be disabled without any aliases instead symbol based built in operators will be used. This prevents cross site attacks.

```javascript
const sequelize = new Sequelize(config.databaseUrl, {
  operatorsAliases: false,
})
```

[Follow here](https://github.com/sequelize/sequelize/issues/8417#issuecomment-341617577) for even in detail explanation.