teleren/devto huggingface dataset:
Gerenciadores de pacotes Javascript
Tags: gerenciadoresdepacotes, npm, yarn, pnpm
Published: 2023-10-24 12:03:03

## O que são?

São ferramentas que auxiliam o desenvolvedor a fazer o download de pacotes disponibilizados em registry (Por uma tradução direta significa registro, cartório, matrícula ou inscrição), então podemos considerar que é onde registramos nosso pacote criado e disponibilizado para outros utilizarem. Existem vários registry para se utilizar o mais conhecido é o npm, mas também podemos utilizar github, gitlab, nexus entre outros.

## E quais existem no mercado?
Atualmente para o mundo do javascript existem três sendo eles npm, yarn e pnpm. Cada um tendo suas vantagens e desvantagens irei dar uma breve resumida sobre cada um deles.
npm (Node package manager)
Sendo o primeiro a surgir como um gerenciador de pacotes para javascript ele acaba sendo o mais simples de ser utilizar, pois já vem junto com o node, assim não precisando nenhuma instalação e nem configuração prévia. Não possuí uma boa perfomance para gerenciamento de muitos pacotes em o mesmo projeto, podendo causar um pouco de lentidão na instalação.

## Yarn
Este foi o segundo gerenciador criado, diferente do npm que é cuidado pelo time do github, o Yarn é open source, caso queira fazer alguma contribução é só acessar o repositório. Uma grande vantagem do yarn é a forma que ele trata os workspaces e sua capacidade de fazer cache das instalações.
A instalação é via npm:

```
npm i -g yarn
```

## pnpm (Performant node package manager)
Este atualmente é o último gerenciador de pacotes lançado. O p significa perfomant em uma tradução direta é desempenho. O pnpm é incrível pois ele tem a capacidade de poupar espaço dentro da sua máquina pois diferente de todos os outros gerenciador de pacotes o pnpm ele cria uma node_modules na raíz de seu computador e compartilha via link entre todos os outros projetos que possuem os mesmo pacotes. Essa característica poupa espaço em disco e agiliza a instalação, pois não precisa fazer o donwload, apenas o link (É um estratégia dos gerenciadores de pacotes para reutilizar um pacote em outro local).
A instalação é via npm:

```
npm i -g pnpm
```

Sabendo um pouco sobre cada ferramenta, qual utilizar? Isso vai muito do time que você está e da stack definida dentro da sua empresa. Se você está iniciando, vá pelo simples o npm, você não terá que se preocupar em fazer instalação extra. Agora se você busca perfomance e um bom gerenciamento de workspaces, pode seguir pelo caminho do yarn, mas se você procura perfomance e eficiência, vá com o pnpm. Porem não se esqueça que terá que conhecer bem sobre a ferramenta para fazer as configurações corretas e ter todas as suas vantagens.
From Spreadsheet to QuickBooks Online: A Guide to Invoice Import
Published: 2023-10-24 12:02:19

