teleren/devto huggingface dataset:
Project Retrospective: Chingu's Voyage 25 - Team Gecko
Tags: retrospective, team, pairprogramming
Published: 2021-02-17 21:40:39

My first Chingu project was a great experience!
*Mentored by Jim Medlock with a team of 5*

We set out to develop a website similar to www.catchafire.com focused on being a resource for Non-Profits to post Web Development tasks for volunteer developers to find, complete and gain recommendations. This would be a place for any developers to give back to non-profits, but it would be focused on those looking to increase their skills and gain credit in the process.

This is what we ended up with after 6 weeks: https://chingu-v25.herokuapp.com/

Working with Cesar Diaz on the backend, I got to further experiment with connecting to an Atlas MongoDB using mongoose. The wealth of options of how to access and update data often brought paralysis through analysis.

Other skills developed:
- Working with JSON Web Tokens
- Using Postman to test routes (Such a treasure of a program!)
- Git version control
- How to work as a team
- How to work together jointly on Github
- With Cesar's help I learned more about advanced routing

## What worked:
- Agile methodology - constant communication
- Consistent time to meet
- Working together at the same time
- Being able to ask questions live of the team
- Having a mentor to turn to when you are absolutely out of your element

## What didn't:
- Too much prep documentation delayed starting the project; overly complicated
- Not connecting FE to BE early enough to test functionality
- Fear of treading on someone else's toes
- Going too big crashed the project when a CORS incompatibility prevented the FE & BE from working together. Without a greater understanding of connecting the two repos, it would have been advisable to keep the two repos joined as one.

## Standouts:
- Ceasar was a master of the backend, diving into strange new waters without hesitation and almost always swimming back to the surface with a new treasure.
- Abby brought CSS polish to the project and a solid understanding of React that helped the front end look professional.

In the end, the project wasn't finished and doesn't work. The BE routes work, as tested by Postman and there was a jerry-rigged "solution" to bypass the CORS problem that showed the two repos were talking together, but we might have been better off with just a single repo. I understand that it is a more professional setup to have separate repos, but in this case we didn't have the expertise or time to pull it off. More rapidly connecting FE to BE would have also cut down on wasted time. 

Lots to take away from this experience, I thank my teammates: Abby, Olivia, Ryan, Cesar and our Project Owner: Jim Medlock for all of their time and dedication to the project. I hope to return for a future Chingu project.

*I hope this was a fair assessment of the project, and would welcome feedback from any of my teammates.*
Getting started with MongoDB
Tags: mongodb, database
Published: 2021-02-17 21:23:04

Before we start, let’s discover what is MongoDB and its features.

> What is MongoDB?

MongoDB is document-oriented, as known as the non-relational database used for the storage of high volume data.

> What are the differences between relational and non-relational?

MongoDB is based on Binary JSON (BSON). And it is a simple query language which combines rich and document-based queries. The MongoDB data contains a flexible schema. Unlike in SQL databases, where you must have the schema of a table declared before inserting data, the collections of MongoDB do not enforce document structure. That kind of flexibility is what makes MongoDB so strong.

The environments on MongoDB are very scalable. Companies worldwide have identified clusters with some running 100 + nodes in the database with around millions of documents.

> Why MongoDB?

Since MongoDB is a NoSQL style database, it stores the data in records, rather than having data in a relational type format. That makes MongoDB very versatile and adaptable to the situation and requirements of the real business world. And also Indexes can be created to improve search performance within MongoDB. It is possible to index any area in a MongoDB database.

Below are some of MongoDB’s main term differences with RDBMS.

> Procedure for installing MongoDB on windows

1. download MongoDB Community Edition

[Link] https://www.mongodb.com/download-center/community?jmp=docs

* When you select a version, you can select ‘MongoDB server 4.2’ since it is the latest one.

* In the package drop down you have to select ‘MSI’.

2. Run the previously downloaded MongoDB installer.

3. Follow the MongoDB community edition installation wizard.

For more information on MongoDB installation:

[Link] https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/

> Crud operations in MongoDB

**Insert**

There are multiple ways to insert data into the database

* Inserting a single document

db.collection.insertOne()

* Inserting multiple documents

db.collection.insertmany()

* Inserting single/multiple documents

