teleren/devto huggingface dataset:
Help me understand unpaid internships!
Tags: career, discuss, help
Published: 2020-04-29 00:12:00

Photo by [Matese Fields](https://unsplash.com/@tesecreates) on [Unsplash](https://unsplash.com/).

*Disclaimer - Using this discussion thread, I am not promoting paid/unpaid internships. I am not justifying right or wrong between any type of internship. I am simply trying to understand what the DEV community has to offer.*

---

I feel there are many occurrences when students or individuals seek an internship; while pursuing education, career change, or maybe some other reason.

To my understanding, the internship is an opportunity given by the employer where the employee or an intern for a specified tenure (a month, 3-months, 6-months, or a year), where more experienced individuals mentor an intern. Some employers provide paid internships; some employers offer unpaid internships. Here are a couple of examples of how an intern position might look like in different companies. If you find some other examples, please do post them below, I will update the list.

1. Google - User Experience Design Intern, 2020 - [link](https://careers.google.com/jobs/results/135002154394886854-user-experience-design-intern-2020/)
2. Wix - Playground - [link](https://www.wix.com/playground/program)
3. `x` company - Product Designer Intern

In the mentioned examples,
1. We all know, Google is a very well-settled company in the industry, financing and planning an internship is a pretty easy job for them.
2. Wix is another mid-sized company, providing an extensive and pretty informative program for a solid career headstart. Of course, that program is unpaid, but the return on investment would give a headstart to one's career.
3. In the third example, we can see a startup company working on a product that's not in the market yet. The same company is looking for an unpaid-internship where they would be treating an intern as a full-time employee, which is an excellent opportunity for an individual to get his hands dirty with real-time products.

I want to ask the DEV community,
1. Is it okay to pursue an unpaid internship? And how would you justify an unpaid internship? How do you measure the worth of an internship?
2. And, is it ethical for an employer to hire an unpaid intern?
3. How would you convince the employer for a certain amount of pay?

---
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/p8xyacyfxhph8nkbvcbv.gif)
myNextProject
Published: 2020-04-29 00:01:57

I have a certification in full stack web development using html, css, javascript, react, node, express, sql, mongo, etc.

I'd say that I only retained about 40% of it. mostly vanilla javascript. My current job is in Python - almost exclusively in a scraping context. 

I have identified a few gaps in my knowledge that I want to work on.

Since I started to do more learning outside of work, I learned Redux and Terraform. I was pretty sure that Terraform would have landed me a job if it werent for Covid-19. Oh well. 

My next project, one that I need some accountability to actually see through, is to use node.js and puppeteer to scrape https://www.footballdb.com/ and create a SQL database. This way I get more node experience, and I can learn a different way of scraping. With the output from the scrapes, I will be able to....make SQL Queries? I dont know what I'm doing with SQL well at all, but I need something where I understand the data if I want to create tables out of it.

So here is my plan written down:
1. Build scrape in node/puppeteer
2. Send output to templated SQL command seed dump...thing
3. ???
4. Profit...in SQL.

It's not a perfect plan. I need to download a SQL program still, and there are other hurdles, I'm sure. Additionally, I am also sure that there are easier ways to achieve this goal, but I want to do it this way as a learning experience.

Any thoughts, comments, or words of encouragement would be wonderful. Thank for reading :)
TIL: CSS "content" accepts alternative text
Tags: css, a11y
Published: 2020-04-29 10:19:06

---
title: TIL: CSS "content" accepts alternative text
published: true
date: 2020-04-29 00:00:00 UTC
tags: css, accessibility
canonical_url: https://www.stefanjudis.com/today-i-learned/css-content-accepts-alternative-text/
---

Developers often use `before` and `after` pseudo-elements ([generated content](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Generated_Content)) for the styling of elements in websites. With a few lines of extra CSS, it is possible to include icons, images, or even add text without adjusting the HTML.

Unfortunately, you have to consider using `content` in pseudo-elements very carefully because it can affect accessibility. Just because your generated content is not defined in the HTML, it doesn't mean that it is not picked up by assistive technology like screen readers.

Let's have a look at an example:

```css
.new-item::before {
  content: "★";
}
```

The above CSS code prepends the `★` symbol (black star) to the inner content of elements with the class `new-item`. And this might be all great from a visual perspective, but for screen readers, it has unexpected side effects.

```html
<a href="new-things">go to new things</a>
```

This anchor link is now presented with the visual symbol of a star. On the other hand, screen readers will now read out "Black star go to new things". This experience is not great!

Today I learned that [the `content` property supports a way to define alternative text for generated content](https://www.w3.org/TR/css-content-3/#alt).

```css
.new-item::before {
  /* "black star" and element content is read out */
  content: "★";
  
  /* "Highlighted item" and element content is read out */
  content: "★" / "Highlighted item";
  
  /* Generated content is ignored and only element content is read out */
  content: "★" / "";
}
```

That's pretty cool because we can now provide alternative texts right in CSS! Unfortunately, at the time of writing, [the overall browser support is not given yet](https://developer.mozilla.org/en-US/docs/Web/CSS/content#bcd:css.properties.content). Firefox ([Bugzilla ticket](https://bugzilla.mozilla.org/show_bug.cgi?id=1281158)) and Safari are missing. 

**Today, you should still use generated content, and this way of handling its alternative text very carefully**. Going with a separate element in combination with `aria-hidden=true` is probably still a better approach these days.
myFirstPost.js
Tags: scrape, node, javascript
Published: 2020-04-28 23:49:36

This is the first time I have had anything resembling a blog since I was a younger teenager. The internet has changed juuuust a bit since then.

A few years ago I felt like I was floating by in life and decided to change careers. I signed up for one of those coding boot camps. I had previous experience doing some extremely basic website design with css standards that were outdated by the mid 2000's. I had no experience in actual programming languages. It was an exercise in banging my head against the wall and hoping for information to come out, but in the end I made a functioning full stack website. Somehow. 

After the bootcamp I found myself with tons of free time. I used all of it on applying to jobs. All of it. There was a lot of conversations that ended with me and the recruiter coming to the conclusion that I wasn't the right choice, and some take home coding challenges that were way above my level. Eventually I got an actual coding job. It was in a different coding language, and that made me uneasy, but it turned out to not be a problem at all. I have learned a lot on the job. Now I am ready to learn more, and I have identified a few areas that I want to focus on, but that will be for my next post. 

If you made it this far, thanks for hearing my story. :)
Top 5 DEV Comments from the Past Week
Tags: bestofdev
Published: 2020-04-28 23:40:58

---
title: Top 5 DEV Comments from the Past Week
published: true
description: Highlighting some of the best DEV comments from the past week.
tags: bestofdev
cover_image: https://res.cloudinary.com/practicaldev/image/fetch/s--7VrAA2ln--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://thepracticaldev.s3.amazonaws.com/i/qmb5wkoeywj06pd7p8ku.png
---

This is a weekly roundup of awesome DEV comments that you may have missed.  You are welcome and encouraged to boost posts and comments yourself using the **[#bestofdev](/t/bestofdev)** tag.

@codemouse92 described the steps they had to take in response to **[Have you ever had to take an ethical stand while on the job as a developer?](https://dev.to/ben/have-you-ever-had-to-take-an-ethical-stand-while-on-the-job-as-a-developer-38ph)**:
{% devcomment o8mh %}

@jwesorick offered a concise explanation in **[How do GitHub Actions work?](https://dev.to/ben/how-do-github-actions-work-kdc)**:
{% devcomment o9cl %}

@thomlom shared their guidance and a generous offer to help in **[What are the absolute top learning priorities for getting the first junior software engineering job?](https://dev.to/sophia_wyl/absolute-top-learning-priorities-for-getting-the-first-junior-software-engineering-job-9ii)**:
{% devcomment o4a9 %}

@bytebodger shared their choice in **[What's your favorite software idiom/aphorism?](https://dev.to/ben/what-s-your-favorite-software-idiom-2cj9)**:
{% devcomment o66h %}

@liquid_chickens had a great answer to the prompt of **[Have there been more reliability incidents lately?](https://dev.to/ben/have-there-been-more-reliability-incidents-lately-15jn)**:
{% devcomment o4ln %}

See you next week for more great comments ✌
The Intimidation Syndrome
Tags: beginners, codenewbie
Published: 2020-04-28 23:12:35

Thousands of articles have been written on Impostor Syndrome. How to overcome it. How to avoid it. But it will keep lingering because new people get into tech every day.

Now, there's another "syndrome" which is comparable to Impostor Syndrome. It's *Intimidation*. It may be seen as part of Impostor Syndrome. It occurs when a 'senior' devs does stuff like 
1. answer a difficult question on a forum/channel filled with juniors
2. write a blog post about a complex concept, etc.

N.B: *Senior* here is relative. Someone with 9 months experience may be viewed as a senior by someone just starting out.

Some newbies and juniors get intimidated by seniors who do those things. Some grow to hate that senior if the senior isn't humble enough. A short term effect is complaining. It may also force the junior to say "what am I doing with my life?". I haven't seen the long term effects. Juniors can definitely see the bright side of it.

## A personal experience
90% of the time, I prevent myself from building cool, functional projects due to
1. laziness
2. learning technologies I don't need to learn

When I see the functional and amazing project a senior built, I:
1. get motivated, 
2. quit slacking and 
3. get building  

I channel the intimidation to my personal growth. Juniors can use intimidation to prevent slacking off and foolish learning. 

## Wrong approach to intimidation
A wrong approach is to take intimidation to heart and always feel inadequate. Here are a few displays of the wrong approach

- This dude keeps doing cool stuff
- I can't even copy the stuff this dude builds, everyone would know I stole it
- This guy has come again with his blog post on ...
- Not this guy again, always intimidating everyone
- Why am I always seeing this guy on every dev site?

Taking this approach is self-defeating. It's best to understand 
1. that experience matters
2. only by pushing yourself would you reach attain the title, 'senior developer'

Also, note that all seniors were juniors sometime in the past. A few still feel intimidated. It goes all the way up. But it doesn't have a stronghold on them. If you're satisfied with your level, intimidation won't be a problem. You shouldn't stop at the basics if you want to be a senior someday. Aim to be better. Draw anger and inspiration from your intimidators and level up. The world hates mediocrity. Don't be the mediocre dev.

So, my dear reader, never take the wrong approach to intimidation. Instead, ask your seniors, heroes or intimidators how they do what they do. No one hires the mediocre dev. You have to stop slacking and being intimidated.

Push yourself to be better every day. We all can't have equal knowledge, but we can help each other, so long we aren't intimidated by each other.
Fix No sound from Speakers problem on HP PCs
Tags: hpprinter, helplinenumber, hppcs
Published: 2020-04-28 22:37:26

You may face No Sound from Speakers Problem on your HP PC anytime which is a very annoying thing. Speakers are a really beneficial part of the device along with the audio, video totally depends on it. Occasionally it stops working confronting situations like no sound is coming out from the speakers or the sound is subdued, irregular, crackling, popping, or biased. So to eliminate any such issue, proceed through the steps given below. For technical help, call on <a href="https://www.hptechnicalhelpnumber.com/">HP helpline Number</a>. Pros will help you to resolve your issue.
Perform the presented steps to eliminate this issue. All these are user friendly techniques which you may perform by yourself.
When there's absolutely no sound coming out of the speakers or the headphones on your computer, the issue could possibly be generated by means of an application controlling that device and thwarting different programs from accessing it. Prior to endeavouring another troubleshooting steps provided under, restart your computer, then check the sound to determine if the issue is fixed or not.
In case the audio problem persists, proceed to another step or contact with HP Helpline Number.
Employ the Audio Check from the HP Service Assistant
Run the Audio Assess in HP Service Assistant to make sure the sound device is functioning correctly.
Go to the HP Service Assistant to download and then set up the HP Service Assistant applications, if it isn't there in your own PC.
In Windows, hunt for HP Service Assistant and start it.
On Your apparatus tab, hit on your PC.
Hit on the Troubleshooting and fixes tab, then click Audio Check from the Click fixes segment.
Click the "Next" choice, and await the sound test to be accomplished.
When the audio isn't heard correctly, click Unable to Hear Audio then perform the onscreen directions.
If the sound issue carries on, proceed to another step.
Execute the sound monitoring tool from Windows to automatically solve the frequent music recording and sound playback problems with your PC.
In Windows, compose find and correct audio into Hunt, or click on the speaker icon in the taskbar and select the Troubleshoot audio issues.
Pick Find and fix sound playback issues or hunt and fix sound recording issues from the Search results.
Pick the device that you wish to troubleshoot, then click the "Next" alternative.
Once the trouble-shooter is finished, the Troubleshooting has completed page displays, list any problems found and what essential changes were made for your PC.
When the proposed action displays, select Apply this fix, or you could skip this measure to continue to look for different issues.
Examine the noise. In case the audio problem exists, you can call on HP Helpline Number for quick help by experts. Follow us on https://bit.ly/2ywYTTi
What’s your alternative solution? Challenge #29
Tags: challenge, javascript, codenewbie, learntocode
Published: 2020-04-28 22:33:14

# About this series

This is series of daily JavaScript coding challenges... for both beginners and advanced users.

Each day I’m gone present you a very simple coding challenge, together with the solution. The solution is intentionally written in a didactic way using classic JavaScript syntax in order to be accessible to coders of all levels.

Solutions are designed with increase level of complexity.

## Today’s coding challenge

```
Create a function that will receive an array of numbers as argument and will return a new array with distinct elements

```

(scroll down for solution)

## Code newbies

If you are a code newbie, try to work on the solution on your own. After you finish it, or if you need help, please consult the provided solution.

## Advanced developers

Please provide alternative solutions in the comments below. 

You can solve it using functional concepts or solve it using a different algorithm... or just solve it using the latest ES innovations.

By providing a new solution you can show code newbies different ways to solve the same problem.

## Solution

```javascript
// Solution for challenge27a

var ar = getDistinctElements([1, 2, 3, 6, -1, 2, 9, 7, 10, -1, 100]);
println(ar);

function getDistinctElements(ar)
{
    var ar2 = [];
    
    for(let i = 0; i < ar.length; i++)
    {
        if (!isInArray(ar[i], ar2))
        {
            ar2.push(ar[i]);
        }
    }
    
    return ar2;
}

function isInArray(n, ar)
{
    for(let i = 0; i < ar.length; i++)
    {
        if (ar[i] === n)
            return true;
    }
    
    return false;
}

```


To quickly verify this solution, copy the code above in this coding [editor](https://codeguppy.com/code.html) and press "Run".

> Note: The solution was originally designed for [codeguppy.com](https://codeguppy.com) environment, and therefore is making use of `println`. This is the almost equivalent of `console.log` in other environments. Please feel free to use your preferred coding playground / environment when implementing your solution.
The Case for Web Components
Published: 2020-04-28 22:31:49

First of all, what are Web Components?

Web Components are basically a set of technologies that provide a standards based  component model for the 'Web'. They create reusable components which is what makes front-end frameworks like Angular popular. 

So, why should you use Web Components?

1.Compatibility

First off, Web Components are a defined standard that is included in the HTML spec. Because they are a standard included in the HTML spec, it means that they have native support and are compatible with the big frameworks. This means you can build re-usable components that can be used across multiple frameworks. 

2.Simplicity

Web components don't do much besides giving you a way of creating reusable components. It doesn't matter how you structure your code. They don't provide state management, data binding, or inter-component communication. Web components are there just to create reusable components while your framework handles the rest.

3.Business Perspective

If you are looking at web components from a development manager or an executive's point of view, they save you money. Developers can focus solely on creating reusable components and using these components in other applications across teams. Teams will be able to build and deploy applications much more quickly. This saves both time and money. 

More information: https://www.youtube.com/watch?v=BW72P6basx8&feature=youtu.be
Monster - Frontend exercise project
Tags: frontend, project, learning, exercise
Published: 2020-04-28 22:07:26

---
title: Monster - Frontend exercise project
published: true
description: Got some free time? Do some exercise
tags: frontend, project, learning, exercise
series: Mini Exercise Projects
---

Hey everyone! Recently started my own YouTube channel in Hungarian.
I've created a few videos about learning projects, but they are in Hungarian so I can't share it with the world. But... My dear friend translated the text to English so everyone can enjoy these exercises!

English version can be found here:
https://github.com/david-szabo97/dv-mini-project-monsters/blob/master/README.en.md

All the files you need to complete the project are in the repository.

![Wireframe](https://dev-to-uploads.s3.amazonaws.com/i/tulk8abc77rh26er415d.png)
How to extend Vert.x EventBus API to save on serialization.
Tags: sip3, kotlin, vertx, performance
Published: 2020-04-28 21:03:39

Alexey Soshin has a great blog post: [Understanding Vert.x: Event Bus](https://medium.com/@alexey.soshin/understanding-vert-x-event-bus-c31759757ce8). In the blog post he explains how to extend `MessageCodec` interface and start sending objects via Event Bus without paying anything for serialization.

[SIP3](https://sip3.io) is a monitoring and troubleshooting platform that has to handle hundreds of thousands SIP packets and millions of RTP packets per second. That's why we've started using this approach from the very beginning. However, as a Kotlin users, we couldn't do not add some sugar :candy::lollipop::cake:.

Here is our recipe: 

### :candy: Register `MessageCodec`

Let's use Kotlin method extensions to define our local codec:

```kotlin
fun Vertx.registerLocalCodec() {
    eventBus().unregisterCodec("local")
    eventBus().registerCodec(object : MessageCodec<Any, Any> {
        override fun decodeFromWire(pos: Int, buffer: Buffer?) = throw NotImplementedError()
        override fun encodeToWire(buffer: Buffer?, s: Any?) = throw NotImplementedError()
        override fun transform(s: Any?) = s
        override fun name() = "local"
        override fun systemCodecID(): Byte = -1
    })
}
```

All is left is just to register our codec explicitly while initializing `Vertx` object.

### :lollipop: Extend `EventBus`

Kotlin has two great features - method extensions and named arguments. We decided to use a combination of those to introduce a custom method called `localSend`:

```kotlin
object EventBusUtil {

    val USE_LOCAL_CODEC = deliveryOptionsOf(codecName = "local", localOnly = true)
}

fun EventBus.localSend(address: String, message: Any, options: DeliveryOptions? = null) {
    options?.apply {
        codecName = "local"
        isLocalOnly = true
    }
    send(address, message, options ?: USE_LOCAL_CODEC)
}
```

### :cake: Just enjoy

Now we can start sending messages within the application without paying for serialization:

```kotlin
fun main() {
    val vertx = Vertx.vertx()
    vertx.registerLocalCodec()

    val answer = BigDecimal(42)
    vertx.eventBus().localSend("question", answer)
}
```

I hope you loved the approach and will start using it in your projects. If you have any questions, just leave me a message :smile:

Happy coding...
All the Hooks Series: Learn about the built-in React Hooks
Tags: react, reacthooks
Published: 2020-04-28 21:55:13

---
title: All the Hooks Series: Learn about the built-in React Hooks
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/is2h5357av9igwny7n5q.jpg
published: true
description: This series of posts will focus on getting familiar with the different React hooks you'll run across. React hooks are here since React 16.8, so getting familiar and comfortable with them is great for leveling up your React skills.
tags: react, react hooks
series: All the Hooks Series
---

This series of posts will focus on getting familiar with the different React hooks you'll run across. React hooks are here since React 16.8, so getting familiar and comfortable with them is great for leveling up your React skills. 

Note that I will focus on how to use hooks without referencing how things were done with classes. I personally started learning React shortly before hooks were released, and I found them so much simpler and more sensible that most of the tutorials trying to compare to classes just confused me more. So I wanted to start a series showing how to use these hooks without trying to make a comparison to the old way of doing things.

I will be covering the following React hooks, starting with the basics and then deep diving into more advanced topics around each of these hooks:

- useState
- useEffect
- useCallback
- useContext
- useReducer
- useLayoutEffect
- useRef
- useMemo

Follow me on DEV.to or on Twitter if you would like to know as soon as I publish a post in this series! 🔥