teleren/devto huggingface dataset:
CalmAPI - A Production ready REST API generator using NodeJS & MongoDB
Tags: node, mongodb, restapi, javascript
Published: 2021-05-09 03:43:47

Based on my [previous](https://dev.to/sunilksamanta/rest-api-structure-using-nodejs-mongodb-mongoose-2hka) NodeJS MongoDB starter package, Here is a Production ready Modular REST API Generator using NodeJS & MongoDB.
[![npm version](https://badge.fury.io/js/calmapi.svg)](https://badge.fury.io/js/calmapi)

### INSTALLATION
Install by running 
```
npm i -g calmapi
```
Then run inside your workspace directory 
```
calmapi
```
And follow the easy steps.

### FEATURES
* Production ready - Controller, Model & Service oriented architecture
* Modules with automated Routing (Nested Route support)
* Built-in Authentication Module with JWT & DB Store authentication
* Built-in User Module
* Build-in CRUD operations for modules with pagination, filters, sorters
* Sample Post Module (CRUD Operation Example)
* CRUD Module generation command line support.[Alpha]
* No Hidden sh*ts in your node_modules. Completely free to customize
* Prebuilt CRUD operation classes for Controller & Service
* DTO Support( Data transfer Object)
* Eslint rules enabled
* .env support
* And many more

Here is the [github repo](https://github.com/sunilksamanta/calmapi) 
{% github sunilksamanta/calmapi %}
*We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's: Reporting a bug, Documentation, Discussing the current state of the code, Submitting a fix or Proposing new features.*
Data structure for react app
Tags: react
Published: 2021-05-09 10:20:38

I have written in react [tool for Satifactory game](https://zechy.cz/satisfactory/#/), which is just serverless one-page manager. The tool have something like "inner database", which is holding info about game objects, like buildings and recipes.

Now it is only a JSON files where is everything stored. But I am thinking...

If there some sort of database for react, where I could write these data? I would like something which will be a little more easier to maintain.
Project Prioritize(Heap Practice)
Tags: python, beginners, bash, github
Published: 2021-05-29 15:44:55

https://github.com/TheHamhams/Project-Heap

Hello, 

I am a stay at home dad who is working to become a programmer. I am currently using Codeacademy to learn, but I am also starting to work on personal projects to practice my skills. 

This project was meant to practice creating and utilizing a heap structure to prioritize personal projects. I know there is a heap library, but I wanted to implement my own as a way to understand it better. The program allows you to create a project list(house work, work projects, yard work, etc.) and add specific tasks with a prioritization level in order to sort them. 

The max heap is standard save the ability to delete a project by name in addition to popping off the max. There is also a method that lets you print a sorted list of the desired project category. However, I am not very satisfied with how I accomplished it. I ended up creating a copy of the list, popping off the max values in order, adding them to another list, and then printing that list. I am sure there is a better way to accomplish this, but it was the solution I came up with.

One of my main focuses as I create my projects is to implement best practices with my code as much as possible. If anyone has any suggestions on how I can improve in this area I would love to hear it. I have a lot of practice getting feedback so I welcome hearing about areas I can improve.
How to avoid frustration while learning something new
Tags: career, productivity, motivation, writing
Published: 2021-05-29 19:24:25

_Cover Photo by [Sebastian Knoll](https://unsplash.com/@skenb?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on Unsplash_

Daily we will face wars of ego, fr able, discouragement. However, we cannot let that win us over. Close to bedtime, I was doing something when the frustration trigger suddenly went off. But, I remembered the very agreement I made with myself to go through moments like this.

To perhaps make you understand a little more about this agreement, let’s go back a few steps.

There are moments when life gives us the impression that we are stagnant and that we are unable to evolve. And, if we are not careful, it is at this moment that our mind begins to create nightmares in ourselves, blocks, etc. I found myself trapped in this type of situation every day. I didn’t feel complete in what to do, I wanted to look for more, I wanted to improve, but I didn’t know-how. I decided to sit down and understand what I could eliminate concerning what hindered me, before trying to add what could help. And because of this elimination, I ended up, on a shorter path, seeing what I needed most.

After that, seeking the common maximum of everything, what stood out among all was the practice. If I want to be more focused, I need to start creating ways to work on my focus. If I want to be smarter, I need to train my intelligence. If I want to drive better, soon I will need to train, improve.

Descending from the main idea to be the practice, we have to start thinking then about the ways that we can create to apply sustainably. If you have in mind that you need to be more focused, then you need to find a way to apply this. For example, whenever I am in the middle of an activity and I feel like doing anything else that is not related, I take a paper and write it down: check if that movie on Netflix is ​​still available. So, in a free moment, I take and zero that list. Silly thing but that works for me.

However, it is important to stress that everything here needs to be built in a way that works for you and not for others. This is a pleasant way of working on my focus. But that may be for you it may not be.

Don’t skip steps, or take steps bigger than legs, grow evolutionary.

These were some of the ideas that I traced and woke up with myself to work on points in my person that I sought to improve. But all of them have a common goal: to share and help people who may be in the same limbo as I have been. That is, apply the golden rule (gold for me in this case), Learn in Public.

The focus is more technological, but I wanted to try to introduce the idea by clarifying that thought. If it was clear? I don’t know, I will change in the future too.

I have already prepared a text to follow this one, so click on the link up there. If you got here it costs nothing to read, but only if you want too =\]
Video Games 📺🕹️ in Python
Tags: gamedev, python, programming
Published: 2021-06-04 05:19:03

The first thing that made me attracted to computers 🖥️ was 8-bit video games.
My father has presented me an Atari 800 XL in 1990, I do not remember exactly how I felt at first, but before I knew it, I was sitting holding the joystick 🕹️ and pressing that orange button trying to hit the space invaders 📺 !
Then, after a month or so, Samuel - my father - asked me to join him in writing a small program using Basic language. Naturally, I didn't understand a word, but I followed him and somehow this seemed like a mission to do something important and that I was asked by the big guy to do it. I felt so important  😀 !

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

I wrote several programs using that silver book, and the result was a bouncing circle, a flower or a sun and I was very happy, I couldn't believe that I wrote some lines and created something on the TV screen - it felt kinda magical!

Years later, 25 years later to be precise, I discovered Python programming language and one of the first modules that I loved in Python was the "🐢 turtle module" , and if you have Python installed with a proper IDE, trying to hover over turtle module, this is what you will get :


> (module) turtle
Turtle graphics is a popular way for introducing programming to kids. It was part of the original Logo programming language developed by Wally Feurzig and Seymour Papert in 1966.

> Imagine a robotic turtle starting at (0, 0) in the x-y plane. After an import turtle, give it the command turtle.forward(15), and it moves (on-screen!) 15 pixels in the direction it is facing, drawing a line as it moves. Give it the command turtle.right(25), and it rotates in-place 25 degrees clockwise.

> By combining together these and similar commands, intricate shapes and pictures can easily be drawn.

Then I started to look up codes on the internet on how to recreate the classical games that I was playing when I was 7 or 8 y.o on Atari, like **Pong** , **Missile Command**, **Space Invaders**, **Pacman**, **Donkey Kong**, and many more like **Outlaw**, **basketball**, **Spy Hunter**, **Zorro**..etc , and the first four were on cartridges, the rest were on cassettes [ I did not own a Disk Drive, but a gray cassette recorder  where the game can load for half an hour, and very often it crashes before the end of the loading time 😭!!

My programming journey started because I loved these 8-bit video games on Atari and got intrigued and curious on how to create such games, I had to understand that computers are really dumb and they only do what you asked them to do; I had to learn everything about hardware and software - at the time - so when I will sit and start coding a game, I can imagine how the hardware is receiving my instructions in the form of 0s and 1s then give me what I want to see on the screen.
Maintainer AMA : Liyas Thomas of Hoppscotch 🙏

Tags: opensource, showdev, webdev, ama
Published: 2021-05-30 15:54:43

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cdfv8py7qc8cm6g6eqbt.png)
Community is at the heart of everything Open Source!

[**Post AMA Questions here **](https://aviyel.com/post/91/announcing-ama-with-hoppscotch-maintainer-liyas-thomas)

We’re kick-starting our Maintainer AMA series, and we are thrilled to announce our first AMA with Liyas Thomas, the maintainer of [Hoppscotch](https://github.com/hoppscotch/hoppscotch) .One of the best ways we’ve discovered of gathering honest feedback and creating meaningful interactions is by hosting an ‘Ask Me Anything’ (AMA) session. Contributors and community members can submit their questions and the maintainer can directly respond to each one of them and interact with key participants.

Aviyel co-founders, [Jose](https://twitter.com/josekuttan) & Jacob will be curating the AMA session with other members to answer all the questions related to the Hoppscotch community.

Pushing our continuous efforts to reach out to the maximum number of audiences across the globe, we have always tried to get in touch with some of the best communities in the Open Source realm.

Speaker:🚩Liyas Thomas, Maintainer [Hoppscotch](https://github.com/hoppscotch/hoppscotch)
Save the date: 📆 Monday, May 31st, 2021
Time-7 PM IST  (Asia) /   7 PM PST (North America)
Get ready with your questions!10 best questions get a chance to win exclusive merchandise & one on one time with the Maintainer.



The one caveat- this is an AMA about Hoppscotch and Open source! If you ask questions about plumbing or politics, you might not get an answer.

Catch you then,

Team Aviyel
Why is my gitignore not ignoring?
Tags: github, whoopsies, blog
Published: 2021-05-30 19:21:54

Well. {ಠʖಠ}. I wrote:

```bash
touch gitignore
```

Then wondered why the files that were supposed to be ignored somehow weren't being ignored... 🤦

IT IS 👇

```bash
touch .gitignore
```

{% youtube VZX0uBm5Dgk %}

⚠️ This is LOUD!
Originally written on [byIbrahimAli.com](https://www.notion.so/byibrahimali/It-s-not-gitignore-it-s-gitignore-e0c3d3cdd35247e1907ca8e746e606ce) 💛
Forecast for the development of fintech trends: banking applications will be replaced by embedded finance

Tags: saas, development, software, dedicated
Published: 2021-05-31 07:38:46

Despite strong turbulence, global trends in the financial sector remain the same: increased inclusion, improved customer experience, and the development of the digital economy. Consumer demands determine the vector of changes in the industry.

Read more https://ardas-it.com/forecast-for-the-development-of-fintech-trends-banking-applications-will-be-replaced-by-embedded-finance
Why I don't like the "Tech Lead" role
Tags: team, techlead, management, leadership
Published: 2021-06-04 13:06:44

---
title: Why I don't like the "Tech Lead" role
published: true
date: 2021-05-31 00:00:00 UTC
tags: team,techlead,management,leadership
canonical_url: https://jhall.io/archive/2021/05/31/why-i-dont-like-the-tech-lead-role/
---

I was recently discussing Team Leads and Tech Leads (and if they are different) on technical/software teams. Here I decided to share my thoughts on Tech Leads (maybe I’ll do Team Leads another day).

To clarify what I’m talking about, here’s what I mean when I say “Tech Lead”:

> _A “tech lead” makes technical decisions. I.e. they choose tools, frameworks, etc. Probably on the career track toward “systems architecture”._

In my personal opinion, the “Tech Lead” role is an anti-pattern, because it’s usually a title conferred in lieu of an actually meaningful recognition of someone’s contribution. That is to say, thet title is a form of what Erik Dietrich calls [Carnival Cash](https://daedtech.com/carnival-cash-the-cult-of-seniority/).

Further, even when technical leadership is actually needed, that role doesn’t really make sense on a per-team level. It usually makes sense on an organizational level. Giving that title out on a team is again, usually a form of carnie cash, and is often (ab)used as a way to “lord it over” people who are “less technically capable”.

If your organization has a “Tech Lead” title, I encourage you to do your best to only offer it to people when it is needed by the organization (i.e. the organization is lacking in recognized technical leadership), and also attach it to a meaningful salary increase (2% doesn’t cut it), so that it becomes actually meaningful. In particular, don’t start handing out the title like candy on every team, unless every team actually needs that role, and every team actually has someone qualified (and humble) enough to handle the role responsibly.

* * *
_If you enjoyed this message, [subscribe](https://jhall.io/daily) to <u>The Daily Commit</u> to get future messages to your inbox._
GitOps for Confluent Schema Registry
Tags: kafka, schemaregistry, gitops
Published: 2021-06-01 12:28:42

If you are like me, you love version control. Not so much the CLI interface (git isn't very beginner-friendly after all), but the concept of having a changelog of what has been done and - if you use meaningful commit messages - also the reasons behind a change.

Another thing that I love is Apache Kafka and that it is serialization-format agnostic. However most of the time, I use Avro-serialization because having a schema does bring a lot of pros to the table: it provides a safe way to change the contracts producers and consumers share and we all know:

> Change is inevitable in life. - Jack Canfield

## Schema evolutions and registry

[Confluent's Schema Registry](https://docs.confluent.io/platform/current/schema-registry/index.html) provides a central storage and retrieval API for schemas to be used by Kafka consumers and procuders. It also checks compatibility for schema evolutions to enable changes be backward- and/or forward-compatible.

Schema evolutions are often performed automatically when producers change the schema they use to write. This may be fine for prototyping but can lead to serious issues in production: in case of an error in the schema a rollback might not be as easy as going back to the previous version as eg. a newly-introduced field cannot be removed as easily and might need a lot of manual intervention to get back to the previous state. Also if the schema evolution fails because of compatibility issues, it will fail only when the changes are deployed and the new code runs for the first time. This one can be mitigated by testing on another environment first (which you should do regardless of this problem), but still.

## Open Source ftw!

Now I wanted to combine both technologies and open sourced [schema-registry-gitops](https://github.com/domnikl/schema-registry-gitops) to prevent from the above issues: having a version-controlled history of schema changes and push them to the registry only when ready and reviewed in QA. It can be used in CI/CD pipelines to ensure that schema changes are compatible with previous versions and can be part of your code review process.

My team at [FLYERALARM](https://www.flyeralarm.com/) uses it in our Atlassian Bamboo Pipelines to ensure that no bad schema evolutions make it into production and we've had no issues since! It's written in Kotlin using the APIs that Confluent provides for Schema Registry and Avro-serialization.
Debugging PHP with XDebug and VsCode
Published: 2021-05-31 14:24:45

<https://www.youtube.com/watch?v=LNIvugvmCyQ>
<http://xdebug.org/wizard>

At .bash_profile add `export XDEBUG_CONFIG="idekey=VSCODE"`

.vscode/launch.json

```
"configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9000
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000,
            "runtimeExecutable": "/Applications/MAMP/bin/php/php8.0.0/bin/php"
        }
    ]
```

/Applications/MAMP/bin/php/php8.0.0/conf/php.ini

```
[xdebug]
  zend_extension = /Applications/MAMP/bin/php/php8.0.0/lib/php/extensions/no-debug-non-zts-20200930/xdebug.so
  xdebug.mode=debug
  xdebug.start_with_request=yes
  xdebug.remote_enable=1
  xdebug.remote_autostart=1
  xdebug.client_port = 9000
  xdebug.client_host = "127.0.0.1"
  xdebug.idekey = VSCODE
```
Kotlin monthly wrap up - May 2021
Tags: kotlin, bestofdev, android
Published: 2021-06-01 20:22:01

Let me share with you 3 interesting articles from [#kotlin](https://dev.to/t/kotlin/top/month) from May 2021.

I follow here the example from @sandordargo [for #c++](https://dev.to/sandordargo/the-3-most-interesting-c-posts-of-may-2021-1974), and like him, it's not a popularity contest, I add subjectivity to the list yet try not to include multiple articles from the same author.

This month, it's all about Jetpack Compose!

----

@zachklipp does a deep dive inside Compose reactive state model. He takes an historical look at how we used to write code with callbacks, what RxJava brought to the table and what questions were left open. He then shows how Jetpack Compose allows us to write fully reactive apps with less boilerplate and hopefully less cognitive overhead than we’ve been able to do in the past. Simple, clear code that is easy to read and understand will (usually) just work as intended. In particular, Compose makes mutable state not be scary anymore.

{% link https://dev.to/zachklipp/a-historical-introduction-to-the-compose-reactive-state-model-19j8 %}

---

@tkuenneth has started a cartography of Jetpack Compose. It's not a tutorial on how to use it, but an exploratory approach of what Jetpack Compose is made of. What belongs to the runtime? What is in the compiler? What is inside the foundation?

{% link https://dev.to/tkuenneth/cartographing-jetpack-compose-compiler-and-runtime-1605 %}

---

So much for the theory, here goes some coding. Sebastian Aigner from @kotlin tells us how he built a small clone of the classic arcade game Asteroids with Jetpack Compose for Desktop, a port from JetBrains to MacOS/Windows/Linux. Impressively the code is only 300 lines of code and was written in one night!

{% link https://dev.to/kotlin/how-i-built-an-asteroids-game-using-jetpack-compose-for-desktop-309l %}

---

Happy coding, feel free to share your favorite one in the comments.
flutter-doctor: Android Studio (not installed)
Published: 2021-06-02 10:47:55

After installing Android studio and run "flutter-doctor" on windows terminal, it gives me an error saying that: Android Studio ( not installed ). After some research, I found this solution that worked pretty well.

On terminal type: flutter config --android-studio-dir=<android studio path> 

**Example on Windows:**
flutter config --android-studio-dir="C:\Program Files\Android\Android Studio"

**Example on Linux:**
flutter config --android-studio-dir="/snap/android-studio/current/android-studio"
Node.Js Api Cheat Sheet
Tags: node, cheatsheet, javascript, java
Published: 2021-06-02 16:09:23


### Spawn - passthru the in/out

    var spawn = require('child_process').spawn;
    var proc = spawn(bin, argv, { stdio: 'inherit' });
    proc.on('error', function(err) {
      if (err.code == "ENOENT") { "does not exist" }
      if (err.code == "EACCES") { "not executable" }
    });
    proc.on('exit', function(code) { ... });

    // also { stdio: ['pipe', 'pipe', process.stdout] }
    // also { stdio: [process.stdin, process.stderr, process.stdout] }

    proc.stdout.on('data', function (data) {
    });
    proc.stderr.on('data', function (data) {
    });

[all]: http://nodejs.org/api/all.html
### Snippets

    info = require('../package.json')
    info.version

    process.stdout.write(util.inspect(objekt, false, Infinity, true) + '\n');

### [Globals] exec

    var exec = require('child_process').exec,

    var child = exec('cat *.js bad_file | wc -l',
      function (error, stdout, stderr) {
        console.log('stdout: ' + stdout);
        console.log('stderr: ' + stderr);
        if (error !== null) {
          console.log('exec error: ' + error);
        }
    });

### Globals

    __filename
    __dirname

### Reference
* [Node.Js Api Cheat Sheet](https://cheatsheetmaker.com/nodejs-api) - [Cheat Sheet Maker](https://cheatsheetmaker.com)