teleren/devto huggingface dataset:
YASH - Not the shell - Hacktoberbest :)
Tags: beginners, hacktoberfest, programming, git
Published: 2021-11-16 03:10:50

Yes indeed, Yet Another Successful Hacktoberfest (YASH) has concluded, the PR counts are in and verified, Hactoberfest 2021 DEV.to badges have been claimed, and T-Shirts (or Trees to be planted) are on their way to all of the mailboxes of participants.

This annual celebration of the ending of Hacktoberfest, especially for those of us who have participated in it for the past several years, is an affirmation of the significance and benefit of FOSS and Open Source in general.

Each and every past participant knows the relevance of bringing the world of Open Source to the community at large - and not just programmers either! Many are authors and documentarians, more extremely important aspects of continuous integration and the usage of Linus Torvalds' creation in Git.

This time Both GitHub and GitLab were included as available resources for generating valid pull requests, and rightly so - because the creation of code and content aren't limited to just one single forge any more than the spirit of open source software is limited to an elite crew of mavericks - this is mainstream, and to be certain, something that over the last few years has been proven as one of the most significant disruptors in software development.

By incorporating the carrot and carrot approach we have been able to encourage thousands upon thousands of new onboarders to the world of open source, from neophytes to hobbyists to seasoned programmers from the world of proprietary closed source philosophies, the opportunity and importance of open source is unfolded, presented as something that all of us can gain advantage from the adoption of, and further, create a richer, more wonderful ecosystem of development in software engineering, publishing, and even sharing recipes.

With all of these things being realized, the closing of each years annual Hacktoberfest is not an ending, but indeed a beginning, for each new participant that we encouraged and welcomed to participate, and it heralds a new era for tomorrows magnificent possibilities.

Already, our sights are focused on this new beginning, and plans for the next, and best ever, Hacktoberfest 2022.

Thank you all for attending, and especially, a wholeheartedly congratulatory thanks to all of the newest members of the Hacktoberfest family who took the time to successfully complete their first year!
Learn basic web development for 2 days?
Tags: beginners, tutorial, programming, webdev
Published: 2021-11-16 02:52:44

WE GOT YOU! Build your own basic web profile with HTML, CSS, and Bootstrap. Plus, this is a LIVE ONLINE CLASS.

Zuitt Coding Bootcamp, in cooperation with Kinobi, will conduct a Free Coding Bootcamp on November 25 & 26, 2021 (Thursday & Friday) 1:00 PM to 5:00 PM SGT on both days.

🙋 Register here: https://zuitt.co/applicationform/event/2111-ffcb-cnb

Hurry! Limited slots only.
Best Automation Testing Tools for 2021 (Top 15 reviews)
Tags: opensource, testing, katalon, selenium
Published: 2021-11-16 00:59:44

"The demand for delivering quality software faster — or “Quality at Speed” — requires organizations to search for solutions in Agile, continuous integration (CI) and DevOps methodologies. Test automation is an essential part of these aspects. The latest World Quality Report 2020–2021 suggests that test automation is the biggest bottleneck to deliver “Quality at Speed,” as it is an enabler of successful Agile and DevOps adoption..." 
Continue reading https://briananderson2209.medium.com/best-automation-testing-tools-for-2018-top-10-reviews-8a4a19f664d2
RubyConf 2021
Tags: rubyconf, rubyconf2021, ruby
Published: 2022-01-25 01:57:04

---
title: RubyConf 2021
published: true
date: 2021-11-16 00:00:00 UTC
tags: rubyconf, rubyconf2021, ruby
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jb4mwb0gztybqthx6xa3.jpeg
canonical_url: https://ngriffith.com/writing/rubyconf-2021/
---

Last week, despite being a Rubyist for 14 years, I attended my very first RubyConf!

 ![RubyConf 2021 Banner](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yljgx7wlqezlaoetkk8u.png)

The trip to Denver was also a great opportunity to see my grandparents for the first time since the pandemic, and it also marked my return to in-person conferences.

