teleren/devto huggingface dataset:
Get out of Tutorial Purgatory NOW!
Tags: webdev, beginners, 100daysofcode, tutorial
Published: 2020-12-16 03:38:21

Here is why you should get out the Tutorial Purgatory NOW!
You people will surely have in mind what is Tutorial Purgatory?  Here I will explain you how to escape tutorial Purgatory and many things you must know.  

<hr>

![undraw_youtube_tutorial_2gn3.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1608088980531/tnuHb315z.png)

## What is Tutorial Purgatory?  🤔

It is where you try to learn a skill by going from tutorial to tutorial, but then realize that hardly anything you have learnt has actually stuck with you. You really haven't learnt all that much. 

### Find 1-3 good tutorials and stick with it. 🤨
A few good ones are better than many ordinary ones. Close and remove others, it's time to let go of those tutorials.  

### No instructions, No problem 😁
Step watching tutorials, abandon your comfort zone and build a project on your own, without all the instructions neatly laid out. You can seek help but try building something on your own. 

### Get comfortable being uncomfortable 😳

Tutorials are our safe zone. We cling into it a little too much, a little longer because we are scared that when errors and problems come up we wouldn't know what to do. Don't doubt yourself and take the leap. 
 

## Never stuck in this Tutorial Hell !! 


![undraw_Online_learning_re_qw08.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1608089060575/xnwkDhQ-i.png)

<hr>

### DO NOT REPEAT THE MISTAKE THAT EVERYONE DOES
Here is why:

- ❌You will end up in learning nothing solid.

- ❌You will work so hard on learning those technologies but get ZERO results.

- ❌You will lose interest in learning.

### Instead, try this :
 
- ✅ Find UNIQUE and BETTER content by asking for suggestions.

- ✅ Get out of your Comfort Zone and try building your own logic.

- ✅ Try to learn something that EXCITES you!

