teleren/devto huggingface dataset:
Where to begin..
Published: 2023-09-06 17:05:19

Hi! My name is Ronald and I am on a data science / machine learning type of adventure at the moment. Along with multiple courses I took this class because I knew it will benefit me greatly to learn from collaborating with other coders.

Open source was very interesting to me because it consisted of projects being worked with a community. It also allow me to look further than the norm and create and contribute to projects that will let me develop my skills.

I am hoping to gather experience so that i can apply it to the, mentioned above projects. I am also looking forwing forward getting hands on exprience even if it's a simple debugging process with a machine learning project. I do hope that there is a machine learning project that I can contribute to.

I was interested in https://github.com/roboflow/supervision which is a computer vision project that let's us track object. I also found a multiple Ai chat projects similar to chatGPT, I am curious to see how it work. For now I will work with supervision by roboflow and learn how computer vision would be applicable to machine learning.

I believe Open source is a great way to work as a community, collaborate with other who you don't normally collaborate with and develop connections. This is such an amazing community to be able to work with one another for providing a much better coding future.

I am really interested to find out where this Open source journey takes me.
Get the Latest Maintenance Update of dbForge Edge
Published: 2023-09-06 16:44:07

Devart has released a new maintenance update of dbForge Edge. It is mostly about keeping up to date with the latest versions of the key database systems.

Devart, one of the leading developers of database management software, ALM solutions, and data providers for the most popular database servers, has rolled out an update for dbForge Edge, a multidatabase solution comprising four award-winning IDEs called Studios that encompass a vast diversity of database development, management, and administration tasks across different database systems.

The release introduces the following updates: 

- dbForge Studio for MySQL has received support for the recently released MySQL 8.1.
- dbForge Studio for Oracle has received support for Oracle Database 23c, rolled out as a Free Developer Release.
- dbForge Studio for PostgreSQL now supports PostgreSQL 16, currently available as a beta.

To learn more about the update, please visit https://blog.devart.com/get-the-latest-maintenance-update-of-dbforge-edge.html 

About Devart

Devart is a multi-product company that develops advanced tools for database development and administration, ALM solutions, data providers for database servers, as well as data integration and backup solutions.

For additional information about Devart, visit https://www.devart.com/
Why should I learn Linux before going into cloud?
Tags: linux, cloudcomputing, devops, cloud
Published: 2023-09-06 16:31:22

Linux, an open-source operating system (OS), powers 90% of public cloud workloads due to its flexibility and robustness. Understanding Linux is an important prerequisite for working on cloud platforms such as Amazon Web Services (AWS), Apache CloudStack, Rackspace, Google Cloud, and Microsoft Azure.

## **Let's Talk About Linux:** 
Linux is an OS used on various computing devices, including computers, servers, mainframes, embedded systems, and mobile devices. It functions similarly to Windows, macOS, and iOS by managing communication between your software and hardware. Without the OS, software wouldn't function. Additionally, there are numerous Linux distributions (distros) available, with Ubuntu being the most widely used. Other distros include Debian, Redhat, and more.

## **What Should I Learn in Linux?**
As someone starting out as a Cloud DevOps Engineer, you don’t need to master every aspect of Linux, but there are essential knowledge you should have, which i have highlighted below 

**- Linux and OS Installations:** It's crucial to understand how Linux installations work. Operating systems (OS) are designed to manage the operation, execution, and processing of virtual machines, virtual servers, and remote infrastructures.

**- Command Line Interface:** Familiarizing yourself with the Linux command-line interface (CLI), also known as the terminal, equips you to efficiently manage servers, automate tasks, and deploy applications with ease. 

**- Basic Linux Commands:** Leveraging your skills in DevOps, basic Linux commands help you navigate, manage your system, and perform daily tasks quickly and efficiently.

**- Files and Directories in Linux:** Since Linux revolves around files and directories, understanding their structure and organization is vital for keeping your work organized.

**- User/Group/File Permissions:** Defining who can read, write, or execute a file or directory determines how users on the system can interact with various files available on it.

