teleren/devto huggingface dataset:
GSoC'20 : OWASP OWTF - General Improvements
Published: 2020-08-31 16:58:37

Hello,

I am Ashrith, a final year Computer Science and Engineering student at Govt SKSJTI, Bangalore. I was fortunate enough to get the opportunity to contribute to OWASP-OWTF through Google Summer of Code.

This blog will be an overall summary of the work I put in during GSoC.

## About the Project

My project was to resolve the various issues faced by users during the installation and usage of OWTF Framework. Also, I assisted in the migration of certain plugins from python2 to python3. Implementing a new plugin to check for Subdomain Takeover and Public Amazon S3 Buckets were also a crucial part of the project.

## Work Done

**Manual installation of modules** 
Certain python modules had to be installed manually, in spite of it being packaged.
Fix: https://github.com/owtf/owtf/pull/1088

**Multiple issues during Docker build**
The OWTF docker images had multiple issues to which the Docker Build Failed and users were unable to use OWTF Docker.
Fix: https://github.com/owtf/owtf/pull/1065

**Output not being displayed**
The Output on running a plugin was not being displayed because the PostgreSQL database crashed each time on clicking of the output link.
Fix: https://github.com/owtf/owtf/pull/1066 

**Unable to run any specific plugin**
In spite of selecting a particular plugin to run in UI, all plugins were getting invoked.
Fix: https://github.com/owtf/owtf/pull/1070

**Error on running plugin OWTF-CM-007**
This was a python deprecation issue.
Fix: https://github.com/owtf/owtf/pull/1068

**SSL compatibility issue**
Certain SSL functions have deprecated have been deprecated in python3.8.
Fix: https://github.com/owtf/owtf/pull/1072

**Passive plugins output issue**
Although the output was being generated by the backend, it wasn't being displayed in the UI.
Fix: https://github.com/owtf/owtf/pull/1080

**Subdomain Takeover vulnerability**
Create an active plugin which Enumerates subdomain through various sources and then checks if it's vulnerable to Takeover.
Feature: https://github.com/owtf/owtf/pull/1083

**Minor plugin issues**
Updated resources to certain plugins.
Fix: https://github.com/owtf/owtf/pull/1085

**Open S3 Buckets**
Create a passive subdomain to check if a Domain has Publicly accessible Amazon S3 Buckets.
Feature:https://github.com/owtf/owtf/pull/1087

## Future Work

After the completion of GSoC, I would try to integrate more open source tools into OWTF. Also, write more tests to catch bugs and fix other minor issues.

## Acknowledgement

I would like to thank my mentors Abraham Aranguren, Mohit Sharma and Viyat Bhalodia for their continuous support and guidance. 

Overall my experience with OWASP-OWTF has been very satisfying, and I will continue to contribute to OWTF and make it more popular among the InfoSec community.

Last but not least, I would like to thank Google for providing this opportunity to explore the open-source software through the "Google Summer of Code" program.
Interesting BAIB Facts- The Building an Indie Business
Tags: podcast
Published: 2020-08-31 16:44:16