<hr>
Get the amazing [daily.dev](https://api.daily.dev/get?r=emmaturner) extension. 
<hr>
Comment Your thoughts on this below!
Taking a new design approach and welcoming two new members
Tags: design, uiux, corporate, team
Published: 2020-12-16 03:34:00

Over the last two weeks, I've been meeting and interviewing several Perth-based programmers and designers looking to join the team at Signal Kinetics. I'm excited to be announcing two new teammembers, but first a lot has been going on at Signal kinetics so Iguess we'd better talk about that. 

Like we've been planning to do for a while we intend to make our venture not only fun and innovating but also profitable. Immediately profitable. Due to this we've been expanding so that we can contine participating in our hackathous and creating our games as well as going into the commercial side of things. This includes freelancing and setting up an indie game development branch at Signal Kinetics. We've started the process of moving into a new studio and are still continuing with all of our old open-source projects, but now we have the capacity to make money as well, helping us support ourselves.

I've started learning different design techniques to be able to go from  idea to fleshed-out concept much quicker than usual. usually I imagine in my head what I want to create and I just start coding. Oh, of course I look around for site inspiration on platforms like Envato, but I never use things like Adobe XD. At least, not until now. I've started the process of redesigning Our team's dashboard to have less reliance on external tools and Adobe XD is a major part of that design process.

In other news at Signal Kinetics, we've started preparations on a kickstarter to fund our opensource game engine. We've also opened up contact with satellite company Ambasat and the looks to be a fruitful venture.

Finally, I'm excited to announce our team's latest, and most promising recruit: Arthur Passos. 

![30439388](https://dev-to-uploads.s3.amazonaws.com/i/o356x7lp6ay3v08ovuel.jpg).

> @everyone, please welcome our newest members:
@Arthur Passos, our CIO (Chief Informations Officer) working with us (locally, Perth) on web apps, freelancing and a little bit of gaming. @Elijah Gardi, our new CMO (Chief Media/Marketing Officer) working with us (locally, Perth) on game desgin and content creation. Eli's been working with us for a few months, while Arthur comes highly recommended from the beautiful facebook jobs database. 

Arthur's joined as us our new Chief Informations Officer, where he'll be working alongside myself and the rest of the development team including Eli, Rishabh, and Edwin. Our first step is to move into our new studio and start attracting more clients. 

stay safe, and we'll have more updates coming soon

--L
Setting up a postgres database on an AWS instance!
Published: 2020-12-16 03:22:05

So I just had to redo a DBMS instance for a project I'm working on and decided it may be helpful to put all of the postgres set up in one place!

We are going to be working with an Ubuntu instance so first set up a basic AWS Ubuntu instance!

Next we are going to go through all of these commands line by line.
$ sudo apt update
$ sudo apt upgrade
$ apt install postgresql-client

Now lets connect to the server!

$ psql -h postgre-server -U postgre-user

Next let's install postgres server!

$ sudo apt install postgresql

We can check the port we are using with this command!
$ ss -nlt
It should be the default port 5432

We can change the start up settings with either 
$ sudo systemctl enable postgresql
$ sudo systemctl disable postgresql

To be able to access from a non-local machine we need to edit the postgresql.conf file

$ sudo vim /etc/postgresql/12/main/postgresql.conf

Change the line under CONNECTIONS AND AUTHENTICATIONS to
listen_addresses = '*'

Now just restart postgres with

$ sudo systemctl restart postgresql

Time to vim into another config to allow clients to connect to the database

$ sudo vim /etc/postgresql/12/main/pg_hba.conf
add this line under of all the other hosts!

host all all 0.0.0.0/0 md5

And now to make sure that the firewall doesn't stop connections to port 5432 just run this command!
$ sudo ufw allow from any to any port 5432 proto tcp

Now all that is required is to set up a user add some data and be sure to connect your client with some type of dev_config! Happy hacking!
Creating a Virtual Environment in Python (Ubuntu)
Tags: python
Published: 2020-12-16 03:14:14

Creating a virtual environment is really very easy in Ubuntu

### Step 1:-

First, we have to install the virtual environment using the following command:-

`sudo apt install python3-venv`

### Step 2:-

From the previous step, you have installed the virtual environment on the system, now you have to create a project using it:-

`python3 -m venv new-project`

### Step 3:-

Now for activating the above virtual environment you just have to use:-

`source new-project/bin/activate`

You will see the following output:-

```bash
$ source new-project/bin/activate
(my-project-env) $
```

Now just install whatever dependencies you want to install like any other library and work on the project.

Happy Coding!
Javascript Async/await
Published: 2020-12-16 03:07:38

I have recently learned about JavaScripts Asnyc functions! At first they were really confusing. I have been using them primarily for node.js. The way Async functions work is that say you are reading a file in node js. Let me make a short example.

function readFile () {
let data = readFile('./src/index.txt');
console.log(data)
} 
   console logs undefined;

The reason this logs undefined is because we are not waiting for the data to come back. We instantly go to the next like to log the data. But since it hasnt come but we do not know what is in data so as a result it logs undefined. Here is a different example of a working solution to this problem.

function readFile() {
 readFile('./src/index.txt', function (err, data) {
   if (err) {
   return err  
  } else {
  console.log(data)

  }
});

}

Instead we give it a call back! The call back runs when it finished reading the file and is ready to return a result. We also have a err argument that only runs when a err is found. we could also do this a different way by stopping the code until it comes back with a response, but the problem with this is that it will not run another line of code until it returns a response! It could slow down your application a lot! Here is a example of that.

function async readFile() {
let data = await readFile('./src/index.txt')
console.log(data)


}

This time it will fine the data but the await keyword will stop the code until it receives something in return!
Sparrow plugins for git commits statistics
Tags: git, automation, sparrow, discuss
Published: 2020-12-16 02:44:59

---
title: Sparrow plugins for git commits statistics
published: true
description: 
tags: git, automation, sparrow, discussion
//cover_image: https://direct_url_to_image.jpg
---

I've added a couple of plugins to show git commits statistics for given git repositories.

Check it out! 

http://sparrowhub.io/search?q=commits
JSitor Mobile App (Programming in Phone) - Big Update Coming Soon 🔥🔥
Tags: javascript, css, html
Published: 2020-12-16 02:34:32

JSitor.com is an online snippet development tool just like JSFiddle, Codepen or JSBin. 

It also has a mobile app which can be used to write, test, view or share the snippets. This post is mainly about giving some insights via some screenshots about what is coming next.

### JavaScript Editor look
![Alt text of image](https://i.ibb.co/cgXPxh2/IMG-9942.png)

### Snippets list (WIP)
![Alt text of image](https://i.ibb.co/khGxDWr/IMG-9941.png)

### HTML Editor look
![Alt text of image](https://i.ibb.co/VY8Mv9B/IMG-9943.png)

### Editor Settings
![Alt text of image](https://i.ibb.co/SdQhh2S/IMG-9944.png)

### Live Preview 
![Alt text of image](https://i.ibb.co/RTbqKdF/IMG-9945.png)

### Fullscreen Mode
![Alt text of image](https://i.ibb.co/c3m1VdM/IMG-9946.png)


Stay tuned to our twitter https://twitter.com/jsitoreditor for more updates.
TiDB Hackathon 2020
Tags: rust, go, distributedsystems, hackathon
Published: 2020-12-16 02:31:32

TiDB Hackathon 2020 was officially launched! This is the most innovative technical challenge and one of the most popular events in the TiDB community! 

At TiDB Hackathon 2020, developers across the world will engage, collaborate, and innovate together to work on solutions to improve the productivity and efficiency of TiDB and its ecosystem projects, including TiKV and Chaos Mesh®️.

In addition to bountiful prizes (The first place winning team will get $15,000), excellent projects have opportunities to join the TiDB Incubator program, where the projects will be properly guided and supported to become actual community projects!

The sign-up is open till Jan 10! Bring your intelligence and innovation to create unlimited possibilities for TiDB!

For more details: https://pingcap.com/community/events/hackathon2020/
Padrão Abstract Factory em Python
Published: 2020-12-16 02:30:08

O Abstract Factory é um **padrão criacional**, este permite a produção de famílias de objetos relacionados sem a necessidade de especificar suas classes concretas.

O padrão especifica que devem ser declaradas interfaces para cada objeto distinto das famílias de objetos, todas as variantes seguirão uma interface estabelecida.

####Exemplo do código em Python
```python
class AbstractFactory(ABC):
    
    @abstractmethod
    def create_product_a(self) -> AbstractProductA:
        pass

    @abstractmethod
    def create_product_b(self) -> AbstractProductB:
        pass


class ConcreteFactory1(AbstractFactory):

    def create_product_a(self) -> AbstractProductA:
        return ConcreteProductA1()

    def create_product_b(self) -> AbstractProductB:
        return ConcreteProductB1()


class ConcreteFactory2(AbstractFactory):

    def create_product_a(self) -> AbstractProductA:
        return ConcreteProductA2()

    def create_product_b(self) -> AbstractProductB:
        return ConcreteProductB2()
```

Cada fábrica pode possuir vários objetos específicos, estes também devem estabelecer formas abstratas para servirem de interface base.

```python
class AbstractProductA(ABC):

    @abstractmethod
    def useful_function_a(self) -> str:
        pass


class ConcreteProductA1(AbstractProductA):
    def useful_function_a(self) -> str:
        return "The result of the product A1."


class AbstractProductB(ABC):

    @abstractmethod
    def useful_function_b(self) -> None:

        pass

    @abstractmethod
    def another_useful_function_b(self, collaborator: AbstractProductA) -> None:

        pass

class ConcreteProductB1(AbstractProductB):
    def useful_function_b(self) -> str:
        return "The result of the product B1."
        
    def another_useful_function_b(self, collaborator: AbstractProductA) -> str:
        result = collaborator.useful_function_a()
        return f"The result of the B1 collaborating with the ({result})"
```
Os produtos podem conter métodos específicos e também tem a capacidade de interagir entre si mesmos, apesar de que uma compatibilidade total só é possível entre produtos com a mesma interface.

Não encontrei diferenças relevantes da implementação deste padrão em Java e Python.

***
**Referências**
[Padrões de Projeto](https://diogomoreira.gitbook.io/padroes-de-projeto/) (Diogo Moreira, 2020)
[Mergulho nos Padrões de Projeto - v2020-1.14](https://refactoring.guru/pt-br/design-patterns/book) (Alexander Shvets, 2020)
*Os códigos usados como exemplo foram retirados do livro Mergulho nos Padrões de Projeto.*
Scientific Programming School — Mobile App
Tags: android, tutorial, beginners, productivity
Published: 2020-12-16 01:11:55

Introducing the Scientific Programming School Android App. Get FREE interactive courses on the Scientific Programming School’s mobile learning app!

![APP](https://dev-to-uploads.s3.amazonaws.com/i/vfmei7fwquil02xqierk.png)

## An Interactive Android App
The [Scientific Programming School App ](https://app.scientificprogramming.io/) is an interactive learning app for Instructors, students and professionals interested in Linux, Devops, HPC and Data Sciences.

The app is designed for programming enthusiasts and computer science students to help guide them with the aspects of scientific programming such as data structures, algorithms, methods/functions, exception handling, functional programming, object-oriented programming, regular expressions, variables and operators, conditional statements and loops, arrays, classes and objects, encapsulation, polymorphism, and inheritance, abstract classes and Interfaces, anonymous and Inner Classes, threads.


## Languages supported

C, C++, Java, Data Structures in C, C++ & Java, Algorithms in C, C++ & Java, Computer Graphics in C, C++ & Java, PHP, Python, C#, Perl, JavaScript, CSS, HTML, Ruby, ASP, SQL, PLSQL, MySQL,R Programming, Lua, Assembly and so on.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/sleldvmhc5t9g9bljluk.png)


## Why use App?

• Free courses. Get all the new, in-progress beta and completed FREE courses.
• Ad-free experience. Learn lessons without distraction, no add.
• Unlimited code runs. Run code as many times as you want in our code editor.
• Break the rule. Follow the lessons in any order you want.

Get FREE courses made available by the Scientific Programming Team. All in-progress, beta and in-development courses can be accessed from the app. No registration required!

Video: https://youtu.be/_7edEUJhbpE

## About
The [Scientific Programming School ](https://scientificprogramming.io/) is an interactive programming learning app for Instructors, students and professionals interested in Linux, Devops, HPC and Data Sciences. It supports all three Linux OS flavours (Ubuntu, RHEL and SuSE), Windows Power Shell and 50+ programming languages including the commercial ones like C# and so on.

![Scientific programming codes -App](https://dev-to-uploads.s3.amazonaws.com/i/2no35hkthbvq6w75tl4l.png)
*See also: Scientific Programming Codes App - Coming soon!*

You get all the FREE courses made available by the Scientific Programming School in this app. Feel free to contact us regarding improvement, suggestions or to report any bugs using our website.


> We believe sharing knowledge is the most wonderful human capability. Sharing your skills and knowledge is a powerful and generous way to give back and change the world for the better!

We hope that you find all our content useful for yourself and leave positive feedback for our work.

Learn more at https://app.scientificprogramming.io/
Giving back to open source community!
Published: 2020-12-16 00:50:01

I feel ashamed after years of using and enjoying open-source still haven't put enough time to contribute on some of the repos or create whole new open source project.

As I believe never is late and we still have opportunities to take I have defined some steps to take until next 3 to 6 months in order to contribute and besides that sharpen my skill up :

1. Contribute at least 1 pr to [github.com/laravel/laravel](https://github.com/laravel/laravel)

2. Make my existing web application which is about money investment public/open source.

3. Write down on dev.to or tweet helpful texts and resources at least 3 times a week.

4. Answer some questions on stack overflow everyweek.

# To be continued...

I have made a decision and that must become a commitment so I will be starting from today not tomorrow!
Software Engineering for Musicians
Published: 2020-12-16 00:45:34

Nope, this is not a how-to Blog!  

This is me sliding past Alice to see if there are any good parties in the Rabbit Hole.  I'm keen on Moscow Mules and Black Sabbath, if anyone's asking.

My name's Xander, and at the spry mid-age of 50 I'm looking at my "#{num}" career - Software Engineering.  Not sure how I got from a farm in Nebraska to a classical Conservatory in Ohio, but I do remember thinking that I was going to be the next Glenn Gould, and then...  well, LIFE happened.

Years of competitions, more years in the opera world, many more years in musical theatre (conducting, playing, arranging, coaching, you name it) & one cool March afternoon I found myself in the socially-distanced boat of Covid with every other musician in the ostensibly "free" world.  And while one could argue that I've had a decent career in music, that same one might be hard pressed to answer what to do with no health care & no job for a year while the world burns.

I've had a lot of musician friends over the years move into computers, and I've noticed several things:

0) they have exciting hair
1) they love it
2) they're good at it
3) they make great money
4) they still play & even ENJOY playing music

It's a tempting plate, the waitstaff seems friendly, and I'm a growing boy.

What else can I say?
Padrão Singleton em Python
Published: 2020-12-16 00:44:25

Singleton é um **padrão de projeto criacional**, ele é utilizado quando há necessidade de que uma classe seja única, evitando que ela seja instanciada várias vezes e criando um ponto de acesso global para essa instância.

####Exemplo de código em Python
```python
class SingletonMeta(type):
    _instances = {}

    def __call__(cls, *args, **kwargs):
        if cls not in cls._instances:
            instance = super().__call__(*args, **kwargs)
            cls._instances[cls] = instance
        return cls._instances[cls]
```
Neste trecho de código é definido a metaclasse *SingletonMeta*, esta é a representação do que a classe Singleton será quando instanciada. O método __call__ determina que esta classe pode ser chamada como uma função.

```python
class Singleton(metaclass=SingletonMeta):
    def some_business_logic(self):
```
A classe *Singleton* representa uma instância de singleton e deve possuir métodos para execução das suas lógicas de negócio.

Python pode implementar o padrão Singleton de diversas maneiras, neste exemplo foi usado o método de metaclasse. Uma metaclasse é "uma classe de uma classe", ou seja, é criado uma classe que determina como uma classe deve se comportar, esta sendo uma instância da metaclasse.

***
**Referências**
[Padrões de Projeto](https://diogomoreira.gitbook.io/padroes-de-projeto/) (Diogo Moreira, 2020)
[Mergulho nos Padrões de Projeto - v2020-1.14](https://refactoring.guru/pt-br/design-patterns/book) (Alexander Shvets, 2020)
*Os códigos usados como exemplo foram retirados do livro Mergulho nos Padrões de Projeto.*
First Hackathon
Tags: dohackathon, digitalocean
Published: 2020-12-16 00:42:25

# The start


After finishing part of the FreeCodeCamp curriculum, the application was built using Javascript, Next.js and React.Js.
We will consume an api, filter the values and display a list.
The main objective is to practice development.

## The idea 

The idea is to create an application that consumes an api with information about plant species and display the formatted information.
We will have a Landpage with basic information about the application.
We will use Node.js as the base for the backend. Using Next.JS as a framework. We will use Chakra-ui as a component library.

## Setup of environment
Using Vscode as a code editor.
Git and Github as code versioning.
Node.Js as the backend platform and of course, Javascript as the main language.
We use https://uidesigndaily.com/ as a source of inspiration for the layout.

Let's code!
The Art of Debugging 
Tags: beginners, javascript, testing, bugs
Published: 2020-12-15 19:56:46

I will start out by saying, I am a junior developer, so 85% of the time... I am the bug. I have however developed some tips and tricks along the way that have helped pinpointing my bugs as well as in writing cleaner and dryer code. 



##Steps to Debugging
1. **Start by writing clearly planned and tested code:**
   This may seem like a no brainer but the process of "sharpening the axe before cutting down the tree" really, really helps in the debugging process. Before I code at all or even write a README.md I start by asking myself 3 questions and writing them out in Evernote (for searchability later on).
   1. What am I trying to code and/or what is the bug that I am trying to solve? What do I already know about said code?
   2. What questions do I have/things do I not know?
   3. Answers to those questions as I find them.
I then begin to make my README.md, user stories, and diagrams (if not already existing). When I have a pretty clearly documented plan I begin to write or modify tests. Often once I solve or find a bug, I will come back and modify or update tests and documentation.
 
2. **Check for esLint errors or highlighted/non highlighted code in VS Code.** It is always worth taking the time to set up esLint for a project. 

3. Check variables and spelling check syntax.

4. **Dev Tools:** I really love Chrome Dev tools. I think it is worth it though to test code in multiple browsers. 
   * Check the console for errors: is the error obvious?
   * Reproduce the error if semantic (enter data into a form etc.) 
   * Try ```console.log()```, ```console.error()```, ```print```. I feel like these are very base level debugging tools and are sometimes more trouble than they are worth after the fact. I find these tools more helpful while writing initial code. 

    * ***Comment out code*** in and error message to help locate an error using comment tags. Once you pinpoint the error look at syntax, spelling, and functionality. 

    * Sources tab -> Event listener breakpoints -> step into , step over,  step out of... etc. 
        * Pause code at other break points 

    * If trouble shooting an API request... checkout the Network tab to see the amount of requests be sent and what is being received. 

There are also numerous different language specific debugging tools that come in very handy during coding and debugging but these steps are a great start. What tips do you use and when do you crack and ask for another set of eyes? Thanks for reading!