teleren/devto huggingface dataset:
21 Days of DevOps Interview - Choose between Jenkins, GitLab CI, and GitHub Actions, Day- 5
Tags: jenkins, gitlab, githubactions, cicd
Published: 2024-03-02 04:17:45



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9z1oo1fogacm19cbgmyh.png)
Each tool offers its unique advantage, so consider it before choosing any tool.
1️⃣ Given the unique advantages of Jenkins, GitLab CI, and GitHub Actions, how do you determine which CI/CD tool best fits your projects?
2️⃣ How do you manage the maintenance and scalability challenges associated with these CI/CD tools, especially with Jenkins?
3️⃣ Considering the integration capabilities of GitLab CI and GitHub Actions with their respective platforms, how does this influence your decision when choosing a CI/CD tool?
4️⃣ What are your team's common challenges when using these CI/CD tools, and how do you overcome them?
5️⃣ How important is the community support and plugin ecosystem in your decision-making process when selecting a CI/CD solution?

When choosing between these tools, the design decision revolves around several key factors.

Integration and Ecosystem:
✅ Jenkins: Offers extensive integration capabilities through a vast ecosystem of plugins. It is ideal if you require a highly customizable environment or integrate with various tools and platforms.
✅ GitLab CI: Best suited for teams already using GitLab for source control, as it provides a tightly integrated CI/CD experience within the same platform. This reduces the overhead of managing separate tools and streamlines workflow.
✅ GitHub Actions: Perfect for projects hosted on GitHub, providing seamless integration for CI/CD within the GitHub ecosystem. Like GitLab CI, it's beneficial for teams looking to streamline their development workflow within a single platform.

Resource Management and Cost:
✅ Jenkins: Being self-hosted, Jenkins requires your infrastructure, which means ongoing maintenance and potential costs for servers. However, it offers flexibility in resource management and scaling.
✅ GitLab CI and GitHub Actions: While they offer hosted solutions, they might come with limitations based on your plan. They are generally cost-effective for small to medium projects but can become expensive at scale, especially for private repositories or large build minutes.

Security and Compliance:
✅ Consider the security features of each tool and how they align with your organizational requirements. Jenkins, being self-hosted, allows complete control over security but requires you to manage it. Being cloud-based, GitLab CI and GitHub Actions provide built-in security features but require trust in third-party security practices.

📚 If you're interested in more DevOps interview questions, please check out my new book "Cracking the DevOps Interview."
Cracking the DevOps Interview

https://pratimuniyal.gumroad.com/l/cracking-the-devops-interview
Vim - key combinations to change text
Tags: linux, devtools, vim, productivity
Published: 2024-03-02 03:53:33

I'm a fan of Vim, I've been using Vim syntax in my work for more than a year, and I so love it. The most thing I love in Vim is the key combinations, which help me quickly edit the text. So today I'd like to share with you guys some key combinations that I usually use in my daily work. I hope they can help you be more productive in coding and inspire you to use or learn Vim.

## Combinations
Below are examples of my screenshoots to show how the combinations work, they are not completely enough and I can add more later.

### "ciw"
Change inner the word under the cursor
![ciw image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9qmyq89tb5njvbsu8tx2.gif)

### "cit"
Change the content inner a tag
![cit image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q5eecgd0247e79zv93n9.gif)

### "ci("
Change the content inner round bracket

