teleren/devto huggingface dataset:
DAO engagement levels with numbers
Tags: dao, engagement, web3, community
Published: 2022-02-14 21:30:53

This tweet made my engineer brain wonder about the engagement numbers in DAOs:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dnu9xj9dtr8z5lqzcz1z.png) _https://twitter.com/brownrygg/status/1491455450088640514_

Then, a book I’m currently reading increased my wonder. The book is “Working in Public: The Making and Maintenance of Open Source Software” by Nadia Eghbal. She writes:

**“One study found that, in a sample of 275 popular GitHub projects across various programming languages, nearly half of all contributors only contributed once. These contributors accounted for less than 2% of total commits. [Another study found that in more than 85% of the open source projects on GitHub, less than 5% of developers were responsible for over 95% of code and social interactions.] The regular presence of hundreds or thousands of contributors making few substantial contributions, rather than a smaller group of developers making meaningful contributions, throws the idea of ‘contributor communities’ into question.”**
 
Then I started to research and found [this article](https://jisajournal.springeropen.com/articles/10.1186/s13174-021-00139-6). The writers dig into the numbers behind Aragon, DAOstack and DAOhaus – three of the most popular DAO platforms facilitating the creation of DAOs. I loved how they had both growth and activity numbers – exactly what I’ve been looking for. Below is a summary table based on their data sources: (Aragon was omitted due to the lack of a user creation timestamp in the Aragon API)

 ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g1i4xgx4yeb2r6h6xm1j.png)

_Note1: “Activity” means whether a DAO or a user was active in a given month if at least they performed an action in that month. The available actions to be performed depend on the platform, but generally take the form of creating a proposal, voting a proposal, or staking in a proposal._ 

