teleren/devto huggingface dataset:
Symfony clean architecture
Tags: symfony, cleanarchitecture, php
Published: 2023-06-18 15:44:45

I started to work on implementing clean architecture on my Symfony projects.

You can found a first version of skeleton on Framagit at [https://framagit.org/small/symfony-clean-architecture](https://framagit.org/small/symfony-clean-architecture)

## Clean architecture implementation

![Clean architecture cone image](https://framagit.org/small/symfony-clean-architecture/-/raw/master/img/clean-architecture-cone.jpeg)

The clean architectures intend to isolate business code that rarely change when technical code changing every day.

- The entities are business object 
  - They represent the data (at sens of business not ORM)
  - They implement business rules
- The use cases are the implementation of application business process and business rules
  - Use case classes
  - Request
  - Response
  - Request
- The interface adapters
  - controllers (http handling)
  - gateways (interfaces)
  - presenters (class that format the driver response)
  - managers (database and other )
- The end level are framework and drivers
  - input driver (http, message broker reception, websockets...)
  - output drivers (ORM implementation, message broker messages emission, other db drivers)
  - framework code

## Skeleton implementation

In this implementation, we have two main directories :
- "Domain" : all application and business specific rules code
- "Infrastructure" : all technical code attached on framework and device

You are free to structure this code according to external devices

The domain directory is structured directory, representing your application :
- Interface adapters
  - directory "Gateway" contains all contracts (class interface)
  - directory "Controller" contains all input http managers
  - directory "Manager" contains all other managers (ORM managers, services to messages brokers...)
  - Presenter : classes that formalise a manager or a controller answer (for example html code)
- Applications business rules
  - Request : classes that formalise requesting data for a use case
  - Response : classes that formalise answer data of use case
  - UseCase : classes that implements application business rules
- Entity
  - Classes that implements the business rules and data organization
Convert Font Using FontForge
Published: 2023-06-18 15:34:10

## Requirement

[FontForge](https://fontforge.org/en-US/) was installed and can be access in terminal.

Simple command to convert font or just to regenerate font.

```bash
fontforge -lang=ff -c 'Open($1); Generate($2); Close();' in.otf out.ttf
```

Or using absolute path.

```bash
fontforge -lang=ff -c 'Open($1); Generate($2); Close();' "$PWD/in.otf" "$PWD/out.ttf"
```
How to Implement Builder.io into Vue.js
Tags: vue, frontend, node
Published: 2023-06-18 15:32:51

hello
I am new to vue and i am loving it
i ve been tasked to create a website builder app or a page builder for now
and i stumbled upon builder.io where you can implement it to vue.js
following the guide in their website when i try to launch the project i just get an empty page
i checked the code again
i checked the routes
i checked the components
but no matter how much i try i can t seem t make it work
does anyone know or have a github project with builder.io implemented into vue.js? i am on a deadline and it s stressing me out
Thank you
💻ES6 tutorial: template literal in javascript
Published: 2023-06-18 15:19:39

Before ES6, we use single quotes (`'`) or double quotes (`"`) to wrap a string literally. And the strings have very limited functionality.

In ES6, we can create a template literal by wrapping text in backticks (````) Example: 

```
let simple = `This is a template literal`;
```

Here are some key features of template literals:

### Multiline Strings:

With template literals, you can create multiline strings without the need for escape characters or concatenation.

```
const multiline = `
  This is
  a multiline
  string.` ;
```

### Variable Interpolation:

We can simply include the variable or expression within **`${}`**

```
const name = "Javascript";
const greeting = `Hello, ${name}!`;

console.log(greeting); // Output: Hello, Alice!
```

### **Tagged templates:**

Tagged template is written like a function definition. However, you do not pass parentheses `()` when calling the literal.

```
const name = 'JS';
const greet = true;

function tag(strings, nameValue) {
    let str0 = strings[0]; // Hello
    let str1 = strings[1]; // , How are you?

    if(greet) {
        return `${str0}${nameValue}${str1}`;
    }
}

// passing argument name
const result = tag`Hello ${name}, How are you?`;

console.log(result);
```
Diving into JavaScript: Real-World Projects for Beginners
Tags: discuss, javascript, beginners, learning
Published: 2023-06-18 15:18:44

Hello, Dev.to community!

I hope this post finds you well. Today, I want to discuss a topic that's close to my heart: learning JavaScript as a beginner. We all know that the best way to learn is by doing, not just reading theory or tinkering with small, isolated tasks. But what if we could take this a step further?

Instead of the standard beginner projects we often see, like the ubiquitous to-do list app or weather app, I want to explore real-world, practical examples that beginners could start building in JavaScript. Projects that not only teach the basics but also provide a glimpse into the vast potential of what one can create with this versatile language.

Here are a few ideas:

**Budget Tracker**: A tool that allows users to input their income and expenses, categorize them, and visualize their spending habits over time. This project could introduce beginners to concepts like DOM manipulation, event handling, and data visualization.

**Recipe Finder**: An application where users can input ingredients they have on hand, and the app will suggest recipes based on these ingredients. This could be a great way to learn about APIs, asynchronous programming, and user input handling.

**Interactive Quiz**: A quiz app where users can take quizzes on various topics and get scored at the end. This project can help beginners understand how to work with forms, handle user input, and manage application state.

**E-commerce Storefront**: A simplified version of an online shop, where users can browse products, add them to a cart, and simulate a checkout process. This project can introduce beginners to concepts like managing complex state, working with forms, and handling user interactions.

**Personal Portfolio**: A website where beginners can showcase their projects, skills, and professional experience. This project can help beginners learn about HTML/CSS integration, DOM manipulation, and responsive design.

But I'm just one person, and I'd love to hear from all of you. What were your first projects when you started learning JavaScript? How did you learn, and what did you do right or wrong? What was useful, and what wasn't?

My main goal with this discussion is to create a comprehensive course that guides beginners through building a meaningful, real-world project in JavaScript. I believe that by sharing our experiences and insights, we can help shape a learning journey that is not only educational but also exciting and fulfilling.

Looking forward to your responses!
ShortGPT for Free
Tags: tutorial, ai, gpt3, gpt4
Published: 2023-06-18 15:10:11



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

I would like to introduce 🧠ShortGPT's basic web version, it is free ✨. You can ask questions and get short and concise answers! 

ShortGPT is software/app based on OpenAI’s large language model GPT-3/GPT-4 to get short and concise answers.
 
For more settings, you can use :
- ShortGPT CLI
- ShortGPT GUI Windows/Linux
- ShortGPT Android App

[You can try basic web version for free](https://nolowiz.com/shortgpt-get-short-and-concise-answers-from-gpt-for-free/)
Project: Tic-tac-toe - Reflections.
Tags: webdev, javascript, beginners, productivity
Published: 2023-06-18 15:05:21

As I begin another project I find myself failing to spend enough time planning. This ultimately leads to more road blocks and a general lack of direction. I need to acknowledge the benefits in giving each step of the process an appropriate amount of time. If I rush through one then that ultimately leads to issues in another. 

It's easy to get restless and jump right into writing lines of code, after all, this feels more productive than just thinking/planning. You have something concrete to look at and at the end of the day you can say, "Nice! I got this much done.". However, even if that one session went well, and I have something to show for it, any time that's cut out of the planning phase will ultimately come back to bite me.

I need to adjust my perspective on what I consider productive and find the value that comes from having a solid plan/idea of how you want to approach a project. This will ultimately lead to more productivity and improve my own abilities as a developer.
변화를 위한 필연적인 불안정성과 불확실성
Tags: 불확실성, 불안정성, uncertainty, instability
Published: 2023-06-18 14:49:42

사람들은 변화를 원하지만 변화에 필연적으로 따라오는 불안정성과 불확실성을 매우 불편해 한다. 불편해하는 것을 넘어서서 이 두 가지 요소가 발견되는 것을 리더나 조직의 잘못으로 생각하기도 한다. 즉, '발견'되는 것만으로도 문제라고 생각한다는 것이다. 하지만 생각해보면, 불안정성과 불확실성을 제거하는 가장 좋은 솔루션은 아무것도 하지 않고 변화를 시도하지 않는 것이다. 바꿔 말하면, 변화, 혹은 특히 '혁신'에 가까운 과감한 변화엔 이 두 가지 요소가 필연적으로 따라온다는 것을 리더나 팔로워 모두 인지하고 있을 필요가 있다. 더 민첩한 기동성을 가지기 위해 조직은 일부러 불안정성을 키우는 것도 조직의 전략이 될 수 있다. 맥락과 배경 없이 불안전과 불확실을 부정적인 상황으로 판단할 필요는 없다. 따라서 '위기는 기회다'라는 문구는 진부한 꼰대들의 문장이 아니라, 정말 상황에 따라 선배들의 지혜로운 조언일 수 있다는 말이다.

물론, 상황과 시기가 달라지면서, 아무것도 하지 않는 솔루션조차 완벽하게 이 두 가지 요소를 제거하기에 불가능할 수도 있다. 그러나 아무것도 하지 않으면서 불안정성과 불확실성을 가지게 되는 것은 최악의 상황이다. 통제권도 없고, 변화의 방향성과 시도도 없으면서 불필요한 불안과 불확실을 떠안아야 하기 때문이다. 목적과 유익의 가능성이 없는 불안정성, 불확실성은 굳이 안고 가야 할 리스크가 아니다.
Home Service App UI in Flutter
Published: 2023-06-18 14:32:58

**HelpingHand – Home Service Finder App Template in Flutter | Multi Language**
HelpingHand is Flutter home service finder app template. User can find home service provider, book provider, rate services, etc using this app template. It is built using Flutter. So, It is support android and iOS both.

The awesome looking app can be used for both Android and iOS platforms. It is optimized coded and easy to customize.

What you will get?
HelpingHand Multi Language App Template
Full source code in Flutter
Documentation
Free Version Upgrade
you can buy it from here: [Home Service](https://1.envato.market/ba7Aq9)
Your journey as a mid-level Ruby on Rails developer
Tags: ruby, rails, programming, webdev
Published: 2023-06-18 14:31:18

1. You have been a Ruby on Rails developer for a couple of years.

2. You can finish a ticket from A to Z with a little technical help.

3. You want to strengthen your Ruby/Rails knowledge and skills.

**Get on board and let's sail beyond the horizon.**

🌊⛵️🏴‍☠️ 

## 🗣️ This little voice 

You have probably written enough lines of Ruby to feel that you are in your comfort zone!

That's great. But this little voice makes you feel uncomfortable about your stagnation.

So you probably started to dedicate a part of your time to learning new things: a little bit of StimulusJS, a little bit of ActiveRecord, etc...

You feel like you're not making significant progress.

No worries! You are actually in the right mindset!

The only thing you need is **guidance**! 🧭

## 🗺️ Your Treasure map 

To become a better Rubyist you must take a month (or two) to learn the main concepts of OOP in Ruby.

Here is an exhaustive list of key concepts:

1. Ruby Object Model

2. The Ancestor Chain

3. The Method Lookup Path

4. Ruby Hook Methods

5. The Eigenclass

6. Private & protected + message handling

7. What are modules

8. The super keyword in Ruby

9. The yield keyword in Ruby

Once you've grasped these fundamental concepts, your coding confidence is bound to soar.

You'll approach your code with newfound assurance and expertise.

## RubyCademy

Leveraging my 12 years as a Ruby on Rails developer and 7 years as a tech writer, I created [RubyCademy](https://www.rubycademy.com).

Let me be your guide on your journey to mastering Ruby and save you valuable time along the way.

\>>> [Visit RubyCademy.com ](https://www.rubycademy.com)

Also, you can follow us on [x.com](https://www.x.com/RubyCademy) as we're very active on this platform. Indeed, we post elaborate code examples every day.

 <center>💚</center>
Project Planning
Tags: pm, github, zidan
Published: 2023-06-18 13:48:49

Let's outline at a high level project plan for building out Zidan's. I'm using GitHub Projects to manage all my project work.


![Zidan Project](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mha51bq68c796jhb43dm.jpg)

1. **Research and Development**: The focus of this project is to research and test products and tools that I can use for building out Zidan and then come up with a system design to be used in the next project **Product Development**.

2. **Product Development**: The focus for this project is to build out Zidan and release it to the public.

3. **Product Branding**: I kind of feel that this should be combined with **Product Development**, but I wanted to keep it separated because in the **Product Development** project I'm going to create a task for an the initial product release and then this project will focus on the branding and marketing into multiple social media outlets. 

That's it. Let me know what you think.
Use Kodezi for Auto-Coding!
Tags: webdev, javascript, beginners, programming
Published: 2023-06-18 13:30:00

🚀 Boost Your Coding Game: Why Use Kodezi for Auto-Coding! 🚀

DON'T WANNA READ THE LONG POST?
[FIND THE LINK TO ALL AI](https://www.aiforme.wiki/ai/tools/Kodezi)

Why is it important to use [Kodezi](https://www.aiforme.wiki/ai/tools/Kodezi) for optimisation, you ask? Well, my fellow programmers, it's like having a personal coding wizard by your side, effortlessly optimising your code and boosting your productivity! 🧙‍♂️💻

Now, let's unveil the groundbreaking tool that will revolutionise your coding experience! ✅

[Kodezi](https://www.aiforme.wiki/ai/tools/Kodezi):
🌟 Let [Kodezi](https://www.aiforme.wiki/ai/tools/Kodezi) work its magic! Kodezi is the Grammarly for programmers, auto-optimizing your code in seconds. Say goodbye to time-consuming manual optimizations! With Kodezi, your code becomes cleaner, more efficient, and easier to maintain. Boost your productivity and focus on what truly matters—coding brilliance. Discover the power of Kodezi at @Kodezi and let the optimization begin!

But wait, there's more! Introducing KodeziChat: 💬 Unleash the full potential of [Kodezi](https://www.aiforme.wiki/ai/tools/Kodezi) with KodeziChat, your personal AI coding assistant. Generate, ask, search, and code anything within your codebase. Get instant assistance and supercharge your coding workflow like never before!

Don't settle for average code! Let Kodezi be your coding companion, optimizing your code with lightning speed. Click the link in the comments to explore more about Kodezi and unlock the world of effortless code optimization!

**FIND THE [LINK](https://www.aiforme.wiki/ai/tools/Kodezi) 🌐💻 **

#Kodezi #AutoOptimization #AI #ArtificalIntelligence
Defer vs Async vs Default Browser Behavior
Tags: javascript, webdev, frontend, tutorial
Published: 2023-06-18 13:28:46

## Default Behavior:

![default](https://upload.wikimedia.org/wikipedia/commons/8/8f/Default_behavior_of_browser_when_parsing_html.png)

1. html is getting parsed

EVENT: it gets across script element

2. html parsing stops
3. js file is getting downloaded
4. js file is parsed and executed
5. html continues getting parsed

## DEFER

![defer](https://upload.wikimedia.org/wikipedia/commons/8/8b/Browser_behavior_when_defer_attribute_is_added_to_script_element.png)

1.  html is getting parsed

EVENT: it gets across script element

2.  html continues parsing AND SIMALTANEOUSLY js files gets downloaded

EVENT: html parsing finished

3.  js file gets parsed and executed

DEFER means 'postpone' or 'do sth at a later time' so the parsing of js and execution is 'deferred' BUT loading is not

Not always is js file execution is waiting for html to be finished getting parsed, sometimes, js file execution is waiting for js file to load because it takes longer than html parsing.

![incident](https://upload.wikimedia.org/wikipedia/commons/f/f6/Incidence_of_browser_reading_html.png)

## ASYNC

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


1.  html is getting parsed

EVENT: it gets across script element

2.  html continues parsing AND SIMALTANEOUSLY js files gets downloaded

EVENT: js file finished downloading

3. html stops getting parsed and js file begins getting parsed

EVENT: js file finished parsing

4. html continues parsing

Once browser reaches script element it starts to process js (loaded and executed) regardless of html status, html is parsed side by side when js is being loaded but js starts getting parsed and executed the moment it finishes loading, html parsing stops since browser can parse one thing at a time.

---

I hope this was clear. If you have any questions, please feel free to ask them below. Additionally, I welcome any corrections or valuable information you may have to contribute.
Mastering Debugging in Symfony
Tags: php, symfony, debugging, phpdevelopment
Published: 2023-06-18 13:14:00

---
title: Mastering Debugging in Symfony
published: true
description: Discover effective techniques and tools to squash bugs and optimize performance
tags: php, symfony, Debugging, phpDevelopment
cover_image: https://anastasionico.uk/img/blog/mastering-debugging-in-symfony.jpeg
---

What if I tell you I spent the last 40 hours of my work week debugging an issue on my Symfony application?

Sounds like a nightmare? well, pretty close.

 

In this post, I’ll show you what I did to fix the issue and how I make my program more reliable than ever.

Effective debugging not only will save me time from now on but also improves the overall quality of my (and your) code. 

 

Debugging is not merely about fixing bugs; it is a powerful tool that empowers us to identify and resolve issues rapidly. 

 

Imagine encountering a bug that halts your progress or causes unexpected behavior. 

With efficient debugging skills, you can pinpoint the root cause, apply effective solutions, and keep your development on track. 

 

By actively debugging, you can prevent future issues, improve code readability, and foster a more maintainable and scalable Symfony application.

In this blog post, we will explore the importance of debugging in Symfony applications and discover tips and techniques to enhance your development process.

[Mastering Debugging in Symfony
](https://anastasionico.uk/blog/mastering-debugging-in-symfony)
Redis Commands
Tags: redis, commands
Published: 2023-06-18 12:32:17

Hey there, Redis enthusiasts! Get ready to embark on an exhilarating journey into the world of Redis commands. In this blog, we’ll dive deep into Redis, a blazing-fast in-memory data structure store, and explore its powerful commands that allow you to manipulate data with ease.

Whether you’re a seasoned Redis user or a curious learner, this blog will equip you with the knowledge you need to harness Redis’s full potential. So, grab your favorite caffeinated beverage and let’s get started!

Before you get started don’t forget to [install redis](https://hackthedeveloper.com/how-to-install-redis-on-windows/) on your machine.

## A Quick Overview of Redis
Redis is an open-source, NoSQL, key-value store that has gained immense popularity for its exceptional speed, versatility, and simplicity. It serves as an advanced data structure server, offering a plethora of data manipulation capabilities that go beyond traditional key-value stores.

Redis uses an in-memory data storage approach, making it lightning-fast for read and write operations. It also supports persistence, allowing you to save your data to disk and recover it later, ensuring both speed and durability.

Now that we’ve covered the basics, let’s delve into the exciting world of Redis commands!


Redis revolves around keys, and this category focuses on key manipulation commands. Some key commands include:

## Redis SET and GET Commands
The SET command is used to set a key-value pair in Redis.

The syntax is as follows:
```
SET key value [EX seconds] [PX milliseconds] [NX|XX]
```
Example:
```
SET greeting "Hello, Redis!"
```
The GET command is used to retrieve the value of a key.

Syntax:
```
GET key
```
Here’s an example of how to use the Redis GET command to retrieve the value we set earlier:
```
GET greeting
```
## Redis EXPIRE Command
The EXPIRE command is used to set a timeout on a key. The syntax is as follows:
```
EXPIRE key seconds
```
Here’s an example of how to use the EXPIRE command to set a timeout of 10 seconds on the “greeting” key we set earlier:
```
EXPIRE greeting 10
```
## Redis INCR and DECR Commands
The INCR command is used to increment the value of a key by one. If the key doesn’t exist, it’s set to 0 before performing the operation. The syntax is as follows:
```
INCR key
```
Here’s an example of how to use the INCR command to increment the value of a key:
```
SET counter 0
INCR counter
```

The DECR command is used to decrement the value of a key by one. If the key doesn’t exist, it’s set to 0 before performing the operation. The syntax is as follows:

## DECR key
Here’s an example of how to use the DECR command to decrement the value of a key:
```
SET counter 10
DECR counter
```

Read full from the original blog: [Redis Commands](https://hackthedeveloper.com/redis-commands/). Find the blog on Google: [Redis Commands](https://www.google.com/search?q=redis+commands+site%3Dhackthedeveloper.com).
Perl Weekly Challenge #221 - Good Strings, Bad Strings
Tags: perl, perlweeklychallenge
Published: 2023-06-18 12:49:28

Hi everybody! Very limited time this week so just a brief blog post.

This week we're looking for any words in the list that can be created only using letters from a dictionary string. Then print the number of characters in the good words.

Here's the code:

    #!/usr/bin/perl

    use strict;
    use v5.24;

    my %chars;
    $chars{$_}++ for (split(//, shift));

    my $total;

    foreach (@ARGV) {
        my @currWordChars = split(//, $_);
        my %list = %chars;
        my $notFound;

        for my $char (@currWordChars) {
            if ($list{$char}) {
                $list{$char}--;
            } else {
                $notFound = 1;
                last;
            }
        }
        $total += ($notFound ? 0 : @currWordChars);
    }
    say $total;

So we try every single word against a hash of the dictionary letters, and if we're missing a letter we skip that word. We do this by making a copy of the dictionary hash and removing letters as we use them to create the word we're currently looking at.

A very simple solution and I started work on the second one but didn't have enough time available. Have a good week and I'll hopefully see you next week!
6.0001 Introduction to Computer Science and Programming in Python by The 9-to-5 Scholar : Introduction
Published: 2023-06-18 12:44:54

According to official Website,  *6.0001 Introduction to Computer Science and Programming in Python* is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.

Although I have experience with programming with JavaScript and C++, I have minimal experience with python.  Hence I am taking this class to brush up basic programming course and get hands on with python.

## Topic:

Here are topic that will be cover in this course:

- Represent knowledge with data structures
- Iteration and recursion as computational metaphors
- Abstraction of procedures and data types
- Organize and modularize systems using object classes and methods
- Different classes of algorithms, searching and sorting
- Complexity of algorithms