[Listen Here](https://baib-podcast.com/interesting-facts.html)

In this episode, I discuss the 5 ways movie theaters make money. Through ads, concessions, ticket sales, memberships, and others.

**Show Notes:**
[Revenue Research](https://revenueresearch.co/)
[Episode Page](https://baib-podcast.com)
[Buy the book I wrote](https://blog.openpodcast.xyz/podcast-book/)
LGPD - Parte I - Introdução
Tags: security, lgpd
Published: 2020-08-31 16:42:01

No último dia 26 de agosto o Senado brasileiro aprovou uma MP que, entre outras coisas, trata sobre a LGPD, fazendo com que ela entrasse em vigor imediatamente, e, portanto, esse artigo será o primeiro de uma série que escreverei tratando sobre a LGPD.


Mas, para início de conversa, o que é a LGPD?

## Lei Geral de Proteção de Dados
Desde 2010 vinha sendo debatido no Brasil a criação de uma lei sobre a proteção de dados pessoais de usuários da internet, o que gerou diversos projetos de lei, até que, em julho de 2018 a Lei Geral de Proteção de Dados (ou LGPD) foi aprovada no Senado e na Câmara em sua forma atual, para tratar não apenas de dados pessoais na internet, mas em todas as formas de mídia.


Na data em que ocorreu a aprovação, determinava-se que ela passaria a vigorar em 18 meses após a publicação. Porém, ainda em 2018, a lei sofreu alguns vetos na sanção presidencial e teve a sua vigência alterada para agosto de 2020.

Desde então as empresas e órgão públicos vem se preparando para o momento em que a LGPD passasse a entrar em vigor no Brasil.

Como reflexo dos efeitos da pandemia de COVID-19, imaginava-se que seu prazo de vigência fosse mais uma vez adiado, para pelo menos dezembro de 2020, data que chegou a ser aprovada pela Câmara dos Deputados, porém essa data não foi aprovada no Senado e, portanto, a LGPD passará a valer já a partir do início de setembro de 2020 (15 dias após a aprovação), apesar de que inicialmente será apenas de forma educativa, pois as multas e sanções administrativas definidas na lei entrarão em vigor apenas em agosto de 2021.

## Do que trata a LGPD?
A LGPD foi criada se inspirando na GDPR (General Data Protection Regulation), uma lei europeia que entrou em vigor em 2018 e que trata sobre a relação de empresas e órgãos públicos com o processamento e armazenamento dos mais diversos tipos de dados pessoais.

A LGPD também trata da criação da ANPD (Agência Nacional de Proteção de Dados), que será o órgão público que tem como objetivo fiscalizar e aplicar os dispositivos determinados na lei, e também define o cargo de Encarregado dos Dados (ou DPO - Data Protection Officer), que ficará responsável sobre o canal de comunicação entre a ANPD, as pessoas e a empresa.

É importante ressaltar que a LGPD não trata de dados de empresas ou de "pessoas jurídicas", nem de dados pessoais de pessoas em outros países, mas sim apenas de dados de pessoas que estejam em território nacional.

## A LGPD trata apenas de dados digitais?
Ao contrário do que muita gente pode pensar, a LGPD não trata apenas de dados em formato digital, mas sim de qualquer tipo de armazenamento ou processamento de dado pessoal, inclusive em meios físicos. Desta forma a LGPD não define como as informações\dados pessoais devem ser manipulados ou armazenados, mas sim o que o controlador deve garantir para a pessoa titular dos dados, seja o cadastro de um site na internet ou uma ficha cadastral arquivada fisicamente.

_No próximo artigo tratarei sobre os termos e definições criados pela LGPD_
AzureFunBytes Short - @Azure Cloud Shell
Tags: azure, beginners, tutorial, cloud
Published: 2020-08-31 16:31:43

AzureFunBytes! - Byte-sized content with a live Twitch show! Learn about

This time we'll look at the Azure Cloud Shell!

{% youtube ca7kY43EYJw %}

Azure fundamentals with me!

Live stream is available on Twitch at 2pm EDT today. You can also find the recordings there as well.

https://twitch.tv/azurefunbytes
https://twitter.com/azurefunbytes

Join me, ask questions and learn about Azure Cloud Shell!

Overview of the Azure Cloud Shell - https://cda.ms/1mq
Microsoft Learn: Azure Fundamentals - https://cda.ms/1jV
Microsoft Azure: $200 Free Credit - https://cda.ms/1mp
XojoTalk 036 – 2020 Release 1
Tags: web, xojotalk
Published: 2020-09-02 13:11:34

---
title: XojoTalk 036 – 2020 Release 1
published: true
date: 2020-08-31 16:23:22 UTC
tags: Web,XojoTalk
canonical_url: https://blog.xojo.com/2020/08/31/xojotalk-036-2020-release-1/
---

Xojo Engineers Paul and Greg talk about Xojo 2020 Release 1, Web 2.0 and other things.

Download [mp3](http://cdn.xojo.com/Podcasts/XojoTalk-036.mp3).

**Topics**

- [Xojo 2020r1 Download](https://www.xojo.com/download/)
- [Xojo 2020r1 Release Notes](https://docs.xojo.com/Resources:2020r1_Release_Notes)
- [Xojo Team](https://www.xojo.com/company/team.php)

 ![](http://feeds.feedburner.com/~r/xojotalk/~4/nzbdiYpeybQ)
Comparing process working sets of WebView-based Windows Desktop apps
Tags: windows, desktop, electron, webview2
Published: 2020-08-31 13:21:12

**Updated**, related discussion in [MicrosoftEdge Feedback repo](https://github.com/MicrosoftEdge/WebViewFeedback/issues/415#issuecomment-684133596). The source code repo with examples of each `WebView`-based app mentioned here [is now available](https://github.com/noseratio/CompareWebViews), too. 

Let's compare the working sets of various WebView-based Windows Desktop apps. Each application simply loads [the Bing homepage](https://www.bing.com/).

|App|Working set size|
|---|----------------|
|[Legacy IE11 WebBrowser WPF](https://github.com/noseratio/CompareWebViews/tree/main/IE11WebBrowserApp)|164 MB|
|[MSEdge WebView2 WPF](https://github.com/noseratio/CompareWebViews/tree/main/WebView2App)|582 MB|
|[Chromely/CefSharp](https://github.com/noseratio/CompareWebViews/tree/main/ChromelyApp)|516 MB|
|[Electron v10](https://github.com/noseratio/CompareWebViews/tree/main/ElectronApp)|570 MB|

A screenshot of [Process Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer):

![WebView working memory sets](https://raw.githubusercontent.com/noseratio/CompareWebViews/main/procexp.jpg)

<a name="ga-update"></a><hr>

**Updated on 2021/05/27**: Prompted by [this Twitter thread](https://twitter.com/noseratio/status/1397542989891735555?s=20), I've re-verified the `WPF` + `WebView2` memory footprint with [now-GA WebView2 Runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section) (v90.0.818.66),  [`Microsoft.Web.WebView2`](https://www.nuget.org/packages/Microsoft.Web.WebView2) (v1.0.818.41) and [.NET 5](https://dotnet.microsoft.com/download/dotnet/5.0) (v5.0.6).  

I witness an amazing improvement, ~270MB now vs ~580MB I saw back in August 2020 when `WebView2` was in preview:

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x9b6aj43l4k6o7wt1psf.png)

The source code is [here](https://github.com/noseratio/CompareWebViews/tree/net5-webview2-90/WebView2App). Well done [@MSEdgeDev](https://twitter.com/MSEdgeDev) team!
The 20 RxJS Operators You Absolutely Need To Know
Tags: rxjs, webdev, productivity, tech
Published: 2020-08-31 16:23:21

I've done a fair amount of RxJS in the last 3ish years. And in that time I've learned something very important: RxJS is complex and confusing.

I've often struggled with RxJS. I get Promises, and I've heard the old adage "RxJS is just a better version of promises" but it's really not. It's SO much bigger than that. It's a really powerful toolkit for writing reactive code. And when I finally had my eyes opened to some of the power of being able to use RxJS to create a reactive application, I had one of those moments like when the little girl in Jurassic Park says "It's a Unix system, I know this!" (hehe)

But I still find so much of RxJS difficult to grok. One of the things I personally have trouble with is all the various operators.

So that's why I'm excited to be able to offer you a cool PDF: **"The 20 RxJS operators you Absolutely Need to Know"** created by [Mike Brocchi](https://is-tracking-link-api-prod.appspot.com/api/v1/click/6035889757618176/~Tokens.Link~), an RxJS genius. You can get the PDF by clicking the big red button below.

[GIMME RxJS KNOWLEDGE!](https://is-tracking-link-api-prod.appspot.com/api/v1/click/5522844748873728/~Tokens.Link~)

Happy coding!

Signup for my newsletter [here](https://thinkster.io/?previewmodal=signup?utm_source=devto&utm_medium=blog&utm_term=20RXJSoperators&utm_content=&utm_campaign=blog).

Visit Us: [thinkster.io](https://thinkster.io?utm_source=devto&utm_medium=blog&utm_term=20RXJSoperators&utm_content=&utm_campaign=blog) | Facebook: @gothinkster | Twitter: @GoThinkster
How to find Sizing issues related to Width
Published: 2020-08-31 16:19:28

The image above is of the U.S. Coast Guard Cutter Polar Star. It is an IceBreaker and is the widest of all ships in the Coast Guard. It's width is constrained however because it must pass through the Panama Canal.

**HTML Element Width**

Bad Karma...
 
```css
width:200%
```

We are not doing the right thing, whenever we have to exceed the width of 100%. It means something above this element is constraining the layout. 

Keep moving upward through the proper elements and change the width to 100% until the width we want is shown. Then work back down to fine tune widths, margins or padding. 

This is an art, and not a science because the root cause could be other CSS rules we didn't know about. Approaching this problem in a logical deductive way is quickest. 

JWP2020
Being Assertive but not aggressive
Tags: leadership, productivity, career, beginners
Published: 2020-08-31 16:14:44

Being assertive and not aggressive helps one to go to greater heights in life. There is a very thin line difference between these two and it’s very important to know the difference between these two.

Healthy assertiveness is respectful
> Being assertive is nothing but confidently expressing your thoughts or opinion.

Aggressiveness is often an impulse
> An aggressive individual communicates in a way that’s rude, dismissive, and even threatening.

Below are a few examples of each behaviour in different situations:

**1.Expressing Disagreement**

* Assertiveness: Listening to the other person, and then sharing a counter opinion after the other person has finished speaking.
* Aggressiveness: Interrupting the other person and speaking over him or her.

**2.Sharing ideas in a group**

* Assertiveness: Participating in the group dialogue. Allowing others to share their ideas, and expressing thoughts on those ideas in a respectful manner.
* Aggressiveness: Trying to dominate the group dialogue. Speaking over others, and tearing their ideas down without consideration for their feelings.

**3.Seeking silence in the public forum**

* Assertiveness: Asking the offender to lower his or her voice so you can continue your work.
* Aggressiveness: Demanding the offender to lower his or her voice, and even threatening violence for noncompliance.

**4.Seeking rework for the improperly done task**

* Assertiveness: Explaining the problem and asking him or her to remake the work.
* Aggressiveness: Scolding him/her for the mistake, and demanding the issue to get fixed.

**5.Saying no when someone asks for help**

* Assertiveness: Being direct in declining the request. Suggesting another person who may be able to help the requestor.
* Aggressiveness: Barking “NO!” at the requestor and dismissing or make seem him/her unimportant for asking.

**Overall idea**

An aggressive person responds in an inconsiderate manner and often regrets doing later.

By contrast, assertiveness is planned, thoughtful, and considerate. An assertive person communicates his or her position with clarity while taking the other person’s feelings into account.

Be assertive but not aggressive.. !!!
The Origin of Symbol.species
Tags: javascript
Published: 2020-08-31 16:01:52

You may know I'm a big fan of very wired disgusting JavaScript which makes most feel a little nauseous.

Did you know you can mess with insuranceof? No I didn't either, this code is pushing the boundaries of good taste but I want you to know about it so here goes.


``` js
class MyArray extends Array {
  // Overwrite species to the parent Array constructor
  static get [Symbol.species]() { return Array; }
}
let a = new MyArray(1,2,3);
let mapped = a.map(x => x * x);

console.log(mapped instanceof MyArray); // false
console.log(mapped instanceof Array);   // true
```
*source: mdn*

I read this and started laughing. Be careful it's a jungle out there.
Start & Stop Button using JS
Tags: html, css, javascript, beginners
Published: 2020-08-31 16:01:43

Button Start & Stop Command

###HTML

	<body>
		<button class="button">Start Machine</button>
		<p>The Machine is stopped</p>
		<script src="Start & Stop Button/script.js"></script>
	</body>

**Note**: In <code>HTML</code> document we must link style sheet as well 

### JavaScript
The JS code is quite simple as we are grabbing the button and paragraph using querySelector and adding a event listner to that button => event listner can be <code>click</code> There are several Mouse Event functions which can be used here.

```javascript
const btn = document.querySelector("button");
const txt = document.querySelector("p");

btn.addEventListener("click", updateBtn);

function updateBtn() {
	if (btn.textContent === "Start Machine") {
		btn.textContent = "Stop Machine";
		txt.textContent = "The Machine has Started";
	} else {
		btn.textContent = "Start Machine";
		txt.textContent = "The Machine is Stopped";
	}
}

```

### CSS
I have not implemented too much CSS functions here as i want to show my idea of implementing a function on Click of a button.
```
.button {
	width: 200px;
	border: 2px solid green;
	text-align: center;
	text-decoration: none;
	display: inline;
}
```

If you want to see it "in live" and "download" the "Source Code", this is the link to my GitHub profile.

https://github.com/I-BLACKPANTHER

Thank your for watching!🙋 . If you Like it hit that like Button.
Discovering Higher-Order Functions [refactoring to Collections]
Tags: php, collection, map, filter
Published: 2020-08-31 15:32:51

---
title: Discovering Higher-Order Functions [refactoring to Collections]
published: true
description: There are amazing ways to improve your PHP, map, reduce and filter are some of them
tags: php, collection, map, filter
cover_image: https://anastasionico.uk/img/blog/discovering-higher-order-functions-php.jpg
---

How good are you as a programmer?
Can you code astonishing software?
Are you 100% confident in what you deploy into production?

Honestly, 

I believe that should not be the real questions to be asked but rather, are you willing to keep learning?



There is ONE THING that needs to get into your mind:

Coding never stops! 


In this very moment, there are thousands of incredibly talented programmers solving problems and inventing new cool concepts to perform actions.

then, by chance, it happens that some of them publish a book that collects lots of these concepts and ...

... Oh boy!


This is what happened a few weeks ago,

I have started to read "Refactoring to Collections" by Adam Wathan and some of the tricks in that books are just incredible.



I have taken notes on some of the concepts and I want to share them with you today.

The concepts I want you to learn today is Higher-Order Functions

If you have never heard of it no problem,

you have probably seen them already but you didn't know what they were.


They make the code more descriptive while taking care of plenty of functionality in the background.

So you do not have to worry about them.

In short, THEY ARE AMAZING!


I still think I am a pretty good programmer but this book is a helpful reminder that there is a lot more to learn out there.


Why do YOU start now?
Read the article and to see how Higher-Order Functions work.

[Read the full article here](https://anastasionico.uk/blog/discovering-higher-order-functions-php)
Vanilla JS projects in React
Tags: react, javascript, redux
Published: 2020-08-31 15:18:33

When it comes to vanilla javascript projects, we often find that things are a bit more complicated than if we were to simply use a library such as React instead. In my case, I'm aiming to convert Colt Steele's "The Great RGB Color Game" into a React application. This project alone helped me better understand useful React tools such as `componentDidMount()`, which is a lifecycle method that helps us execute tasks after the DOM (Document Object Model) is rendered.

This is where I find it useful to not only execute fetch requests, but also vanilla javascript code! Is this ideal? That's what I hope to find out in my journey as a Software Engineer. For now, I can confirm this is a working method for more detailed DOM manipulation in a robust library.

In conclusion, what more could a dev really ask for? The opportunity to learn and grow is always the pinnacle of our passion. Check out [the repo for this application](https://github.com/MatthewPalmer9/rgbcolorgame) to follow the progress as I bring this application to life.
Testing in a Docker + MySQL + Django Environment
Tags: docker, django, python
Published: 2020-08-31 15:17:56

First, add the database for testing by adding the following to your local settings.

```
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DB',
        'USER': 'DB_USER',
        'PASSWORD': 'password',
        'HOST': '172.20.0.3',
        'PORT': '3306',
        # ADD BELOW!
        'TEST': {
            'NAME': 'test_database',
        },
    }
}
```

Then go to your mysql docker container. Inside the container, access mysql, and type in the `GRANT ALL...` command. Make sure to change the `DB_USER` according to the user name of your database.

```
$ docker exec -it CONTAINER_NAME_MYSQL /bin/bash
# mysql -u root -p

> GRANT ALL PRIVILEGES ON test_database.* TO 'DB_USER'@'%';
Query OK, 0 rows affected (0.01 sec)
```

You are ready to test now!
Enter your django container, and run the tests.

Here is a sample of my test code in my `app` folder.

```
from django.test import TestCase

# Create your tests here.
class EqualTests(TestCase):

    def test_1_equals_1(self):
        self.assertIs(1, 1)

    def test_1_equals_to_0(self):
        self.assertIs(1, 0)
```

Open up your django container, and run your tests in the directory where `manage.py` and `app` are placed. You may need to change the directory names if these two have different locations.

```
docker exec -it CONTAINER_NAME_DJANGO /bin/bash
# python manage.py test app
```

You should get an error similar to this.

```
.F
======================================================================
FAIL: test_1_equals_to_0 (app.tests.EqualTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/code/project/app/tests.py", line 10, in test_1_equals_to_0
    self.assertIs(1, 0)
AssertionError: 1 is not 0

----------------------------------------------------------------------
Ran 2 tests in 0.022s

FAILED (failures=1)
Destroying test database for alias 'default'...

```

Hope this helps!
Creating A Personal Website with the Pure Framework
Tags: codenewbie, css, html
Published: 2020-08-31 15:00:48

Creating this website has been a road of trial and error for me. The last time I was actively creating websites Java Script was in its infancy. You only designed websites for laptops and desktops because that's all that they could be viewed on. What I remember of HTML has changed quite a bit and CSS and JS are pretty new to me. I researched grids, flexbox and frameworks exhaustively. I tried 3 different frameworks and my own grid before I settled on [Pure](https://purecss.io/).

Here is what the home page looked like originally:

![Original Home Page](https://dev-to-uploads.s3.amazonaws.com/i/daw5ahk0b26n6i2g3wu0.png)

I couldn't scroll down, the mobile looked terrible, but this one view was pretty good. If that was all I was looking for then I was fine, unfortunately, that was not the user experience that I was going for. So I gave up on writing my own grid.

Neither of the first two frameworks that I looked at gave me the flexibility that I was looking for, so I end up looking for small frameworks. That is how I found [Pure](https://purecss.io/). It's small, lightweight and easy to use. With it I was eventually able to create a mobile friendly site that utilizes a small amount of Java Script. I was able to combine two of their layouts to make my blog viewer friendly.

I learned a lot of CSS in this journey. I really like [Pure](https://purecss.io/), but I'd like to be able to design my own layout next time.