teleren/devto huggingface dataset:
Clean code
Tags: go, cleancode, development
Published: 2023-10-03 21:22:00


After digging through the new code (golang, if that's important), I discovered a large number of interfaces that could easily be removed - they did not affect anything. But I decided to bring up this topic.

It became clear in advance that this was about the near-SOLID concept of “clean code”. I am neither against nor for, it has both pros and cons, but, in some aspects, in my direction of decision:

- All articles on this topic begin with the same example: creating an access interface to a database (template repository) so that it can be implemented for several databases. This is motivated as follows: suddenly you intend to move from postgres to Mongo. A similar example, of course, can be expected in reality, but, as for me, it is still quite loose. I don't believe in simply moving from sql to nosql and back for any project, more than todo. Motivation number two is to implement it for both postgres and sqlite, because it is difficult for a programmer to run postgres locally. From this moment you already want to start giggling, having provided for a certain number of additional problems, you choose a communication method, where the foundation of the project changes radically during development and operation. I would like to add that, for sure, there is already an abstraction for the sql database, where to replace the database you only need to replace the driver.

In my head, it so happens that interfaces are created at the moment when two entities make up one contract, but all attempts to reach two entities in the examples above look strange. But, the trick here is to take off his hat, and from the hat the metal unit tests are being mocked, namely the unit. Do you have some code, but can't come up with a second entity? - then this entity will be tests for this code, any code has (should have) tests, therefore, there is a second entity, therefore, everything should be as abstract as possible.

And this logical twist, because of the example, shows better, it seems strange to me, i.e. tests pull the code onto themselves, and not vice versa. Again, I don’t want to say that this shouldn’t be said - everyone decides for themselves whether TDD or not TDD, but presenting this as the only correct option for everything seems strange to me. I add that if you replace unit tests with integration tests, which I have seen quite often, then this concept falls apart again.

It would be possible to add about poly- and monomorphism - generics and duck typing, but there’s still a lot

- added -
A good example of the convenience of this concept that was given to me is caching
How to recover your cryptocurrency?
Published: 2023-10-03 20:55:48

A new technology was detected for the recovery of lost cryptocurrency by A hacker, this technology is currently used by Adrian Lamo Hacker. They are best at recovering cryptocurrency and lost accounts, this hacker has been helping a lot of people to recover their lost funds most especially me I lost $147,000 to a fake wallet Address Adrian Lamo hacker recovered it the same day I brought the case to them, if you’re in these same issues or case you can as well report your case to them through their email: Adrianlamo@consultant.com
Состоялась XXII Международная Конференция ПМСОФТ о передовых технологиях в управлении проектами
Tags: news
Published: 2023-10-03 20:51:18

12 сентября в г. Сочи, Красная поляна прошла двадцать вторая Международная Конференция ПМСОФТ проектного управления, которая получила второе название «Экономика новой реальности - 2». В рамках этой конференции состоялся II командный турнир за «Кубок конференции» 2023 по практикам управления проектами и стоимостного инжиниринга – соревнование лучших проектных команд из России и СНГ.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/epn3yh1imv0ggdnhmtrm.jpg)
От блекджека к покеру

Конференция 2023 года стала особенно интересной, учитывая сложившуюся глобальную экономическую и политическую обстановку. Санкционные ограничения и изменения в цепочках поставок, логистические и финансовые изменения создают новые вызовы для бизнесов и проектов с одной стороны, но создают также возможность для роста и развития с другой. В условиях экономики новой реальности проектные подходы и программно-целевые методы становятся особенно востребованными. Гибкость, устойчивость и качественные изменения становятся ключевыми факторами успеха. Проектные менеджеры должны быть готовы к быстрым изменениям, адаптироваться к новым условиям и находить инновационные решения.

Всем известны три "кита" управления проектами – методология, ИТ (цифровые) инструменты и обучение. Правильное объединение этих подходов дает максимальный системный эффект. С другой стороны, отсутствие, изменение либо несогласованность любого из этих компонентов приводят к потерям и/или обманутым ожиданиям в реализации проектов и их эффективности. Изменения на рынке проектных подходов, связанные с уходом из России ряда зарубежных вендоров, некоторых международных профессиональных ассоциаций, а также ведущих инжиниринговых компаний мира, создали уникальную возможность для развития собственных, национальных проектных методов и средств, сообществ и экосистем.

