teleren/devto huggingface dataset:
DevOps: The Future of Software Development
Tags: devops, cloud, webdev
Published: 2022-12-17 10:52:05

Over the past decade, the software development industry has undergone a significant shift towards agile methodologies and a focus on continuous delivery. This shift has been driven, in large part, by the adoption of DevOps practices.

At its core, DevOps is a philosophy that promotes collaboration and communication between development and operations teams, with the goal of delivering software faster and more reliably. DevOps emphasizes the use of automation, monitoring, and testing to improve the efficiency and effectiveness of the software development process.

One of the key benefits of DevOps is the ability to deploy software updates and fixes more frequently and with fewer errors. This is achieved through the use of automation tools such as continuous integration and continuous delivery (CI/CD), which allow developers to automatically build, test, and deploy code changes. By automating these processes, organizations can reduce the time it takes to get code changes into production and improve the overall quality of their software.

Another key aspect of DevOps is the focus on monitoring and observability. With the increasing complexity of modern software systems, it is essential to have real-time visibility into the performance and behavior of these systems. DevOps practices encourage the use of tools such as logs, metrics, and tracing to help teams quickly identify and resolve issues.

Looking to the future, it is clear that DevOps is here to stay. As software continues to become more integral to businesses and organizations, the need for fast and reliable software delivery will only continue to grow. DevOps practices and tools will play a crucial role in helping organizations meet this demand and stay competitive in a rapidly evolving landscape.

In conclusion, DevOps is a software development methodology that is transforming the way organizations deliver software. By promoting collaboration, automation, and monitoring, DevOps enables organizations to deliver high-quality software faster and more efficiently. As the importance of software continues to grow, it is likely that DevOps will become even more prevalent in the future.
Why We Use CSS Preprocessors ?
Published: 2022-12-17 10:40:26

**CSS preprocessors** are tools that allow us to write CSS in a more powerful and expressive way, using features such as variables, mixins, functions, and operations. They then take your preprocessor code and compile it into regular CSS that the browser can understand.

**There are several reasons why you might choose to use a CSS preprocessor:**

**1) Code organization:** Preprocessors allow you to use features such as variables and mixins, which can make your code more modular and easier to maintain.

**2) Reusability:** Mixins allow you to define reusable chunks of code that you can include in multiple places, reducing the amount of repetition in your stylesheets.

**3) Vendor prefixes:** Preprocessors can automatically add vendor prefixes to your CSS, saving you the effort of manually adding them.

**4) Improved syntax:** Preprocessors offer a more powerful and expressive syntax than regular CSS, which can make it easier to write complex styles.

Overall, CSS preprocessors can help you write more efficient and maintainable CSS code, but they are not necessary for all projects. It's up to you to decide whether the benefits of a preprocessor are worth the extra effort of learning a new tool and setting up a build process.
2022 Best Table Conversion Tool for Various Formats
Tags: table
Published: 2022-12-17 10:27:48

In work or study, sometimes we need to convert tabular data into other formats for further processing or sharing. At this time, we need a tool that can quickly complete these conversions.

This table conversion tool is just such a useful tool. It supports 8 import formats, including Excel, CSV, HTML Table, Markdown Table, JSON, etc., and 25 output formats, such as Markdown Table, LaTeX Table, HTML Table, CSV, etc. This means you can quickly convert data between commonly used tabular formats.

Portal: https://tableconvert.com/

Using this tool is very simple, just select the import format and output format, and then upload or import your table data. In addition, this tool also provides some useful functions, such as data sorting, grouping, filtering, etc.

This table conversion tool consists of three parts, namely Data Source data source, Table Editor table editor and Table Generator table generator.


![Data Source](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xduct8maqqiwmzc732m7.png)
Data Source is the part used to import data, and supports up to 8 import formats, including Excel, CSV, HTML table, Markdown table, JSON, etc. In this way, you can choose the appropriate format more flexibly when importing data.


