teleren/devto huggingface dataset:
Hosting providers - free & paid
Tags: webdev, programming, tutorial, productivity
Published: 2021-11-12 09:55:37

---
title: Hosting providers - free & paid
published: true
date: 2021-11-01 09:09:09 UTC
tags: webdev,programming, tutorial, productivity
canonical_url: https://boobo94.github.io/resources/hosting-providers/
---

## Freemium Resources

1. [Heroku](https://heroku.com)
2. [Netlify](https://netlify.com)
3. [Vercel](https://vercel.com)
4. [Firebase](https://firebase.com)
5. [Surge](https://surge.sh)
6. [Render](https://render.com)
7. [Hostman](https://hostman.com) - free for frontend always, pay only for backend apps.
8. [Glitch](https://glitch.com)
9. [Fly](https://fly.io)
10. [Fleek](https://fleek.co)
11. [Begin](https://begin.com)
12. [Stormkit](https://stormkit.io)
13. [Deta](https://deta.sh)
14. [Commonshot](https://commons.host) -  Static web hosting and CDN.
15. [Heliohost](https://heliohost.org) - PHP, Ruby on rails, perl, django, java(jsp)
16. [Fast](https://fast.io)
17. [kintohub](https://kintohub.com) - supports the static site, web app, backend apps.
18. [Torus.host](https://torus.host)
19. [Bip](https://bip.sh) - Static web hosting provider
20. [Cloudflare pages](https://pages.cloudflare.com) - Static web hosting provider
21. [GitHub Pages](https://guides.github.com/features/pages/) - Static web hosting provider
22. [GitLab Pages](https://docs.gitlab.com/ee/user/project/pages/) - Static web hosting provider

## Paid providers

1. [AWS](https://aws.amazon.com/)
2. [Linode](https://www.linode.com/)
3. [Google Cloud Platform](https://console.cloud.google.com)
4. [Digitalocean](https://www.digitalocean.com)
5. [Microsoft Azure](https://azure.microsoft.com/en-us/)
6. [Vultr](https://www.vultr.com/)
7. [Alibaba Cloud](https://eu.alibabacloud.com/)

Sources:

- [Free hosting providers for front-end & back-end applications](https://dev.to/vuelancer/free-deployment-providers-bk0)
- [https://twitter.com/parik36/status/1454817956282650630](https://twitter.com/parik36/status/1454817956282650630)
Adding PHP 7.4 to Laragon Lite
Tags: php, laravel, webdev, windows
Published: 2021-11-01 08:58:35

> It's also recommended to use the Laragon Full version if you don't want to bother with this post.

If you download the laragon lite from the [official site](https://laragon.org/download.html), it will give you the old php 5.6. So when you not ready to move to php 8 and want to stay a little longer with php 7.4 in laragon, here are the instruction.

## Downloading The PHP 7.4 Binary

You can go to https://windows.php.net/download and you can see the option to download the latest available PHP 7.4 version, I got PHP 7.4 (7.4.16) at the time, you can directly download it by this link https://windows.php.net/downloads/releases/php-7.4.16-Win32-vc15-x64.zip (the link may be dead, and you have to find the link of the latest version)

After it downloaded, you can create a folder inside `C:\laragon\bin\php` (or your own custom directory) named after the downloaded zip file. The folder name for me is `php-7.4.16-Win32-VC15-x64` and then extract anything inside `php-7.4.16-Win32-vc15-x64.zip` to this folder.

## Switching to PHP 7.4

Try to right-click on Laragon desktop app, choose PHP, and click the `php-7.4.16-Win32-vc15-x64` option to change to this version.

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

Reload or restart the Laragon's apache server. When you hit the [http://localhost](http://localhost) on the browser, you should see this:

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

and by opening the Laragon's Cmder console and type `php --version`, you should see this too

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

which indicates that the php 7.4 is properly installed.
Getting Started with the Blazor Kanban Component
Tags: blazor, webdev, dotnet, csharp
Published: 2021-11-01 08:57:15

Learn how to get started with the Syncfusion [Kanban component](https://www.syncfusion.com/blazor-components/blazor-kanban-board) in a Blazor WebAssembly application. You will also learn how to configure a few of its basic features, like populating cards and enabling Swimlane. 

Download an example from GitHub: https://bit.ly/3vCPzac 

Refer to the following documentation to learn about the Blazor Kanban component: https://bit.ly/3C5lxOE 

Check out this online example of the Blazor Kanban component: https://bit.ly/3DTYFlE

[Blazor Kanban Board - Manage Tasks with Swimlane](https://www.syncfusion.com/blazor-components/blazor-kanban-board)
- Visually organize and prioritize your tasks with a transparent workflow.
- Efficient control to manage software/product development, project management, and task planner using swimlane, cards, WIP validations, and more.
- A rich set of built-in functionalities such as data binding, swimlane, templating for card, scrolling, drag-and-drop, stacked header, WIP validations, responsiveness, various built-in themes, and much more.

Get a free license: https://bit.ly/3jOTvQt

{% youtube EYDC0RCMZKg %}
The admin panel I wanted
Tags: admininterface, security, gdpr
Published: 2021-11-01 08:48:42

---
title: The admin panel I wanted
published: true
description: 
tags: #admininterface #security #gdpr
//cover_image: https://direct_url_to_image.jpg
---
While working at an insurtech, I had to roll out a new microservice every month or so.

Each time we did this it came with a new admin panel, sets of credentials and another backend tool to keep maintained.

From working at a few different startups it seems to me that everyone starts from scratch and usually build something that's:
* **{resources}** Built with a fraction of the resources really needed and gets limited improvements
* **{permissions}** Has no or very limited permissions/user management
* **{compliance}** Is in no way GDPR or any other data legislation compliant
* **{ui}** Has an interface that looks terrible and is probably hard to navigate
* **{audit}** Has no way to audit what users are doing or have done


At the insurtech at least we had a template for the admin panels. And yes we could/should have gotten around to integrating them into a SAML service...but we were very busy and had deadlines to hit.

So there are a bunch of admin interface options out there. There are vue/react front-ends that look appealing but don't take on the heavy lifting of permissions management.

We came across Forest Admin but it wasn't fully self-hosted and our IT team wouldn't allow anything near the production DB that might pull data out even if it promised not to.  

This seemed like a pretty good opportunity to build a tool that would solve my problem.

So what I had in mind was something where:
* **{multiple dbs}** From one interface you can connect to as many databases and tables as needed.
* **{role based permissions}** Users could see the data in any given database table that they had permissions to access.
* **{search}** Users could search through the data in those tables to find what they needed.
* **{crud}** Where relevant users could create/update/delete records.
* **{user management}** Permissions are centrally managed ideally in a way that someone on the support desk could manage rather than a developer.
* **{charts}** Possibly some other bits like seeing how many new rows had been added to a table or some basic charts to see what was going on.

I've been building this tool for quite a while now and am using it on some of projects. It's on [github as MissionKontrol](https://github.com/Mission-Kontrol/MissionKontrol). 

I've just come back to it after a bit of a break because it took a bit of energy to get it all mostly working.

If you're interested in testing it, please write to me on [Twitter](https://www.twitter.com/cnvk).
First week in task force 4 at Awesomity Lab and Code of Africa.
Tags: awesomitylab, taskforce, codeofafrica
Published: 2021-11-01 08:09:39

My first week was a week of learning new things and new experiences. It all started with an interesting game we played in two different teams. The may purpose of the game was to teach us the importance of teamwork, and how a team should collaborate towards achieving some goals. later on come another interesting session which I can call a self-discovery session, where I did a personality test to find my personality, and the result was amazing, even seeing people of a high profile who share the same personality was awesome.

During the week we also had two amazing sessions with Lionel (CEO at #awesomotylab) about creating good and efficient user stories while working on a project, my main takeaway from this was that the best way to write good user stories is to write them in a user perspective. He also introduced us to SHOW APP which is the app we will be working on during the Bootcamp and we proceeded by creating user stories for it as a team, and it was a mind-blowing experience.

Intercultural communication was also something we were introduced to by Anja(from #codeofafrica) which helped us understand well how to collaborate with others while working in a distributed team having people from different cultures.

We ended the week by being introduced to the whole #awesomitylab team followed by an amazing game in which were beaten by the #awesomity team only because they were the ones who come up with the game.

In a few words, my first week was at #awesomitylab and #codeofafrica was awesome, I am looking followed to the second week brings.
SiteGround | Laravel Queue Cron Job
Published: 2021-11-01 07:58:47

`php /home/customer/www/example.com/public_html/foldername/artisan queue:work --stop-when-empty --timeout=60>> /dev/null 2>&1`

Replace foldername with the name of the folder where the artisan is located. Generally, it is located on the root folder of the project (not inside public folder). 

https://crontab.cronhub.io/

FOR Ubuntu:
* * * * *  sleep 10; cd /path_to_your_project && php artisan queue:retry all >> /dev/null 2>&1

> sleep 10; is for 10 Sec
code every day with me
Tags: javascript, programming, 100daysofcode, beginners
Published: 2021-11-01 07:37:28

##--DAY 13--
Hi, I am going to make #100DaysOfCode Challenge. Everyday I will try solve 1 problem from leetcode or hackerrank. Hope you can go with me until end.
**Now let's solve problem today:**
- Problem: Sales by Match
- Detail: [here](https://www.hackerrank.com/challenges/sock-merchant/problem)
- Idea: sort then check each pair in array.
- My solution (javascript):
```
function sockMerchant(n, ar) {
    let count=0,i=0;
    ar.sort((a,b)=>a-b);
    while(ar.length>=2){
        if(ar[0]==ar[1]){
            count++;
            ar.splice(0,2);
        }
        else{
            ar.shift();
        }
    }
    return count;
}
```
-->*If you have better solution or any question, please comment below. I will appreciate.*
Python Program To Find If A word/number is a palindrome or not.
Tags: python, programming, beginners, tutorial
Published: 2021-11-01 07:34:09

## What Is A Palindrome?
Like every programmer does, let's google it! 
😉 
***googles***
A word, phrase, or sequence that reads the same backwards as forwards, e.g madam or nurses run.

## Problem
To find if a word/number is a palindrome or not.

### Sub Problems
- Get user input.
- Check if the input is an integer or string.
- Reverse the input.
- Check if the initial input is same as the reversed one.

### Pseudo Code

```
Input = GetUserInput()
reversed_input = reverse(input)

if Input is equal to reversed_input:
print("It Is A Palindrome Number")
else:
print("it is not a palindrome number")
```

## Let's Finally Code It!

- Get User Input
```python
userInputw = input("Enter The Value:\n") #w for with whitespace
userInput = userInputw.replace(" ", "") #removing whitespace so we can test for phrases like nurses run.
```
- Reverse The Input
```python
reversedInput = userInput[::-1]
```
- Check If The Initial Input is same as the reversed one.

```python

if reversedInput == userInput:
    print(f"{userInput} is equal to it's reverse {reversedInput} therefore it is a palindrome number.")
else:
     print(f"{userInput} is not equal to it's reverse {reversedInput} therefore it is not a palindrome number.")
```

## Making the Code Reusable

- To make the code reusable let's put the logic in a function.

```python 

def reverse_value(value):
 reversedValue = value[::-1]
 return reversedValue

def is_palindrome(value):
   reversedValue = reverse_value(value)
    if reversedValue == value:
        return True
    else:
         return False

```

## Full Code
 ```python 
def reverse_value(value):
 reversedValue = value[::-1]
 return reversedValue

def is_palindrome(value):
    reversedValue = reverse_value(value)
    if reversedValue == value:
        return True
    else:
         return False

userInputw = input("Enter The Value:\n")

userInput = userInputw.replace(" ", "")

isPalindrome = is_palindrome(userInput)

if isPalindrome:
    print(f"{userInputw} is equal to it's reverse {userInputw} therefore it is a palindrome.")
else:
     print(f"{userInput} is not equal to it's reverse {reverse_value(userInput)} therefore it is not a palindrome.")

```
## Key Takeaways:
- [::-1] Reverses a string.
- string.replace(" ", "") replaces all whitespaces with no whitespaces.
- Before jumping right into code, break the problem Into sub problems then do some pseudo code, then write the code. After That You can optimise it.
- Implement this if the problem is hard or you cannot exactly think what to code. or else it is a time waster for easy problems.
- Make The Code Reusable.

## Run it on repl
{% replit @MRINDIA1/Palindrome %}

## Github: https://github.com/Dev2212/Palindrome-Finder-In-Python 

*HAPPY CODING!*
Hacktoberfest: Flytesnacks Project "update tuple output examples"
Tags: hacktoberfest, flytesnacks, documentation
Published: 2021-11-01 07:25:13

### Introduction
This is my second contribution to the **[flyte](https://github.com/flyteorg/flyte)** source project. Flyte is a workflow automation platform for complex, mission-critical data, and ML processes at scale. Flyte is more than a workflow engine -- it uses workflow as a core concept, and task (a single unit of execution) as a top-level concept. Multiple tasks arranged in a data producer-consumer order creates a workflow. Workflows and Tasks can be written in any language, with out-of-the-box support for Python, Java and Scala.

### Project

I chose the [flytesnacks](https://github.com/flyteorg/flytesnacks) project, which is one of the component repos of [flyte](https://github.com/flyteorg/flyte) and is the `examples, tips, and tricks` of the **Flyte project**. It is very interesting that this sub-project is still at the incubating stage. Since this project is focus on tutorials and documentation, its documentation contains a lot of materials. The documentation was generated using `Sphinx documentation` in `.rst` format.

## Issue 
The [issue](https://github.com/flyteorg/flyte/issues/1710) was raised here. The second part of the issue is to check all doc files under https://github.com/flyteorg/flytesnacks/tree/master/cookbook. 

## Challenge
The most challenge part of this issue was to go through the whole cookbook and precisely locate different sites where the problem occurs. As a first time contributor to an opensource project, you have to spend a lot of time to get familiar with the structure of the project. 

## Solution and Pull Request
To target the locations of problem precised and efficiently, several search methods were used. This project is relatively formal compared with other projects. It requires `git commit --signoff`, which means every commit must have a GitHub username and email signature. Moreover, it has a thoroughly automation tests. You have to spend sometime to get all tests passed. The [PR](https://github.com/flyteorg/flytesnacks/pull/465) to solve this issue contains several commits and a lot of comments. 

The main problem is the code search engine offerd by GitHub can not index and search code in relatively large code file (roughly larger than 0.5 MB). However, documentation files can be very large. Thus, my first commit did not fully cover all problems in the documentation. At this stage, the [comment](https://github.com/flyteorg/flytesnacks/pull/465#issuecomment-954418529) of the project maintainer is very helpful, and I setup a local working environment and check doc files one by one manually by searching keyword such as `def`, `->` and `-> (`. Finally, this PR was completed and got merged.
Hacktoberfest: Flytekit Project "update tuple output examples"
Tags: hacktoberfest, flytekit, documentation
Published: 2021-11-01 07:24:09

### Introduction
This is my first contribution to the **[flyte](https://github.com/flyteorg/flyte)** source project. I have completed two PRs for this opensource project, both on documentations. This is a Production-grade project, which has been deployed in large companies such as **lyft**. Thus, I have learnt a lot through making my contributions, reading the documentation and communicating with the project maintainers.

### Project

I chose the [flytekit](https://github.com/flyteorg/flytekit) project, which is one of the component repos of [flyte](https://github.com/flyteorg/flyte) and is the `python SDK and tools` of the **Flyte project**. The flykit project was written in python and is also production-grade project. The documentation was generated using `Sphinx documentation` in `.rst` format.

## Issue 
The [issue](https://github.com/flyteorg/flyte/issues/1710) was raised here. The first part of the issue is to check all doc files in https://github.com/flyteorg/flyte/tree/master/rsts, and https://github.com/flyteorg/flytekit/tree/master/docs.

## Challenge
The most challenge part of this issue was to precised locate the problem.

## Solution and Pull Request
To target the locations of problem precised and efficiently, several search methods were used. For this [PR](https://github.com/flyteorg/flytekit/pull/726) and [commit](https://github.com/Qiwen-Yu/flytekit/commit/372d980cf95d0ed5245d59a17830e2e64d45ff19), there are not too many doc files in this case. Thus, the search engine on GitHub webpage is adequate.
Overview of LLVM Architecture
Tags: llvm
Published: 2021-11-01 07:22:44

# First of all, let's see a graph of LLVM Architecture.
* Picture 1:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ir080q7fyybkj4gp2ql.png)
[Click here to see HD picture](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ir080q7fyybkj4gp2ql.png)

As you can see in *Picture 1*, **source code** of arbitrary language(C, C++, Go, etc) are compiled by an appropriate compiler to **LLVM-IR**(**LLVM**'s Intermidiate code Representation) codes, these **LLVM-IR** codes are saved in *.o* files(object files).
Then, an **Optimizing Linker** is used to link the *.o* files, libraries of the native system, and libraries of **LLVM Architecture** into a *.exe* file, the *.exe* file contains both **LLVM-IR** and **native code**(**Machine Code** which can run on the **Host Machine**).

### Now, let's have a break
Before we continue describing *Picture 1*, we'd better illustrate the meaning of *Offline* and *Profile & Trace Info* first.

#### According to the context, *Offline* can mean:
1. While *.exe* file is not running(in idle time).
2. After *.exe* file is generated.
3. After the program(*.exe* file) is installed.
4. On **Host Machine**(User's Computer).
5. Without **source code**(.c, .cpp, .go, etc).


#### *Profile* means:
Information about which regions of the *.exe* file's code runs more frequently on **Host Machine**, these frequently-run code regions are called **Hot Code**s.

### Continue
After *.exe* file is generated, the **Run-time Optimizer** is used to capture *Profile & Trace Info*, use the information contained by *Profile* to find **Hot Code**, optimize the **LLVM-IR** contained by *.exe* file to improve **Hot Code**'s performance at the cost of **Cold Code**'s performance. This kind of optimization is called **Profile-guided Optimization**.
Then, the **Run-time Optimizer** passes the generated **Native Code** to **Host Machine** to run it.

Sometimes, the **Profile-guided Optimization** is too sophisticated to perform at run-time or the **Profile-guided Optimization** is valuable enough to retain long-term, so the *Profile* information is passed to the **Offline Reoptimizer**, the **Offline Reoptimizer** use the information contained by *Profile* to find **Hot Code**, optimize the **LLVM-IR** contained by *.exe* file to improve **Hot Code**'s performance at the cost of **Cold Code**'s performance.
Then, the **Offline Reoptimizer** passes the reoptimized **LLVM-IR** and **Native Code** to *.exe* file to save them long-term.
My experience in first week at Awesomity Lab Bootcamp
Published: 2021-11-01 07:09:44

Today I would like to share the experience I got in the first week of Bootcamp at Awesomity collaborated with Code of Africa. On the first day, we introduced ourselves, and Awesomity collaborated with Code of Africa started to board us by telling us more about the company and their very interesting culture!
I have got a chance to know the personality type that helped me know who am I and which is hidden in me so that I can improve it; not only that but also know my weakness that will help me work in a team.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yiiphaz231p8jmjb80pj.jpg)
Teamwork
Teamwork is the most important for software engineers because it helps the engineers share the ideas about the project they are doing, not that but also providing the in the team if anyone blocked and asking feedback and providing the feedback either positive or negative in a group.

I have got much experience of virtual meetings professionally with clients or managers, or anywhere I can be used. What I have learnt so far are what to do before, during, and after the virtual meeting. I have learnt a new thing called miro used to collaborate remotely on a whiteboard, which is impressive.


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

A user story, a user story is a tool in Agile software development that is used to capture a description of software features from the user's perspective. The user story describes the type of user, and what they want to do and why. The purpose of a user story is to write down how the project will deliver back to the end-user.

Thank you for reading!
Create a Mobile Game in Just 8 Steps
Published: 2021-11-01 07:06:03

---
title: Create a Mobile Game in Just 8 Steps
published: true
description: For developing mobile games, step by step game development process needs to be followed.
tags: 
//cover_image: https://direct_url_to_image.jpg
---

For developing mobile games, step by step game development process needs to be followed.

The below 8 steps would help to create a mobile game successfully.

1. Build Up a Story
2. Choose [mobile game engine](https://www.capermint.com/blog/top-20-mobile-game-engines/)
3. Design Game Structure & Wireframe
4. Develop a game
5. Mobile Game Testing
6. Choose Monetization Strategy
7. Launch a mobile game
8. Post-Support

[Developing a mobile game](https://www.capermint.com/mobile-game-development/) is not as simple at all as it seems, and you will have to face various deviations and problems throughout the process. You will have to put many effort, and you have to work hard if you wish to develop the perfect game.