**- Shell Scripting:** For repetitive tasks that may be time-consuming to execute line by line, shell scripts can be used. Understanding this skill helps you automate code compilation processes, run programs, or create program environments.

## **Conclusion**
By acquiring this foundational Linux knowledge, you set the stage for a successful journey into the cloud.
Tìm cơ sở và số chiều của không gian vecto
Published: 2023-09-06 16:29:13

##Cơ sở của không gian vecto

Trong toán học, không gian vecto là một không gian mà trong đó các phần tử được biểu diễn bằng các vecto. Mỗi vecto trong không gian vecto có thể biểu diễn bằng một tập hợp các phần tử được gọi là cơ sở của không gian vecto.

Cơ sở của không gian vecto là một tập hợp các vecto tuyến tính độc lập tuyến tính mà bằng cách kết hợp tuyến tính, chúng có thể biểu diễn tất cả các vecto khác trong không gian đó.

Để [tìm cơ sở và số chiều của không gian vecto](https://ttnguyen.net/tim-co-so-va-so-chieu/), chúng ta có thể sử dụng phương pháp khử Gauss hoặc phương pháp khác tương tự. Việc tìm cơ sở này rất quan trọng để xác định không gian vecto và tính toán trong không gian này.

##Số chiều của không gian vecto

Số chiều của không gian vecto được xác định bằng số vecto tuyến tính độc lập tuyến tính trong cơ sở của không gian đó. Cụ thể, số chiều của không gian vecto chính bằng số vecto trong cơ sở của không gian đó.

Nếu cơ sở của không gian vecto có một số hữu hạn các vecto, chúng ta có thể hiểu rằng không gian vecto đó có số chiều hữu hạn và có thể biểu diễn trong không gian n chiều.

Nếu không gian vecto có cơ sở vô hạn, chúng ta có thể hiểu rằng không gian vecto đó có số chiều vô hạn và không thể biểu diễn trong một không gian không gian n chiều.

Ví dụ, nếu không gian vecto có một cơ sở gồm hai vecto tuyến tính độc lập tuyến tính, ta có thể kết luận rằng không gian vecto đó có số chiều là 2 và nó có thể biểu diễn trong không gian hai chiều.

##Ví dụ số chiều và cơ sở của không gian vecto

Ví dụ sau sẽ giúp chúng ta hiểu rõ hơn về số chiều và cơ sở của không gian vecto.

Xét không gian vecto trong không gian hai chiều. Cơ sở của không gian vecto này có thể là hai vecto tuyến tính độc lập tuyến tính, ví dụ: {v1 = (1, 0), v2 = (0, 1)}. Bất kỳ vecto trong không gian này đều có thể biểu diễn như một tổ hợp tuyến tính của v1 và v2.

Khi chúng ta có một không gian vecto trong không gian ba chiều, cơ sở của không gian vecto có thể là ba vecto tuyến tính độc lập tuyến tính, ví dụ: {v1 = (1, 0, 0), v2 = (0, 1, 0), v3 = (0, 0, 1)}. Từ đó, bất kỳ vecto nào trong không gian này cũng có thể được biểu diễn bằng một tổ hợp tuyến tính của v1, v2 và v3.

Vì vậy, cơ sở của không gian vecto và số chiều của không gian vecto có sự tương quan mật thiết và việc hiểu rõ về chúng là rất quan trọng trong các bài toán liên quan đến không gian vecto.
Having issues with Selenium
Tags: testing, selenium, webdev, javascript
Published: 2023-09-06 16:03:48

Having this issue in Selenium, can anyone please help?

Build info: version: '4.12.1', revision: '8e34639b11'
System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '18'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [3a1ec4e900fefd64cccb5c9784b304eb, findElement {using=id, value=UserID}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 116.0.5845.112, chrome: {chromedriverVersion: 116.0.5845.96 (1a3918166880..., userDataDir: C:\Users\Student\AppData\Lo...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:56293}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: windows, proxy: Proxy(), se:cdp: ws://localhost:56293/devtoo..., se:cdpVersion: 116.0.5845.112, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
Session ID: 3a1ec4e900fefd64cccb5c9784b304eb
	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:52)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:191)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:196)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:171)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:602)
	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:165)
	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:66)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:359)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:353)
	at Testing.sampleApp.main(sampleApp.java:12)