_Note2: There is more fluctuation in DAOhaus activity (for instance, % active went up to 75% in October 2021; but in the overall picture, the rates are similar to this table._

So, here we are: There seems to be still a long way to go for DAOs to realize their promise. I am far from an expert on DAOs, but I believe they hold a potential to motivate their members to be active contributing ones if structured well. On the other hand, I am hesitant. At the end of the day, “people” like you and me form these organizations. 

I am wondering what you think, especially if you’re involved in DAOs. Please let me know!
Introduction to Modern JavaScript
Published: 2022-02-14 21:20:21

**_Let's look at what makes JavaScript unique, what we can accomplish with it, and what other technologies work well with it_**.

What is JavaScript, and how does it work?
JavaScript was invented to "bring web pages to life."

Scripts are the name for the programs written in this language. They can be written directly in the HTML of a web page and run when the page loaded.

Scripts are provided in plain text format and executed as such. They don't require any extra setup or compilation to execute.

In this regard, JavaScript differs significantly from the Java programming language.

**Why is it called JavaScript?**
When JavaScript was created, it initially had another name: “LiveScript”. But Java was very popular at that time, so it was decided that positioning a new language as a “younger brother” of Java would help.

But as it evolved, JavaScript became a fully independent language with its own specification called ECMAScript, and now it has no relation to Java at all.

**What distinguishes JavaScript from other scripting languages?**
JavaScript is great for at least three reasons:

HTML/CSS integration is complete.
Simple tasks are completed in a straightforward manner.
All major browsers support it, and it's turned on by default.
The only browser technology that combines all three features is JavaScript.

That is what distinguishes JavaScript from other scripting languages. As a result, it is the most widely used tool for designing browser interfaces.

JavaScript, on the other hand, can be used to develop servers, mobile applications, and other applications.

**Summary**
JavaScript was designed to be a browser-only language, but it is currently utilized in a variety of other settings.
JavaScript now holds the distinction of being the most extensively used browser language, completely integrated with HTML/CSS.
Many languages are "translated" into JavaScript and provide specific functionality. After mastering JavaScript, it is recommended that you take a look at them, at least briefly.
Python 101: Introduction to modern Python
Tags: beginners
Published: 2022-02-14 21:08:30

 Python is a very powerful language. It’s a general-purpose programming language used in; web development, creating software prototypes and data science.  Python is considered as an easy language because of its simple syntax; the scripts written are “human-friendly”, but it’s difficult to master. It requires one to work hard enough at it; through practice and patience.		
    **HOW TO LEARN PYTHON EASILY**.
As much as python is the friendliest language, it needs some good planning in order to learn and b a pro at it. These are the few tips that will make you the guru you’ve always wanted to be!
   **CONSISTENCY**
When starting a new goal in life, it doesn’t take an hour or a day to meet it. It takes thorough exercise, practice and great zeal. It takes commitment and great planning. Coding is fun and not fun at all depends on how you feel about it. Learn Python and have a great and a successful career. What you do is, study each and every day. Even if your schedule is so tight and you have no second to spare, please make sure you code at least half an hour each day. It pays off at the end of it all.
    **BEFRIEND YOUR PEN!!**
You have watched those tutorials, read those articles, blogs it’s time now to try and write down correct lines of code. It gives some undefined sense of confidence, and saves you during interviews. It is also one way of increasing the fun that comes with coding. When you can confidently write a code then be sure you can remember, and you can easily correct errors by looking at the code lines.
    **INTERACTIVE EXERCISE SO KEY**
You can read those codes, watch those tutorials but never forget the only day that your journey of being a pro will begin is when you sit down and type those code lines. It gets more fun when you make those mistakes, repeat the code correct them and at the end of it all a running code is in front of you.
    **PEER LEARNING**
We are always told that you learn more, and understand when you explain to others. While learning python on your own you and you can’t peer discuss, then try writing a blog or make a video explaining the newly learnt concept. You will understand that concept more. 

     **ASK PLEASE**
Answered questions are a natural way of learning. Programming is mostly learnt online and from peers. Always ask questions the right way so that you can get the right and appropriate answers.
       **HOW TO POLISH YOUR PYTHON BASICS**
Create your own practice projects! After you feel more confident with the basics of Python, start on your own projects. This will give you additional motivation, since you can select a topic that you’re excited about. Working on a project will give you a chance to apply your knowledge to real-world tasks. And it’s inspiring when you can do something useful with code. 
Finally, you are likely to encounter challenges when working on your project. This may mean dozens of tries before code starts working and quite a few questions asked on Stack Overflow. But it also means that you’ll learn lots of new things.
**LET’S DO THIS TECHBUDDIES!!!**
**HAPPY LEARNING!!!**
Need feedback on my first website. 
Tags: html, css, responsive
Published: 2022-02-14 21:07:43

Hi,

I am a self-learner and started learning website development - front end and back end(PHP) 3 months ago. Now, I created my first full website. Please give your valuable feedback on this so that I can become a Web Developer in the future.
Website is in the following link:

suemethods.000webhostapp.com

Thank You
I'm still here :)
Tags: webdev, beginners, codenewbie
Published: 2022-02-14 21:06:16

##So what have I been up too? 

I can't believe I started with the Odin Project at the end of October 2021. I'm still working on it btw haha. I got to JS and just needed a little more, guidance. Their discord community is top notch but I wanted a more "bootcamp" kind of feel without spending bootcamp money ha. I found this post on [Reddit](https://www.reddit.com/r/learnprogramming/comments/rlmulr/i_ran_a_100_free_full_stack_web_development/) and said, why not?! So I joined #100Devs. It's been really good. We're learning how to code and network all at once. The HTML/CSS have been really good practice to help what I'd learned with TOP and Colt Steele in my mind. I don't think I'll ever stop learning HTML/CSS lol. 

##Hiccups along the way? 
For me, CSS is the bane of my existence. How people make these mockups of an iPhone completely from HTML and CSS BLOWS MY MIND. I'm just over here using decade old attributes like float to make my little layouts. And then they don't always float like I want them! 

##Highlights? 
I found that when I help others in Discord, I gain a better understanding of the concept or they show me a better way to approach a problem. I can't make my code look like someone else's but while reviewing and reading their code I can find their specificity issue in their CSS cascade and pinpoint why they are having troubles! But look at my own CSS? I can't see a thing lol. 

Just happy to still be here and doing this. Still got a long way to go. One of these days, my post will be hey, check out my portfolio!
INTRODUCTION TO MODERN PYTHON
Published: 2022-02-14 20:54:05

**

> Wait, wait, wait... So, what is Python, exactly?
**
Python is a popular general-purpose high-level programming language. It has a reputation for being an elegant and simple to use language, with clean and easy to read source code and simple data structures (in comparison to more prominent languages like C, C++, and Java). This makes it great for newbies to programming and the ideal language for users who want to get a program up and running quickly but don't want to delve too far into the realms of software engineering. (For example, data scientists, script writers, and automation). Python is an interpreted language that supports a variety of programming paradigms. Python has achieved success in a variety of disciplines of computing as a result of all of this.

**Python: The best bits**
It's dynamically typed, for starters.
It's easier to work with dynamic languages. You do not need to specify the data types of variables in your application directly. Your source code will be more concise and less verbose as a result of this. You'll also write less code, which means you'll be more productive. You don't have to do any type casting, conversion, or coercion explicitly. (Some type conversions can result in precision loss, while others are simply impossible.)

2. It is multi-paradigm in nature.
Python gives you the freedom to write your program in almost any style you want. C, for example, is a procedural language. To finish your programming assignment, you split down the programming tasks into functions (procedures) and call those functions.
3. It comes with a large standard library.
The Python standard library is one of the largest in the world. It comes with pre-installed packages and modules for network I/O, file manipulation, data persistence, data compression, cryptography, concurrency, and other typical programming tasks. Furthermore, more specialized packages can be obtained (typically for free) from the internet using PIP, Python's user-friendly package management.

Python: The unfavorable aspects
1. It is inefficient.
In comparison to other prominent programming languages on the market today, it is safe to claim that Python is slower on average. This is to be expected for a variety of reasons. It is interpreted, which means that unlike compiled languages, it cannot be optimized for a certain CPU architecture.

2. It isn't the memory-friendly language.
It's not unusual for a Python variable to take up far more memory than it would ever be used during runtime. A programming language like Go, on the other hand, allows a programmer to specify how much memory a variable will take up. A programmer can explicitly indicate that an integer variable should consume 8 bits, 16 bits, 32 bits, and 64 bits of memory using constructs like int8, int16, int32, and int64. This level of control allows a programmer to create programs that are arguably more efficient.
This is also why, in my opinion, Python is not getting much headway in mobile computing and embedded devices.
Introduction to Modern JavaScript
Published: 2022-02-14 20:54:04

JavaScript is an object-oriented programming language that anables the dynamic behavior on most websites. Alongside HTML and CSS, it is a technology that makes the web run.

For example if you open any modern website you may interact with images and words that make the website user friendly which we call the user experience in general.

JavaScript uses functions and to create meaningful code together with HTML and CSS. 

A function is a group of reusable code which can be called anywhere in your program. This eliminates the need of writing the same code again and again. It helps programmers in writing modular codes. Functions allow a programmer to divide a big program into a number of small and manageable functions.
Like any other advanced programming language, JavaScript also supports all the features necessary to write modular code using functions. You must have seen functions like alert() and write() in the earlier chapters. We were using these functions again and
again, but they had been written in core JavaScript only once.
JavaScript allows us to write our own functions as well. This section explains how to write
your own functions in JavaScript.
For example:
An anonymous function is a function without a name. An anonymous function is often not accessible after its initial creation.
The following shows an anonymous function that displays a message:
let show = function () {
console.log('Anonymous function');
};
show();
Code language: JavaScript (JavaScript)
In this example, the anonymous function has no name between the function keyword and
parentheses ().
Because we need to call the anonymous function later, we assign the function to the show variable.

Before we use a function, we need to define it. The most common way to define a function in JavaScript is by using the function keyword, followed by a unique function name, a list of parameters (that might be empty), and a statement block surrounded by curly braces.
Splitting a monolithic Android Application
Published: 2022-02-12 09:17:54

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/561lnemv5qdg3ejer7gj.jpg)


Splitting a  monolithic application code base into modules is not a new theme.In most cases,a single module will do the job but as the application becomes bigger,we   may need to put things into modules and link them up accordingly.Modularization really provides a neat way to split responsibility  amongst the different modules.Now let's jump in and see how we can achieve this.

**Application Module**
  We will start here because this is the default module android studio creates when you start a new project
This is essentially the main module of your application and will often be under the app module, using the application plugin in the modules build.gradle file to signify this:

```
apply plugin: 'com.android.application'
```
Now if you’re building a single module application then this will be the only module-type plugin that you will be using throughout your project. In single module projects, this base module will contain all of your applications responsibilities — be in User Interface, Networking, Cache, Data operations — you name it and it will be there.

**Core Modules**
You can essentially use these modules to separate out related areas of your project so that they are decoupled from the main module of your project.
For example if your application has  a complex data layer that communicates with both a remote and cache data source.You will need to separate responsibilities as shown in the image below.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/birq89xquyhxnuwhlzuo.png)
Core modules that contain android framework references will need to use the library plugin:

