teleren/devto huggingface dataset:
The 7 Most Popular DEV Posts from the Past Week
Tags: top7
Published: 2019-04-08 16:38:37

---
title: The 7 Most Popular DEV Posts from the Past Week
published: true
description: A round up of the most-read and most-loved contributions from the community this past week.
tags: icymi
cover_image: https://thepracticaldev.s3.amazonaws.com/i/sfwcvweirpf2qka2lg2b.png
---
Every Monday we round up the previous week's top posts based on traffic, engagement, and a hint of editorial curation. The typical week starts on Monday and ends on Sunday, but don't worry, we take into account posts that are published later in the week. ❤️

#1. The Who's Who of JS

Emma shares a list of her favorite JS teachers! These are good people to know if you're looking for new courses, blogs, or podcasts to learn from.


{% link https://dev.to/emmawedekind/my-favorite-teachers-in-the-javascript-community-53h %}

#2. What's a user story?

Fred clears the fog around users stories and encourages us to start talking about capabilities and features. 

{% link https://dev.to/redfred7/enough-with-the-user-stories-already-2a8a %}

#3. Stop searching!

Anna discusses the benefits of structured knowledge: filling in knowledge gaps and increasing confidence.

{% link https://dev.to/lightalloy/learning-to-love-software-development-books-5e4 %}

#4. Cracking That Code

A list and overview of recommended courses that are designed specifically to help devs get through the dreaded coding interview. 

{% link https://dev.to/javinpaul/10-data-structure-algorithms-sql-and-java-courses-to-crack-any-programming-job-interview-11f6 %}

#5. The query runs and runs and...runs.

Before rage quitting, Helen suggests ten things we should look into to see what's slowing things down.

{% link https://dev.to/helenanders26/sql-201-10-ways-to-tweak-slow-running-queries-3pkb %}

#6. Don't get scammed!

>The world is a scary place, and everyone is out to get you. 

Katerina tells us what to watch out for so we don't get tricked by social engineering scams.

{% link https://dev.to/kathyra_/protect-yourself-from-social-engineering-3ihk %}

#7. So Meta

John, an author of many articles, shares his writing process with us from markdown to private repos to publishing.

{% link https://dev.to/azure/how-i-write-online-articles-1lfb %}

_That's it for our weekly wrap up! Keep an eye on dev.to this week for daily content and discussions...and if you miss anything, we'll be sure to recap it next Monday!_
Building My Own Markdown Compiler (1/?)
Tags: racket, lisp, markdown
Published: 2019-04-08 15:52:57

---
title: Building My Own Markdown Compiler (1/?)
published: true
description: In which I learn Racket, the language I'll be using to write the compiler.
tags: racket, lisp, markdown
---

After spending a lot of time on [gwern.net](https://www.gwern.net/) which was written in Haskell, and reading Matthew Butterick's e-books, which were written in a markup lang built in Racket, I've decided that there are certain custom features I want from Markdown for personal website reasons that aren't provided in the vanilla spec. So, as is the novice dev way a lot of the time, I decided it'd be a fun learning experience to write my own website compiler. I'm currently reading Realm of Racket to get acquainted with the language, and plan on reading Beautiful Racket (by Butterick) afterwards, as trying to read the latter without some sort of primer or foundational knowledge was a little dry and overwhelming. I also think it's just much easier for me to read on my Kindle than it is to internalize the same info through a computer screen.

In the spirit of Realm of Racket, I've decided to chronicle my adventures here, and keep a log of the things that I enjoyed, as well as the things that slowed me down or acted as obstacles.

Et cetera:

* Large exponents (e.g. 50 ^ 50) are calculated flawlessly in Racket for reasons I don't yet understand, which is immensely neat.
* I think learning Racket could be a great intro into learning Clojure, which I also want to do.
Underrepresented Ideas in Coding Pedagogy
Tags: pedagogy, cs, learning, tutorials
Published: 2019-04-08 15:40:38

---
title: Underrepresented Ideas in Coding Pedagogy
published: true
description: A collection of CS pedagogy ideas that I really like and wish were practiced more
tags: pedagogy, cs, learning, tutorials
---

## Approaching coding as literacy

As many people have remarked (especially in [this twitter thread](https://twitter.com/leftoblique/status/1114951714807791616)), teaching people to read code before writing it could be a way forward for many CS students. Having students work through coding literacy problems during class would not only prepare them for certain kinds of interviews, but also establish a healthy paradigm of reading existing code that might prevent things like "not invented here" syndrome and a desire to scrap existing contributions to a project and re-write it all yourself.

## Providing optional curricular pathways to match people's optimal learning strategies

Different people learn in different ways. I didn't really understand functions in programming until I understood that they were (ideally, and ignoring side-effects) equivalent to functions in math (i.e. that they were a mapping). Lesswrong's Screwtape [wrote a great essay](https://www.lesswrong.com/posts/Q924oPJzK92FifuFg/write-a-thousand-roads-to-rome) about why presenting the same concept in a variety of ways is important and effective.

## Weaker Ideas

### Learning functional programming as part of the core curriculum

I wish I had been exposed more to functional programming from the beginning! We touch on recursion in school, and I feel comfortable writing my own tree traversal functions, but outside of that it was hardly used. For example, I wonder why LISPs aren't taught as a core programming family alongside the normal ALGOL languages (C, Ruby, Python, Java, Javascript, etc).

### Encouraging students to write tutorials based off what they learn

It would give students experience with real writing that other real humans might read (versus things only your TA will read), and help you internalize what you've learned in a class.

### Redesign of class structure

I learned far more in intensive classes that only took a few weeks but occupied all my class time than I did in semester-long classes that only met for a few hours per week. Juggling 5 disparate classes becomes a meta-task of figuring out how to do just enough work in each to stay afloat, because you don't have the time or energy to fully devote yourself to more than one or two courses at a time.

Having one class at a time (with breaks frequently throughout the day) means you can really invest yourself mentally and emotionally into the material, *and* it prepares you much more for most jobs.

### More lab time

The only way you can guarantee that a student is learning something is by giving them time in a space where they have to be working on it. As a recent grad, I always felt I learned much more quickly in a lab, with access to a TA or two, than I did on my own or in lecture. I also got work done at a much faster rate.
Python-like range iterator in Javascript
Tags: javascript, programming, generators, tutorial
Published: 2019-04-08 15:20:55

---
title: Python-like range iterator in Javascript
published: true
description: Python-like range iterator in Javascript
tags: javascript, programming, generators, tutorial
---

For mocking some data for tests or fill some array with fake data or whatever, sometimes I miss the python range iterator in Javascript.


```python
myList = [0,1,2,3]
for i in range(0, len(myList))
    print i
```

With the not so new by now specific of Javascript we can "generate" our own iterators.

An implementation of range could be this one:

```javascript
function range(start = 0, end, step = 1) {
  return {
    *[Symbol.iterator]() {
      let newStart = start,
        newEnd = end;
      if (end < start) {
        newStart = end;
        newEnd = start;
      }
      for (let i = newStart; i < newEnd; i += step) {
        yield i;
      }
    }
  };
}

// forward
for (let element of range(0, 10)) {
    console.log({ element });
}

// and backwards
for (let element of range(0, -10)) {
    console.log({ element });
}
```

We can write an even simpler implementation just writing the generator function.

```javascript
function* range(start = 0, end, step = 1) {
  let newStart = start,
    newEnd = end;
  if (end < start) {
    newStart = end;
    newEnd = start;
  }
  for (let i = newStart; i < newEnd; i += step) {
    yield i;
  }
}

// forward
for (let element of range(0, 10)) {
    console.log({ element });
}

// and backwards
for (let element of range(0, -10)) {
    console.log({ element });
}

```

Of course you **must** use the new for-of in order to iterate over it.

Just remember that the function returns always an iterator under the hood. So we can always easily take the iterator in this way if needed.
```javascript
const it = range(0, 5)[Symbol.iterator]();
console.log(it.next()) // { value: 0, done: false }
console.log(it.next()) // { value: 1, done: false }
```
Parallax, Cityscapes, Discover text | Module Monday 35
Tags: showdev, opensource, webdev, javascript
Published: 2019-04-08 15:19:33

---
title: Parallax, Cityscapes, Discover text | Module Monday 35
published: true
description: Module Monday 35
tags: showdev, opensource, webdev, javascript
cover_image: https://res.cloudinary.com/component/image/upload/b_rgb:ffffff,c_lpad,h_350,w_800/v1554610902/parallax_20_bjmrls.gif
canonical_url: https://guide.anymod.com/module-monday/35.html
---

## Open-source web modules you can use anywhere

All the mods below are open source and free to use in any project you choose. [Anymod](https://anymod.com) lets you quickly add features to any website or web app.

Click a mod to see it in action along with its source code.

## Parallax image section
Add an editable parallax image anywhere.
<a class="btn btn-sm" href="https://anymod.com/mod/alarkb?v=20&preview=lorem">View mod</a>
<a href="https://anymod.com/mod/alarkb?v=20&preview=lorem">
  <img src="https://res.cloudinary.com/component/image/upload/v1554610902/parallax_20_bjmrls.gif"/>
</a>

## Discover text
For a hidden message revealed by moving shapes.
<a class="btn btn-sm" href="https://anymod.com/mod/nkaobo?v=20&w=640">View mod</a>
<a href="https://anymod.com/mod/nkaobo?v=20&w=640">
  <img src="https://res.cloudinary.com/component/image/upload/v1554663522/discover-message_as1krr.gif"/>
</a>

## Cityscape
Click & hover to see more in this cityscape by Jackie Zen
<a class="btn btn-sm" href="https://anymod.com/mod/mlnakn?v=20">View mod</a>
<a href="https://anymod.com/mod/mlnakn?v=20">
  <img src="https://res.cloudinary.com/component/image/upload/v1554662087/cityscape_ynbzzh.gif"/>
</a>

## Graphic cards
Responsive cards for introducing your content
<a class="btn btn-sm" href="https://anymod.com/mod/ramodd?v=20">View mod</a>
<a href="https://anymod.com/mod/ramodd?v=20">
  <img src="https://res.cloudinary.com/component/image/upload/v1554663879/cards_mzqej5.png"/>
</a>

## Learn more button
A nice hover effect to increase engagement
<a class="btn btn-sm" href="https://anymod.com/mod/bamrnn?h1=33&h2=87&v=40">View mod</a>
<a href="https://anymod.com/mod/bamrnn?h1=33&h2=87&v=40">
  <img src="https://res.cloudinary.com/component/image/upload/v1554610901/learn-more_fbigrl.gif"/>
</a>

<hr>

I post new modules [here](https://dev.to/tyrw) every (Module) Monday -- I hope you find them useful!

Happy coding ✌️
Have you received really [great|terrible] feedback?
Tags: discuss
Published: 2019-04-08 14:56:30

---
title: Have you received really [great|terrible] feedback? 
published: true
description: Share your stories of feedback you've received, both good and bad and what you took away from it.
tags: discuss
cover_image: https://thepracticaldev.s3.amazonaws.com/i/untwa8m09xaqloj7iloz.jpg
---

I've been mulling over writing an article about feedback for quite a while, especially when it comes to conference talks and workshops. I totally read the comments with the goal of improving my talks. Often the feedback is super not helpful. I want to help folks better frame their feedback especially if they are taking the time to give it. 

I'm super curious what kind of feedback others have experienced whether it's for articles you have shared, reviews at work, or conference talks. What works for you? Is anonymous feedback helpful?
Introducing our April 2019 sponsors
Tags: meta
Published: 2019-04-08 14:54:17

---
title: Introducing our April 2019 sponsors
published: true
description: Our wonderful sponsors are vital to the health of dev.to and it is great to work with companies contributing so much to the ecosystem.
tags: meta
cover_image: https://thepracticaldev.s3.amazonaws.com/i/f1xtqfychbjwfh5j4csu.png
---

This April, we return two March sponsors and introduce a new partner for the month.  Thank you to each of those companies for being valuable DEV Community partners and supporters.

Please take a few minutes to explore their offerings and consider them for your company or next project.


## DigitalOcean

[DigitalOcean](https://do.co/devto) is a much-loved cloud computing platform. I'm always impressed by how well-built _and well-documented_ the DigitalOcean core products are. It's easier said than done, and they've been able to stay ahead of the curve.

DigitalOcean has been our longest-running supporter to date, and we're extremely thankful for their consistent support.  Their commitment to the developer ecosystem is crystal clear.

## GoCD

[GoCD](https://www.gocd.org/?utm_campaign=dev_to&utm_medium=dev_homepage&utm_source=logo_link&utm_content=gocd_homepage&utm_term=) is a continuous delivery tool built by Thoughtworks, one of the most reputable software development firms we've ever dealt with.

This is a feature-rich tool with some really fabulous visualization. Definitely worth considering for your organization or project. The product is very well supported through documentation, resources, and of course, the open source community. Very much worth checking out.

## Scout

[Scout](https://scoutapm.com/?utm_source=dev_to&utm_medium=sponsor&utm_campaign=homepage) is an application monitoring tool that tracks down N+1 database queries, sources of memory bloat, performance abnormalities, and more.
Get back to coding with Scout. Scout integrates with Ruby, Elixir and Python apps.

Tools like this are incredibly important for applications, such as [dev.to](/) in order to maintain performance and scale. We have recently integrated Scout alongside our other tools and will be reporting on some of the improvements we make using Scout. 

***

These organizations are helping us build the best community we can. I urge you to check out their offerings if you are in the market for their services.

Happy coding ❤️
Spin up a "local" instance of DEV in the cloud with GitPod (It's incredibly simple)
Tags: contributorswanted, gitpod, opensource, docker
Published: 2019-04-08 14:51:27

This PR came in over the weekend:

## [🔗 Automated DEV setup using Gitpod](https://github.com/thepracticaldev/dev.to/pull/2321)

It allows you to spin up the [dev.to](/) codebase "locally" in your browser with the click of a button.

Within minutes, I was looking at a local instance of the application with all the expected dummy data:

![](https://d1sz9tkli0lfjq.cloudfront.net/items/1C2e0F3C1Q37450c3q38/Image%202019-04-08%20at%2010.30.31%20AM.png)

_Yes, that's a screenshot of my browser window._

It is everything we had hoped for. We had been trying to make the codebase friendly for this kind of setup for a while, and this is the culmination. In my estimation, complicated setup is the number one thing stopping people from pitching in when they want to contribute to open source.

The setup for our Rails app and all the dependencies can be a breeze if everything goes well, but if it doesn't go smoothly you'll find yourself in `rbenv` hell trying to get your versions right and wondering why these random C extensions won't install.

Running the app in Docker helps, but it's still a burden. Enter GitPod. Spinning up the app in such a simple way is the dream, and we have arrived.

There are still hiccups and gotchas, but the happy path right now is really smooth. At the moment, we still have some service dependencies like Algolia and our auth services GitHub and Twitter, which slow down the process of spinning up the app set up, depending what you are looking to do. But I hope we can get some of this stuff mocked and/or become vendor agnostic with some of the features we have.

To try this for yourself, go to [our docs](https://docs.dev.to/installation/gitpod/) and find this button:

![](https://cl.ly/9b33027bfd31/Image%202019-04-08%20at%2010.45.26%20AM.png)

Follow the instructions on getting your keys set up, and then give the app time to set up and boot up (this could be faster in the future). And just like that, you'll be able to fiddle with the codebase. Pull requests are welcome!

_Edit:_

I didn't realize just how new GitPod was, but it looks like they made a launch post just today:

{% link https://dev.to/svenefftinge/introducing-gitpod-frictionless-coding-on-github-397g %}

Cool stuff, thanks for being part of the community, GitPodders.
Coding Puzzles: Week of 4/8
Tags: challenge, codingpuzzle
Published: 2019-04-08 14:40:48

I'm bringing back the coding puzzles after a few month hiatus!

Every day, I post coding puzzles. These are quick coding challenges that increase in difficulty across the span of the week -- with Monday being the most beginner friendly and Friday being super tough. I love seeing other people's solutions as well, and so people post their solution to the problem in any programming language.

[Here's more about them.](https://dev.to/aspittel/daily-coding-puzzles-4ce9)

I wanted to try posting these here. I'm going to post each question from this week as a comment below, and then we will thread answers under those questions.

I'll be adding in the questions each day, so stay tuned and come back for more 😊

Excited to see your solutions!
What applications or tools do you wish existed? 
Tags: discuss, apps, tools
Published: 2019-04-08 14:14:58

---
title: What applications or tools do you wish existed? 
published: true
description: Be wild, be bold
tags: discuss, apps, tools
---

We all use a lot of applications and tools today. To automate, manage, ease your workflow our your daily lives, you have on your phone, tablet or computer tools and applications that make life easier.

But, sometimes you tell yourself: *That would be really cool if there was an app for THAT.* What is **that** for you? What would you love to use on a daily basis that doesn't exist today, or exists, but not the way you would like it to be?
[Antisèche] Apache Spark : structure d'une application Spark
Tags: bigdata, spark
Published: 2019-04-08 14:11:05

---
title: [Antisèche] Apache Spark : structure d'une application Spark
published: true
description: 
tags: #BigData #Spark 
---

![alt text](https://s2.qwant.com/thumbr/700x0/5/f/23b0aa7c1c9d8d187d44ea44b28c2b418802ecd6a5a2f7c1fe4b6ea5688676/spark-logo.png?u=http%3A%2F%2Fimages.sundog-soft.com%2Fsds%2Fwp-content%2Fuploads%2F2015%2F10%2Fspark-logo.png&q=0&b=1&p=0&a=1)

Dans cette petite antisèche nous allons revenir sur les différents éléments qui constituent une application Apache Spark. Nous allons y définir les principaux éléments qui structurent une application Spark.

#Driver

Le Driver est responsable de la création du SparkContext et de l'exécution de la fonction main() de l'application. C'est le Driver qui traduit l'ensemble des actions et transformations de votre application en DAG (Direct Acyclic Graph)

#Executor

Un Executor est responsable de l'exécution d'une tâche i.e. une portion de l'application Spark définie par le Driver. Un exécuteur conserve les données en mémoire ou sur disque.

#Task

Une tâche correspond à une unité du programme qui sera traitée par l'exécuteur.

#Job

Correspond à une exécution parallèle de plusieurs tâches. Un job est créé lorsqu'une action est appelée dans le programme.

#Stage

Un job est divisé en un ensemble de tâches interdépendantes appelées "stages". Chaque "stage" est une étape dans laquelle il y a une ou plusieurs transformations appliquées dans des tâches.

#Structure de l'application

Une application Spark débute par l'initialisation de SparkContext/SparkSession. Un ou plusieurs *jobs* sont alors créés. Chaque job est contient de *stages*. Chaque stage est composé d'une ou plusieurs *tasks*.  

![alt text](https://thepracticaldev.s3.amazonaws.com/i/vc2jhh4auw60g7w540ih.jpg "Structure d'une application Spark")
presentation on git and its workflow
Tags: git, discuss, gitworkflow
Published: 2019-04-08 14:00:13

---
title: presentation on git and its workflow
published: true
description: git and its workflow
tags: git, discussion, gitworkflow
---

I am going to give presentation on git and its workflow this Friday.
I just want to give as much information as i can.
so i would be very grateful if i get some help from here.
  
What do you think what are the things i should not miss?
What type of workflow is your organization following?
Is there anything else i should consider?
Get to know a database integrator / Ask Me Anything!
Tags: career, data, beginners, ama
Published: 2019-04-08 13:28:08

---
title: Get to know a database integrator / Ask Me Anything!
published: true
description: So nice to chat with Alan Hylands
cover_image: https://katiekodes.com/images/chibi_smaller-wide.png
tags: career, data, beginners, ama
---

If you didn't already know ...

{% user alanhylands %}

Alan Hylands from Simple Analytical is [doing a _great_ series](https://simpleanalytical.com/category/interviews/analysts-assemble/) about people working in many corners of the "data" field.  Analysts, programmers, managers, scientists, and more -- if you haven't read it yet, you should!  There's a new interview every week.

I'm still mind-boggled to be in the series, and honored.

[You can read my story on Alan's blog](https://simpleanalytical.com/analysts-assemble-qa-with-katie-kodes/) to learn more about:

* how a **humanities** major ended up **programming databases** to talk to each other
* what that job looks like as a typical day at the office

Then if you have any questions, come on back and Ask Me Anything!  😜

Thanks again, Alan, and can't wait to read your upcoming interviews.
Welcome Thread - v32
Tags: welcome
Published: 2019-04-08 13:27:11

---
title: Welcome Thread - v32
published: true
description: Introduce yourself to the community!
tags: welcome
---

Hey there! Welcome to dev.to!

![A brown and white dog pops up and waves hello!](https://media.giphy.com/media/bcKmIWkUMCjVm/giphy.gif)
Leave a comment below to introduce yourself to the community! ✌️

Here are some ideas to get you started:

1. You can talk about what brought you here, what you're learning, or just a fun fact about yourself.

2. Reply to someone's comment and say hello or ask them a question. 👋

3. Or answer this question: What's one of your favorite projects you've worked on, and why?
The Building an Indie Business Podcast- How to Add Dark Mode to Your Website in Vanilla JavaScript
Tags: podcast
Published: 2019-04-08 13:02:18

---
title: The Building an Indie Business Podcast- How to Add Dark Mode to Your Website in Vanilla JavaScript
published: true
description: 
tags: podcast
---

https://overcast.fm/+RG5i2fF24

[Episode Page](https://baib-podcast.com)
[Revenue Research](https://revenueresearch.co/)