teleren/devto huggingface dataset:
Innovative AI-Powered Recipe Generator App Is The Secret Recipe For Home Cooks
Tags: chatgpt, ai, news
Published: 2023-06-13 00:05:26

As Founder of [HeyD.ai](https://www.heyd.ai/) I'm proud to announced the launch of brand new AI-powered cooking app, [Gordon Rams.ai](https://gordonrams-ai.app.link/3AP0Gt5iuzb) Driven by the powerful algorithms that underpin [ChatGPT](https://openai.com/blog/chatgpt), this digital culinary companion generates the perfect recipe in a snap. 

[Gordon Rams.ai](https://gordonrams-ai.app.link/3AP0Gt5iuzb) enables users to generate bespoke recipes using just the ingredients they have at home - a fun way to cook, while also saving money and minimising waste. 

As Founder of [HeyD.ai](https://www.heyd.ai/) the creator of [Gordon Rams.ai](https://gordonrams-ai.app.link/3AP0Gt5iuzb) I believe the recent launch of platforms like [ChatGPT](https://openai.com/blog/chatgpt) has provided companies the opportunity to create innovative AI products. [Gordon Rams.ai](https://gordonrams-ai.app.link/3AP0Gt5iuzb) is designed to give home cooks a fun, fast and frugal way to explore food, all at the click of a few buttons.

As artificial intelligence continues to make significant strides, its influence is increasingly felt across the tech landscape. The emergence of tools like [Gordon Rams.ai](https://gordonrams-ai.app.link/3AP0Gt5iuzb) exemplifies how AI is reshaping everyday tasks, such as cooking, with remarkable ingenuity.

It is important to create an interactive experience to give users a different perspective when cooking from an AI-powered cooking app. The app’s seven diverse features will allow users to generate recipes using just the ingredients they have at home, allowing them to have an affordable and fun culinary experience.

The brand new AI-powered cooking app offers users accessibility and affordability, particularly in the current financial climate with cost of living on the rise. Alongside this, it allows users to be able to enjoy a meal in the comfort of their own home.

As we move back to living in a fast-paced world, [Gordon Rams.ai](https://gordonrams-ai.app.link/3AP0Gt5iuzb) will help users find suitable and sustainable cooking options, while also inspiring new and exciting recipes.
Compose Key
Tags: linux, gnome, keyboard
Published: 2023-06-13 13:44:55

---
title: Compose Key
published: true
date: 2023-06-13 00:00:00 UTC
tags: linux, gnome, keyboard
canonical_url: https://andrzejgor.ski/posts/compose_key/
---

## What is a Compose Key?

Compose Key is a special key on your keyboard that allows you to type special characters like `→`, `°`, `€`, `ä`, `™`, `®`, `¿` and many more. It’s very useful if you’re writing in any foreign language that uses special characters and don’t want to mangle your keyboard settings all the time.

## Examples

- `Compose` + `-` + `>` will produce a `→` character
- `Compose` + `o` + `o` will produce a `°` character
- `Compose` + `c` + `=` will produce a `€` character
- `Compose` + `a` + `"` will produce a `ä` character
- `Compose` + `t` + `m` will produce a `™` character
- `Compose` + `r` + `o` will produce a `®` character
- `Compose` + `?` + `?` will produce a `¿` character

As you can see in the examples above, the combinations are very thought out and easy to remember. Most of the time you don’t need to know them by heart. You just have to think what two (or more) keys from the standard key set combined will give you the character that you want.

## How to enable Compose Key?

As I use Gnome 3, I’ll describe how to set it up in this environment. But don’t worry, it can be enabled in pretty much every WM/DE.

So, at first you have to go to the `Settings` and then `Keyboard`:

![Keyboard Settings screenshot](https://andrzejgor.ski/posts/compose_key/gnome_keyboard_settings.png)

Then you have to click the `Compose Key` option in the `Special Character Entry` section. There you can turn it on and choose which key you want to use as a Compose Key.

As you can see on the screenshot, I use the `Caps Lock` key, but choose whatever you like.

## Lists of possible combinations

These two lists are the best that I found in the internet:

1. [GTKComposeTable](https://help.ubuntu.com/community/GtkComposeTable) - rather short, very readable list of most useful combinations.
2. [libX11 documentation](https://cgit.freedesktop.org/xorg/lib/libX11/plain/nls/en_US.UTF-8/Compose.pre) - very long, hard to read but very complete list of all possible combinations.
Tabs vs Spaces Divorce: Judge Rules
Tags: jokes, softwareengineering, codestyle
Published: 2023-06-12 23:20:26

Judge: "So, Mrs. Doe, please explain why you're seeking a divorce from your spouse, Mr. Doe."

Mrs. Doe: "Your Honor, I never thought I'd say this, but it's because of the tabs!"

Judge: "Tabs? Could you please elaborate?"

Mrs. Doe: "Certainly, Your Honor. We're both software engineers, and I've always been a firm believer in using spaces for indentation in my code. But Mr. Doe, well, he's a tab enthusiast."

Judge: "Ah, I see. And that's a deal-breaker for you?"

Mrs. Doe: "Absolutely, Your Honor. I mean, we've had our differences in the past, like curly braces placement and even semicolon usage, but this tab thing is just too much to handle. It's like trying to decipher hieroglyphics every time I look at his code!"

Judge: "Interesting. And have you attempted to compromise on this matter?"

Mrs. Doe: "Oh, we've tried, Your Honor. We've even attended counseling sessions, but we just can't seem to find a common ground. It's like living in two separate code universes."

Judge: "I can understand the frustration, Mrs. Doe. Code formatting can be a contentious issue. Is there anything else you'd like to add?"

Mrs. Doe: "Only that this divorce isn't just about our personal lives, Your Honor. It's about the future of clean and readable code. I can't let our disagreement over tabs ruin the harmony of my syntax!"

Judge: "Very well, Mrs. Doe. I believe I have a good grasp of the situation. We'll proceed accordingly. And may I suggest, for the sake of your professional sanity, you both consider adopting an agreed-upon code style in future relationships?"

Mrs. Doe: "Thank you, Your Honor. I'll keep that in mind. But for now, I need to move on to someone who understands the importance of proper indentation."

Judge: "Understandable, Mrs. Doe. The court will take your request into consideration. Case adjourned."

Remember, it's just a joke, and code style preferences should never be taken as grounds for a real divorce!
Day 760 : No No
Tags: hiphop, code, coding, lifelongdev
Published: 2023-06-12 22:45:38

_liner notes_:
- Saturday : So I stayed in my spot and did the radio show from there because there was a possibility of the station broadcasting a baseball game and I didn't want to drive all the way out there, especially since my cohost wouldn't be coming in. Turns out the team didn't win the earlier game so we would have been On Air, but I didn't find out till like an hour before the show and I wouldn't be able to make it to the station in time. Still had a good time. The recording of this week's show is at https://kNOwBETTERHIPHOP.com

![Radio show episode image of a photo of Cornel West looking straight ahead with a smile with the words June 10th 2023 Do The Math](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ucyb126jucf8qhrjva21.jpg)

- Sunday : Did my study session (https://untilit.works) and got a lot of stuff done. Made some pretty good progress on my new side project. Then I watched some anime to end the day.

- Professional : Pretty good day to start off the week. Had a quick meeting to catch up with some folks. Then I spent the rest of the time refactoring some code for a couple of demos. Thing is that I have no way to tell if demos actually work. haha I need to get more info on what they do.

- Personal : Been doing a lot of work on my side project. It's coming together pretty well. I got the authorization and authentication set for the admin dashboard. And I think I have a way to get the start of how to do the same for the host, guest and viewers pages. Once I get more done with the admin dashboard, I should be able to do more.

![View into the Grand Canyon with all the stripped color mesas extending into the horizon.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kt35dhvj7sq9ohyhzmla.jpg)

Going to work on the admin dashboard for my side project, go through some tracks for the radio show and watch some anime. I want to go through some more land listings. Now that I kind of know what to look for since going to South Carolina and finding out about more sites, I know what no no's and red flags to look for.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube UFzrs-5PiOM %}
I made a MongoDB migration tool
Tags: programming, python, devops, mongodb
Published: 2023-06-12 22:12:55

Hi Everyone! I made a MongoDB migration tool. Mongorunway designed to help users make the migration process as easy and convenient as possible.

Easy to use:

```py
from __future__ import annotations

import typing

import mongorunway

# Required, used by Mongorunway.
version = 1


@mongorunway.migration
def upgrade() -> typing.List[mongorunway.MigrationCommand]:
    return [  # List of commands to upgrade
        mongorunway.create_collection("abc"),
    ]


@mongorunway.migration
def downgrade() -> typing.List[mongorunway.MigrationCommand]:
    return [  # List of commands to downgrade
        mongorunway.drop_collection("abc"),
    ]
```

The tool also has many other useful components, more details on the project documentation website.

Documentation: https://animatea.github.io/mongorunway/
GitHub: https://github.com/Animatea/mongorunway
Unlock Your Potential with a Click: Streamline Your Website with a Downloadable Resume
Tags: webdev, resume
Published: 2023-06-12 22:01:59

One of the most effective ways to win a potential client over is through an impressive resume detailing your skillset, years of experience, portfolio, and other necessary information that proves your expertise. 

Reaching prospective clients with your resume is a lot easier in this tech age. Simply integrate a downloadable resume into your portfolio website and you're good to go. 

This article provides fast step-by-step guide to include a downloadable resume into your website.

**Step 1: Prepare and store your resume** 

Prepare your resume and save it where intending users can access it easily. Some common storage places are Dropbox and other cloud storage facilities and servers.  

**Step 2: Generate a download link**

If Dropbox, 
- Log in into your Dropbox. 
- Click on the Resume.
- Click on "Create link and copy"
- Copy the generated link
- Insert this code in your index file: 
<a href="path/to/your/resume.pdf" download class="download-link">Download Resume</a> 
PS: Replace “path/to/your/resume.pdf” with the generated Dropbox link

Create an CSS file and style the anchor tag. For instance, add this code in your CSS file: 

a.download-link {
    display: inline-block;
    padding: 10px 20px;
    background-color: #007bff;
    color: #fff;
    text-decoration: none;
    border-radius: 5px;
    font-weight: bold;


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


**Result:** 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/htd5bi8fn9hz9yqrga38.png)
Removing auto-complete in Gravity Forms without a plugin
Published: 2023-06-12 21:25:57

We are working on a site for the career coaches at [A Path That Fits](https://apaththatfits.com/). They have a number of office locations around the USA including [Berkeley](https://apaththatfits.com/career-coach-berkeley/), [Los Angeles](https://apaththatfits.com/career-coach-los-angeles/), [Brooklyn](https://apaththatfits.com/career-coach-nyc/) & [San Francisco](https://apaththatfits.com/career-coaching/). To handle the different pages and locations with different coaches at each place we use Gravity Forms to manage signups on the site. 

GF is a great plugin but we recently noticed it has issues with autocomplete on some browsers, so we wanted to disable it completely to make it easier for users.

The way autocomplete works in different browsers varies. While the general operation of autocomplete is governed by HTML5 standards, there is considerable opportunity for interpretation. Although the user experience is largely the same across all browser makers' slightly varying solutions for activating autocomplete, the technical variations make it impossible to find a universally applicable method of turning off autocomplete.

According to GF docs, the autocomplete attribute can be added to any input, select, or textarea to modify the autocomplete behavior of those fields, according to the specification. Additionally, it says that using the off value should turn off autocomplete for that field. Many browsers support this, but not all of them. 

Due to the various ways that browsers behave, our snippet quickly checks the User Agent to find out which browser is loading the form. The suitable autocomplete value is subsequently assigned for that specific browser. In all desktop and mobile browsers we tested, autocomplete was disabled.

Here is our working snippet:

```
add_filter( 'gform_form_tag', 'gform_form_tag_autocomplete', 11, 2 );
function gform_form_tag_autocomplete( $form_tag, $form ) {
	if ( is_admin() ) return $form_tag;
	if ( GFFormsModel::is_html5_enabled() ) {
		$form_tag = str_replace( '>', ' autocomplete="off">', $form_tag );
	}
	return $form_tag;
}
add_filter( 'gform_field_content', 'gform_form_input_autocomplete', 11, 5 ); 
function gform_form_input_autocomplete( $input, $field, $value, $lead_id, $form_id ) {
	if ( is_admin() ) return $input;
	if ( GFFormsModel::is_html5_enabled() ) {
		$input = preg_replace( '/<(input|textarea)/', '<${1} autocomplete="off" ', $input ); 
	}
	return $input;
}
```


Get more insights at:
[Brisbane Agency](https://brisbaneagency.com)
Idempotência em filas do serviço AWS SQS
Tags: braziliandevs, aws, sqs
Published: 2023-06-12 21:22:46

## Problema
Quando trabalhamos com aplicações que consomem mensagens de uma fila, um cenário que pode ocorrer é a fila possuir mensagens duplicadas em um fluxo funcional onde isso não poderia acontecer, causando uma inconsistência de dados em nossa aplicação. Esse problema pode ocorrer geralmente por dois motivos:

- Houve um problema de rede que impediu que o publicador da mensagem recebesse o status da requisição feita ao SQS, fazendo com que seja requisitado novamente.
- Por falta de validações prévias ou algum bug, funcionalmente o publicador acabou enviando a mesma mensagem para a fila.

## Solução
Existem algumas formas de se resolver esse problema, uma delas é utilizando filas do tipo FIFO no serviço AWS SQS. As filas FIFO possuem uma propriedade chamada MessageDeduplicationId. Se uma mensagem for enviada com um MessageDeduplicationId específico, todas as mensagens enviadas com o mesmo MessageDeduplicationId serão aceitas pela fila, porém NÃO serão entregues durante o intervalo de 5 minutos.

## Formas de trabalhar com a propriedade MessageDeduplicationId
Existem duas formas de se trabalhar com essa propriedade:
- A primeira é deixando a cargo do próprio SQS gerar o identificador ativando o "Content-based deduplication" nas configurações do SQS. Ao ativar essa configuração, é gerado um identificador único baseado no conteúdo do corpo da mensagem (não se aplica aos atributos da mensagem). 
- A segunda forma de se trabalhar com o MessageDeduplicationId é passando manualmente um valor ao publicar uma mensagem na fila.

## Cenários recomendados para trabalhar manualmente com o MessageDeduplicationId
- O publicador adiciona alguma informação no corpo da mensagem que sempre faz com que o conteúdo seja diferente.
- Mensagens com informações nos atributos que também deveriam ser levados em consideração para determinar se a mensagem é duplicada.
Ever heard the term "Developer Experience" ?
Tags: devex, dx, devrel
Published: 2023-06-12 20:57:52


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

Hey, guys! Are you all right?
In this newsletter, I will talk weekly about an especially important subject for me and for all people involved with software development: the Developer Experience (DX).
Ever heard of it? Do you know what this is?
DX (I’ll just use the acronym to make it easier 😉) is the experience that people involved with software development have when using a tool, a platform, or an API. It’s how they feel when interacting with the code, the documentation, the examples, the tests, and the support. This is how problems, doubts, and needs are resolved. This is how you learn and evolve.
DX is critical to creating quality, innovative, and scalable products. DX makes the difference between code that works and code that delights. DX is what attracts and retains top talent.
I really care a lot about the internal DX, that is, the experience of the developers themselves. I want them to feel motivated, valued, and happy. That’s why I’m sure the best companies should dedicate themselves to consistently delivering:

- Collaborative and diverse work environment
- Culture of continuous learning and knowledge sharing
- Autonomy and responsibility
- Recognition and reward
- Technical challenges and growth opportunities

I believe that DX is essential for the success of any business involving application development.
And you? How’s your DX? Are you satisfied with the tools you use? Do you feel like part of an amazing team? Are you proud of your work?
Contact me if you want to know more about DX. I would love to talk to you about it!

Thank you for your attention and see you later!

[Armando Guimarães Junior](https://www.linkedin.com/in/armandojr/) 🥑
The Pursuit of Clean Code
Tags: programming, productivity, beginners, cleancode
Published: 2023-06-12 20:51:39

I will explore the question of whether it is possible to have a clean code base. Let's start by looking at the challenges, from the easiest to the hardest.

### Complexity 
I frequently encounter situations where feature seems like a simple and easy to implement, but it soon became complex due to numerous interacting components, dependencies, and the need to account for various edge cases, user inputs, and system configurations. This complexity makes it difficult to maintain a clean code base.

### Changing requirements  
During feature implementation I often find myself discussing  about it with project stakeholders. And guess what happens next ?  
They often evolve requirements and shit priorities and it is usual for them to request additional changes. Some call this an agile way of working. For me in some situations adapting to these changes while maintaining existing code base clean can be a delicate balancing act. 

### Time constraint  
Developers primarily focus on solving problems programing,  while project stakeholders handle budget management, customer satisfaction, checking deadlines and so on. Due to time limitations enforced by project stakeholders in order to make customer happy, I often had to make trade-off between just getting things done with getting things done right.

### External factor  
Code base is part or a broader ecosystem that includes libraries, frameworks, various platforms, Issue with these external factors, such as bugs or limitations, can impact the overall software quality, even if the developer has done everything "perfectly" within their own code.

### Human factor  
Maintaining a clean code base is a collective effort, but each individual has their own set of values and principles, so the real challenge is to achieve a shared understanding among team members regarding coding standards, best practices, and the overall code base architecture. Also errors and mistakes can occur to everyone. Even with careful planning, coding, code reviews, and testing, it is still possible to end up having code smell. 

To make things worse challenges do not come alone but often in pairs or triples. There were many situations where I had to deal with changing requirements in complex code base where deadline was fast approaching. 


### Answer

Only 2 of 6 problems are code related, is this coincidence ?  

Also 4 of 6 problems include other team members, is this coincidence ?

Think about it. 

So, can we have a clean code base if only one or several team members practice it? 
  
This suggests that achieving a clean code base requires a collaborative effort and a shared understanding among the entire team and company.

   
The solution for each challenge lies in the collective effort of the whole team and company. It is essential that every team member is aware of the consequences and drawbacks associated with unclean code and its impact on future.

Finally answer: **Yes, achieving a clean codebase is indeed possible, but it requires the collective effort of the entire team.**
🧑‍🎓 Follow 📦 delivery in New-Caledonia w/ Discord🤖
Tags: api, rapidapi, showdev, tutorial
Published: 2023-06-12 20:46:50

## ❔ About

OPT-NC is delivering some public APIs on its own [RapidAPI Marketplace.](https://rapidapi.com/organization/opt-nc).

In this POST, you'll learn how to use [one of its API](https://rapidapi.com/opt-nc-opt-nc-default/api/suivi-colis/) by : 

1. Finding the API with Google
2. Authenticating yourself
3. Running some queries from terminal with `httpie`
4. Play with various `httpie` authentication options
5. Discover an innovation made possible thanks to our Marketplace


## 🍿 Demo

{% youtube d_vWqNONjCM %}
How to Install Ansible on Ubuntu
Tags: ansible, python, pip
Published: 2023-06-12 20:22:08

**Ansible** is an open-source platform used for automation and various operations such as configuration management, application deployment, task automation and IT orchestration.

_**How does Ansible work?**_

Ansible uses the _**concepts of control and managed nodes**_. It connects from the control node any machine with Ansible installed to the managed nodes sending commands and instructions to them.

**Key concepts**

- **_Modules_** are units of code that Ansible executes on the managed nodes.Each module is invoked by a task.
- **_Task_** is a call to an Ansible module.
- **_Plays_** are a series of Ansible tasks or roles mapped to group of hosts in the inventory.
- **_Playbooks_** are series of plays that explain what to run and are written in YAML.
- **_Inventory_** is a collection of all the hosts and groups that Ansible manages.it can be in a static file(.ini files) in simple cases or pull inventory from remote sources such as cloud providers.
- **_Role_** is a standard directory structure for specifying tasks and variables.Playbooks can be broken up into roles for modularity and reuse.
- **_Host_** is a remote machine managed by Ansible
- **_Group_** several hosts grouped together that share common attribute.
- **_Handlers_** used to perform actions on a service such as restarting or stopping a service that is actively running on the managed node's system.Handlers are triggered by tasks and their execution happens at the end of a play after all tasks are finished.

**How to install Ansible**
1: Setting up python 3:
```
sudo apt update
sudo apt -y upgrade
python -V
```

2: Setting up pip3:

```
sudo apt install -y python3-pip
```
3: There are a few more packages and development tools to install to ensure that you have a robust setup for your programming environment:

```
sudo apt install -y build-essential libssl-dev libffi-dev python3-dev
```
4: Setting up Ansible

```
sudo apt -y install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt update
sudo apt install ansible
```