teleren/devto huggingface dataset:
How to Plan a release of an open source project
Published: 2021-03-13 17:52:38

I am currently building a [social bible app](https://github.com/awesomebible/my-united).

## Why am I building it?
![my.awesomeBible Homepage](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yhasvletn0vic6p5irkr.png)
I started building it, because I couldn't find the features that I needed in already existing apps.

I open sourced my work on it, because I believe everyone should be able to freely access the bible, and I want to be able to build software that is shaped by the community that uses it.
So I made it open source.

## What I learned by building it
I had a vision, I knew what I wanted to build.

I developed a (for my situation) pretty good release plan:
### 1. Phase: Closed-Alpha
In this phase, the product is ready to use, and I open the registration via invite codes to a select number of people.
I frequently ask them to report bugs and improvements.
If the product is usable without major bugs, I transition into the next phase.

### 2. Phase: Open-Beta: A unlimited number of people can now register and test the product.
Now, I begin to polish the user interface and flow.
When that's done, I transition into the last phase.

### 3. Phase: Release.
Now everyone can register and use the product.
I write a release announcement.
Exp: Turquoise Pink Yellow Poster 9v.
Tags: codepen, css, cssdoodle, color
Published: 2021-03-13 17:44:41

---
title: Exp: Turquoise Pink Yellow Poster 9v.
published: true
tags: codepen, css, cssdoodle, color
---



{% codepen https://codepen.io/sparklingman/pen/vYybamJ %}
Git to Use Proxy
Tags: devops, github, proxy, git
Published: 2021-03-13 17:42:54


Git is a most widely used open sourced modern version control system in the world. Git follows distributed architecture (DVCS). Using git inside proxy network is always challenging. Git config allows you quickly configure proxy in seconds.

Update Git proxy config using following command:-

```sh
$ git config --global http.proxy http://proxyUser:proxyPass@proxy.server.com:port

```

If you want to work in another place where no proxy is there then unset it.

```sh
git config --global --unset http.proxy

```

Apart from this git provide a way by which you can open global config file in your editor for update other config items. 

```
$ git config --global --edit
```


If you want to quickly configure you checkin username and email then -

```
$ git config --global user.name "Arun Singh"
$ git config --global user.email "dummy@email.com"

```

Ref: https://git-scm.com/docs/git-config
Good Help: https://gist.github.com/evantoli/f8c23a37eb3558ab8765
goodtimer - a setTimeout for humans (+ timer functionality)
Tags: showdev, javascript, npm
Published: 2021-03-13 17:09:22

![goodtimer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sclnvi5gz7ek4aee2051.png)

This was my first npm package I ever published (originally "t-minus"). I only started revisiting it 4 years later and did some serious rewriting with the goal of making it very developer friendly.

I never felt setTimeout/setInterval alone made for more sophisticated timers. I hope this makes it easier


Thanks for checking out [goodtimer](https://github.com/nickpalenchar/goodtimer)!
Don't forget to register for the Spring 2021 Chainlink Virtual Hackathon with $125k+ in prizes 🎉
Published: 2021-03-13 16:49:38

Hi friends,

We're very excited to hosting a virtual Hackathon starting this Monday, and we'd like to extend an invite to this group. It will be an awesome opportunity to build any DeFi, NFT, Gaming, or smart contract-connected dApp that you've been thinking of.

**Join us from March 15th - April 11th:**

- Compete to win part of $125k+ in prizes
- DeFi, gaming, sponsor, and more categories
- Every participant that submits a valid project earns 1 LINK
- Learn how to use the most widely adopted blockchain oracles
- Workshops with developers from the top projects in crypto
- Be seen by blockchain industry recruiters

There are many way to participate whether you are an experienced blockchain developer or just looking to learn more and grow your skills. We hope you'll join us here:


Sign up here: http://chn.lk/38wHmKj
My Singing Monsters  apk
Tags: android, gamedev, ios
Published: 2021-03-13 16:44:25

My Singing Monsters - is a fun music simulator. With the initiative of the Monster Orchestra with a weird style from Big Blue Bubble Studio for Android, which has been downloaded in excess of 50 million times by Android clients around the planet and has accomplished a phenomenal score of 4.6 out of 5.0. Do it without anyone's help. The game is in Google Play in the classification of the executives and reenactment games; The game beginnings from a calm island and your undertaking is to remove the quietness from the island! The game's down-to-earth guide will help you track down the primary monsters of the vocalist, however you need to discover the remainder of your ensemble individuals yourself! 

Welcome to My Singing Monsters! Breed them, feed them, hear them out sing! 

Raise a monster pet, at that point feed your melodic monster to help them develop. Deal with an assortment of fun monster characters in this free melodic game for the entire family! 

Make an island loaded with Singing Monsters, at that point watch your tune advance as you breed and overhaul upbeat monster pets. Plan and assemble exceptional designs to make your reality look simply the manner in which you need, at that point share your creation with companions! You'll adore investigating the awesome dream place that is known for the Monster World! 

Download My Singing Monsters today — Happy Monstering!

Click this link to use it!

https://apkwill.com/2021/01/12/my-singing-monsters-mod-apk
Python auto refresh cache
Tags: python, threading, cache
Published: 2021-03-13 16:44:06

Their are many blog posts that illustrate caching in Python.
But I could not find any that illustrates my simple idea.
I was searching for a module or post about how to keep my cache updated every time i request the same key
I wanted a threaded cache that answer my request immediately but after that refresh the value so my data will be always fresh.
I know you can achieve this with setting a small TTL value but my intention is to get current data on cache and before the next request the cache will be refreshed in a separate thread.
I get this done by combining caching with multi-threading features of Python.

Enough talking, Let's do coding

```python
import functools
import random
import threading
import time
from threading import Thread
from typing import Match

my_cache = {}


def cach_it(_func=None, *, as_daemon=False):

    def decorator_cache_it(func):

        @functools.wraps(func)
        def wrapper_cach_it(*args, **kwargs):
            key = (func.__name__, args, hash(tuple(sorted(kwargs))))
            if key in my_cache:
                result = my_cache[key]

                def threaded_func():
                    my_cache[key] = func(*args, **kwargs)

                t = threading.Thread(target=threaded_func, daemon=as_daemon)
                t.start()

            else:
                result = func(*args, **kwargs)
                my_cache[key] = result
            return result
        return wrapper_cach_it

    if _func is None:
        return decorator_cache_it
    else:
        return decorator_cache_it(_func)


@cach_it(as_daemon=True)
def sample_func(a, b):
    time.sleep(2)
    return (a + b) * random.random()


if __name__ == "__main__":
    for i in range(10):
        print(sample_func(5, 5))

        time.sleep(1)
```
and the output
```
9.57128226715124
9.57128226715124
9.57128226715124
2.886742714779955
3.8942583934686836
6.492309167842186
6.492309167842186
0.3771087685702834
6.994070882085098
9.45145128039504
```
The idea is simple.
I am using the simple Python dictionary caching method for simplicity.
if the key is not found in the dictionary go and execute the function after that cache the result on the dictionary
if the key already exists then return the result from the dictionary and update the dictionary in a background thread so the next time I will get a fresh data.

From output you can notice that same result returned until the cache get updated from the thread.

sleep functions are used to simulate operations that take time.

I hope you can use this method for a better caching on your projects.

Your feedback is highly appreciated .
Simplest Python Random Password - with only 6 lines of code
Tags: python
Published: 2021-03-13 16:00:26

The most simple way to generate a random password in Python.

1. import string
2. import random
3. with string create possible charachters 
4. with random generate a random number
5. create password
6. print password to the console


```python
import string
import random

password_chars = string.ascii_letters + string.digits + string.punctuation
length = random.randint(12, 15)

password = "".join([random.choice(password_chars) for _ in range(length)])

print(password)
```





Or a single line password generator below:

```python
import string
import random

print("".join([random.choice(string.ascii_letters + string.digits + string.punctuation) for _ in range(random.randint(12, 15))]))
```
Meetup Announcement - Edition 03
Tags: haskell, gitlab, devops, codenewbie
Published: 2021-03-13 15:53:28

<i>Hey there Learning enthusiasts!</i>
 
<i>Looking for a fresh start in Functional Programming in Haskell?
Don't worry! We have got you covered!</i>

Gitlab Community Coimbatore is excited to host our upcoming meetup on **27th March, 2021**.

All eyes here! This event is going to be a "Podcast" in conversation with **'Mr. TamizhVendan S'**, Principal Software Engineer at Ajira Tech.

<h2>About the speaker:</h2>

TamizhVendan, a functional programming enthusiast and a Full-Stack solution provider has authored "F# Applied & F# Applied II", a practical guides for web development.

He's also a the founder and head coach of an E-Learning portal called Learn CS in Tamil focused on coaching young coding blood in Software development and Computer Science.

Tamizh is also a Freelance IT trainer for F#, Clojure & Haskell since more than a decade now. Apart from his passion for coding, he's also an active blogger who's concepts are very much attention seeking to the beginners.

Link of the blog: https://www.demystifyfp.com

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

<u><i>Topic of discussion:</i></u> <b>Functional Programming - Haskell for beginners</b>

<u><i>Date:</i></u> <b>27th March, 2021.</b> 

Click <a href="https://www.meetup.com/GitLab-Meetup-Coimbatore/events/276908747/">here</a> and enroll yourself for the event!

We are enthusiastically looking forward to have him with us for the event.
We would like to extent a warm welcome to you all for the event. Set up a firm base, brainstorm and traverse through the basics of Haskell.

Cheers to all our attendees and hoping to see you all on D-Day!

<i>Reminder: all attendees are expected to adhere to the GitLab Code of Conduct.</i>

<center><div><table class="bottomBorder"><tr><td><a href="https://gitlabcbe.substack.com/">![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/hplp6opfpywirwur2vmz.png "Official Website")</a></td><td><a href="https://twitter.com/GitlabC">![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/00qhd8v9ma2t2l2xv4xh.png "Twitter")</a></td><td><a href="https://www.meetup.com/GitLab-Meetup-Coimbatore/">![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/aqq6pi897bk687d3kwwa.png "Meetup Community")</a></td><td><a href="https://www.linkedin.com/groups/8955040/">![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/8u4886rik46g1bvvrx8d.png "LinkedIn")</a></td></tr></table></div><center>![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/btpzfoja85ps8d28nx7c.png)
Strings in C++
Tags: cpp, strings
Published: 2021-03-13 15:44:48

Youkoso!

#### Here's Traditional Way (C Language)
 - We use _null-terminated (`\0`) character array_, although it is not technically a data type.
 - So, Operators cannot be applied to them, like assignment and comparison operators `=, <, >, <=, >=`.

```
// Declaration of character array
char s1[10], s2[10];
s1[10] = "Doge";
```
![s1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s0c1rardwthip8zkxs54.png)

```
// Error Full Code (Don't use at home/work)
s2 = s1;
s2 > s1;
s3 = s1 + s2;
```
This code results in invalid array operations.

## Strings in C++
 - The `string` class is a expertise class of a more general template called `basic_string`.
 - Since defining a class in C++ is creating a new data type, string is derived data type.
 - This means operators can be overloaded for this class.

![Strings](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/efzcbao3d9cmc36wb73h.png)

##### syntax
```
class string{
   // Variables
   // functions
   // operators
}

string s1;
s1.function();
s1.operator(arguments);
```

string operations are safe but time consuming. So, 'char array' (speedy, less operations) concept is **not** deprecated.

`if (speed matters)` {
 Use `character array`
}`else if (safety and easy manipulation matters)` {
 Use `string` class
}

Here's why `string` is safer than character array

 - Careful programmers like you, can overrun to the end of 
an array that holds a null terminated (null character `\0`) string.
 - for example - *see below*
 - string class handles such issues.

```
char s3[10];
strcpy(s3,"Hello careful programmers.");
```
![s3](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1733oy61mimje3naf4ft.png)

#### String is also in STL (but concept of string is thought apart from STL concepts)
 - string is an another container class.
 - To use string class, we have to include string header class. (**not** string.h)

  - `#include<string>` (for string header class)
  - `#include<string.h>` (in C, for string functions applied on character array)

##### String class supports many constructors as follows.
 - `string()`
 - `string(const char *str)`
 - `string(const string &str)`

###### Operators
 - `=` (assignment)
 - `+` (concatenation)
 - `+=` (concatenation assignment)
 - `==` (equality)
 - `!=` (inequality)
 - `<` (less than)
 - `<=` (less than equal to)
 - `>` (greater than)
 - `>=` (greater than equal to)
 - `[]` (subscripting)
 - `<<` (insertion)
 - `>>` (extraction)

###### Mixed Operations
 - We can mix string objects with another string object or C style string.
 - C++ string can also be concatenated with character const.

###### Useful methods
 - `assign()`
 - `append()`
 - `insert()`
 - `replace()`
 - `erase()`
 - `find()`
 - `rfind()`
 - `compare()`
 - `c_str()`
 - `size()`

###### Visit : 
 - [strings.cpp](https://github.com/abhishekchandra2522k/CPPrograms/blob/master/strings.cpp)
 - [Templates in C++](https://abhishekchandra.hashnode.dev/templates-in-cpp)

ittekimasu! :)
Finally...🙌
Tags: react, webdev, productivity, javascript
Published: 2021-03-13 15:37:46

After a month and 63 commits here it is, finally...
# The React Color App
I have been learning *React* for about 2 months now and this is the main project of the course I have been following along.
[Demo](https://the-color-app.netlify.app/)
[Repo](https://github.com/sanchitbhasin/The-Color-App)

Do check it out and would love to hear it from you about it 😀😀
My javascript / tech / web development newsletter for 2021-03-13 is out!
Tags: javascript, tech, webdev, discuss
Published: 2021-03-13 15:28:40

---
title: My javascript / tech / web development newsletter for 2021-03-13 is out!
published: true
description: A roundup of all the best javascript, tech and web development links posted to my linkblog in the past week
tags: javascript, tech, webdev, discuss
---
In this week’s edition:

OrbitDB, NFTs, curation, Coinbase, Torvalds, EdgeOnXbox, Google FLoC, Perl debugger, Github, K8s, BYO infra, SSGs, OVH fire, TC39, Twitter Spaces, NetApps, stackless sites, NodeJS scripting, Etherium

https://markjgsmith.substack.com/p/mark-smiths-newsletter-13-03-2021

Would love to hear any comments and feedback you have.

[@markjgsmith](https://twitter.com/markjgsmith)
I created a new node js library called wertik-js, need support
Tags: graphql, node, javascript, backend
Published: 2021-03-13 15:27:22

I created an npm library called wertik-js which can be used to create backend APIs with GraphQL and Rest API, supports Sockets, Backups, Mail, and Cron jobs. 

Here it Is https://github.com/Uconnect-Technologies/wertik-js, but in development right now, Working hard to publish a stable version. 

please devs show some love by fork or stare, I will consider it as a contribution.

Repo: https://github.com/Uconnect-Technologies/wertik-js.
My thought process around System Integration
Tags: integrations, engineering
Published: 2021-03-13 15:20:14

<figure>
  ![Pipes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u2m2bh88x1wmfpp45gnz.jpg)
  <figcaption>Photo by Samuel Sianipar on Unsplash</figcaption>
</figure>

# Summary
Integrations happen more often than not, and reasons range from choosing the best system that fits the purpose, company growth or simply because you have a legacy system to take care of.

# Initial Assessment
I usually start by understanding what data is missing and what reasons make us believe that we need such data.

This helps me to understand the criticality of this data, and many times to re-think if we need that data as part of MVP (Minimum Viable Product) for the next iteration.

Then if the data remains important, I start to think about:
* Volumes
* When Data is Needed?
* Tools Assessment
* Which Team(s) are Involved and Will be Responsible For.

# Volumes
## How much data in total?
Helps me understand if the target system can store the whole data set. If it doesn’t then better to think of different alternatives (such as data virtualization) and avoid data replication techniques.

## How many records change daily?
Makes me think about the direction of integration because if there are way too many changes, it might be better to have a realtime call, otherwise, on the other end, a daily or weekly batch should handle it.

## What is the availability of the source system?
Helps me understand if the source system is capable of receiving the expected amount of requests. Because many times in legacy systems, that is not possible and alternatives like caching are required.

## When Data is Needed?
What is the point in the process that this data is required?
Helps me figure out what is the lead time between the data creation or update and its usage as input.

## What are the risks of outdated data?
That is important to balance the importance of updates because many times we can use slightly outdated data without disruption.

## What are the risks of not having data?
It helps me understand if the data is a critical input for the process or useful. That also helps me understand if it can degrade gracefully.

## What are the risks of this system being unavailable? Should we work-around that?
Trust me, the system will become unavailable at some point (downtime, latencies, and so on). So, is important to plan for that, and work around capacity planning and/or introducing techniques such as caching.

# So what?
In this first part, I’ve covered volumes and when the data is needed. In the next part, I will cover the assessment of tools and teams.
Monitor the nextjs application and serverless API deployed in vercel platform
Tags: nextjs, vercel, serverless, monitoring
Published: 2021-03-13 15:17:54

We use vercel platform to deploy nextjs application and serverless API. vercel simplifies lot of stuff but monitoring the performance, http errors and exception not so easy. 

Every time something goes wrong in SSR part or Serverless API, need to go to deployment function logs tab to view exception logs and stack trace in vercel.

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

So we have built monitoring solution https://nextapm.dev and npm module to monitor the performance and errors in the application and that can viewed in the common dashboard. 

https://www.npmjs.com/package/nextapm

This module will capture response time, request count, http errors and exception of incoming web requests. These metrics will reflect in real time in the dashboard. 

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

You can create similar monitor in https://nextapm.dev from your account. Monitor can be configured with in a minute.

Currently working on to include more features like alerting, reporting, etc. Please try and give your feedbacks.
Laravel Check, In Controller If The User Has Liked It
Tags: laravel
Published: 2021-03-13 15:04:37

Laravel function to check if the user has already added(liked, followed...) the post.

If he did, then remove otherwise add it.

Here suppose post like and it is a pivot table. First, you check if the user has already liked the post and then the action will depend on it. If they liked, the same link will remove it otherwise it will add it to the database.
[Check If The User Has Liked The Post In Laravel Controller](https://codeweb.wall-spot.com/check-if-the-user-has-liked-the-post-in-laravel-controller/)

```
public function saveLike(Request $request)
    {
        $likecheck = Like::where(['user_id'=>Auth::id(),'thread_id'=>$request->id])->first();
        if($likecheck){
            Like::where(['user_id'=>Auth::id(),'thread_id'=>$request->id])->delete();
            return 'delete';
        }
        else{
            $like = new Like;
            $like->user_id = Auth::id();
            $like->thread_id = $request->id;
            $like->save();
        }
    }
```
Exp: Turquoise Pink Yellow Poster 3v.
Tags: codepen, css, cssdoodle, codepenchallenge
Published: 2021-03-13 14:49:18

---
title: Exp: Turquoise Pink Yellow Poster 3v.
published: true
tags: codepen, css, cssdoodle, codepenchallenge
---

![Exp: Turquoise Pink Yellow Poster 3v.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9pxgbdhlsnnzo7gfzmwr.png)


{% codepen https://codepen.io/sparklingman/pen/poNQrJP %}
Vue-test-utils best practices for DOM finding & Events
Tags: vue, javascript, testing, node
Published: 2021-03-13 14:30:02

When writing unit test, is helpful to imagine how the actual end user is gonna interact with our component and then we can design the test to replicate that behaviour.

How do we find DOM elements for testing our component?, here are some of the best practices from [VueMastery](https://www.vuemastery.com) when finding it.

Imagine that we use an Id or Class attribute to find a DOM element, but then down the road a designer or developer changes the id or the class of that element, so there’s a better, more future proof way to find elements.

A solution looks like this, for example with a button

In our component
```ts
<button data-test-id=”name-button” … ></button>
```

Give our element a test specific, ID. Now in order to find that we’ll use this.

In our spec file
```ts
const button = wrapper.find(‘[data-test-id=”name-button”]’)
```

Setting things up this way helps us to decouple the test from the implementation details of that component.

Now we don’t need to worry about refactoring our test, just because a designer changes some class name around.
This is a recommended practice for production level tests.

Ok, but what about trigger events?. Again good practices from VueMastery, is by using this.

```ts
wrapper.trigger(‘submit’)
```
Writing in this way allow us to decouple the test from the implementation component’s detail. Again future-proofing our test.