I took a bunch of [notes](https://ngriffith.com/writing/rubyconf-2021/rubyconf2021-notes.pdf) and produced a giant Tweet thread about it that I'll attempt to unroll below (you may need to wait for twitter to load them all):

{% twitter 1460815049350516737 %}
{% twitter 1460815053637173253 %}
{% twitter 1460815056376147970 %}
{% twitter 1460815058921996289 %}
{% twitter 1460815061333778436 %}
{% twitter 1460815067495251977 %}
{% twitter 1460815070930345986 %}
{% twitter 1460815076542365699 %}
{% twitter 1460815079377707010 %}
{% twitter 1460815081680347137 %}
{% twitter 1460815083647471616 %}
{% twitter 1460815091734126595 %}
{% twitter 1460815095718678534 %}
{% twitter 1460815099120308224 %}
{% twitter 1460815104224772096 %}
{% twitter 1460815107215216640 %}
{% twitter 1460815112646897671 %}
{% twitter 1460815116040032260 %}
{% twitter 1460815118296653826 %}
{% twitter 1460815120712482816 %}
{% twitter 1460815123191406599 %}
{% twitter 1460815125418586115 %}
{% twitter 1460815127687704580 %}
{% twitter 1460815130061688834 %}
{% twitter 1460815363806015494 %}
{% twitter 1460816262553030659 %}
{% twitter 1460816500802170882 %}
Mastering Evolutionary Design
Tags: podcast, video, tinydevops, evolutionarydesign
Published: 2021-11-23 09:03:06

---
title: Mastering Evolutionary Design
published: true
date: 2021-11-16 00:00:00 UTC
tags: podcast,video,tinydevops,evolutionarydesign
canonical_url: https://jhall.io/archive/2021/11/16/mastering-evolutionary-design/
---

In this first part of a two-part interview, J. B. Rainsberger joins me to talk about evolutionary design, what it is, why it’s useful, and the barriers that keep many people from experiencing its benefits.

[Listen](https://share.transistor.fm/s/26103cea),[watch](https://youtu.be/YJq-2i0Y0Ew), or [read the transcript](https://share.transistor.fm/s/26103cea/transcript)  
[![](https://jhall.io/images/icon-podcast-512_hudba6b7b089bf867fab369dd7c8de54ef_15339_0x100_resize_q85_box_3.png)](https://share.transistor.fm/s/26103cea)  [![](https://jhall.io/images/icon-youtube-512_hu472b17e2e29474aa989a586bfaf501e7_5679_0x100_resize_q85_box_3.png)](https://youtu.be/YJq-2i0Y0Ews)  [![](https://jhall.io/images/icon-transcript-512_hu61121fb4158683053abb5347949e43dd_14667_0x100_resize_q85_box_3.png)](https://share.transistor.fm/s/26103cea/transcript)
* * *
_If you enjoyed this message, [subscribe](https://jhall.io/daily) to <u>The Daily Commit</u> to get future messages to your inbox._
Parse your escaped JSON with jq and fromjson
Tags: devops, aws
Published: 2021-11-15 23:49:15

Recently, I was looking at secrets manager in AWS and used the AWS CLI in order to read a secret in my terminal, such as: `aws secretsmanager get-secret-value --secret-id arn:aws:secretsmanager:us-west-2:[acct-id]:secret:testing/slack/slack_api_key-y8FHjv --profile [profile] --region us-west-2`

This gives the following response:

```json
{
    "ARN": "arn:aws:secretsmanager:us-west-2:[account-id]:secret:testing/slack/slack_api_key-y8FHjv",
    "Name": "testing/slack/slack_api_key",
    "VersionId": "a9a1fc45-80d5-45d0-8884-27d359b55ebd",
    "SecretString": "{\"SLACK_API_KEY\":\"itsasecret\"}",
    "VersionStages": [
        "AWSCURRENT"
    ],
    "CreatedDate": "2021-11-15T15:32:59.737000-08:00"
}
```

As you can see, the response gave me escaped JSON with `\` in front of every `"` character for the actual contents of the secret. Because I wanted to use this programmatically, I needed to parse the JSON further with `jq`. However, I wasn't sure how to actually do this with escaped characters. Thankfully, `jq` has built-in functionality for this! 

Within the [manual](https://stedolan.github.io/jq/manual/), search for `Convert to/from JSON`. This will give a small example on how to use it. Similarly, I'm going to show how to use it with secrets manager below. 

---

So, we have a JSON response right now that is parseable, so let's use `jq` to shrink this response some: `aws secretsmanager get-secret-value --secret-id arn:aws:secretsmanager:us-west-2:[account-id]:secret:testing/slack/slack_api_key-y8FHjv --profile [profile] --region us-west-2 | jq .SecretString`

This now gives us:

```json
"{\"SLACK_API_KEY\":\"itsasecret\"}"
```

Let's take it a step further and get rid of the escaped characters(for brevity's sake, I'm going to only show the `jq` pieces from here on): `| jq '.SecretString | fromjson'`

Here's my response:

```json
{
  "SLACK_API_KEY": "itsasecret"
}
```

Now this is parseable too! Let's take only the value: `| jq '.SecretString | fromjson | .SLACK_API_KEY'`

Here's our response:

```json
"itsasecret"
```

Finally, I want this to not have quotes around it, so I'll pass in the `-r` flag for `jq`: `| jq -r '.SecretString | fromjson | .SLACK_API_KEY'`

Voila! So how can we actually use this? Well, I could easily pass this in as an env var or variable into a script to utilize the value without hardcoding it into a file.
SAP TechEd 2021 - Free for register!
Published: 2021-11-15 23:41:05

> The **english version** follows after the portuguese version.

#Versão em Português

SAP TechEd 2021 começa amanhã, 16 de Novembro, totalmente gratuito e online:

https://reg.sapevents.sap.com/flow/sap/sapteched2021/portal/page/overview?

Para quem não sabe, esse evento é o maior da SAP em escala mundial e sempre apresenta as novidades da empresa para o novo ano, de modo oficial. São muitas palestras que atendem desde o desenvolvedor até o funcional da plataforma.

**E se você ainda não sabe o que é a SAP**, segue um excelente vídeo do Fabio Akita falando sobre a plataforma, que vai te motivar com certeza em querer aprender:

_Fabio Akita: Você não sabe nada de Enterprise. Conhecendo a SAP!_
https://www.youtube.com/watch?v=FXhcfJnlD2k&t=1s

#English Version

SAP TechEd 2021 starts tomorrow, November 16th, completely free and online:

https://reg.sapevents.sap.com/flow/sap/sapteched2021/portal/page/overview?

For those who doesn't know, this event is SAP largest on a world scale and always presents the company news for the new year, in an official way. There are many lectures that attend from the developer to the platform functional.

**And if you still don't know what SAP is**, here's an excellent video by Fabio Akita talking about the platform, which will definitely motivate you to want to learn:

_Fabio Akita: You don't know anything about Enterprise. Knowing SAP!_
https://www.youtube.com/watch?v=FXhcfJnlD2k&t=1s
Custom Bar to Display Glanceable Information
Tags: productivity
Published: 2021-11-15 22:51:56

For me it is really important to have a highly custom menu bar on all of the systems I work with. I want the bar to display exactly the information that I want at a glance and depending on the work I am doing. When I am on my virtual desktop for coding, for example, I want to see how my system is impacted by the code I write, if there are new issues on git, and even system utilization can be a relevant metric for some tasks.
My productivity increased greatly by using a custom menu bar and I highly recommend it to all of you that are living with their respective default os menu bar. For macOS I can really recommend https://github.com/FelixKratz/SketchyBar and on Linux https://github.com/polybar/polybar
An online escape room for dev teams
Published: 2021-11-15 22:46:57

Team building for remote teams is a tricky subject, especially for developer teams.  Often, software engineer team members aren't keen on traditional team-building activities such as, well, socialising in person over drinks, playing rounders or driving go karts.

If engineers are already spending their days in front of a screen, it might seem an interesting idea, but go with it for a second... what about an online escape room where the team has to hack, code and puzzle their way out?

I built [/dev/esc](https://www.dev-esc.com) to give dev teams a challenging, geeky way to do what they do in their day jobs.  Only without JIRA, requirements, specifications, meetings, managers.  It's unashamedly nerdy - my premise is that programmers will enjoy the reward of cracking a team game in about an hour, especially if the subject matter is code, data or APIs.

I'd love to hear from you in the comments.  Am I onto a good idea here?  What feedback do you have for me?

Have you been involved in team-building activities and seen successful ideas?  Or unsuccessful attempts?  I think developer teams are underserved by traditional off-site activities and would love to learn more from your experiences.
Let there be light
Tags: portfolio
Published: 2021-11-15 22:44:30

(Video of the thing at the bottom but the story adds great context without which you'd wonder why the hell I'd want to do something like this)

I live in Canada, my parents live in the U.A.E, and my grandma lives in India. We speak on Zoom once a week but it's a cheap substitute for real interaction. With this project I wanted to experiment with something in the IoT space that might allow them to interact with my physical space, if even just through some sort of electronic proxy.

Currently I have one Philips Hue bulb in the living room (where my desk is). Using the stock app by Philips I can manipulate it's state (on or off), colour, intensity, and even set up routines or alarms based on custom rules. I wanted to give them access to make changes to that bulbs' state. This wouldn't just be as easy as having them download the app and then connecting to my bulb because the light is connected to my home wifi via a bridge and isn't exposed to the external world (for so many good reasons!). My solution was to create a web portal that made POST requests to a custom node + express backend server that I had running. The server would redirect their requests to the Hue bulb. Hue has a pretty cool and easy to work with API that allows you to make GET requests to see the state of your bulb and PUT requests to change/alter the state as required. There were two issues here I wanted to solve for though.

a) The server had to be running 24/7. Due to the time difference, the request could potentially come in at any time and I needed to be listening for it. I tried putting it up on Heroku, but I'd have to get a paid dyno because when the server went to sleep, the requests would fail and the whole thing would fall apart.

b) The request still had to hit my lights on my home wifi somehow, and a dynamic IP address (the kind that changes every so often thanks to your ISP's) would be a problem.

I solved both by putting my server on a Raspberry Pi. I assigned it a static IP so that things would stay constant internally and the requests would get sent to the right place. The Pi then had to be exposed to the world. So I set up port-forwarding and started looking for solutions to the dynamic IP address issue. [Here's](https://www.noip.com/) what I ended up going with. They essentially solve this problem for me.

So now, my server is constantly running, even when my computer is off (plus it's free!).

For the web portal, I created a simple page that had three buttons. One that symbolized "let's talk!" that changed my light to green, one that said "I'm eating!" that turned my light red, and one that turned my light blue that meant "good night". My family or friends can now use this to send a simple message to indicate really simple emotions to me in a way that seems more real simply because it's changing my physical reality in a way that a video call just doesn't.

[![Everything Is AWESOME](https://img.youtube.com/vi/N49iwiBaZbQ/0.jpg)](https://www.youtube.com/watch?v=N49iwiBaZbQ "Let there be light!")
Day 10 of #100daysofcode: Dependency Tree Forest
Tags: 100daysofcode, react, python, beginners
Published: 2021-11-15 22:17:04

My week started with way more work than expected.

## Today
I started today off by finishing the JS Basics portion of FreeCodeCamp. These lessons seem to be very well structured, so I'm going to continue with this course until I complete it.

Today I started the process of linting my entire project with ESLint (AirBnB rules). While the linting itself was not a problem, I ran into some serious dependency tree errors and really got lost in the forest of it. Solving these errors was a really long winded process and it ate up a lot of the time I had set aside for working. In the future, I will need to be much more careful when setting dependencies; I didn't realize how convoluted it could get to fix.
 
## Tomorrow
As is usual, Tuesday is my busiest day of the week and this Tuesday will be no exception. My plans are to continue with FreeCodeCamp's tutorials and any spare time I get to work on my project will be a blessing.

## What I'm Struggling on
Dealing with dependencies in React. I need to learn more about the config files, especially `package.json` and the different ways I can go about solving dependency errors. If others hadn't run into the same issues as I, I really don't know how I would have solved my dependency problems today.

### Resources
[JS - FreeCodeCamp](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures)
Limitar o acesso ao serviço de metadados de instâncias AWS EC2
Tags: aws, security, ansible, linux
Published: 2021-11-15 22:06:52

## Motivação

Limitar o acesso aos metadados de uma instância faz parte de uma estratégia de segurança em camadas, que tem como objetivo impedir o acesso aos metadados por usuários/aplicações não autorizadas. 

Essa ação soma-se à utilização do [IMDSv2](https://dev.to/rafaelonline/resumo-sobre-a-versao-2-do-servico-de-metadados-de-instancia-aws-ec2-imdsv2-3agj).

## Limitando o acesso

Podemos utilizar regras de iptables para limitar o acesso, permitindo acesso a usuários ou grupos específicos.

O exemplo a seguir libera o acesso ao serviço de metadados da instância por todos os processos em execução na conta do usuário "app".

```
sudo iptables -I OUTPUT 1 --proto tcp --destination 169.254.169.254 --match owner --uid-owner app --jump ACCEPT
```
O exemplo a seguir impede o acesso ao serviço de metadados da instância por todos os processos, exceto os processos em execução na conta do usuário root.
```
sudo iptables --append OUTPUT --proto tcp --destination 169.254.169.254 --match owner ! --uid-owner root --jump REJECT
```
A ordem é fundamental, a regra de bloqueio deverá ser a última.

Obs.: O módulo owner do iptables só corresponderá à associação do grupo se o grupo for o grupo primário de um determinado usuário local. Outros grupos não são correspondidos.

**Criei uma role Ansile para ser utilizada na configuração das instancias ou no processo de criação de AMIs**

**Repositório:** [EC2 Metadata Service restrict access](https://github.com/rafaelonline/ansile-metadata-restrict)

A configuração o acesso ao metadata está sendo limitado somente ao usuário root e/ou aqueles usuários que realizam sudo

## Referências:

As configurações foram feitas seguindo as seguintes documentações:

[Documentação oficial da AWS](https://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html#instance-metadata-limiting-access "https://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html#instance-metadata-limiting-access")

[Apresentação sobre EC2 instance metadata](https://www.youtube.com/watch?v=2B5bhZzayjI "https://www.youtube.com/watch?v=2B5bhZzayjI")

[PDF da Apresentação sobre EC2 instance metadata](https://d1.awsstatic.com/events/reinvent/2019/Security_best_practices_for_the_Amazon_EC2_instance_metadata_service_SEC310.pdf "https://d1.awsstatic.com/events/reinvent/2019/Security_best_practices_for_the_Amazon_EC2_instance_metadata_service_SEC310.pdf")

[Documentação oficial do Ansible - Módulo Iptables](https://docs.ansible.com/ansible/2.9/modules/iptables_module.html "https://docs.ansible.com/ansible/2.9/modules/iptables_module.html")
Data Annotation and labellisation on t6 IoT framework
Tags: iot, datascience, saas, javascript
Published: 2021-11-15 21:35:14

Data classification and annotation is a new implemented module on the t6 Api. This new process provides annotation on any datapoints and/or range of datapoints with ease. Annotation on t6 is the process of classifying datapoints — with a customizable category.

The following 2 modes are available:

* Hand labeling for a strong and accurate supervision;
* Programmatic labeling for a weak supervision. This automatic process is using the t6 Rules, and so, it can combine multiple criteria before annotating to the correct category.

## Categories for labeling
Labellisation on t6 implement custom categories (tags). t6 Users can customize several categories on their account.

> e.g.: Say that you are measuring a speed (m/s) on a specific t6 Flow; on each datapoints added, a t6 rule can trigger an annotation (using categories “slow”, “fast”) and using the speed as criteria and that can label that datapoint.

This process using Rules is weak as it involve a programmatic pattern to identify the category.

An alternative process — hand-annotation can be used in parallel to associate categories to datapoints. This association can use a single datapoint or a range of dates.

## Why are we using labellisation on t6 ? A smooth startpoint to progress on the data-first approach.

Labellisation is the initial step to craft AI on t6 platform. As Data is centric on t6, the team expect this new feature to become a real north star and bring new opportunities to the users.

## Api documentation — further reading:
* [Technical Doc](https://doc.internetcollaboratif.info/#api-11._Classification)
* [Functionnal Wiki Doc](https://bit.ly/30ovN6M)
* [Additional documentation about Data-Acquisition Preprocessor & Data Fusion](https://github.com/mathcoll/t6/wiki/Data-Acquisition)
Barcode Generator
Tags: javascript, programming, security, github
Published: 2021-11-15 17:26:42

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


This repo is designed to convert any data, number and text into barcode. The barcode you produce is valid everywhere and when you read it with a barcode reader, it shows the data you entered. It is a very practical and fast way to encrypt or organize products.

Any data you convert to barcode will be valid everywhere. You can scan and save them with the barcode reader and organize the products in a shop.

In addition, you can use your passwords or data that you do not want anyone to see by converting them to barcodes.

It is not risky to make this conversion on the website. Because it is completely coded with vanilla JS. Since there is no database or registration network, you can use it with peace of mind. 

Also, your comments and interest are very important to me. I look forward to your feedback.

Take care and don't forget to fork :)

[Github](https://github.com/fkkarakurt/barcode-generator)
[Preview](https://fkkarakurt.github.io/barcode-generator/)
HTML FormData para JSON
Tags: javascript, typescript, json, util
Published: 2021-11-15 21:23:29

É possível converter os dados de um formulário HTML para JSON de forma muito prática.

1. Primeiro selecionamos nosso elemento form
1. Então criamos uma instância de FormData usando nosso form
1. Então podemos usando Object.fromEntries usando o método entries da instância FormData

```ts
const form = document.querySelector('form')
const data = new FormData(form)
const values = Object.fromEntries(data.entries())
console.log(values)
```

Desta forma temos todos elementos do formulário mapeados num objeto JSON, como esperado.

Espero ter ajudado, valeeeeu
[]s