teleren/devto huggingface dataset:
Versões do Wordle - Descompressão DEV
Tags: wordle, relax
Published: 2022-01-25 19:32:57

## Saiba mais sobre a febre do jogo de palavras
[Pulo de 90 a 2 Mi de jogadores](https://g1.globo.com/pop-arte/games/noticia/2022/01/19/wordle-e-termo-historia-de-amor-se-transformou-em-jogo-de-palavras-que-e-sensacao-em-2022.ghtml)

## Uma palavra por dia (nem todos!)

Múltiplo idiomas
- https://wordle.wekele.com/

Inglês
- https://www.powerlanguage.co.uk/wordle/ (OFFICIAL!!!)
- https://mywordle.me/ (informe a sua palavra e compartilhe)
- https://www.lewdlegame.com/ (com palavrões)
- https://sweardle.glitch.me (4 letras, só palavrão)
- https://octokatherine.github.io/word-master/ (pode repetir)
- https://edjefferson.com/letterle/ (uma letra, sim)
- https://qntm.org/files/wordle/ (a palavra muda a cada tentativa)
- http://queerdle.com (pras gay, pras gay!)
- http://foldr.moe/hello-wordl/ (ilimitado e você escolhe o tamanho)
- https://hellowordl.net/ (configure o tamanho)
- https://rbrignall.github.io/byrdle/ (música Coral Byrdle?)
- https://www.wordleunlimited.com/ (sem limites)
- https://www.nsfwordle.com/ ([código-fonte](https://github.com/hannahcode/wordle))

Português - Brasil
- https://www.gabtoschi.com/letreco/ 
- https://term.ooo/ 

Português - Portugal
- https://alcidesfonseca.com/wordlept/

Espanhol
- https://wordle.danielfrg.com 
- https://wordlegalego.appspot.com/ 

Francês
- https://wordle.louan.me 

Alemão
- https://wordle.at/
- https://wordle-spielen.de
- https://wordle.uber.space/

Italiano
- https://sebastianomorando.github.io/wordle-it/

Japonês
- https://taximanli.github.io/kotobaasobou/

Russo
- https://wordle.belousov.one/

Tâmil
- https://tamilwordle-maleycpqdq-el.a.run.app/

Turco
- https://f.github.io/wordle-tr/

Sueco
- https://ordlig.se/

Islandês
- https://ordla.us/

Dinamarquês
- https://wørdle.dk/

Húngaro
- https://jealousmarkup.xyz/szofejto/

Urdu
- https://urdle.chaoticity.com/ 

Ladino
- https://f.github.io/wordle-ladino/

Kurdi
- https://f.github.io/wordle-kurdi/

### Matemática
https://nerdlegame.com/ 

![Exemplo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xcjhjlyc178vtns088zx.png)

### Outro tipo de jogo para montar palavras em inglês
- https://www.nytimes.com/puzzles/spelling-bee
TCDD Communication Line 444 8 233
Published: 2022-01-25 19:18:54

[TCDD Communication Line](https://raillynews.com/2019/06/tcdd-contact-line-444-8-233-tcdd-phone-number/) 444 8 233: You can call TCDD to get information about train times, train tickets and ticket changes. You can call the TCDD phone number about the trains and you can do many transactions at any time with the TCDD Customer Service representative.

TRAIN TICKETS CONTACT LINE
TCDD Transportation train ticket contact line: 444 8 233 (444 TCDD) TCDD's subsidiary TCDD Taşımacılık A.Ş. It was established after the Liberalization of Railways Law and was established to operate passenger and freight trains on TCDD lines. Since its inception, it has been working hard to increase the share of railways in passenger and freight transport. Istanbul, Eskisehir, Ankara and Konya High Speed ​​Train services are increasing day by day with new sets.

TCDD CUSTOMER SERVICE PHONE NUMBER
TCDD Tasimacilik, which increases the number of passengers day by day on conventional lines, also faces intense passenger interest in regional trains. Adana-Mersin, Izmir-Denizli, Izmir-Ödemiş, Karabük-Zonguldak lines are the lines with the most passenger transportation. TCDD Phone number 444 8 233 You can get all the information about trains from this line.

With the establishment of the newly established Logistics Centers, Organized Industrial Zones, Connection Lines and the Baku-Tbilisi-Kars Railway Project, the Company makes great efforts to ensure that our country deserves its deserved position in rail transportation.

TCDD COMMUNICATION TELEPHONE You can learn the High Speed ​​Train Hours on the website of TCDD Taşımacılık A.Ş., as well as the routes of the mainline trains and regional trains, the departure times from the stations and stations. TCDD Telephone number is 444 8 233 and you can get all the information about trains from this line.
 
TCDD WhatsApp Hotline
0507 321 82 33, created by TCDD, responds instantly to messages sent to WhatsApp line and provides instant response to public complaints and suggestions.

TCDD Contact Phone: 444 8 233
How my company follows Agile + DevOps in daily work
Tags: devops, agile, productivity, startup
Published: 2022-01-25 19:18:41

# Summary

1. We form the dev teams by business domains, for example, Order, Article, or Inventory team.

2. Each team consists of 1 Product Owner and 4 to 5 devs.

3. The cross-functional teams can do all Frontend, Backend, DevOps, and QA tasks.

4. We develop new features within every 2-weeks, called "Sprint."

5. All teams hold a daily standup in the morning to quickly talk about what we did yesterday, what we're going to do today, and what is blocking us at the moment.

6. At the beginning of each Sprint, we have a "Sprint-planning" meeting where we plan and estimate new features that we will develop in the next two weeks.

7. Our Product Owner writes each new feature in one Story ticket on the Kanban board. After that, the devs will split the ticket into smaller sub-tasks. Each sub-task should be small enough to build, test and deploy within one day.

8. The tickets will move through 5 main columns on Kanban board: Backlog -> In Progress -> In Code Review -> In QA -> Done

9. We only have one main git branch (also called `main`). Everyone uses this branch to deploy the code to the development environment for testing. We will deploy the code from this main branch to production at the end.

10. (Note) We containerize all the services and use Terraform or CloudFormation to define the infrastructure.

11. When devs start with a new feature, a new feature branch will be branched off from `main` with the ticket name at the beginning of the branch name, for example, `FEAT-2192-build-create-order-endpoint`. All code commits must have the ticket name too.

12. After implementing the new feature, the devs will make a Pull Request for others to review. At this point, the CI/CD pipeline will run the tests and linting. Only when all pass, then the Pull Request is ready.

13. Code reviewers will check for coding style, tests, potential bugs, etc. And approve it if everything is ok.

14. The devs merge new code to the main branch. After that, CI/CD pipeline will deploy the code to the development environment.

15. Other devs or QA engineers in the same team will test the new feature on development environment.

16. Finally, when QA engineers approve, someone can click the deploy button and trigger CI/CD pipeline to deploy the code to production.

17. At the end of the Sprint, we have a Retrospective meeting where the team discusses what went well and what not to improve the process next Sprint.

18. Continue to Step 1. and start a new Sprint.

# The tech stack that we use

1. Git, Github for version control.
2. Github Action to build CI/CD pipelines.
3. Kubernetes and Docker.
4. Terraform to define infrastructure.
5. AWS services.
6. Jira for Kanban board, Confluence for writing documents and Wiki pages.
7. Slack for communication.
8. Bitwarden for storing password.
Switches get stitches - a strategy for writing cleaner code.
Tags: programming, tutorial, javascript, beginners
Published: 2022-01-25 19:15:58

Did you know that switches are the spawn of the devil put on earth to force developers into writing the some of the ugliest code on earth?

I'm kidding. They're only partially to blame.

In all seriousness, the switch statement is a really useful tool available in most of the modern programming languages. And for good reason - they're useful when you're in a pinch and still want to communicate clearly that based on your input value - multiple things can happen.

But there's a problem - with every update your code complexity is going to increase.

## Switches get complicated, fast.

It may look like a nice clean switch today, until someone comes in and says, yeah, but on key 39, we want to also add a condition that if you haven't selected this text box - then move that other thing instead. And just like that, you've got a spaghetti noodle on your hands.

If your code is never going to be updated - go ahead, write switch statements, they're cool. But the chances are - your refactors will get refactors and as the application grows, so will your needs.

## If not switches, then what?

🐻 I bear good news! 

There's an easier way than using switches, and it may actually lead you to writing less code.

Here's a typical switch:

```js
function getDirectionEmoji(direction) {
	let emoji;
	switch (direction) {
		case 'up':
			emoji = '👆';
			break;
		case 'down':
			emoji = '👇';
			break;
		case 'left':
			emoji = '👈';
			break;
		case 'right':
			emoji = '👉';
			break;
		default:
			emoji = '🧙‍♂️';
	}

	if( emoji === "🧙‍♂️") {
		console.log("You're a wizard, Harry.")
	}

	return emoji;
}

getDirectionEmoji('down');
// result: 👇
getDirectionEmoji('diagonally');
// result: 🧙‍♂️
```

Even though there's nothing wrong with the code above, there's and easier way -  a strategy pattern:

```js
function getDirectionEmoji(direction) {
	const emojis = {
		'up': '👆',
		'down': '👇',
		'left': '👈',
		'right': '👉',
	};

	if( ! emojis[direction]) {
		console.log("You're a wizard, Harry.")
	}

	return emojis[direction] ?? '🧙‍♂️';
}

getDirectionEmoji('down');
// result: 👇
getDirectionEmoji('diagonally');
// result: 🧙‍♂️
```

There are a number of benefits doing it this way:

1) By defining data first, it's easy for the reader to quickly predict what the rest of the code is going to do.

2) When complexity comes around, someone on your team isn't going to be tempted to just add one more thing inside that defined array and they'll have to create their own small island of code that deals with their specific edge case. Just remember to send them here if they add a switch statement.