Modern technology lets you effortlessly import lots of invoices from different file types like Excel, spreadsheets, IIF, CSV, or text files straight into QuickBooks Online using SaasAnt Transactions (Online). This isn't just efficient, but it also saves you a ton of time. In this guide, we'll show you how to import invoices into QuickBooks Online with SaasAnt Transactions (Online) and why it's such a handy tool.
How to Import Invoices into QuickBooks Online:
1.	Log In: Sign in to your SaasAnt Transactions Online account to access its powerful features.
2.	Start a New Import: In the user-friendly interface of SaasAnt Transactions (Online), find and click on the "New Import" tab.
3.	Choose ‘Let's Import’: This kicks off the process, allowing you to specify what type of data you want to bring in.
4.	Select QuickBooks Entity as ‘Invoices’: SaasAnt Transactions (Online) easily works with QuickBooks Online, ensuring your imported data matches your invoicing needs.
5.	Pick Your Files: Choose the files that have your invoices. SaasAnt Transactions (Online) supports different file types, giving you flexibility.
6.	Map Your File Headers: One great feature of SaasAnt Transactions (Online) is its advanced mapping. You can link your file headers to the right spots in QuickBooks without hassle.
7.	Preview Mapping: Hit the ‘Preview Mapping’ button to see how your data will be matched in QuickBooks. This step is crucial for accuracy and reducing errors.
8.	Upload: When you're happy with the mapping, click on "Upload" to start the import process.
9.	Success: Your data is now in QuickBooks, all thanks to SaasAnt Transactions (Online). You've made your invoicing process smoother, saved time, and lowered the risk of mistakes.
Benefits of Using SaasAnt Transactions (Online):
●	Efficiency: SaasAnt Transactions (Online) makes importing invoices easier, saving you time and effort compared to manual entry.
●	Accuracy: It's good at putting your data in the right places in QuickBooks, reducing mistakes.
●	Flexibility: You can use it with different types of files, so it works with the data you have.
●	Integration: It fits seamlessly with QuickBooks Online, making sure data moves smoothly without errors.
●	Time Savings: Tasks that used to take hours can now be done in just a few clicks with SaasAnt Transactions (Online).
To wrap it up, switching from spreadsheets to QuickBooks Online for importing invoices is easy with SaasAnt Transactions (Online). Forget about typing in data by hand, enjoy efficiency, and experience the perks of accuracy and flexibility. Simplify your invoicing process now with SaasAnt Transactions (Online) and see your business flourish.
Новый сайт-рейтинг поможет найти идеальную компанию среди штукатурных компаний
Published: 2023-10-24 11:58:28

Он станет незаменимым помощником при выборе лучших компаний по ремонту, производителей и товаров для дома и дачи, так как основан на народных рейтингах, которые формируются на основании отзывов сразу из нескольких независимых источников.

В настоящее время выбор среди компаний, производителей и товаров для дома и дачи представляет особую сложность. Большая конкуренция и широкий ассортимент на рынке делают этот процесс крайне сложным и запутанным. Именно поэтому был создан и запущен сайт-рейтинг РейтингФирмПоРемонту.Ру, чтобы помочь потребителям принимать взвешенные решения, основываясь на опыте других людей.

Народные рейтинги этого веб-ресурса строятся исключительно на основании отзывов с независимых источников. Уникальная формула, заложенная в алгоритмы подсчета рейтинга, учитывает разнообразные коэффициенты в зависимости от площадки-отзовика, где собственно отзывы легче или жестче проходят модерацию. Весь процесс подсчета рейтинга автоматизирован и обеспечивает максимально объективные результаты.

Посетители сайта смогут в удобной форме ознакомиться с отзывами других пользователей и оценить прозрачные рейтинги лучших компаний, производителей и товаров. Это даст возможность сделать сравнительный анализ и сделать правильный выбор, исходя из практического опыта других потребителей, а значит каждое решение о покупке товара или заказе услуги после выбора на этом сайте будет принято на основе надежной, авторитетной и объективной информации.

Отдельно нужно сказать, что специалисты сайта-рейтинга уделяют большое внимание обновлению и актуализации информации, чтобы данный портал смог стать источником надежной информации для всех потребителей, которые ценят свои время и деньги.
https://www.ratingfirmporemontu.ru
6 API Architectural Designs
Tags: systemdesign, programming
Published: 2023-10-24 11:52:23

## API Architectural Designs

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

### 1. REST 🌐:

   Representational State Transfer - REST is like a classic library where you request specific books and receive them as they are. It's simple and widely used for web APIs, like ordering a la carte from a menu 🍽️.

### 2. GraphQL 🚀:

   GraphQL is like a customizable buffet 🍴 where you ask for exactly what you want and get a tailored plate. It allows clients to request only the data they need, reducing over-fetching.

### 3. SOAP 🧼:

   SOAP (Simple Object Access Protocol) is like sending a letter 💌 with detailed instructions, complete with a table of contents. It's more structured but can be heavier than REST or GraphQL.

