teleren/devto huggingface dataset:
Coursera: Yes/No/Maybe/??/Aliens?
Tags: discuss
Published: 2019-12-18 04:45:24

I am always looking for websites or resources that I can use to learn different _things_. I briefly looked into Coursera the other day and was wondering...

> Is Coursera worth the money and did you find the material worth it (if you used it)?
<small>my discussion question, 2k19</small>

As a bonus, can you list resources that you use regularly to upskill, in any aspect of your career?

---

<small>_I don't have an explanation for "Aliens" in the title_</small>
What i've learned from blowing my first remote interview
Tags: career, javascript, beginners
Published: 2019-12-18 04:20:20

Hi you all, last week I had the opportunity of been interviewed for a front end job and i blew it but i did learn a thing on another and i'd like to share this with you.

# My mistakes

## Not preparing for a code test.
* So, that's basic i know but i was hoping for a hey man what you do on your free time interview and then came the test which was pretty simple but due to the nervousness and lack of training i wasn't able to finish it in time. 

## Lack of confidence
* Even so, i'm currently a junior developer, i study everyday and have a base but at the interview i let this fear take over and skip answering a lot of questions only because i didn't think i knew the **exactly** answer.

## Weak language knowledge

* Yeah that's also basic but its a fact this interview showed me that i never should stop learning the vanilla and keep updating myself with language concepts *especially* functional ones.

## Not asking questions

* This is not new for me at least, you have to ask a lot of questions, in this particular case i was nervous and let it pass.


# What i've learned from it

## It's all about controlling emotions

* Hey i know it might be your dream job but keep it together bro.

## Train train train
* We have to really train our a**es off coding interview challenges, will help not only on interviews but on problem resolution as well.

## Never skip the basic
* For work i had to learn react alongside JS i felt at this interview the tech debt i had to cut and study the basic was really big. build the strongest foundation you can.

## The interviewer is not your enemy

* He'll know you're under a lot of pressure and that's not your regular performance so we have to try and chill a bit.


# Some of Ricardo's(my interviewer) tips

## Books
* Basic books he told me to read.

- Head first JavaScript (Awesome book and its illustrated)

- Clean code (Reading this one, heavy but worth it)

- You Don't Know JS (Available free [here](https://github.com/getify/You-Dont-Know-JS "You Don't Know JS"))

