teleren/devto huggingface dataset:
Rails Course: How To Quickly Learn Rails For Beginners
Tags: railscourse, rails, courses
Published: 2022-12-15 16:14:49

If you’re looking for a quick and easy way to learn Rails, then this post is for you. In this post, we’ll go over the basics of what Rails is and how it can help you quickly develop web applications. We’ll also provide some tips on how to learn Rails quickly and efficiently. By the end of this post, you should have a good understanding of what Rails is and how it can help you build web applications quickly.

Are you looking for a [rails course](https://www.igmguru.com/digital-marketing-programming/ruby-on-rails-certification-training/) to help you quickly learn rails for beginners? You’re in the right place. In this article, we’ll recommend some of the best courses available so you can get started with learning this web development framework as soon as possible. 
 
Rails is a powerful web development framework that helps developers build websites and applications. It’s known for its ease of use, flexibility, and scalability. 

Whether you’re a complete beginner or have some experience with web development, one of these courses is sure to help you learn rails quickly and efficiently. 

If you want to learn how to code in Ruby on Rails, then this blog post is for you. In it, we’ll recommend a great course that will teach you everything you need to know about Rails, and have you coding in no time.

Rails is a popular web application framework written in the Ruby programming language. It is designed to make coding web applications easier by making assumptions about what every developer needs to get started.

If you’re starting your coding journey from scratch, then learning Rails is a great way to go. It’s a popular framework with a lot of documentation and a supportive community. In our opinion, it’s the best way to learn how to code in Ruby.

Keep reading to find out more about the course and how it can help you learn Rails quickly and easily!

So, without further ado, let’s get started!
VIRTUAL HYGIEN - THE TERM I MADE
Tags: virtual, hygiene, terminology, rails
Published: 2022-12-15 16:14:21


![virtual hygiene blog.rubyonrails.ba](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gntaq47mcyoo5vmz3ooo.png)
At that period in my life I had a lot of free time to think about the past - present and future, and about the changes and progress we are living in.
The result of non-formal thinking was a proposal to name adequate terms for a better and healthier online/virtual experience and presence. "our virtual existence".

After some thought, I came to the term "Virtual Hygiene" which is a coin of two other terms.

Virtual - in-world computers are often explained as 'not physically existing as such but made by software to appear to do so'. It is a computer-based simulated environment which may be populated by many users who represent them self in the way of a personal avatar.

Hygiene - was the Greek goddess of health, cleanliness, and sanitation. In general definition it is a 'practice or activity that you do to keep things healthy and clean'. 

Rest of article [VIRTUAL HYGIENE](https://blog.rubyonrails.ba/articles/virtual-hygien-the-term-i-made)
Will Instagram kill photography?
Tags: ai, chatgpt, gpt3, career
Published: 2022-12-15 16:09:15

The answer to that question, in a decade and a half of hindsight, is "yes, and no, depending on your perspective".

Smart phones, Instagram as a form-factor, filters, likes, and now AI — photography is still a thing. Depending on your take, it may be more alive than ever — or you might say that it is long dead, if digital innovation has ruined the purity of the art.

**Just a few weeks ago, [ChatGPT opened a lot of eyes](https://dev.to/mcsee/chatgpt-is-amazing-and-it-is-free-1h12).** GPT-3 is not magic, and under the hood it's still pretty damn dumb, but if you've been following along, it's hard to deny that it isn't a window into the next decade of major changes.

We're living through an artificial intelligence renaissance that _will_ change "content on the Internet" in ways which are going to be tough to predict — however, our relationship with the craft is going to evolve, and there will be no moment where we are totally left behind.

Smart phones _did_ shrink photojournalism, even if photography exploded in absolute metrics. There will be crafts and professions which shrink, while others grow.

Writing and software development will still be valuable crafts, but some of the skills required for excellence _will_ change. If you are an experienced practitioner, consider yourself one of the valuable few who will understand why the AI might be suggesting something the way it is. If you are new to the craft, consider your edge the opportunity to embrace AI right from the get go.

There will be bad actors, there will be greedy CEOs, there will be some really bad decisions made along the way. **But there will be opportunity for growth, new perspective, and some brand new ways to have fun within the craft.**

Happy coding. ❤️
Where did my Settings goooo (and Hi)
Tags: rant, webdev, features
Published: 2022-12-15 16:06:06

So i am new here, after signing in with Google i got to the wonderfull onboarding i did that 2 times and still in my feed is like everything ?

{% embed https://tenor.com/de/view/aplausos-clapped-leonardo-dicaprio-clap-slow-clap-gif-12389001 %}

PS: would be cool if possible when we could add trenor to the posts :)

__________________________________________________________________

In all honesty i am just joking around my first post i am new here and i whanted to try out the post function ;)
Need to compare the Excel file name with a directory text file.
Tags: python
Published: 2022-12-15 15:58:27


Hi All,  
*)Read the excel file and iterate through rows. The first column has "File Name"
*)Read the file name and check the PDF file with the same name available in the folder
*)If the file is present then write the result as "File <filename> found" in .txt 
*)Also copy the respective links, column B and column C values and write in .txt file
*)If the file is not present then write the result as "File <filename> not found" in .txt file

