teleren/devto huggingface dataset:
Manage project from start to end
Tags: discuss, idea, productivity, projectmanagement
Published: 2019-12-20 20:04:01

Hey all,

Just wanted to know your ideas and approches which used to manage a software project from start to end. how do you start your work, how do you release something for production first. how long normally you take to do that.how to define basic features that you need to have in the project? What kind of architectural approch you take when you start something first? How to decide the tech stack?
Beginning At The Beginning Of The Beginning
Tags: advice, help, beginners
Published: 2019-12-20 19:47:45

I am new. Not just to dev.to, but to the developer world, in general. I have no formal background in CS, and no genuine experience in it. I am starting. I have heard/read many thing about self-taught devs taking courses at/in Udemy, utilizing khan Academy, and EdX (I, too, briefly took CS50x via EdX but life complications came up, and I had to drop it).

So I will get to the point - if you had three (or perhaps more) suggestions on where to start with Web development (I know a bit of HTML, CSS, but feel I must learn JS), where would those places/resources be?

Such as: 

- online courses
- must-read books for starting in Web development
- general advice

Thank you for your responses :)
Use TypeScript to Create a Secure API with Node.js and Express: Getting Started
Tags: typescript, node, api
Published: 2019-12-20 19:12:04

---
title: Use TypeScript to Create a Secure API with Node.js and Express: Getting Started
published: true
description: Learn how to set up TypeScript in Node.js and the Express framework using webpack's Hot-Module Replacement.
tags: #typescript #nodejs #api
canonical_url: https://auth0.com/blog/use-typescript-to-create-a-secure-api-with-nodejs-and-express-getting-started/
---
Learn how to build a feature-complete API using Node.js, Express, and TypeScript that lets clients perform data operations on resources that describe a restaurant menu. Using TypeScript with Node.js gives you access to optional static type-checking along with robust tooling for large apps and the latest ECMAScript features.

Learn also how to define data models, create a data service, and quickly build modular endpoints. As an option, you can also learn how to secure the API using Auth0. To see your API in action, you’ll use a production client called “WHATABYTE Dashboard,” which is inspired by the sleek web player from Spotify.

[Keep reading 🚀] (→ https://auth0.com/blog/use-typescript-to-create-a-secure-api-with-nodejs-and-express-getting-started/?utm_source=dev&utm_medium=sc&utm_campaign=typescript_secureapi)
Most performant DB for CRUD app
Tags: mysql, mongodb, architecture, redis
Published: 2019-12-20 18:02:05

I'm looking into creating a CRUD app that handles around ~100k of rows which can go bigger and has some API Calls that runs on that data. I will be doing many SELECT/UPDATE/DELETE/INSERT over this data which contain webpages text that are long.

Also there would be there another table for logs which gonna be big (has long text of around 300-400 character).

When to consider using MySQL over MongoDB or Elasticsearch and vice versa, I searched on google and saw benchmarks showing that MySQL is faster than MongoDB in select/update/insert/delete queries (1k/10k/100k rows) which is kinda confusing as MongoDB is being stated that its better when data grows bigger, I haven't used MongoDB or Elasticsearch before just MySQL.

I would appreciate your help so much.

[Benchmark][1]


  [1]: https://github.com/webcaetano/mongo-mysql
Introduction 
Tags: django, python, webdev, javascript
Published: 2019-12-20 17:35:24

**The Project**
In this series we'll  be building a fullstack django application to give a great understanding of how django works, we'll then continue by separating our frontend from our backend and then hook them up with an **API** `Django Rest Framework` and finally prepare our app for production..

I'm very excited about this and I hope you are too..😊

In the next post we'll plan our project and start the necessary configurations..
sPlice !== slice
Tags: javascript, codenewbie, webdev
Published: 2019-12-20 16:38:21

---
title: sPlice !== slice
published: true
description: A brief post on the difference between .splice() and .slice() array methods in javascript
tags: javascript, codenewbie, webdev
---

This is a short post for my future self.
Hi Pablo! Back here already? Yeah, I know, splice, slice, which one is it?? But don't worry, you've got this, only this time we're writting it down!

So, long story short: do you want your array to be **mutated**? Really? Well, go ahead, **sPlice** the hell out of it. See what I did there? Capital **P**, as in "**P**roduces Side Effects, **P**al!"

Why, you ask? Because...
>The splice() method *changes* the contents of an array by removing or replacing existing elements and/or adding new elements.
see [MDN Docs] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)

