teleren/devto huggingface dataset:
Last day of January brought us our 1st paying customer🥇
Tags: saas, startup, analytics
Published: 2022-02-02 13:55:28

**Just so you know what type of business I'm writing about - it's a SaaS.**

On the last day of January we got our 1st paying customer and they already purchased an annual subscription. A day later they requested an additional data connection for which we charged them extra as it was more than what was in their current plan. They agreed without any negotiations.

This one customer required and still requires a lot of support. It seemed annoying at first but we soon realized it’s actually great. That’s because we get to improve our product (fixed few bugs and added new features). Having a customer that is willing to share so much feedback is something I wish for each of you.

Except from fixing the bugs, thanks to their requests we added Disputes and Disputes Ratio from Stripe. And we break them down by country which is something you don’t even have in Stripe’s dashboard.

We are also going to add MRR by the end of the week. It is also something that this customer requested. We wanted to add MRR earlier but prioritized other things. Now we have the motivation to do that.

**Here are some milestones that led us to this point**

![milestones that led us to our first paying customer with Raport](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/idwfabxc4yxjpv8c9fbx.png)


We're still far from reaching our first revenue goal but it's already something. If you're interested in what we're building, it's [Raport](https://raport.pro).
People Are Talking About Your Site

Tags: beginners, programming, webdev, react
Published: 2022-02-02 13:49:03

Hi,

Does your website look Dull, Tired or just plain Ugly?
Do your visitors think WOW! Or get me the HELL out of here?
Is your site Out of Date, Not Working, or Never Worked Properly?

Today we can fix it, and fix it good.
The solution is a brand new "Mighty Mini Website"
The Mighty Mini Website is a template based website package that
allows you to quickly and easily build a high quality website that
scream a top quality professional look.
It's provided with everything you need to setup a professional looking
website, all files, html, graphics, psds... and it also includes some 
awesome step by step videos showing you how to whip up a top site in minutes.