I really like the strategy pattern for all things, both big and small - it helps you communicate clearly and encourages other good practices - like keeping your functions/methods simple and single purpose.
JWT Authentication Using TypeScript, Express.js, & MongoDB
Tags: javascript, typescript, node, expres
Published: 2022-01-25 19:10:44

# Auth-TS

JWT Authentication Using TypeScript, Express.js, & MongoDB

## Features:

- Authentication

## Technology Stack:

- TypeScript
- Node.js
- Express.js
- MongoDB
- JWT

## Default urls:

- Login User : POST METHOD <br/>
  localhost:5000/api/auth
- Register User : POST METHOD <br/>
  localhost:5000/api/auth/register
- Get All Users : GET METHOD <br/>
  localhost:5000/api/auth/

## Usage

### Env Variables

Create a .env file in then root and add the following

```
PORT = 5000
MONGO_URI = your mongodb uri
JWT_SECRET = 'abc123'

```

## Install Dependencies

```
npm install

```

## Run App

```

# Run in dev mode

npm run server

```

- Version: 1.0.0
- License: MIT
- Author: Said Mounaim

Repo : https://github.com/saidMounaim/Auth-TS
Problem Statement : Deploy ML Models Quickly
Tags: machinelearning, cloud, ai, python
Published: 2022-01-25 19:10:29

