teleren/devto huggingface dataset:
From a call center to learning to code with Boolean
Tags: podcast, beginners, career
Published: 2021-09-30 10:21:50

---
title: From a call center to learning to code with Boolean
published: true
date: 2021-09-29 15:01:22 UTC
tags: Podcast, Beginner, Career
canonical_url: https://www.nocsdegree.com/call-center-learn-code-boolean/
---

 ![From a call center to learning to code with Boolean](https://www.nocsdegree.com/content/images/2021/09/Optimized-Ade---Boolean-2.png)

Ademola Fabuyi is currently finishing up his web development course with [Boolean, an online coding bootcamp](https://boolean.co.uk).  He was sick of his call center job and was curious about how the internet worked. So he started tinkering with Python, got the coding bug and then applied to [Boolean coding bootcamp](https://boolean.co.uk).

We talked about what learning to code is like, the benefit of learning with others and his experience at Boolean. This interview is available in podcast form and on YouTube.

This interview is sponsored by [Boolean](https://boolean.co.uk) and is available on [YouTube](https://www.youtube.com/embed/ZDqFIOhYadk?) and as a [podcast](https://share.transistor.fm/e/d569585f)


If you run a coding bootcamp and would like one your student's stories featured on the website, email pete@nocsdegree.com

Ade's [LinkedIn](https://www.linkedin.com/in/ademola-fabuyi-b98b02218/)  
  
Ade's [GitHub](https://github.com/brokensythe)
Review: Surface Laptop 4
Tags: microsoft, laptop, review
Published: 2021-09-29 14:35:16

In the last years I used a Surface Book 2 and, later, a Surface Book 3 as my main productivity laptop.
I was quite happy but not totally happy, especially regarding the performance of both of them.
One year ago I bought a gaming pc for working from home, but sometimes I use the laptop for working from the balcony or from another room in my home.
On the 2nd of August (I will write an article on it the next month) I joined [SoftwareONE](https://www.softwareone.com) as a Microsoft 365 Architect and, of course, I still continue to write a lot of code.

#The Laptop

![Surface Laptop 4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/673apvnyrn7xiolkzc7o.jpg)

As main laptop for working, I received a Surface Laptop 4.
The specs are:
- Screen: 13.5” PixelSense™ Display
- Resolution: 2256 x 1504 (201 PPI)
- Memory: 32GB LPDDR4x RAM
- Processor: Quad Core 11th Gen Intel® Core™ i5-1135G7
- Wifi 6
- Bluetooth 5
- Weight: 1,288 g
- Storage: 512 GB

#Initial thoughts
Honestly, I don't have good expectations from this laptop because of my past experiences with other Microsoft laptop.
I am pleased with the feeling when you bring the laptop on your hands.
It seems very solid and, first of all, it's very light.
The display is really good and I set the DPI to 125%. I use the same settings on my old laptops as well.

![Surface Laptop 4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ef790fsut16oghhrrifm.jpg)

I am impressed because Windows 10 seems really fluid, also when I working hard with the HDD (npm install, delete big folders and stuff like that).
The battery is good. Not super great, but good. I can work with Visual Studio, Visual Studio Code, Edge, Windows Terminal and Teams up to 5 hours.

I use the Logitech MX Master as my main mouse, but the trackpad is the best trackpad that I used on a laptop (not like the Apple trackpad on the Macbook, but it's good!).

#Final thoughts
I am excited about the laptop. I don't use the laptop very often but when I use it (in the last 15 days I worked only on it) I don't feeling lost without my gaming pc at home.

![Surface Laptop 4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uoz7vqcuhobnbvkit795.jpg)
[HIRING] [REMOTE]
Published: 2021-09-29 14:22:23

Invisible Technologies (inv.tech) is looking for candidates who have atleast a year experience in Angular. You can view the job description and apply here - https://jobs.lever.co/invisible/e3f21175-7605-4b30-8790-5ddbd97ab3b5. In case you have any questions, please reach out to me veena.viswanath@invisible.email.
Python binary search
Tags: python, algorithms
Published: 2021-09-29 14:19:51

Source [Python Binary search explained with examples](https://blog.icodes.tech/posts/Python-Binary-search.html) 
## Binary search algorithm
a binary search does something very similar. So it relies on having a sorted list so you have this list. Let's say it's 1024 items long. And what you do with binary search is you go to the middle item of this sorted list and if that's the item you're looking for then that's it.The search is over.

if the item is not the item you're looking for but is higher than it in numerical value or in the latter value depending what it is that you're searching for. Then you can say well the item that I'm looking for must be in the left part of the list because I know these are in the correct order they're sorted.

![ezgif-7-e1fca7ee4861.gif](https://cdn.hashnode.com/res/hashnode/image/upload/v1632925042968/VRkJ91qok.gif)

So if I've landed on the midpoint of this list and I'm the item I land on is higher in value than the item I'm looking for.I can get rid of all of the items to the right of me to the to the right of the item that I've landed on because I know that they are also going to be too high. And then you repeat that process.
Source [Python Binary search explained with examples](https://blog.icodes.tech/posts/Python-Binary-search.html)
Concorrência (Código Limpo: Que Bruxaria é Essa?!?! - Parte 8)
Tags: cleancode, javascript
Published: 2021-09-29 14:16:19

## Use Promessas, nada de "callbacks"

"Callbacks" não são limpos e causam quantidades excessivas de encadeamento. Com o ES2015/ES6, as promessas são um tipo global embutido. Use-as!

### Não é recomendável:

```javascript
import { get } from "request";
import { writeFile } from "fs";

get(
  "https://en.wikipedia.org/wiki/Robert_Cecil_Martin",
  (requestErr, response, body) => {
    if (requestErr) {
      console.error(requestErr);
    } else {
      writeFile("article.html", body, writeErr => {
        if (writeErr) {
          console.error(writeErr);
        } else {
          console.log("File written");
        }
      });
    }
  }
);
```

### É recomendável:

```javascript
import { get } from "request-promise";
import { writeFile } from "fs-extra";

get("https://en.wikipedia.org/wiki/Robert_Cecil_Martin")
  .then(body => {
    return writeFile("article.html", body);
  })
  .then(() => {
    console.log("File written");
  })
  .catch(err => {
    console.error(err);
  });
```

## "Async/Await" são ainda mais limpos do que as Promessas

Promessas são uma alternativa bem limpa aos "callbacks", mas ES2015/ES6 nos traz o "async" e o "await", que oferecem uma solução ainda mais limpa. Tudo que você precisa está prefixado na palavra-chave "async" e então você escreve sua lógica de modo imperativo sem uma cadeia de funções "then". Use-os se quiser experimentar as vantagens das funcionalidades do ES2015/ES6 hoje!

### Não é recomendável:

```javascript
import { get } from "request-promise";
import { writeFile } from "fs-extra";

get("https://en.wikipedia.org/wiki/Robert_Cecil_Martin")
  .then(body => {
    return writeFile("article.html", body);
  })
  .then(() => {
    console.log("File written");
  })
  .catch(err => {
    console.error(err);
  });
```

### É recomendável:

```javascript
import { get } from "request-promise";
import { writeFile } from "fs-extra";

async function getCleanCodeArticle() {
  try {
    const body = await get(
      "https://en.wikipedia.org/wiki/Robert_Cecil_Martin"
    );
    await writeFile("article.html", body);
    console.log("File written");
  } catch (err) {
    console.error(err);
  }
}

getCleanCodeArticle()
```

E aí? Gostaram? Até a próxima tradução! 🤗
I made a CLI tool in Rust to play mechanical keyboard sound effects globally
Tags: rust, showdev, sound, opensource
Published: 2021-09-29 13:58:54

### Rustyvibes

A Rust CLI that makes mechanical keyboard sound effects on every key press. It was a collaborative effort that took months to make, is now finally releasing.


#### macOS:

```
brew install kb24x7/rustyvibes/rustyvibes
```

#### Windows / Linux:

```
cargo install rustyvibes
```

#### Usage

```
rustyvibes <soundpack_path>
```

![Screen Shot 2021-09-29 at 7.23.10 PM](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ev05z1ps2ojcdyd4kahh.png)
 

### Download Soundpacks: [Here](https://drive.google.com/file/d/1LQEQ9aOVQAs_wgVecXkjaA9K4LXnCdp_/view?usp=sharing)

---

### Mechvibes vs. Rustyvibes

How does Rustyvibes compare to its competitors like Mechvibes? Mechvibes uses Electron and Chromium which is very resource intensive. Rustyvibes on the other hand is made with Rust and can be upto 10x-100x more resource efficient.

Mechvibes Soundpacks: [Here](https://docs.google.com/spreadsheets/d/1PimUN_Qn3CWqfn-93YdVW8OWy8nzpz3w3me41S8S494/edit#gid=0)


---


### Privacy

Rustyvibes is a fully [open-sourced](https://github.com/kb24x7/rustyvibes) project and never uses any network activity at all.
Some Popular CSS Units
Tags: css, codenewbie, html, webdev
Published: 2021-09-29 12:47:58

CSS has several different units for expressing a length. Many properties take 'length' values, such as *height, border, margin, padding, font-size,* etc etc. But we all know how confusing these CSS Units are! In this article, I'll try to briefly explain the most common CSS Units.

So basically, there are two types of CSS length units: *Absolute* and *Relative*.

**Absolute**
The absolute length units are fixed and length expressed in these units will appear exactly the same size for all screens. Units like cm, px, in, pc are absolute. 


**Relative**
Relative length units in CSS specify a length relative to another length property. %, em, vh, ch are a few Relative length units. Better responsive sites can be created using Relative length units.

Below is the list of some commonly used CSS Length units with description.

|Name|Unit Type|Decsription|
|:-----|:-----|:-----|
|px|Absolute|1px = 1/96th of 1in, Pixels (px) are relative to the viewing device|
|in|Absolute|1in = 2.54cm = 96px|
|pt|Absolute|1px = 1/96th of 1in|
|rem|Relative|Relative to font-size of the root element|
|em|Relative|Relative to font size of the element|
|vh|Relative|Relative to 1% of the height of the viewport*|
|%|Relative|Relative to the parent element|

Generally, for output purposes, relative units are used and for print, absolute. For example, we don't typically use cm on screen because screen size can vary from device to device.
There are several other units like mm, pc, ch, vmax, vmin, ex, try exploring them and see how it all works. Moreover, As of now, almost all browsers latest version support these units. 

That's it for now! Thanks and happy learning :)
Teamwork requires Trust, and Trust starts with Charity
Tags: teamwork, agile, softwaredevelopment
Published: 2021-09-29 13:49:42

---
title: Teamwork requires Trust, and Trust starts with Charity
published: true
date: 2021-09-29 13:46:54 UTC
tags: teamwork,agile,softwaredevelopment
canonical_url: https://medium.com/chingu/teamwork-requires-trust-and-trust-starts-with-charity-77facec47d41
---

#### Sprint 5 — Wednesday

![](https://cdn-images-1.medium.com/max/1024/1*X_65uqWYL7WeKtmKCi8LTg.jpeg)<figcaption>Photo by <a href="https://unsplash.com/@kattyukawa?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Katt Yukawa</a> on <a href="https://unsplash.com/s/photos/charity?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption>

Conflicts that come up within a team are usually thought of as being the result of either a disagreement on a decision or direction, a misunderstanding, or both.

But if we explore deeper the real source of serious conflict isn’t from either of these. It comes from how we interact with our teammates and from how we view disagreements.

Resolving disagreements aren’t zero sum games where there is a winner and a loser. The goal should be to find an equitable resolution where everyone’s argument is heard and fairly evaluated. This leads to a “win-win” result even everyone doesn’t get what they want.

> Disagreements don’t have to be Zero Sum games

But even more important is how we treat each other even if we don’t always agree. The best resolutions are **_always_** the result of treating one another with respect, listening, and focusing on finding the best resolution for the team and the project rather than the resolution that feeds our ego.

Discussions should be frank and honest, but also respectful — we should all show charity to one another. We may **_think_** we know what’s best, but we won’t really know if we aren’t listening to opposing viewpoints and the motivation behind them. This doesn’t mean you have to give up your principles. Only that you give others the opportunity to express their opinions and to be heard.

Finally, keep in mind that **_no one will die from an incorrect decision_** in a most projects. The impact of any decision is you and your team will learn something valuable.

![](https://cdn-images-1.medium.com/max/620/0*GIIP_K2PeGgk4KOV.jpg)

### Before you Go!

Chingu helps you to get out of “_Tutorial Purgatory_” by transforming what you’ve learned into experience. The experience to boost your Developer career and help you get jobs. **_And it’s Free!_**

You can learn more about **Chingu** & how to join us at [https://chingu.io](https://chingu.io/)

* * *
Designing For Safety with Eva PenzeyMoog
Tags: podcast, security, inclusion, books
Published: 2021-09-29 13:36:25

TRIGGER WARNING: Domestic Violence, Abuse, Interpersonal Safety

[Eva PenzeyMoog](https://twitter.com/epenzeymoog) talks about her superpower being her ADHD and ability to hyperfocus before diving into a discussion about her book, “Designing for Safety.” 

We talk about how technology can be weaponized for harm and that it’s not a matter of might. It’s when. 

She talks about what engineers, designers, and even product managers need to know when building applications, and that it is our responsibility to prioritize the safety of marginalized people over the comfort of unmarginalized people.

{% podcast https://dev.to/greaterthancode/252-designing-for-safety-with-eva-penzeymoog %}

Check out more awesome episodes (with transcripts!) at [GreaterThanCode.com](https://greaterthancode.com)!
Calculate class start & end time then book class
Published: 2021-09-29 13:26:17

### I use moment.js for time comparison

## My usecase 
Class have class availability start & end time 

User selected time
```
 const selectedTime= moment(userSelectedTime)
```
Given start and end time,class length is a minute of class like 60 equal 1 clock
```
const startSelectedTimes = moment(availableLength.start)
const endSelectedTimes = moment(availableLength.end).subtract(class.length,'minutes')
```
 1 Check
if user selected time is before start time then it throw a error
```
 if(startTimes.isBefore(startSelectedTimes)){
     throw error...
     return
}
```
2 Check
if user selected time is after end time then it throw a error
```
 if(startTimes.isAfter(endSelectedTimes)){
     throw error...
     return
}
```
After some booked classes your have array of booked class with start and end time

Booked class start & end time loop throw i is loop variable

```
const classStartTime = moment(i.start)
const classEndTime = moment(i.end)
const checkBack = moment(i.start).subtract(class.length,"minutes")
const checkNext = moment(i.end).add(class.length,"minutes")
```
3 Check 
if the selected time is between start & end time then throw error
```
 if (startTimes.isBetween(classStartTime, classEndTime)===true) {
     throw error...
     return ;
 }
```
4 Check 
Subtract class length to start time then check there is a class between selected time then throw error
```
 if(startTimes.isBetween(checkBack,classStartTime)===true){
      throw error...
      return ;
  }
```
5 Check
Add class length to end time and  then check if there is a class between selected time then throw error  
```
 if(startTimes.isBetween(classEndTime,checkNext)===true){
    throw error..
   return ;
  }
```

finally 
Book class

```
Your logic here 
```
How To Fix Slow MariaDB Replication Lag
Tags: database, sql, devops, performance
Published: 2021-09-29 13:19:52

Hi there!

If you have experienced significant replication lags and replication so slow that it needed hours to complete or couldn't catch up at all, I may have a solution for you.

A couple of weeks ago, I set up a MariaDB replication from scratch for a production database. The database has a considerable size and is under heavy use.

As usual, I used [Mariabackup](https://mariadb.com/kb/en/mariabackup/) to copy the entire data directory of MariaDB to the new replica server. Unfortunately, I had to interrupt my work and wasn't able to continue until 12 hours later. As I resumed where I left off, I noticed that the database grew substantially. Since I didn't want to resync about 200 GB of data, I left the rest to the replication.

Well, It did not go as planned. The replication was so slow that it couldn't catch up.

The server had enough resources to handle the amount of data, so why was it so slow? After some research, I found that while **MariaDB fully benefits from multiple CPU cores, the replication process does not!**

The replication process only runs on one core and processes events in serial. Luckily, you can fix this by increasing [slave_parallel_threads](https://mariadb.com/kb/en/replication-and-binary-log-system-variables/#slave_parallel_threads).

On your replica server, set the value to the number of CPU cores you can spare. You can change this parameter without restarting the database, but to do this, you first have to stop the replication:

```sql
STOP SLAVE SQL_THREAD;
SET GLOBAL slave_parallel_threads = 4;
START SLAVE SQL_THREAD;
SHOW GLOBAL VARIABLES LIKE 'slave_parallel_threads';
```

Now your replica server will execute events in parallel (shortened view):

```plain
MariaDB [mysql]> SHOW PROCESSLIST;
+--------------+-----------------------------------------------------------------------------+
| Command      | State                                                                       |
+--------------+-----------------------------------------------------------------------------+
| Slave_IO     | Waiting for master to send event                                            |
| Slave_worker | Waiting for work from SQL thread                                            |
| Slave_worker | Waiting for prior transaction to commit                                     |
| Slave_worker | Closing tables                                                              |
| Slave_worker | Waiting for work from SQL thread                                            |
| Slave_SQL    | Slave has read all relay log; waiting for the slave I/O thread to update it |
+--------------+-----------------------------------------------------------------------------+
```

I hope this is helpful to anyone who has similar issues.
My dev journey
Tags: devjournal, programming, javascript, webdev
Published: 2021-09-29 13:18:40

**Hello world, my name is Devraj Roy and I am learning web development with Tanay Pratap. Am writing this blog to tell you How I started my programming journey…**

**I live in Guwahati a small city of NorthEast India. I completed my Higher Secondary in 2014. I did not study college. Since I did not had a college degree I struggled to find a good job.**

**I worked as a food delivery guy, worked in a drug store, in a warehouse. In 2020 I lost my job. I didn’t know what am going to do back then. My financial situation from bad got to worst. I continued searching for job but No Vacancies.**
![undraw_conversation](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m8kqzpyd7u1m0oq0kjzj.png)
**In April 2021 a good friend of mine Jowel Tisso asked me to try programming. He was already working as a freelance app developer. He told me about neogcamp and Tanay Pratap’s level 0.**
 
**At first I told him programming wasn’t for me. But I started watching Tanay Pratap’s video on YouTube and started following him on Instagram. Eventually I thought to give it a try and started with level 0.**
![undraw_freelancer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4t80aylfbk5uxq7ciudp.png)
**For a newbie like me who has no coding experience before level 0 is perfect start. The way Tanay Pratap explains everything and how course is prepared for beginners is awesome.**

**I like to code now I can be rest assured of good future in this field. Programming doesn’t require good grades or a college degree as long as am ready to work hard.**

![undraw_developer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/237am1pzafwx69jndi79.png)
**Skills are crafted, not gifted.**
Remote Control App for Controlling Televisions and Air Conditions for 724.ONE by Yasir Munir
Tags: reactnative, redux, react
Published: 2021-09-29 12:38:58

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/52rbtru7ea5aa63ayshc.jpg)![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ypmmtz0q7n71kjkgiyv.jpg)![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0qu0byy3sxqba0z3f6t8.jpg)![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pnm1ka4276h9qc1ih96f.jpg)
Learning Python- Intermediate course: Day 34, Toplevel, Panedwindow and Message widgets
Tags: learningpython, python, tutorial
Published: 2021-09-29 12:11:54

Today we will cover a brief about the Top-level, paned-window and message widgets.
---
____
Till now we have covered majority of the widgets. Today's agenda is  to have a quick look at three more widgets without going too much into the depth. I will just provide a short explaination and the code for creating the widget. So let's get started. 

### Top level widget

The Toplevel widget is used to create popup like windows. These toplevel windows are directly managed by the window manager. 

> The toplevel widget is used to represent some extra information, pop-up, or the group of widgets on the new window. The toplevel windows have the title bars, borders, and other window decorations.

```python
from tkinter import *  
  
master= Tk()  
  
master.geometry("200x200")  
  
def open():  
    top = Toplevel(root)  
    top.mainloop()  
  
btn = Button(master, text = "pop", command = open)  
  
btn.place(x=75,y=50)  
  
master.mainloop()  
```

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z174cjha7ljqk3gp5x5k.png)
 
On several clicks....

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

### Panedwindow


The Paned Window widget acts like a Container widget which contains one or more child widgets (panes) arranged horizontally or vertically. The child panes can be resized by the user, by moving the separator lines known as sashes by using the mouse.

Each pane contains only one widget. The Paned Window is used to implement the different layouts in the python applications.

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uf0joygogfha28g2tqfk.png)
```python
from tkinter import *  
master=Tk()
  
win = PanedWindow(orient='vertical')
lbl=Label(text="paned window")
win.add(lbl)
win.pack()
  
  
mainloop() 
``` 

____
### Message widget 
The message widget is similar to the label widget. It has a few advantages over the label widget, like it can automatically wrap the text, maintaining a given width or aspect ratio

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/br01v3c8gtwge4gj65e6.png)
 
```python
from tkinter import *

master = Tk()
var = StringVar()
msg = Message( master, textvariable=var )

var.set("Bye!")
msg.pack()
master.mainloop()

```
In order to set the text contents of the message widget, we need to create a `stringvar()` object to store the message and then out it in the message widget.



____
So friends that was all for this part. Message-box widget coming soon...... 

Follow me for updates..........