teleren/devto huggingface dataset:
Devin AI: Friend or Foe for Software Engineers?
Tags: ai, programming, productivity, news
Published: 2024-03-15 16:46:14

also read this on [Medium](https://medium.com/@sanjayxr/devin-ai-friend-or-foe-for-software-engineers-7d9b7be7190d)

**Devin AI: The Rise of AI Software Engineers**

Have you heard of Devin? In recent days, this name is sure to pop up frequently in the tech world. But Devin isn't a person – it's an AI software engineer developed by Cognition, a US-based applied AI lab.

**What can Devin AI do?**

Devin AI is constantly learning and improving, adapting to new challenges with ease. Think of it as a software engineer with access to all the tools humans use – code editors, browsers, and more. 
Here are some of Devin's impressive capabilities, as highlighted by Cognition:

- **Learning Unfamiliar Technologies:** Devin can pick up new programming languages and tools quickly.

- **Building and Deploying Apps:** Devin can handle the entire application development process, from start to finish.

- **Autonomous Bug Fixing:** Devin can identify and fix bugs in codebases independently.

- **AI Model Training:** Devin can train and fine-tune its own AI models.

- **Open-Source Contributions:** Devin can address bugs and add features to open-source projects.

- **Production-Ready Development:** Devin can contribute to established code projects used in real-world applications.

- **Real-World Success:** Devin has even completed real coding jobs on freelancing platforms like Upwork.

**Performance Chart**

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

**Will AI Take Our Jobs?**

This is a natural concern with the rise of powerful AI tools like Devin. Two years ago, ChatGPT sparked similar anxieties. However, we've seen that AI like ChatGPT can be valuable assistants to programmers, not replacements for the entire development process.

So, will Devin put software engineers out of work?

**My Perspective as a Computer Science Student:**

From my point of view, companies are unlikely to entrust their entire codebase, especially sensitive projects, to an AI. More realistically, Devin will be used to increase software engineers' productivity. Imagine a project that currently requires 10 people. With Devin's help, that same project might be completed by 5 engineers. then what happens to the other 5 people? (Comment it...)

This article isn't about whether AI will replace software engineers. It's about understanding the potential impact of AI tools like Devin.

**Calling all Tech Experts!**

If you're working in the tech industry, I'd love to hear your thoughts on the rise of AI tools in software development. Share your comments below – your insights will be valuable for students like me who are just entering the field.
Clean Code - Funciones
Tags: cleancode, softwareengineering, spanish, beginners
Published: 2024-03-15 16:33:39

# Funciones

## Introducción:

La importancia de escribir funciones pequeñas, cohesivas y fáciles de entender. Las funciones bien diseñadas hacen que el código sea más legible, mantenible y reutilizable.

## Principios Clave:

- **Pequeñas:** Las funciones deben ser lo más pequeñas posible, idealmente con un máximo de 20-30 líneas de código.
- **Cohesivas:** Las funciones deben realizar una única tarea bien definida.
- **Entradas y salidas:** Las funciones deben tener un número limitado de entradas y salidas bien definidas.
- **Nombres significativos:** Los nombres de las funciones deben indicar claramente la acción que realizan.
- **Sin efectos secundarios:** Las funciones no deben modificar variables globales o el estado del sistema de forma inesperada.

## Ejemplo de Funciones en C#:

### Mala Práctica:

```csharp
public void CalcularTotalCompra(Cliente cliente, List<Producto> productos) {

  // Calcular el total sin impuestos

  decimal totalSinImpuestos = 0;
  foreach (Producto producto in productos) {
    totalSinImpuestos += producto.Precio;
  }

  // Calcular el impuesto

  decimal impuesto = totalSinImpuestos * 0.15m;

  // Calcular el total

  decimal total = totalSinImpuestos + impuesto;

  // Mostrar el total

  Console.WriteLine("Total: " + total);

}
```

### Beuna Práctica

```csharp
public decimal CalcularTotalSinImpuestos(List<Producto> productos) {

  decimal total = 0;
  foreach (Producto producto in productos) {
    total += producto.Precio;
  }

  return total;

}

public decimal CalcularImpuesto(decimal totalSinImpuestos) {
  return totalSinImpuestos * 0.15m;
}

public void MostrarTotal(Cliente cliente, decimal total) {
  Console.WriteLine("Cliente: " + cliente.Nombre);
  Console.WriteLine("Total: " + total);
}

public void CalcularTotalCompra(Cliente cliente, List<Producto> productos) {

  decimal totalSinImpuestos = CalcularTotalSinImpuestos(productos);
  decimal impuesto = CalcularImpuesto(totalSinImpuestos);
  decimal total = totalSinImpuestos + impuesto;

  MostrarTotal(cliente, total);

}
```

### En la buena práctica:

- Se han dividido las responsabilidades en funciones más pequeñas y cohesivas.
- Las funciones tienen nombres significativos que indican la acción que realizan.
- Las funciones no tienen efectos secundarios.

### En la mala práctica:

- La función CalcularTotalCompra es demasiado grande y compleja.
- La función realiza varias tareas diferentes, lo que la hace difícil de entender y mantener.
- La función modifica variables globales, lo que puede generar errores inesperados.
- Al escribir funciones pequeñas y cohesivas, el código se vuelve más legible, mantenible y reutilizable.

## Conclusión

Escribir funciones pequeñas, cohesivas y con nombres significativos es una práctica fundamental para escribir código limpio. Al seguir los principios y consejos mencionados, puedes mejorar la legibilidad, la mantenibilidad y la reutilizabilidad de tu código.
SQL Server Transaction Log Analysis
Tags: sql, sqlserver, dbforge, devart
Published: 2024-03-15 16:27:20

Managing databases, and SQL Server databases in particular, relies heavily on transaction logs. These records painstakingly document each and every transaction along with the associated database modifications. In order to detect problems and, in the event of failure, restore the database to a certain state and time, such precise tracking is essential.

One feature that cannot be disabled in SQL Server is the inclusion of a transaction log in every database. Focusing on both native SQL Server features and third-party GUI solutions, this article will examine multiple ways to view and analyze transaction logs: https://blog.devart.com/view-the-sql-server-transaction-log-with-sql-transaction-log-reader-tool.html
Let's go opensource
Tags: opensource, community, transparency
Published: 2024-03-15 15:50:29

The other days, I watched clips of CEOs of big companies being called out in court and asked tremendous questions - some very absurd. Most of that concerns privacy and safety online. I did not do extra research but at least there doesn't seem to occur much regarding open-source software. 

To me, open-source is more than a free software/platform that allows everyone to access/utilize it in exchange for personal data being tracked or receiving overwhelming advertisements. It is something that is completely free/open and thrives through community spirit and contribution.

So I thought of making a change starting with myself. Of course, I have been using open-source software/tools for some time but I am still using some propriety software. I know I can't eliminate entirely but I'm gonna do as much as I can.
  
For instance, I switched from writing articles on a platform that requires a paid membership to read and start writing here in this community.

I have been using Linux distributions since I was in my college years which is almost around 6 years. 

I switched from Chrome to Firefox for better privacy. I am exploring the option still.

I switched from vscode to codium which is an open-source version of vscode.

Most of the programming languages are open-source which I am very grateful for. I hope we can utilize such programming languages to build free and open software as well.

There are some many more that I couldn't list them all.
Let me know if you have any recommended tools I can benefit from.

Now that I am a user of those software/tools, it is also a time for me to contribute back to the community. For the past year, I have contributed to a few projects. I am keeping my eyes on projects of interest and am ready to give back.

As I once read somewhere: `Learn, Earn and Return`
Golang: All you need to know about rune types
Tags: go
Published: 2024-03-15 15:49:29

## Golang: All You Need to Know About Rune Types

In Golang, the `rune` type plays a crucial role in dealing with characters, especially when working with text that goes beyond the basic ASCII character set. Here's a breakdown of what you need to know:

**Understanding Runes:**

* **Unicode Representation:** A `rune` represents a single Unicode code point. Unicode is an international standard that assigns unique codes to characters across various languages and symbols. This allows consistent representation of text regardless of the system or language.
* **Underlying Type:** While it behaves like a character, a `rune` is technically an alias for the `int32` type. This means it can store a 32-bit integer value corresponding to the Unicode code point of a character.

**Why Use Runes?**

* **Universal Character Handling:** Unlike bytes that may represent different characters depending on the encoding, runes guarantee consistent representation across all languages and character sets. This is essential for handling text that includes characters beyond the basic ASCII set, like emojis or letters with accents.
* **Iterating over Text:** When working with strings containing characters from different languages, iterating over bytes can be problematic. Runes allow you to iterate through each character accurately.

**Simple Examples:**

```go
package main

import (
	"fmt"
)

func main() {
	// Rune representing the letter 'A' (Unicode code point 65)
	var letterA rune = 'A'
	fmt.Println(letterA) // Output: 65 (Integer representation)

	// Rune representing the Euro symbol (€)
	euroSymbol := '€'
	fmt.Println(euroSymbol) // Output: € (Actual symbol)

	// String literal (sequence of runes)
	message := "Hello, world!"

	// Looping through runes in a string
	for _, char := range message {
		fmt.Printf("%c ", char) // %c formats as character
	}
}
```
Clean Code - Nombres significativos
Tags: cleancode, beginners, softwareengineering, spanish
Published: 2024-03-15 15:45:50

# Nombres Significativos

## Introducción:

El capítulo 2 de "Clean Code" de Robert C. Martin se centra en la importancia de elegir nombres significativos para variables, funciones, clases y otros elementos del código. Los nombres significativos ayudan a comprender el código a simple vista, lo que facilita su mantenimiento y colaboración.

## Principios Clave:

- **Evitar nombres genéricos:** No usar nombres como `x, y, z, a1, b2, etc.,` ya que no dan información sobre el propósito del elemento.
- **Utilizar nombres descriptivos:** Elegir nombres que describan claramente lo que representa el elemento. Por ejemplo, nombreCliente es mejor que nombre.
- **Utilizar verbos para las funciones:** Los nombres de las funciones deben indicar la acción que se realiza. Por ejemplo, `calcularAreaTriangulo` es mejor - que `areaTriangulo`.
- **Utilizar sustantivos para las variables:** Los nombres de las variables deben indicar el tipo de dato que almacenan. Por ejemplo, `edadCliente` es mejor que `edad`.
- **Considerar el contexto:** El nombre debe tener sentido en el contexto del código en el que se utiliza.

## Ejemplo en C#:

### Mala práctica:

```csharp
public class MiClase { // Nombre genérico, no indica el propósito de la clase

  public void Calcular() { // Nombre genérico, no indica qué se calcula
    int num; // Nombre genérico, no indica qué tipo de dato almacena ni su propósito
    num = 10; // Asignación sin contexto
    if (num > 5) { // Condición sin contexto
      // ...
    }
  }
}
```

### Buena Práctica

```csharp
public class CalculadoraPrecioTotal { // Nombre descriptivo, indica el propósito de la clase

  public void CalcularPrecioTotal(Producto producto, int cantidad) { // Nombre descriptivo, indica la acción que realiza la función y sus parámetros

    decimal precioTotal = producto.Precio * cantidad; // Asignación con contexto
    if (precioTotal > 100) { // Condición con contexto
      // ...
    }
  }
}
```

## Conclusión:

Elegir nombres significativos es una práctica fundamental para escribir código limpio. Al seguir los principios y consejos mencionados, puedes mejorar la legibilidad, la mantenibilidad y la colaboración de tu código.
¿Qué es el código limpio?
Tags: beginners, softwareengineering, spanish, cleancode
Published: 2024-03-15 15:41:56

Clean code o código limpio se refiere a código que es fácil de leer, entender, mantener y modificar. Es código que está escrito de una manera clara, concisa y expresiva, siguiendo un conjunto de buenas prácticas y convenciones.

## Beneficios del código limpio:

- **Mejora la legibilidad:** El código limpio es fácil de leer y comprender, lo que facilita su mantenimiento y actualización.
- **Reduce errores:** Un código bien escrito tiene menos errores, lo que reduce el tiempo dedicado a la depuración.
- **Aumenta la productividad:** Los desarrolladores pueden trabajar de manera más eficiente con código limpio, ya que no tienen que perder tiempo descifrando código complejo.
- **Mejora la colaboración:** El código limpio facilita la colaboración entre desarrolladores, ya que todos pueden entenderlo fácilmente.

## Principios del código limpio

Si quiere profundizar en cada uno de los principios del clean code creare una serie de posts con su respectivo detalle
How to set up AWS Budget Alerts to prevent surprises
Tags: aws, cloud, budget, notifications
Published: 2024-03-15 15:36:46


In this post, I'll explain how to set up an AWS Budget Alert and why it's important.

# Why is it good to set up a budget alert?
You can use AWS Budgets to track and take action on your AWS costs and usage. You can use AWS Budgets to monitor your aggregate utilization and coverage metrics for your Reserved Instances (RIs), or Savings Plans.


You can monitor and receive notifications on your budgets free of charge. In addition to budget monitoring, you can add actions to your budgets to control IAM and Service Control Policy permissions as well as AWS resources when thresholds are exceeded (or forecasted to exceed).

# How to set up AWS Budget Alerts
Begin by clicking on your logged-in name located in the top-right corner, then select "Billing and Cost Management" from the dropdown menu.

If you encounter an error message stating "You Need Permissions," it indicates that you are using an IAM user without access to the Billing and Cost Management dashboard.

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


**To address this issue, follow these steps:**
1. Login as the Root user
2. Click on you Root account on the top-right corner and select "My Account"
3. Scroll down to "IAM User and Role Access to Billing Information"
4. Click "Edit"
5. Check the "Activate IAM Access" checkbox
6. Click "Update"

Now you should be able to set up budgets using your IAM user. Follow these steps to set up a budget:
1. Go to the "Billing and Cost Management"
2. Click "Budgets" on the left pane
3. Click "Create a Budget"
4. Here select a budget type, I have selected a monthly budget of 100$

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

# Monitor the created budget

You can always navigate to "Billing and Cost Management" > "Budgets" and select your budget to monitor it. And also:

- Compare current spending to budgeted amount
- Compare forecasted spending to budgeted amount (Month-to-date)
- See your budget history
- Change the budget period 
- Update the budgeted amount ($)
- Set the budget scope by adding filtering and use advanced options to narrow the set of cost information tracked as part of this budget
- Update the email recipients
- Setup Amazon SNS alerts
- Setup AWS Chatbot Alerts - AWS Chatbot lets you send budget alerts to the Amazon Chime, Slack or Microsoft Teams chat rooms of your choice which can by handy
- Set alert thresholds - When should this alert be triggered? And how should this alert be triggered?

# Conclusion
Setting up budget alerts is essential to avoid surprises. Additionally, I recommend configuring AWS Chatbot Alerts to receive notifications in your preferred channel. If you have any questions or thoughts, please feel free to comment!
Learning Html
Tags: webdev, programming
Published: 2024-03-15 15:36:42


Learning [Html](www.google.com)
`<html>
<Head>
</Head>
<Body>
</Body>
</html>
`
<u>test</u>
~~test~~

{% embed https://my-portfolio-app-vert.vercel.app/ %}


---
---------------------------
test
#javascript
**hhh**
> html

 
```
<html>
 <Head>
 </Head>
 <Body>
 </Body>
</html>
```
Amazon QuickSight
Published: 2024-03-15 15:36:18

It's often hard to analyze the data and learn from it  for those who are not familiar with programming languages, that's where QuickSight comes in.



![QuickSight Logo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lg6ox6xexwgnxuq8d8n5.png)

QuickSight is business analytics and intelligence  service from AWS, business users can collect meaningful insights.
Unlike PowerBI this is not a huge application to download and play around, QuickSight is a web based application which makes it easy for us to work on our data without worrying about storage and security.

## Features

- **Data Integration** The biggest problem with most of the analytics and visualization applications are data integration. In QuickSight we can connect data from various sources which includes all the AWS services and third party services like MySQL, SQL Server etc.

- **ML Insights** QuickSight will deliver deeper insights and trends without manual analysis based on the Machine learning algorithm which powers Amazon.com for the past two decades.

- **Data Visualization** Visualization is paramount for any analytics application as it facilitates comprehension of data for business stakeholders, empowering them to make informed decisions effortlessly, QuickSight have the option to create wide range of options to create graphs, charts, heatmap etc.

- **Collaboration** QuickSight reports are easy to share and embed on your reports without worrying about the security concerns.

- **Security** QuickSight is secured by Role based access control of AWS's IAM this will help you to save your business data, reports from others without your permission.

- **Pricing** QuickSight offers an unique pricing models where users charged on each sessions initiated, this will help you to save tons of money.

 

- Login into the AWS Console and search for QuickSight



![QuickSight home page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n2lrg206dfid7fvmflah.png)

-  Click on New analysis and then new dataset


![Data source selector](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ia0yc42qqcnkxdq18240.png)

- You can choose the data sources to import the data


![Dataset connector options](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qhxkekgrbwyr8vc6uqq8.png)

- For time being I'll navigate you around to quicksight using a sample data.



![sample data](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/47nqctc0fki344mb6tpb.png)

- You can add new data by clicking data and add dataset.

![adding new data](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ld042zrhqutph694m54q.png)

- You can drag and drop the fields from left to the graph to insights.


![Report changing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1f35eu8lmn88t3tmvtqd.png)

- You can publish your report by clicking on publish

![publishing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lbo7aw09q9o3spp0kuop.png)
A small example of how to use the satisfies operator in TypeScript
Tags: typescript
Published: 2024-03-15 15:23:43

The `satisfies` operator tells TS what type of variable we expect, without overriding its own type. In some cases, this feature can be very useful. Let's look at a simple example where this operator can be useful.

We have a list of products `listA` and we need to prepare an object whose keys would be arbitrary strings and whose values would be any of the items in the list.

``` typescript
const listA = ['apples', 'oranges', 'peaches'] as const;

type ListA = (typeof listA)[number]; // "apples" | "oranges" | "peaches"

const listMap1: Record<string, ListA> = {
  a: 'apples',
  b: 'oranges',
  c: 'peaches',
  d: 'apples',
};
```

If we try to specify a value that is not in the list, for example `carrot`, we get a warning, which was necessary.

Now we need to infer the type of the keys contained in the `listMap1` object. And here we have a problem, because at the very beginning we defined its type as `Record<string, ListA>`. This means that the key is an arbitrary string:
``` typescript
type Key1 = keyof typeof listMap1;

const keyOne: Key1 = 'Y';  // const keyOne: string
```

We don't get an error, although we should. This is where the `satisfies` operator comes in handy, telling TS that we don't define the type of the variable, but just expect the keys to be strings and the values to be something from the fruit list.
``` typescript
const listMap2 = {
  a: 'apples',
  b: 'oranges',
  c: 'peaches',
  d: 'apples',
} satisfies Record<string, ListA>;
```

In this case, the above code will work as it should:
``` typescript
type Key2 = keyof typeof listMap2;

const keyTwo: Key2 = 'Y'; // const keyTwo: "a" | "b" | "c" | "d"
```

we get the error `Type '"Y"' is not assignable to type '"a" | "b" | "c" | "d"`, which is what we needed.
How to Write Your First Cypress Test [With Examples]
Tags: javascript, testing, beginners, automation
Published: 2024-03-15 15:04:04

Choosing an ideal testing framework, especially with a different technology stack, can be challenging for new users, particularly those switching from other testing tools to Cypress. This shift might involve adapting to unfamiliar technological stacks.

**See in detail [under this link](https://www.lambdatest.com/blog/cypress-test/)**

In this blog, we will discuss how a new user can start his journey in Cypress and efficiently write the first Cypress test. You will also see the implementation of Cypress tests on local machines and cloud grids.
Auto Summarize meeting conversation using AI Summarize API :)
Tags: ai, webdev
Published: 2024-03-15 14:53:45

As online meetings become the norm, the need to capture notes, action items etc. becomes super important. The AI Summarize API can process conversations at any meeting, and identify key points, action items, and notes. This can help keep all team members up-to-date, and informed - enhancing team alignment and planning.

That’s just one example: ApyHub’s AI Summarize API can analyze any unstructured text, identify key information, and generate summaries in **different languages**.

Try out the API here: https://apyhub.com/utility/ai-summarize


Image Source: Giphy

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