teleren/devto huggingface dataset:
Day: 1 Devops
Tags: aws, devops, cloud, developement
Published: 2024-06-29 18:21:31

## What is devops?
Devops is a culture that helps the organization to deliver faster scripts or applications with the help of automation, quality code, continuous monitoring, and testing.

Why we have to two words in devops?
Dev means software development and ops means operations. In dev we have some phases like planning, designing(HLD, LLD), developing, testing, deploying and monitoring. On the other hand, ops means operations where we have monitoring and releasing not all the other phases like in dev. 

Where devops falls in software development lifecycle?
It mostly falls in the last part of SDLC like developing, testing, deploying and monitoring. Whenever programmer write the code we have to deploy it ASAP for this we use devops who make a pipeline and the code deliver to end user with no time.

What is the end goal of devops?
Devops end goal is to make sure that there is less interaction of human and it deliver the code to the end user with no time. 

Instagram: [shaheerdev_](https://www.instagram.com/shaheerdev_)
Twitter: [shaheerdev_](https://x.com/shaheerdev_)
Tiktok: [shaheerdev_](https://www.tiktok.com/@shaheerdev_)
An Exploratory Testing Approach on HNG.TECH
Tags: testing, writing, learning, webdev
Published: 2024-06-29 18:19:46

Exploratory testing is an approach to software testing that is often described as simultaneous learning, test design, and execution. It focuses on discovery and relies on the guidance of the individual tester to uncover defects that are not easily covered in the scope of other tests. The practice of exploratory testing has gathered momentum in recent years. Testers and QA managers are encouraged to include exploratory testing as part of a comprehensive test coverage strategy. 

This weekend, I conducted an exploratory test on [hng.tech](https://hng.tech/) website. My goal for the testing was to uncover issues that could affect user experience and its overall functionality.

During the exploratory test, I identified several key issues which includes the following:
- **Deadlinks**: some links were unresponsive.
- **Broken Links**: leading to error 404 error page.
- **Slow Page Load Times**: for example, "contact us" link took a long time to load.
- **UI/UX Inconsistencies**: some elements were not consistent. An example was the course design.
- **Typo error**: Some texts had existing typo error.
- **Blank Text Fields**: some displayed texts fields were blanks
- **Inactive buttons**: some navigation buttons were non-functional.
These were some of the highlighted issues amongst others. You can find the full bug report [here](https://docs.google.com/spreadsheets/d/1kL-21JRK_32vNzin7-__OSCOnRlk4tPQjRyvaYHVGzg/edit?usp=sharing).

However, I'll suggest the following as a medium of improvements to a better functioning and user friendly website;
- **Deadlinks**: Regularly audit and update links to ensure they point to the correct destinations.
- **Broken Links**: Monitor server logs to detect and fix broken links promptly.
- **UI/UX Inconsistencies**: Regularly review the design to maintain uniformity.
- **Typo error**: Implement a rigorous proofreading process before publishing content. 
- **Blank Text Fields**: Ensure all text fields are correctly populated with data.
- **Inactive buttons**: Test all buttons and fix any backend issues causing buttons to be inactive. 
By implementing these suggested improvements, the website can provide a seamless and engaging experience for all users. For a detailed overview of all identified issues, please refer to the full bug report [here](https://docs.google.com/spreadsheets/d/1kL-21JRK_32vNzin7-__OSCOnRlk4tPQjRyvaYHVGzg/edit?usp=sharing).

Conclusively, exploratory testing on the [hng.tech](https://hng.tech/) website unveiled several areas needing improvement to enhance user satisfaction and gaining insights into the overall functionality and user experience of the website. I highlighted above, several areas for improvement that, when looked into, can significantly enhance functionality of the website. Above all, the results of exploratory testing provided a user-oriented perspective and feedback to the development teams.  The goal which was to find million-dollar defects that are generally hidden behind the defined workflow was successfully accomplished.
Discover the power of cctlds
Tags: cctlds, frystorkning, investeringsprojekt, fattigglandernas
Published: 2024-06-29 18:14:31

[](https://community.multireligionvalsystem.eu.org/
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q306dvos63mmhklu8sv8.png))
Tree data structures in Rust with tree-ds (#3: Beyond The Basics)
Tags: rust, algorithms, datastructures, trees
Published: 2024-06-29 18:08:57

In the previous parts, we went through the [setup](https://dev.to/clementwanjau/tree-data-structures-in-rust-with-tree-ds-1-getting-started-3pb4) of the [`tree-ds`](https://github.com/clementwanjau/tree-ds) crate and the [features](https://dev.to/clementwanjau/tree-data-structures-in-rust-with-tree-ds-2-tree-operations-54ph) that the `tree-ds` crate offers out of the box when working with trees. In this section, we are going to explore the advanced features offered by the `tree-ds` crate as a whole.

## Advanced Features
The `tree-ds` crate offers many more features.

- Serialization and de-serialization support. The crate has a `serde` feature that enables serrialization and deserialization of trees and nodes. To enable the feature update the cargo dependency in `Cargo.toml`.
```toml
[dependencies]
tree-ds = { version = "0.1", features = ["serde"] }
```
- Hashing. The crate offers hashing support of the tree and nodes out of the box.
- Thread safely. When interacting with trees across multiple threads you can enable the `async` feature in your `Cargo.toml`.
```toml
[dependencies]
tree-ds = { version = "0.1", features = ["async"] }
```
- `no_std` support. You can use the `tree-ds` crate in environments that do not have the std library including embedded environments. To enable no-std support you can enable the `no_std` feature in you `Cargo.toml`.
```toml
[dependencies]
tree-ds = { version = "0.1", features = ["no_std"] }
```

## Beyond the Basics
The `tree-ds` crate provides a solid foundation for working with trees in Rust. As you delve deeper, consider exploring these aspects:

- Custom Data Types: Leverage the generic nature of the Tree struct to store custom data types in your nodes.
- Error Handling: Integrate proper error handling for operations like insertion and searching to make your code more robust.
- Advanced Implementations: Explore creating specialized trees like binary search trees (BSTs) using the functionalities offered by `tree-ds` as building blocks.

By understanding these concepts and leveraging the functionalities of `tree-ds`, you can effectively utilize trees in your Rust projects for various use cases.

## Conclusion

The `tree-ds` crate offers a convenient and powerful way to work with trees in Rust. It provides a flexible and feature-rich foundation for building and manipulating tree structures in your applications. So, the next time you need a tree in your Rust project, consider giving `tree-ds` a try!
How to Integrate Google Map API on your React Native Android App
Tags: reactnative, tutorial, googlecloud, googlemap
Published: 2024-06-29 18:04:23

Google Maps has traditionally been the dominant choice among developers for integrating location-based map APIs. However, recent high price increases and a substantial reduction in free API calls have caused app developers to urgently seek alternative options. 

Despite these challenges, Google Maps remains the most widely used SDK for embedding maps in applications. It boasts an extensive database of locations and reliable routing capabilities. The SDK offers comprehensive features essential for mobile app development, including geocoding, street view, routing, and detailed place information with search, photos, autocomplete and much more.

I was integrating [google map API](https://www.codegirl0101.dev/2024/06/react-native-google-map-api-android.html) on my React Native Android Project. So I thought why not sharing a blog post on Map API services! 

This blog post will be nothing much just an basic example of how to add google map api on your react native project in a very expressive way.

Read more:
https://www.codegirl0101.dev/2024/06/react-native-google-map-api-android.html
How to make interfaces optional in typescript
Tags: interface, typescript, webdev
Published: 2024-06-29 17:45:13

First of all let us look at some random example,

```


interface personMale{
      gender:"male";
      salary:number;
}
interface personFemale{
      gender:"female";
      weight:number
}
type person={
      name:string;
      age:number;


}&(personMale|personFemale)


const person1:person={
      name:"Sayem",
      age:27,
      gender:"male",
      salary:0
}
const person2:person={
      name:"Setara",
      age:24,
      gender:"female",
      weight:55
}

```
Here we should use "male" and "salary" together and "female" and " "weight" together. If we want to use "male" and "weight" or "female" and "salary" together, it will through error.



In Typescript, we can define optional properties in an interface by adding a question mark (?) to the property name. This tells Typescript that this property may or may not exist on the object.


As mentioned earlier, the basic way to make a property optional is by appending a question mark(?) to the property name. Here is an simple example,


```
interface User {
  id: number;
  name?: string;
  email?: string;
}


let user: User = { id: 1 };

```
In the above example, name and email are optional. If we create an object named ‘user’ with only ‘id’ property Typescript will not complain.


**Using utility type:**
Typescript provides several utility types to manipulate types, another being Partial<T>, which makes all properties in a type T optional. Here’s how we can use it, 

```
interface User {
  id: number;
  name: string;
  email: string;
}


type OptionalUser = Partial<User>;


let user: OptionalUser = { id: 1 };

```
In the above example, OptionalUser is a new type where all properties of User are optional. Hence, we can assign an object with only the id property to the user.
Technical blog article
Tags: backenddevelopment
Published: 2024-06-29 17:41:49

Hi everyone, my name is Aisha and this is a task basically given to us at https://hng.tech/internship. So yeahh, there was a time when I was stuck on a problem coding a blog api project using  node.js
I was basically following a YouTube video but then I got confused. Luckily I had friends in the tech sector,I explained the error message I kept having in my terminal and in no time they found a solution to it. They advised me to apply for a bootcamp so as to further hone my skills, teach me basic concept and work on more projects. I saw https://hng.tech/premium on the x platform and I just decided to apply to it with my fingers crossed in hopes that they’ll pick me and here we are. I’m really excited for this hng internship journey and I do hope that I would be able to learn, unlearn and relearn.[](url)
Overcoming the challenges of backend development : My experience and application for the HNG internship
Tags: lean, programming, beginners, devchallenge
Published: 2024-06-29 17:31:16

## Introduction

Hello everyone! My name is Landry Bitege, and I'm a backend developer with a passion for designing robust, scalable software solutions. Today, I'd like to share my recent journey in solving complex backend development problems and explain why I'm excited to join the HNG internship.

## My background and motivation for the HNG internship

A year ago, I began my journey into backend development, discovering the impact of technology in solving real-world challenges. Since then, I've gained experience working on a variety of projects, from website development to the creation of sophisticated web applications.

Recently, I was faced with a project requiring the creation of a REST API for a web application using Next.js, a significant transition from Express.js. This experience enabled me to discover new possibilities while confronting some unprecedented technical challenges. Despite difficulties linked to limited documentation, I managed to develop a complete and secure REST API, even if some problems persisted. Fortunately, platforms like Stack Overflow were invaluable at times like these.

Through my experiences, I've come to understand that solving complex problems and designing effective solutions gives me great satisfaction. It was this passion that prompted me to apply for the HNG internship. I was particularly attracted by the program's reputation for offering cutting-edge training and quality mentoring to promising backend developers.

## Learnings and expectations for the HNG internship

This challenge has enabled me to deepen my skills in application architecture and complex problem solving, while strengthening my ability to collaborate with teams with varied skills (all using Next.js, but in different contexts). It was a particularly rewarding experience.

I'm convinced that the HNG internship will enable me to take my skills to the next level and prepare me for a successful career as a seasoned backend developer. I look forward to participating in the internship's intensive training programs, benefiting from the experience of seasoned mentors and contributing to innovative projects alongside other talented developers.

## Learn more about the HNG internship

If you'd like to find out more about the HNG internship program, please visit the following websites:

- [HNG internship main site](https://hng.tech/)
- [Internship information](https://hng.tech/internship)
- [Premium program](https://hng.tech/premium)

## Call to action

I am convinced that my experience, passion for backend development and commitment to learning make me an ideal candidate for the HNG internship. I'm looking forward to taking on new challenges, contributing to meaningful projects and joining the dynamic community of HNG developers.

In the near future, I intend to write about extending this fascinating API library with Next.js, in order to share this rewarding experience with others.

Thanks and see you soon 😀!
My Journey to Becoming a BackEnd Developer: Overcoming Challenges and Embracing Growth
Published: 2024-06-29 17:29:03

Becoming a backend developer has been a journey filled with challenges, persistence, and immense growth. It all started early last September when I decided to dive into the world of backend development. At first, understanding concepts and thinking logically seemed like daunting tasks. But with unwavering determination and a hunger for knowledge, I embarked on a quest to conquer these hurdles.

**Embracing Challenges:** A Difficult Backend Problem
One of the most memorable challenges I faced was tackling a complex backend problem involving data processing and optimization. The task demanded a deep understanding of algorithms and efficient data handling techniques. Initially, I found myself overwhelmed by the intricacies of the problem. However, armed with resources from platforms like Programiz.com and GeekforGeeks, and inspired by insightful videos from Jenny Lectures and Neso Academy, I persevered.

**Breaking Down the Solution:** A Step-by-Step Approach

- Understanding the Requirements: The first crucial step was meticulously dissecting the problem statement. I learned early on the importance of paying attention to every detail and grasping the exact nature of the solution required.
- Research and Exploration: I delved into various algorithms and techniques relevant to the problem at hand. This phase involved exploring different approaches and understanding their implications on performance and scalability.
- Implementation and Iteration: Armed with newfound knowledge and a clearer perspective, I began implementing the solution. Iterative testing and refining were key to ensuring the solution met both functional and performance criteria.
- Achieving Breakthrough: After weeks of diligent effort and several iterations, I achieved a breakthrough. The solution not only met the requirements but also demonstrated efficiency and scalability, marking a significant milestone in my journey.

**Joining HNG Internship:** A New Chapter
As I reflect on my journey thus far, I am thrilled to embark on a new chapter with the HNG Internship. This program represents more than just an opportunity; it's a platform where I can further hone my skills, collaborate with like-minded individuals, and contribute to real-world projects.
I chose to pursue the HNG Internship because of its reputation for rigorous training and practical learning experiences. Through this program, I aim to deepen my understanding of backend development, enhance my problem-solving abilities, and learn from industry experts.
For those eager to explore the world of backend development or seeking structured learning opportunities, I highly recommend checking out the following links to learn more about the HNG Internship:
https://hng.tech/internship
https://hng.tech/premium
Why VerifyVault Excels Mainstream 2FA Apps like Authy and Google Authenticator
Tags: opensource, security, cybersecurity, privacy
Published: 2024-06-29 17:16:25

In today's digital age, securing our online accounts is more crucial than ever. Two-Factor Authentication (2FA) has become a standard method to enhance security, but not all 2FA apps are created equal. VerifyVault, a cutting-edge open-source application, stands out among its mainstream counterparts like Authy, Google Authenticator, and Microsoft Authenticator. Here’s why VerifyVault deserves your attention:

**1. Transparency and Privacy:** VerifyVault is built on the principles of transparency and privacy. Unlike proprietary alternatives, VerifyVault is open-source, allowing security experts and the community to audit its code for vulnerabilities. This transparency ensures that there are no hidden backdoors or compromises in security, giving users peace of mind.

**2. Offline Access:** One of the standout features of VerifyVault is its ability to function entirely offline. While many 2FA apps require an internet connection to generate codes, VerifyVault operates seamlessly without connectivity. This offline capability not only enhances security by eliminating potential attack vectors but also ensures reliability in situations where internet access is limited.

**3. Strong Encryption:** Security is paramount in VerifyVault. All data stored within the app, including account credentials and 2FA keys, are encrypted using robust encryption standards. This ensures that even if your device is compromised, your sensitive information remains safe from prying eyes.

**4. Comprehensive Features:** 
VerifyVault doesn’t just meet basic expectations; it exceeds them with a range of advanced features:

1. **Password Lock:** Protect your 2FA codes with an additional layer of security using a password lock feature.
2. **Automatic Backups:** Safeguard your accounts with automatic backups, ensuring you never lose access to your 2FA codes.
3. **Import/Export Accounts:** Seamlessly transfer your accounts between devices or backup and restore accounts via QR code scanning.

**5. Cross-Platform Compatibility:** VerifyVault is designed for versatility, with the goal of supporting Windows, Linux, and Mac operating systems. Whether you’re using a desktop computer or a laptop, VerifyVault ensures consistent and reliable 2FA protection across all your devices.

**Why Choose VerifyVault?** VerifyVault stands out in the crowded field of 2FA applications due to its commitment to openness, security, and user control. By choosing VerifyVault, you’re not only enhancing your account security but also supporting the ethos of open-source software. Join us in shaping the future of secure authentication with VerifyVault, where privacy meets reliability.

[VerifyVault GitHub](https://github.com/VerifyVault)

[VerifyVault Beta v0.2.2 Download](https://github.com/VerifyVault/VerifyVault/releases/tag/Beta-v0.2.2)
Execution Context
Published: 2024-06-29 17:08:00

*JavaScript brauzerda ishlayotganida, uni to’g’ridan-to’g’ri tushuna olmasligi sababli uni mashina tushunadigan tilga aylantirish kerak ya’ni o’zi tushunadigan tilga. Brauzerning JavaScript engine(mexaniz)ni JavaScript kodiga duch kelganida, u biz yozgan JavaScript kodini “translation(tarjima)” qiladi va bajarilishini boshqaradigan maxsus muhit yaratadi. Bu muhit **Execution context** deb ataladi.*

***Execution context** **global scope** va **function scope** ga ega bo’lishi mumkin. JavaScript birinchi marta ishlay boshlaganida, u **global scope** yaratadi.*

*Keyin, JavaScript **parse**(tahlil) qilinadi va o’zgaruvchi va funksiya deklaratsiyasini **xotiraga saqlaydi**.*

*Nihoyat, kod xotirada saqlangan o’zgaruvchilar ishga tushiriladi.*

Execution context - har bir block kod uchun  JavaScript tomonidan ochiladigan ma’lumotlar bloki bo’lib, ayni damda ishlayotgan kod uchun kerak bo’ladigan barcha ma’lumotlarni o’zida jamlaydi. Masalan, o’zgaruvchilar/funksiyalar/this kalit so’zi


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

`var x = 10;
var y = 20;
`

***Creation Phase:***

1. *x variable is allocated memory and stores “undefined”*
2. *y variable is allocated memory and stores “undefined”*

**Execution Phase:**

1. *Places the value of 10 into the x variable*
2. *Places the value of 20 into the y variable*


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