While trying to install and run the new Facebook Research Detic's GitHub code, I realized that the environment setup and deployment of these projects, even if you know the basics and the README is clear is a huge task. It takes time even for playing around with the code.

Is there any interesting opensource projects that we can use to achieve this quickly?

I know, Some repo don't come with a Dockerfile or even requirements.txt, Which makes it difficult to setup the environment. As someone who want to get hands on experience on any new projects, this is a struggle.
Use UTF-8 do jeito certo 
Tags: php
Published: 2022-01-25 18:16:35

````
<?php
// Diz para o PHP que estamos usando strings UTF-8 até o final do script
mb_internal_encoding('UTF-8');

// Diz para o PHP que nós vamos enviar uma saída UTF-8 para o navegador
mb_http_output('UTF-8');

// A nossa string UTF-8 de teste
$string = 'Êl síla erin lû e-govaned vîn.';

// Transformar a seqüência de alguma forma com uma função multibyte
// Observe como cortamos a string em um caractere não-ASCII para fins de demonstração
$string = mb_substr($string, 0, 15);

// Conectar a um banco de dados para armazenar a string transformada
// Veja o exemplo PDO neste documento para obter mais informações
// Observe os comandos `set names utf8mb4`!
$link = new PDO(
    'mysql:host=your-hostname;dbname=your-db;charset=utf8mb4',
    'your-username',
    'your-password',
    array(
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_PERSISTENT => false
    )
);

// Armazena a nossa string transformada como UTF-8 em nosso banco de dados
// Seu DB e tabelas estão com character set e collation utf8mb4, certo?
$handle = $link->prepare('insert into ElvishSentences (Id, Body) values (?, ?)');
$handle->bindValue(1, 1, PDO::PARAM_INT);
$handle->bindValue(2, $string);
$handle->execute();

