teleren/devto huggingface dataset:
Tales from the Scrum Dungeon: #@$% - the Certification With a Swear In It
Tags: scrumdungeon
Published: 2021-02-09 17:16:36

---
title: Tales from the Scrum Dungeon: #@$% - the Certification With a Swear In It
published: true
description: Somewhere, someone out there _may_ get a professional certification record with a swear on it.  All because of a software mistake.
tags: scrumdungeon
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/4anomovb17js0imbk0pv.JPG
---
Somewhere, someone out there _may_ get a professional certification record with a swear on it.  And not a "nice" swear.  One of the bad ones.

I can assure you this wasn't intentional.  It's more a consequence of the system, than an attempt at humour, for the sake of making something funny to share with coworkers, or post on the internet for imaginary internet points.

The system in question was used to generate printed certificates.  The requirements to the system weren't entirely clear, but I was trying to do the best I could with what I had.  What I had was an integer number that needed to be converted to something that looked loosely like one of the supporting documents we had.  And the certification id wasn't an integer - it was a mix of alphanumeric characters.  Because the requirements weren't particularly clear, I ended up doing something stupid: converting that integer into a base-36 number.  In the English alphabet, there's 26 letters, and there's 10 digits (0 through 9).  So imagine counting like so: `1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H...` and so on.  Like hexadecimal on steroids.

Technically, there's nothing wrong with this approach.  It's able to turn any positive integer number into a string of alphanumeric characters.  And it did work.  It just didn't occur to me until after - well after - that eventually it'd start spelling words.  First, a simple words - like "AM" or "AT".  But eventually it would spell longer words.  Four letter words.  Including swear words.

There's two important lessons here:

1. If you are unsure about something, get clarification, get it in writing, and get it as part of the specs for the project.  As a developer, I failed on my responsibility to get clarification on that aspect of the project.
2. Sanitize your outputs.  Any time you are generating a series of alphanumeric codes - especially product codes and serial numbers, ensure there's no room for ambiguity, or for crude output.  The easiest way to do this is eliminate any vowels and ambiguous letters from your output.  For example, depending on the font being used, it may be very difficult to see a difference between a capital O and a zero.  Or between a number 1 and a lower-case letter L.

Take it from me: you don't want dirty output.
Tales from the Scrum Dungeon: The User Who Could Consistently Break the App
Tags: scrumdungeon
Published: 2021-02-09 17:16:32

---
title: Tales from the Scrum Dungeon: The User Who Could Consistently Break the App
published: true
description: When a user is able to break your app, and break it consistently, it's definitely broken.
tags: scrumdungeon 
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/2hklow7ldfy0ig3bdzvl.JPG
---

"She just did it again!"
"What?!  How'd she do it?"
"I have no idea!"

This is roughly how a conversation went between a team lead and one of the other developers.  They were on a screen share/call with a client who was somehow breaking their software.  Not a bad break, but broken nonetheless.  When things don't behave the way that the developer or the client expects, it's broken.

The application in question was an older Windows Form application, written in .Net.  The user was entering data on one of the main forms, and one of the drop down list boxes wasn't getting populated as it should have.

"Let me try that!" said the team lead.  He took control of the client's machine, and was able click on the drop down list box, and it populated properly, as everyone would have expected.  The client then took the controls and broke it again.  It failed to populate its drop down options.

There had to be some explanation.  At least in .Net, drop down list boxes don't have vindictive behaviour depending on what user is using them.  Or clicking on them.  Or alt-tabbing into them.

That was the key.

The user wasn't clicking into the drop down list box.  She was hitting the tab key to switch between various inputs on the form.  It took a few minutes to sort it out, but was eventually discovered.  The drop down list box control was listening to the on_click event.  It would only respond when it was clicked on.  If the control was activated in any other way, like being entered into via tabbing from another control, the on_click event handler
wouldn't fire.

Moral of the story:
1. It's broken if it doesn't behave like the people using it think it should behave.
2. Listen to the right event.
Tales from the Scrum Dungeon
Tags: scrumdungeon
Published: 2021-02-09 17:16:25

---
title: Tales from the Scrum Dungeon
published: true
description: A fool learns from his own mistakes.  A wise man learns from everyone else's.  Learn from a few stories I've acquired over the years.
tags: scrumdungeon
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/btvjqrvchnmajmrii2e4.JPG
---

What is the scrum dungeon, dare you ask?  It's a dark place.  A place without windows, where sunlight never shines, where laughter is never heard, and where everything is a shade of gray.  Literally.