![Table Editor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/anysryeg6jm6dzhuqthl.png)
Table Editor table editor allows you to edit your data like editing Excel. You can modify data, add new data, delete data, etc. here to make your data more accurate and complete.


![Table Generator](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vn0nyrh19urznlutuveu.png)
Finally, the Table Generator table generator can help you output tables in up to 25 formats, including Markdown tables, LaTeX tables, HTML tables, CSV, etc. You can set the output format according to your own needs, and you can also set functions such as compression codes. In this way, you can export tabular data to files in various formats more conveniently.

Overall, this table conversion tool is a powerful tool that can help you quickly convert between different table formats. And your data is safe because all transformation logic runs in the browser.
Libraries, Frameworks, Packages: Libraries.
Tags: swift, programming, ios, mobile
Published: 2022-12-17 10:02:40

In computer science, library means collection of resources and code, compiled into one or more architecture. Working with iOS application you’ll faced static and dynamic libraries.
Static library — (*.a) (static archive library, static linked shared library) — collection or archive of object files. Static linker collects app compiled source code with library code into a single executable file, which loaded into memory in its entirety at runtime.

The library can’t include resource files: images, assets, nibs, strings file and other visual data. If you will include this resources to project them will be separate from .a file.
Dynamic libraries (*.dylib) (dynamic shared library, shared object, dynamically linked library) are not copied into executable file, like static libraries. Instead, they are dynamically linked to at load or runtime, when both binary files and the library are in memory. Dynamic libraries stored and versioned separately. As a result, the dynamic library may be loaded not the same which was originally referenced if the update is considered binary compatible with the original version.

System iOS and macOS libraries are dynamic. This means that your app will receive improvements from Apple’s updates without new build submission.