I want to compare and perform the task. Appreciate it if you share any thoughts. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oyc084rs8q7ed95iu8uf.jpg)
Welcome Thread - v204
Tags: welcome
Published: 2022-12-15 15:49:41

---
title: Welcome Thread - v204
published: true
description: Welcome to DEV! A thread of hellos and intros.
tags: welcome
canonical_url: 
---

![Lots of ladybugs dancing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7glkoddzapg1k4wgy2b7.gif)

### Welcome to DEV!

1. Leave a comment below to introduce yourself! You can talk about what brought you here, what you're learning, or just a fun fact about yourself.

2. Reply to someone's comment, either with a question or just a hello. 👋 

**Great to have you in the community!**
Typescript Concat Tuples Type
Tags: webdev, javascript, typescript, tutorial
Published: 2022-12-15 15:35:59

```ts
type ConcatArrays<
   ACC extends any[][], 
   N extends 1[] = []
> = [...ACC[N['length']], ...([...N,1]['length'] extends ACC['length'] ? [] : ConcatArrays<ACC, [...N, 1]>)]
```


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

max 50 tuples

[playground](https://www.typescriptlang.org/play?#code/C4TwDgpgBAwg9gOwMYENgEEBOmUgM4A86MMUEAHsBAgCZ5QoIgDaAumwDRQByZl1dKAEY2UALxQ2APnGSAdAuIxm3ZgHIANtQDmwABZrWrLgrkAKZqe4ch7TTv2G+VWvSXqtCXQdZQA-JK+AFywiKgY2LiESlyWCtbCrFIAlKwAUAD0GVA5UAB6fmlpoJBQALKy8MhoWDj4BMzMQhwATBwAzMbMACwcAKwcAGxdAOwcABwcAJxGUpnZOQVAA)
VueJS Vs ReactJS
Published: 2022-12-15 15:22:41

**VueJS and ReactJS** are both popular JavaScript libraries for building user interfaces. They are both open-source and are maintained by a large community of developers.

**Here are some key differences between the two:**

1)VueJS is a progressive framework, which means it can be used for building small, simple apps or large, complex ones. React, on the other hand, is a declarative library, which is better suited for building large-scale applications.

2)VueJS uses a component-based architecture, which makes it easy to reuse components and build large, scalable applications. React, on the other hand, uses a virtual DOM (Document Object Model) that allows for efficient updates and rendering of components.

3)VueJS has a more straightforward and easier to learn syntax, which makes it a good choice for developers who are new to JavaScript. React, on the other hand, has a steep learning curve and requires more advanced knowledge of JavaScript.

ALso,VueJS and ReactJS are both popular JavaScript libraries for building user interfaces. They are both open-source and maintained by Facebook.

VueJS was created by Evan You, a former Google employee, in 2014. It is a progressive framework, which means it can be used to build both small and large-scale applications. It is known for its simplicity, flexibility, and intuitive API.

ReactJS was created by Facebook in 2013. It is a declarative, efficient, and flexible JavaScript library for building user interfaces. It is used by many large companies, including Facebook, Netflix, and Airbnb.

When it comes to choosing between VueJS and ReactJS, it ultimately comes down to personal preference and the specific needs of your project. Both libraries have their own strengths and weaknesses, and both are widely used and well-supported by a large and active community.