At a previous job, the building layout was a bit... odd.  After some renovations, a room that was tucked back into one of corners had no windows, grey carpet, and a heavy steel door.  It had no ethernet jack in the wall, and poor Wi-Fi coverage.  Because of its odd location and limited utility, no one wanted to use it as an office.  It remained mostly unused, except for the rare scrum meeting when no other rooms were available.  Because of this, it got nicknamed the "scrum dungeon".

In my youth, there was a Saturday morning cartoon called "Tales from the Crypt Keeper".  A haggardly looking character who was the maintainer of a crypt would tell a story of woe or danger to serve as a warning to children.  I may not be that ancient, but I've seen my fair share of software development woes that perhaps it is time for me to share them.  Not to ridicule those involved, but to serve as  warning to others.  Perhaps my tales can help prevent someone else avoid such dangers and suffer a kinder fate.

These are my tails from the Scrum Dungeon.

[The Certification With a Swear In It](https://dev.to/joelbennett/tales-from-the-scrum-dungeon-the-certification-with-a-swear-in-it-1lk4)

[The User Who Could Consistently Break the App](https://dev.to/joelbennett/tales-from-the-scrum-dungeon-the-user-who-could-consistently-break-the-app-2fha)

[The Safety Dialog](https://dev.to/joelbennett/tales-from-the-scrum-dungeon-the-safety-dialog-53en)

[Coyotes](https://dev.to/joelbennett/tales-from-the-scrum-dungeon-coyotes-1gaj)

[Max Lines](https://dev.to/joelbennett/tales-from-the-scrum-dungeon-max-lines-3dbp)

[Leprosy As A Service](https://dev.to/joelbennett/tales-from-the-scrum-dungeon-leprosy-as-a-service-1pgf)

[Reset your @*@&ing password](https://dev.to/joelbennett/tales-from-the-scrum-dungeon-reset-your-ing-password-iaa)

[High Precision Rock Throwing](https://dev.to/joelbennett/tales-from-the-scrum-dungeon-high-precision-rock-throwing-3o9g)

[Cars and Deer](https://dev.to/joelbennett/tales-from-the-scrum-dungeon-cars-and-deer-d9b)

[The Dangerous Mr. O'Conner](https://dev.to/joelbennett/the-dangerous-mr-o-conner-5e9d)

[The Really Expensive Whiteboard](https://dev.to/joelbennett/the-really-expensive-whiteboard-3nh7)

(More to come soon...)

![Welcome to the Scrum Dungeon](https://dev-to-uploads.s3.amazonaws.com/i/o4itpo1304662q2blo23.png)
Importando módulos
Tags: powershell, tutorial, beginners
Published: 2021-02-09 17:12:50

Para começar, é importante entendermos o que são módulos. 
Para facilitar, de uma maneira bem simplificada, módulos são um conjunto de funções, normalmente "temáticos", como exemplo temos o modulo de gerenciamento do Azure, com diversas funções relacionados ao gerenciamento de recursos nele. 

Para saber mais sobre módulos, recomendo verificar a [documentação](https://docs.microsoft.com/pt-br/powershell/module/microsoft.powershell.core/about/about_modules?view=powershell-7.1) oficial. 

A ideia desse artigo, é mostrar uma forma de automatizarmos o processo de importação e/ou instalação de um, por meio de uma função que vai validar se ele já está disponível para importar ou se precisa instalar antes disso. 

Para sabermos se ele já está disponível, vamos consultar o nome dele na lista de módulos disponíveis no equipamento. Caso ele esteja, fazemos apenas o processo de importação, mas caso não, primeiro instalamos e depois importamos. 

{% gist https://gist.github.com/IGDEXE/d4982a2775101cc99c96d2c0cb320bf2 %}
Use Rails `cycle` to avoid `i % 2 == 0` in your view loops
Tags: ruby, rails, webdev
Published: 2021-02-10 15:11:00

---
title: Use Rails `cycle` to avoid `i % 2 == 0` in your view loops
published: true
date: 2021-02-09 13:00:00 UTC
tags: ruby,rails,webdev
canonical_url: https://boringrails.com/tips/rails-cycle-for-view-loops
---

Sometimes you need to keep track of how many times you’ve looped when rending some views, for instance to alternate background colors to create a “striped” table.

```erb
<!-- @foods = ["apple", "orange", "banana"] -->

<% @foods.each do |food| %>
  <tr class="???">
    <td><%= food %></td>
  </tr>
<% end %>
```

You might try using `:odd` or `:even` CSS child selectors or switching to `each_with_index`.

```erb
<% @foods.each_with_index do |food, i| %>
  <tr class="<%= i % 2 == 0 ? 'bg-gray-200' : 'bg-gray-100' %>">
    <td><%= food %></td>
  </tr>
<% end %>
```

You could even refactor a bit to use `i.odd?` or `i.even?`.

```erb
<% @foods.each_with_index do |food, i| %>
  <tr class="<%= i.even? ? 'bg-gray-200' : 'bg-gray-100' %>">
    <td><%= food %></td>
  </tr>
<% end %>
```

Rails offers a different helper that comes in handy for these situations: `cycle`.

## Usage

The `cycle` helper takes an array of arguments and loops through them each time it is called.

We could replace the above code with:

```erb
<% @foods.each_with_index do |food, i| %>
  <tr class="<%= cycle('bg-gray-200', 'bg-gray-100') %>">
    <td><%= food %></td>
  </tr>
<% end %>
```

The real benefits start to appear if you need more than two options.

```erb
<% @foods.each_with_index do |food, i| %>
  <tr class="<%= cycle('bg-red-100', 'bg-orange-100', 'bg-yellow-100') %>">
    <td><%= food %></td>
  </tr>
<% end %>
```

If you need to manually reset or share a `cycle` between code, you can pass a `name:` key as an option.

```ruby
cycle("red", "white", "blue", name: "colors")
cycle("sm", "md", "lg", "xl", name: "sizes")

reset_cycle("colors")
reset_cycle("sizes")
```

You can also use any object that responds to `to_s` in the cycle.

```erb
<% @items.each do |item| %>
  <div class="rotate-<%= cycle(0, 45, 90, 135, 180) %>">
    <%= item %>
  </div>
<% end %>
```

## Additional Resources

Rails API Docs: [TextHelper#cycle](https://edgeapi.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-cycle)

Tailwind Docs: [Even/odd variants](https://tailwindcss.com/docs/hover-focus-and-other-states#even-child)

* * *
[![](https://boringrails.com/images/twitter-banner.png)](https://twitter.com/_swanson)
How to start mobile app development with React Native Part 1
Tags: mobile, reactnative, hybridapp, appdevelopment
Published: 2021-02-09 17:02:31

##Intro
If you are new in mobile app development and want to  make carrier in this field then react native is the best for you 

#Lets take a new path
For learning something new starts with zero. First you have to learn Javascript from basic to intermediate level.Here is the best resource you should follow from scratch.

#### W3schools
w3school is the king maker in web development field. You should go through each and every section of javascript at least twice.

#### freecodecamp
in this you should go through javascript section and solve maximum problem as you can 

#### React 
Learn react from react official documentation page and also w3schools react section you have to grasp deeper knowledge about props, state and lifecycle method

#### Udemy
If you want learn through an instructor then i suggest udemy is the best platform for this section.
i learned react with stephen  grider he is the best teacher in my point of view for react and javascript.

## Start Journey 
If you want to learn new technology the best method is to create projects as you can. This is the part where you have to stay motivated and also keep away from negative thoughts of your mind
Sometimes you feel you can't but trust me you can !
You probably heard sometimes practice makes perfect.
Headings in Markdown
Tags: markdown, html, tutorial
Published: 2021-02-09 17:00:33

Headings help to organize your content into an easy to read format. Heading shows the importance of your content specifying headings on a webpage. HTML has different heading tags to tell a web browser how to render content.

Markdown also has different levels of headings to structure your documents. Start lines with a `#` to create headings followed by word or phrase.

### Always keep an empty single space between `#` and your content(word or phrase)

# Level 1 Heading with Markdown

Above is an example for level 1 heading written with `# Level 1 Heading` which will be rendered by the browser as `<h1>Level 1 Heading</h1>`.

```markdown
# Level 1 Heading

<h1>Level 1 Heading</h1>
```

Multiple `##` in a row denotes smaller heading sizes.

## Level 2 Heading with Markdown

Above is an example for level 2 heading written with `## Level 2 Heading` which will be rendered by the browser as `<h2>Level 2 Heading</h2>`.

```markdown
## Level 2 Heading

<h2>Level 2 Heading</h2>
```

In addition to heading helps improving accessibility for people who can’t easily read screens and also improves general structure and readability.

# Heading for visually impaired readers

Visually impaired readers use a screen reader to read the text on a screen aloud for them. Headings rendered as HTML heading tags. So by reading or listening to the headings in content, visually impaired readers can get the gist of an article and decide if they’d like to continue reading it.

Screen readers also allow you to navigate through articles by traversing to the headings. So when your content has good descriptive headings, the readability and navigation for visually impaired readers are improved.

## This is a level 2 heading improving SEO

The heading also improves SEO for your content as the search engine examines & indexes search results based on keywords usage in headings.

| Markdown                 | HTML                       |
| ------------------------ | -------------------------- |
| `# Heading level 1`      | `<h1>Heading level 1</h1>` |
| `## Heading level 2`     | `<h2>Heading level 2</h2>` |
| `### Heading level 3`    | `<h3>Heading level 3</h3>` |
| `#### Heading level 4`   | `<h4>Heading level 4</h4>` |
| `##### Heading level 5`  | `<h5>Heading level 5</h5>` |
| `###### Heading level 6` | `<h6>Heading level 6</h6>` |

You can use **one** `#` all the way up to `######` **six** for different heading levels.

Six different levels of heading styles supported by Markdown, improving accessibility & SEO.

Read the complete post on our site [Headings in Markdown](https://meshworld.in/headings-in-markdown/)

Read others post on our site [MeshWorld](https://meshworld.in)

Happy 😄 coding

With ❤️ from 🇮🇳
Pago de impuestos en Linea
Published: 2021-02-09 16:54:07

Pago electrónico obligatorio de <a href="https://contribuyentealdia.com.mx/sat/alta-sat/">impuestos</a> y presentación de declaraciones fiscales
La presentación electrónica obligatoria de declaraciones y pagos utiliza el Servicio de Ingresos en Línea. Esto forma parte de la estrategia de la Agencia Tributaria para establecer el uso de los canales electrónicos como la forma normal de realizar los trámites fiscales.

Es un servicio de Internet que le ofrece una forma rápida y segura de:

-Pagar las obligaciones fiscales
-Presentar declaraciones de impuestos
-Acceder a sus datos fiscales
-Solicitar reembolsos.

El servicio en linea está disponible 24 horas al día, siete días a la semana, 365 días al año. Puede beneficiarse de una prórroga de los plazos existentes para el pago de impuestos y la presentación de declaraciones si paga y presenta los impuestos mediante el sistema en linea.

La gran mayoría de los clientes empresariales de están legalmente obligados a presentar y pagar electrónicamente.
[BLOG] - Diferença entre var, let e const no Javascript?
Tags: javascript
Published: 2021-02-09 16:38:03

Uma das maiores questões da atualidade quando falamos sobre variáveis no Javascript é sobre a diferença entre declarar variáveis com var, let ou const. Vou tentar ajudar explicando quais requisitos eu uso para decidir o que usar da forma mais correta possível.

[Continuar...](https://blog.erikfigueiredo.com.br/diferenca-entre-var-let-e-const-no-javascript/)
Using Blockonomics Payment Button API
Tags: beginners, php, laravel, tutorial
Published: 2021-02-09 16:22:19

The Links to relevant resources:

* Create your Blockonomics Account- [here](https://www.blockonomics.co/merchants?ref=hPga3rGcrDj45w1C2jzkDMUPGBkCRYxNE6)
* The Blog Post - [here](https://dev.to/aj54/blockonomics-payment-button-api-k3p)
* The Github Repository - [here](https://github.com/blockonomics/Blockonomics_Payment_Button_Demo)
* Creating Your Payment Button - [here](https://www.youtube.com/watch?v=1sE2r5tDkNY)
* Setup local server for testing - [here](https://dev.to/aj54/testing-blockonomics-api-locally-9gi)
* Blockonomics Payments API Documentation - [here](https://www.blockonomics.co/views/api.html#payments)
How to Judge your Recommendation System Model ?
Tags: machinelearning, todayilearned, beginners, tutorial
Published: 2021-02-09 16:17:52

There are many metrics to judge a classical machine learning model like Accuracy, Precision, Recall, F1 etc, but they cant be directly applied to a recommendation system model. 
So in this post I'm writing about the metrics we can use to judge a recommendation system model. 

### Recommended Vs Relevant Items 
- **Recommended items:** Items which our model predicted for a given user. 
We can get these items from the model predictions for a given user.
- **Relevant items:** Items in which the user is actually interested in. These can be obtained from several methods like:
    1. Items on which the user has clicked. 
    2. Items which the user has searched for.

*The goal of a Recommendation model is simply to maximize the intersection between recommended and relevant items for all users.*

Here are some metrics we can use for checking the performance of our model:

#### Precision @K: 
> How many relevant items are present in top k recommendations?

For eg. P@5 would be calculated by taking top 5 recommendations from the system for each user and checking how many are relevant ones. 
If 3 items are relevant then P@5 = 3/5 = 0.6. 

#### Average Precision @K: 
> The mean of P@i for i = 1..K

For eg, AP@3 = SUM(P@1 + P@2 + P@3)/3. This will be calculated for each user. 

#### Mean Average Precision @K:
> Mean of AP@K for all users.

For eg, MAP@3 = SUM(AP@1 + AP@2 + AP@3)/3

<br>
--- 

These metrics are straightforward to implement, also can be obtained from [here](https://github.com/benhamner/Metrics/blob/master/Python/ml_metrics/average_precision.py).
Happy Learning !
Using Blockonomics Bitcoin Payments API
Tags: beginners, django, python, javascript
Published: 2021-02-09 16:17:06

The Link to relevant resources:

* Create your Blockonomics Account- [here](https://www.blockonomics.co/merchants?ref=hPga3rGcrDj45w1C2jzkDMUPGBkCRYxNE6)
* Github Repository - [here](https://github.com/blockonomics/Django-Image-Store)
* Blockonomics Account Create - [here](http://blockonomics.co/)
* Blockonomics API Documentation - [here](https://www.blockonomics.co/views/api.html#payments)
* Setting Up HTTP Callback URL - [here](https://www.blockonomics.co/merchants#/page3)
* The Blog Post  - [here](https://dev.to/aj54/using-blockonomics-bitcoin-payments-api-5021)
Testing Blockonomics Payments API Locally
Tags: testing, beginners, programming
Published: 2021-02-09 16:11:58

The Link to Resources:
* Create your Blockonomics Account- [here](https://www.blockonomics.co/merchants?ref=hPga3rGcrDj45w1C2jzkDMUPGBkCRYxNE6)
* Ngrok Download - [here](https://ngrok.com/download)
* localtunnel - [here](https://github.com/localtunnel/localtunnel)
* Create Blockonomics Account - [here](http://blockonomics.co)
* The Blog - [here](https://dev.to/aj54/testing-blockonomics-payment-api-s-locally-h11)
How to make a website like CodePen
Tags: webdev, tutorial, beginners, codepen
Published: 2021-02-09 16:04:52

***Hello, guys in this tutorial we will learn how to make a website like CodePen, How to create a live coding playground***

**Today we will try to solve the below-mentioned query.**
1. How to make a website like CodePen
2. How to create Live Coding Playground
3. How to create a live code editor for a website
4. How to make a web-based compiler like code pen

###<a href="https://blog.stackfindover.com/how-to-make-a-website-like-codepen/" rel="dofollow">How to make a website like CodePen</a>###
***Click on the above link to want to learn more***
{% youtube Rsbp-ZGKsn0 %}
How to tokenize a string?
Tags: nlp, node, javascript, tutorial
Published: 2021-02-09 15:59:21

To tokenize a string using [winkNLP](https://winkjs.org/wink-nlp), read the text using [`readDoc`](https://winkjs.org/wink-nlp/read-doc.html). Then use the [`tokens`](https://winkjs.org/wink-nlp/tokens.html) method to extract a collection of tokens from the string. Follow this with the [`out`](https://winkjs.org/wink-nlp/out.html) method to get this collection as a JavaScript array. This is how you can tokenize a string:

```JavaScript
// Load wink-nlp package  & helpers.
const winkNLP = require( 'wink-nlp' );
// Load "its" helper to extract item properties.
const its = require( 'wink-nlp/src/its.js' );
// Load english language model — light version.
const model = require( 'wink-eng-lite-model' );
// Instantiate winkNLP.
const nlp = winkNLP( model );

// Input string
const text = '#Breaking:D Can’t get over this #Oscars selfie from 
@TheEllenShow🤩https://pic.twitter.com/C9U5NOtGap';
// Read text
const doc = nlp.readDoc( text );
// Tokenize the string
const tokens = doc.tokens();
console.log( tokens.out() );
```

This returns an array of tokens:

```javascript
[
  '#Breaking', ':D', 'Ca', 'n’t', 'get', 'over', 'this', '#Oscars', 
'selfie','from', '@TheEllenShow', '🤩', 
'https://pic.twitter.com/C9U5NOtGap'
]
```

winkNLP has a lossless tokenizer which preserves and reproduces the original text. The tokenizer intelligently handles hyphenation, contractions and abbreviations. It also detects token types like ‘word’, ‘number’, ‘punctuation’, ‘symbol’, etc.