teleren/devto huggingface dataset:
Next Meal
Tags: webdev, react, typescript
Published: 2023-09-15 20:29:02

### Find your _next meal_ easier than ever

I have been rather dormant with my blog posts lately, admittedly. I have not quit writing, but rather put my writings on pause for a moment. I was focusing my free time towards building my largest project that I have created yet. 

With little to no familiarity with a lot of the tools and technologies that I was choosing to leverage, I was heading towards mostly uncharted territory for me. What's more, I elected to complete this project with out leveraging tutorials. However, I did use the docs, Stack Overflow, and even sometimes Chat-GPT for some assistance.

#### What is Next Meal

Next Meal was designed based off of one of my initial projects as a web developer: [Clif's Catalog](https://github.com/bealecs/meal)

Next Meal blows its predecessor out of the water, however, offering many more features and benefits to its use. Some of the features of Next Meal include _(but are not limited to)_:

- Sous-chef: Vercel AI SDK, essentially leveraging an API to Chat- 
   GPT. Users can gather meal suggestions, instructions, 
   information, and more from the live chat bot.
- Favorites: Users can select their favorite meals to save to 
   their dashboard.
- Search Bar: Users can search through our vast catalog that is 
   brought to us by [Spoonacular API] (https://spoonacular.com/food-api).

Since creating Clif's Catalog, I have learned a lot about web development and different frameworks and libraries (specifically Next.js and TypeScript while building my portfolio). I decided to put my newfound knowledge to the test with this web app, and even push my limits a bit.

The technologies and tools that I leveraged for this project are as follows:

1. React/Next.js/TypeScript
2. Next-Auth for authentication
3. Prisma & Supabase for backend (User database)
4. Spoonacular (API endpoints)

There were many challenges faced throughout the build process of Next Meal, but what web developer doesn't like a good challenge _(am I right)_? I will be writing more in depth about individual issues faced, how I overcame them, and how I built out the app in further blog posts.

For now, Next Meal is hosted on a Vercel Deployment, and is available to anyone.

_**Please Note:** Next Meal is not Production ready yet, and is currently in BETA stage. There are active issues and updates being posted daily on the GitHub repository; please feel free to follow along, the link is below._

[GitHub Repository](https://github.com/bealecs/NextMeal)
[UX Flow Preview Video - Youtube](https://www.youtube.com/watch?v=rnOYdnrvLQ8)
[Next Meal - Direct Site Link](https://next-meal-cookbook.vercel.app)
Project Management and Large Language Models (LLM): A Synergistic Future?
Published: 2023-09-15 20:06:28

In today's rapidly evolving digital landscape, the fusion of project management and large language models is ushering in a new era of efficiency, collaboration, and problem-solving. These two seemingly distinct domains are coming together to create a powerful partnership that enhances project delivery, communication, and decision-making. Let's explore how the integration of project management and large language models is transforming the way organizations operate.

1. Streamlined Communication and Collaboration:

Project management relies heavily on effective communication and collaboration. Large language models, such as GPT-3, can facilitate these processes by automating routine communication tasks, generating project reports, and even assisting with real-time translation in multilingual teams. With AI-powered language models, project managers and team members can streamline their interactions, ensuring that everyone is on the same page and reducing misunderstandings.

2. Advanced Data Analysis and Forecasting:

Predictive analytics is a critical component of project management, helping organizations anticipate potential issues, allocate resources efficiently, and make informed decisions. Large language models can process vast amounts of data, providing valuable insights into project performance. By analyzing historical data and current project parameters, these models can assist project managers in making data-driven decisions that enhance project outcomes.

3. Natural Language Interfaces:

Large language models can act as natural language interfaces for project management tools and software. This enables users to interact with project management systems through conversation, making it easier for team members to input data, track progress, and request information. This natural interaction reduces the learning curve for project management software, making it more accessible to a wider range of team members.

4. Automated Task Management:

Automation is a hallmark of project management, and large language models can automate many routine project management tasks. From scheduling meetings and sending reminders to assigning tasks based on resource availability, these models can help project managers optimize their workflows, allowing them to focus on more strategic aspects of project delivery.

5. Knowledge Sharing and Training:

Large language models can serve as repositories of knowledge, making them valuable for onboarding new team members or providing training resources. They can generate documentation, tutorials, and answers to frequently asked questions, ensuring that project teams have access to essential information whenever they need it.

6. Risk Assessment and Mitigation:

Identifying and mitigating risks is a crucial aspect of project management. Large language models can assist by analyzing project data and identifying potential risks, allowing project managers to develop proactive mitigation strategies. This capability can significantly enhance project resilience and reduce the impact of unexpected challenges.
Minha experiência com meditação
Tags: mindfulness
Published: 2023-09-15 20:03:06

Meditação é difícil. Especialmente sem mentores por perto. A internet possui tanta informação que é fácil se perder e você precisa de tempo para se achar. Eu li uns livros. Livros de budismo, zen, até Tolle. Sentei em lotus e tive a perna formigando. Comecei, desisiti, recomecei, redesisti. Meditei de 30 segundos a 20 minutos. Não cheguei a usar mantras, mas tenho bastante conhecimento de como minha respiração funciona.

Conclusão? Vale a pena. Não é milagroso, mas é um avanço na qualidade de vida. Um avanço tímido e sutil. Consigo me pegar em momentos que a mente tomaria conta e, em vez de fazer besteira, respiro fundo. Espero que melhore minha vida ainda mais, quando tiver mais prática. Quero ficar mais sereno e silencioso por mais tempo.

Uma coisa esquisita que percebi é como posso usar meditação ao meu favor. Estou no processo de cortar uso excessivo de tecnologia e a meditação ajuda nisso. Agora, em vez de abrir o youtube ou o (antigo) twitter, olho pro teto. Em vez de ler enquanto faço uma refeição, o plano é simplesmente soltar a mente e prestar atenção na comida.

Quando não se está distraído o tempo todo, a vida tem um aspecto diferente, inquietante. Especialmente se não tiver ninguém por perto, apenas você e o lugar. Meditação é difícil. Mas vale a pena.
Lisp -> Scheme Lisp -> CHICKEN Scheme
Tags: lisp, scheme, chickenscheme, schemelang
Published: 2023-09-15 19:31:22

This is a short and opinionated overview on why using a [Lisp](https://en.wikipedia.org/wiki/Lisp_(programming_language)), a [Scheme](https://en.wikipedia.org/wiki/Scheme_(programming_language)), or particularly [CHICKEN Scheme](http://call-cc.org) is the thing.

## Why Lisp

* **Simple Syntax:** Everything is essentially a list, syntactically bounded by parenthesis with elements delimited by whitespace, known as [S-expressions](https://en.wikipedia.org/wiki/S-expression).
* **Functional Language:** Functions are first-class data types (`lambda`), recursion instead of iteration, support of closures, `map`/`filter`/`fold` higher order functions: Lisps make functional programming easy.
* **Garbage Collected:** Memory management is taken care of, as it should be.
* **Dynamic Typing:** Python and JavaScript, very popular languages, are dynamically typed, so this must be good.
* **Easily Implemented:** Many tutorials for building your own Lisp are available.

## Why Scheme Lisp

* **Minimal Lisp:** Schemes provide a minimal set of core forms and functions.
* **RnRS Standards:** Scheme is a standardized language, so standard implementations are compatible.
* **SRFIs Extensions:** The Scheme Requests For Implementation are reviewed proposals for extensions.
* **Semantic Naming:** Predicates should have the suffix `?`, mutations the suffix `!`.
* **Tail-Call Optimization:** Schemes have to support tail-call recursion.

## Why CHICKEN Scheme

* **R5RS Standard:** With 50-pages, this is a programming language definition one can understand, cf. C++.
* **Cross Platforms:** Due to the sole, minimal `libc` dependency, CHICKEN is available on many platforms.
* **Open Source:** CHICKEN Scheme is BSD-licensed and thus usable for all purposes.
* **Included Modules:** Various often-used SRFIs and non-standard utilities are part of the package.
* **Extension Repository:** More than 500 eggs (extensions) are listed in the offical repository.
Why coding is scary and how to learn better
Tags: webdev, javascript, beginners, programming
Published: 2023-09-15 19:27:09

# Why coding is scary and how to learn better

Learning to program is hard. I am still learning to program. I have been at this for 9 years. I am still learning but I feel like an idiot all the time.

When you first start programming you will realise that the language is scary, the environments are scary and the people are scary.

In the online spaces especially Twitter(X), you will find people throwing crazy jargons.

## Bad beginner advice

There are a lot of advices online from people. Great programmers will tell you to start programming by writing a simple game. 

They will say things like "You want to program, just start by writing a simple game like Tetris or Tik-tak-Toe." 

If you have ever tried to write Tetris, it is not simple.

Another person will tell you, "Start with C++. That is what they use in the industry. Especially in the gaming community, that is what they use to write gaming engines."

I have no problem with C++ but to begin with it, is madness. 

[For my eBook, You can get it here](https://karlgusta.gumroad.com/l/edtbb)

## How to learn better

Things you need to know when you are starting your coding journey is that:

- Coding has only about eight main concepts. You get them and you are done. The concepts are universal across languages. For those who know multiple languages, they know this is true.

Your first language will be hard, the second and the third, you will start to see patterns.

By the fourth or fifth language, you will be given a project and you can even do it in a weekend.

- Write out the concepts first, then convert to code later. If you are lost in coding, it is almost because you shouldn't be coding yet. Write out the concepts first, then convert to code later.

It is the same concept as an architecture when they start constructing a building. They come up with the designs first, then from the designs they can come up with the building.

- Most beginners think they don't understand what code to write. The real problem is they don't really understand the problem they are trying to solve. They try to figure out how to do it instead of what to do.

That's it.

Happy Coding!
Kıdem Tazminatı Hesaplama Aracı
Tags: calculator, kidemtazminati, tazminathesaplama
Published: 2023-09-15 19:16:14

[Kibrit Creative Solutions](https://www.kibrit.com.tr/tr/profesyonel-web-tasarim-hizmeti/) Ekibi tarafından geliştirilen [**Kıdem Tazminatı Hesaplama Uygulaması**](https://www.toylakhukuk.com/2023/09/07/kidem-tazminati-hesaplama/) ile iki farklı tarih arasındaki toplam çalışma gün sayınızı hızlı bir şekilde hesaplayarak hak ettiğiniz Kıdem Tazminatınızı doğru ve kesin bilgilerle sağlıklı bir sonuç elde edebilirsiniz.

Uygulamanın ilk yayınlanma noktası Toylak Hukuk bürosuna ait olan **[Kıdem Tazminatı Hesaplama](https://www.toylakhukuk.com/2023/09/07/kidem-tazminati-hesaplama/)** sayfasından erişebilirsiniz.


![Toylak Hukuk Kıdem Tazminatı Hesaplama Aracı](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1fwwcmccjgpysysnqoe4.jpg)

**Dijital Tazminat Hesaplama Uygulamasının Avantajları**

Hata yapmadan kolay bir şekilde iki farklı tarih arasınadaki toplam iş gününüzü Yıl, Ay, Gün olarak hesaplamanıza olanak sağlar.

[Tazminat Hesaplama](https://www.toylakhukuk.com/2023/09/07/kidem-tazminati-hesaplama/) işlemi Brüt maaşınız ve diğer yan ödeneklere bağlı olarak yasal tüm haklarınızın kesin sonucunu size sunar.

Geleneksel yöntemlerin aksine dijital altyapısı ile çevreci ve hızlı bir çözüm üretir.
Why I don’t buy into “Self explanatory code”
Tags: cleancode, javascript, beginners, productivity
Published: 2023-09-15 18:58:34

I think most people would be blown away once they see how heavily complex codebases are commented.

I don’t buy into “Your code should be self explanatory” and the reasoning for that is once we start adding business insights into codebase, it loses half its meaning.

The code can’t talk back to us and tell why certain things are behaving in certain way. No matter how “clean” we keep it. We can’t always add meaning to it.

So for me, “WHY” something was done in certain way is absolutely critical before I can add any new features or refactor it.

I know “WHAT” I need to do if requirements are clear but from what I’ve seen most codebases rarely answers “WHY” unless someone has been kind enough to leave comments.

What I’ve also seen is as the code becomes more and more complex, the developers who maintain it tend to add as many comment as possible, not for future developers but for themselves (tests are not a replacement for comments, sorry!).

I guess it goes to show that even people who regularly maintain it need additional comments to make sense of their own code as the complexity grows.


I don’t think a function, class name, variable, how things are connected can ever give you a full picture.

For context I’m working on an invoice management software and there’s no way it would’ve continued making sense without meaningful comments.

Even though the “code” itself is quite clean the insights/comments and tests have become essential for proper development.

Maybe this problem is specific to certain type of software!
Can I commit changes and push changes into my vendor if I use vcs as composer repository?
Tags: help, composer, php
Published: 2023-09-15 18:44:13

I am looking a way to manage the dependencies that I develop and use at the same time in multiple projects:

{% stackoverflow 77114699 %}

What I want is to develop a new dependency version and tag it and update by `cd`ing into vendor folder and commit my changes.

Can you help me with that?
Txt-To-Html Converter
Tags: opensource, testing, javascript
Published: 2023-09-15 18:28:18

For my Lab 1 that was Text to Html converter, I used Slack for meeting with my team member to review their code and vice-versa

For review I did saw many code with different languages, the one that I reviewed was based on javaScript had some issues while executing it there was some issue in package.json that didn't had all the packages that needs to be there. Later on when I tried to execute it it was good.

For my code there were some issues in my readme file. Firstly it was not in markdown language as required, I changed it with help of the documentation. Second, there were not proper instruction to run the code properly so updated that as well after that it was all good.

Overall, It was good experience review other team member's code and provide with a better solution to them, and it is also to good to get someone to look on my code and review it so that i can make it better as the error that they can see I might have missed them while debugging.
Comprehensive user data from the API,
Published: 2023-09-15 16:40:47

This application will retrieve comprehensive user data from the API, diligently process it, and extract specific fields like usernames and passwords. The processed data is then served through the application's endpoints. The ensuing example showcases a practical implementation that encapsulates these operations seamlessly. By following the steps provided, you'll be able to comprehend how the Express server efficiently retrieves, processes, and serves the refined user data. Please note that while this demonstration focuses on the essence of data manipulation, 

## 1. Set Up Your Project:

   Create a new directory for your Express.js project and initialize it using npm or yarn:

   ```bash
   mkdir express-api-processing
   cd express-api-processing
   npm init -y
   ```

## 2. Install Dependencies:

   Install the necessary packages: express, axios.

   ```bash
   npm install express axios
   ```

## 3. Create the Server:

   Create an `index.js` file to set up your Express server.

   ```javascript
   const express = require('express');
   const axios = require('axios');

   const app = express();
   const port = process.env.PORT || 3000;

   // Define the API URL
   const apiURL = 'https://api.example.com/user-data';

   // CORS middleware to allow cross-origin requests
   app.use((req, res, next) => {
     res.setHeader('Access-Control-Allow-Origin', '*');
     res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
     res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
     next();
   });

   app.get('/users', async (req, res) => {
     try {
       // Fetch user data from the API
       const response = await axios.get(apiURL);
       const userData = response.data;

       // Process the user data to retrieve only username and password
       const processedData = userData.map(user => ({
         username: user.username,
         password: user.password
       }));

       // Send the processed data as JSON
       res.json(processedData);
     } catch (error) {
       console.error('Error fetching user data:', error);
       res.status(500).json({ message: 'Internal server error' });
     }
   });

   app.listen(port, () => {
     console.log(`Server is running on port ${port}`);
   });
   ```

## 4. Run the Server:
   Start your Express server:

   ```bash
   node index.js
   ```

Now, when you access `http://localhost:3000/users`, your Express server will fetch the user data from the API, process it to retrieve only the username and password, and then serve this processed data in JSON format.

Please note that in a production environment, you should add more error handling, data validation, and potentially implement security measures depending on the sensitivity of the data being processed and served.
Try using Figma solely with keyboard shortcuts for 20 minutes daily.
Tags: figma, tips
Published: 2023-09-15 18:19:29

The one thing that helped me move faster while designing is to use keyboard shortcuts in Figma wherever possible. 

While designing everything is not possible (yet) with only keyboard, we can save loads of time using the available keyboard shortcuts. 

I learned most of the shortcuts by forcing myself to use only keyboard to design for 20 mins everyday. I try to find how to do something just using the keyboard before resigning to the mouse.

At first it was hard to find the shortcut and it was hurting my workflow. But after some days the shortcuts I have learned have been very useful for improving the speed at which I design.

So what are you waiting for? Press `⌃⇧?` in your Figma to get started with keyboard shortcuts.
Dealing with openssl when install old Ruby in recent Ubuntu
Tags: ruby, rvm, ubuntu
Published: 2023-09-15 17:49:23

Many of you must have faced the problem of installing an old version of Ruby on a new Ubuntu.

Several threads throughout the internet demonstrate this, and various solutions have been shared.

The most common issue is the incompatibility with the OpenSSL version.

Among the most daunting solutions for non-expert Linux users is "compiling OpenSSL, installing it, and configuring Ruby to use this version." At least for me, that option is quite intimidating.

However, [RVM](https://rvm.io/) provides a native solution.

ex: In ubuntu 22.04
trying to install ruby 2.7.4 like this

`rvm install 2.7.4`

will raise errors similar to this

```
/usr/share/rvm/rubies/ruby-2.5.0/lib/libruby.so.2.5(rb_vm_bugreport+0x4ae) [0x7f03e16b18ce]
/usr/share/rvm/rubies/ruby-2.5.0/lib/libruby.so.2.5(0xaafbd) [0x7f03e152ffbd]
/usr/share/rvm/rubies/ruby-2.5.0/lib/libruby.so.2.5(0x19e2e6) [0x7f03e16232e6]
/lib/x86_64-linux-gnu/libc.so.6(0x7f03e128e520) [0x7f03e128e520]
/lib/x86_64-linux-gnu/libssl.so.3(0x7f03df83e140) [0x7f03df83e140]

```

**Solution that works for me**

```
rvm pkg install openssl
rvm install 2.7.4 --with-openssl-dir=/usr/share/rvm/usr
```

I hope this helps you.
Promises and Race Conditions
Tags: svelte
Published: 2023-09-15 17:48:28

Hi, new Svelte user and new frontend developer here, I had a question regarding to a comment on the official Svelte tutorial. In the [section on await blocks](https://learn.svelte.dev/tutorial/await-blocks) they talk about how Svelte avoids race conditions with promises by only considering the most recent promise. Specifically they say: 

> Only the most recent promise is considered, meaning you don't need to worry about race conditions.

I had a few questions related to this:

- How does Svelte internally track what the most recent promise is
- How does Svelte differentiate between separate promises? IE if I make 3 separate promises that affect 3 different, independent parts of the UI, does Svelte only consider the most recent of the 3, or can it handle them separately.
- Is there documentation/resources for me to learn more about this feature of Svelte? I couldn't find any on my own.

Thanks!