```
apply plugin: 'com.android.library'
```
If they do not reference the android framework,then use pure kotlin or java modules 

```
apply plugin: 'kotlin'
```

Thanks for reading through,this was just a basic overview of how modularization can be a achieved in android projects.Be sure to check out my future writings.Follow me on github [here](https://github.com/Carlosokumu).Happy Coding 🙂
Handling Passwords and Secret Keys using Environment Variables
Tags: python, password, environment, variables
Published: 2022-02-14 20:50:47

To save passwords and secret keys in environment variables on Windows, you will need to open Advance System Setting.

You can navigate to control panel > System and Security > System > Advanced system Settings.
Now in Advance System Setting click on Environment Variables.
Here we can add new user variables and new system variables. We will add user variable by clicking New under user variables.

In the new window you can add Variable name and Variable value and click ok.
Now, click Ok on Environment Variables window to save changes.

Access the environmental variables
To access these variables in our python script, we need to import the os module.
We can do that by using os.environ.get() method and passing the key we want to access.

If you are using .python-dotenv method you need to add a couple of lines at the start of your application.

from dotenv import load_dotenv
load_dotenv()

In case of Django project, you should add the above script at the top of wsgi.py and manage.py file.

###############################################################
from dotenv import load_dotenv   #for python-dotenv method
load_dotenv()                    #for python-dotenv method

import os 

user_name = os.environ.get('USER')
password = os.environ.get('password')

print(user_name, password)

############ output ############

username password
Quick and easy value clamping in JavaScript
Tags: javascript
Published: 2022-02-14 20:49:45

Ever needed to make sure a value stays within a certain range?

I've often written code like this:
```js
function clamp (value, min, max) {
  if (value > maximum) return maximum
  if (value < minimum) return minimum
  return value
}

let lower = clamp(9, 10, 25) // 10
let higher = clamp(30, 10, 25) // 25
let middle = clamp(22, 10, 25) // 22
```

Every time I see code like this, I _know_ there's a way to do it with `Math.max` and `Math.min` but I'm always getting my wires crossed thinking about it.

So here it is:
```js
function clamp (value, min, max) {
  return Math.max(min, Math.min(max, value))
}
```

Next time, I just need to remember "max-min-min-max-value".
Python 101: Ultimate Python Guide
Published: 2022-02-14 20:46:34

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4joq6x3g1zkoc65hmrwg.jpg)
<u>**A simple guide on Python Programming Language for beginners.**</u>
History of Python as a programming language.
Python is an interpreted high-level general-purpose programming language which was conceived in the late 1980 by  Guido van Rossum as a successor to the ABC programming language.
Python 2.0 was released on 16 October 2000, with many major new features, including a cycle-detecting garbage collector (in addition to reference counting) for memory management and support for Unicode. Python 3.0 was later in 2008. Many of its features were backported from several previous version of Python.
Python is an object oriented language. This approach helps programmers to write clear, logical code for small and large scale projects.
Python as well supports different or multiple programming paradigms such as structured procedural programming and object oriented programming.
<u>**Uses / application of Python Programming Language.**</u>
 ** some of the applications include:**
     1. AI and machine learning.
     2. Data analytics.
     3. Web development.
     4. Game development.
     5. Language development.