// Recuperar a string que armazenamos apenas para provar se foi armazenada corretamente
$handle = $link->prepare('select * from ElvishSentences where Id = ?');
$handle->bindValue(1, 1, PDO::PARAM_INT);
$handle->execute();

// Armazena o resultado em um objeto que vamos saída mais tarde em nossa HTML
$result = $handle->fetchAll(PDO::FETCH_OBJ);

header('Content-Type: text/html; charset=UTF-8');
?><!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>UTF-8 test page</title>
    </head>
    <body>
        <?php
        foreach($result as $row){
            print($row->Body);  // Isto deve emitir corretamente nossa string transformada como UTF-8 para o navegador
         }
        ?>
    </body>
</html>
```

Mais explicações:
http://br.phptherightway.com/#php_e_utf8
Return Two Highest Values in List
Tags: python, sorting
Published: 2022-01-25 19:04:44

Today's challenge is rather straightforward.

_**Instructions**_

Return the two distinct highest values in a list. If there're less than 2 unique values, return as many of them, as possible.
The result should also be ordered from highest to lowest.

```
Examples:
[4, 10, 10, 9] => [10, 9] 
[1, 1, 1] => [1] [] => [] 
```
_**Approach**_
Obtain the unique values in the list using set then sort the list in reverse order and slice to obtain the first two elements.

_**Solution**_
```python
def two_highest(arg1):
    return sorted(set(arg1),reverse=True)[0:2]