[Get Your New Website Now!](https://tinyurl.com/ms6r949w)


Kind Regards
Easy way to use Dark Mode with custom style in Next.js + Tailwind
Tags: javascript, nextjs, tailwindcss
Published: 2022-02-02 13:45:37

I was building my porfolio website in [Nextjs](https://nextjs.org/) using [Tailwind css](https://tailwindcss.com/). So I decided to implement a toggle between dark and light theme in my wesite. So I started googling it and end up with a blog post in [dev.to](https://dev.to/thomasledoux1/easy-way-to-use-dark-mode-in-next-js-tailwind-2ob1). This is an excellent blog post. By refering this post I was able to implement this feature in 2, 3 lines of code. 

But the doubt came to my mind was. How to use customised styles for dark and light themes using tailwindcss classes ?
I am a begginer to Nextjs and tailwindss, so it take me so many time to find a better solution. I coun't find any simple documentation. So I decided to write this blog post to share my solution.

Detailed article on how to implement toggled Dark and Light mode is given in [this](https://dev.to/thomasledoux1/easy-way-to-use-dark-mode-in-next-js-tailwind-2ob1) documentation.

So after implementing dark/light mode toggle. We can customize our website using **theme** as follows.

```javascript

<h1 
className={theme === "dark" ? 'text-blue-600': 'text-rose600'
}>
Example
</h1>

```

That's it!! its so easy to customize the theme in our Nextjs website. 

You can find me on [github](https://github.com/neerajram30)
Nix Versions By Commit Count
Tags: catalytic
Published: 2022-02-02 13:44:23

---
canonical_url: https://waylonwalker.com/til/nixery-versions-by-commit-count/
published: true
tags:
- catalytic
series: til
title: Nix Versions By Commit Count
---

I was listening to [shipit37](https://changelog.com/shipit/37) with Vincent Ambo talking about building fully declaritive systems with nix.  Vincent is building out Nixery and strongly believes that standard versioning systems are flawed.  If we have good ci setup, and every commit is a good commit the idea of a release is just some arbitrary point in history that the maintainer decided was a good time to release, and has less to do about features and quality.

Since many things still want to see a version number, there is one automatic always increasing number that is a part of every single git repo, and that is the commit count.  Nixery is versioned by commit count.  When counting on the main branch there is no way for two points in time to share the same version. The git cli will count all commits by default so you have to be careful to only include commits from the branch you want to version/release from.

``` bash
git rev-list main --count
```
SopLoader :- Free Preloaders for Website or Blogger ⌛
Tags: javascript, programming, tutorial, sopproducts
Published: 2022-02-02 13:09:15


## Add Preloaders to Your Website or Blogger Using SopLoader


> SopLoader :- https://soploader.sh20raj.repl.co/

---

{% youtube 9l4VMsOZec4 %}

Just Visit SopLoader :- https://soploader.sh20raj.repl.co/ and get an easy to integrate preloader for your website
Array Destructuring
Tags: javascript, react, beginners, webdev
Published: 2022-02-02 12:53:13

Every Front end developer, sooner or later, will have to deal with arrays and objects.

Extrapolating data from an array may require several lines of code, but with the new es6 destructuring features, we can achieve the same goal with fewer lines of code.

In this article, I am going to teach you about Array Destructuring.

**_DESTRUCTURING IS A TOPIC YOU MUST KNOW IF YOU WANT TO BECOME A REACT DEVELOPER_**

To extract values from an array and push them into a variable,  you would proceed like this.

```
const dogs = [‘Oliver’,’Winston’,’Carl’]

const first = dogs[0]
const second = dogs[1]
const third = dogs[2]

console.log( first, second, third ) 
Output: Oliver, Winston, Carl
```
Everything works fine, but It can require many lines of code.

Now, Let’s see the process with the destructuring features.

```
const dogs = ['oliver', 'winnie', 'carl'];
const [first,second,third ] = dogs;

console.log(first,second,third)
Output: Oliver Winnie Carl
```
Inside the square brackets, we declare the variables followed by an equal sign and the name of the array we want to destruct.

Each variable should match with the index of the element inside the array.


![Array Destructuring](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7q8ypqcvh6g00jwdruk6.png)

**HOW TO SKIP ITEMS**

What if you would like to output only the fourth array element?
You only have to use the comma, one comma skips one item in the array.

```
const numbers = [1,2,3,4]

const [, , ,num] = numbers

console.log(num)

Output : 4
```
**DESTRUCTURING AND THE SPREAD OPERATOR**

If we want to get the rest of the elements from the initial array, we can use the … rest operator, another powerful ES6 feature.

```
const numbers = [1,2,3,4,5,6,7,8,9,10]

const [first,second,…rest] = numbers

console.log(first) Output: 1
console.log(second) Output: 2
console.log(rest)    Output: [3,4,5,6,7,8,9,10]
```

**DEFAULT VALUES**

With Destructuring, we can use default values.
If a variable has no value or is undefined, we can use the equal sign to provide a fallback value.

```
const dogs = ['dave','carl',undefined,'winston']

const [first,second,third='oliver',fourth] = dogs

console.log(first)
console.log(second) 
console.log(third)  
console.log(fourth) 

Output: dave, carl,oliver,winston
```

```
const numbers = [1,2,3]

const [a,b,c,d = 4] = numbers

console.log(a,b,c,d)

Output: 1 , 2 , 3 , 4
```
You will use this feature often if your goal is to become a react developer.
Best Way to Develop Android App
Published: 2022-02-02 12:49:20

Android application development has been seeing a huge demand as evident from the number of yearly android apps being launched on the play store. As the demand is increasing more and more businesses and entrepreneurs are looking to find the best and most cost-effective ways to develop an android app. 

**Now, there are three ways to hire dedicated Android app developers for your app development.**
1. Hire Professional Agency 
2. Hire Dedicated Android Developer 
3. Hire Freelancers

In my opinion, the best cost-effective way to develop an android app is to hire a dedicated android from an experienced and trusted app development company, as it offers greater control over the development cycle. 

**Benefits:**
- It eliminates the need for any specialist developer in difficult times. 
- Timely project delivery without any glitches. 
- Such companies usually work on a contract basis. It removes the headache to pay on a monthly basis. 
- Also, outsourcing a developer from such companies benefits in keeping the project ideas secured as an NDA agreement entails them not to disclose the project details to anyone except from the dedicated team working on it. 

Based on my past experience in hiring a dedicated android developer I would like to suggest you consider **WebClues Infotech** as they have a huge pool of talented expert developers working with them.  

I hope the post offers the right solution to your android app development requirements.
Jenkins GitHub Integration | Jenkins Tutorial | Part IV

Tags: javascript, beginners, jenkins, tutorial
Published: 2022-02-02 12:31:41

{% youtube jSm0YZ-NQAc %}

This video is a part of our Jenkins Tutorial series. In this video Moss(@tech_with_moss), explains how you can create a Jenkins job for a Maven project, through Jenkins and Maven integration. The video also walks through the steps to do so, Jenkins build triggers, Jenkins test reports, and other details in the process.

By the end of this video, you will learn -: 
🔸 How to create a local Maven project in Jenkins?
🔸 How do I set test results in Jenkins?
🔸 How do I run a Jenkins performance test?
🔸 How do I integrate Jenkins webhook with Github?
User is not in the sudoers file after Monterey upgrade
Tags: monterey, sudoers, linux, sudo
Published: 2022-02-02 12:21:46

---
title: User is not in the sudoers file after Monterey upgrade
published: true
description: Solve the user is not in the sudoers file after Monterey upgrade issue
tags: monterey, sudoers, linux, sudo
//cover_image: https://direct_url_to_image.jpg
---
After MacOS Monterey upgrade I got this error while trying to run any command with sudo:

```bash
❯ sudo apachectl -k restart
Password:
rezende79 is not in the sudoers file. This incident will be reported.
```

While it wasn't possible to run `sudo visudo` to edit the sudoers file properly, I created a `/tmp/sudoers` file with the following content:

```bash
# sudoers file.

#
# This file MUST be edited with the 'visudo' command as root.
# Failure to use 'visudo' may result in syntax or file permission errors
# that prevent sudo from running.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification
Defaults    env_reset
Defaults    env_keep += "BLOCKSIZE"
Defaults    env_keep += "COLORFGBG COLORTERM"
Defaults    env_keep += "__CF_USER_TEXT_ENCODING"
Defaults    env_keep += "CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE"
Defaults    env_keep += "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME"
Defaults    env_keep += "LINES COLUMNS"
Defaults    env_keep += "LSCOLORS"
Defaults    env_keep += "SSH_AUTH_SOCK"
Defaults    env_keep += "TZ"
Defaults    env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY"
Defaults    env_keep += "EDITOR VISUAL"

# Runas alias specification

# User privilege specification
root    ALL=(ALL) ALL
rezende79    ALL=(ALL) ALL
%admin  ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands
%wheel    ALL=(ALL) ALL
%admin    ALL=(ALL) ALL

# Same thing without a password
# %wheel    ALL=(ALL) NOPASSWD: ALL

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
ALL ALL=(ALL)     NOPASSWD:/opt/dplat/bin/Revision/CMUpdatePackage/Installer.app/Contents/MacOS/Installer
ALL ALL=(ALL)     NOPASSWD:/opt/dplat/bin/UpdatePackageInstaller.app/Contents/MacOS/UpdatePackageInstaller
```
Please note that the user `rezende79` had already belonged to `admin` group and the user was inserted inside the file above.

After this, you only need to run the following command at your terminal to copy the content from `/tmp` to `/etc` folder:

```bash
osascript -e 'do shell script "cat /tmp/sudoers > /etc/sudoers; chown root:wheel /etc/sudoers" with administrator privileges'
```

This post is based on the following solution:
[I accidentally deleted the sudoers file on Mac OS X](https://unix.stackexchange.com/questions/37764/i-accidentally-deleted-the-sudoers-file-on-mac-os-x-is-there-any-way-to-recover)
$2 million Ecosystem Development Fund to Build the Future of Blockchain
Published: 2022-02-02 11:02:13

We’re delighted to announce the launch of our new $2 million Ecosystem Development Assistance Plan to support the next generation of blockbuster applications on blockchain. The $2 million prize pool will be used to unearth talent in the growing OneLedger ecosystem and provide the resources necessary to bring unique ideas to fruition.

Developers interested in participating in the program will benefit from the distinguishing properties of the OneLedger network as a fertile ground for experimentation. With fast transaction speeds, low transaction costs, and interoperability across popular networks including Ethereum, Binance Smart Chain, and Polygon, developers will find the ideal environment to build their products and engage users.

With the ecosystem now at 2.0 level development we intend to actively expand its functionality starting with the ecological bottom layer (cross-chain bridge, lending, trading, stable coins, liquidity mining, staking pools), and then actively transform to undertake higher-dimensional ecological construction. This next chapter in the OLT ecosystem will bring together chain games, NFT, and the Metaverse in the future to form new opportunities. 

Applicants can build or port existing DApps on the OneLedger 2.0 platform and utilize   the following advantages:

Low gas fees (almost zero as opposed to tens of dollars on Ethereum)
Fast transactions (seconds as opposed to a few minutes on Ethereum)
Complete compatibility with Ethereum (EVM/OLVM) - if you are already on Ethereum you can port to OneLedger for all the above advantages at no cost and in no time
Create your own token (tokenize)
Attract investors that are forming DAOs on the OneLedger platform
Participate in Builder Mining Rewards program
Fully integrate your DApp into the Web3 platform
Syndicated Bridge for multichain framework connectivity 
All Decentralized.


For more information on how you can apply, visit

https://www.oneledger.io/bounty-entry-form/
Ajax Fetch
Tags: ajax, javascript
Published: 2022-02-02 11:42:20


```javascript
var $ajaxResponse = null; // глобальная переменная
const ConstructorAjax = function(url, method, async = true, data = []) {
	$ajaxResponse = null;
	let body = {};
	body.url = url;
	body.async = async;
	body.type = method;
	body.dataType = "json";
	if (method == 'POST' || method == 'PUT' || method == 'PATCH' || method == 'DELETE') {
		body.data = data;
	}
	body.success = function(response) {
		console.log(response);
		$ajaxResponse = response;
		return response;
	}
	body.error = function(xhr, ajaxOptions, thrownError) {
		console.log(xhr);
		console.log(ajaxOptions);
		console.log(thrownError);
	}
	console.log(body);
	return $.ajax(body);
}
```
Part 1: Create a new project on GitHub and clone it to your computer
Tags: vue, showdev, javascript, tutorial
Published: 2022-02-02 10:49:24

---
series: "Lightning fast build VueJS 3 project and deploy it free of charge to GitHub pages"
---

## Table Of Contents
* [Step 1: Login to your GitHub account](#chapter-1)
* [Step 2: Give a name of your new Github repository](#chapter-2)
* [Step 3: Copy URL of your project](#chapter-3)
* [Step 4: Clone GitHub repository to your computer](#chapter-4)
* [Step 5: Open a project with code editor](#chapter-5)
* [Summary](#chapter-6)

<a name="chapter-1"></a>
### Step 1: Login to your GitHub account
[Login to your GitHub account](https://github.com) and create a new GitHub repository: 

![Create new GitHub repo button](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gs98ld25ojomym1mx5lb.png)

<a name="chapter-2"></a>
### Step 2: Give a name of your new Github repository

Give a meaningful name to your new GitHub repo and configure other settings: 

![Create new GitHub repo settings](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ucz7vspgk0wqhd9o6nnm.png)

<a name="chapter-3"></a>
### Step 3: Copy URL of your project
After the hit of the button `Create repository` you will be redirected to the new window.
Copy URL address of the project:


![Git clone repository](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nl3rbooz7l8fnsm68b5e.png)


<a name="chapter-4"></a>
### Step 4: Clone GitHub repository to your computer

Open a `terminal` on your computer. Navigate to the folder you would like your project to live. Type following command in your `terminal` and hit `enter`:

```
git clone paste-a-code-you-copied-in-Step-3
```
My command looks like that:

```
git clone https://github.com/mindaugas-pro/list-with-products.git
```

<a name="chapter-5"></a>
### Step 5: Open a project with code editor
Your project is ready to be maintained on your computer.
Open a project with your preferred code editor. In my case it is Visual Studio Code. 
To open a project with Visual Studio code execute following commands in `terminal`:

```
cd list-with-products 
```

```
code . 
```

<a name="chapter-6"></a>
### Summary
Congrats! You new project is ready to be maintained on your computer and to be stored in the remote repository on GitHub.
A real CarPlay Simulator: take off guide
Tags: carplay, ios, xcode, swift
Published: 2022-02-02 11:40:06

Working with CarPlay might be though for various reasons and the recent upgrade to M1 chips only added more problems to the matter. Having to integrate third party libraries within your project that are not build for M1, having to run Xcode on Rosetta and having to support CarPlay is a difficult challenge for every developer nowadays.

Luckily Apple has recently released a standalone CarPlay simulator as a separate app that can natively run on your Mac. Let's see how to set it up and how it works.

## Download and Install
At the time of writing, the only way to download the app is through the [Apple Developer Portal](https://developer.apple.com/download/all/?q=xcode). Download the _Additional Tools for Xcode 13.2_, then open the image file and go under the _Hardware_ folder. Move the _CarPlay simulator_ app to your Application directory.

## Configuration
There is no official guide on how to configure your iPhone to be ready for the simulator. The only thing you have to make sure of is to turn off your hotspot on your device (if on). When this step is done, connect your device to your Mac and open the simulator. On your iPhone you should see a message from the simulator requiring permissions. Grant them and it will load the CarPlay interface. On the simulator menu, under _Devices_, you should see your device name with a green icon.

## Notes
You can use this simulator for development purposes. When you run an app on debug mode and open the app on the simulator, all your print statements and breakpoints will be triggered.
Day 88 of 100 Days of Code & Scrum: Terms of Use and Privacy Policy, Joining Tables in SQL, and Next.js Deployment
Tags: javascript, 100daysofcode, beginners, webdev
Published: 2022-02-02 11:39:16

Good day, everyone!

Today was a fairly productive day, I've done multiple things such as coding and deploying the [Terms of Use](https://www.rammina.com/terms-of-use) and [Privacy Policy](https://www.rammina.com/privacy-policy) pages for my business site, learned how to use JOIN in SQL, and learned about Next.js' various deployment settings.

Anyway, let's move on to my daily report!

## Yesterday

I learned about using `react-markdown` npm package to render markdown as JSX safely and `graymatter` to add metadata to markdown files.

## Today

### Company Website

- I coded and deployed the [Terms of Use](https://www.rammina.com/terms-of-use) and [Privacy Policy](https://www.rammina.com/privacy-policy) pages for my company site.
- got rid of a styling bug in the Footer links.

### Next.js

- learned about various deployment settings:
  - how to use the `next.config.js` file.
  - the difference between `next build` (standard build which includes Node.js server) and `next export` (full static build that only has pre-generated HTML/CSS/JS).
- continued going through [Next.js & React by Maximilian Schwarzmüller](https://www.udemy.com/course/nextjs-react-the-complete-guide/).

### SQL

- learned how to use JOIN to merge two different tables' contents.
- continued to go through [SQLZoo's SQL Tutorial](https://sqlzoo.net/wiki/SQL_Tutorial).

### Scrum

- I couldn't do much related to Scrum for today.

Thank you for reading! Have a good day!

![Rammina Thank You Banner](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x9ayfxxxaz2g2hfcqbsk.png)

## Resources/Recommended Readings

- [Next.js & React by Maximilian Schwarzmüller](https://www.udemy.com/course/nextjs-react-the-complete-guide/)
- [Next.js official documentation](https://nextjs.org/docs/getting-started)
- [SQLZoo's SQL Tutorial](https://sqlzoo.net/wiki/SQL_Tutorial)
- [The 2020 Scrum Guide](https://scrumguides.org/scrum-guide.html)

## DISCLAIMER

**This is not a guide**, it is just me sharing my experiences and learnings. This post only expresses my thoughts and opinions (based on my limited knowledge) and is in no way a substitute for actual references. If I ever make a mistake or if you disagree, I would appreciate corrections in the comments!

<hr />

## Other Media

Feel free to reach out to me in other media!

<span><a target="_blank" href="https://www.rammina.com"><img src="https://res.cloudinary.com/rammina/image/upload/v1638444046/rammina-button-128_x9ginu.png" alt="Rammina Logo" width="128" height="50"/></a></span>

<span><a target="_blank" href="https://twitter.com/RamminaR"><img src="https://res.cloudinary.com/rammina/image/upload/v1636792959/twitter-logo_laoyfu_pdbagm.png" alt="Twitter logo" width="128" height="50"/></a></span>

<span><a target="_blank" href="https://github.com/Rammina"><img src="https://res.cloudinary.com/rammina/image/upload/v1636795051/GitHub-Emblem2_epcp8r.png" alt="Github logo" width="128" height="50"/></a></span>