teleren/devto huggingface dataset:
If we're talking about learning... I'm Batman!
Tags: learning, productivity, beginners, programming
Published: 2021-09-20 01:35:24

2021-09-18 was Batman's Day, and should you have to deal with a nasty bug or with a clown in make up... you have to be prepared!

My question for you today is:

**How do you prepare yourself? How do you learn?**

---

*Little Disclaimer*: 

This is what works for me. It maybe won't work for you, and that's ok.

Maybe you're the learning Superman or Wonderwoman...

---

When I started I did the whole shebang of watching while copying everything... as is... with the bare minimum thought.

I did ended up learning, but I could go only as far as whatever I was watching, and as we know, that's usually not enough.

As I said last week [here](https://dev.to/noriller/if-you-have-this-three-things-you-can-be-a-programmer-too-28b8), we programmers thrive on problems. We need a problem to be able to find some solution... and to find a solution? We need to learn first.

## And then comes your inner Batman!

While I could speak all about how Batman trains everyday. That's just the minimum of what you should be doing. 

And if you're facing problems, then you're probably been having enough training.

But that's not enough! Not in the least... what you need is...

### The utility belt!

If you're a Batman of learning, then you have your own utility belt. And what's so great about it? 

You don't need to know by heart how to reverse a binary tree, you just need to know how/where to start!

### Filling your belt

Sometimes you have a nasty bug, how did you solve it?

You've seen a video where they did something cool? What did they do?

That's when you fill your belt! And I mean quite literally... 

Although I don't recommend you to keep everything in memory, you can do it... but I would really recommend you using something like [Notion](http://notion.so) to keep your notes organized.

Keep a brief summary of what was done, where you've seen it, links, tags... anything to help you later find by one word or phrase.

And when you need it... you just just save Gotham using the tools you've gathered.

## The Joker of your Batman Learning

But be careful of one thing: Tutorial Hell! 

(That's when you keep on learning without ever using... and that's bad.)

You need to never stop learning, but you also need practice. Too much of one without the other and Gotham will be in danger.

---

[![Buy me a Coffee Banner](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zwvjemxwcoh1a0i0ieca.png)](https://buymeacoffee.com/noriller)

Cover Photo by [Sajjad Ahmadi](https://unsplash.com/@sajjadahmadi?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/@sajjadahmadi?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)
Programming languages are overrated!
Tags: programming, computerscience, codenewbie
Published: 2021-09-20 01:31:12

Edit: I posted a video about this topic [here](https://youtu.be/x0pDwekDcWM) so you can go watch that if you do not like reading :)

“Most People” go on to learn  to use programming languages and frameworks rather than learning the core concepts of how a particular platform (say the web) works. “They” do not go on to learn how code gets executed in a programming language they rather pay more attention to learn how to code.

I’ll support my opinion with an analogy to convince you - if you teach a person how to catch fish using a spear, the person would catch the fish and use the fish for nutrition but if you teach a person how exactly a spear works, or in other words, teach them the craft to use any weapon, the person would be able to feed himself for his whole life; even if the fish disappear, the person would be able to hunt other animals for food. 

I'll also support my analogy with mathematics, as it is the only art that never lies, suppose a person takes 5 years' hard work to master the weapon craft and catches no fish what so ever in that time; on the contrary, a person who just knows how to "catch" fish would catch maybe 5 fish a day so the person would in total catch 9125 fish(5*365*5) in 5 years. 

When the person who is a master of the craft would start to catch fish, I am pretty sure that he would be able to catch 1000 fish in a day, so as basic math says, the person would be able to catch 10000 fish(10*1000) in 10 days. This proves that a person who masters the core craft would earn more in 10 days than the normal person earns in 5 years. Also, that talent stays for ever, so you can catch a 1000 fish or chicken or crabs for the rest of your life everyday.

Such is programming you teach a person how to write a timer in JavaScript, he will be able to sell that timer code for some money once; but if you teach the person how does programming and problem solving work at its core, the person will be able to feed himself for life. What I wanted to express via this short article is that - don’t go after learning more and more “programming languages”, go after learning how a particular niche works IN DEPTH.

If you know the concepts well you can easily implement the system design easily in code. As very less people learn these concepts, it is an opportunity for you to become one of the top programmers in a niche.
Bomberland: a competitive sandbox for practising machine learning
Tags: machinelearning, programming, datascience
Published: 2021-09-20 00:48:51

## Welcome to Bomberland 

[Bomberland](https://www.gocoder.one/bomberland?s=devto-blog) is a new 1v1 AI competition developed by [Coder One](https://www.gocoder.one?s=devto-blog). It features a multi-agent adversarial environment inspired by the classic console game, Bomberman. 

Your task is to program an intelligent agent navigating a 2D grid world. Your agent controls a team of units collecting powerups and placing explosives, with the ultimate goal of taking your opponent down.

Bomberland is a challenging problem for out-of-the-box machine learning algorithms. Be prepared to manage real-time decision making, planning, game theory, and both adversarial and cooperative play.

![Bomberland preview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ybvj1iq76d3vpf87558.gif "In Bomberland, each agent controls several units with the ultimate goal of taking down the opposing team.")

## An open Bomberland arena

Bomberland will feature an ongoing, always-on arena with an active leaderboard. Participants can get direct feedback on their strategies in 1v1 matches against other players.

From time to time, we'll hold tournaments featuring live streams and prizes. Check out our previous [AI Sports Challenge streams](https://twitch.tv/CoderOneHQ) for a sneak peek of what's ahead.

![AI Sports Challenge Live Stream](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yum6w3j7mjotdaudjnux.jpg "AI Sports Challenge 2021 live stream on Twitch")

## Why Bomberland?

We're creating Bomberland as a place for the community to explore and experiment with the latest cutting edge technologies from tree search algorithms to deep reinforcement learning.

You'll want to check it out if:

- You're looking for a challenging hands-on ML project
- You're looking for a place to try out new libraries, frameworks, or research papers
- You've been fascinated by the work of companies like DeepMind and OpenAI

## The future

We envision Bomberland to evolve over time with new metas and challenges.

Bomberland is part of our larger goal at Coder One to make cutting-edge ML accessible. We're focused on building out the right tools and infrastructure to support the community in progressively pushing the boundaries of what's possible.

## Join us for Bomberland!

The Bomberland competition is now live 🎉

We have starter kits in Python and TypeScript to help you get started (and encourage any community contributions to the [starter kit repo](https://github.com/CoderOneHQ/bomberland)).

- [Join Bomberland](https://www.gocoder.one/bomberlands=devto-blog)  
- [Join Discord](https://discord.gg/DXpTKWQSpP)
Another Way of Accessing Host Resources in Minikube
Tags: minikube
Published: 2021-09-20 20:57:03

---
title: Another Way of Accessing Host Resources in Minikube
published: true
date: 2021-09-20 00:00:00 UTC
tags: minikube
canonical_url: https://hugomartins.io/essays/2021/09/another-way-of-accessing-host-resources-in-minikube/
---

A few years ago, I wrote an essay about this topic titled “[How to Access Host Resources in Minikube Pods?](https://hugomartins.io/essays/2019/12/access-host-resources-minikube/)”. In it, I have described how to access host resources in Minikube. Something I thought should be easy but, at the time, it really wasn’t.

Back then, I’ve described an approach, based on a Github [issue](https://github.com/kubernetes/minikube/issues/2735), relying on listing kernel routing tables, that allowed us to fetch the IP of the host machine inside Minikube. I described why this worked, going so far as sharing a few snippets of code from the Kubernetes source code.

While this has served me well for the last few years, I’ve recently discovered that this approach is a bit outdated - the documentation on that essay doesn’t even exist anymore. I wrote this when Minikube was v1.6.2 and it is now v1.23.1…a lot has happened. After searching a bit more, I’ve understood that Minikube _now_ has a proper solution for this, documented in [Host access](https://minikube.sigs.k8s.io/docs/handbook/host-access/).

This approach applies for Minikube bigger than v1.10 and it essentially relies on using `host.minikube.internal` in order to connect to the host Minikube is running on. According to the documentation, “minikube v1.10 adds a hostname entry host.minikube.internal to /etc/hosts.” I’ve tested this and it seems to actually work, while being much easier and reliable.

As with the initial approach, the same caveat applies:

> The service running on your host must either be bound to all IP’s (0.0.0.0) and interfaces, or to the IP and interface your VM is bridged against. If the service is bound only to localhost (127.0.0.1), this will not work.
{emayili} R Markdown Parameters
Published: 2021-09-25 11:09:07

---
title: {emayili} R Markdown Parameters
published: true
date: 2021-09-20 00:00:00 UTC
tags: 
canonical_url: https://datawookie.dev/blog/2021/09/emayili-r-markdown-parameters/
---

![{emayili} R Markdown Parameters](https://datawookie.dev/blog/2021/09/emayili-r-markdown-parameters/featured.jpg)

I don’t frequently use parameters in R Markdown documents. So the initial implementation of `render()` in `{emayili}` did not cater for them. A small tweak makes it possible though.

You can install the update from GitHub as follows.

```
remotes::install_github("datawookie/emayili", ref = "v0.5.2")
```

Then load the package.

```
library(emayili)

# A couple of options to display message body.
#
options(
  envelope.details = TRUE,
  envelope.invisible = FALSE
)
```

Create an empty message object.

```
msg <- envelope()
```

Suppose you have the following simple R Markdown document, `params.Rmd`, which you want to render into the body of an email.

```
---
title: "Message with Parameter"
output: html_document
params:
  value: 13
---

The value is `r params$value`.
```

We’ll start by rendering it using the default parameter value.

```
msg %>%
  subject("Default parameter value") %>%
  render("params.Rmd", include_css = FALSE)

Date: Mon, 20 Sep 2021 08:20:59 GMT
Subject: Default parameter value
X-Mailer: {emayili}-0.5.2
MIME-Version: 1.0
Content-Type: multipart/related; boundary="9554b959"

--9554b959
Content-Type: text/html; charset=utf-8
Content-Disposition: inline

<html>
<head></head>
<body>
<div class="container-fluid main-container">
<div id="header">
<h1 class="title toc-ignore">Message with Parameter</h1>
</div>
<p>The value is 13.</p>
</div>
</body>
</html>

--9554b959--
```

As expected, the default value for the parameter comes through.

Now let’s test a different value.

```
msg %>%
  subject("Better parameter value") %>%
  render("params.Rmd", params = list(value = 42), include_css = FALSE)

Date: Mon, 20 Sep 2021 08:20:59 GMT
Subject: Better parameter value
X-Mailer: {emayili}-0.5.2
MIME-Version: 1.0
Content-Type: multipart/related; boundary="a099637d"

--a099637d
Content-Type: text/html; charset=utf-8
Content-Disposition: inline

<html>
<head></head>
<body>
<div class="container-fluid main-container">
<div id="header">
<h1 class="title toc-ignore">Message with Parameter</h1>
</div>
<p>The value is 42.</p>
</div>
</body>
</html>

--a099637d--
```

🚀 Success: the specified parameter value now appears. If you use parameters in your R Makrkdown documents, then you can be confident that these will now work in `{emayili}` too.
Version control all the things!
Tags: git, versioncontrol, softwaredelivery
Published: 2021-09-22 08:26:31

---
title: Version control all the things!
published: true
date: 2021-09-20 00:00:00 UTC
tags: git,versioncontrol,softwaredelivery
canonical_url: https://jhall.io/archive/2021/09/20/version-control-all-the-things/
---

_ **A quick reminder:** September 23 at 17:00 CET (Europe) / 8:00 AM PT (USA), I’ll be doing a free, live video Q&A session answering your DevOps career questions. Space is limited! [Register up now](https://www.crowdcast.io/e/tiny-devops-qa-focus-on/register)!_

* * *
I hope you're keeping all of your source code in version control.

If you’re not… seriously… why not? It’s 2021 already.

Okay, seriously, if you’re not keeping your source code in version control [/contact](I want to hear from you). Really. Tell me why.

But version control can be used for so much more than source code.

According to [_Accelerate_](https://amzn.to/3klbvCq):

> What was most interesting was that keeping system and application configuration in version control was more highly correlated with software delivery performance than keeping application code in version control.

Now isn’t that interesting?

To what extent are you keeping your system and application configuration in version control? What’s preventing you from moving in that direction?

* * *
_If you enjoyed this message, [subscribe](https://jhall.io/daily) to <u>The Daily Commit</u> to get future messages to your inbox._
Rubberducking
Tags: beginners, codenewbie, decodingcoding
Published: 2021-09-19 23:46:22

---
title: Rubberducking
published: true
description: In asking a question, your answer is already half answered
tags: beginners, codenewbie, decodingcoding
cover_image: https://images.unsplash.com/photo-1525538182201-02cd1909effb?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=2600&q=80
---

True story:

When it happens to you not just once but twice, thrice, it’s fair to say there’s some truth to the title statement. That in asking a question, your answer is already half answered. This totally happened to me on multiple occasions on the past few weeks when I hit a wall with my code. Because I hate troubling others and also because I feel personally responsible to try to solve things on my own first before seeking help, I often don’t ask for help until I’d spent almost a day banging my head against a wall. That’s my limit when it comes to debugging. 

### How I rubberduck
What would follow would be me taking the time to upload my code into Github, Codepen or Codesandbox, and taking some time to type out my question, making sure that I give the context, frame it properly, phrase the question with the right technical terms. And then posting it to various maker/coder channels, or directly to helpful folks who offered a hand in the past. Then I wait, for people to reply. 

### But I end up solving my own issue
Meantime, I continue trying to resolve it. One or two friends might reply, and I try to explain it a bit more. And then what happens next goes right into uncanny valley. Very often, before they can even understand the problem and resolve it, I solve it. On my own. A weird character nested in the code, or a some obscure tutorial or Stack Overflow answer that doesn’t seem related at first glance. 

It’s embarrassing, to say the least.

It’s almost lame, like all the *hoo-haa* to ask the question, only to answer it yourself. I’m sure my friends feel cheated. But I can’t help myself. 

### Skip the last step of asking a friend
So perhaps the next time I will do the same thing, but maybe skip the last step of actually posting it out to friends. And then see what happens. Whether I solve it myself or not. Because I believe the break in the process—when I step out of problem-solving, trench-digging mode to an overview mode of framing and phrasing my question—I break the momentum that caused the problem in the first place, and get perspective. That’s usually what we need to squash a bug in the code. 

A break. And perspective. 

That’s why: in asking the question, you already half-answered it. Or the answer is already right at the tip of your tongue, hovering under your nose all the while. All that was needed, was a question. 

Ask, and you shall find.
 
---

Follow my daily writings on [Lifelog](https://golifelog.com/goals/30), where I write about learning to code, goals, productivity, indie hacking and tech for good.
Who wants to be a millionarie? The python game
Tags: python
Published: 2021-09-19 21:46:41

This is a funny python terminal game that surely is challenging enough for you. 

There are 15 questions you can answer and as you go, yo can earn money. The questions in the game range from subjects like maths, history to overall knowledge and more. Can you win the final price and become a millionarie? 

The language of the game is spanish, so I hope y'all can play it without problems. The next week I´ll translate the game to english so that everybody be able to play.

Read the instructions and start the game!

Thank you.

Link to the game: https://github.com/Daniel-Ortiz1210/who_wants_to_be_a_millionarie.py
ExpressWebJs 3.2 Released
Tags: expresswebjs, node, express, typescript
Published: 2021-09-19 22:57:35

The ExpressWebJs team have released 3.2 with auto endpoint documentation, and improvement in service injection.

## Auto Endpoint Documentation:
Reference documentation for API endpoints consists of five general sections: resource descriptions, endpoints and methods, parameters, sample requests, and sample responses and schemas. All these are auto documented for you while you code, to allow you focus on building your amazing application.

To get started, install ExpressWebJs by running the command below
```js
 npx expresswebcli new MyApplication --ts
```
and run 'npm install' to install the node packages 📦. Then create few endpoints and visit your base url in a browser followed by /documentationView for HTML view or /documentationJson for JSON. 

Example: http://127.0.0.1:5000/documentationView or http://127.0.0.1:5000/documentationJson.

## Service Injection
You can now inject services irrespective of the order in the application context.

In our Application Service Provider register method, we've registered some services.

```js

  public register() {
    this.app.singleton("UserService", UserService, "class");
    this.app.singleton("CompanyService", CompanyService, "class");
    this.app.singleton("FolderService", FolderService, "class");
  }

```

Now we can inject UserService into FolderService like so:

```js

import FolderRepository from "App/Repository/FolderRepository";
import BaseService from "../BaseService";
import IFolderService from "./IFolderService";
import IUserService from "./IUserService";

class FolderService extends BaseService implements
  protected userService:IUserService

  constructor(UserService:IUserService){
    this.userService = UserService
  }

 IFolderService {
  async getSubFolders(user_id: string): Promise<object> {
    return await new Promise(async (resolve, reject) => {
      try {
        let data = await new userService().findById(user_id);
        ...
      } catch (error: any) {
        ...
      }
    });
  }
}

```

You can join ExpressWebJs community on [Discord](https://discord.com/invite/vrPGZCgJuj) and don't forget to give us a star on github
[ExpressWebJs Javascript](https://github.com/Alexigbokwe/ExpressWebJs) and [ExpressWebJs Typescript](https://github.com/Alexigbokwe/expresswebTS-Version)
INSEGURANÇA 
Published: 2021-09-19 22:47:26

PELO AMOR DE DEUS SE FOR  INSEGURANÇA,  TIRA DO TEU CORAÇÃO.. COMO DIZ AQUELE PAGODE DO PIXOTE ...

Aos 28 anos, ainda sem saber o que eu quero ser quando crescer.
Trabalhando na a área administrativa da saúde há 9 anos e percebi que não me encaixava mais naquele ambiente, ao ver post de um colega, falava sobre incentivo de mulheres ingressar na área de tecnologia, achei interessante.
Mais quando se fala de estudar tecnologia dificilmente uma mulher se sente capaz depende de como foi a vida escolar, não somos incentivadas na escola a estudar matemática e quando fala tecnologia remete-me matemática e tenho MEDO de não conseguir, decidi pesquisar li que é uma área em expansão que precisa de profissionais,
Fiz a inscrição em diversos bootcamp que não precisava de conhecimento prévio, e não passei em nenhum fiz um curso na plataforma TIM TEC , cursos básicos de desenvolvedor web.
Quando digitei o meu primeiro “Olá mundo!” foi mágico! rs 
Fiz um curso do via rápida São Paulo vi que a comunidade é bem aberta para ajudar isso encantou-me.
Ano de 2021 decidi iniciar os estudos em ADS porque determinei que esse é o novo passo na minha vida, entendi que a faculdade só pincela as linguagens, quem quer aprender desenvolver tem que buscar material fora.
E agora no segundo semestre estou buscando estágio, estou com tanto medo e insegura porque os estágios pedem tanta qualificação e não me sinto capaz.
Quero deixar esse registo para um futuro e ver que mudou as coisas.
E que essa insegurança vá embora !!!!!!!!!!!!!