```
You are all set.
Dealing with Work Pressure
Tags: mentalhealth, programming, webdev, productivity
Published: 2022-01-25 18:54:55

We've all faced some kind of bad day at our workplace which have made us react quickly, get aggressive with colleagues, our boss, make us think of quitting the job, hating life the way it is and other pesky thoughts.

The degree to which this can happen is entirely circumstantial. The point being:

## "You're Not Alone!"


_Now how effectively you deal with this is an art in itself (which even i'm yet to master)._ 

I will be providing some tips that has helped me to avoid things going out of hand or believe will help me in the future.

When the pressure is getting into your head and making you feel agitated, aggressive, rude or stupid:

1. **Stop doing any activity that you're doing. Get out from the place of work** 
 * Take a long walk.
 * Call your close friend or spouse or a parent who are free to have a quick chat. Now share your situation, and you will be consoled in some way. Believe me this will remove a huge chunk of stress immediately. 

2. **Have a soothing drink like coffee, tea, juice, or anything you prefer.**

3. Close your eyes and affirm, **"I consciously am letting go of all hatred towards anybody, because i want to remain pure in heart"**

4. **Go back to your workplace & finish the pending tasks. If you're unable to continue, just end your day.**

5. **On the same day, try to document the following things using a text editor**
 * A timeline of the day's activity.
 * What events could have caused you to react badly to the situation, making you feel overwhelmed or stressful ?
 * What do you infer from this situation ?
 * What's the resolution you will make to improve myself ?
 * Challenges that needs to be addressed with the help of 
   your immediate boss, higher authority or a colleague.

6. **Send a sincere apology note to the person whom you reacted with badly (in case things got out of hand).**

7. Just affirm, **"Today was not my day, i'll let it pass. But tomorrow i will surely have a wonderful one"**.


This routine can definitely help you in some way. Also keeping this as a journal entry could make you come back, reflect and help dealing with such situations in a better way. 

_And know that it's okay to react_, but make sure you don't use abusive words or make vile comments that might severely impact your career. 

With time, you will definitely become more mature in dealing challenging situations.

_Do leave a comment by sharing your experiences, and how that has impacted you, ways you've overcome such situations, or effective techniques to handle such situations._

_Have a wonderful and joyful rest of your week. Sending out all of my love to you for reading the post. ❤️_
Which is Faster: Tailwind or Pure CSS?
Published: 2022-01-25 18:44:59



When it comes to learning CSS, there are a few different options available. One option is to learn TailwindCSS, which is a popular and well-maintained CSS framework. On the other hand, you could also learn plain CSS without any frameworks.

Here are some of the pros and cons of each approach:

**Pros of using TailwindCSS: **

1) TailwindCSS is widely used and well-maintained. 
2) It has a lot of features built in, so you don't have to worry about adding custom code or struggling with complex syntax. 
3) It's easy to use because it includes premade components for common tasks like layouting pages and creating forms. 
4) There are plenty of tutorials available online if you need help getting started. Cons of using TailwindCSS: 

1) Although it's comprehensive, TailwindCSS can be difficult to understand at first glance due to its dense syntax (especially compared to plain CSS). 
2) Because it's a framework, you may not be able to customize certain aspects as easily as with standalone codebase files. 
3) TailwindCSS is not available in every language, so you may have to use a different editor or compiler if you want to use it on your own website.

**Pros of learning plain CSS: **

1) Plain CSS is simpler than TailwindCSS and doesn't require any special syntax. 

2) It's easy to learn because all you need are basic rules for formatting text and elements, no matter what language you're using. 

3) There are plenty of tutorials available online if you need help getting started. Cons of learning plain CSS: 
1) Plain CSS isn't as widely used as TailwindCSS, so chances are there aren't many resources out there specifically designed for beginners. 

2) Because it's less complex, plain CSS can be more difficult to understand at first glance than TailwindCSS – especially if you're not familiar with web development terminology. 
3) Plain CSS is not available in every language, so you may have to use a different editor or compiler if you want to use it on your own website. 

Ultimately, it depends on your needs which approach is best for you. If you're just starting out and want a comprehensive framework to help you build more complex websites, TailwindCSS is a good option. On the other hand, if you're comfortable working with basic rules and don't need all the bells and whistles that TailwindCSS offers, learning plain CSS may be a better choice. I have another article about 15 basics of CSS which you can read [here](https://dev.to/yaku/15-css-that-will-boost-your-designing-confidence-as-frontend-developer-1j55).
Checking in...
Published: 2022-01-25 18:41:46

Hi, I'm Brian!

I am a web developer currently transitioning into the cloud, learning as much as I can in my free time. 

I began my career in tech and worked for about two years as a web dev with Angular and NodeJS. I took a brief gap to locate to the US to accommodate a new career opportunity for my family. I am now settled and prepared to take the next steps in my career.

I have always wanted to give a shot at blogging as I believe it's a perfect way to document my developer journey. I have come to greatly appreciate the different ways devs learn new things and I would like to share mine. I hope to keep up with this blog!

I am AWS certified (Developer Associate), and I am currently building serverless application with lambda and API Gateway while using infrastructure as code (SAM). I hope to get my hands on Terraform soon as it can be used across different cloud providers. After building a couple of projects, I plan to get AWS Solution Architect and SysOps Admin Associate-level certifications.

You can find my projects in my github, and I am also looking to build connections on my Linkedin.

Happy learning!
Netflix Conductor : Handling retries and timeout
Tags: microservices, opensource
Published: 2022-01-25 18:39:54

## What is Conductor
[Conductor](https://github.com/Netflix/conductor) is a Microservices orchestration platform from Netflix, released under Apache 2.0 Open Source License.

## Design for failures
Failures and service degradation are the fact of any system, this is especially true with large interconnected systems running in cloud.  Conductor is designed with principles that systems can and will go down, degrade in performance and any dependencies should be able to handle such failures.

## Tasks in Conductor
Conductor workflows are orchestration of many activities known as `task`.  Each task represents a (ideally) stateless worker that given a specific input does the work and produces output.  The tasks are typically running outside of Conductor server and there are many factors that could effect their availability.

## Designing for failures
Conductor allows you to define your stateful applications that can handle failures and temporary degradation of services and without having to write code for that. 

### Configuring tasks to handle failures
Each task in Conductor can be configured how it responds to availability events such as: 1) Failures 2) Timeouts and 3) Rate limits
Here is a sample task defintion:
```
{
  "createdBy": "user",
  "name": "sample_task_name_1",
  "description": "This is a sample task for demo",
  "responseTimeoutSeconds": 10,
  "timeoutSeconds": 30,
  "timeoutPolicy": "TIME_OUT_WF",
  "retryCount": 3,
  "retryLogic": "FIXED",
  "retryDelaySeconds": 5,
  "rateLimitPerFrequency": 0,
  "rateLimitFrequencyInSeconds": 1
}
```


retry* parameters specify how to handle cases where the task execution fails and retries can be configured to be with fixed delay or exponential backoff.  Similarly timeout* parameters specify how time time to give for task to complete execution and if the task should be marked as 'Timed Out' if it runs longer than that.

## More Details
[https://orkes.io/content/docs/how-tos/task-configurations](https://orkes.io/content/docs/how-tos/task-configurations)

Follow us on [https://github.com/Netflix/conductor/] (https://github.com/Netflix/conductor/)
for the source code and updates.