Implementing Simon Brown's Minimal Approach to Software Architecture Documentation
Tags: architecture, c4, arc42, agile
Published: 2023-09-06 16:21:40

> "The question of 'how much documentation should we write?' is often asked, especially in the age of remote work and business continuity planning."

[![](https://github.com/max-arshinov/masad/raw/main/img/structurizr.png)](https://github.com/max-arshinov/masad)

If you've read Simon Brown's (@simonbrown) [take on a minimal approach to software architecture documentation](https://dev.to/simonbrown/a-minimal-approach-to-software-architecture-documentation-4k6k), you may have been intrigued by the concept but perhaps left wondering about its implementation.

[This repo](https://github.com/max-arshinov/masad) fills that gap by presenting a concrete implementation template of Simon Brown's approach, which consists of:

1. [Software architecture models as code built with Structurizr Lite](https://github.com/max-arshinov/masad#1-software-architecture-models-as-code)
2. [Documentation built with Arc42 template](https://github.com/max-arshinov/masad#2-documentation)
3. [Decision log built with ADR Tools](https://github.com/max-arshinov/masad#3-decision-log)

Check this out if you've been looking for a robust starter kit for your marvellous adventure in the land of Architecture as Code.

Happy documenting! 📚
Easily test and mock microservices using Docker and GitHub Codespaces
Tags: testing, docker, github, vscode
Published: 2023-09-06 16:19:39

Skyramp makes it easy for devs to test & mock microservices using Docker in any dev environment with GitHub Codespaces. We’ve created a video to show you just how easy. [Watch it here](https://www.skyramp.dev/blog/easily-test-and-mock-microservices-using-docker-and-github-codespaces/).
What's your favourite TypeScript style guide (and why)?
Tags: discuss
Published: 2023-09-06 16:08:54

I had an interesting chat with another dev about the pros and cons of different style guides yesterday and was interested to see what everyone else uses.

Personally I like how prescriptive the AirBnB style guide is (with the TS addon, I know it's not officially supported) which really helps with readability across large projects, but I know not everyone likes.

So, what's your favourite? React for the poll, and comment why!

(in alphabetical order 😉)

💖 I like AirBnB
🦄 I like Google
🤯 I like Standard
🙌 I like XO
🔥 I use some other style guide (write in)/I have my own rules
Implementing OpenID Connect (OIDC) Authentication with Nuxt 3, without saving the token in sessionStorage or localstorage
Published: 2023-09-06 16:05:05

This tutorial use as base:
[https://dev.to/taikio/implementing-openid-connect-oidc-authentication-with-nuxt-3-2fa4]
You need to read the tutorial above to understand this tutorial here.
This tutorial here did a change to don't save the token in the localstorage or sessionstorage.
The token is only saved in the pinia .
Another change was about change to use Universal render (nuxt's default).

**nuxt.config.ts**
```
//remove ssr: false
```

With this change you need take care about only call the oidc-client-ts in the client-side, because nuxt will use server and client render (nuxt's default).

**auth-service.ts**
```
import {InMemoryWebStorage} from 'oidc-client-ts';
import { useAuth } from '@/stores/auth';

... code here

//change the line below
userStore: new WebStorageStateStore({ store: new InMemoryWebStorage() }),

... code here

this.userManager = new UserManager(settings);
this.userManager.events.addUserLoaded((user) => {
      const authStore = useAuth();
      authStore.setUpUserCredentials(user);
    });
```

The code above change the store to memory, then you don't save the user and token in the sessionStorage or localStorage.
If you use getUser the user is not returned, then you need use Pinia to store and get the User and token.
The code addUserLoaded will be used to refresh the token, and will be called automatically by oidc-client-ts.

**auth-middleware.global.ts**
```
import { useAuth } from '@/stores/auth';

export default defineNuxtRouteMiddleware(async (to, _from) => {

if (process.server) {
    return
}

const authStore = useAuth();
const {isLoggedIn} = authStore;

if (!authFlowRoutes.includes(to.path) && !isLoggedIn) {
    services.$auth.signInRedirect();
}
```

The code above you only render in the client, returning when the process is on the server. Nuxt run the middleware on the client and server, and with this modification will run only on the client.

Then you will do a signIn when the User is not in the Pinia yet.

**auth.vue**
```
<script setup>
import { useServices } from '~/composables/useServices';
import { onMounted } from 'vue';
import { useAuth } from '@/stores/auth';

onMounted( async () => {
    await authenticateOidc();
});

await services.$auth.signInCallback().then(user=> {
        if(user) {
          authStore.setUpUserCredentials(user);
        }
      });
```

The code above is called after the signin is done and in the return you are in the auth.vue page.
You need to call the code inside onMounted, because you need to render it on the client side.
After siginCalllback you store the User in the Pinia.

The last change is to call logout.vue inside onMounted, to run it on the client side.
Lazy Load Images in WordPress
Tags: wordpress, lazyloadingimage, wordpresserrors, tutorial
Published: 2023-09-06 16:03:30

Loading images can be a significant factor in slowing down your WordPress website. As your site grows with more content and images, optimizing the loading process becomes crucial. One effective technique to improve page load times is lazy loading images.

**WHAT IS LAZY LOADING?**
Lazy loading is a web development technique that defers the loading of non-essential content until it’s needed. In the context of images, lazy loading means that images are loaded only when they are visible within the user’s browser viewport. This reduces initial page load times, saves bandwidth, and provides a smoother user experience.

**WHY IMPLEMENT LAZY LOADING IN WORDPRESS?**

- Faster Page Load Times: Lazy loading images can significantly improve your website’s loading speed, especially for pages with many images.

- Improved User Experience: Visitors can start interacting with your content sooner, even if they haven’t scrolled down to the images yet.

- Reduced Bandwidth Usage: Lazy loading only downloads images as they become necessary, saving bandwidth for both you and your visitors.

**HOW TO MANUALLY IMPLEMENT LAZY LOADING IN WORDPRESS**
If you prefer to implement lazy loading manually, you can do so by adding custom code to your WordPress theme. Here’s a step-by-step guide:

- Open your theme’s functions.php file: You can access this file by navigating to your WordPress dashboard, then “Appearance” > “Theme Editor,” and selecting the “functions.php” file.

- Add the following code snippet at the end of your functions.php file:

```
function add_lazyload_to_images($content) {
if (is_single() || is_page()) {
$content = preg_replace('/<img(.*?)src=["\'](.*?)["\'](.*?)>/i', '<img$1data-src="$2"$3>', $content);
}
return $content;
}
add_filter('the_content', 'add_lazyload_to_images');
```
This code will add the data-src attribute to your image tags, which is a signal for lazy loading.

- Save the changes to your functions.php file.

- Verify the implementation: To ensure it’s working, open a page or post with images and inspect the HTML source code. You should see the data-src attribute on your images.

That’s it! You’ve successfully implemented lazy loading for images in WordPress manually.

https://user-meta.com/blog/lazy-load-images-wordpress-enable-manually/
DAY 95 - Finding the middle of linked list
Tags: leetcode, algorithms, coding, cpp
Published: 2023-09-06 15:58:56

Hello Guys! This is day 95 and we are going to solve another problem using Tortoise And Hare Algorithm. In case you don't know it, check out my previous article on it.

## Analyzing the Middle of a Linked List

The problem at hand involves finding the middle node of a linked list. It's a famous question often encountered in coding interviews. Let's break down the problem, understand the approach, and perform a dry run with an example to understand it better

## Problem Statement: [Middle of a Linked List](https://www.leetcode.com/)

_You are given a singly linked list, and you need to find the middle node of the list. If the list has an even number of nodes, return the second middle node._

## The Approach

Before diving into the code, let's understand the intuition behind the approach.

- We can use a classic technique known as the "two-pointer" or "tortoise and hare" approach to efficiently find the middle of the linked list.

- We initialize two pointers, `slow` and `fast`, both initially pointing to the head of the list.

- The `slow` pointer moves one step at a time, while the `fast` pointer moves two steps at a time.

- When the `fast` pointer reaches the end of the list (i.e., `fast` or `fast->next` becomes `nullptr`), the `slow` pointer will be at the middle of the list. 

- This is because the `fast` pointer covers twice the distance in the same time it takes for the `slow` pointer to traverse the list once.

## Example Dry Run

Let's perform a dry run with an example linked list to see how this approach works.

Consider the linked list: `1 -> 2 -> 3 -> 4 -> 5`

1. Initially, both `slow` and `fast` point to the head, which is `1`.

2. In the first iteration, `slow` moves to `2`, and `fast` moves to `3`.

3. In the second iteration, `slow` moves to `3`, and `fast` moves to `5`.

4. In the third iteration, `slow` stays to `3`, and `fast` reaches the end of the list, which is `nullptr`.

5. Since `fast` is now `nullptr`, we stop the loop, and the `slow` pointer points to the middle node, which is `3`.

## The Code

Here's the code to find the middle node of a linked list:

```cpp
ListNode* middleNode(ListNode* head) {
    ListNode* slow = head;
    ListNode* fast = head;

    while (fast && fast->next) {
        slow = slow->next;
        fast = fast->next->next;
    }

    return slow;
}
```


Time Complexity: O(N)
Space Complexity: O(1)
My Android Learning Journey: Day 3
Tags: android, kotlin, beginners, learning
Published: 2023-09-06 15:27:06

I'm back to learning Android again! If you're seeing this for the first time, this is where I document my journey of learning Android, simultaneously turning my learning into notes for everyone to learn.

It has been several weeks since my day 2 but, I won't hesitate to call this my day 3 of learning Android because today's lessons made me revise all of my previous lessons of [day 1](https://dev.to/charanx/my-android-learning-journey-day-1-4797) and [day 2](https://dev.to/charanx/my-android-learning-journey-day-1-2fia).

Today, I learnt a few things (feels like a lot though) in Jetpack Compose. Here's a little bit of an explanation about everything I learned today:

**Jetpack Compose:** It is a modern toolkit for building user interfaces in Android.

**Composables:** Composables are just Kotlin functions that do not return anything and are annotated with `@Composable`. These are the basic building blocks of user interfaces in Jetpack Compose.

**Modifier:** It allows us to style or decorate the compose UI elements.

And, I also learnt the basic layouts in compose: `Box`, `Row`, and `Column`. Here's a little bit about them:

`Box`: The `Box` layout basically stacks one element on top of another like below

![overlapping squares](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u2e2sou8yoj1dck7691u.png)

`Column`: It puts one element below another like below

![stack of rectangle elements](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ir1v1cfed07wu9yk3u1.png)

`Row`: It puts one element next to the other like below

![rows of rectangle bars](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9jvcew69ks21x7ypqgxw.png)

And, I created several apps using these very basics. Here's a screenshot of one of those, my business card app that makes use of almost everything I just mentioned:

![business card app](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/veyreyepffpkk7zik00a.jpg)

If you're wondering what course I'm following, it is called the [Android Basics with Compose.](https://developer.android.com/courses/android-basics-compose/course) Check out the badge I earned today: [Build a basic layout](https://developers.google.com/profile/badges/playlists/android/android-basics-compose-unit-1-pathway-3)

![build a basic layout badge](https://developers.google.com/static/profile/badges/playlists/android/android-basics-compose-unit-1-pathway-3/badge.svg)

Today has been a lot of fun learning all of these things, creating apps, and figuring out workarounds to many problems that I've faced in the Android Studio. Can't wait to see what's up next in the course!