Next Article: [Frameworks](https://dev.to/sergeyleschev/libraries-frameworks-packages-frameworks-2l5j).

---

**Contacts**
I have a clear focus on time-to-market and don't prioritize technical debt. And I took part in the Pre-Sale/RFX activity as a System Architect, assessment efforts for Mobile (iOS-Swift, Android-Kotlin), Frontend (React-TypeScript) and Backend (NodeJS-.NET-PHP-Kafka-SQL-NoSQL). And I also formed the work of Pre-Sale as a CTO from Opportunity to Proposal via knowledge transfer to Successful Delivery.

🛩️ #startups #management #cto #swift #typescript #database
📧 Email: sergey.leschev@gmail.com
👋 LinkedIn: https://linkedin.com/in/sergeyleschev/
👋 LeetCode: https://leetcode.com/sergeyleschev/
👋 Twitter: https://twitter.com/sergeyleschev
👋 Github: https://github.com/sergeyleschev
🌎 Website: https://sergeyleschev.github.io
🌎 Reddit: https://reddit.com/user/sergeyleschev
🌎 Quora: https://quora.com/sergey-leschev
🌎 Medium: https://medium.com/@sergeyleschev
🖨️ PDF Design Patterns: [Download](https://sergeyleschev.github.io/sergeyleschev-design-patterns.pdf)
Time selected by day using Javascript
Tags: codepen, javascript, html, beginners
Published: 2022-12-17 09:56:06


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

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

{% codepen https://codepen.io/suharyadi2112/pen/poZzWYp %}
SvelteKit Vs ReactJs
Tags: webdev, javascript, discuss, node
Published: 2022-12-17 09:52:47

## Introduction

ReactJs is a JavaScript library that helps you build user interfaces. It was created by Facebook and Instagram, and it’s now an open source project hosted on GitHub. It's built on top of the same core technology as AngularJS, so it’s possible to write code once and then use it with both frameworks. This can save time when learning new technologies, because there aren't as many differences between them as there are between say Django or Ruby on Rails

## ReactJs Advantages

ReactJs is an excellent choice for building large projects. It doesn't have any of the bad parts of Svelte, like its lack of performance or its inability to support large data sets. React has been around for a long time and has proven to be one of the most popular front-end frameworks today. It's also easy to learn if you're new to web development, making it an ideal choice for everyone from beginners who want something simple but powerful, all the way up through seasoned web developers who need something more complex than Bootstrap or Material Design Kit (MDK).


## SvelteKit Advantages

- Svelte is a framework that allows you to write in plain JavaScript. This makes it easy for developers who aren't familiar with JSX or other features of ReactJS.

- It's fast, which means your application will load faster than if you were using React alone. In fact, it's often faster than native apps!

- The library is focused on performance and responsiveness—you can use it for building mobile applications too!

## Sveltekit has come out very strong in the developer opinion , and most people love it.

SvelteKit is the most popular JavaScript framework for creating single-page applications. It's been around for several years now and it has come out very strong in the developer opinion, and most people love it.

SvelteKit has many advantages over ReactJS:

- Fast: Sveltekit uses native technologies like V8 JavaScript engine for speed. This means that your application will load faster than any other framework or library you have used before! You can expect a loading time of < 1s if you use ES6 features such as classes, decorators etc., but if you don't then it will take much longer (around 10 seconds). So this could be an issue depending on how big your project might be!

- Smaller Size: The smaller bundle size helps improve download times by reducing unnecessary code within each page request which saves bandwidth & prevents page breaks during scrolling etc..

- Easy : One thing I really like about SvelteKit is how easy it is to learn compared with other frameworks out there today because there are no external dependencies required so anyone who knows how HTML works can start working right away without having any prior knowledge about programming languages or frameworks beforehand."

## Conclusion

ReactJs has come up with some amazing new features, but SvelteKit is still the best. It has better performance and a lot more features that you need for your application to be successful in the market.
### Give your opinion in the comments.
Greedy Algorithm Explained
Published: 2022-12-17 09:51:14

---
title: Greedy Algorithm Explained
published: true
date: 2022-12-17 09:40:20 UTC
tags: 
canonical_url: 
---

![](https://cdn-images-1.medium.com/max/1024/1*xhZnPibk-VRmCvDCofvogg.png)

A greedy algorithm is an algorithmic paradigm that follows the problem-solving heuristic of making the locally optimal choice at each stage with the hope of finding a global optimum. In other words, a greedy algorithm makes the best possible decision at each step by considering only the current situation, without worrying about the consequences of future decisions.

Here’s an example of a greedy algorithm in Go for solving the coin change problem:

```
package main

import "fmt"

func main() {
    // Define the coin values and the target amount
    coins := []int{1, 5, 10, 25}
    amount := 31

    // Initialize the result
    result := 0

    // Iterate through the coins in descending order
    for i := len(coins) - 1; i >= 0; i-- {
        // Calculate the number of coins needed
        n := amount / coins[i]

        // Update the result and the amount
        result += n
        amount -= n * coins[i]
    }

    // Print the result
    fmt.Println(result)
}
```

In this example, we define an array of coin values and a target amount. We then iterate through the coin values in descending order and calculate the number of coins needed to reach the target amount. We update the result and the remaining amount at each step, and print the final result.

Here’s how this greedy algorithm works:

1. Define the coin values and the target amount.
2. Initialize the result to 0.
3. Iterate through the coin values in descending order.
4. Calculate the number of coins needed to reach the target amount.
5. Update the result and the remaining amount.
6. Repeat steps 4 and 5 until the remaining amount is 0.
7. Print the result.

The greedy algorithm for the coin change problem works by always choosing the coin with the highest value, as long as it doesn’t exceed the remaining amount. This means that it will always make the best possible choice at each step, with the hope of finding the global optimum.

Of course, not all problems can be solved using a greedy algorithm, and it is important to carefully evaluate the trade-offs of using a greedy algorithm before implementing one. However, when used appropriately, greedy algorithms can be an effective tool for solving optimization problems.
So, what is Software Testing ? 🤔 Software Testing 101
Published: 2022-12-17 09:25:14

There is a very common misconception that software testing is the act of using a piece of software and reporting if it works.

What comes to your mind when you first head of “Software Testing” ?

**“It is just using that software and see if it’s work”**

**“Nah, it’s just play around the software and see any “bugs” ?”**

**“It’s easy ! Just give me the app to use”**

There are some of the very common misconception that people have when they first head of software testing, then you should read this articles till the end. I guarantee you will have a high level understanding of What Software testing it is.

Here are some of the “misconception” people may have towards software testing :

   

**1. ✅ Process of Software Testing`**

There are many testing process may involved, Test Planning, Test Execution , Analyzing results, Designing and Implementing test, Reporting Test progress and evaluating the system under test.
<br>

**2.  ✅ Difference between Dynamic Testing vs Static Testing**

A form of Dynamic Testing can be perform when a system or component is under testing .

And Static Testing could be reading a technical document/description of the system that has not been created and ask question about issues that may introduced to the system.
<br>

**3. ✅ Software testing is not only Verify , but also Validate the user stories and requirements.**

Big big NO is that most software tester are focus entirely on Verifying the requirement that tied to the user stories during the system making. But it also involves Validation.
<br>

**4. ✅ The common objective of Software Testing is performed**

The gist of testing may involve : preventing defects by evaluating requirements, user stories, designs, and code, verifying and to validate if it works as the users and stakeholders expectation, to build confidence in the system under test, to find defects and failures, thus reducing the level of risk of failure or inadequate software.

This part also to make informed decisions regarding the system under test is comply with the contractual, legal, or regulatory requirements or standards.
<br>

**5. ✅ The difference between debugging and executing test (testing)**

Executing test can show failures that are caused by defects in the system whereas Debugging is the activity that finds, analyzes, and fix such defects. This may not limited to testers may involve in both process in some of the agile development and some software testing life cycles.
<br>

❤️


Related Articles:
    [1. Cloud Computing , let’s talk about it [Part 2]](https://dev.to/alanliew88/cloud-computing-lets-talk-about-it-part-2-2mgj)
    [2. AWS ! the terms you must know 🤫](https://dev.to/alanliew88/aws-the-terms-you-must-know-2k8p)
    [3. ISTQB 🧙🏻‍♀️The software testing Myth, do you need that?](https://dev.to/alanliew88/istqb-the-software-testing-myth-do-you-need-that-1ajj)
❤️


Connect with me in [Linkedin](https://www.linkedin.com/in/alan-liew/) !
How to use Google OSV Scanner
Tags: security, opensource, cybersecurity
Published: 2022-12-16 19:16:25

3 days ago (December 13th 2022) Google launched the Open Source Vulnerability (OSV) Scanner, a free tool that gives open source developers easy access to vulnerability information relevant to their project.

## The problem

Software projects are commonly built on top of a mountain of dependencies—external software libraries you incorporate into a project to add functionalities without developing them from scratch. Each dependency potentially contains existing known vulnerabilities or new vulnerabilities that could be discovered at any time. There are simply too many dependencies and versions to keep track of them manually, so automation is required.

Scanners provide this automated capability by matching your code and dependencies against lists of known vulnerabilities and notifying you if patches or updates are needed. Scanners bring incredible benefits to project security, which is why the 2021 U.S. Executive Order for Cybersecurity included this type of automation as a requirement for national standards on secure software development.

## OSV Scanner

The OSV-Scanner generates reliable, high-quality vulnerability information that closes the gap between a developer’s list of packages and the information in vulnerability databases.

[Running OSV-Scanner](https://hub.docker.com/r/anmalkov/osv-scanner) on your project will first find all the transitive dependencies that are being used by analyzing manifests, SBOMs, and commit hashes. The scanner then connects this information with the OSV database and displays the vulnerabilities relevant to your project.

Please continue reading here: [https://www.anmalkov.com/blog/how-to-use-google-osv-scanner](https://www.anmalkov.com/blog/how-to-use-google-osv-scanner)
Chat GPT: The newest and coolest Q&A Tool
Tags: chatgpt, ai, newtechnology, chatbots
Published: 2022-12-17 09:24:14

Labelled as the next big thing in technology , the most new cool prototype out in the market or even a potential competitor to Google , it goes by the name Chat GPT. Chat GPT was launched and gifted to us in November 2022 by Open AI, an AI research and deployment company in San Francisco, California (USA). 

You can converse with a chatbot in a manner akin to that of a human being using ChatGPT, a natural language processing tool powered by AI. The language model may assist you with things like creating emails, essays, and code as well as provide answers to your concerns. Because ChatGPT is still doing research and gathering user input, usage is presently available to everyone without charge.

By visiting chat.openai.com and registering an OpenAI account, you may easily use ChatGPT. You can start chatting with ChatGPT as soon as you log in. By posing a question, you can easily start a dialogue. You are able to use ChatGPT and ask as many questions as you'd like because it is still in the research stage.

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

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

In the two screenshots above I did two small sample searches on how to grow hair and defects severity index a software testing metric in software quality engineering. The model displays its responses in an organized manner also elaborating the purpose of the search you have made.

The incredibly sophisticated chatbot ChatGPT has the ability to improve people's lives and help with tiresome daily tasks like sending emails or searching the internet for solutions. Before it is extensively used, however, a few technical elements must be worked out in order to avoid unfavorable effects like the propagation of false information. The majority of the time, training and fine-tuning are required for AI and ML models to perform at their best.

Make sure to check out and try ChatGPT if you haven’t gotten the chance, don’t miss out on the experience. Thanks for taking the time to read this article, see you next time!
TypeScript Utilities: Pick Utility Example Usage
Published: 2022-12-17 09:07:12

Let's talk about the Pick utility in TypeScript real quick. What is Pick? Pick is a TypeScript utility that we can use to construct a new Type with a set of properties Keys from an existing Type. That means we can build a new Type by selecting a set of properties Keys (string or union of strings) that exist from another Type to be properties Keys of the new one. Here is the syntax for Pick:

``` TypeScript
Pick<Type, Keys>

Pick<User, "UserName">

Pick<User, "UserName" | "Email">
```
Let's see the example. I have a movie app where I can track my movie list/plan to watch. I maybe have the main root Type for the movie which may consist of a bunch of Keys inside the Type. Like `"title"`, `"description"`, `"releaseDate"`, `"review"`, `"casts"`, etc. And when I create a function to get a movie detail, it's clear I need to use the overall Keys to make sure we get the detailed movie data correctly. But, what if I want to create another function where I want to get only the title and current status (watched or not) data of the movie for preview purposes?

``` TypeScript
interface IMovie {
  title: string;
  description: string;
  releaseDate: string;
  isWatched: boolean;
  ...
}

interface IPreviewMovie {
  title: string;
  isWatched: boolean;
}

export function getDetailedMovieData(): IMovie { }

export function getPreviewMovies(): IPreviewMovie[] { }
```
In the above example, we declared our interface twice. That's okay for simple usage, but you can imagine when your app becomes more complex and suddenly things begin to be out of control into a Type world of pain. Pick can help us to make our code cleaner and less. Using Pick, we can tell TypeScript to "pick" certain Keys from our existing Type (whether it's an Interface or Type). So, let's refactor it!

``` TypeScript
interface IMovie {
  title: string;
  description: string;
  releaseDate: string;
  isWatched: boolean;
  ...
}

type PreviewMovie = Pick<IMovie, "title" | "isWatched">

export function getDetailedMovieData(): IMovie { }

export function getPreviewMovies(): PreviewMovie[] { }
```
See? This allows us to efficiently construct a new Type by using Pick to only use the relevant Keys (ignoring the others). Another thing to remember, be careful not to confuse the `"title" | "isWatched"` with a Union Type. Pick is a Mapped Type which means that the `|` syntax is more like an "and" instead of "or". I'll talk more about the Mapped Type later!

Thank you for reading! Hopefully from this small example, you can understand what Pick can do and help you to code cleaner.