teleren/devto huggingface dataset:
How I did realize that I was living in a patriarchal system?
Tags: womenintech, genderequity
Published: 2022-12-30 21:03:58


When I think of a topic to write I have many ideas such as UX, women in technology, and anecdotes, but I know women live in patriarchal systems and I want to share how I realized I was living in a patriarchal system. Why? We have normalized patterns of behavior through culture. 

Before I begin, I will give the context of my family. They are from a town in Jalisco, Mexico. We live in a small town outside the city where I lived for 25 years.  In my childhood, every Sunday, we went to my grandfather's house to make barbecue or traditional Mexican dishes. I started to always see the first to eat were the men. During this period of time I thought “This is ok, women want more time to eat and chat”. I never thought this behavior was bad. 

In my 20’s I started to learn about women's communities. The first community I found was [TechWo](https://www.techwo.org/). 
I always followed its social media, but I didn’t go to the events. One day I was sure I wanted to meet these women and I registered for the event. 
The event daaay!! I was still not sure if I should go. I told my father about the event. He didn't understand. At the time I was ready, my father said the phrase that changed my reality and my beliefs: 
“Don't go, it's better to stay home to clean up”. At this moment, my head went **BOOOOOM**! What? Cleaning is better than learning? I ignored the comment and I left. 


Since that day, I knew I lived in a patriarchal system. Men (not all) see women as housekeepers or people who should only do activities at home, and they want to dictate how women should act. This led me to know in my life that I suffered and lived in a world of machismo, but the system says it is the right way to be. 

Today, I know that I can't change my family and their beliefs, but I can stop allowing myself to be the last one to eat or who is in charge of the cleaning. 

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


**Conclusions:**

Women are capable of doing anything, that is why I invite you to question your beliefs and behavior. This is the only way we can resist patriarchy. The next time your family or the system tells you that you shouldn't do something, ask why.

I embrace you all, together we can!
How to create a Nuxt 3 app
Tags: webdev, javascript, beginners, tutorial
Published: 2022-12-30 20:56:37