Example of a program in python.
Print('hello,world') is used to give the output within the brackets
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4sa64ptm0zmbwtdih5i3.PNG)
Basic Python curriculum can be broken down into 4 major topics that include:
  a. Data types (int, float, strings)
  b. Compound data structures (lists, tuples, and dictionaries)
  c. Conditionals, loops, and functions.
  d. Object-oriented programming and using external libraries.
d
Sources to learn python.
There are many resources that I would recommend beginners to refence to for their leaning.
some of them are:
   a. https://www.w3schools.com/ 
   b. https://www.freecodecamp.org/
   c. https://www.javatpoint.com/
   d. https://www.programiz.com/
NodeJs Console Progress Bar
Tags: progressbar, node, console
Published: 2022-02-14 20:44:00

---
title: NodeJs Console Progress Bar
published: true
description: Very simple example of using a progress bar in a nodejs console application 
tags: progressbar,nodejs,console
//cover_image: https://fdy-images.s3.eu-west-2.amazonaws.com/blogs/blurred_progress.png
---
## Overview
I'm not the greatest at writing these things as in-depth tutorials so this is pretty much a very simple example of how I've been using the progress bar in node to trach and illustrate progress when I've been processing large amounts of data and files.

The idea behind this is to show a script which will set a progress bar. It will then incrementally progress the bar (see what I did there ;) )  as the work is done on the elements.

The library used is https://www.npmjs.com/package/progress

```shell
// npm 
$ npm install progress
// Yarn
$ yarn add progress
```

## The good stuff

```javascript
import ProgressBar from 'progress';

// Simple method that pretends it's doing some work
const doSomeStuff = async () => {
  return new Promise((resolve) => {
    setTimeout(() => {
      console.log('Waiting');
      resolve('done');
    }, 1000);
  })
}

// main method that is doing the orchestration of all the other work
const doMeSomeImports = async () => {
  const itemsToProcess = [{id:1},{id:2},{id:3},{id:4},{id:5}];
  const bar = new ProgressBar('-> Processing [:bar] :percent :etas', {
    total: itemsToProcess.length * 2,
    width: 30,
  });
  for (const item of itemsToProcess) {
    bar.tick(1);
    await doSomeStuff();
    bar.tick(1);
  }
}

doMeSomeImports()
  .catch((e) => console.error(e))
  .then(() => console.log('Complete!'))

```