---

Conversly, **.slice()** method will graciously return the desired data, keeping your beloved original array **un**mutated. Just tell it where to start and finish (optionally)... slice will comply, no questions asked:
>The slice() method returns a *shallow copy* of a portion of an array into a new array object selected from begin to end (end not included) where begin and end represent the index of items in that array. The *original array will not be modified*. see [MDN Docs] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)


You can search the webs for examples and more in depth docs, but this should make it easier next time you hit the mental crossroad... splice or slice, you choose (wisely, now)...
Fakaza Amapiano
Tags: fakaza, amapiano, gqom
Published: 2019-12-20 16:19:52

Hello guys i am a blogger at https://fakazaamapiano.com
I aslo edit for <a href="https://fakaza2019.org">Fakaza</a> where we promote young and talented kids on<a href="https://fakazaamapiano">Amapiano</a> and <a href="https://fakaza2019.org">fakaza music</a>
Technical Interview Feedback: What should a hiring manager consider when creating a coding challenge?
Tags: challenge, hiring, career, codequality
Published: 2019-12-20 15:54:06

(dev, data scientist, & hiring manager here)

First, I know there's a lot of argument about the merits and fairness of coding challenges for interviews. I'm not here to debate that. Our company has decided that they are valuable and necessary for our needs.

Given that decision, what are some things we should keep in mind when creating a coding challenge? What do you like/don't like? Looking for feedback on:

- Types of questions (algorithms, data structures, code review, language/framework-specific, etc.)
- Question format (pure code, pseudo-code, multiple choice, draw schematics, etc.)
- In-person/take home
- Time limit
- Difficulty
- Length
- Candidate feedback
- Other?

What turns you off? What do you appreciate as a candidate?

We're considering Qualified.io (makers of Codewars) or HackerRank. Others? (Does anyone know if TopCoder offers employer-facing versions.)

Thanks, ya'll!
🐶 SVG and DOM Events: Rx+JSX experiment updates
Tags: webdev, javascript, rxjs, showdev
Published: 2019-12-20 15:48:46