{% embed https://www.youtube.com/watch?v=hj3NNlTqIJg %}

1. Nuxt.js is a framework for building web applications with Vue.js.
2. It is based on Vue.js, a popular JavaScript library for building user interfaces.
3. Nuxt uses a server-side rendering (SSR) approach, which means that the server generates the HTML for a page and sends it to the client, rather than the client generating the HTML using JavaScript.
4. This approach has several benefits, such as better performance and SEO-friendliness.
5. Nuxt provides a number of features out of the box, including automatic route generation, code-splitting, and server-side rendering.
6. It also has a plugin system that allows you to add additional functionality to your app, such as axios (for making HTTP requests) or vue-meta (for managing the meta tags of your app).
7. Nuxt offers three modes for building your app: single-page application (SPA), static site, or server-rendered app.
8. You can also create an app with a universal or hybrid mode, which allows you to mix server-side rendering with client-side rendering.
9. To use Nuxt, you will need to have Node.js and npm (the package manager for Node.js) installed on your machine.
10. Nuxt is well-documented, with a comprehensive guide and a number of examples and tutorials available online. It is also a popular choice for building web applications because it is easy to use and has a large community.

Guillaume Duhan
Build a Power Platform Yearly Stats Application
Tags: powerapps, powerplatform, lowcode, templates
Published: 2022-12-30 20:46:45

It's the end of another year, the time that we all look back and reflect on what we accomplished. As a Power Platform maker, it is a good idea to look back on what you built in the year and the impact you made.

To make this retrospection easier, I build "Power Platform Wrapped", a solution built on the Power Platform to help you get a customized overview of how many Power Apps you built, what you automated with Power Automate and more. 

If you want to go straight to the solution and bypass the details, you can download the app here: [Power Platform Wrapped](https://aka.ms/PowerPlatformWrapped )

If you want to see a video walkthrough of the app and what it can do, check out this video:

{% embed https://youtu.be/z6Q0FmEL1Dg %}

## How it's Built

Without going into too many boring details, I'll share a bit about how I built this solution. 

The key pieces of information that I wanted to track are the number of Power Apps, Flows, Bots and Power Pages built. I started thinking about how to get that data and realized that all of that information is already available in the [Power Platform Center of Excellence Starter Kit](https://learn.microsoft.com/en-us/power-platform/guidance/coe/starter-kit). 

If you haven't installed the COE Kit in your environment then consider this your nudge to do so now! The COE Toolkit is a set of Power Platform assets (Flows, Power Apps, etc) that gives us additional administrative, governance and analytics capabilities. It runs a series of Flows to gather information about what is in your Power Platform environments and stores all of that data in custom Dataverse tables. 

Since all of that data is already store in the COE toolkit, I decided to build on top of that for my year end stats solution. I built a simple Power Apps canvas app that pulls data directly from the underlying COE Dataverse tables. 

I realize that not everyone has the COE kit installed so I built another version of the solution that uses the Power Platform Admin connectors instead. This separate solution uses a Power Automate flow to get all of this information using the Admin connectors and sends a summary email out. 

If you're looking to help encourage and celebrate your Power Platform makers then this is a great template to try out!
Drupal: Active Links in Views
Tags: drupal, javascript, webdev
Published: 2022-12-30 20:40:11

Drupal 9 provides a different style for active links - i.e. a link that goes to the same page that you're already on - in most contexts. This helps identify for users when it would be redundant to select it again. There's one exception where it doesn't do this out of the box, however: within views.

Here's how I got around that. First add this file to the theme's /js folder, in a new file called `active-links.js`.

```jquery
(function (Drupal) {
  var viewLinks = document.querySelectorAll('.view a[href="'+window.location.pathname+'"]');
  for (let i = 0; i < viewLinks.length; i++) {
    viewLinks[i].classList.add("is-active");
  }
})(Drupal);
```

This is a simple function, checking to see if there are any links within views that point to the same address as the current page, and if it finds any, it adds the standard `is-active` class to it.

As with any other new JavaScript or CSS file, you'll also need to tell Drupal to include this library if you want it to show up. Adding it to the global-styling for the theme will load it on every page. You can do that by adding a new line to the libraries.yml file, within the js section under global-styling:

```yml
global-styling:
  js:
    js/active-links.js: {}
```

This could also be structured as a module instead of dropping it into the theme. That would make it more easily sharable for others to include it on their sites instead of needing to adapt it to their themes. But it is also a very small piece of code and that may be more hassle than its worth, so I am not currently planning on doing that.

Note: you will probably need to clear caches, close your browser, and open a new one, before you'll notice the change in place. JavaScript will be cached so you might be tempted to think it isn't working when it really just needs to reload.
Hanukkah of Data 2022 - Puzzle 4
Tags: hanukkahofdata, datasette, python, pandas
Published: 2022-12-30 20:34:48

---
title: Hanukkah of Data 2022 - Puzzle 4
published: true
description: Talk through (and spoil!) the fourth puzzle from Hanukkah of Data 2022.
tags: hanukkahofdata, datasette, python, pandas
series: Hanukkah of Data 2022
---

_[Hanukkah of Data](https://hanukkah.bluebird.sh/) is a series of data-themed puzzles, where you solve puzzles to move your way through a holiday-themed story using a fictional dataset. See the [introductory post](https://www.visidata.org/blog/2022/hanukkah-of-data/) for a bit more detail, but the pitch in my head is "[Advent of Code](https://adventofcode.com/) meets [SQL Murder Mystery](https://mystery.knightlab.com/)". This post walks through my approach to the fourth puzzle._

- [Thinking](#thinking)
- [Doing (Pandas)](#doing-pandas)
- [Doing (Datasette)](#doing-datasette)

**Warning:** This post unavoidably contains spoilers. If you'd rather do the puzzles on your own first, please close this browser tab and run away :).

## Thinking

On the fourth day, we find a woman who likes to eat pastries early in the morning:

> “A few weeks later my bike chain broke on the way home, and I needed to get it fixed before work the next day. Thankfully, this woman I met on Tinder came over at 5am with her bike chain repair kit and some pastries from Noah’s. Apparently she liked to get up before dawn and claim the first pastries that came out of the oven.

## Doing (Pandas)

This time I turned things around and started with Pandas. Because I had explored the data a bit prior to starting puzzles, I noticed that the `sku` column started with a category/department prefix. Baked goods all seemed to have a bakery prefix of `BKY`, so finding orders with that sku prefix seemed like a good start:

```python
df[(df.sku.str.contains('BKY'))]
```

That was far too many results (as expected), so the next step was to find bakery orders early in the morning. Let's say between 4am and 9am, which should cover cases where someone got up before dawn and got the first pastries out of the oven:

```python
df[(df.sku.str.contains('BKY')) & (df.ordered.dt.hour.between(4,9))]
```

That was still a bunch of rows! But the clues make it sound like this is a habit. So how about looking at which customers get those early morning pastries most often?

```python
df[
    (df.sku.str.contains('BKY'))
    & (df.ordered.dt.hour.between(4,9))
].groupby(['name','phone']).size().sort_values().tail()
```

That suggests Cristina Booker as the clear winner, and narrowing that time range from 4-9am to 4-6am makes it even clearer.

## Doing (Datasette)

Adapting the pandas logic to SQL left me with this query:

```sql
select
  c.name,
  c.phone,
  count(*) as ordercount
from
  customers c
  join orders o on c.customerid = o.customerid
  join orders_items i on o.orderid = i.orderid
  join products p on i.sku = p.sku
where
  p.sku like 'BKY%'
  and cast(strftime('%H', o.ordered) as int) <= 5
group by
  c.name,
  c.phone
order by ordercount desc
```
Technologies I'm learning in 2023, and what I have learned in 2022
Published: 2022-12-30 20:31:29

As the year 2022 comes to a close, I wanted to reflect on the technologies I learned and accomplished this past year and also look forward to the technologies I hope to learn in 2023.

## 2022 - what I have learned

### Web Technologies and other

In 2022, I made significant progress in my web development skills by learning and working with a variety of frameworks and tools. These included Nuxt 2 and Nuxt 3, Nestjs, and Deno + Fresh. I learned about TailwindCSS, a CSS framework for building custom user interfaces, and also read a book called Refactoring UI (by the author of Tailwind). I also became proficient in using Puppeteer, Playwright and Crawlee for web scraping and crawling, and learned about the powerful NixOS operating system with its reproducible configs. I also gained experience with the Go programming language through competitive programming.

### AI, text models, image generators

In addition to web development, I also delved into the world of artificial intelligence and machine learning by learning about the GPT-3 and GPT-3.5 models, as well as Dall-E 2, Midjourney 3 and Stable Diffusion 1.5 image generation models. I even made a little bit of money by generating images with Midjourney for a friend who creates animations using those images. These tools have the potential to revolutionize the way we build our systems. I believe that they can dramatically improve certain elements of our work, such as generating code or helping to solve problems. For example, I have started using GPT-3 to implement a "title to standard name" converter for a repository of Minecraft plugins. I am also planning to create a "versions to semver" converter, where you can give versions in any format and it will give them back in a format that is semver compatible. While GPT models are not free and can get expensive at scale, they can be very useful for certain tasks.

## 2023 - what I want to learn

### Mostly low level things

As I look ahead to 2023, I have several technologies on my learning list. At the top of the list is Rust, a programming language known for its performance and memory safety. I also hope to learn about Ansible, a configuration management tool, and Jest, a popular JavaScript testing framework.

### Web Technologies, Graphics Design and other

I also plan to continue learning and gaining experience with React and NextJS, as well as Go. In terms of design, I'm excited to learn more about UI and logo design using Affinity Designer and Figma. I am also interested in learning about Base Web, a design system developed by Uber, and implementing it in my next project.

## Summary

In summary, 2022 was a great year for learning and I'm excited to continue expanding my skills in 2023. I'm looking forward to diving into Rust and other new technologies, as well as continuing to improve my skills in web development and design.

## License
Creative Commons Attribution Share Alike 4.0 International ([CC-BY-SA-4.0](https://spdx.org/licenses/CC-BY-SA-4.0))
Google Drive Actions
Published: 2022-12-30 20:09:58

{% embed https://github.com/hrishikeshrt/google_drive_actions %}

**Google Drive Actions (API v3)**

Simple `GoogleDriveApplication` class to perform common Google Drive actions such as searching files, downloading entire folders, uploading files, deleting files.

## Usage

```python
from application import GoogleDriveApplication

GD = GoogleDriveApplication("path-to-client-secret.json")

# Find files
GD.find_files("hello+world", is_folder=False)

# List entire subtree of the specified folder
GD.list_folder("google-drive-id-of-folder", recursive=True)

# Download entire folder
GD.download_folder("google-drive-id-of-folder")
```
Things to keep in mind when starting with AWS
Tags: aws, cloud, programming, productivity
Published: 2022-12-30 18:42:09

Applications in the Cloud are reliable, and in some cases even cheaper than on-premises, but we all have made a lot of mistakes when started with AWS.

## Cost Optimization

First and one of the most important tips to keep in mind:

- Monitor your AWS costs by setting billing alerts & automate everything


**CloudFormation template**

```yaml
---
AWSTemplateFormatVersion: "2010-09-09"
Description: "Simple budget example"
Parameters:
  Email:
    Type: String
    Default: email@example.com
    Description: Please enter the email address to which budget notifications should be addressed.
Resources:
  BasicBudget:
    Type: "AWS::Budgets::Budget"
    Properties:
      Budget:
        BudgetLimit:
          Amount: 10
          Unit: USD
        TimeUnit: MONTHLY
        BudgetType: COST
      NotificationsWithSubscribers:
        - Notification:
            NotificationType: ACTUAL
            ComparisonOperator: GREATER_THAN
            Threshold: 99
          Subscribers:
            - SubscriptionType: EMAIL
              Address: !Ref Email
        - Notification:
            NotificationType: ACTUAL
            ComparisonOperator: GREATER_THAN
            Threshold: 80
          Subscribers:
          - SubscriptionType: EMAIL
            Address: !Ref Email
Outputs:
  BudgetId:
    Value: !Ref BasicBudget
```

- Tag everything 

## Performance Efficiency

- Use Serverless Architectures as much as possible
- Store no application state
- Log useful information and enable traceability

## Reliability

- Scale-out is better in most of the cases

## Security

- Create an IAM user for your AWS account.
- Enable MFA in all your AWS users
- Grant roles to EC2, applications should not have AIM accounts 
- Assign privileges to groups and not directly to the users


## Operational Excellence

- Leverage Infrastructure as Code: Terraform, CDK or even CloudFormation 
- Make things easy to rollback
Asymmetric encryption
Tags: webdev, javascript, python, php
Published: 2022-12-30 18:35:13

Asymmetric encryption is a method of encrypting data so that the encryption and decryption keys are different. This means the key used to encrypt the data is not the same as the key used to decrypt it.

In asymmetric encryption, there are two keys: a public key and a private key. The public key is used to encrypt the data, while the private key is used to decrypt it. The public key can be shared with anyone, while the private key should be kept secret.

One of the main benefits of asymmetric encryption is that it allows for secure communication between two parties without needing to exchange a shared secret key beforehand. This makes it useful for secure communication over the internet and other untrusted networks.

There are many different algorithms that can be used for asymmetric encryption, including RSA, ElGamal, and Diffie-Hellman. These algorithms use complex mathematical operations to generate public and private keys, and they are designed to be challenging to crack even with advanced computing power.

**JavaScript libraries that provide support for asymmetric encryption**
node-rsa: https://www.npmjs.com/package/node-rsa
jsrsasign: https://kjur.github.io/jsrsasign/
jsencrypt: https://www.npmjs.com/package/jsencrypt

**PHP libraries that provide support for asymmetric encryption**
OpenSSL: https://www.php.net/manual/en/book.openssl.php
phpseclib: https://github.com/phpseclib/phpseclib
Sodium: https://www.php.net/manual/en/book.sodium.php

**Python libraries that provide support for asymmetric encryption**
pycryptodome: https://pycryptodome.readthedocs.io/en/latest/
pycrypto: https://pypi.org/project/pycrypto/
cryptography: https://cryptography.io/en/latest/

Asymmetric encryption has various applications, including secure communication between two parties, digital signatures to verify the authenticity of messages, secure login systems, secure key exchange, and secure file transfer, secure API. It is a powerful tool for protecting data and communication in many different contexts, such as online banking, e-commerce, and secure messaging. Asymmetric encryption uses a public key to encrypt data, which can only be decrypted using a private key, ensuring that only the intended recipient can access the data.
UI Automation Testing Demo Site
Tags: beginners, testing, automation
Published: 2022-12-30 18:19:59

While learning Web UI testing we are always searching for Demo sites that try to mimic real-world scenarios. Over time, several people in the community have developed these sites with different features and provided good resources and documentation about each usage.

In this article I will be listing out all the good resources which you can make use of, and if you find I have missed anything then please comment and I will update the list:

1. Automation Book Store: https://automationbookstore.dev/
2. Automation Test Store: https://automationteststore.com/
3. DemoBlaze: https://www.demoblaze.com/
4. DemoQA: https://demoqa.com/
5. ParaBank: https://parabank.parasoft.com/parabank/index.htm
6. LetCode: https://letcode.in/test
7. SelectorHub: https://selectorshub.com/xpath-practice-page/
8. Selenium Test Pages: https://testpages.herokuapp.com/styled/index.html
9. Swag Labs: https://www.saucedemo.com/
10. The Internet: https://the-internet.herokuapp.com/
11. UI Test Automation Playground: http://uitestingplayground.com/
12. XYZ Bank: https://www.globalsqa.com/angularJs-protractor/BankingProject/#/login

## What Do You Think?
Did this work for you?
Could I have done something better?
Have I missed something?
Please share your thoughts and let me know if there are particular things that you would enjoy reading further.

Cheers!
Step by step How to Host a Website on Google Drive with an easy way
Published: 2022-12-30 18:17:45

Today I am going to teach you how to host a website on google drive with a custom free domain with free SSL certificates. We all know that google drive is one of the most popular content storage systems on the web, where we can upload our documents with no hassle.

There are a few steps that you have to follow that you have to apply before hosting a website on google drive:1) First of all, you have to create a new folder and name the folder like your website name. In my case, the website name is (www.gocodergo.tk). Now you have to create your HTML file and name your HTML file named as index.html. After you have made your HTML file, paste your file into your given folder and upload this folder to google drive, as you can see in the image

[Follow link to know more...](https://amlogy.com/step-by-step-how-to-host-a-website-on-google-drive-with-an-easy-way/)
How to center a Div: Easy Method
Tags: css, html, webdev, tutorial
Published: 2022-12-30 18:15:32

I often get asked **how to center a div horizontally and vertically **on a web page. There are a few different ways to do this, but here are two methods that I find particularly useful:

**1. Using Flexbox:
**
```css
.container {
  display: flex;
  justify-content: center;
  align-items: center;
}

```
This method uses the Flexbox layout to center the div both horizontally and vertically within its parent container.

**2. Using absolute positioning:
**
```css
.container {
  position: relative;
}

.center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
```
This method uses absolute positioning to position the div in the center of its parent container. The **transform** property is used to adjust the position of the div by half of its width and height, effectively centering it.

Both of these methods can be useful in different situations, so it's good to have both in your toolkit. Have you found a different method that works well for you? Share it in the comments below! #CSS #WebDesign #FrontEnd