If you're just starting out with JavaScript and are looking for a framework that is easy to learn and use, VueJS may be a good choice. If you're working on a large-scale project with a lot of data, ReactJS may be a better option because of its performance and scalability. Ultimately, the best choice will depend on your specific needs and requirements.
Advent of Code 2022 - Day 15
Published: 2022-12-15 15:20:18

---
title: Advent of Code 2022 - Day 15
published: true
description: I'm trying to solve all the Advent of Code puzzles in this video series.
tags:
cover_image: https://i.ytimg.com/vi/9mnTZ-Ld0y0/maxresdefault.jpg
---

{% youtube 9mnTZ-Ld0y0 %}

I'm trying to solve all the Advent of Code puzzles in this video series.
Understanding Generics in Golang
Tags: go, cloudnative, programming
Published: 2022-12-15 15:15:32

Generics are a powerful feature in the Go programming language that allow you to write code that can work with multiple types. This can be useful for creating reusable components that can be used in different contexts, without having to write separate code for each type.

To use generics in Go, you first need to define a type parameter by specifying the letter `T` within angle brackets (<T>) after the name of the function, type, or method that you want to be generic. For example:

```go
func mapValues[T](m map[string]T) []T {
    values := make([]T, 0, len(m))
    for _, v := range m {
        values = append(values, v)
    }
    return values
}


```

In this example, the `mapValues` function is generic over the type T, which means that it can be used with maps that have values of any type.

To use the mapValues function, you can call it like any other function, but you need to specify the type that you want to use for T. You can do this by using the type keyword followed by the type that you want to use, within angle brackets. For example:

```go

values := mapValues<int>(map[string]int{"a": 1, "b": 2, "c": 3})


```

In this case, the mapValues function is called with a map that has values of type int, so T will be inferred to be int within the function. The resulting values slice will be a slice of int values.

You can also use generics with types by defining a type parameter within angle brackets after the type name. For example:

```go

type Pair[T, U] struct {
    first  T
    second U
}


```

This defines a Pair struct that is generic over two types, `T` and `U`. To create a Pair instance, you need to specify the types that you want to use for `T` and `U` within angle brackets. For example:

```go
p := Pair[string, int]{"hello", 123}

```
This creates a `Pair` instance with a `first` field of type string and a `second` field of type int.

Generics can also be used with methods. To define a generic method, you specify the type parameter within angle brackets after the `func` keyword and before the method name. For example:

```go

func (p Pair[T, U]) String() string {
    return fmt.Sprintf("%v, %v", p.first, p.second)
}

```

This defines a `String` method for the `Pair` type that is generic over the same two types, `T` and `U`. This method can be called on any `Pai`r instance, and the types that were used for `T` and `U` when the instance was created will be used within the method.

In summary, generics in Go allow you to write code that can work with multiple types, without having to write separate code for each type. This can make your code more reusable and versatile, and can help you write more efficient and maintainable code.
Why use NotifyLog?
Tags: webdev, react, javascript, productivity
Published: 2022-12-15 15:04:20

