teleren/devto huggingface dataset:
Why You Should Use Async/Await Over Closures Moving Forward
Published: 2024-02-14 01:16:57

Since Apple released Async/await in 2021, it has made writing asynchronous code amazingly pleasant for iOS developers. In addition to the out-of-the-box performance and safety benefits, writing asynchronous code with async/await feels like you’re writing synchronous code, which we write most of the time. Writing straightline code rather than nested closures allows us to better express our intent to others. Using the combination of async/await and throws also makes handling errors straightforward.

Async/await was designed to resemble code we write everyday. It removed many of the frictions that came with writing and maintaining closures. For example, rather than capturing the return values on the right (like with closures), the return value of an async/await function is assigned to a variable on the left. This makes it just like your most basic function. You also no longer need to concern yourself with capturing the outer scope to access those values from within the closure. Which, if you had simply forgotten to add the weak keyword in front of your variables or self, you would have had a memory leak in your app, which is never a good thing.

Being able to write code that’s idiomatic and easy to parse is beneficial in many facets. For instance, you’ll write less lines of code which means it’ll be easier to maintain. You’ll also find the intent of your logic easier to maintain in your head. And it’ll ultimately feel like the style of code you write the most often.

One of the features I find most useful is how easy it makes handling errors. Errors seamlessly propagate downstream and could be parsed by individual catch blocks that will execute additional code, such as triggering events and handling any unhappy path. Unlike with closures where you can accidentally leave out an vital completion call, using try await, Swift warns you if you leave out a throw, which makes our code safer.

**Summary**
This article introduces the core advancements that Swift has made in writing asynchronous code using Async/await. Async/await is here to stay, and iOS Developers should begin using it and advocating for its adoption in their organization if they aren’t already.
A Deep Dive into JavaScript Variable Declarations: var, let, and const.
Tags: programming, tutorial, productivity, javascript
Published: 2024-02-14 01:16:01

## Introduction:

Understanding variable declarations in JavaScript is fundamental to writing clean, maintainable code. JavaScript provides three keywords for declaring variables: var, let, and const. In this post, we'll explore the nuances of each, discussing their scope, hoisting behavior, and use cases.

## 1. var: The Classic Variable Declaration
**Function Scoping:**
Variables declared with var are function-scoped, meaning their scope is limited to the function where they are declared. This can lead to unexpected behavior in certain scenarios.

**Hoisting:**
var declarations are hoisted to the top of their scope. While this might seem convenient, it can lead to variables being accessed before their declaration.

**Reassignment:**
Variables declared with var can be reassigned, providing flexibility but potentially causing unintended side effects.

```
function VarFun() {
    if (true) {
        var x = 5;
        console.log(x); // Outputs 5
    }
    console.log(x); // Outputs 5, not affected by block scope
}

VarFun();
console.log(x); // Outputs 5, var is hoisted to the function scope
```

## 2. let: Block-Scoped Flexibility
**Block Scoping:**
let introduces block scope, making variables limited to the block where they are defined. This helps prevent unintentional variable leakage.

**Hoisting:**
Similar to var, let declarations are hoisted, but they are not initialized until the declaration statement is executed.

**Reassignment:**
Variables declared with let can be reassigned, providing a balance between block scope and reusability.

```
if (true) {
    let y = 10;
    console.log(y); // Outputs 10
}

// console.log(y); // Error: y is not defined, as it's block-scoped

```

## 3. const: Immutable Constants

**Block Scoping:**
const shares block scope characteristics with let, but it has an added twist for immutability.

**Hoisting:**
const declarations are hoisted, but they must be initialized during the declaration.

**Immutability:**
Variables declared with const cannot be reassigned once they are assigned a value. However, the content of objects and arrays declared with const can be modified.

```
const PI = 3.14;
// PI = 3.14159; // Error: Assignment to a constant variable
const fruits = ['apple', 'orange'];
fruits.push('banana'); // Valid, modifies the array
// fruits = ['pear', 'grape']; // Error: Assignment to a constant variable
```

## Key Considerations:

_Use var for function-scoped variables and when hoisting behavior is desired.
Use let for block-scoped variables that might be reassigned.
Use const for block-scoped variables that should remain constant_
MIS Webmail Login Outlook Complete Process
Published: 2024-02-14 01:06:54


The information related to a specific organization's webmail login process, possibly related to Microsoft Outlook. However, without more details about the specific organization or service you are referring to with "MIS Webmail," I cannot provide the exact steps.