![ci( image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eu8sr4984naw16mazdvb.gif)

### "ct="
Change the content from the cursor to before the "="

![ci= image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lre980y3ct7fhjnl8dfv.gif)

### "cc"
Change current line - Delete the current line and turn into insert mode

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

## Main keys
**"c"** is the main command to change text object in Vim. There are many types of text object such as word, content inside a tag or brackets, or content before, after a character, etc. Below are two key combinations I always use:
- **i** - is a command to turn into insert mode in Vim, but when it combines with "c" like "ci", "i" means inner a text object.
- **a** - is also a command to turn into insert mode but the text editor cursor will place after the current cursor. "ca" means change the text object and the thing around it.

We can combine many keys to represent the boundary like:
- **ci"** to change the content inner the ""
- **ci<** to change inner the <>
- **ca<** to change the content inner the <> and also delete the <>

And more.

You might think there are lots of things to remember, but believe me, when you practice and practice everyday, you can dance with those combinations like a pro.
Unleash Your Creativity: Introducing DotStyle Tailwind UI builder
Tags: react, javascript, tailwindcss, beginners
Published: 2024-03-02 03:53:23

## Introduction:

Hello, developers and designers! Today, we're thrilled to announce the beta release of DotStyle (https://dotstyle.dev), a groundbreaking tool that empowers you to create stunning user interfaces with ease. Whether you're a seasoned developer or a design enthusiast, our UI builder and component library are designed to streamline your workflow and unleash your creativity like never before.

## What's New in the Beta Release:

- **Beautiful Component Library**: With our extensive library of pre-built components, you can jumpstart your projects and accelerate your development process. From buttons and cards to drop downs and alerts, we've got everything you need to build beautiful and functional interfaces in minutes. Not happy with the look or function of a component? Edit it in the builder!

- **Write code or use AI chat**: We aim to be as developer friendly as possible, and value the importance of having your code in front of you at all times. Our UI builder allows you to code in React and HTML, just like you would in your IDE, and see real-time functional previews. You can ask AI chat to make complex edits for you, or even upload images of UIs to have it build it out for you.


- **Tailwind CSS Integration**: Built on top of Tailwind CSS, our UI builder seamlessly integrates with your existing projects and workflows. Harness the power of Tailwind's '@apply' directive to create CSS classes just like regular CSS. We give you our default CSS styles to copy, or you can create your own in the design system tool.

- **Responsive Design and Dark mode**: Ensure a seamless user experience across devices and screen sizes with our responsive design tools. Preview your designs in real-time and optimize layouts for desktop, tablet, and mobile with ease. All our components and tools also support dark mode via Tailwind's dark: prefix.

## Get Involved:

We're committed to delivering the best possible experience for our users, and your feedback is invaluable in shaping the future of our product. As a beta tester, you'll have the opportunity to provide input, suggest features, and help us refine our UI builder and component library. Create an issue on GitHub or email us at support@dotstlye.dev.

## Conclusion:

Thank you for joining us on this exciting journey. We can't wait to see what you create with our app. Beta is out now and free for everyone, with 25 free tokens to use our AI. Let's redefine the future of UI design together.

Check us out on:
GitHub: https://github.com/mooncode-labs/dotstyle 
Twitter: https://twitter.com/mooncode_labs

Let us know your thoughts in the comments 😊
Cheers, Mooncode Labs
Understanding How Scope Affects Values in Your Spring REST Controller
Tags: springboot, programming
Published: 2024-03-02 03:33:59

Below we explore how a scope annotation affects an instance value in a Spring REST controller.

Each controller is annotated with scope.

```
@RestController
@Scope([SCOPE_VALUE])
public class XXXScopeController {}
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nwos5ouwyufdrudx13r9.png)
Celebrating 10 Million Views: Exploring Ruby on Rails .ba
Tags: ruby, rails, 10millions, views
Published: 2024-03-02 03:08:39

Ruby on Rails .ba, a vibrant hub for the Ruby community, is celebrating a significant milestone: 10 million views. Since its inception, the platform has been a go-to destination for developers, enthusiasts, and learners eager to delve into the world of Ruby on Rails.

At its core, Ruby on Rails .ba serves as a curated collection of valuable links, shortcuts, articles, and tutorials specifically tailored to the Ruby ecosystem. Whether you're a seasoned developer seeking advanced techniques or a newcomer navigating the fundamentals, this platform offers a treasure trove of resources to support your journey.

![10 millions view on rubyonrails.ba](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p8k3jxmd6586uouptzjs.png)
The success of Ruby on Rails .ba can be attributed to its passionate community of contributors and users. Through collaborative efforts, users share their knowledge, insights, and discoveries, enriching the platform with fresh perspectives and up-to-date content. This spirit of collaboration fosters a dynamic environment where learning is not just solitary but communal.

Moreover, Ruby on Rails .ba stands out for its commitment to quality. Every link and resource undergoes careful curation to ensure relevance, accuracy, and usefulness. This dedication to maintaining high standards has earned the trust and loyalty of users worldwide, contributing to the platform's continued growth and success.

As we celebrate this milestone of 10 million views, it's a testament to the enduring relevance and popularity of Ruby on Rails within the developer community. Ruby on Rails .ba remains steadfast in its mission to empower developers, foster learning, and cultivate a vibrant ecosystem for Ruby enthusiasts worldwide.

Looking ahead, Ruby on Rails .ba is poised to continue its trajectory of growth and innovation, embracing emerging trends, technologies, and community feedback. Whether you're a seasoned veteran or a curious newcomer, Ruby on Rails .ba invites you to join the journey as we explore the boundless possibilities of Ruby on Rails together.

In conclusion, the 10 million views milestone is not just a number but a reflection of the collective passion, dedication, and enthusiasm of the Ruby on Rails .ba community. Here's to many more milestones and discoveries in the exciting journey ahead.
CrackCollect
Published: 2024-03-02 03:02:01

> Category: Masuichi Gakusei
> Viewing angle: 2d
> Interests: Learning English as a hobby, increasing learning ability

![Start page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1sthfk1yw74628tvl3x5.png)


> This is an English language level course for beginners, teaching students, middle school students who are in the middle of school, and the ability to use the English language is easy to change.


### Model number:
**1, Core toys**

Player game method:

There is N in the main scene, there are six dimensional shapes, and there are one character in the other six dimensional shapes. Each six-dimensional image is useful for presentation, and the six-dimensional image is perfect for the exact release. After the position of the six-dimensional correct square, the six-dimensional character set is composed of one single sentence. Because of the hand used, the representative hexagonal shape (similar to water fruit ninja one) was completed at this time, and a large number of gold coins were released, and a large number of gold coins were collected.

The ownership of the edition was completed, and the copy was completed.


![In Playing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dbapzio8zyztosiql9b4.png)


Completed one single edition of the slide, and the first edition of this edition.


![Level Test](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9kbvqddohm53nyqjfqpd.png)

**2、 Props**


![Props](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6de0i0yoee75gs5r6vxg.png)

Since the use of tools is low, the user's demand for tools can be purchased at a low rate.

For example:
- Presentation location
- Presentation compilation

**3、Strong test**


![Strong test](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rz52xvexxxf993toon7q.png)

After the final edition of the book, there will be a small test, and one of the exhibition books will have a single printed copy, and then the exact name of the selected book will be shown.
Comprehensive training for talent training.


**4、Levels**



![Level map](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/np4kv9nhcb5tlwenitit.png)


The game has been provided with a large number of tickets, the demand for tickets has been met, and the talent has increased.
Of course, the game can be played with more weight than the previous version, but it is also a solid lexicon.


Summary: There are some difficulties in opening this game, but this is the only way to learn English, this is an impossible path to gain, it is possible to learn more, it is more effective, this is the most effective way to learn English. A very profitable journey.

When you visit China's apple market, the fruit will be renewed after some time, and the apples will be lowered.
Pointer Deployment in Golang
Tags: go, newbiedev
Published: 2024-03-02 02:56:31

Variables in Golang using pointers are marked with *(asterisk) right before writing the data type

var number *int
var name *string
The default value of a pointer variable is nil (empty). A pointer variable cannot hold a value that is not a pointer, and vice versa, an ordinary variable cannot hold a pointer value.

Let's just put it into practice
`
var numberA int = 4
var numberB *int = &numberA
fmt.Println("numberA (value) :", numberA) // 4
fmt.Println("numberA (address) :", &numberA) // 0xc20800a220
fmt.Println("numberB (value) :", *numberB) // 4
fmt.Println("numberB (address) :", numberB) // 0xc20800a220
`

The variable numberB is declared as an int pointer with an initial value of
variable reference numberA (can be seen in the code &numberA ). With this,
variables numberA and numberB hold data with address references
the same memory.
If printed, a pointer variable will produce a memory address string (in
hexadecimal notation), for example numberB which is printed produces
0xc20800a220 .
The original value of a pointer variable can be obtained by dereference
first (can be seen in the code *numberB ).
Sprint 4: Ruby on Rails - Helper Methods for Forms
Published: 2024-03-02 02:53:50

More helpers! Now we focus on using helper methods to create our form tags in our view template files:

Part 1: using form_with + form builder object (contains the form Object with a bunch of methods to create our tags i.e. ".label") for POST requests.

```ruby
<%= form_with(model: @movie, data: { turbo: false }) do |form| %>
  <div>
    <%= form.label :title %>

    <%= form.text_field :title,  %>
  </div>

  <div>
    <%= form.label :description %>

    <%= form.text_area :description, { rows: 3 } %>
  </div>

  <%= form.button "Create Movie" %>
<% end %>
```

Part 2: for a PATCH request, we alter the form_with slightly by adding "method: :patch"

```ruby
<%= form_with(model: @movie, method: :patch, data: { turbo: false }) do |form| %>
```

NOTE: the beauty of using the form_with helper method is that it automatically add the extra < input > tags we need to protect ourselves from CSRF attacks. 

NOTE 2: form_with also handles the setting of attributes for="" and id="" which defaults to "title" and "description. Therefore, we do NOT need to add this option as long as we follow convention. 

NOTE 3: by using the argument "model: <ActiveRecordObject>", the form Object is associated with the ActiveRecordObject. 

   -Therefore, this knows to reference that Movie Instance to access the columns we are referencing for values.
   -In that same way, we can drop the prepopulated values, Rails will do it for us since it just has to look at the Instance Object and match it with our defined symbol column. 


CY@. I'm confused. Lol.
Why Tumblr and WordPress Plans to Sell User Data?
Tags: ai, wordpress
Published: 2024-03-02 02:15:51


It has been reported that the popular blogging platforms Tumblr and WordPress will be selling user data in order to train artificial intelligence models from companies like OpenAI and Midjourney.

This comes after a similar incident in 19 February 2024 where Reddit announced plans to sell user data to an undisclosed AI Company. Users swiftly voiced their disapproval on social media about the privacy implications. It was later revealed that the company buying Reddit's user data was Google.

Now according to a report from media outlet 404Media, Tumblr and WordPress' parent company Automattic appears to be pursuing deals with OpenAI and Midjourney. 404Media claims to have spoken with insider sources who have seen confidential documents related to these partnerships.

While the exact types of user data involved are unclear, the goal would presumably be to use real examples from Tumblr and WordPress to improve the training of AI text generator models and image generator models developed by OpenAI (ChatGPT) and Midjourney respectively.

Automattic is described as being close to finalizing agreements with these two prominent AI companies. However, no official announcement has been made yet regarding launch dates for integrating user data into their AI models.

In a positive step, 404Media also mentions that Automattic intends to give users a settings option to opt out of sharing their personal content with OpenAI and Midjourney for model development. But the lack of transparency so far has understandably raised privacy concerns among bloggers.

It remains to be seen how Tumblr, WordPress and their parent company will address these issues and ensure user consent is properly obtained before any customer data is transferred to outside parties for commercial AI projects. This continuing trend warrants close monitoring from privacy advocates

## Source

https://www.byteswifts.com/2024/02/tumbir-wordpress-to-sell-data-to-train-AI-models.html
How to Convert Vertically Stored Asset Data into Columnar Format for Cointegration Analysis
Tags: machinelearning, python, programming
Published: 2024-03-02 01:12:16

## Introduction
This piece of code fetches asset information from a table stored vertically. 

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

## Dependencies
Install the following package.

```
conda install pandas
conda install numpy as np
conda install mysql-connector-python
conda install sqlalchemy
conda install pymysql
```

## Hands-on Coding
Connect to the database

```
def query_df(query):
    try: 
        engine_uri = f"mysql+pymysql://db_user:db_pass_123@localhost:3306/tradewise_pse"
        db_conn = create_engine(engine_uri)        
        df_result = pd.read_sql(query, db_conn)    
        return df_result
         
    except Exception as e:    
        print(str(e))
```

## Fetching the Dataset

```
if not load_existing:
    sql_distinct_tickers = "select ticker from candlestick where event_time='2023-12-29' and ticker not like '^%%'"
    df_tickers = query_df(sql_distinct_tickers)
     
    df = pd.DataFrame(index=['event_time'])
     
    ### Get the candlesticks
    for ticker in df_tickers['ticker']:
        sql_ticker_col = "select event_time, close from candlestick where ticker='{0}'"
        df_temp = query_df(sql_ticker_col.format(ticker))
        df_temp.set_index('event_time', inplace=True)
        df_temp.rename(columns={'close': ticker}, inplace=True)        
        df = df.add(df_temp, fill_value=0)
         
    df.to_csv(file_name)
```

## Load the dataset from file

```
df = pd.read_csv(file_name, index_col=0)
df.drop(index=df.index[-1],axis=0, inplace=True)
```

## Drop NA
df.dropna(axis=1, inplace=True)

## Print the Dataset

```
print(f"Shape: {df.shape}")
print(f"Null values: {df.isnull().values.any()}")
df

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6ypd0yfpe8ihrfvx58cl.png)
```
Learn to Incorporate Rolling Hurst Values into Your DataFrame
Tags: machinelearning, python, programming
Published: 2024-03-02 01:08:30

## The hurst function.

```
def hurst(ts, min_lag=1, max_lag=7):
    lags = range(min_lag, max_lag)
    tau = [np.sqrt(np.std(np.subtract(ts[lag:], ts[:-lag]))) for lag in lags]
    poly = np.polyfit(np.log(lags), np.log(tau), 1)
    return poly[0]*2.0
```

## Adding to our DataFrame
The hurst value is computed with the last 14 close values.

```
df['Hurst'] = df['close'].rolling(14).apply(hurst, raw=True)
df[10:20]
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5huizfpyrqhicnwiekmy.png)
Caption This! 🤔💭
Tags: watercooler, discuss
Published: 2024-03-02 00:00:00

---
published_at : 2024-03-02 00:00 +0000
---
Can you come up with the wittiest caption to explain what's happening here?

![Koala hugging a tree](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6y07kwqc8zdjr45inzy1.jpg)