[NotifyLog](https://notifylog.com/) is a powerful tool for managing event notifications in real-time. With its easy-to-use interface and robust feature set, [NotifyLog](https://notifylog.com/) makes it possible for organizations to build, monitor, and display notifications in minutes, not days.

## Many integrations
One of the key advantages of using [NotifyLog](https://notifylog.com/) is its ability to integrate with almost 50 different platforms, including popular services like Railway, Supabase, and Stripe. This means that you can easily connect [NotifyLog](https://notifylog.com/) to your existing tools and systems, and centralize all of your notifications in one place.

**See more here:**
[https://notifylog.com/](https://notifylog.com/)

## One single route for custom integration
In addition to its extensive platform integrations, [NotifyLog](https://notifylog.com/) offers a single API route for custom integrations, making it easy to connect to any service or system that you need. This allows you to tailor [NotifyLog](https://notifylog.com/) to your specific needs, and create a notification system that is tailored to your organization.

**Quick start:**
[https://docs.notifylog.com/quick-start](https://docs.notifylog.com/quick-start)

## Free beta and a surprise
Another advantage of using [NotifyLog](https://notifylog.com/) is that it is currently in beta and is 100% free to use. This means that you can try out the service without having to pay anything, and see if it is right for your organization. In addition, those who participate in the beta will be eligible for a 50% discount on their first subscription, making it an even more attractive option.

**Get the beta:**
[https://notifylog.com/](https://notifylog.com/)

## Simple documentation
[NotifyLog](https://notifylog.com/) also offers a simple-to-understand documentation, so you can quickly get up and running with the service. And, with its public roadmap, you can suggest new features and report any bugs that you encounter, helping to shape the future development of the service.

**See our documentation here:**
[https://docs.notifylog.com/](https://docs.notifylog.com/)

Furthermore, [NotifyLog](https://notifylog.com/) has an active blog with exclusive content, including updates and tutorials on how to use the service. This means that you can stay up-to-date on the latest developments and learn how to get the most out of [NotifyLog](https://notifylog.com/).

In summary, [NotifyLog](https://notifylog.com/) offers a range of advantages for organizations looking to manage event notifications in real-time. With its platform integrations, customizable API, and free beta, [NotifyLog](https://notifylog.com/) is a powerful and flexible tool for managing notifications.

**Create your free account now:**
[https://notifylog.com/](https://notifylog.com/)
Agendador de tarefas com python
Tags: braziliandevs, beginners, python, tutorial
Published: 2022-12-15 14:57:52

Para criar um agendador de tarefas com Python, você pode utilizar a biblioteca apscheduler. O primeiro passo é instalar a biblioteca apscheduler com o seguinte comando:

`pip install apscheduler
`

Em seguida, você pode criar um script Python que inicialize o agendador e adicione as tarefas a serem executadas em momentos específicos. O código para fazer isso pode ser o seguinte:

```python
from apscheduler.schedulers.blocking import BlockingScheduler

# inicializa o agendador
scheduler = BlockingScheduler()

# função que será executada pelo agendador
def tarefa():
    print('Tarefa executada!')

# adiciona a tarefa a ser executada às 8h da manhã todos os dias
scheduler.add_job(tarefa, 'cron', hour=8)

# inicia o agendador
scheduler.start()

```

Essa solução é adequada para aplicações que precisam executar tarefas em momentos específicos, mas que não precisam ser executadas em tempo real ou em paralelo com outras tarefas. Se sua aplicação precisar dessas características, pode ser necessário utilizar outras soluções.
Appwrite OSS Fund Sponsors Task
Published: 2022-12-15 14:47:37

Hi readers 👋, welcoming you back to the "Appwrite OSS Fund" series, where we celebrate open-source maintainers. 🎉

## 🤔 What Is OSS Fund? 
On the 4th of May, the Appwrite team launched the [OSS Fund](https://appwrite.io/oss-fund), an initiative to support open-source project maintainers. Being an open-source company, we wanted to give back to the community and help as many people as we can. 

The OSS Fund is an initiative that is very close to our heart. 
Hear what our Founder and CEO has to say - The Appwrite Story:
{% embed https://appwrite.io/oss-fund-announcement %}

> ### 📢 Announcing The Tenth Project 
> After careful considerations from the committee we are thrilled to announce the tenth project:
> {% embed https://twitter.com/appwrite/status/1595808355733606402?s=20&t=ShsLHDHFZdpWNzjBc4oBEA %}

## 🤔 What Is Task?
[Task](https://taskfile.dev/) is a task runner / build tool that aims to be simpler and easier to use. It allows you to automate tasks for applications. Building, testing, running code generation, automation for CI, etc. It's a generic and documented interface for these different tasks so it's easy for new employees, or new open source contributors, to see what can be run and how.

## 🤝 Meet The Maintainer
[Andrey](https://www.linkedin.com/in/andreynering/?locale=en_US) is a full stack web developer from Brazil. He is most experienced with Ruby on Rails and Go, and also React in the front-end side, among others. His open source travel started doing some contribution to the Ruby on Rails guides, and he eventually published a few small Go projects.

## 💡 How Did The Idea Of Task Come Up?
Andrey was looking for an automation tool, but didn't find anything that he really liked. Make is the most popular but has its problems. Others often have other dependencies, like Python, which make them harder to install and run. Many weren't compatible with all operating systems (namely Windows). Some were too advanced and not user friendly for simple automations. He eventually decided to build his own tool and that was the start of Task. 


## 🗒️ Ending Notes

As Andrey continues to build Task for the open source community, we want to thank maintainers like him for contributing back to the community.

If this story resonates with you or your friend, tell them about OSS Fund, as applications are still open:
{% embed https://appwrite.io/oss-fund %}
AWS Elastic Load Balancer and Auto Scaling Group - Basics
Tags: aws
Published: 2022-12-15 14:42:50

Before understanding Elastic Load Balancers(ELB) and Auto Scaling Groups we need to look at a few definitions.

**Scalability:** Increase or decrease a system`s performance in response to a greater or smaller load

**Vertical Scaling:** Changing the power of an instance by switching the type. The type might have more RAM or CPU for example. Increasing the power means to scale up, decreasing it to scale down.

**Horizontal Scaling:** Increase ("scale out") or decrease ("scale in") the number of AWS instances.

**High Availability:** Run an app in at least 2 Availabilty Zones. If there's a disaster in one of the AZs the second one is still available.

### Elastic Load Balancer /ELB
An Elastic Load Balancer is a server that forwards the traffic to multiple instances. The ELB serves as a single point of access for clients. It performs health checks on the instances and forwards the traffic only to the healthy ones. ELBs can offer a high availability across Availability Zones and AWS takes care of their maintenance. You only need to configure the ELB according to your needs. Its possible to create your own custom Load Balancer, but then you have to maintain it yourself so its more time consuming.

There are four types of Load Balancers:

1. **Application Load Balancer** - works on layer 7 of the OSI model
2. **Network Load Balancer** - functions on layer 4 
3. **Gateway Load Balancer** - layer 3, forwards traffic to 3rd Party security virtual apps. Only when the security checks pass, the traffic is forwarded to the destination
4. **Classic Load Balancer** (retires in 2023) - layer 4 and 7

### Auto Scaling Groups / ASG
An Auto Scaling group contains EC2 instances that are treated as a group for automatic scaling and it can automatically scale in or out depending on the load. When scaling out, instances are added, when scaling in, instances are removed. New instances can be auto-registered to your Load Balancer. Unhealthy instances can be replaced by the ASG.

### Scaling Strategies
There are a few scaling strategies that can be used:

- **Manual scaling:** change size manually
- **Simple/ Step Scaling:** choose threshold values for CloudWatch alarms that invoke the scaling process. E.g.: when the CPU utilization is >80%, add 2 instances
- **Target tracking Scaling:** specify an Amazon CloudWatch average utilization value for your app, e.g. the CPU utilization should stay at 70% for each instance
- **Scheduled Scaling:** E.g. each Friday at 5 p.m. add 2 instances for 4 hours.
- **Predictive Scaling:** uses machine learning to predict capacity requirements based on data from CloudWatch and adjusts the number of instances accordingly
Mac to Roku thanks Elmedia Video Player
Tags: roku, software, mac
Published: 2022-12-15 14:38:59

MacOS can run a large variety of apps that can stream Mac to TV. Some of these have Roku compatibility, allowing you to stream media to any Roku device. In this article, we will explore the best Roku-compatible software - Elmedia Video Player.

Trying to stream from computer to Roku? Elmedia Player is a simple, convenient way to start Roku streams. A few clicks, and you’ll be able to open any video or audio format and start broadcasting it over WiFi to your device.

Using Elmedia Video Player https://www.elmedia-video-player.com/stream-mac-to-tv/mac-to-roku/ means that you get access to useful functionality, like subtitle compatibility options and the ability to add external audio and subtitle tracks. Change subtitle encoding or burn them into the video to display them on any device.
Solving day 15 of Advent of Code 2022 in JavaScript
Tags: challenge, adventofcode, javascript, video
Published: 2022-12-15 14:32:02

---
title: Solving day 15 of Advent of Code 2022 in JavaScript
published: true
description: JavaScript walkthrough of Advent of Code 2022 (day 15)
tags: challenge, AdventOfCode, javascript, video
series: Advent of Code 2022 in Javascript
---

{% youtube VPtjP73vxiw %}