## Train
* Use sites like [LeetCode](https://leetcode.com/ "LeetCode") and [Code Wars](https://www.codewars.com/, "code wars") to practice interview algorithms.

## Focus on only one Lib/Framework
* As beginners it's really hard to try and learn everything so focusing on one lib like react for example should be the path to go with the career begin.

# Final thoughts

Of course, it's frustrating to fail an interview but the feedback helps us to move to next more and more prepared, i'm thankful for having the opportunity to experience this and will work on the tips received to get better to the next, i really hoping by sharing this i can help someone get better results. I also would like to thank Ricardo Luz to give me this feedback and letting me share this with you, don't forget to check out his [Linkedin](https://www.linkedin.com/in/rxluz/ "rxluz") it has awesome content. Leave a comment if you have some tips to share with me too and that's it.

**Happy coding**
My favorite code-based expression
Tags: discuss, ruby
Published: 2019-12-18 04:01:54

For whatever reason, I love writing Ruby's or/equal operator (`||=`). Said in human-speak, if the variable on the left is `null` then assign it the value on the right; otherwise, leave the variable on the left as is: `@left ||= 'right'`

#### Simplicity

The concept of or/equal exists throughout life, *"Is the oven on? No, then set it to 350 degrees."* We get it. The flow is natural.

#### Interpretability

The syntax is easy to parse. If you're familiar with `||` meaning *or* and `=` meaning *should now equal* then combining them leads down a logical path towards *or should now equal.* Neat!


#### What's your favorite programming expression/method/operator?

Post and example. Why do you love writing it?
I prefer Reducer hook over State hook, here's why
Tags: react, javascript, beginners
Published: 2019-12-18 02:34:54

I've been using State for most of my projects, even created a reusable State method. The State Hook is one of the few basic react hooks that both new react developers (including myself) and veterans uses. 

###Let's have recap

If you're not familiar with what I'm talking about, here's what the State hook looks like in code. 

``` javascript

import React from 'react'

export default () => {
  const [state, setState] = React.useState('')
  return ()
}

```

Recently, I bumped into Reducer Hook while exploring the wonders of react. It is an alternative for the State Hook. If you're familiar with redux, it is the inspiration for the Reducer Hook. 

###What is the Reducer Hook?
The Reducer hook accepts a (state, action) and returns a new state paired with a dispatch. 

Here's how it goes:
```javascript
//the initial state to be passed into the Reducer
const initialState = ''

//The reducer function
function reducer(state, action){
  switch(action.type){
    case 'SAY_HELLO':
     return 'HELLO'
    case 'SAY_HI':
     return 'HI'
    default:
     return 'default'
  }
}

//main app
export default app(){
  const [state, dispatch] = React.useReducer(reducer, initialState)
}

``` 

I'm getting off topic, this post is about the reasons why Reducer hook over State hook. 

###WHY I LOVE THE REDUCER HOOK
 
* The Reducer hook can manage complex state shapes like objects or arrays. 

```javascript

const [state, dispatch] = useReducer(reducer, {
  users: [
    {
      name: 'Naruto',
      village: 'leaf',
    }
  ]

})
```
Plus all the logic is in one reducer. 

* It's pure function! So it doesn't depends on react. 

* This hook can be easily managed and to organize, and looks soooooooo damn good, well at least in my opinion

* It's easier to test. As I said earlier, It is a pure function. This means this hook doesn't depend on react.




###Well I'm not suppose to give my opinion, but give the Reducer Hook a try.

But don't worry State hooks, there's no reason to ditch you and I still appreciate you being here.
Vulnerabilities: Filling a Sieve with Sand 
Tags: vulnerabilities
Published: 2019-12-18 01:52:55

---
title: Vulnerabilities: Filling a Sieve with Sand 
published: true
description: Whats up with all the never ending stream of new vulnerabilities?
tags: #vulnerabilities
---

Maybe you have a github and you get messages about it or maybe you write libraries that I get messages about, but I'm assuming at some point you've experienced a development somewhere that's either highlighted or caused an issue with some program you've written. Well why does this happen so consistently and what can I do about it?

###Vulnerability vs Risk
Vulnerability is seen as an exploitable aspect of the program you've written. Risk is a potentially exploitable aspect if something changes. Like wiring for those light strips on planes that direct you to the exits that's functionality is contingent on air pressure is a risk factor but not an exploit. Wiring that controls those lights that direct you to the exits on planes that if you mess with in a particular way gives you control of the doors is an exploit. 
###Why Do they Exist Though?
Well people can only assume so much about how things can be misused. People cant see the future. come on. 
Also each layer of abstraction that is the conglomeration of multifarious conditionals that coalesce into a program each assume specific input/s. As programs and all their dependencies develop their individual outputs change. When any output changes the quality of is functionality changes as well. In certain instances this change leads to exploitable deficiencies. 

###What Can I Do THough!?
Nothing you're fucked! Just kidding. Forethought is Key ie planning. Developing plans should be based in evidence. Knowing of "pinch points" or places with dynamics that have historically caused issues can help you highlight your potential threats. I feel like this is part of best practices really or at least justification for why certain best practices are what they are. 
Keep up to date. Tests heavily. Release slowly. Eat regularly. It all helps.

That's all I got. Get out and make something. This one is nothing to write home about. Till next time.
Running PostgreSQL in Docker for local dev
Tags: database, postgres, docker
Published: 2019-12-19 17:02:07

---
title: Running PostgreSQL in Docker for local dev
published: true
date: 2019-12-18 01:50:00 UTC
tags: Databases, PostgreSQL, Docker
canonical_url: https://www.petefreitag.com/item/889.cfm
---

Recently I blogged about how I'm running [SQL Server on Mac with Docker](https://www.petefreitag.com/item/880.cfm) and [Oracle on a Mac with Docker](https://www.petefreitag.com/item/886.cfm), so here's how you can run PostgreSQL locally using Docker... more specifically docker-compose.

To start, you'll need to download and install docker, you can check that you have it installed by running `docker-compose -v` on the command line and it should output a version number.

**An example docker-compose.yml for postgres**

Create a file `docker-compose.yml` with the following:

```
version: '3.7'
services: 
  pg: 
    image: postgres:9.5.20 
    ports: 
      - "5432:5432" 
    volumes: 
      - ./pg:/docker-entrypoint-initdb.d/ 
    environment: 
      - "POSTGRES\_PASSWORD=${DB\_PASS}"
```

In this case I am exposing port 5432 (the default postgres port) locally, so I'll be able to connect to it via localhost on port 5432.

**Running an initialization SQL or sh script**

You can initialize this database by creating some files in a folder under your `docker-compose.yml` file called `pg`. The docker initialization scripts will run any `.sql` file or any `.sh` file it finds in there during startup. So you can create database users or create table schema by placing files in those directories.

The default username will be `postgres` and the password for that user is defined in the `environment` variable `POSTGRES_PASSWORD` which I am defining to be the value of my computers environment variable named `DB_PASS`. You could hard code it instead if you really wanted to.

Finally the version of PostgreSQL that is used can be tweaked by changing the line `image: postgres:9.5.20` to use a different version number.

Once you have customized it as necessary, then you can run the following command to bring up the database server:

```
docker-compose up
```

During initialization it will run your scripts in your `pg` folder to create the database. If you need to re-run the initialization scripts you'll need to remove the docker container (hint: use `docker container ls` and `docker container rm` commands)
Day 54 : Awakening
Tags: hiphop, code, coding, lifelongdev
Published: 2019-12-18 00:17:48

_liner notes_:
- Professional : Today, I worked on my blog post. Got a pretty good outline going and just doing some research to fill it out some. Also looking at some Codelabs to work through how Google organizes Material components. Couple be helpful when I start working on ours.

- Personal : Worked on my finances and put together a plan for 2020. I'm making more money at this new job and want to make it count. It's been a pretty awakening experience. Plan on working on the admin side of my side project a little before heading to bed.  

![ocean view of Norway mountains on the horizon under the night sky](https://thepracticaldev.s3.amazonaws.com/i/zjzb82yfqzddvybre2bg.png)

Tomorrow, I'm hoping to have a first draft of my blog post and keep working through the Material Codelabs. Keeping this short so I can get back to the code.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube 8MARmx2EKWc %}
Career Switch: How I Started My Coding Journey
Published: 2019-12-18 00:03:08


For the past few years, I have been trekking my way through bio and medical classes to become a nurse. The further I got into the program, the more I realized that nursing was not for me. I enjoyed the classes, the labs and learning about the body. The courses were challenging and I loved using critical thinking to solve labs. To fulfill program requirements, I had to volunteer and work in healthcare. Some of my jobs consisted of caring for the elderly and leading activities for residents that were in memory care. I also worked in a behavioral health facility and explored the administrative side of nursing where I got to work closely with RNs. Needless to say, I gained plenty of experience in the healthcare field. I did enjoy several aspects of my jobs in healthcare, but I was not a fan of what I saw in an RN's daily job duties. The job required quite a bit of paper work and was more routine than I expected.

Not knowing what to do next, I turned to my friends for advice. Many of them are developers and engineers. So they suggested that I give coding a shot. Part of me had doubts about being a coder. I did not have much information on what developers did. I also wanted to find a career that I will enjoy. Despite my doubts, my friends insisted that I try free resources online to see if I would enjoy coding. They also shared their day to day duties as developers with me. This allowed me to get an outlook on what the job would look like as a developer. 

Ironically, this was around the same time I heard about Flatiron School. I was seriously considering coding bootcamps at this point. However, I wanted more experience and exposure to coding before I made the commitment to go to a coding bootcamp. Conveniently enough, Flatiron had a Prep Bootcamp Course. This gave me the opportunity to actively code and test my ability to learn coding through their curriculum. What surprised me from this experience, was how much I enjoyed it. After getting through more than half of the prep course, I decided to apply to Flatiron School. The application process went well and everything seemed like it was falling into place. 

Today, I am writing this blog post in Flatiron School. I survived the first mod. I have four more mods to go. There are many times where I feel frustrated and overwhelmed. However, I enjoy being able to build things and see them reflected on screen. This program requires a lot of time and commitment. However, I highly enjoy what I am learning and I look forward to coming here everyday and learning more.
Dev Bootcamps: Yes? No? Which ones?
Tags: discuss, help
Published: 2019-12-18 00:00:53

---
title: Dev Bootcamps: Yes? No? Which ones?
published: true
description: Having trouble deciding which bootcamp to enroll in? Me, too! Let's figure this out.
tags: discuss, help
cover_image: https://thepracticaldev.s3.amazonaws.com/i/56zldvd3aiicbdusiy40.jpg
---

## I would like to enroll in a Software Engineering bootcamp.

### But what should I consider when searching and interviewing?

I'm located in the SF Bay Area, and I would prefer doing an in-person bootcamp, rather than remote.

Should I even consider going to a bootcamp at all? Why or why not?
(Recruiters-- please help with this question, especially!)

Ideally, I would like to be finished within 2020.

Post your recommendations and advice below!
VS Code C# Extension not working in Remote SSH mode on Red Hat Linux? Here's a workaround
Tags: dotnet, linux, redhat, vscode
Published: 2020-09-09 18:22:25

---
title: VS Code C# Extension not working in Remote SSH mode on Red Hat Linux? Here's a workaround
published: true
date: 2019-12-18 00:00:00 UTC
tags: dotnet, linux, redhat, vscode
canonical_url: https://swimburger.net/blog/dotnet/vs-code-csharp-extension-not-working-in-remote-ssh-mode-on-red-hat-linux-heres-a-workaround
---

Visual Studio Code has an extension called "[Remote - SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh ""Remote - SSH" on the VS Code Marketplace")" that allows you to use Visual Studio Code as your editor for SSH enabled machines. For example, this means you can **use VS Code on Windows but develop on a Red Hat VM. Say goodbye to getting stuck in vim or being shamed for using nano.** 😿

Unfortunately, the C# Extension for VS Code malfunctions when following [the official steps to install .NET Core on Red Hat](https://access.redhat.com/documentation/en-us/net_core/3.1/html-single/getting_started_guide/index "Getting started guide with .NET Core 3.1") and using the Remote SSH extension. OmniSharp, the underlying cross-platform .NET engine for the C# extension is not able to find the .NET Core installation. When opening a .NET project in remote SSH mode on Red Hat, you will likely see "It was not possible to find any installed .NET Core SDKs".

The workaround is just that, a workaround. I do not recommend doing this in production scenarios, only do this in your development environment.

To work around OmniSharp not finding the .NET Core installation, you can **create a symbolic link from the 'dotnet' executable to a path in your $PATH environment variable such as '~/bin/'**.

```sh
DOTNETLOCATION=$(which dotnet)
sudo ln -s $DOTNETLOCATION ~/bin/dotnet
```

Using the ``which dotnet`` command, you fetch the location of the executable 'dotnet'-file.  
This path is stored in the `DOTNETLOCATION` variable which is then used to create a soft symbolic link to '~/bin/dotnet'. After running these 2 commands, quite VS Code and open the same .NET project on Red Hat using the SSH Remote extension. Now OmniSharp will find your .NET installation and the C# extension will behave as expected.

Hopefully this issue gets resolved in the future and the C# extension will behave as expected without the workaround. The issue has been reported over at the ['omnisharp-vscode' GitHub repo](https://github.com/OmniSharp/omnisharp-vscode/issues/3471), please review the issue for any updates.
Freelance Developer Horror Stories Start Here...
Tags: freelance, career, webdev, freelancing
Published: 2019-12-17 23:47:45

---
title: Freelance Developer Horror Stories Start Here...
published: true
description: If you've thought about freelancing, you've probably heard of the popular hire-a-freelance sites.
tags: freelance, career, webdev, freelancing
cover_image: https://thepracticaldev.s3.amazonaws.com/i/0vfk47sk71izx4wplex6.jpg
---

##This video originally appeared on [YouTube](https://www.youtube.com/realtoughcandy). Come follow me there!

If you've thought about freelancing, you've probably heard of the popular hire-a-freelance sites. They're easy to use, they have lots of traffic, and they seem like a great way to get started making that sweet cash. 

But there's an underbelly to these sites, and it can destroy not only your career, but your drive to create as a web developer. We're talking about horror stories on Fiverr and Upwork on the RealToughCandy channel. 

Full disclosure? You don’t have to buy my stuff to become a successful freelance web developer. But it might help you:
› Freelance Newbie video course: https://bit.ly/2HXgjuQ
› Freelance Newbie book: https://amzn.to/2NoNpZ2
🔥 PREORDER REAL TOUGH SOFTWARE: https://amzn.to/2sFxFHu
Slack notifications available with Diun 2.1
Tags: docker, registry, slack, go
Published: 2019-12-17 23:01:16

---
title: Slack notifications available with Diun 2.1
published: true
description: Receive notifications when a Docker image is updated on a Docker registry.
tags: docker,registry,slack,golang
---

{% github crazy-max/diun %}

[**Diun**](https://github.com/crazy-max/diun) 2.0 🔔 has been released and adds support for Slack notifications:

![Slack notification](https://thepracticaldev.s3.amazonaws.com/i/edrdgccwe8tfmfoy5zoj.png)

---

Support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max) 👏 or by making a [Paypal donation](https://www.paypal.me/crazyws) to ensure this journey continues indefinitely! 🚀

Thanks again for your support, it is much appreciated! 🙏
Help me design better Django applications
Tags: django, ddd, systemsdesign
Published: 2019-12-17 23:00:22

I've been building a set of pragmatic guidelines around Django for the past year. it's based off the experiences I've had scaling Django applications. It takes an API-first approach to ensure developer productivity and flexibility is kept high.

![https://raw.githubusercontent.com/phalt/django-api-domains/master/diagrams/dads_logo.png](https://raw.githubusercontent.com/phalt/django-api-domains/master/diagrams/dads_logo.png)

I want to get feedback on it.

I've had a few people use the guidelines, and by using them myself I have iterated on it a few times. We've had four versions so far.

But I know it can be better.

So if you use Django, or you're interested in Domain Driven Design, please give it a read, or maybe even try adopt the pattern yourself.

Throw some opinions at me here or on [github](https://github.com/phalt/django-api-domains/issues), and let's aim to make API-based Django applications better, for everyone!

### -> https://github.com/phalt/django-api-domains <-
Friday Night Deploys: Not So Short Shorts # 1 -  Breakfast, Ben 10 & Incel Power Fantasies
Tags: jokes, podcast, webdev
Published: 2019-12-17 22:48:17

In the inaugural episode of our "Not So Short Shorts", the DevPlebs tell stories about people they've worked with ranging from the funny (bad excuses for not making it into work) to the highly unsettling (writing a story about murdering someone in the office).

## Listen to The Full Episode!
{% spotify spotify:episode:5FFMU2nFRlBIPYiS38RkLp %}
**We're also on...**
**Apple Podcasts:** https://apple.co/37JeyMF
**Google Music Podcasts:** https://bit.ly/2PLrvgQ
**YouTube:** https://bit.ly/2R3FmRW

## New Stuff!
We have a brand new mic setup, meaning we actually have 2 microphones now! it may be the cause of our technical difficulties this week, but we're excited to offer higher quality in our shows and more importantly, it means you can't call us out for being 2 amateurs huddled around 1 yeti mic!

## Get In Touch With Us!
If you would like to share any strange characters and their stories that you want us to read out in the next episode you can reach us at the following...

**Twitter:** [@DevPlebs](https://twitter.com/DevPlebs).
**Email:** deadbeats@devplebs.tech

## Follow Our Twitters... If You Want!
[DevPlebs](https://twitter.com/DevPlebs).
[Keith Brewster](https://twitter.com/brewsterbhg).
[Phil Tietjen](https://twitter.com/phizzard).

You can also ask questions or give us some feedback about the show!
A Backdoor with a multitude of features
Tags: java, computerscience, hacking
Published: 2019-12-17 22:15:22

Typically, backdoor utilities such as NetCat have 2 main functions: to pipe remote input into cmd or bash and output the response. This is useful, but it is also limited. BetterBackdoor overcomes these limitations by including the ability to inject keystrokes, get screenshots, transfer files, and many other tasks.

BetterBackdoor can:
- Run Command Prompt commands
- Run PowerShell scripts
- Run DuckyScripts to inject keystrokes
- Exfiltrate files based on extension
- Exfiltrate Microsoft Edge and WiFi passwords
- Send and receive files to and from victim's computer
- Start a KeyLogger
- Get a screenshot of victim's computer
- Get text copied to victim's clipboard
- Get contents from a victim's file (cat)

Demo:
https://asciinema.org/a/6K0SOY7W8u7ligNoP3s912kwY

GitHub:
https://github.com/ThatcherDev/BetterBackdoor