teleren/devto huggingface dataset:
Best way to get project experience BEFORE my first job?
Tags: discuss, beginners, career, webdev
Published: 2019-09-05 03:33:02

I've spent the last 3-4 hours struggling to find a great resource for technical project-based volunteering. I'm a future junior developer, who wants to get real-world experience in the time before starting my job search.

As fun as working on personal projects has been, it has been less fun than working on scoped projects with a team. So rather than shifting my direction to open source, I'm interested in a part time volunteer project.

The ideal experience would be:
- guided / overseen by an accountable organization
- scoped to a specific timeline, with mapped deliverables
- part time (5 - 10 hours per week)
- geared to a real-world social issue
- led by a senior developer (this is critical)
- in a dev team (3-10 people)
- mimic a dev workflow
- fullstack
- similar to the (now defunct) [freecodecamp nonprofit projects](https://guide.freecodecamp.org/miscellaneous/how-free-code-camps-nonprofits-projects-work/)

This list is deliberately project oriented. Though I am still studying and am weeks (if not months) from landing a full time position, I'd love to find a great project part time (5-10 hours per week).

Running list of resources I've applied to or checked out:
- [Socialcoder](https://socialcoder.org/Home/Index) 
- [BetaNYC](https://beta.nyc/)
- [Benetech](https://benetech.org)
- [Catchafire](https://www.catchafire.org)
- [Codemontage](https://developersforgood.org)
- [UN Volunteers](https://www.onlinevolunteering.org/en/opportunities?f[0]=field_task_id:5)
- [VolunteerMatch](https://www.volunteermatch.org/search/index.jsp?v=true&aff=&k=software+developer)
- [Electronic Frontier Foundation](https://www.eff.org/)
- [Chingu](https://chingu.io)
- and many more

This will be in addition to my weekly self study, algo practice, meetups, hackathons, personal projects, etc. Working on a team project is an invaluable experience for any field. 

In university, I always pursued competitive summer internships, while volunteering during the semester. So I'm hoping the same will be possible in tech.

Separately, [this is a great resource](http://www.coyotecommunications.com/volunteer/techvolideas.html) for nonprofits who want to recruit great tech volunteer.
How often do you pair-program?
Tags: discuss, pairprogramming
Published: 2019-09-05 04:26:12

How often do you pair program?

I try to pair program at least 1-2 hours per week, sometimes more, depending on the amount of work load.

It has helped me learn more, collaborate effectively and ease out of the anxiousness of someone watching me code over my shoulder.

How often do you pair-program? How has it helped you?
Devlog #1: Setting Up
Tags: ionic, angular, mobile, devlog
Published: 2019-09-05 03:33:06

Today starts the first day prototyping an app I plan on pushing out over the next few weeks.

I mostly spent the day setting up the foundations. It's my first time using Ionic, so a lot of time was spent upfront skimming through the docs to make sure I wanted to use it. After I got Ionic/Angular installed, I bought a domain for the app for 1) a landing page for it and 2) so that I could have a support email specifically for it. Once I had G Suite set up, I went over to Firebase to set up an application to enable authentication and Firestore. I had used all of these technologies before(excluding Ionic), but not together.

After getting a basic Ionic login page up and running, I started implementing Firebase. Now, it wouldn't be programming if you didn't spend over an hour trying to fix a 'bug' that's really just you forgetting some of the most basic building blocks.

![Error stating the module '../environments' could not be found](https://thepracticaldev.s3.amazonaws.com/i/5mb9uwb1kg4we1zlnw6f.png)

For the life of me, I could not figure out why it wouldn't recognize the 'environments' module. After a nice break, I came back to it and realized *duh*, I was trying to import a variable from a TypeScript file without declaring the TypeScript file I needed it from. Thus, '../environments' turned into '../environments/environment.'

Next, I set up form control and validation for my login page, and had to call it a day. Tomorrow, I plan on setting up everything Firebase: Login with email/password and Google, password resets, account deletion, etc.

![Example login page in Ionic Lab](https://thepracticaldev.s3.amazonaws.com/i/j2s3pgdurrwnq67t1b1x.png)

Stay tuned for more to come! I'll be posting every day even if I only accomplish something small.
Yet Another Python Tutorial
Tags: python, tutorial, computerscience
Published: 2019-09-05 03:10:06

Hey! About three weeks ago, I posted an article here about publishing my first YouTube video:

{% link https://dev.to/renegadecoder94/i-did-something-scary-4e7g %}

Well, I caught the bug, and I've since created two more videos that I thought I'd share:

{% youtube lN5qX73H2Bc %}

{% youtube -ueWDzP88eQ %}

As someone who has written close to 300 articles now, I'm having even more fun making these videos. Of course, at this point, I'm not sure if they're adding any value to my site, but whatever! Feel free to take a look and share your (constructive) feedback or positive vibes.
Setting up git autocomplete on mac
Published: 2019-10-24 03:09:43

---
title: Setting up git autocomplete on mac
published: true
date: 2019-09-05 02:39:32 UTC
tags: 
canonical_url: https://mikebobadilla.com/setting-up-git-autocomplete-on-mac/
---

Mac's git doesn't come with auto complete, which is obnoxious, so I just run this is on my new systems. You don't have to do it this way and just piece it together for yourself using the [git site](https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks) like I did.

<!--kg-card-begin: code-->

```
cd
curl -O https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
echo "source ~/git-completion.bash" >> ~/.bash_profile
source ~/.bash_profile
```
<figcaption>This is the code I run. Trust but verify ☑️</figcaption>
<!--kg-card-end: code-->

This is also stored in my [current setup page](https://mikebobadilla.com/current-setup/)
Preparing for a tech talk.
Tags: techtalks, beginners, react
Published: 2019-09-05 02:27:43

Hello guys. I am giving a tech talk about react(the present and the future) on a local meetup this week.
This is my first time so I am a little bit anxious about it.

Any ideas about how to prepare for it and how to make myself confident before the meeting would be great.

Also you can suggest me about the topics i can discuss in the talk.

Thank you.
The first Github Actions
Tags: git, react, devops, webdev
Published: 2019-09-05 00:41:15

---
title: The first Github Actions
published: true
description: Use Github Actions to build, test react project
tags: [git, react, devops, webdev]
---

# 1. Introduction
[GitHub Actions](https://github.com/features/actions) makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub. Make code reviews, branch management, and issue triaging work the way you want.

To get more details about Github Actions you can see [About GitHub Actions](https://help.github.com/en/articles/about-github-actions)

# 2. Let's start
Make sure that you had to register Github Actions beta program and also receive the approval email from Github like "You’re in! Get started with GitHub Actions beta"...

In this tutorial, I use my repository called [React Starter Kit](https://github.com/sisa-cafe/react-starter-kit).

***Don't talk any more, go go go...***
### Step 1: Go to your repository and click on the "Actions" tab
### Step 2: Click the button "Set up a workflow yourself"
You will see the template like bellow:
```yml
name: CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest
    
    steps:
    - uses: actions/checkout@v1
    - name: Run a one-line script
      run: echo Hello, world!
    - name: Run a multi-line script
      run: |
        echo Add other actions to build,
        echo test, and deploy your project.
```

### Step 3: Edit the template
Following the [Workflow syntax for GitHub Actions](https://help.github.com/en/articles/workflow-syntax-for-github-actions)
and [Set up your GitHub Actions workflow with a specific version of node.js](https://github.com/actions/setup-node)

I edit my first actions like bellow:
```yml
name: CI

on: [push]

jobs:
  build:
    name: Build
    runs-on: ubuntu-18.04
    strategy:
      matrix:
        node_version: [10, 12]
    
    steps:
    - uses: actions/checkout@v1
    - name: Use Node.js ${{ matrix.node_version }}
      uses: actions/setup-node@v1
      with:
        version: ${{ matrix.node_version }}
        
    - name: yarn install, yarn lint, yarn test, yarn build
      run: |
        yarn install
        yarn lint
        yarn test
        yarn build
```

Explanation:
In the configuration above
- Github Actions will trigger on `push` event on any branch
- It will use Ubuntu 18.04 `runs-on: ubuntu-18.04`
- It will run 2 times on 2 node versions: `node_version: [10, 12]`
- It will use `yarn` to run instead of `npm`
- It will run `yarn install`, `yarn lint`, `yarn test`, `yarn build`

For further command please refer to the [Workflow syntax for GitHub Actions](https://help.github.com/en/articles/workflow-syntax-for-github-actions)

### Step 4: Waiting and getting the result!

![Github Actions build result](https://thepracticaldev.s3.amazonaws.com/i/iikbg8pkj2cfzm6bh6mm.PNG)

It works fine!!!

# 3. In conclusion
So easy to create the simple pipeline with Github Actions. It will help you build your project without using any external CI/CD like Circle CI or something like that.
What is TypeScript's Exclude?
Tags: typescript, utility
Published: 2019-09-05 00:24:40

_Originally posted on [JosNun.com](https://josnun.com/posts/what-is-typescripts-exclude)_

I'm going to be honest, here. I _love_ TypeScript, but some of the docs for their utility methods aren't that great. Thankfully, they have examples, but sometimes, even those aren't that helpful. `Exclude` is one of those utility methods that always had an air of ambiguity around it for me, but recently I did some research, and what I found makes writing some types so much cleaner.

So what does exclude do? Well, [here's what the docs say][0]:

> `Exclude<T, U>`: Constructs a type by excluding from T all properties that are assignable to U.'

Not terribly descriptive, but at least it points us in the right direction. In my opinion, the type definition of `Exclude` is much more helpful.

```ts
type Exclude<T, U> = T extends U ? never : T;
```

A simple way of putting it is that if `TypeA` is a subtype of `TypeB`, it gets removed. Here's an example:

```ts
interface Widget {
  doesStuff: boolean;
}

type Doodad = number | string | symbol | object | Widget;

type PropertyAccessor = Exclude<Doodad, object>; // string | number | symbol
type ExcludeWidget = Exclude<Doodad, Widget>; // string | number | symbol | object;

const string: PropertyAccessor = 'key';
const number: PropertyAccessor = 3;
const symbol: PropertyAccessor = Symbol();

const obj: PropertyAccessor = {}; // Type '{}' is not assignable to type 'symbol'
const widget: PropertyAccessor = {
  doesStuff: true,
}; // Type '{ doesStuff: boolean; }' is not assignable to type 'string | number | symbol'

const obj2: ExcludeWidget = {};
const widget2: PropertyAccessor = {
  doesStuff: true,
} as Widget;
```

As shown in the example, the `Exclude`, helper enables us to remove a type from a type union. Now, you may be surprised to see that the `Widget` interface is not included in the type `PropertyAccessor`. This is because an interface extends an object. The same would happen if the interface was declared as a type instead of an interface. On the flipside, however, if we were to exclude `Widget` from `Doodad` instead of `object`, both `obj2` and `widget2` would be perfectly valid. `obj2` being allowed makes sense, since it's type is in the union. `widget`, though?! We excluded that type explicitely!

When `Widget` is excluded, `object` is still a valid type for `ExcludeWidget`. `Widget`s are subtypes of `object` however, so since object is valid, so are `Widgets`;

After my research and tinkering, I discovered that the name `Exclude` is very applicable for what the utility does. Hopefully now you have a better understanding of the way that `Exclude` works, and you'll be able to utilize it to write cleaner, simpler types without getting frustrated when that type you excluded is still perfectly valid ;).

[0]: https://www.typescriptlang.org/docs/handbook/utility-types.html#excludetu
Multiple Stripe plans - Building SaaS #3
Tags: python, django, saas
Published: 2019-09-05 00:12:17

{% youtube x8tTnP4TbRM %}

In this stream episode, I built a Django model that would allow my SaaS app (College Conductor) to deal with multiple Stripe plans.

After building the model, we updated the landing page to display a different plan based on the database data from the model.

Show notes for this stream are at [Episode 3 Show Notes](https://www.mattlayman.com/building-saas/multiple-stripe-plans/).

To learn more about the stream, please check out [Building SaaS with Python and Django](https://www.mattlayman.com/building-saas/).
Syncing Github Forks in 2 steps
Tags: github, gitlab, git, opensource
Published: 2019-09-04 23:49:09

---
title: Syncing Github Forks in 2 steps
published: true
description: How to sync your github/gitlab forks with the main project and get files up to date
tags: github, gitlab, git, opensource
cover_image: https://wac-cdn.atlassian.com/dam/jcr:389059a7-214c-46a3-bc52-7781b4730301/hero.svg?cdnVersion=550
---

Most of the time, after forking and working on a project other pull requests are being merged which leaves your copy behind the current state of the project. 
This post walks you through a simple guide on how to sync your fork.

## 1. Add remote from the original project repo
This is the remote URL to the original project which you want to update your fork from.
```bash
git remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git
```
Now check if upstream has been added
```bash
git remote -v
```
This will list the remote url's active in the local repo
## 2. Updating fork from the original repo
Run the below command to make a pull.
```bash
git pull upstream master
```
This pulls changes from the original repo and merges it into your local copy. And after this is happy coding :)
Who wants to join the DEV Fantasy Football League?
Tags: watercooler, offtopic
Published: 2019-09-04 21:54:54

Hey folks, we have a small office fantasy football league and we need to fill out the spots. Anybody want to join?

You are super welcome to play ironically without real knowledge of football, but you need to commit to not flaking _and not cheating_ (of course).

We are going to have a quick draft at 3:30pm ET tomorrow. It's a bonus if you can make it, but if your team gets auto-picked that's fine too.

If you are interested in playing, **go to [my profile](/ben) and direct message me** that you are interested. I'll pick randomly (weighted slightly towards seniority on the site) from those who message me.

I hope to get a few messages from you folks! I'll let you know within a few hours who got picked for the league.

Happy coding!
Python
Published: 2019-09-04 21:30:08

I am in my second week of learning Python. The questions I have are probably simple for someone who has the experience in any programming language, but I really need to understand how this works. The following is a question I don't understand. 

---------------------------------------------------------------------------------

Read user input and print to output.

Read three numbers from user input. Then, print the product of those numbers. Ex: If input is 2 3 5, output is 30. Note: Our system will run your program several times, automatically providing different input values each time, to ensure your program works for any input values. 

---------------------------------------------------------------------------------

When I run the following code the question changes to the second question in example 2.


Example: 1

numb1 = 2
numb2 = 3
numb3 = 5
print( numb1 * numb2 * numb3)

---------------------------------------------------------------------------------

Example: 2


Testing with input: 6 4 9

Output differs. See highlights below.
 
Your output - 30

Expected output - 216

---------------------------------------------------------------------------------

Why is the question being changed when I run the code? When I run the second code changing the numbers to 6 4 9. It tests the input numbers 2 3 5 from the original question. 

Does anyone understand this?
Awesome Docker Compose
Tags: docker, dockercompose, awesome
Published: 2019-09-04 21:21:05

I created a docker-compose files repository on Github, named as *Awesome Docker Compose*. Run a well-prepared applications stack with just a single command. Any contributions are welcome! Let your precious hidden stack help the community!

Check it on [here](https://github.com/iedmrc/awesome-docker-compose).
My Favorite Tech Job Sites
Tags: career, reactnative, laravel, hiring
Published: 2019-09-04 20:44:04

As I continue looking for my first developer job, I have come across many good job sites through Google and newsletter subscriptions. Here are a few I have used to apply to jobs (hope they help others!)

*Laravel*
[LaraJobs](https://larajobs.com)

*React Native*
[React Native Jobs](http://reactnativejobs.com)

*Vue*
[Vue Jobs](https://vuejobs.com)

*Angular*
[Angular Jobs](https://angularjobs.com)

*Flutter*
[Flutter Jobs](https://flutterjobs.info)

*GraphQL*
[GraphQL](https://graphql.jobs)
Variables en Dart
Tags: dart, beginners
Published: 2019-09-04 17:57:00


## ¿Qué son las variables?

En este articulo vamos a aprender sobre las variables en Dart, las variables son como cajas pequeñas que tienen una referencia a un valor. Y estas cajas pequeñas pueden tener un nombre para identificarlas facilmente.

## ¿Cómo podemos crear variables en Dart?

En dart podemos crear variables de tres formas:

### Usando la palabra reservada *var*

Podemos crear una variable utilizando la palabra reservada *var* antes del nombre de la variable, y luego del nombre de la variable el valor que le queremos asignar, veamos el siguiente ejemplo:

    var año = 1990;
    print(año)
    //El resultado es: 1990

**Nota: la instrucción `print(año)` imprime el valor de variable.**

Esto que acabamos de ver es una inferencia de tipos. La inferencia de tipos es una funcionalidad que tiene el compilador de Dart para poder deducir el tipo de la variable que estamos creando. 

### Declarando una variable especificando el tipo

También podemos declarar el tipo de la variable como en el ejemplo a continuación:

    String nombre = "José";
    print(nombre)
    //El resultado es: José

### **Usando la palabra reservada *dynamic***

La palabra reservada *dynamic* nos permite declarar una variable en la que el tipo puede cambiar en tiempo de ejecución y puede ser definida de la siguiente forma:

    dynamic cambioDeTipo = 1234
    print(cambioDeTipo) // El resultado de esta ejecución será: 1234
    cambioDeTipo = "Uno dos tres cuatro"
    print(cambioDeTipo) // El resultado de esta ejecución será:"Uno dos tres cuatro"

## Ahora es tu turno

Puedes probar estos conceptos en Entornos de desarrollo (IDE) como [Intellij Idea Communit](https://www.jetbrains.com/idea/download/)y, que es gratis e instalar el plugin de Dart, si te gusta Visual Studio Code tambien puedes probar estos conceptos en él y por último si prefieres algo online, puedes utilizar [**Dartpad**](https://dartpad.dartlang.org/).

## ¿Quieres saber mas sobré Dart?

Si te ha gustado este articulo y estas interesado en aprender Dart, actualmente estoy escribiendo más articulos como este en un ebook, el cual es un curso básico de Dart que te ayudará a tener un buen conocimiento que luego podrás utilizar para empezar con Flutter ;). Puedes darte de alta en [este link.] (https://www.codingpizza.com/curso-dart-gratis/). Ya que el ebook será **totalmente gratis.**
What are your daily methods for handling stress?
Tags: discuss
Published: 2019-09-04 20:16:51

I am 19 and working as a website developer for a digital marketing agency. I pretty much threw myself into working for a company that is very high performance and I love it except that things get stressful. I have been working very hard to improve my mental health and learn how to keep my stress low in order to keep pushing and I am curious about other peoples tips!
Three things from today - 9/4
Tags: devjournal, kubernetes, security, datascience
Published: 2019-09-04 20:00:18

#9/4/2019
###Back to being busy all the time!

Today has flown by as i'm trying to keep up with everything!!! 

I feel like i'm learning new things about how I work as I get older. One of the things i've realized recently is how the most important skill for anyone being overwhelmed is to break everything down into smaller chunks, focus on one priority chunk and work slower and more deliberately. 

It feels counter intuitive but it's really the only thing that makes sense. Working slower, you can still take time to learn things and work smarter which ultimately pays off in the long run. :)

Anyway - three things!

##1.  Azure AKS known issues list

[known k8s on azure issues and fixes](https://github.com/andyzhangx/demo/tree/master/issues)

An Azure engineer who goes by the handle `andyzhangx` has a great resource of common issues when using AKS. Anyone interested in Azure Kubernetes Service or Azure Kubernetes Engine should keep this handy for when they run into a wall troubleshooting an issue.


##2. Docker / R package install gotchas.

Working on updating a Docker image I noticed that some of the dependencies that we thought were in the image were not working. Our Rscript was super simple:

```
repourl <- "http://cran.rstudio.com/"

install.packages("randomForest", repos = repourl)

```

Turns out - 
1. RScript doesn't care whatever happens in the script, the return code is always 0!
2. The randomForest package was missing the "gfortan" package (blast from the past)

I fixed the issue by installing the package but I also had to update our Rscript to tryCatch and quit with exit code 1 on any errors so that Docker would exit if any package installs failed:

```
repourl <- "http://cran.rstudio.com/"
tryCatch(
         {
                 install.packages("randomForest", repos = repourl)
         },
         warning=function(warning_message) {
         message(warning_message)
         quit("yes",1)
                },
         error=function(error_message) {
         message(error_message)
         quit("yes",1)
                }
         )
```                                           

##3. Darknet Diaries - Xbox Underground

[Darknet Diaries - Xbox underground](https://darknetdiaries.com/episode/45/)

I finished a podcast I enjoyed immensely this morning. 

It's a two part story on a hacking group who hacked around with the Xbox 360. 

It's a wild ride including hacking, drugs, friendship and video games. I highly recommend it.

Also on my reading list is the [Wired article](https://www.wired.com/story/xbox-underground-videogame-hackers/) for the same story.


See you party people tomorrow!
Metka Gem
Tags: railstagging, tagging, ormextension, rails
Published: 2019-09-04 19:21:30

Based on work that I've done in this post [https://jetrockets.pro/blog/migrate-tags-in-rails-to-postgresql-array-from-actsastaggableon](https://jetrockets.pro/blog/migrate-tags-in-rails-to-postgresql-array-from-actsastaggableon) I decided to create a gem.

Today I made the first release and prepared a lot of work for future.

Here is a link to repository: [https://github.com/jetrockets/metka](https://github.com/jetrockets/metka)
100x50 Tour of the Solar System #codepenChallenge
Published: 2019-09-04 19:04:10

I've been on kind of a space kick this week and decided to participate in [this week's Codepen challenge](https://codepen.io/challenges/2019/september/). 

Thank you for checking out my take on it, look forward to seeing what everyone else comes up with.

{% codepen https://codepen.io/jeffwilkey/pen/jONaMBE %}