db.collection.insert()

**Update**

Ways to update data in the database

* db.collection.updateOne(<filter>, <update>, <options>)
* db.collection.updateMany(<filter>, <update>, <options>)
* db.collection.replaceOne(<filter>, <update>, <options>)

**Delete**

Ways to delete data in the database

* db.collection.deleteMany()
* db.collection.deleteOne()

You can find more information on MongoDB:

[Link] https://docs.mongodb.com/manual/
Windows or Mac (or Linux😁) for devs?
Tags: healthydebate, discuss, beginners, linux
Published: 2021-02-17 21:21:08

`Hello World!` Just wanna do my first #healthydebate to see how it feels to have interactions with other programmers. I bought a week ago a new pc and decided to buy a window. I read some articles on it before deciding and it came out that windows will allow me to have more freedom (and to play videogames 😊). What do you think about that? Do you have a mac or a window / what pc do you have? Why? 
I'm very interested in creating a conversation / a debate thinking about which one is the best, particularly for programmers. I also have in mind to write an article on that, maybe using quotes from this post.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/41cotebus6jkyyks2c5w.jpeg)

---

Remember the comment!

PS: You can also comment if you have linux

If you don't want to write a long comment, just say which OS (Windows, MAC or Linux) do you use.

[Check this article, my second debate, how programmers love to code?](https://dev.to/devlorenzo/how-do-you-love-to-code-2l29)
{% link https://dev.to/devlorenzo/how-do-you-love-to-code-2l29 %}

[And this one, why programmers love to code?](https://dev.to/devlorenzo/why-do-you-love-programming-o4h)
{% link https://dev.to/devlorenzo/why-do-you-love-programming-o4h %}
---

Just wanted to add the Stack Overflow results:

### Platform devs develop for:
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yofohmsz87rqo3c9c8qv.png)

---

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qoiqj1es4evfxj6dus2h.png)
 
---

## **[Subscribe to my Newsletter!](https://chipper-motivator-3112.ck.page/05710ea3d3)**
A loooong, and fun, weekly recap for you 
Free PDF version of my articles
Highly customizable inbox
That's --> free <-- and you help me!
Why blogging is a great way to start a career in software development?
Published: 2021-02-17 21:13:19

When I started the mobile application design and development program at Algonquin College, I knew absolutely nothing about coding. One of the biggest assets I had to assist me in learning was reading blog posts around the internet about coding. Without people writing blogs, there are many things that I probably wouldn't have figured out, or at the very least it would have taken me longer.

How does this relate to the topic? Well, for starters it introduced me to the world of blogging. With the knowledge I have now, I can write my own blog posts to not only help others, but as references that I can use in the future. Not only that, but there's always a chance that a potential employer would stumble upon my blog, which would be beneficial in finding work. Sharing your knowledge with others is always a good thing, and potentially finding work due to a blog is always a big plus. 

In summary, blogging is a great way to start a career in software development because it allows me to use my blog posts as a reference, as well as showing potential employers the skills and knowledge I have in software development.
How to create instant AR Selfies
Tags: tutorial, programming, unity3d, beginners
Published: 2021-02-17 20:56:00

Say hello to 2D to 3D image conversion! With [echoAR](http://www.echoar.xyz/) you can create AR stickers instantly by uploading images to the [echoAR console](http://console.echoar.xyz/).


![1.gif](https://cdn.hashnode.com/res/hashnode/image/upload/v1613594918723/WnY_GqHaW.gif)

Users can now upload 2D image files which automatically convert to 3D models you can share in AR!

Follow these simple steps to create your AR sticker:

* **[Register](https://console.echoar.xyz/#/auth/register)** for a FREE  [echoAR](https://console.echoar.xyz/#/auth/register) account
*  **[Add](https://docs.echoar.xyz/quickstart/add-a-3d-model)** an image to the console by **taking a selfie**
* **[View](https://docs.echoar.xyz/scene-viewer/deploy-experience)** it in AR.
* **[Share](https://docs.echoar.xyz/quickstart/share-it-with-others)** it instantly as an **AR sticker** with friends, family, and on social media!

**That's it!** 🎉

> Users of the Business and Enterprise plans can also access 2D to 3D conversion through our RESTful API.

> Reach out to enterprise@echoAR.xyz to learn more.

Refer to our [documentation](https://docs.echoar.xyz/unity/) to learn more about how to use echoAR.


![2.jpeg](https://cdn.hashnode.com/res/hashnode/image/upload/v1613595095470/bcDiTCZh2.jpeg)

---

> **echoAR** (http://www.echoAR.xyz; Techstars '19) is a cloud platform for augmented reality (AR) and virtual reality (VR) that provides tools and server-side infrastructure to help developers & companies quickly build and deploy AR/VR apps and experiences.


![3.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1613595125215/iizen9ar5.png)
Practical Functional Programming In Typescript
Tags: functional, typescript, zio, javascript
Published: 2021-02-17 20:47:09

---
title: Practical Functional Programming In Typescript
published: true
date: 2021-02-17 20:42:00 UTC
tags: functionalprogramming,typescript,zio, javascript
canonical_url: https://www.matechs.com/blog/practical-functional-programming-in-typescript
---

[_Matechs_](http://www.matechs.com) _is excited to announce that has teamed up with_ [_Ziverge_](http://www.ziverge.com) _for the upcoming workshop in May!_

![](https://cdn-images-1.medium.com/max/1024/1*14TKs13epQXhaHIi7jPdHQ.png)

[This 3-day](https://www.eventbrite.co.uk/e/practical-functional-programming-with-typescript-tickets-141613627171) course aims to level-up developers who want to gain practical knowledge of TypeScript in functional programming and build powerful business applications.

You’ll learn the basics of functional programming (Pure Functions, ADTs, e-DSLs), as well as how to use functional effect-systems to build modular, performant applications that are easy to write and maintain.

The workshop targets software developers who are eager to learn how to build modern, robust, and testable applications that are performant both in the back-end and front-end.

👉 [**Check the event page for more details and secure your ticket today**](https://www.eventbrite.co.uk/e/practical-functional-programming-with-typescript-tickets-141613627171) **!**

#### [About Ziverge](http://www.ziverge.com)

Ziverge was born in 2020 to help companies succeed using functional programming. Founded by John A. De Goes, serial entrepreneur and an internationally-recognized expert on Scala and functional programming, Ziverge focuses on providing clients with a powerful combination of rapid turnaround time, technical excellence, and out-of-the-box thinking.

#### [About Matechs](http://www.matechs.com)

Matechs supports startup and enterprise clients to grow through industry-leading IT strategy consulting. Matechs is founded by Michael Arnaldi, author of Effect-TS, a functional programming library. The library allows building reliable, scalable, maintainable, and resilient web applications, leveraging the power of functional programming patterns.
How to combine Next.js, styled components and TypeScript
Tags: typescript, nextjs, styledcomponents
Published: 2021-02-17 20:35:24

Next.js provides a handy example of how to add Styled components to your project: https://github.com/vercel/next.js/tree/master/examples/with-styled-components.

However, it's in JavaScript, not in TypeScript. The crux is in `_document.tsx` of which I've made a typed example in this [Github gist](https://gist.github.com/ludder/c29efcbd0aee813a914ddaf8a3d16496).
Ν+1 queries auto-detection with zero false positives / false negatives
Tags: ruby, rails, performance
Published: 2021-02-17 20:13:58

Hi folks,

After dealing with bullet's false positives / false negatives for about 2 months,

i had an idea for a gem that is able to auto-detect N+1 queries with zero false positives / false negatives (at least as i am currently aware of).

https://github.com/charkost/prosopite

I would appreciate your feedback!
RudderStack Feature Bounty: Wordpress plugin. $2,000!
Tags: opensource, bounty, wordpress, rudderstack
Published: 2021-02-17 20:12:59

**_We introduced our bounty program where we pay developers to build open source software for RudderStack. Read all of the details of the program [here](https://dev.to/rudderstack/devs-wanted-get-paid-to-contribute-to-rudderstack-s-open-source-software-bjp)._**

The **[GitHub Issue](https://github.com/rudderlabs/rudder-server/issues/792)** for this bounty includes all information about the feature, the bounty, and how to apply. For full details read it.


### What we want you to build

An open source Wordpress plugin providing event tracking instrumentation that sends events to RudderStack. The implementation should include:
1. A way to track custom events from within WordPress.
2. A way to automatically catch page views and send them to RudderStack.
3. The plugin should implement or wrap as much of the RudderStack JavaScript SDK [here](https://github.com/rudderlabs/rudder-sdk-js) as is possible.
4. The plugin must comply with the [Wordpress plugin guidelines](https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/).


### Bounty:  **$2,000**

We will pay whoever is chosen for this bounty $2,000 via GitHub Sponsors.


### How can I apply?

You can apply for this bounty through [this Google Form](https://forms.gle/Qifc1xF6Db3uBD7A8). If selected or more information is needed, you will be contacted via email.

_Read the [GitHub Issue](https://github.com/rudderlabs/rudder-server/issues/792) for more information._
How to Complete a Udemy Course
Tags: 100daysofcode, udemy, sql
Published: 2021-02-17 19:12:18

---
title: How to Complete a Udemy Course
published: true
description: How to finally finish a Udemy course
tags: #100daysofcode #udemy #sql
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l7nmyruszd8s53felzif.png
---
If you're anything like me, you have a Udemy account filled with courses that you bought on one of the site's many sales. Udemy is indeed a developer's catnip. We just can't get enough. We're gonna be so productive and learn all the things! 
But if we're being honest, buying a course is usually the first and only step we make. Life happens, we get busy. But the cycle continues because the courses (when they're on sale) are so cheap. So tempting. There are worse things to be addicted than Udemy courses. At least we bought the course. It's the thought that counts right? Where's my cookie for spending 10 bucks on a Udemy course instead of Chipotle?!

This year I decided that instead of buying more Udemy courses, I would actually start working through the ones I had purchased. I had decided to start learning SQL, and luckily I had already stashed 3 SQL courses in my Udemy account. I picked the shortest one to give myself some motivation. It was a 4 hour Oracle course, and I incorporated it into my #100daysofcode challenge. Some days I would only watch one video, others I would watch 3. I tried to not let more than a couple days pass without at least watching one video. These are baby steps, well not even steps since it took me about 29 days to finish the course. 29 days! For a 4 hour course! But I completed it, instead of allowing to sit there for another year. I have moved on to another SQL course, this one about 10 hours long. I look forward to completing that one as well.

TLDR: 
1. Don't buy any more courses
2. Choose the shortest course you already own on a subject matter you'd like to learn
3. Watch at least one video a day, no matter how long it takes. 

Hope this helps motivate someone to stop buying and start doing :)
How Scrappy Are You?
Tags: discuss, womenintech, news
Published: 2021-02-17 19:05:03

Are you scrappy? 
I love being scrappy whether working in a private or public company, big or small. Being scrappy means **ATTITUDE**. A great definition I found is from the Scrappy Women in Business (a nice resource to add to your toolbox).
Scrappy means **not relying on a title to be a leader**.
Scrappy means being **willing to take risks and put yourself out there**.
Scrappy means **doing the right thing, even when you don’t feel like it**.
Scrappy means having the **steely resolve** of a street fighter.
Scrappy means **sticking to your guns** even if you’re shaking in your boots.
Scrappy means being **committed beyond reason to making a difference**.
Scrappy means **caring about something more than you care** about being comfortable, socially acceptable, or politically correct.
Scrappy means being **absolutely, totally committed to extraordinary results**.
Scrappy means **EDGY!** … and it is your edge in achieving outrageous results even when they seem impossible.
Elementary Data Structures with JavaScript - Binary trees - PART 3🚀
Tags: javascript, algorithms, programming, codequality
Published: 2021-02-17 19:01:57

Table Of Contents
        * 🤓 [INTRODUCTION](#intro)
        * 🌴[BREADTH-FIRST SEARCH](#bfs)
        * 🌊[DEPTH-FIRST SEARCH](#dfs)
        * 👨🏻‍💻[CODE](#code)
        * 🙏 [THANK YOU](#thank-you)

## 🤓 INTRODUCTION <a name="intro"></a>
Hello, my dear coders! I hope you are all having a great day 🚀
Today, we are going to explore ways to traverse a tree with algorithms designed to optimize the search and traversal. Of course, for our implementation, we will use Vanilla JavaScript.

If you missed the previous part of this article you can check it out right here:

{% link https://dev.to/codespresso/elementary-data-structures-with-javascript-binary-trees-part-2-1pl6 %}

Please feel free to connect with me via [Twitter](https://twitter.com/lazar_dev), [Instagram](https://www.instagram.com/codespressoweb/) or [LinkedIn](https://www.linkedin.com/in/lazar-stankovic-44a199177/)


## 🌴 BREADTH-FIRST SEARCH <a name="bfs"></a>
Breadth-first search is characterized by the fact that it focuses on every item, from left to right, on every level before moving to the next.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wgpfue4cxr851zdtxdp7.png)

## 🌊 DEPTH-FIRST SEARCH <a name="dfs"></a>
The strategy followed by depth-first search is, as its name implies, to search “deeper” in the three whenever possible. Depth-first searches are more concerned with completing a traversal down the whole side of the tree to the leaves than completing every level. There are three main ways to handle this, preOrder, postOrder, and inOrder but they’re just very slight modifications of each other to change the output order.

### 1️⃣ PREORDER
What preorder does, it processes the root, traverses the left subtree, and after that, traverses the right subtree.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ku0vfzzby484j11ysolv.png)

### 2️⃣ POSTORDER
First, we traverse the left subtree, after that, traverse the right subtree and, process the root.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3xyr9id3kq1wnapoifo1.png)

## 3️⃣ INORDER
First, we traverse the left subtree of the root, then we process the root and after that, we traverse the right subtree of the root.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ckv1h2o2j9g3rs92ivi3.png)

## 👨🏻‍💻 CODE <a name="code"></a>
Here is the code! 🚀
{% jsfiddle https://jsfiddle.net/codespresso/3rw0qbhf/77/ js,result,html,css %}

# 🙏 THANK YOU FOR READING!<a name="thank-you"></a>
References:
School notes...
School books...

Please leave a comment, tell me about you, about your work, comment your thoughts, connect with me! 

☕ SUPPORT ME AND KEEP ME FOCUSED!
<a href='https://ko-fi.com/Z8Z33D1HJ' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi4.png?v=2' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>

Have a nice time hacking! 😊
TIL: You can watch for nested properties changing in React's useEffect() hook
Tags: todayilearned, react, javascript, beginners
Published: 2021-02-17 18:58:36

---
title: TIL: You can watch for nested properties changing in React's useEffect() hook
published: true
description: You can use nested properties in React's useEffect() dependency array.
tags: todayilearned, react, javascript, beginners
canonical_url: https://aileenrae.co.uk/blog/til-watch-nested-properties-react-useeffect-hook
//cover_image: https://direct_url_to_image.jpg
---

Today I learned: you can watch for nested properties changing in React's `useEffect()` hook by using dot notation in the dependency array, like so:
```jsx
// hook runs whenever someValue.someNestedValue is updated
useEffect(()=> {
      // do something
}, [someValue.someNestedValue])
```
________

React's `useEffect()` hook lets you perform a _side-effect_ in a functional component. That is, whenever the component updates, whatever code you put in the `useEffect()` hook executes.

By default, the hook runs on **every** component update, which for performance reasons we should avoid:

```jsx
useEffect(()=> {
    // I run when ANYTHING updates
})
```

But, we can optionally pass a **dependency array** as a second argument to tell React to only re-run the hook when the specified dependencies update:

```jsx
useEffect(()=> {
    // I only run when someValue updates
}, [someValue])
```

But what about if you have nested data, say an object containing form data, e.g.

```jsx
const values = {
  name: 'Aileen',
  age: 26,
  city: 'Edinburgh',
  favoriteFood: 'pizza 🍕'
}
```

What if I want to trigger a side-effect when the user updates just their age, and not when any other value changes?

It seems obvious in hindsight, but you can watch for nested values changing simply by referencing the nested property with dot notation:

```jsx
useEffect(()=> {
    ageChangeSideEffect(values.age);
}, [values.age])
```

Additionally, we can trigger the `useEffect()` hook for deeper nested objects if necessary:

```jsx
useEffect(()=> {
    // do something
}, [someValue.someNestedValue.someDeeplyNestedValue])
```