### 4. gRPC 🚄:

   gRPC is like a high-speed train 🚄 for communication between services. It uses Protocol Buffers for efficient data exchange and supports streaming and bidirectional communication.

### 5. WebSockets 🌐💬:

   WebSockets are like real-time phone calls ☎️ for the web. They enable two-way communication, perfect for chat apps and live updates.

### 6. MQTT 📡:

   MQTT (Message Queuing Telemetry Transport) is like a radio broadcast 📻, designed for low-bandwidth, high-latency, or unreliable networks. Ideal for IoT devices and sensor data.

Each of these technologies serves a unique purpose in the world of web and communication, catering to different needs and preferences. Which one suits your project best? 

👍🏿 Subscribe to our newsletter - https://bit.ly/45ucZPf

Let's discuss! Comment bellow
GeeCon 2023 Prague and the JV/Me.
Tags: java, eventsinyourcity, community, jvm
Published: 2023-10-24 11:16:50


I was having my beer after a hard day working on our privacy-related product when I saw some info on one of the social media that Geecon will be coming to Prague again this year. 

### 201*

That brought back tons of memories from my past. My first Geecon was in the early 2010s in Krakow when I was part of the crew booth with ZeroTurnaround. 

I didn't have time to attend any talks because I needed to collect marketing leads. Blah! 

I also enjoyed talking to my old good friend Josette Garcia from O'Reilly, whom I had known long before Geecon. What a great surprise it was to see her there as well.

The city was also excellent.

### 2014

Then, my mind brought me to 2014 when I connected Adrian Nowak, the main organizer,  with some local folks, companies, and user groups for the first-ever Geecon in Prague.

He made it possible for @bruceeckel to meet my teams at Infor (at this point), which was a blast! Yes, we talked about #kotlin :)


### 2023
I contacted the team after the CfP was closed to check if I could present my talk about fun at work. I was surprised by the positive answer. 

{% vimeo 867824994 %}



I am in Cerny most for the event a few weeks after that. I was positively surprised by the professionalism of the crew. I am visiting Geecon as an attendee/speaker for the first time, and the experience was smooth. 

Start with the coffee and munchies to the entire room for speakers and the super-luxury main conference room. Geecon is the first event where the talks finish on time. :)


![A big screen shows the geecon logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fco6978yqcrmw2lm6015.jpg)

I met a lot of peers and friends with whom I lost track of through the years. 

I was last active in the JVM space some 7-8 years ago, and listening to all the improvements and ideas was excellent and educational.

