teleren/devto huggingface dataset:
Easy Conversion Tracking with PropelAuth
Tags: marketing, tooling, startup, advertising
Published: 2021-11-13 02:44:41

Almost every advertising platform has a concept of "conversion tracking." When someone clicks on your ad, conversion tracking is a way to determine how valuable that click was. Did the user leave after 5 seconds? Did they sign up? Did they buy something?

By providing answers to those questions to your advertiser, they can tune the ads to get the outcomes you want. Usually this is done by copying some javascript onto your site and triggering events on the actions you want to encourage.

At [PropelAuth](https://www.propelauth.com), we strongly believe that your auth tool should take on as much as possible in order to get you back to building your product. PropelAuth does this by providing a fully configurable, hosted authentication service - complete with a UI, straightforward documentation, and easy to use libraries.

![Screenshot of setting up conversion](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ro5l12p678xioahy1bge.png)

To further our mission of taking on as much of the work surrounding auth as possible, we're releasing support for signup conversion tracking. If you want your ads to optimize for user signups, just enter the ID supplied by your advertiser, and we handle the rest. From email/password to social signups, we'll automatically trigger the correct event for your advertiser.

We currently support Google, Reddit, Facebook, and Twitter. Looking for a different advertiser? Let us know at [support@propelauth.com](mailto:support@propelauth.com)
Green Flower - Global Voting
Tags: opensource, discuss, security, news
Published: 2021-11-13 02:31:01

This is the beginning of a Monthly Series about Voting The following Content is driven by the community of https://github.com/GreenFlowerVoting/GreenFlowerVoting/medium.md

This Space enables a discussion to create a global, society fair, secure voting system.

Imagination: We discover a planet and we are trying to create a voting system that stands for

- global equality without any borders 
- without any regional differences regardless of the geographical locations of the individuals
- independent of society or education

Problems:
- Regional differences 
- Unique Identification 
- Manipulation 
- Desinterest 
- Uncertainty 
- Lobbying 
- Contributions 

What are your concerns?

Goals for this Project:
- Create an open collective - open source voting plattform
- Start and Election
- The chosen one will receive a Reward!
- The voters will decide how the Reward will be spent to benefit the voters.

CONTRIBUTIONS: 
Create requests on how contributions should happened with regards to the problem statements.

https://github.com/GreenFlowerVoting/GreenFlowerVoting
Testing
Tags: opensource, testing, catch2
Published: 2021-11-13 02:25:28

This week's lab has to do with testing which is something I've done a fair bit of. The first 8 months of this year I was in a work placement doing manual QA work for the Ministry of Children, Community and Social Services. I got a lot of hands on experience, but the videos for this week helped fill in a lot of gaps in the theory side of things, words I'd heard of like "coverage" for example that I hadn't been able to fully contextualize and define, so it's been cool hearing more about the theory behind testing. 

For my part I added some testing capabilities to my [SSG](https://github.com/gusmccallum/GAS-ssg) using [Catch2](https://github.com/catchorg/Catch2). Catch2 was super easy to set up and involved downloading one header file from their github repo and including it in my program. There are a number of ways you can choose to have Catch interact with your project, either by having Catch define your main i.e
```
#include "catch.hpp"
#define CATCH_CONFIG_MAIN
```
or by supplying your own a la 
```
#include "catch.hpp"
#define CATCH_CONFIG_RUNNER
```
I opted for the former, refactoring my program in the process to have the main be compiled separately from the testing capabilities (by only having catch included in the testing translation unit I avoid adding the lengthy compile time that results from its inclusion for non-developer use of the SSG) This was probably the hardest part as I went back and forth trying to decide how I should structure my program to take advantage of Catch without having some weird structural choices arise from it. I ended up refactoring it over several times but I think the way I landed on makes the most sense. 

I added a `test.cpp` to write tests in and wrote unit tests for all the functions used throughout my SSG. I ran into issues from my functions not running properly outside of my main, not sure what that's about but they work as expected when called in their normal context. Finally, I [merged my changes](https://github.com/gusmccallum/GAS-ssg/commit/611cd5e14bd29126e52b0c0558992085b02ab552) and [updated the documentation](https://github.com/gusmccallum/GAS-ssg/blob/main/contributing.md) to reflect the new addition.
Master to Main - Improving Inclusivity on Github
Tags: react, javascript, html, github
Published: 2021-11-13 01:57:12

Master to Main - A web app to show you any public repositories with the default branch set as "master" for a given User or Organization.

Link -> https://master-to-main.herokuapp.com/

I've been meaning to brush up on React and the usage of Hooks, so I took the opportunity to make a meaningful (and IMO a USEFUL) app. If you are like me, you likely have a LOT of repositories on Github that you haven't touched in a minute and swear you'll come back to it (🙄 sure you will). A lot of these repos were likely created pre-"Github moving to default branch of main on new repos" and thus have a default branch of "master". A small step to increasing inclusivity in our industry is to ditch the insensitive and distasteful use of terms like "master" and "slave" (among others) and rename your default branch! This app should hopefully make that process a bit easier by giving you a list of repos that need updated.

The app is built using React and utilizes the React Semantic UI components to build the UI. I'm pretty happy with it overall, and it still has some improvements to be made - It currently pulls the first 30 public repos, but pagination can be added to pull ALL public repos in one "User Search".

Anyways. I'm not a "Software" developer by trade - So take it easy on me 🥺 I'm always open to feedback and tips on using React and general Front End development.

Thanks for reading!
How does the browser magically see React changes in development?
Tags: react, javascript, beginners, node
Published: 2021-11-13 01:27:51

Several months ago I was new to React.  As an experienced developer of classic javascript, one of the most objectionable things about the newer thick client frameworks such as React and Angular is the need to build the client side application to see changes. Let's face it, we are used to only having to refresh the browser page.  Fortunately for us the community has has helped us out with this issue, specifically the [Create React App](https://create-react-app.dev/) community.
&ensp;
Following the instructions on the Create React App website, you will install Node.js, follow all their instructions and just like magic suddenly the browser refreshes every time you make a change, but how does this happen? The answer is more simple and more complex than you think.

> 1) <b>Node.js, React, and Webpack are watching your code and transpiling it</b> - It's no secret that React delivered to the browser is quite different than what you wrote. Your tsx code has to be changed to jsx and your jsx code has to be changed to javascript, and this javascript has to be packed up for delivery to the browser.  Since you don't feel like doing this on your own some automation is in order, fortunately you will not have to think about this, just know that it is happening.

> 2) <b>A socket has been created on the browser back to the server</b> - This is where the real magic is because by creating a socket with the server, communication can be pushed to the browser instead of having the browser poll the server, which would be far more messy.  So everytime you change your code, the chain reaction described in step one happens and then a message is sent up the socket to tell the browser to refresh the page.