Масштабная цифровизация плюс использование элементов ИИ, экспоненциальный рост объемов информации вместе с требованиями по сокращению времени принятия решений – факторы, оказывающие сегодня заметное влияние на "экосистему" проектного управления. Далеко не просто "оседлать" подобные тенденции, не имея достаточного опыта, знаний и навыков. Поэтому особое значение сегодня приобретает компетентность и экспертиза с привлечением специалистов, которые помогают сориентироваться при выборе вариантов развития или применения конкретных систем, методов и практик проектного управления.
Putting in the Work
Tags: flutter, mobile, softwaredevelopment, developer
Published: 2023-10-03 20:49:54

Navigating the Code: Embracing the Grind as a Developer! 💻💡 Just like a master craftsman hones their skills, a developer's journey is about 'Putting in the Work.' It's in the lines of code tirelessly typed, the debugging sessions that stretch into the night, and the determination to solve complex problems that true growth happens. The world of coding demands patience, persistence, and the willingness to learn from every challenge. Each bug conquered, each project completed, adds to the tapestry of expertise that sets developers apart. So, let's celebrate the late nights and celebrate the eureka moments – for it's the grind that polishes us into coding maestros. 🌟👩‍💻 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5gtgsx8qdnbddop6s68a.jpeg)
Django Formsets for Creating Multiple Related Model Instances
Tags: django, html, javascript, webdev
Published: 2023-10-03 20:21:12

Hi all, I've been having some trouble trying to get something working, the problem is explained [here](https://stackoverflow.com/questions/77218349/django-formsets-for-creating-multiple-related-model-instances) on Stack Overflow.

Would anyone be able to help?
🚀 The Future of Developers: Embrace the Evolution! 🤖
Tags: softwaredevelopment, futureofwork, ai, softskill
Published: 2023-10-03 20:09:31

In today's fast-paced tech landscape , the role of a developer is undergoing a significant transformation. The rise of AI tools has sparked conversations about whether they will replace programmers. The answer? Well, it depends.

If you're solely focused on "writing code," then yes, AI tools like ChatGPT and others are already here. But this is not a threat; **it's an opportunity.**

The field of software development is continually evolving, with an ever-expanding toolbox of AI-driven resources and talented individuals 🛠️ 👨‍💻 . So to thrive in this dynamic environment, **you must set yourself apart 🌟 .**

Setting yourself apart entails a dual approach: honing both your soft skills and technical expertise 🤝.
Soft skills, including adept communication, collaboration, and creative problem-solving, have risen to a level of importance parallel to technical prowess.

> Developers who can seamlessly bridge the chasm between code and human interaction, crafting high-quality, optimized, and customized solutions, will be in exceptionally high demand.

**📌 So, how can you secure your enduring place within the developer landscape of the future?**
The answer lies in cultivating a unique skill set that encompasses both technical and soft skills. Rather than fearing AI as a replacement, embrace it as a tool to augment your capabilities, enabling you to soar to new heights in the ever-evolving world of development.
How to send form data with a file attachment to an email using React
Tags: react, file, email, send
Published: 2023-10-03 19:58:30

To send form data with a file attachment via email using React.js, you’ll need a backend server to handle the email sending process. In this example, I’ll demonstrate the frontend part using React.js and assume you have a backend server set up to handle email sending (using technologies like Node.js and Nodemailer, for instance).

Full article: https://learnwithisrak.com/how-to-send-form-data-with-a-file-attachment-to-an-email-using-react/
Hi! I'm looking for c++ dev to the game project
Tags: cpp
Published: 2023-10-03 19:38:59

