teleren/devto huggingface dataset:
Hire FinTech Software Developers 
Tags: fintech
Published: 2021-09-14 13:21:27

High-performance, secure, reliable, consumer-focused, scalable, future-oriented, and built around specific needs — these are the key characteristics of the software we develop. Over the years, Steelkiwi helped businesses build functional and technologically advanced financial software systems.
https://steelkiwi.com/expertise/fintech-software-development-company/
Custom eLearning software development
Tags: elearning, education
Published: 2021-09-14 12:53:44


No matter what type of eLearning platform you want to develop, we can help. At Steelkiwi, we have the domain knowledge, technical competencies, and experience required to create education software for K-12 schools, higher education, corporate learning, and the mass market.

https://steelkiwi.com/expertise/elearning-software-development/
How to setup a gateway for Swagger UI
Published: 2021-09-14 12:52:11

If you want to setup a **Swagger UI** pod in your Kubernetes cluster and you have a gateway, you will have some issue if you just have exposed the **main** route.

*If you have the issue, you will have the next message which appears in a modal with an input:*
> Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. The base url is the root of where all the swagger resources are served. For e.g. if the api is available at http://example.org/api/v2/api-docs then the base url is http://example.org/api/. Please enter the location manually

---

## Solution

To use it correctly, you need to allow a list of paths :
- /swagger-ui/**
- /swagger-resources/**
- /swagger-ui.html
- /v2/api-docs 
- /webjars/**
- /view/** - *[This one is configurable]*

### Examples
#### Spring Security Correction Example 
```java
private static final String[] AUTH_WHITELIST = {
        "/swagger-resources/**",
        "/swagger-ui.html",
        "/v2/api-docs",
        "/webjars/**"
};

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers(AUTH_WHITELIST);
}
```

[source](https://stackoverflow.com/questions/49155420/springfox-swagger-ui-html-unable-to-infer-base-url-caused-by-missing-cookies)

#### Spring Cloud Gateway predicates
```yaml
spring:
  cloud:
    gateway:
      routes:
        - id: swagger-ui
          uri: ${swagger-ui_url}
          predicates:
            - Path=/swagger-ui/**,/swagger-resources/**,/swagger-ui.html,/v2/api-docs,/webjars/**,/view/**
```

- [Spring Cloud Gateway documentation](https://cloud.spring.io/spring-cloud-gateway/reference/html/)
- [Baeldung example configuration Spring Cloud Gateway](https://www.baeldung.com/spring-cloud-gateway-routing-predicate-factories#:~:text=In%20a%20nutshell%2C%20a%20Predicate,backend%20after%20applying%20any%20filters.)

---

I hope it will help you!
413 Request Entity Too Large!
Tags: awsthai, beanstalk, nginx, http413
Published: 2021-09-14 12:37:06

---
title: 413 Request Entity Too Large!
published: true
description: 
tags: awsthai, beanstalk, nginx, http413
//cover_image: https://direct_url_to_image.jpg
---

ด้วยความที่ component stack ใน AWS Beanstalk หลายๆ ตัวมีการปรับเปลี่ยนจากที่เคยใช้ Apache เป็น Web server หรือ Web proxy ไปเป็น Nginx web server เป็นค่าปริยาย (Default configuration) แทน 

ซึ่งจากการปรับเปลี่ยนนี้ อาจส่งผลให้ developer หลายๆ คน เจอปัญหาปวดเฮดอยู่ไม่น้อย ในกรณีที่ต้องการ upload file เวลา submit web form ถ้าขนาดไฟล์ใหญ่ ไซส์โตๆ จะตี error code เป็น **HTTP 413 Request Entity Too Large!**

เหตุผลเพราะ Nginx นั้น จะกำหนดค่าเริ่มต้น ให้ไฟล์ที่มีขนาดใหญ่สุดที่ upload ได้อยู่ที่ 1MB เท่านั้น เอาซี้!!!

วิธีแก้ของ Nginx นั้นไม่ยาก เพียงแค่เพิ่ม client_max_body_size ในไฟล์ nginx.conf เพื่อ override ค่า default ก็เป็นอันใช้ได้ อยากได้มากน้อยเท่าไหร่ ก็จัดไป


```
client_max_body_size 100M;
```

แต่พอเป็น AWS Beanstalk อาจจะต้องออกแรงนิดหน่อย โดยเพิ่มโฟลเดอร์ .ebextensions/nginx/conf.d/ ใน Project และสร้าง config ไฟล์

``` diff
~/workspace/my-app/
     |-- .ebextensions
         | -- nginx
              | -- conf.d
+                   | -- myconf.conf
```

จากนั้น repackage project folder ให้เรียบร้อยแล้ว upload package ใน AWS Beanstalk หรือถ้าใครถนัดใช้ eb deploy ก็ไม่ว่ากัน ถ้าไม่ติด error อะไรตอน deploy ก็เป็นอันใช้ได้
Azure AD - Access On-Prem Web Application with Secure Remote Access
Published: 2021-09-14 12:35:44

Assume you have web application which is deployed in on-prem and you decided to the web application access with Multifactor authentication and accessed securely by remote users

Here is the solution with Azure AD, Azure Active Directory's Application Proxy provides secure remote access to on-premises web applications. After a single sign-on to Azure AD, users can access both cloud and on-premises applications through an external URL or an internal application portal. For example, Application Proxy can provide remote access and single sign-on to Remote Desktop, SharePoint, Teams, Tableau, Qlik, and line of business (LOB) applications.

The Application Proxy offering includes a cloud service and an on-prem connector. The cloud service, called the Application Proxy Service, works with the Application Proxy Connector, which runs on an on-prem server, to securely pass user sign-on tokens from Azure AD to the on-prem web app being accessed.

Application Proxy works with:

·        Web applications that use Integrated Windows Authentication for authentication

·        Web applications that use form-based or header-based access

·        Web APIs that you want to expose to rich applications on different devices

·        Applications hosted behind a Remote Desktop Gateway

·        Rich client apps that are integrated with the Microsoft Authentication Library (MSAL)

How Application Proxy works

1.     After the user has accessed the application through an endpoint, the user is directed to the Azure AD sign-in page.

2.     After a successful sign-in, Azure AD sends a token to the user's client device.

3.     The client sends the token to the Application Proxy service, which retrieves the user principal name (UPN) and security principal name (SPN) from the token. Application Proxy then sends the request to the Application Proxy connector.

4.     If you have configured single sign-on, the connector performs any additional authentication required on behalf of the user.

5.     The connector sends the request to the on-premises application.

6.     The response is sent through the connector and Application Proxy service to the user.
Public API 's For Your Projects
Tags: webdev, showdev
Published: 2021-09-14 12:15:30

A collective list of free APIs for use in software and web development

1. <a href="https://openweathermap.org/api" alt="Open Weather API"> Open Weather API</a>
<p>Free API to gether weather information all over the world.</p>

2. <a href="https://www.nutritionix.com/business/api" alt="Nutritionix API">Nutritionix API</a>
<p>World largest verified nutrition database.</p>

3. <a href="https://exchangeratesapi.io/" alt="Currency Converter">Currency Converter</a>
<p>Exchange rates API is a free service for current and historical foreign exchange rates by the European Central Bank.</p>

4. <a href="https://skyscanner.github.io/slate/" alt="Skyscanner Search">Skyscanner Search</a>
<p>API to get real time information about planes travelling across the world.</p>

5. <a href="https://rapidapi.com/apidojo/api/imdb8" alt="Movie API">Movie API</a>
<p>API to get all information about films, actors, characters, etc.</p>

6. <a href="https://developer.spotify.com/documentation/web-api/" alt="Spotify API">Spotify API</a>
<p>View Spotify music catalog, manage user's libraries, get recomendations and more.</p>

7. <a href="https://cloud.google.com/text-to-speech" alt="Text-To-Speech API">Text-To-Speech API</a>
<p>Allow you to convert text to speech.</p>
Today's Fun Joke For Developers - Daily Developer Jokes
Tags: jokes, dailydeveloperjokes
Published: 2021-09-14 12:00:18

---
title: "Today's Fun Joke For Developers - Daily Developer Jokes"
description: "Check out today's daily developer joke! (a project by Fred Adams at xtrp.io)"
series: "Daily Developer Jokes"
published: true
tags: #jokes, #dailydeveloperjokes
---

Hi there! Here's today's Daily Developer Joke. We hope you enjoy it; it's a good one.

![Joke Image](https://private.xtrp.io/projects/DailyDeveloperJokes/public_image_server/images/5e1258e86d537.png)

---

For more jokes, and to submit your own joke to get featured, check out the [Daily Developer Jokes Website](https://dailydeveloperjokes.github.io/). We're also open sourced, so feel free to view [our GitHub Profile](https://github.com/dailydeveloperjokes).

### Leave this post a ❤️ if you liked today's joke, and stay tuned for tomorrow's joke too!

_This joke comes from [Dad-Jokes GitHub Repo by Wes Bos](https://github.com/wesbos/dad-jokes) (thank you!), whose owner has given me permission to use this joke with credit._

<!--
Joke text:
___Q:___ How does a developer make a cheer?

___A:___ ["hip","hip"] // (hip hip array!)
 -->
Access modifiers in TypeScript class Constructor
Tags: typescript, javascript
Published: 2021-09-14 12:00:16

TypeScript includes a concise way to create and assign a class instance property from a constructor parameter.

For example if we want create a employee class with private property and should assign the value at the time of creating the instance in general we can do something like below.

```typescript
export class Employee {
  private name: string;
    constructor(name: string) {
        this.name = name
    }
}
var emp = new Employee("Krishna");
```

There is another way of doing it in Typescript which looks like below.
```typescript
export class Employee {
  constructor(private name: string) {}
  updateEmployeeName(updatedName: string) {
    this.name = updatedName;
  }
}
```

Here we can notice that we used **private** access modifier to restrict accessing this property out side the class but within the class methods. 

There are couple of other access modifiers which we can use to restrict the access of class properties.

> **public** access modifier

If we prefix this keyword before the property in constructor it means we are telling the angular compiler to make it available out side the class.

```typescript
export class Employee {
  constructor(public designation: string) {}
}
var emp = new Employee("SSE");
emp.designation = "";
```

What will happen if we don't use any access modifier in the constructor for the property? It will not be available within the class itself except inside the constructor.

```typescript
export class Employee {
  constructor(id: number) {
    id = 1;
  }
  updateEmployeeInfo() {
    this.id; //compilation error.
  }
}
```

Let's imagine if we want to make a property ready only property then we can do something like this

```typescript
export class Employee {
  get Name() {
    return this.name;
  }
  constructor(id: number, private name: string, public designation: string) {}
}
var emp = new Employee(1, "Krishna", "SSE");
emp.Name = ""; //compilation error.
var name = emp.Name;

```
Multiple or one useEffect?
Tags: react, frontend, webdev, hooks
Published: 2021-09-14 11:57:25

When I started working with React hooks, I had a tendency to put everything that was based on component change into one `useEffect`. I was used to put it into lifecycle methods like `componentDidMount, componentDidUpdate` or `componentWillUnmount`. It was natural for me that I need to show my component what to do on the particular stage - so something happens with mounting, something with unmounting etc. I based the logic on the component lifecycle, not on what this logic does. Therefore I ended up having completely unrelated logic in one `useEffect` just because I wanted all of that stuff to happen with component mount. Fortunately, I quickly realised that I was wrong.

You can have multiple `useEffects` in your code and this is completely fine! As [hooks docs](https://reactjs.org/docs/hooks-effect.html#tip-use-multiple-effects-to-separate-concerns) say, you should separate concerns. Multiple hooks rule also applies to `useState` - you can have multiple `useState` in one component to separate different part of the state, you don't have to build one complicated state object. 

Going back to `useEffect` - reading the docs I linked earlier made me change my approach to managing component behaviour using hooks. Right now I always ask myself first if things that I do in one `useEffect` are really connected. If not, I try to extract the logic to another `useEffect`. Thanks to that I can easily see what happens to the code and I can avoid running some code with no reason (e.g. maybe something is needed to be done only with component first mount). 

However, I try to be mindful and not simply put every single thing in a separate `useEffect`. If one data relies on another, I would probably fetch it in one `useEffect` to make sure that I have both things in place on time. The same goes with loading - I put changes related to loaders next to the things that caused them. This way I can see when the loader state is changing and what's causing that.

Did you also have problems with using multiple `useEffect` or did you find it easy from the beginning? Let's talk!
Reading Notes #483
Tags: devjournal
Published: 2021-09-18 12:58:40

---
title: Reading Notes #483
published: true
date: 2021-09-14 11:44:00 UTC
tags: devjournal
canonical_url: http://www.frankysnotes.com/2021/09/reading-notes-483.html
---

  
Already Tuesday! Time for a new Reading Notes post; a list of all the articles, blog posts, and books that catch my interest during the week and that I found interesting. It's a mix of the actuality and what I consumed.
  

[![](https://1.bp.blogspot.com/-tUJvwFgVwTg/YUCK-RaOaCI/AAAAAAABkMg/crwUuagj6kwquQt8ogL79RI1YzVnZ0zZACLcBGAsYHQ/s320/E_L3ISQVQAI-z9o.jpg)](https://1.bp.blogspot.com/-tUJvwFgVwTg/YUCK-RaOaCI/AAAAAAABkMg/crwUuagj6kwquQt8ogL79RI1YzVnZ0zZACLcBGAsYHQ/s1160/E_L3ISQVQAI-z9o.jpg)
This week is the Cloud Summit ([https://azuresummit.live](https://azuresummit.live)) is an 11-day free conference that focuses on Azure, there is surely a session that will catch your interest.  

  

You think you may have interesting content, share it!

  

  

## Cloud

- **[Boost your network security with new updates to Azure Firewall](https://azure.microsoft.com/en-ca/blog/boost-your-network-security-with-new-updates-to-azure-firewall?utm_source=readingnotes)** (Gopikrishna Kannan) - Nice, Tons of new possibilities.

  

## Programming

- **[Azure DevOps GIT with SSH: fetch-pack: unexpected disconnect while reading sideband packet](https://www.domstamand.com/azure-devops-git-with-ssh-fetch-pack-unexpected-disconnect-while-reading-sideband-packet/?utm_source=pocket_mylist?utm_source=readingnotes)** (Dominique St-Amand) - Quick tips about how to avoid an error while pulling.

- **[How To Desktop in 2022](Sam Basu)** (https://www.telerik.com/blogs/how-to-desktop-2022?utm\_source=readingnotes) - Woooo, I didn't realize there were so many options! I think this winter I may start a project with MAUI.

- **[Join Us for Our Next Docker Community All-Hands!](https://www.docker.com/blog/join-us-for-our-next-docker-community-all-hands?utm_source=readingnotes)** (William Quiviger) - Nice nice... Always interesting.

- **[Scheduled tasks with the Cron binding in Dapr](https://markheath.net/post/dapr-cron-binding?utm_source=readingnotes)** (Mark Heath) - Interesting Idea. Scheduled tasks are so common as requirements, it's nice to have simple ways to implement them.

- **[The Magic Behind the Scenes of Docker Desktop](https://www.docker.com/blog/the-magic-behind-the-scenes-of-docker-desktop?utm_source=readingnotes)** (Ben De St Paer-Gotch) - That moment when you understand the magic... Great post that makes us appreciate it even more.

  

## Miscellaneous

- **[Expanded Feature Availability for Power BI Free License Users (Coming Soon)](https://powerbi.microsoft.com/en-us/blog/power-bi-and-excel-expanded-feature-availability-for-power-bi-free-license-users?utm_source=readingnotes)** (Ikechukwu Edeagu) - For those who already try, or use PowerBI you know how nice this news is. For the others... Give it a try it's that nice.

  

~Frank
Create a Netflix clone from Scratch: JavaScript PHP + MySQL Day 50
Tags: php, javascript, webdev, tutorial
Published: 2021-09-14 11:19:52

Netflix provides streaming movies and TV shows to over 75 million subscribers across
the globe. Customers can watch as many shows/ movies as they want as long as they are
connected to the internet for a monthly subscription fee of about ten dollars. Netflix produces
original content and also pays for the rights to stream feature films and shows.


In this video,we will be   Creating getHomeCategoryHtml method
{% youtube mXs1awa_ZVw %}

In this video,we will be Creating EntityProvider Class
{% youtube _hgbXB6GtHY %}


If you like my work, please consider
[![Buy me a coffee](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jm11knj7d8zwcvo150q2.png)](https://www.buymeacoffee.com/cglikpo)
so that I can bring more projects, more articles for you

If you want to learn more about Web Development, feel free to [follow me on Youtube!](https://www.youtube.com/c/ChristopherGlikpo)
REST & HTTP
Tags: http, backend, livros, braziliandevs
Published: 2021-09-14 11:15:55

---
title: REST & HTTP
published: true
description: Mais conteúdo sobre REST e HTTP... Agora um pouco melhor!
tags: [HTTP, Backend, Livros, BrazilianDevs]
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8c8lavzfacwacbkviqxv.jpg
---

Ano passado eu me dediquei a escrever sobre HTTP e REST. Estava com alguns objetivos claro em mente, queria mostrar quando usar e como usar o HTTP. Depois me fiz algumas perguntas e fui pesquisar se existem padrões de projeto em REST. Dessa pesquisa saiu dois POST enormes. O primeiro eu decidi tornar um livreto, mas sem muita revisão e sem muita experiência.

Com esse "livreto" eu acabei conseguindo ser aceito como escritor na [Casa do Código](https://www.casadocodigo.com.br/), a ideia é escrever um livro sobre desenvolvimento backend, mas focado nos protocolos e não nos frameworks. A parte HTTP já está pronta, e o tal "livreto" é só um capitulo, tem muito mais.

Esse tal livreto está disponível na Amazon, de graça pra quem gosta de sustentar o Jeff Benzos.

[![Anatomia do Protocolo HTTP](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dz8ojfctd6lh150hakag.png)](https://www.amazon.com.br/Anatomia-Protocolo-HTTP-protocolos-frameworks-ebook/dp/B08PSDT35Y/?_encoding=UTF8&pd_rd_w=uCTIy&pf_rd_p=4b9652c9-ac45-4535-ac4d-eec51129bb6c&pf_rd_r=15TFWDDHRR59X7MWSBNM&pd_rd_r=57f799bb-5689-4dd4-8b73-f7ba4703b773&pd_rd_wg=1Ar7d&ref_=pd_gw_ci_mcx_mr_hp_d)

Se você quiser pegar no Leanpub, também está lá: [leanpub.com/anatomiahttp](https://leanpub.com/anatomiahttp/)
NERDTree コマンドリスト
Tags: vim, nerdtree, plugin, コマンドリスト
Published: 2021-09-14 11:15:28

<u><h2>ファイル操作</h2></u>

|cmd| 分割 | カーソル |
|:--:|:--:| :--:|
| o | なし | ファイル |
| i | あり(横) | ファイル |
| s | あり(縦) | ファイル |
| go | なし | Tree |
| gi | あり（横） | Tree|
| gs | あり（縦） | Tree|

<u><h2>ディレクトリ操作</h2></u>

|cmd| 動作説明 |
|:--:|:--:|
| O | 子要素をすべて展開 |
| x | `カーソル上`の親要素を閉じる |
| X | `カーソル上`の子孫要素すべて閉じる |

<u><h2>Tree間移動</h2></u>

| cmd | 動作説明 |
| :--: | :--:| :--:|
|P|ルートディレクトリへカーソル移動|
|p|親ディレクトリへカーソル移動|
|K|子要素間で一番最初の要素へカーソル移動|
|J|Kと反対の動き|

<u><h2>Tree構造操作</h2></u>

| cmd | 動作説明 |
| :--: | :--:| :--:|
|C|ルートディレクトリを`カーソル上`のディレクトリに変更|
|u|ルートディレクトリを、現在のルートディレクトリ一つ上のディレクトリへ変更|
|U|tree構造は展開したまま、uの動作をする|
|m|カーソル上のファイル、ディレクトリの操作(コピー、移動、削除など)|

<u><h2>ブックマーク</h2></u>

| cmd | 動作説明 |
| :--: | :--:| :--:|
|B|ブックマーク表示|
|:Bookmark [任意の名前]|カーソル上の要素をブックマークへ登録|
|:OpenBookmark [ブックマーク指定]| 指定したブックマークを開く|
|:ClearBookmarks [ブックマーク指定]| ブックマーク削除 |
“He never did that to me”
Tags: leadership, inclusion, teams
Published: 2021-09-14 11:58:34

---
title: “He never did that to me”
published: true
date: 2021-09-14 11:10:00 UTC
tags: leadership,inclusion,teams
canonical_url: https://craignicol.wordpress.com/2021/09/14/he-never-did-that-to-me/
series: we-can-do-better
cover_image: https://craignicol.files.wordpress.com/2021/01/wp-1609625209612.jpg?w=1200
---

_Men,_

If you’ve never listened to women on the internet, take the opportunity.

Sleazeballs and fascists may never show their true face to you.

When they show their true face to others, stand and bear witness, or be complicit.

All it takes is for good men to do nothing.

Sure, he’s never like that to you, but where there’s bad words from who you thought were good people, believing good intent and giving the benefit of the doubt can embed their harm in your culture. Call them out. Let them prove good intent by using the experience to learn. If they improve you will see them re-centre the most vulnerable. If not, there was not good intent, just pronouncements from privilege that isn’t prepared to accept fault.

If you want to be good, learn the penguin hustle : keep the most vulnerable in the middle, and those privileged enough to be strong rotate at the edge. So when you feel weak or vulnerable, someone else will take your place. Don’t smother them, and please listen, but the most vulnerable will always suffer a shitstorm of abuse. They need allies to call it out so they’re not drowning in it.

Trust someone on their actions towards towards those who are more vulnerable, not to you who they see as an equal, and maybe a threat. Fear may keep them in place around you, but that’s just a mask to protect who they really are.

_And don’t expect others to speak up. For some, simply existing is [bringing politics to work](https://dev.to/craignicol/no-politics-at-work-4n03)._

{% twitter 1404171772312887304 %}
WordPress automatisieren mit Thrive Automator
Tags: wordpress, thrivethemes, wordpressplugins
Published: 2021-09-14 11:46:37

---
title: WordPress automatisieren mit Thrive Automator
published: true
date: 2021-09-14 10:54:47 UTC
tags: WordPress,ThriveThemes,WordPressPlugins
canonical_url: https://bloggerpilot.com/thrive-automator/
---

![](https://bloggerpilot.com/wp-content/uploads/2021/09/thrive-automator.png)

WordPress ist die beliebteste Blogging-Plattform und ein tolles Tool, das einfach zu bedienen ist. Manchmal kann es jedoch eine Herausforderung sein, neue Funktionen wie Auto-Responding, Yoast SEO oder Thrive Automator zu implementieren. Thrive Automator ist eine Reihe von WordPress-Plugins, die es ermöglichen, einige WordPress-Funktionen zu automatisieren, z. B. das Hinzufügen von Abonnenten zu einer Liste oder das automatische Beantworten von Kommentaren. Mit Thrive Automator erzielst du bessere und schnellere Ergebnisse als mit einer eigenen Programmierung.

WordPress ist noch immer eines der gefragtesten Systeme auf dem...

Der Original-Artikel erschien auf [WordPress automatisieren mit Thrive Automator](https://bloggerpilot.com/thrive-automator/).
TYPO3 Composer vs TER - What's Better TYPO3 Installation Method?
Published: 2021-09-14 10:48:35

Are you a beginner or intermediate level in TYPO3 CMS? Then, you may often ask questions related to installing the TYPO3 extension using TER or Composer like what’s best practice? In this article, I’ll try to clarify a bit about TYPO3 Composer vs TER.

TYPO3 community always works hard to introduce new technologies, Example you have the flexibility to install your TYPO3 using either modern Composer (Packagist.org) or old-ways TER (Extensions.TYPO3.org). There are pros and cons in both Composer and TER. To be honest, there is one thing missing to support both ways simultaneously for the TYPO3 users and developers. Let’s discuss this in-depth!

TYPO3 Composer vs TER

What’s TER (TYPO3 Extensions Repository)?
How to Install TYPO3 Extensions Using Composer/Packagist?
TYPO3 Composer vs TER
What’s Problem with Composer?
Solution: TER + Composer Wrapper!
Wrapping-up!

Find this short blog at, https://t3terminal.com/blog/typo3-composer-ter/?utm_source=T3Terminal&utm_medium=TYPO3+Blog&utm_campaign=TYPO3+Composer+TYPO3+TER