With `0.0.8` update [Recks](https://github.com/recksjs/recks) receives SVG support 🖼

```jsx
function App() {
  return <svg width="300" height="200" stroke="#16b3ff" fill="white">{
    range(0, 200, animationFrameScheduler).pipe(
      map(r => <circle cx="150" cy="100" r={r / 4} />),
      repeat()
    )
  }</svg>
}
```

Run this example:

{% codesandbox 4sqof module=/src/App.jsx runonclick=1 %}

<figcaption>NOTE: you can drag-open the code editor from the left side</figcaption>

## Also event Subjects

Note that `0.0.7` update lets us pass Observers as event handlers 🔥:

```jsx
function App() {
  const clicks$ = new Subject();

  const count$ = clicks$.pipe(
    startWith(0),
    scan(acc => ++acc)
  );

  return <button onClick={clicks$}>Clicked {count$} times</button>
}
```

Run this example:

{% codesandbox 16vmu module=/src/App.jsx runonclick=1 %}

## Try it!

To try [Recks](https://github.com/recksjs/recks) locally, run:

```
git clone https://github.com/recksjs/recks-starter-project.git
cd recks-starter-project
npm i
npm start
```

Have fun!

☝️ **If you want to be the first** to hear about project updates — be sure to follow me here, on [twitter](https://twitter.com/kddsky), or watch the project directly @ [github](https://github.com/recksjs/recks)!

## The End 🐕



_header photo by [Patrick Hendry](https://unsplash.com/@worldsbetweenlines?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)_
DNS lookup for local IP
Tags: webdev, dns, pwa
Published: 2019-12-20 15:37:31

Sometimes when testing you want to have easy access to your machine. For example, when building and testing a Progressive Web App running on your development machine, you probably want to test it from your phone as well. In a lot of situations, it is sufficient to just type in the IP address of your dev machine (assuming it's on your local network) and browse it. But in the case of a PWA, you need to have the website running on HTTPS. 

##How?

I registered a short domain name, c0dr.nl, and got a wildcard SSL certificate for that. I used [DigiCert](https://digicert.com), but [LetsEncrypt](https://letsencrypt.org) will work just as fine. Now instead of setting up a host with storage and such, just configure the DNS settings. I added an _A_ record with an easy name, for example: 'twitch'. For the IP address, you'll have to add your _local_ address. Not the one you got from your ISP, but the one you got from your local DHCP or that you entered in the IP settings. In my case, it's 192.168.1.13. That happens to be the same address I used for testing my PWA in the first place. 

![ISP DNS A-Record](https://thepracticaldev.s3.amazonaws.com/i/jhgtuqg8vcbix5xd8quo.png)

What's left is to make sure that whatever you use to run your web app is using the certificate. 

One last note. You don't have to use a wildcard certificate. But it will give you a little bit more flexibility when your IP address changes. You might work in different locations. At home and at the office. You can set up two different subdomains for that. If you only need one, use an '@' instead of a name in the _A_-record.
Giving Thanks for Diversity in Tech: Keziyah Lewis
Published: 2020-01-07 00:22:52

---
title: Giving Thanks for Diversity in Tech: Keziyah Lewis
published: true
date: 2019-12-20 15:25:50 UTC
tags: 
canonical_url: https://www.thisdot.co/giving-thanks-for-diversity-in-tech-keziyah-lewis
---

![046](//images.ctfassets.net/zojzzdop0fzx/1pcOzoujmfsev7f8NAeC76/266a230427173711438811363c644066/046.jpg)

Keziyah Lewis is a frontend web developer for Webflow, who works mostly with React.

Though she has not delivered a talk just yet, Keziyah is a very active community member.  She runs <em>Juniors in Tech</em>, a newsletter for people who have recently started in the industry, or who are interested in breaking into web development.

As evident by her publication, Keziyah is really passionate about diversity and inclusion, as well as cultural change within the web development industry, “I'm very concerned with how tech treats employees,” she shares, “A lot of folks are overworked, discriminated against, exploited, and mistreated.”  But Keziyah will tackle some of these topics in her upcoming talks at YouGotThis in January, and Refactr.tech in April!

When asked about what diversity and inclusion mean to her, Keziyah said that, “Inclusion to me is a part of justice. Historically, certain groups of people have been treated unjustly and thus excluded. Inclusion means making up for those injustices by including them in places where they once did not belong. Individuals and institutions in tech can make the industry more inclusive by advocating for groups of people who have been historically treated unfairly.”

Keziyah is not only a proponent of industry advocacy, but of mentorship as well, encouraging women interested in entering web development to, “Find a mentor or a community to help you along the way.”

When Keziyah is not coding or getting ready for her speaking debut on the 2020 conference circuit, she enjoys lifting, traveling, reading and watching sci-fi, and, of course, spending way too much time on Twitter (her words, not ours!). 

To find out more about all of the great work that Keziyah does for the web development community, you can find her on Twitter [@KeziyahL](https://twitter.com/KeziyahL).
Make gatsbyjs build fast
Tags: gatsby, amplifyconsole, build
Published: 2019-12-20 15:12:37

Because build is not incremental, one way to make gatsbyjs build fast is to keep as much thing you can in cache .

One way to do this in Amplify Console is:
 
```Json
    build:
      commands:
        - nvm use $VERSION_NODE_12
        - yarn run build
  artifacts:
    baseDirectory: gatsby/public
    files:
      - '**/*'
  cache:
    paths:
      - gatsby/public/static/**/*
      - gatsby/node_modules/**/*
```
Is it okay for not English people to open a blog written in English?
Tags: discuss, writing, blog, blogging
Published: 2019-12-20 14:59:05

I’m Italian and I have a blog. I can speak and read in English, with obvious flaws. The stuff on the web is written in English for the most part, since it’s one of the most common languages. Since I want to have a big audience, I started writing in English on my blog, to reach a wider set of users. However, who would read something written in non-correct English?

If you are not English and you have a blog, how do you cope with that?
Computer Science vs Information Technology
Tags: cs, it, mindmap
Published: 2019-12-21 10:28:30

---
title: Computer Science vs Information Technology
published: true
date: 2019-12-20 14:26:50 UTC
tags: cs, it, mindmap
canonical_url: https://vorakl.com/articles/cs-vs-it/
cover_image: https://vorakl.com/files/cs-vs-it/it.png
---

If you ever thought about getting a computer-related (graduated) education, you probably came across a variety of similar disciplines, more or less connected to each other, but grouped under two major fields of study: Computer Science (CS)and [Information Technology](https://en.m.wikipedia.org/wiki/Information_technology) (IT). The latest one sometimes comes in a broader meaning - [Information Communications Technology](https://en.m.wikipedia.org/wiki/Information_and_communications_technology) (ICT), and Computer Science, in turn, is highly linked to Electrical Engineering. But what exactly makes them all different?

  

Briefly, Computer Science creates computer software technologies, Electrical Engineering creates hardware to run this software in an efficient way, while Information Technology uses them later to create Information Systems for storing, processing and transmitting data.

  

CS is a study of **using computation** and computer systems for solving real-world problems. Dealing mostly with software, the study includes the theory of computation and computer architecture, design, development, and application of software systems. The most common problems are organized in groups in particular areas, such as Distributed Systems, Artificial Intelligence, Data Science, Programming Languages and Compilers, Algorithms and Data Structures, etc. Summarizing, CS mainly focuses on finding answers to the following questions (by [John DeNero](https://www.youtube.com/watch?v=CK4xrHi-IrQ), cs61a):

- which real-world problems can be solved using computation
- how to solve these problems
- how to solve them efficiently

  

The fact that CS is all about software, makes it tightly coupled to _Electrical Engineering_ that deals with hardware and focuses on designing computer systems and electronic devices for running software in the most efficient way.

  

Unlike CS, IT is a study of **using computers** to design, build, and operate _Information Systems_ which are used for storing and processing information (data). ICT extends by applying telecommunications for receiving and transmitting data. It is crucial to notice, that IT apply _existing technologies_ (e.g. hardware, operating systems, systems software, middleware applications, databases, networks) for creating Information Systems. Hence, IT professionals are users of technologies and utilize existing solutions (hardware and software) to create larger systems for solving specific business problems.

  

[![Turing completeness](https://vorakl.com/files/cs-vs-it/cs.png)](https://vorakl.com/files/cs-vs-it/cs.png)

  

[![Turing completeness](https://vorakl.com/files/cs-vs-it/it.png)](https://vorakl.com/files/cs-vs-it/it.png)
3k followers
Tags: meta, blog, writing, career
Published: 2019-12-20 14:13:54

---
title: 3k followers
published: true
description: Thank you very much DEV!
tags: meta, blog, writing, career
cover_image: https://thepracticaldev.s3.amazonaws.com/i/hjhmbot2ol1iv6l918ji.jpg
---

It's been a year (and a month) since I joined the DEV Community. Thanks to you, I have learned a lot of things that made me confident enough to write my own articles, which made me win the Top 7 badge.

As of today I have 9 posts, which 5 are actually articles. It's been some time since I wrote one but I am still getting new followers everyday thanks to them.

For this new year I will continue writing quality articles about topics that some people can find hard to understand.

Thank you very much DEV Community and DEV Team! I wish you all a merry Christmas and a happy new year!

*Thank you for reading. Don't forget to follow me on dev.to and Twitter!*
Bold, italic, preformatted in blog posts
Tags: discuss
Published: 2019-12-20 13:40:34

In your blog, do you use conventions for when to use bold, italic and preformatted text?

Every time I write a post I find it difficult to maintain a coherent style when referring to a variable or a function name.

For example: "If you want to get the list of items, you can call GetList() method.". How do you highlight GetList? 

1. If you want to get the list of items, you can call _GetList()_ method.

2. If you want to get the list of items, you can call __GetList()__ method.

3. If you want to get the list of items, you can call `GetList()` method.

Have you set a personal style guide?
Getting the most out of your APIs
Tags: todayilearned, api, programming
Published: 2019-12-20 13:23:13

*TL;DR notes from articles I read today.*

### [Best design practices to get the most out of your API](http://bit.ly/2Scr1D2)

- You should design your API in a way that it does one key thing really well. Don’t try to add too many what-if scenarios.
- Make your API easy to understand and fast to start up. 
- Aim for intuitive consistency with repeating patterns and conventions in endpoint names, input parameters & output responses so that developers can begin without reading the documentation. 
- But still, create great documentation. And let developers try your API without the need to log in or sign up. 
- Make troubleshooting easier by returning meaningful error messages. 
- Make your API extensible with primitives that enable new workflows. Include an opportunity for feedback from top partners - perhaps allow few developers to test-drive beta options. 

*[Full post here](http://bit.ly/2Scr1D2), 7 mins read*

--- 

### [What’s the difference between versioning and revisioning APIs?](http://bit.ly/2Py7Q3R)
 
- Look at release management as a communication tool - to and for your API consumers. You can take two approaches to it - versioning and revisioning. 
- Versioning implies that each group of related changes in an API is presented under a specific number, often denoting the type of release. 
- Revisioning implies incremental changes have been made and it prevents version-to-version code breaks, allowing legacy code to continue functioning. 
- You will find versioning useful when your API is flexible enough to support version 1 as legacy while transitioning to version 2; or when your API is only useful as a conduit to another API or system.
- Revisioning is a more apt approach if your API supports vital business functions, medical purposes, security systems, etc., where it is essential for the API to stay up and running at all times. 

*[Full post here](http://bit.ly/2Py7Q3R), 7 mins read*

---

### [4 ways your API specification can fall short and what to do about it](http://bit.ly/2s4fYBj)

- You should communicate clearly about the number of items and pages developers can expect from each endpoint so that developers don’t make assumptions about it. 
- Your spec should clearly state the size constraint for each response developers should keep in mind while coding. 
- Your spec must set a performance standard and stick with it because developers code for their applications using your APIs after considering how fast/slow your APIs return requests. 
- Cover authorization extensively in your specs. Encourage the use of refresh tokens throughout your documentation. 

*[Full post here](http://bit.ly/2s4fYBj), 5 mins read*

---

*[Get these notes directly in your inbox every weekday by signing up for my newsletter, in.snippets().](https://mailchi.mp/appsmith/insnippets?utm_source=devto&utm_medium=post08&utm_campaign=is)*
A way of testing code based on time in a Spring Boot Application
Tags: spring, test, time
Published: 2019-12-20 12:42:48

---
title: A way of testing code based on time in a Spring Boot Application
published: true
description: Use ClockProvider to be able to set current time 
tags: ["spring", "test", "time"]
cover_image: https://thepracticaldev.s3.amazonaws.com/i/ki3rsc1gfm0puj9dmk1j.jpeg
---

Every time I see a `Instant.now() / new Date() / something that creates a date based on the current time` I tremble. How do you expect to test that in a simple / coherent / easy to follow way?

When I see that code, I usually see tests using now() + duration to check that everything works. So that the test is not the same when run today than when run tomorrow.

Wouldn't it better to be able to "fix" the time and test your code with exact values of times/periods as well?

So that I've fighting in my team in order that everyone uses a ClockProvider to get the "current" time. That way I can instance my own ClockProvider in unit tests and I can override the default ClockProvider of my application in integration tests. 

The former is pretty easy to understand, so that I'm not writing an example of that. This is an example of the latter.

For instance, my application would look like this:
```java
@SpringBootApplication
public class BookingApplication extends AbstractAnemoneApplication {

    @Bean
    @ConditionalOnMissingBean(ClockProvider.class) // to allow tests to overwrite it
    public ClockProvider getClockProvider() {
        return () -> Clock.systemDefaultZone();
    }

    // An example of method using ClockProvider
    boolean isItJanuary(@Nonnull ClockProvider clockProvider) {
        return clockProvider.getClock().instant().atZone(UTC).getMonth() == Month.JANUARY;
    }
```

And my IT tests:
```java
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {
    FixingClockConfiguration.class, BookingsApplication.class})
@ExtendWith(SpringExtension.class)
public class BookingsApplicationIT {

    @TestConfiguration
    static class FixingClockConfiguration {

        @Bean
        public ClockProvider getClockProvider() {
            ZonedDateTime fixedInstant = ZonedDateTime.of(2019, 04, 15, 14, 00, 00, 00, UTC);
            return () -> Clock.fixed(fixedInstant.toInstant(), fixedInstant.getZone());
        }
    }

// ... your tests based on that date
}
```

Image: https://unsplash.com/photos/FfbVFLAVscw