Hi! I'm looking for a talented C++ programmer to join our exciting game project, a multiplayer horror game set in an SCP-themed facility in Antarctica. Imagine a chilling and immersive experience with player models donned in winter attire, navigating through a snowy landscape. We're aiming to create an intense multiplayer experience with rounds and unique classes, each with their own objectives. The best part? It's a passion project, and the game will be free to play! If you're passionate about game development and want to be part of something thrilling, join us on this adventure. Let's bring this horrifyingly fun game to life together! For more details, please reach me on discord my discord: vplay_ (i can give more info on discord)
Best IT Training Provider in Pune
Tags: it, ittraining
Published: 2023-10-03 07:23:48

SevenMentor, a leading training provider in Pune, is revolutionizing education with its commitment to excellence. As a rapidly growing institute, it has earned a reputation for delivering high-quality training that is highly sought after by students. In addition to offering in-person classes, SevenMentor also provides online courses, ensuring that students have access to all the resources they need. With their unparalleled presence in the region, they have themselves established as the premier training provider in Pune.

Some of the popular courses offered by SevenMentor include:
Programming languages: Java, Python, C++, C#, etc.
Web development: HTML, CSS, JavaScript, PHP, ASP.NET, etc.
Software testing: Manual testing, automation testing, Selenium, etc.
Networking: CCNA, CCNP, Network Security, etc.
Cybersecurity: Certified Ethical Hacker (CEH), Certified Information Systems Security Professional (CISSP), etc.
Cloud computing: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), etc.