Typically, webmail login processes involve accessing a specific web address and entering your credentials (username and password). Here is a general guide that you can adapt based on the specific details provided by your organization:

Open Your Web Browser:

Launch your preferred web browser (e.g., Chrome, Firefox, Safari).
Enter the Webmail URL:

Type in the URL for the webmail login page. This could be provided by your organization's IT department or could be a standard URL for accessing webmail.
Access the Login Page:

Once on the webmail login page, look for the login section. It typically includes fields for entering your username and password.
Enter Your Credentials:

Input your username and password in the provided fields. Make sure you enter them accurately.
Click "Login" or "Sign In":

After entering your credentials, click the login or sign-in button to proceed.
Access Your Inbox:

Upon successful login, you should be directed to your webmail inbox, where you can access your emails and other features.
It's important to note that the exact steps may vary based on the organization's setup and the email service they are using. If you're having trouble, I recommend reaching out to your organization's IT [webmail eq](https://miswebmail.com.au/mis-webmail-oultook-365/)  support or checking any documentation provided by your IT department for specific instructions.

Remember to keep your login credentials secure and follow any additional security measures recommended by your organization.
Yet another RocksDB browser
Tags: rocksdb
Published: 2024-02-14 01:02:51

---
title: Yet another RocksDB browser
published: true
description: 
tags: rocksdb
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2024-02-13 15:53 +0000
---

I'm tired of checking contents of my database in RocksDB by coding. So I created a GUI tool called DuHin, for browsing RocksDB Databases using cl-gtk4 and cl-rocksdb. 

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

I can open a database my a simple command.

```
# for example
./duhin.sh /tmp/my-database.rocksdb
```

# Features

* Move forward/backward
* Jump to i-th record
* Search by key

You can download DuHin at [codeberg.org/veer66/duhin](https://codeberg.org/veer66/duhin).
Decided Network +
Tags: network, networking, linux, certifications
Published: 2024-02-14 00:43:50

Greetings,

I first want to say to the readers who love my posts, thank you. I try my hardest to continue the blogging during the studies of cyber. It's a bit hard because there is so much to learn. Nevertheless, the goal of gaining a cyber security role will be accomplished. Today I wanted to discuss the beginnings of gaining a certification called Network +. Yes, prior posts I've stated that one may not need to focus on certs for cyber. However, I feel that with the cert it holds weight in the world of I.T. Let's talk a bit about what I am doing to learn the studies of Networking.

CompTIA is a highly respected company who provides many certifications. One that they offer is Network + which proves you know the topics within networking. In my past work history, I've dealt with cables and wire, automation and more, but never knew the exact terminology for things. That's good, but then it's bad because when working with others you don't want to say the "thing" isn't working. What is the thing your describing would only be the correct response. Today I took the time to work on some studies provided by Professor Messer. He is incredible with the information that's needed, breaking everything down piece by piece. He provides much free content surrounding CompTIA certs and many would recommend him. 

CompTIA Networking exam I am working towards is the N10-008 which expires on March 2025. This expiration date is provided because they update the exam every few years. The exam cost to take it and I am willing to pay every penny. Once you pay for a voucher, you then schedule a date at a testing center. There are 90 questions at 90 mins to complete and the score must be a 720 out of 900 to gain cert. My goal is by March to pass the exam so there's so much to do. I am currently deep diving into the OSI 7 layers, Network Topologies and also common ports. I also did a review of the Wireshark tool which is better to understand now. TCP and UDP was so foreign to me, but after taking studying just the first 3 videos of Messer, he went right into it to discuss Wireshark a little. As always, I will leave some resources, but please if in cybersec take a moment to study networking. Even if you don't want the cert, it helps out a great deal understanding how everything operates. 

Peace and Light




Resources:

[Professor Messer - N10-008 Training](https://www.professormesser.com/network-plus/n10-008/n10-008-video/n10-008-training-course/)



[CompTIA Network +](https://www.comptia.org/certifications/network)
Build and Share React UI Components between Projects using Material UI and Storybook Part-1
Published: 2024-02-14 00:34:49


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


Recently, I started using React Storybook for a React app that I've been building. In this post, I'll share my learning on component sharing using storybook and hopefully will encourage you to consider using Storybook in your next react project.
Storybook in a nutshell
Storybook is an open source tool for building UI components and pages in isolation. You will be able to develop your UI components in isolation without needing to start up a complex dev stack.
Why Material UI?
Material-UI is a React component library based on Google Material Design, which allows for faster and easier stylized web development. It has a simple and customizable component library to build faster, beautiful, and more accessible React applications.
Why component sharing?
For example if you have 3 react applications using same components like cards, button, menu bar etc. How do you share the components? Please don't copy and paste . Issues you may face when you copy and paste; What if the number of react apps grow from 3 to 7? Copy and pasting component code with all the dependancies will be error prone. What if a component needs an update? So, I strong recommend not to copy and paste.

---

We'll solve thisLet's get started by creating a React application
Assuming you've node installed. Let's create a React application using create-react-app.
npx create-react-app storybook
npx it's a package runner tool that comes with npm 5.2+. The above command will download the latest version of create-react-app and its dependancies and set up a new React application called storybook.
Setup storybook
Let's go to the newly created folder storybook
cd storybook
initialize storybook using the following command
npx -p @storybook/cli sb init
Once the setup is done, you should be able to start the storybook using the command
yarn storybook or npm run storybook
Now, that you've storybook ready, let's add material ui package.
npm i @material-ui/core
Now, let's create the card component in Storybook. Under src/components/Card create a Card.js

Now that you've created the card component, let's create the story under src/stories/Card create Card.stories.js

Now, this is how your card story would look like
Card storyNow, that you've learned how to create a component within storybook and write stories. In the next tutorial, you're going to learn on how to import these components into a separate react app so that we write the components once and could be reused anywhere.
Please stay tuned!!!
Understanding Dependency Injection in .NET
Tags: dotnet, beginners, programming, tutorial
Published: 2024-02-14 00:29:03

## Introduction

Dependency Injection is a design pattern commonly used in software development to achieve loose coupling between classes and to increase maintainability and flexibility of code. It is especially popular in the .NET framework due to its support for the Inversion of Control (IoC) principle. In this article, we will delve into the concept of Dependency Injection, its features, advantages, and disadvantages.

## Advantages

- **Reduction of Tight Coupling:** One of the main advantages of using Dependency Injection is the reduction of tight coupling in code. This means that the classes are not directly dependent on each other, making it easier to make changes or updates without affecting other parts of the code.
- **Improved Modularity and Testability:** It also allows for better modularity and testability by providing the ability to replace dependencies with mocks or stubs during testing.

## Disadvantages

- **Initial Setup and Learning Curve:** The major disadvantage of Dependency Injection is the initial setup and learning curve required to implement it.
- **Added Complexity:** It also adds complexity to the code, making it more difficult to understand for beginners.
- **Potential for Misuse:** Dependency Injection can be misused and can result in a convoluted code structure.

## Features

Dependency Injection in .NET has several features, including Constructor Injection, Setter Injection, and Interface Injection.

- **Constructor Injection:** Involves passing the dependencies through a constructor.
  
  ```csharp
  public class MyClass
  {
      private readonly IDependency _dependency;

      public MyClass(IDependency dependency)
      {
          _dependency = dependency;
      }
  }
  ```

- **Setter Injection:** Uses setter methods to inject dependencies.

```csharp
public class MyClass
{
    private IDependency _dependency;

    public void SetDependency(IDependency dependency)
    {
        _dependency = dependency;
    }
}
```

- **Interface Injection:** Uses interfaces to inject dependencies.

```csharp
public interface IInjectable
{
    void Inject(IDependency dependency);
}

public class MyClass : IInjectable
{
    private IDependency _dependency;

    public void Inject(IDependency dependency)
    {
        _dependency = dependency;
    }
}
```

## Conclusion

Dependency Injection is a powerful design pattern in .NET that offers numerous advantages such as loose coupling, modularity, and testability. However, it also comes with its own set of challenges and requires a thorough understanding to be used effectively. Despite its disadvantages, Dependency Injection is a valuable tool for creating maintainable and flexible code in the .NET framework. It is crucial for developers to continue to gain knowledge and proficiency in utilizing this design pattern for the success of their projects
TOP RATED STOLEN BITCOIN RECOVERY EXPERT - CODER CYBER SERVICES
Published: 2024-02-14 00:13:11

After what seemed like an eternity of ups and downs, the moment of triumph finally arrived. With the assistance of Coder Cyber Services, a highly skilled team dedicated to helping individuals like me retrieve their lost cryptocurrencies, I was able to reclaim my lost Bitcoin. It felt like a weight had been lifted off my shoulders, and I couldn't help but celebrate this victorious moment. The relief and joy that washed over me upon regaining my lost investment were indescribable. It was not just about the monetary value of bitcoin; it was the sense of justice and the reassurance that there are professionals out there who can help you navigate through the darkest corners of the crypto world. The competence and particular tools required to handle the complex world of Bitcoin recovery are possessed by professional recovery firms, such as Coder Cyber Services. They are adept at handling various scams, comprehend the subtleties of blockchain technology, and have the know-how to use cutting-edge methods to recover misplaced money. Their expertise and resources can significantly impact the recuperation process, providing people with an opportunity to recover their investments. It is critical to understand that, to improve the likelihood of a full recovery, seeking expert help is not a show of weakness but rather a wise and calculated move. One of the key benefits of working with professional recovery teams is their ability to help individuals avoid common pitfalls and scams in the recovery process. These teams are well-versed in the tactics used by scammers and can provide valuable guidance to protect individuals from falling into their traps. By getting professional help, people can go through the rehabilitation process with confidence, knowing that professionals are there to help and protect them from dangers. This is a decision that can spare not just cash but also valuable time and psychological strain. My experience with Coder Cyber Services has taught me the importance of embracing challenges and seeking professional help when faced with a seemingly impossible task. It's okay to admit that you can't do it alone and that you need the expertise and support of those who know the ins and outs of cryptocurrency recovery. Patience and persistence are virtues that should never be underestimated. The road to recovering lost cryptocurrencies is rarely straightforward, but with a determined mindset and the willingness to keep pushing forward, success can be achieved. While seeking professional assistance is crucial, it's also important to remain vigilant. Trustworthy recovery teams like Coder Cyber Services exist, but so do scams and fraudulent services. Educate yourself, do thorough research, and exercise caution when choosing who to trust with your recovery journey. My encounter with Coder Cyber Services proved to be a game-changer in the daunting task of recovering my lost Bitcoin. Get a section with Coder Cyber Services through.

Visit their website page to learn more about them at https://codercyberservices/
Email -codercyberservices@tech-center.com
TOP RATED STOLEN BITCOIN RECOVERY EXPERT - CODER CYBER SERVICES
Published: 2024-02-14 00:12:17

After what seemed like an eternity of ups and downs, the moment of triumph finally arrived. With the assistance of Coder Cyber Services, a highly skilled team dedicated to helping individuals like me retrieve their lost cryptocurrencies, I was able to reclaim my lost Bitcoin. It felt like a weight had been lifted off my shoulders, and I couldn't help but celebrate this victorious moment. The relief and joy that washed over me upon regaining my lost investment were indescribable. It was not just about the monetary value of bitcoin; it was the sense of justice and the reassurance that there are professionals out there who can help you navigate through the darkest corners of the crypto world. The competence and particular tools required to handle the complex world of Bitcoin recovery are possessed by professional recovery firms, such as Coder Cyber Services. They are adept at handling various scams, comprehend the subtleties of blockchain technology, and have the know-how to use cutting-edge methods to recover misplaced money. Their expertise and resources can significantly impact the recuperation process, providing people with an opportunity to recover their investments. It is critical to understand that, to improve the likelihood of a full recovery, seeking expert help is not a show of weakness but rather a wise and calculated move. One of the key benefits of working with professional recovery teams is their ability to help individuals avoid common pitfalls and scams in the recovery process. These teams are well-versed in the tactics used by scammers and can provide valuable guidance to protect individuals from falling into their traps. By getting professional help, people can go through the rehabilitation process with confidence, knowing that professionals are there to help and protect them from dangers. This is a decision that can spare not just cash but also valuable time and psychological strain. My experience with Coder Cyber Services has taught me the importance of embracing challenges and seeking professional help when faced with a seemingly impossible task. It's okay to admit that you can't do it alone and that you need the expertise and support of those who know the ins and outs of cryptocurrency recovery. Patience and persistence are virtues that should never be underestimated. The road to recovering lost cryptocurrencies is rarely straightforward, but with a determined mindset and the willingness to keep pushing forward, success can be achieved. While seeking professional assistance is crucial, it's also important to remain vigilant. Trustworthy recovery teams like Coder Cyber Services exist, but so do scams and fraudulent services. Educate yourself, do thorough research, and exercise caution when choosing who to trust with your recovery journey. My encounter with Coder Cyber Services proved to be a game-changer in the daunting task of recovering my lost Bitcoin. Get a section with Coder Cyber Services through.

Visit their website page to learn more about them at https://codercyberservices/
Email -codercyberservices@tech-center.com