teleren/devto huggingface dataset:
Google Summer of Code 2022 with SeaQL
Tags: opensource, gsoc, google, news
Published: 2022-03-08 17:11:58

[GSoC 2022 Organization Profile](https://summerofcode.withgoogle.com/programs/2022/organizations/seaql)

We are super excited to be selected as a Google Summer of Code 2022 mentor organization. Thank you everyone in the SeaQL community for your support and adoption!

In 2020, when we were developing systems in Rust, we noticed a missing piece in the ecosystem: an ORM that integrates well with the Rust async ecosystem. With that in mind, we designed SeaORM to have a familiar API that welcomes developers from node.js, Go, Python, PHP, Ruby and your favourite language.

The first piece of tool we released is [SeaQuery](https://github.com/SeaQL/sea-query), a query builder with a fluent API. It has a simplified AST that reflects SQL syntax. It frees you from stitching strings together in case you needed to construct SQL dynamically and safely, with the advantages of Rust typings.

The second piece of tool is [SeaSchema](https://github.com/SeaQL/sea-schema), a schema manager that allows you to discover and manipulate database schema. The type definition of the schema is database-specific and thus reflecting the features of MySQL, Postgres and SQLite tightly.

The third piece of tool is [SeaORM](https://github.com/SeaQL/sea-orm), an Object Relational Mapper for building web services in Rust, whether it's REST, gRPC or GraphQL. We have "async & dynamic" in mind, so developers from dynamic languages can feel right at home.

But why stops at three?

This is just the foundation to setup Rust to be the best language for data engineering, and we have many more ideas on our idea list!

Your participation is what makes us unique; your adoption is what drives us forward.

Thank you everyone for all your karma, it's the Rust community here that makes it possible. We will gladly take the mission to nurture open source developers during GSoC.

Prospective contributors, stay in touch with us. We also welcome any discussion on the future of the Rust ecosystem and the SeaQL organization.

[GSoC 2022 Idea List](https://github.com/SeaQL/summer-of-code/blob/main/2022/README.md)
Cheat Sheet: ActiveRecord QueryMethods
Tags: ruby, activerecord, beginners, webdev
Published: 2022-03-08 17:11:24

## .count

- **Return value:** integer
- Counts total of instances, or # of values in an array

`Order.count`

---

## .create

- **Return value:** New created instance of a class

```
Order.create(name: "Americano", price: 5.55)
```

---

## .pluck

- **Return value:** an array of values grabbed that match the plucked column names
- Extremely helpful when used with other selectors

```
Person.pluck(:name)
# SELECT people.name FROM people
# => ['David', 'Jeremy', 'Jose']

Person.pluck(:id, :name)
# SELECT people.id, people.name FROM people
# => [[1, 'David'], [2, 'Jeremy'], [3, 'Jose']]

Person.distinct.pluck(:role)
# SELECT DISTINCT role FROM people
# => ['admin', 'member', 'guest']

Person.where(age: 21).limit(5).pluck(:id)
# SELECT people.id FROM people WHERE people.age = 21 LIMIT 5
# => [2, 3]
```

---

## .sum

- **Return value**: integer
- Calculates the sum of a column 

`Person.sum(:age) # => 4562`

---

## .maximum & .minimum

- **Return value:** integer
- Finds the max/min value of a table column

`Person.maximum(:age) # => 93`
`Person.minimum(:age) # => 93`

---

## .where

- **Return value:** Instance(s) of class
- Can take various arguments, including a string, array or hash. A single string is often 1 argument, and an array can be used for multiple arguments, where the first element in the array is treated as a template. It can also accept a hash, with the key/value pairs you're looking for.

String example: 
`Client.where("orders_count = '2'")`

Array example: 
`User.where(["name = :name and email = :email", { name: "Joe", email: "joe@example.com" }])`

Hash example: 
`User.where({ name: "Joe", email: "joe@example.com" })`

---

## .max_by & min_by

- **Return value:** enumerator
- Good to use in methods, as its return value by itself is not a common wanted value. Looks for either the min/max values

```
Coffee.all.max_by{ |c| c.orders.size}
Coffee.all.min_by{ |c| c.orders.size}
```

---

## .first & .last

- **Return value:** Instance of class
- Very useful in conjunction with .sort

`Order.all.sort.last`

---



_Sources: rubydoc.info_
AWS Automation
Published: 2022-03-08 17:11:01

**Introduction CloudFormation**

Template snippets

```
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/CHAP_TemplateQuickRef.html

```
Management Tool - cloudFormation - create new stack - Upload a template to Amazon S3 - choose file(file is shown below) - your region should be exact as ImageId - Next - add stack,keyname - Next - Next - create - click on stack name - you could see all in detail - Go to EC2 you could see your Instance 

```
Resources:
  MyEC2Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      InstanceType: t2.micro
      ImageId: ami-0de53d8956e8dcf80
      KeyName: !Ref KeyName
      SecurityGroups:
        - !Ref InstanceSecurityGroup
      Tags:
        - Key: Name
          Value: My CF Instance
  InstanceSecurityGroup:
    Type: 'AWS::EC2::SecurityGroup'
    Properties:
      GroupName: MyDMZSecurityGroup
      GroupDescription: Enable SSH access via port 22
      SecurityGroupIngress:
        IpProtocol: tcp
        FromPort: 22
        ToPort: 22
        CidrIp: 0.0.0.0/0

Outputs: 
  InstanceID:
    Description: The Instance ID
    Value: !Ref MyEC2Instance

```
Management Tool - cloudFormation - select stack - Action - Delete stack - yes Delete - Go to S3 - click on the bucket containing template - click on the template file - make public - click on the link you could see the the template - After cloudformation delete finishes you can delete this bucket.

**Introduction Beanstalk**

Compute - Elastic Beanstalk - Get started - add application name,platform = PHP,Enable upload your code - upload(choose index.zip file contain a __MACOSX folder and index file) - upload - create application - Now a dashboard creates - configuration contain software,Instance,Load Balancer etc.... - you will get a Url, copy and paste in webbrowser to get that application.

index file content shown below

```
<html>
<head><title>Hello Cloud Gurus</title></head>
<body><h1 align="center">Hello Cloud Gurus! This is webpage was provisioned using Elastic Beanstalk!</h1></body>
</html>

```

Action - Delete Application - Delete

**AWS OpsWorks**
Nevertheless, a new mother stayed in tech in 2022
Tags: wecoded
Published: 2022-03-08 17:07:41

---
title: Nevertheless, a new mother stayed in tech in 2022
published: true
tags: shecoded
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4smegk1boyvlr5dqix1e.jpg
---
My biggest achievement this year was being fully offline for four months to care for a newborn baby, and returning to the company as a new person -- a working mother. I've had to redefine the way I work which has presented new challenges in the form of setting boundaries, delegating effectively, and much more. 

Parenthood provides a new perspective and it's helped me kick my imposter syndrome to the curb. I have overcome the feelings of inadequacy that used to thrive in my body as a first-time founder that is also female, that is also a minority. In particular, board meetings no longer give me crippling anxiety. To me, I used to stick out like a sore thumb and didn't feel like I belonged in the room. I felt a lot of self-pressure to 'do good' by my gender and race, and the result was always a feeling of deflation and depletion. I cut myself a break when I transitioned to parenthood - giving myself more grace, self-empathy, and self-acceptance. It took some time off (and a baby?), but I am grateful to finally embraced who I am (it's ok that I'm soft spoken and not verbose!) and recognize the immense value I bring to the table.

As our company grows, I pledge to break the bias in tech by elevating the women around me and continuing to build a diverse leadership team.
Nevertheless, stratospher Coded!
Tags: wecoded
Published: 2022-03-08 17:02:20

## My most recent achievement was…
Seeing the view from the other side. When you spend time and energy to the code you love, they take a form that can surpass your wildest imaginations. And it's super addicting. You'll want more.

## Advocating for myself looks like…
Putting myself first - spending time and energy to things that truly matter to me.

![a1d40918c5a294224e9c01f4a3b6252f074771d9r1-370-300_hq](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zgpsb0309nkcx59lk4uq.gif)

## My biggest goal is…
I want to live exploring new roads and trying new things. And I want to always keep learning and building stuff.

![9b7f60466bd32b009203a3cacec2de89](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3jc7gq5s792pft66kwml.gif)

## My advice for allies to support underrepresented folks who code is...
All of you are super amazing! You can be everything you are meant to be.
You don’t always need a CMS
Tags: webdev, productivity, devops, cms
Published: 2022-03-08 17:00:11


When it comes to websites, blogs, and whatnot, we often expect to find a CMS power these systems.

I get a lot of questions about what CMS powers my blog.
And I'll explain that while telling you why you don't always need a CMS.

What is a CMS
Let's first take a look at what a CMS is. It stands for "Content Management System", and as the name implies, it can be used to manage the content for a website.

Some famous CMSs are WordPress, Contentful, Wix, Shopify, etc.

There is a big rise of "headless" CMS, which means a CMS that serves as an API.
You have this system in place, and your website calls this API to retrieve the content.

CMSs are great for people who want to edit content and don't particularly know what to do with markdown, uploading files to a server, etc.

So when building websites for clients, it's often an excellent solution to pick a CMS that works for them.

What I run my blog on
I run my blog on a low-tech solution.
It has no CMS, but plain markdown files are parsed to plain HTML and uploaded to a server.

However, this is automated, so I don't have to do that physically, but there is still no content management system to alter the content.

So how does this work, you ask?

I open my project in my IDE of choice (Visual Studio Code, or WebStorm) and start changing my markdown files.
Either you edit the existing ones or create new ones for new blog posts.

Once I'm done, I push the changes to my git branch, which automatically triggers a GitHub action.

This GitHub action starts the build command on my Eleventy project (soon to be Astro), which converts all these markdown to HTML output.
Once this process is done, the HTML files get placed in a "static" branch.

Which trigger Cloudflare pages to pull the latest changes from this branch.
Cloudflare will do a git pull on this branch, and voila, the new changes are online!

This all happens in about a minute or so.

Why you don't always need a CMS
And for me, that's the main reason I don't need a CMS. It can be such an over-engineered solution.

I like to write content, markdown is the easiest way to write anyway, so I prefer it.

And once the content is written, I don't want to hassle with logging in to a system, copy-pasting the content and pressing publish.

(Although this is roughly the same amount of time)

Another downside to these systems is that they need upkeep. The CMS gets a new version, and you need to update it.
Something goes wrong, and you won't be able to push new content.
And worse of all, they can get hacked, meaning your website could be at risk.

Not saying it's impossible, but a static website is harder to hack. You would either need to hack my GitHub repo or my Cloudflare account, which are quite complex challenges.

Conclusion
I don't want to hate on CMS. They are a fantastic system that should be used.

But if you are a developer, consider if you need it?
Perhaps you can make your life easier, but going low-tech as well.

Thank you for reading, and let's connect!
Black Jack Sim for Lockdown Blues
Published: 2022-03-08 16:58:58

Hi Dev Community,

This post describes in brief, the first proper program I have created using Python. This is considered the first major project in a computer science course with Codecademy, and I have created a terminal game to play Black Jack against your pc.


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

My code is comprised modularly of the game functions and game flow, which utilises the created functions. This project taught me how to plan for building a more complex flow. I built this game iteratively and it enabled me to practice: virtual environments, the python standard lib, plugging in my own modules and test driven development.

link to Github: https://github.com/siggyweb/terminal_game

In conclusion this was a great experience for me to create something off of a learning platform in my own environment, in posting it here I welcome feedback, and I have also come up with some possible improvements for the game which I can create at a later date.
Javascript Array Methods Ep.4
Tags: javascript, webdev, beginners, programming
Published: 2022-03-08 16:58:05

Hey There 👋
Welcome to Episode 4 of my Array Methods Explain Show.

as always, if you are here then i suppose you must have pre knowledge of javascript and arrays.

we will be discussing only one method on this episode which is : **CONCAT**

The method **concat** creates a new array that includes values from other arrays and additional items.

the syntax of concat method is :


![concat syntax](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rmqcvgxpo6olj4z2q6yb.png)

- **item1, item2, item3, .... itemN** : the arrays / elements to add.

It returns new array containing the extracted elements, and the original array remains same.

Now, lets look at examples :

- concatenating two arrays

```javascript
let colors = ["Red", "Blue"];
let numbers = [1,2,3];

const colorNumber = colors.concat(numbers);
console.log(colorNumber); // ["Red", "Blue", 1, 2, 3]
```

- concatenating three arrays

```javascript
let colors = ["Red", "Blue"];
let numbers = [1,2,3];
let veggie = ["Potato", "Carrot", "Raddish"];

const colorNumberVeggie = colors.concat(numbers, veggie);
console.log(colorNumberVeggie); // ["Red", "Blue", 1, 2, 3, "Potato", "Carrot", "Raddish"]
```

- concatenating nested arrays

```javascript
let numbers1 = [1, [2,3]];
let numbers2 = [[4,5], [6,7]];

const numbers = numbers1.concat(numbers2);
console.log(numbers); // [1, [2, 3], [4, 5], [6, 7]]
```

- concatenating arrays and values

```javascript
let colors = ["Red", "Blue"];

const moreColors = colors.concat("Yellow", ["White", "Black"]);
console.log(moreColors); // ["Red", "Blue", "Yellow", "White", "Black"]
```

## <u>BEHIND THE SCENES</u>

The **concat** method does not alter the given array or any of the arrays provided as arguments but instead returns a copy that contains copies of the same elements combined from the original arrays. Elements of the original arrays are copied into the new array as follows:

- For objects **concat** copies object references into the new array. Both the original and new array refer to the same object. That is, if a referenced object is modified, the changes are visible to both the new and original arrays. This includes elements of array arguments that are also arrays.
- For data types such as strings, numbers and booleans (not String, Number and Boolean objects): **concat** copies the values of strings and numbers into the new array.
Nevertheless, Ana kept on coding in 2022 (5 yeas now!)
Tags: wecoded, womenintech, momswhocode
Published: 2022-03-08 16:42:19

---
title: Nevertheless, Ana kept on coding in 2022 (5 yeas now!)
published: true
tags: shecoded, womenintech, momswhocode
---

My other [#shecoded piece](https://dev.to/anamariasuciu/while-breastfeeding-in-french-but-she-coded--2h73) dates back in 2019, when I was overcoming the challenges of becoming a dev and a mother at the same time. A global pandemic and another baby later, I am happy to report that keeping at it was worth it! I am a senior dev now, no doubt about it. It's clear to me from the way I approach technical problems, from doing my own research to reading others' code to asking questions to submitting clean pull requests. And I am a mom of 2 who works 4 days a week, so I can also be present and have some time with my kids! 

## My biggest technical goals

I think I am pretty language agnostic. That is, when I look at a problem I never think in terms of how would I solve this in `Ruby/Rails` vs. `Java` vs `Scala`. I try to understand the problem and find a solution, the first solution that comes to my head. And then I work to improve it with whatever tools I may use. I need to think more in terms of performance, of data structures and algorithms. Most problems in life and programming are variations of the same issues over and over again (I'm thinking game theory modelling for programming problems). So the very broad goal would be to master the fundamentals - but of course, I need to work on how that looks like in the context of my current job and interests.  

## My biggest technical achievements

I wanted to skip this one, but I often skip/fail to look at my achievements and today is not about staying humble and small. So yes, in 5 years I touched a lot of code, lots of different styles and languages. I did JS but agh, Groovy/Grails and Java and then Scala and Spark and now I am back to Ruby on Rails. I did a [tech talk](https://www.youtube.com/watch?v=B8PCQd9KgqY) about migrations. I worked with ElasticSearch and docker and what not. I had my fair share of tech failures and they did not break me. And probably that's the biggest achievement. That regardless of the failures, I moved on and learned and got better.  


I don't know how I can break the bias in tech or how to better advocate for myself. I try my best. What I can do is ask for what I want - no fear (ok, yes fear, but I'll still ask for what I want). Like the 4 days week or more money or more time off or more remote days, whatever makes my life easier, I should just go for it! And I think the best way to help others is to let them see that it is possible.
 
So, code! Do your thing, learn, fail, get better, get confident! Be afraid and still do it!
Day:39 Training At Ryaz:Authentication and Authorization
Tags: javascript, webdev, beginners, node
Published: 2022-03-08 16:58:00

- Date:8/03/2022
- Day:Tuesday

Today, I started at about 10:30 am as I was done with more than half of tenth module and left over with some of sub modules of this module so, today I started with leftover submodules i.e Authentication and Authorization so, at starting the instructor started with. that how we can store secrets in environment variables and latter he started with setting the response header and also explained adding methods to mongoose model and with this he told and taught to encapsulate logic in mongoose db. then he started with Authorisation of middlewares. And after this he explained how to protect the routes and also told that how to get the current user and latter on he explained with logging out of user at last he told about role based authorisation as we have whole aim of creating CRUD app so, user would have certain set of authorisation like user can buy course and view it but Host would have different authorisations for eg Host would create course and assign different users to same source so, role based authorisation would play very important for future.And at last he ended up with testing
of Authorization.so,this way my day ended up by learning lot of new things.
Job Hunting (Global, Spain & Europe)
Tags: spain, europe, job
Published: 2022-03-08 16:56:40

I get asked a lot about platforms to look for a job in tech. So here is my reference list:




## Spain & Europe

[Bcn Engineering](https://bcneng.org/)

[TryCircular](https://trycircular.com/)

[JobFluent](https://www.jobfluent.com/)

[Joppy](https://joppy.me/)

[Cord](https://cord.co/)




## Global

[Relocate me](https://relocate.me/)

[Honeypot](https://www.honeypot.io/)

[Stack Overflow](https://stackoverflow.com/jobs/get-started)

[Flexjobs](http://www.flexjobs.com/)

[Glassdoor](https://www.glassdoor.es/Sueldos/index.htm)

[AngelList](https://angel.co/candidates/overview)




## Remote

[We work remotely](https://weworkremotely.com/)

[Remote.co](https://remote.co/remote-jobs/)

[Power to fly](http://powertofly.com/)

[Just remote](https://justremote.co/)

More links for remote work: [The 25+ Best Sites For Finding Remote Work Online In 2022](https://skillcrush.com/blog/sites-finding-remote-work/)




## Minorities in Tech

[Hire tech ladies](https://www.hiretechladies.com/)

[Diversify Tech](https://www.diversifytech.co/)

[Women Who Code](https://www.womenwhocode.com/jobs)

[Latinx in Tech](https://techqueria.org/)

[Black Tech Pipeline](https://blacktechpipeline.com/)

[Tech Disability Project](https://www.techdisabilityproject.org/)

[Chronically Capable](https://www.wearecapable.org/)

[Latinas in Tech](https://latinasintech.org/)

[LGBTQA+ Out in Tech](https://outintech.com/)

... and more! Check out [Diversify's community list here](https://www.diversifytech.co/community)
Learning Terminal (Notes)
Tags: linux, beginners, notes, productivity
Published: 2022-03-08 16:55:29

So the **terminal**, That scary place that no one wants to see.
Take it easy is not that bad as seems. It's just different.

What is the terminal?
An terminal is an user graphical interface where you can give  specific orders to the computer probably you have seen it in a lot of movies and series about hackers.

It looks like this:
![Bash Terminal](https://upload.wikimedia.org/wikipedia/commons/2/29/Linux_command-line._Bash._GNOME_Terminal._screenshot.png)

The terminal is just the interface(a window) inside can run a _shell_ where we can type and execute the commands, there are different types of shells such as:

- Bournshell
- Bash Shell
- Z Shell (The most popular and included in macbooks from 2019)
- C Shell 
- Korn Shell
- Fish Shell
- PowerShell (For windows)

So the firs thing that we have to know is how to browse in our file system, you know the window with folders, files and all our stuff in a computer but in the terminal.

The file system works as a tree branching out, and you can navigate with commands. [More information by freecodecamp](https://www.freecodecamp.org/news/file-systems-architecture-explained/)

Basic commands:

- **ls**: show the files in our directory
 * _We can add modifiers to our commands like -l this modifier or parameter is for show our directory more detailed and as a list_
 * _-h is for a **human lecture** h for human (more legible)_

- **cd**: (change directory) no needed more description right?

This command need a parameter this parameter is the directory that we want to go so forward the command we have to write the directory wished. 

**Example**: cd /Downloads

- **clear**: clean our screen _shortcut_: ctrl + l or command + l

- **cd**: if you type just cd this command gonna send you to your home directory.

- **cd**: .. if you type two dots after cd that gonna return a directory back

- **pwd**: Print Working Directory

- **file**: This one describe a file. You have to type the name of the file after the command file with his extension.

[Credits to Cover Image](https://unsplash.com/photos/y5_mFlLMwJk)