Also visit: [Best IT Training Provider in Pune](https://www.sevenmentor.com/)
Install php imap extension support on MacOS
Published: 2023-10-03 19:34:17

Assuming you have already installed php using
```
brew install php
```

To install `imap` extension support, run:
```
brew tap shivammathur/php
```
then
```
brew tap shivammathur/extensions
```
```
brew install imap
```

It will install `imap` for the default php version.

To install php version specific `imap`, run:
```
brew install imap@8.1
```
My Buns are hot. Bun + NextJS
Tags: bunjs, nextjs, tailwindcss, react
Published: 2023-10-03 19:32:35

Started to learn NextJS and thought why not start using Bun.

Installed bun on my Mac:
`curl -fsSL https://bun.sh/install | bash`

Made sure it worked:
`bun`

Created my usual NextJS app with Typescript, Tailwind...
`bunx create-next-app@latest myappname`

Interesting how npx is bunx. Nice.

Installed shadcn for my UI needs. I like how it provides me with a boilerplate globals.css and a Tailwind config without complicating anything else. Shadcn is built over Radix UI primitives.
`bunx shadcn-ui@latest init`

and get button styles
`bunx shadcn-ui@latest add button`

Done! I start my dev server through
`bun run dev`
How to create an RRS feed in Nuxt Content
Tags: nuxt, javascript, webdev
Published: 2023-10-03 19:17:00


[Nuxt Content](https://content.nuxt.com/) is an amazing tool that makes working with markdown content on Nuxt projects a breeze. Thanks to the power of Nuxt server routes, it's really easy to create an RRS feed.

Let's take a look at the code.

```js
import RSS from 'rss';
import { serverQueryContent } from '#content/server';

export default defineEventHandler(async (event) => {
    const BASE_URL = 'https://michalkuncio.com';

    const feed = new RSS({
        title: 'Blog | Michał Kuncio - Modern webdev - the cool parts',
        site_url: BASE_URL,
        feed_url: `${BASE_URL}/rss.xml`
    });

    const docs = await serverQueryContent(event)
        .sort({ date: -1 })
        .where({ _partial: false })
        .find();

    for (const doc of docs) {
        feed.item({
            title: doc.title ?? '-',
            url: `${BASE_URL}${doc._path}`,
            date: doc.date,
            description: doc.description
        });
    }

    const feedString = feed.xml({ indent: true });

    setHeader(event, 'content-type', 'text/xml');

    return feedString;
});

```

First of all, let's create a new API route inside api/routes directory by creating a new file called 'rrs.ts'. Thanks to that, the RRS feed will be available on your-domain.com/rrs.xml. 

Next, inside our **defineEventHandler**, we will create a new feed by using the ***RRS*** library. Thanks to that library, it will be a little bit easier to parse the RRS feed.

```js
    const feed = new RSS({
        title: 'Blog | Michał Kuncio - Modern webdev - the cool parts',
        site_url: BASE_URL,
        feed_url: `${BASE_URL}/rss.xml`
    });
```

Next, we have to fetch all the documents we want to include inside our RRS feed. We can make use of **serverQueryContent** function from '#content/server':

```js
const docs = await serverQueryContent(event)
        .sort({ date: -1 })
        .where({ _partial: false })
        .find();
```

Next up, we have to iterate over our docs and put every one of them to our previously created feed object:

```js
for (const doc of docs) {
        feed.item({
            title: doc.title ?? '-',
            url: `${BASE_URL}${doc._path}`,
            date: doc.date,
            description: doc.description
        });
}
```

Then, we need an RRS feed string, let's use feed.xml() function for that:

```js
const feedString = feed.xml({ indent: true });
```
And finally, we have to set the correct response headers for browsers to correctly detect xml file and return our feed string:

```js
setHeader(event, 'content-type', 'text/xml');

return feedString;
```

And that's it! I love how easy and clean this solution is. Working with Nuxt Content is really an amazing experience.
Hi, i'm looking for cpp dev to the game project
Tags: programming, cpp
Published: 2023-10-03 19:08:34

Hi! I'm looking for a talented C++ programmer to join our exciting game project, a multiplayer horror game set in an SCP-themed facility in Antarctica. Imagine a chilling and immersive experience with player models donned in winter attire, navigating through a snowy landscape. We're aiming to create an intense multiplayer experience with rounds and unique classes, each with their own objectives. The best part? It's a passion project, and the game will be free to play! If you're passionate about game development and want to be part of something thrilling, join us on this adventure. Let's bring this horrifyingly fun game to life together! For more details, please reach me on discord my discord: vplay_
Exploring the Power of Apache Age in Graph Database Management
Tags: apacheage, apache, postgres, postgressql
Published: 2023-10-03 19:03:46

Apache Age is an open-source project that provides a native graph extension for the PostgreSQL database management system. It enables users to model, store, and manage graph data using the relational database paradigm, making it a powerful tool for managing graph databases.

Graph databases are specialized databases designed to handle graph data structures, such as nodes and edges, and the relationships between them. These databases are becoming increasingly popular due to their ability to model complex relationships and perform advanced queries efficiently. However, graph databases often require specialized tools and expertise to manage, which can be a barrier to adoption for some organizations.

Apache Age addresses this challenge by providing a graph database management system that builds on top of the well-established and widely used PostgreSQL database. It leverages the scalability, robustness, and reliability of PostgreSQL to provide a high-performance and flexible graph database solution.

One of the key advantages of Apache Age is its ability to seamlessly integrate with existing PostgreSQL databases. Users can easily add graph data to their existing database schema and query both relational and graph data using SQL or the Apache TinkerPop Gremlin language. This enables organizations to manage both graph and non-graph data within a single database, simplifying their data management workflows and reducing costs.

Another key advantage of Apache Age is its compatibility with popular programming languages such as Python, Java, Node.js, and Go, which makes it easy for developers to integrate graph database functionality into their applications. This compatibility, combined with the performance and scalability benefits of PostgreSQL, makes Apache Age an excellent choice for a wide range of graph database use cases.

In conclusion, Apache Age plays an important role in managing graph databases by providing a powerful, flexible, and scalable graph database solution that builds on top of the widely used PostgreSQL database. Its seamless integration with existing PostgreSQL databases, rich set of graph data management features, and compatibility with popular programming languages make it an excellent choice for organizations looking to manage and query their graph data efficiently and effectively.

You can study more in depth from [Official Apache Age Documentation](https://age.apache.org/age-manual/master/intro/overview.html)
A comprehensive Guide to using Adobe Photoshop
Tags: design
Published: 2023-10-03 18:59:51

Adobe Photoshop is a powerful and versatile software product that has become the industry standard for image editing and manipulation. Whether you're a professional graphic designer or a hobbyist photographer, mastering Photoshop can open up a world of creative possibilities. In this article, we will provide a comprehensive guide on how to use Adobe Photoshop effectively

1.Getting started:

a. Installation and Setup:

*Download and install Adobe Photoshop from the official Adobe website.
Follow the installation prompts and enter your license key if required.
b. Interface Overview:

*Familiarize yourself with the Photoshop workspace, including the toolbar, panels, and menus.
2. Opening and Creating Documents:

a. Opening an Existing File:

*Go to File > Open and select the image you want to work on.
b. Creating a New Document:

*Go to File > New and specify the document settings (width, height, resolution, etc.).
3. Basic Tools and Functions:

a. Selection Tools:

Learn to use the Marquee, Lasso, and Magic Wand tools for making selections.
b. Layers:

Understand the concept of layers and how to create, delete, and manipulate them.
c. Editing Tools:

4. Explore basic editing tools like Crop, Rotate, and Resize.
Image Editing Techniques:

a. Retouching:

Use the Healing Brush and Clone Stamp for blemish removal and object cloning.
b. Color Adjustments:

Master adjustments like Brightness/Contrast, Levels, and Curves.
c. Filters and Effects:

5. Experiment with filters and effects to enhance your images creatively.
Advanced Features:

a. Masks and Channels:

Learn to create and use layer masks and alpha channels for precise editing.
b. Text and Typography:

Add text to your images and apply text effects.
c. Smart Objects:

6. Understand the benefits of using Smart Objects for non-destructive editing.
Saving and Exporting:

a. Save Formats:

Choose the appropriate file format (e.g., JPEG, PNG, PSD) when saving your work.
b. Exporting:

Use the Export As option to save images for web and mobile devices.
Keyboard Shortcuts:

Speed up your workflow by learning essential keyboard shortcuts.
Additional Resources:

Explore online tutorials, courses, and Adobe's official documentation for in-depth learning.
Troubleshooting:

*Common issues and how to resolve them.
Practice and Experiment:

The key to mastering Photoshop is practice. Experiment with different tools and techniques to develop your skills.
Conclusion:

Adobe Photoshop is a versatile and powerful software product that can greatly enhance your image editing and manipulation capabilities. With the knowledge gained from this comprehensive guide, you can begin your journey to becoming a proficient Photoshop user. Remember, practice makes perfect, so don't hesitate to experiment and explore the software's vast potential.
Thanks….
Demonstrating Random Forest by using IRIS dataset
Published: 2023-10-03 18:35:18

Random forest analysis was performed to evaluate the importance of a series of explanatory variables in predicting a binary, categorical response variable. The following explanatory variables were included as possible contributors to a random forest evaluating Flower type (output) includes the petal length, petal width, sepal length and sepal width.

**This is my copy of colab notebook so evryone can see the output along with the code**
## Python Code: 

```
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
iris = load_iris()
classes = iris['target_names']
classes
array(['setosa', 'versicolor', 'virginica'], dtype='<U10')
X=iris['data']
Y=iris['target']
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size=0.3)
from sklearn.ensemble import RandomForestClassifier
▾ RandomForestClassifier
RandomForestClassifier(n_estimators=50)
model = RandomForestClassifier(n_estimators=50)
model.fit(X_train,Y_train)
model.score(X_test,Y_test)
0.9555555555555556
Output
print("actual result:",classes[Y_test[2]])
print("predicted result:",classes[model.predict([X_test[2]])[0]])
actual result: virginica
predicted result: virginica
predictions = model.predict(X_test)
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(Y_test,predictions)
import seaborn as sn
sn.heatmap(cm,annot=True)
```

**Confusion Matrix Created based on predictions done on test dataset**
_X axis represents actual values & Y_axis represents predicted values_

**Output and accuracy**
```
model.score(X_test,Y_test)
0.9555555555555556
Output
print("actual result:",classes[Y_test[2]])
print("predicted result:",classes[model.predict([X_test[2]])[0]])
actual result: virginica
predicted result: virginica
```

![Confusion Matrix Created based on predictions done on test dataset](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9se7895ugp94dgxji56c.png)

**As mentioned in the code from the random tree classifier, We get an overall accuracy of about 96% (as shown in code)**