There is a really interesting wrinkle to step 2.  If you load your page and then fire up your DOM inspector you will not see this socket, which is super confusing.  However, if you force a refresh of your browser page with the inspector open you will then see the socket.  A bug perhaps in Chrome?

So there it is, a peak behind the curtain.  Happy coding.

For more information on the latest frameworks, check out this article [Common Frameworks for 2022](https://dev.to/matthewekeller/web-application-frameworks-2022-mem
).
100 días de código: 10, repasando HTML, creando mas repositorios y comenzando con la hoja de estilos de mi pagina personal.
Tags: spanish, html, 100daysofcode, webdev
Published: 2021-11-13 00:43:07

¡Hey, hey, hey!

Bienvenidos a este nuevo día del reto, hoy es el día en el que comienzo a mejorar mis habilidades de escritura probando touch typing que, de forma muy resumida, consiste en escribir en el teclado lo mas rápido posible.

Lo hice con ayuda de esta [guia](https://www.typingstudy.com) y se los recomiendo ya que te permite codificar mas rápido. 
Te recomiendo intentarlo aunque tengas una velocidad muy buena.

También he avanzado en algunas otras cosas que me gustaría contarles.

### Ayer: 
- Avance hasta la sección de Fundamentos de HTML en [The odin Project](https://www.theodinproject.com/)
- Aprendí a agregar una clave ssh a mi cuenta de github.
- Realice una instalación y configuracion de git en linux.
- Cree un proyecto de ejemplo en github y realice cambios.
- Aprendí que la mejor forma de hacer una explicación de los cambios en una confirmación (commit) es escribirlo de forma imperativa.
- Volví a aprender los comandos basicos de linux como `pwd`, `touch`, `cat`, `ls`, `cd` entre otros.

### Hoy:
- Avance hasta la sección `Project recipes` del capitulo **HTML foundations** de la guia [The odin Project](https://www.theodinproject.com/) con lo cual ya realice mi objetivo de spring semanal.
- Cree unos cuantos repositorios para los proyectos que voy realizando en la guia.
- Comencé a codificar los estilos principales de mi pagina web.
- Repase las etiquetas de html. (se los recomiendo porque yo ya no recordaba algunas)


Ademas encontré [este](https://www.befunky.com/es/crear/editor-de-fotos/) editor de fotos online que es bastante interesante y [este](https://comprimir-video.convertir-pdf.com/) compresor de vídeo. 

¿Debería de hacer una guia de todas las herramientas que utilizo en el día a día? Quizás...

¡Y eso es todo por hoy! Espero que les vaya super bien con sus proyectos y animo.
Adiós mundo!
Day 7 of #100daysofcode: General Progress and Competitive Programming
Tags: 100daysofcode, react, python, beginners
Published: 2021-11-13 00:09:35

Between Competitive Programming, talking with my professors, planning my next semester, working on my resume and working on my project I had a very full day.

## Competitive Programming
I participated in my first competitive programming event today and had a lot of fun. I was the senior in my team, so I took the lead and helped coach my team through some of the problems. One of the members of my team had very little coding experience, so it was cool to show him the ropes on how to approach some of these problems and to show him some of the common problem patterns you'd run into. He was pretty excited about using Dictionaries to count duplicates so that was fun.

Everybody in the team were familiar with different languages, so I thought it would be best to use Python as it is fairly simple to understand. That seemed to work very well, and I was able to bust out some of the Python-tech that I've learned over the years, namely list comprehension and f-strings. 

We placed a little above middle of the pack, but we were happy with how we did and I feel like everyone walked away today better programmers.

In the future, I would like to participate in an even more competitive scenario where you compete for a prize with randomly selected teams. I think that would be really fun.

## Today
I made a lot of progress today. I spent more time with React-bootstrap and decided on which components I am going to use in my page. In addition, I modified the CSS layout and fixed some code modularity problems I had with my Flask server. 

## Tomorrow
I'm going to continue working on my project. I hope I will have some what of a final product to show off tomorrow. Don't be too harsh on the design; I never claimed to be a good designer!

## What I'm Struggling on
I'm still finding some trouble on how to use Flexbox in conjunction with Grid. As I understand it, they're both made much more powerful when you use them in conjunction, so I'm trying to force myself to use them together.

### Resources
[CSS Grid Tutorial - Dev Dreamer](https://www.youtube.com/watch?v=RhUuMl3R1PE) 
[React-Bootstrap Components](https://react-bootstrap.github.io/components/)
Create, Remix, and Own
a Piece of the Web
Published: 2021-11-13 00:06:23

The next iteration of the web – web3, is going to look very different.

📚

web1 - Reading

🧑‍🤝‍🧑

web2 - Social

👑

web3 - Ownership

People are already starting to use and recognize the Internet differently – things like the metaverse, the creator economy, cryptocurrency, and NFTs have gone mainstream.

This mindset shift stands firmly in ownership and the people who create the web – people like us: developers, designers, low-code creators – want to own what we create.

Build Something Once, Get Rewarded Continuously
The.com is building a reusable web, making it simple to create, remix, and launch websites while getting paid and earning credit for your work.

This is a fundamental shift in web creation towards a more ownable and composable web.

The old way is wasteful. It involved spending hours, days, and months building sites that were used once, for one project and never used again. Now, you can build, own, share, and continuously reap the rewards of your web work through what we call, Blocks.
So, what are Blocks?
Blocks are a cell-based editing protocol with a reusable set of elements that can be used to credit the creator, be shared, and remixed into infinite new web projects.

Just like a music producer who makes a sample that 1000's of others use and earns royalties, Blocks are the equivalent of website samples. Blocks let future web people build and credit the original creator.

We’re looking for a select group of creators to join as early web owners and join The.com.
Save disk space by deleting unused node_modules
Tags: shell, bash
Published: 2021-11-21 10:39:26

---
title: Save disk space by deleting unused node_modules
published: true
date: 2021-11-13 00:00:00 UTC
tags: shell, bash
canonical_url: https://willcodefor.beer/posts/save-disk-space-by-deleting-node-modules/
---

I quickly understood that I had forgotten to remove `node_modules` when I wanted to copy my projects folder to a new computer and the process was going to take multiple hours. Luckily, [my dotfiles](https://github.com/believer/dotfiles/commit/a440d8abcdb47cf6fe5d9af69519f960f7c96ce0) already contained a command to remove all the `node_modules` folders at once. This time the command saved me ~40 GB.

```sh
# Use the command at you own risk
find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
```

There's a lot to the command, but here's an explanation of each part to demystify it.

- `find` - A command that comes built-in with MacOS and Linux.
- `.` - Look from this location
- `-name "node_modules"` - Make sure the last component of the pathname matches `node_modules`
- `-type d` - We are looking for a **directory** (d)
- `-prune` - Stops `find` from descending into the folder, meaning that it won't look for `node_modules` inside `node_modules` and so on.
- `-exec rm -rf '{}' +` - Runs the specified command, `rm`, with flags `r` (remove directory) and `f` (do not ask for confirmation no matter what the file permissions are). `'{}'` will be replaced by the pathname that's been found. `+` means that `find` will append all the file paths to a single command instead of running `rm` for each.

If you just want to find `node_modules` folders and display their disk size use the following command.

```sh
find . -name "node_modules" -type d -prune -print | xargs du -chs
```

> There's also an `npm` command that you can use by running `npx npkill` if you don't want to mess with terminal commands.
Staying DRY in a WET codebase
Tags: dry, wet
Published: 2021-11-16 09:01:37

---
title: Staying DRY in a WET codebase
published: true
date: 2021-11-13 00:00:00 UTC
tags: dry,wet
canonical_url: https://jhall.io/archive/2021/11/13/staying-dry-in-a-wet-codebase/
---

There’s an often uncomfortable tension between [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself#WET) and [WET](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself#WET) code. For all its merit, [DRY can also be problematic](https://jhall.io/archive/2021/11/12/dry-can-be-expensive/).

But sometimes, WET is just a really, really bad idea. Usually when it means duplicating business logic. By having that logic live in two or more places, we greatly increase the chances of bugs creeping in when only one instance is updated.

Is there any way to balance these concerns?

One approach is to WET your code—that is, duplicate the business logic in two or more places—but then have an automated test ensure that the different implementations always produce the same results.

This approach is used in some fairly prominent code bases, including the Go standard library, where the cost of an additional dependency is high, but implementations must remain consistent.

* * *
_If you enjoyed this message, [subscribe](https://jhall.io/daily) to <u>The Daily Commit</u> to get future messages to your inbox._
Adding Testing integration in swift using xctest
Tags: swift, opensource, programming, testing
Published: 2021-11-12 23:03:25

## Introduction
Welcome to an introduction to how to integrate testing in ios projects. The framework I chose for my project is XCtest which is an automation tool provided by Apple. Use the XCTest framework to write unit tests for your Xcode projects that integrate seamlessly with Xcode's testing. [documentation](https://developer.apple.com/documentation/xctest)

## Setup
Please follow the instruction to set up the XCTest for your Xcode project.
1. ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/770984yueuy4p5gt5x86.png)
2. ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2z5oyq5bcdtv6rzldxol.png)
3. ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e0qn14kam114l84oy9vi.png)

To run the tests in swift
```
$ swift test
```
### Shortcuts
These shortcuts are essential when writing unit tests in Xcode.

1. Command + U to run all tests.
2. Command + Option + Control + G to run latest test.

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

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

```
	if(input.isEmpty){
        print("Error. Please enter input folder or add suffix to file name")
        return
      }
```

## Outcome
Learning from testing is to cover all arguments or other ways possibilities of having errors. While testing helps to come up with all scenarios that can cover all errors. Commits: [commits](https://github.com/japneetsingh035/ModernSSG/commits/main)
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aaz9wpyo8xg08j0a6d63.png)
Web Package
Tags: website, store, blog, traffic
Published: 2021-11-12 22:58:15

**The Best Web Package on the Internet**
Website / Blog / Online Store / Domain / SEO System / Professional Email / Subscribers / Newsletters / Advertising / Support Chat / Gallery / And More ...
1 _ Web Host / Blog / 2 _ Web Template / Store / 3 _ Web Traffic
[Web Package Here](https://esweb.xyz/paquete-web)
Getting started with pandas (practical example) 2021
Tags: python, pandas
Published: 2021-11-12 21:45:58

Pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool,
built on top of the Python programming language.

## What does that even mean?

Lets get practical. We will be doing the following. 

1. Get a few python list
2. Set up the data in clean way
3. Export the data to an excel sheet


## Clean up raw data

Lets take some random data. We will make two list number and email 

```python

number = []
email = []

data = [
	{
		'numberrange': "53262",
		'email':'eu@aol.com',
	},
	{
		'numberrange': "553343",
		'email': "non.hendrerit.id@google.ca"
	},
	{
		'numberrange': "638442",
		'email': "donec.tempus.lorem@google.couk"
	},
	{
		'numberrange': "75523",
		'email': "lorem.vitae.odio@aol.org"
	},
	{
		'numberrange': "66493",
		'email': "orci.lacus@aol.edu"
	}
]

```

## Looping the data

Now lets loop the data and get all instances of 'numberrange' and 'email'. We will append the results to our list we made above.

```python
for i in data:
    print(i['numberrange'])
    print(i['email'])
    number.append(i['numberrange'])
    email.append(i['email'])
```



## Putting it all together 
```python

import pandas as pd

number = []
email = []




data = [
	{
		'numberrange': "53262",
		'email':'eu@aol.com',
	},
	{
		'numberrange': "553343",
		'email': "non.hendrerit.id@google.ca"
	},
	{
		'numberrange': "638442",
		'email': "donec.tempus.lorem@google.couk"
	},
	{
		'numberrange': "75523",
		'email': "lorem.vitae.odio@aol.org"
	},
	{
		'numberrange': "66493",
		'email': "orci.lacus@aol.edu"
	}
]


for i in data:
    print(i['numberrange'])
    print(i['email'])
    number.append(i['numberrange'])
    email.append(i['email'])



df = pd.DataFrame()

df['Number'] = number
df['Email'] = email



# Converting to excel
df.to_excel('Make_an_excel_sheet.xlsx', index=False)

```

![alt text](https://i.ibb.co/xqSNF7F/Screenshot-175.png)