teleren/devto huggingface dataset:
Reverse monetization
Tags: monetization, api
Published: 2022-10-07 08:59:28

---
title: Reverse monetization
published: true
date: 2022-08-19 14:12:01 UTC
tags: monetization, api
canonical_url: https://tech.forums.softwareag.com/t/reverse-monetization/260351
---

**Reverse monetization** is a term one customer used in a conversation. It was a while ago and they were one of the very few thinking about not only exposing APIs but also consuming them. I’ll try to explain why the ‘monetization’ term was used in conjunction with ‘reverse’ word and why it is important to think about how we use other people’s APIs.

![04|350x350](https://aws1.discourse-cdn.com/techcommunity/original/3X/e/5/e55e32fb821867e9db383541bfaf756771f0d90b.jpeg)

In today’s API economy, most organizations are net consumers of APIs. It means they use more of somebody else’s API than they expose their own. Additionally, unlike with the internal APIs, used for integration or other purposes, these 3rd party APIs are very often becoming a part of business-critical use cases.

The customer I mentioned above, used the term ‘reverse monetization’ to explain their need to control how they use external APIs to, for example, prevent developers from happily testing a paid-for API which might result with a big invoice. Simply put, they were aware of other organizations directly monetizing APIs and they wanted to control their spending on it.

Nowadays, the need to manage 3rd party APIs is much more important than simply controlling ones spending on APIs. Consider a factious retail company. To operate and provide good customer experience they will use external services like shipping, payment processing etc. These services will be, most likely, provided via APIs and integrated with their systems. If one if these APIs experiences an outage, the entire business has an outage. For example, if the shipping API is down, out retail company cannot ship goods to their customers. If they cannot ship, customer satisfaction goes down and they leave. Same with payments API example. If they can’t process payment, they cannot fulfill the order, and again, customers leave.

APIs have become vital parts of mission critical systems and core business. They need to be managed, especially the 3rd party ones, over which organization have less control. What does it mean to manage 3rd party APIs? No, it’s not about registering it on an API Gateway, or not only about it. 3rd party APIs should be a part of organization business continuity planning (BCP). We need to know which external APIs we’re using, who’s providing them, what are the terms of use? Are there SLA? Is there someone to contact in we need it? How do I know an API has an outage? Hopefully not by seeing by shipping function in the online store erroring out? How do I recover from an outage? Is there a backup solution for the duration of an outage? Etc.

API Management, anyone?

[Read full topic](https://tech.forums.softwareag.com/t/reverse-monetization/260351)
The Music and me what you need to know
Published: 2022-08-13 08:14:01

cool 
Welcome to my reality, am a big deal gamer so being here is home, I appreciate paying attention to music, I have the dopest collections on my pc, everything I do is press keys and appreciate life. We have a gigantic music assortment for the entire family, where everybody can discover the melody of their number one music type, classification, style or craftsman. No enlistment is required. Collection Mp3 Download MP3 download – simple and quick The most recent music hits with excellent sound for disconnected tuning in. Basic, easy to understand and natural interface. No interruptions, just music. We don't change over recordings like ytmp3, Flv, mp3 juice, and so forth There are just HQ MP3s in our information base. Collection Mp3 Download Track down your main tunes and save them for nothing. We continually give free music from standard craftsmen to fans. Our administration will set up your mp3 record with the best quality prepared for download [24musicplay](https://24musicplay.com)
check [Mp3 Download](https://naijaring.com) for more 
Greetings from the popular South African [Download Mp3](https://pnaija.com) music SA genre's official blog on the web. Here have the most recent Amapiano tracks, 2023.
Auto Updater
Tags: help, node
Published: 2022-08-19 14:08:07

Hello
I don't know how I should make an updater for my project.

For example I have 0.0.0.1 version and the newest version would be 1.0.0.0.
Then the app would download all of the updates one by one from 0.0.0.1 to 1.0.0.0. So it means 0.0.0.2, 0.0.0.3, 0.0.0.4, etc.. until 1.0.0.0 .

How can I make it possible?
Thanks in advance the answers.
An Email Design Layout Using Pure Css
Tags: codepen, webdev, beginners, 100daysofcode
Published: 2022-08-19 13:59:37

Day 8 of 100 Days Of Code
Continued to complete the components section of jonas schmedtmann's course on Udemy and built an Email Page Layout.

{% codepen https://codepen.io/mustafahashmani/pen/QWmYKJL %}
How to make calculator with CustomTkinter
Tags: python, programming, beginners
Published: 2022-08-19 13:57:00

Hello everyone,
Today, we want make calculator with 
tkinter and **CustomTkinter**.

Code:

```python
from tkinter import *
from tkinter import messagebox
import customtkinter
def add():
 a = float(ent1.get()) 
 b = float(ent2.get())
 c = a + b
 result.configure(text=str(c))



def subtract():
    a = float(ent1.get())
    b = float(ent2.get())
    c = a - b
    result.configure(text=str(c))


def multipy():
    a = float(ent1.get())
    b = float(ent2.get())
    c = a * b
    result.configure(text=str(c))

def divide():
    a = float(ent1.get())
    b = float(ent2.get())
    c = a / b
    result.configure(text=str(c))


customtkinter.set_appearance_mode("dark")
window=customtkinter.CTk()
window.geometry("550x500")
window.title("Calculator")
window.resizable(False,False)
f1=customtkinter.CTkFrame(window,bg="#f1faee")
f1.pack(expand=True,fill=BOTH)
la1=customtkinter.CTkLabel(f1,bg="#f1faee",text_color="white",text="First Number:",text_font=("",25))
la1.place(x=20,y=20)
la2=customtkinter.CTkLabel(f1,bg="#f1faee",text_color="white",text="Second Number:",text_font=("",25))
la2.place(x=20,y=98)
ent1=customtkinter.CTkEntry(f1,bg="#f1faee",text_color="silver",placeholder_text="Enter a number",width=220)
ent1.place(x=300,y=26)
ent2=customtkinter.CTkEntry(f1,bg="#f1faee",text_color="silver",placeholder_text="Enter a number",width=220,text_font=("",12))
ent2.place(x=300,y=110)

btn1=customtkinter.CTkButton(f1,bg="#f1faee",text_color="white",text="Add",text_font=("",27),command=add,corner_radius=4,fg_color="#2a9d8f")
btn1.place(x=340,y=220)
btn2=customtkinter.CTkButton(f1,bg="#f1faee",text_color="white",text="Subtract",text_font=("",27),command=subtract,corner_radius=4,fg_color="#2a9d8f")
btn2.place(x=340,y=320)
btn3=customtkinter.CTkButton(f1,bg="#f1faee",text_color="white",text="Multipy",text_font=("",27),command=multipy,corner_radius=4,fg_color="#2a9d8f")
btn3.place(x=70,y=220)
btn4=customtkinter.CTkButton(f1,bg="#f1faee",text_color="white",text="Divide",text_font=("",27),command=divide,corner_radius=4,fg_color="#2a9d8f")
btn4.place(x=70,y=320)

Result=customtkinter.CTkLabel(f1,bg="#f1faee",text_color="orange",text="Result:",text_font=("",29))
Result.place(x=100,y=400)

result=customtkinter.CTkLabel(f1,bg="#f1faee",text_color="orange",text="",text_font=("",29))
result.place(x=300,y=400)


window.mainloop()


```



**This application has been tested on Mac, and its appearance may change in Windows or Linux.**
preview:




![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7mnlqrpmmmtny0oicosd.jpg)
What is this keyword in javascript?
Tags: javascript
Published: 2022-08-19 13:56:44

The `this` keyword is probably one of the odder ducks you’ll encounter while trying to learn JavaScript. What it does, in essence, is standing in for the current object that has focus relative to the handler. Here’s an example like the one discussed in the previous section.

```javascript
    <form name="myForm">
     <input type="text" name="phoneNumber" onchange="checkPhone 
     (this.value)"  />
    </form>
```
this is used to suggest “this input element,” and value is a property that stores the value associated with this form element. You could also access that same value as the following in order to pass along the value.
```javascript
<form name="myForm">
<input type="text" name="phoneNumber" onchange="checkPhone (document.myForm.phoneNumber
The this Keyword.value)" />
</form>
```
Note that the name of the form and the name of the <input> element are both vital in getting at the correct value. That’s one reason for the this keyword; another is simple convenience
Arch and my Thinkpad P14s
Tags: linux, arch
Published: 2023-04-18 19:22:45

---
title: Arch and my Thinkpad P14s
published: true
date: 2022-08-19 13:55:59 UTC
tags: Linux,arch
canonical_url: https://rafael.bernard-araujo.com/arch-and-my-thinkpad-p14s.php
---

Here I will list some of the items I used to have Arch running with the minimum I needed for my ThinkPad P14s. I have experienced a seamless experience with my old [ThinkPad Carbon x1](https://wiki.archlinux.org/title/Lenovo_ThinkPad_X1_Carbon_(Gen_2)).

I relate this to the Realtek 8852AE, an 802.11ax device used by P14s, that does not work out-the-box as the one used by x1, although faster.

## Hardware
- [Lenovo P Series](https://wiki.archlinux.org/title/Laptop/Lenovo#P_series) (no dedicated P14s page for the time being)
- [Laptop - Power Management](https://wiki.archlinux.org/title/Laptop#Power_management)
  - [Laptop/Lenovo | ThinkPad battery control](https://wiki.archlinux.org/title/Laptop/Lenovo#ThinkPad_battery_control)
  - [tpacpi-bat - ThinkPad ACPI Battery Util](https://github.com/teleshoes/tpacpi-bat)
- Wireless / Bluetooth 
  - [Realtek 8852AE driver](https://github.com/lwfinger/rtw89) (Thanks to https://github.com/lwfinger)
  - [Realtek 8852AE driver - Bluetooth](https://github.com/lwfinger/rtw89-bt) (Thanks to https://github.com/lwfinger)

## Software
- [alacritty | Terminal Emulator](https://alacritty.org/)
- [dunst | Notification Daemon](https://wiki.archlinux.org/title/Dunst)
- i3 ([.config/i3](https://github.com/rafaelbernard/dotfiles/tree/master/.config/i3))
  - i3blocks
  - [bumbleblee-status](https://github.com/tobi-wan-kenobi/bumblebee-status)
- locale (I use a US keyboard, but also want pt_BR locale)
  - [Keyboard: `sudo localectl --no-convert set-x11-keymap us intl`](https://daniel.arneam.com/blog/linux/2018-11-20-How-to-set-us-keyboard-for-brazillian-portuguese-usage-in-arch-linux/)
  - [Update 22/02/23]: `sudo localectl set-keymap --no-convert us && sudo localectl set-x11-keymap us us intl`
- [tmux | Terminal Multiplexer](https://github.com/tmux/tmux/wiki)
- [zsh](https://ohmyz.sh/)
- [Dolphin](https://wiki.archlinux.org/title/Dolphin)
A modern Hero for a Landing Page
Tags: codepen, webdev, beginners, 100daysofcode
Published: 2022-08-19 13:46:47

Day 8 of 100 Days Of Code

Continued to complete the components section of jonas schmedtmann's course on Udemy and built a hero section of a modern landing page .

Day 8 of 100 Days Of Code

<p>A minimalistic Hero Section Component for a landing page</p>

PS:**Open in a full page screen for better viewing**

{% codepen https://codepen.io/mustafahashmani/pen/ZExwpGg %}
Appwrite Community Report #19
Published: 2022-08-19 13:38:21

Hello and welcome to yet another community report from team Appwrite 👋.

This report is a weekly reminder for us, about how fortunate we are to have such a supportive community and all the great things that we have been able to build so far because of all of you! 
🙏🏻

**TLDR;** This week we have updates on Appwrite loot, a lot of bugs fixed, some new features updated, learning resources and more. Stay tuned till the end! 😉

---

## 📢  What’s new 

- Appwrite loot V2 is running in full-force. Share your memes and stand a chance to win some amazing swags 🎁
{% embed https://twitter.com/appwrite/status/1559555617748144128?s=20&t=lNtiXk-0fzvGCAmcHZ_ZoQ %}
- At Appwrite, we believe in helping and supporting others! With our OSS Fund initiative, we are narrating the story of open source maintainers and supporting them with funds
{% embed https://dev.to/appwrite/appwrite-oss-fund-sponsors-lazygit-2no9 %}
 
Do you know someone who can benefit from the fund? Tell them we are still accepting [applications](https://appwrite.io/oss-fund)

---

## ✅ Issues solved

Here’s to making Appwrite better everyday! Issues we have worked on this week:

- Addition of new date-time attributes
🔗[Link to PR](https://github.com/appwrite/appwrite/pull/3688)

- Update Appwrite to use the new database query syntax
🔗[Link to PR](https://github.com/appwrite/appwrite/pull/3675)
- Re-ordered and renamed endpoints, fixed bugs when documents were showing `Retry Build` to the client
🔗[Link to PR](https://github.com/appwrite/appwrite/pull/3667)
- Console logs from user functions in runtimes can now be captured and stored
🔗[Link to PR](https://github.com/appwrite/appwrite/pull/3656)

---

## ⚒️ What we’re currently working on

- Refactoring Appwrite permissions
- Addition of new usage stats
- Addition of password hashing algos
- Fixing roles in teams

---

## 🗣 Discussions

Single project import and export in Appwrite, what do you think? 
🔗[Join the discussion here](https://github.com/appwrite/appwrite/discussions/3678)

---

## 📘 Resources


- Running Self-Hosted Serverless Code with Appwrite Functions 
{% embed https://youtu.be/D6TGDn-dM4A %}
- Adding [GitHub authentication to a Next.js application](https://dev.to/hackmamba/how-to-add-github-authentication-to-a-nextjs-application-1nfi)
- Learning [Appwrite in 30 days](https://30days.appwrite.io/)
Postman Collection Security Test in Minutes for Free
Tags: api, tutorial, postman, security
Published: 2022-08-19 13:34:00



Postman and EthicalCheck integration enable fully automated and free security testing of APIs.

How to get started

1. Go to the https://EthicalCheck.dev

2. Postman Collection: Submit your Postman Collection URL and email in the input fields and click the scan button on the EthicalCheck home page.

3. Scan: Once your request is submitted. The engine first creates a map of all your API endpoints, automatically writes security tests covering the OWASP API #2, and then runs the scan.

4. Report: You'll receive an enterprise-grade App/API penetration test report. The test report meets SOC 2 and other compliance requirements.

5. Vulnerabilities: The test report includes all the tested endpoints, OWASP categories, exceptions, and vulnerabilities. Vulnerabilities are automatically triaged for you, which means every vulnerability will have a severity, CVSS score, endpoint information, OWASP tag, etc., saving you time and resources. 

Getting started with a sample Postman Collection:

If you want to learn and try this out using a sample Postman Collection, check our sample API on the https://ethicalcheck.dev home page. 
This sample API is a banking API with features like accounts, transactions, and more. It's an excellent API to learn how to detect authentication and authorization bugs.
This Week in Python
Tags: python, discuss
Published: 2022-08-19 13:33:35


**Fri, August 19, 2022**


This Week in Python is a concise reading list about what happened in the past week in the Python universe. 


## Python Articles

- [Please do not use Python for tooling](https://borud.no/dev/2022/embedded-tooling/)
- [Traps for the Unwary in Python’s Import System](http://python-notes.curiousefficiency.org/en/latest/python_concepts/import_traps.html)
- [Data Visualization in Python](https://blog.resolvingpython.com/04-data-visualization-in-python)
- [How To Add A Text Editor To A Django Blog With Summernote](https://ctrlzblog.com/how-to-add-a-text-editor-to-a-django-blog-with-summernote/)
- [Slack Consolidate: a slackbot built with Python and Supabase](https://supabase.com/blog/slack-consolidate-slackbot-to-consolidate-messages)


## Projects

- [pyxel](https://github.com/kitao/pyxel) – A retro game engine for Python
- [dg](https://github.com/pyos/dg) – A programming language for the CPython VM
- [libtmux](https://github.com/tmux-python/libtmux) – Python API / wrapper for tmux 
- [erg](https://github.com/erg-lang/erg) – A Python-compatible statically typed language
- [docker-django-example](https://github.com/nickjj/docker-django-example) – A production ready example Django app that's using Docker and Docker Compose



What other articles and projects did you find this week?
GraphQL is a hot smoking pile of garbage
Tags: webdev, graphql, database
Published: 2022-08-19 13:30:00

I'll probably get objections to this one, the same way I get objections to most of my articles. If you don't believe me, check out the objections to my [OOP is a software development mass psychosis article](https://dev.to/polterguy/oop-a-software-development-mass-psychosis-9n4). 190+ comments, most trying to argue I'm the crazy guy. However, superstition is still superstition, regardless of how many people who believe it's the truth, and the facts are that _GraphQL is a hot smoking pile of garbage_, period!

First of all, GraphQL is almost the equivalent of allowing the frontend client to send SQL to the database. For crying out loud, we've got a name for that, and it's called **SQL INJECTION ATTACKS**. Google it if in doubt. I know it is _possible_ to apply security to your GraphQL endpoints, by amputating half of its features. However, security is one of those things you need _by default_. If some piece of tech doesn't have _"security by default"_, you don't expose it to anybody not having root access to your server infrastructure, period!

Second of all, GraphQL forces you to write business logic on the client. This implies that everyone with a Postman account can circumvent your business logic, and potentially empty your bank account, and transfer your entire holdings to their own account, in Bermuda, while publicly sharing images on Instagram that they're drinking umbrella drinks from their hammocks on the beach.

I could go on for hours further explaining why GraphQL is garbage, but really the two above points should be enough. If you're using GraphQL for anything even remotely more complex than a _"hobby project"_, and/or sys-admin types of apps, you should carry a warning sign saying ...

> I have no idea about anything related to software development

Because really, that's about the only thing GraphQL is good at. My suggestion is we _"rename"_ GraphQL, and refer to it as what it actually is, which is the following ...

> JSON based SQL insertion attacks

Because securing a GraphQL endpoint, is probably equally difficult as it is to implement a _real_ software development solution, with business logic on the server, and validation and security on the server - _Where it belongs_. Exposing GraphQL endpoints to anybody but yourself, and/or the sys-admin of your app, is probably only slightly more secure than providing a text area in the public parts of your website, with a placeholder saying; _"Provide SQL here ..."_. If you don't get it, let me type it out in code ...

```
<textarea placeholder="Insert SQL here ..."></textarea>
<button (onclick)="executeSql()"></button>
```

There's a reason why we don't do GraphQL in [Aista](https://aista.com) but instead implementing our stuff in [Hyperlambda](https://aista.com/hyperlambda/), and that reason is because we don't like JSON based SQL insertion attacks.

> GraphQL is a hot smoking pile of garbage, period!
Open/Closed Principle in TypeScript
Tags: typescript, cleancode, javascript, webdev
Published: 2022-08-19 13:25:00

> Classes should be open for extension but closed for modification.

The idea behind this principle is that existing classes should be extended but not modified. By modifying existing classes you risk breaking code which was already tested and reviewed.

The main benefit of this principle is that you can add new features without touching old code. This way you won't break the current usage of those original classes.

---

In the following bad example we can see how the `Order` class is calculating shipping costs for each of the existing shipping methods.

```ts
class Order {
  id: number;
  items: string[];
  shipping: string;

  // constructor

  getTotalCost(): number {
    // calculates total cost
  }

  getShippingCosts(): number {
    const totalCost = this.getTotalCost();

    if (this.shipping === "ground") {
      return totalCost > 50 ? 0 : 5.95;
    }

    if (this.shipping === "air") {
      return 10.95;
    }

    return 0;
  }
}
```

If we wanted to add a new shipping method, we would have to modify the `Order` class. Following the Open/Closed Principle we can solve this by creating an interface and a class that implements it for each shipping method.

```ts
class Order {
  id: number;
  items: string[];
  shipping: Shipping;

  // constructor

  getTotalCost(): number {
    // calculates total cost
  }
}

interface Shipping {
  getShippingCosts(totalCost: number): number;
}

class Ground implements Shipping {
  getShippingCosts(totalCost: number): number {
    return totalCost > 50 ? 0 : 5.95;
  }
}

class Air implements Shipping {
  getShippingCosts(): number {
    return 10.95;
  }
}

class PickUpInStore implements Shipping {
  getShippingCosts(): number {
    return 0;
  }
}
```
Git for DevOps Engineer🚀
Tags: git, devops, beginners, programming
Published: 2022-08-19 13:13:00

> In this article, you will learn why Git is used as a DevOps Engineer.

You might be familiar with using Git for local development, executing Git commands and managing Git Repository

**When and why do you need Git as a DevOps Engineer?**

##1. _Working with_ **Infrastructure as Code** _concept_

![Infrastructure as Code Git](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d4vuzc41fam6o5jyz7jw.png)
You may be working with the Developer team to deploy the application in **Kubernetes**, in which case you will be responsible for a lot of **Kubernetes Configuration files**, which must be managed somewhere.
Furthermore, you may be deploying your **Kubernetes Cluster** in a cloud platform such as **AWS**, and in order to communicate or manage services in AWS, you do not do so manually, but rather through the use of automation tools such as **Terraform** and **Ansible**.
Configuration files are also used by Terraform and Ansible Configuration.
You may also have some scripts, such as **Bash** or **Python scripts**, for various tasks.
**All of these are files should be:** 
- tracked as files will change over time
- securely storing all of these files in one location
- making them accessible to the rest of your DevOps team.

This is where Git repository comes into play and solve all the problems above.

##2. _Working with_ **CI/CD Pipeline and Build Automation** _tool_


![CI/CD Pipeline and Build Automation](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/03xzfhi6xuzffxkyxk2m.png)
**Basis for CI/CD Pipeline and Build Automation tool is**:

- you checkout the application code
- you test the application code
- build the application based on that code etc

So this means you need integration for Build automation tool with the application **Git repository** and you also may need some Git commands specific for build automation tool.

As a **DevOps Engineer**, you may be responsible for setup integration between a **Build Automation** tool and a **Git repository**. Because the integration may differ depending on the build automation tool and the git repository, having some experience and understanding of how this integration works is essential.

**Some examples of Git command specific for building pipelines:**
- getting commit hash of specific commit
- check if changes happen in frontend or backend code

So I hope you got the idea where you'll be using Git as a DevOps Engineer.

######Thank you for reading this article; do follow for more.