I talked about life with awesome people like @guyroyse, @jonathanvila, [Rustam Mehmandarov](https://twitter.com/rmehmandarov), and many others who accepted into their company a person (me) who is not in the JVM universe anymore.


![part of the Geecon speakers dinner. Author Jonathan Villa](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sj2kqrcmbca91vvlm7pa.jpg)

If you are looking for reasons to visit or to contribute to Geecon next time, take my word - you will not regret it!
how to solve error 'model doesnt exist in the registry'
Tags: odoo
Published: 2023-10-24 11:16:08

If you are new to Odoo development, you may sometimes end up in this situation when creating custom modules that inherit from existing base models.

For example, if you need to inherit the **mrp.production **model to your custom module model, you can write the following code:


`
class MrpProduction(models.Model):
    _inherit = 'mrp.production'`

and my __manifest__.py as below 

`
{
    'name': 'Training Addon ',
    'version': '1.1',
    'category': '',
    'author': '',
    'summary': "creating new fields in MO",
    'description': """ To add 2 new fields in MO """,
    'website': '',
    'depends': ['base'],
    'data': [],
    'installable': True,
    'application': True,
    'auto_install': False,
}
`


but once you run the Odoo, you will get an error as below 

`TypeError: Model 'mrp.production' does not exist in registry.
`

This is because the **manifest.py** file does not mention the dependency module for this inheritance, which is the base module 'mrp'. To fix this error, add the 'mrp' module to the line:

python


`depends': ['base','mrp'],`

now the error will be gone!
10. Tuesday study highlights (Day 8)
Published: 2023-10-24 10:58:54

Hey there!

Welcome back to my little corner of the internet. 

Today is my LIVE lecture day.

**Preparation Pays Off**

First off, I managed to get the pre-class reading done. I squeezed in some study time during my lunch break at work – a true multitasking champ, right? This set me up for a productive session.

**What We Covered**

The class was packed with valuable content. We delved into a few interesting topics:

**GitHub Practice**: Learning the ins and outs of GitHub once again was on the menu. It's an essential tool for any budding developer.

**Designing a Responsive Site**: We began crafting a website with a mobile-first mentality. The site was divided into 3 sections - the header with a navigation bar, the body, and finally, the footer.

**Two Hours of Challenges**

The class wasn't a walk in the park. Those two hours were challenging for a couple of reasons. Not only was the content new and demanding, but I was also grappling with my own tiredness. However, I had a mantra to keep me on track:

**Focus**: I reminded myself why I embarked on this course in the first place – to learn and grow.

**Enjoy**: Despite the challenges, I tried to appreciate the thrill of acquiring new knowledge and skills.

**Participate**: I actively engaged in the class, asking questions, providing answers, and coding along with the tutor.

Around the 1.5-hour mark, I had to hit the brakes on coding alongside the tutor. I couldn't quite keep up. So, I leaned back and watched. This means I'll have to catch up by watching the recorded lecture tomorrow evening.

**Next Steps
**
There are a few key concepts I need to master in the coming days:

**div class**: Understanding how to use "div" classes effectively is crucial in web development.

**Nav Bar**: Navigational bars are a fundamental component of web design, and I'm eager to get the hang of them.

**Flex**: Flexbox is a powerful layout system that I need to dive deeper into.

**Using a Separate CSS File**: Separating the styling from the structure is essential, and I'm determined to master this.

These are my primary goals for the immediate future. I want to soak up these fundamentals and make them second nature.

That's it for today's update. I'll catch you again tomorrow. Until then, stay curious and keep learning!
Fixing RTL text made with @react-pdf/renderer
Published: 2023-10-24 10:21:44

السلام عليكم 👋

If you're creating a pdf using [@react-pdf/renderer](https://github.com/diegomura/react-pdf) and you noticed the Arabic text direction is broken, then you can use the following component ([Original](https://github.com/diegomura/react-pdf/issues/747#issuecomment-1424269370))

```jsx
export const TextRTL = ({ isRTL, style, text }) => {
  return (
    <View
      style={{
        display: "flex",
        flexDirection: isRTL ? "row-reverse" : "row",
        flexWrap: "wrap",
        ...style,
      }}
    >
      {text?.split(" ").map((item) => (
        <Text
          style={{
            ...(isRTL ? { marginLeft: 2.5 } : { marginRight: 2.5 }),
          }}
        >
          {item}
        </Text>
      ))}
    </View>
  );
};

```

## Before:

![before RTL fix](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cyxwsyaybxro9por4exu.png)


## After: 

![after RTL fix](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xy0p0k796b6p64gh40vd.png)
Mastering Git
Tags: git, versioncontrol
Published: 2023-10-24 10:13:31

**Introduction**

Git, a powerful and widely-used version control system, is an indispensable tool for developers and teams managing codebases. Whether you're a seasoned developer or just starting, understanding key Git commands is essential for efficient collaboration and code management. In this blog, we'll explore some of the fundamental Git commands to help you get started on your journey to mastering version control.

**'git init'**

The journey begins with git init. This command initializes a new Git repository in your project directory. It creates a hidden .git folder, which contains all the necessary information to manage version control.

```
$ git init
```
**'git clone'**

If you're working with an existing repository hosted on a platform like GitHub or GitLab, you can clone it using the git clone command. This allows you to download a copy of the repository to your local machine.

```
$ git clone <repository_url>

```
**'git add'**

Before you commit changes, you need to stage them with the git add command. This command tells Git which files you want to include in your next commit.

```
$ git add <file_name>

```
To stage all changes:

```
$ git add .

```
**'git commit'**

Once your changes are staged, you can commit them with a descriptive message using git commit. Commits are like checkpoints in your project's history.

```
$ git commit -m "Your commit message here"

```
**'git pull and git push'**

To collaborate with others, you'll frequently need to synchronize your local repository with the remote one. Use git pull to get the latest changes from the remote repository and git push to send your local changes to it.

```
$ git pull
$ git push

```
**'git branch'**

Git allows you to work on different branches for separate features or bug fixes. You can list branches and create new ones using the git branch command.

```
$ git branch
$ git branch <branch_name>

```
**'git checkout'**

Switching between branches is accomplished using git checkout. This command is handy for moving between development, feature, and bug fix branches.

```
$ git checkout <branch_name>

```
**'git merge'**

When you've completed work on a branch, you can merge it into another branch, typically the main one, using the git merge command.

```
$ git merge <branch_name>

```
**'git status'**

The git status command gives you an overview of the current state of your repository. It tells you which files are modified and which are staged for the next commit.

```
$ git status

```

## Conclusion

Git is an invaluable tool for developers, enabling them to collaborate efficiently and manage codebases with ease. These fundamental Git commands are just the tip of the iceberg, but they'll give you a solid foundation for version control. As you gain experience, you'll discover additional commands and strategies to make your development process even smoother. So, get started with Git, explore its power, and take control of your code like a pro!
Filament Tips : Modal View on the Table Action
Tags: laravel, filamentphp, php, filamenttips
Published: 2023-10-24 10:07:40

## Introduction
Today, i got question from my sponsors. they ask me how to change filamentphp table row action (default, will be redirect to edit / view page). so, what he wanted is showing a modal slideOver view after click the table row (a record of the list).



## Let's Begin

In this case, im using a resource called `Example`. So, don't be confused.

So, we need set url record to null and add a ViewAction.

```php
public static function table(Table $table): Table
{
    return $table
           ->actions([
               ViewAction::make()->slideOver()
           ])
           ->recordUrl(url: null)
}

```


it will be look like this

![Filament view on the table](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/puk8oo5tft1p3vf00o2g.png)


And it don't stop there, he didn't want the view show a disabled from, but a information like infolist.

in filament, i didn't found how to change the form to the infolist.

Then?

Create a custom view, name it `example_view.blade.php`

Next things is, how we get a record of `clicked` row. 

so, in `ListRecord` there is a property called `cachedMountedTableActionRecord`. They cached a `clicked` row (basically, it can used for an actions of the table). 


Next, im add a method called `cachedMountedTableActionRecordInfolist` to the `ListExample` page and return a `Infolist`.


```php
public function cachedMountedTableActionRecordInfolist(Infolist $infolist) : Infolist
    {
        $data = $this->cachedMountedTableActionRecord;

        return $infolist
            ->state($data->toArray())
            ->schema([
                TextEntry::make('name'),
                TextEntry::make('created_at')
            ]);
    }
```

Next, modify the `example_view.blade.php` and call the method.


```php
{{$this->cachedMountedTableActionRecordInfolist}}
```

Last, Change the `ViewAction` to `Action` in the ExampleResource.

```php
public static function table(Table $table): Table
{
    return $table
           ->actions([
               Tables\Actions\Action::make('view')
                    ->slideOver()
                    ->modalContent(view('example_view'))
                    ->modalSubmitAction(false)
                    ->modalCancelActionLabel('Close'),
           ])
           ->recordUrl(url: null)
}

```

Finally looks like this. 


![Filament Infolist View on the table](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ybsj9o7ukepgrzhp8kqb.png)