teleren/devto huggingface dataset:
Hacktoberfest 2020 Retrospective
Published: 2021-06-19 07:23:28

---
title: Hacktoberfest 2020 Retrospective
published: true
date: 2021-01-23 04:50:21 UTC
tags: 
canonical_url: https://jduabe.dev/posts/hacktoberfest-2020/
---

![hacktoberfest_shirt](https://res.cloudinary.com/j4ckofalltrades/image/upload/c_limit,w_500/v1611377061/blog/20210123/hacktoberfest_y899nk.jpg)

This one’s long overdue and when the swag arrived last week I figured I really need to get this done.

The past year has been tough to say the least and getting to write code for fun while helping out the open-source community was a very welcome distraction.

Though I have been programming for a while this was my first time participating in Hacktoberfest and contributing to open-source in general, it was nice to get to talk to and interact with maintainers and other like-minded individuals who are passionate about code and giving back to the community.

Even with all the drama that surrounded this past year’s iteration I’d say this was a positive experience overall, and I look forward to joining this year’s iteration.

Here are some of the projects I found interesting and contributed to (and still try to contribute to):

[![trino](https://github-readme-stats.vercel.app/api/pin/?username=trinodb&repo=trino&theme=dark)](https://github.com/trinodb/trino)

[![strongbox](https://github-readme-stats.vercel.app/api/pin/?username=strongbox&repo=strongbox&theme=dark)](https://github.com/strongbox/strongbox)

[![oshi](https://github-readme-stats.vercel.app/api/pin/?username=oshi&repo=oshi&theme=dark)](https://github.com/oshi/oshi)

[![letra-extension](https://github-readme-stats.vercel.app/api/pin/?username=jayehernandez&repo=letra-extension&theme=dark)](https://github.com/jayehernandez/letra-extension)

Happy hacking!
TIL Unity Can Dual-Wield Input Systems
Tags: todayilearned, unity3d, inputs, gamedev
Published: 2021-01-23 04:40:14

2021-01-22

I'm currently investigating Unity's (relatively) new Input System which intends to replace the Input Manager. 
![Screenshot of Input System in the Package Manager over the Project Setting's Input Manager](https://dev-to-uploads.s3.amazonaws.com/i/fu9m4sspgt5jcsm2oj82.png)<figcaption>out with the old, in with the new</figcaption>
Of course, once you activate the new system, none of your old inputs will work in game. In fact, you'll get a bajillion errors in your console like this
> InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.

Well that sucks. It looks like it's one or the other. What if we needed to support a legacy implementation? 
![Gif of girl from Old El Pasoat taco kit asking why we can't have both](https://media.giphy.com/media/3o85xIO33l7RlmLR4I/giphy.gif)
Yes it's possible to have both input methods running. An option needs to be enabled first however.
![Screenshot of Active Input Handling option](https://dev-to-uploads.s3.amazonaws.com/i/igs9f8aktpop88z292o2.png)
<figcaption>Flip this switch if you need both</figcaption>
What's nice is you can now code using ENABLE_INPUT_SYSTEM and ENABLE_LEGACY_INPUT_MANAGER to ensure everyone plays nicely with each other!
Taking the first challenge with nextjs and project release
Tags: opensource, javascript, typescript, nextjs
Published: 2021-01-23 04:33:24

This was a meaningful week. It makes me use different perspectives to think about some stuff.

We had our first triage meeting for the telescope project(I was wrong in my last post, what we had in the last week was just intro meetings). The process was not as difficult as I thought. It is well organized and handled, pretty easy to understand for new team members. However, I still wasn't active enough. The reason is mainly because I don't have enough knowledge to join the discussion when it comes to certain topics or questions that require some professional knowledge. When I thought I've already spent a significant amount of time on new (new to me) tools (e.g. nextjs, typescript) of telescope, and was able to review some PRs and take over one, I still can't quite understand all the content in the meeting.

In this week's release (1.5), our main goal is to move most of our components from Gatsby to Nextjs. Nextjs is a totally new stuff to me, so does typescript (I knew it but never write it by myself). My strategy was reading Nextjs' documentation and the closed PRs about porting to Nextjs at the same time. This is a bit like cheating, like walking a maze from the goal to the entrance. This does help me to work through this week's release which is mainly about porting to Nextjs, however, I can't really tell and organize what I've learned from them. I'll need to figure it out how to learn new tools and apply them at the same time. (Or, I can just take more attention on these new tools... in general)

Another thing I want to talk about is the waiting rules in an open source project. When members are assigned a couple of tasks, but couldn't finish it before the release day, and couldn't get in touch with the assignees. Honestly, I don't want to wait and postpone the release date or move these tasks to the next release. I may not be a smart developer, but I love rules and deadlines and respect them. When we're working as a team, we should always respect other people's time. It is sort of irresponsible for the situation like this. However, it's really hard to say or do something strict in a team since no one wants to be a bad guy. In this case, having a clear protocol of asking team members to follow the schedule and also inform the penalty (although I can't think of any appropriate and effective penalty in an open-source project) might be a good choice. Another alternative is to keep in touch with assignees frequently, therefore, we can control the possible damage on time. However, if the assignee doesn't like to text, it might not work well.

After the PR I made this week and a React app project that I am doing in another course, it's more positive that I should spend more time on the front-end JavaScript libraries. This field is extremely flexible, and I'm apparently not fast and adoptable enough to it.
Vue.js — Considerations and Tricks
Tags: javascript, vue, programming, science
Published: 2021-01-23 04:27:38

Vue.js is great. However, when you start building large scale JavaScript applications, you will start to hit the boundaries of the Vue.js. These boundaries are not really the limitations of the framework; rather these are the important design decisions that Vue.js team had taken from time to time.

Unlike React or Angular, Vue.js caters to different level of developers. It is friendly, easy-to-use for beginners and equally flexible for experts. It doesn’t try to shy away from DOM. Instead, it plays well with it.

Having said this, this article is more like a catalog of some of the great discussions, issues and tricks I have come across on my way to Vue.js enlightenment. Understanding these key design aspects helped us while building our large scale web applications.

Again, these discussion are valid as of today, May 18th, 2018. When framework upgrades, underlying browser and JS API will change, they may not be valid and intuitive
Overcoming the Imposter Syndrome
Tags: webdev, programming, productivity, codenewbie
Published: 2021-01-23 03:04:47

(Short POST)Let's deal with the Impostor syndrome as it is an important topic, especially for developers! 🧠

**Imposter Syndrome** is a mix of feeling in which individual doubts their accomplishments or talents and has persistent internalized fear of being exposed as a "fraud". 

---

### Does it affect me? 

The developer is *commonly affected* by this phenomenon. Chances are, you're going to experience it sooner or later! An estimated **60% of developers** suffer from Imposter Syndrome. 

> Don't worry, it's not a mental disorder. 

---

### Consequences

Imposter syndrome **negatively affects the sufferer**: decreased productivity, performance and satisfaction. It's easy for the syndrome to spin out of control: suffers can become depressed and **burnt out** as they keep pushing their perceived goals. 

---

## Let's deal with it. 

- **Acknowledge your thoughts**: Simply observe the thoughts you are having. This is an important first step towards betterment. 
- **Record your achievements**: Write your successes down and compare yourself to your past self and see how much you have improved!
- **Talk to yourself**: The simple act of telling yourself  **"I am great"** and similar things have a powerful effect in you! (Principle of auto-suggestion)
- **Forgive yourself**: Everyone makes mistakes. they are inevitable. Learn to forgive yourself for making mistakes!
- **Don't be ashamed of help**: Seeking help from someone does in no way discredit your work! Tell yourself, "I am proud of my accomplishments."
- **Allow yourself to be imperfect**: Understand that no-one can be perfect, and that's completely fine! Don't set extremely high expectations for yourself. 

Keep doing these methods to help you deal with **Imposter Syndrome** and you'll feel better in no time!

---

Have you suffered from IMPOSTER SYNDROME? Share your experience below!

⚡Thanks For Reading | Happy Coding😎

---

Get weekly newsletter of amazing articles i posted this week and some offers or announcement. Subscribe from <a href="https://mailchi.mp/9f73b65b9c38/rahulism" target="_blank">Here</a>

<a href="https://www.buymeacoffee.com/rahxuls" target="_blank"> <img src="https://res.cloudinary.com/rahulism1/image/upload/v1608182430/bmc_nbxakd.png"></a>
key secret for a beginner to succeed in web development
Published: 2021-01-23 02:13:24


If you are beginner finding it hard to succeed. I wrote this key points that will help you in your path of learning. 

## Learning well instead of learning fast

It is common that everyone wants to learn everything as fast as possible. From this article, https://zellwk.com/blog/learn-fast/?ck_subscriber_id=723929476 zellwk explains the importance of learning well rather than fast.

## Data and algorithm

it’s good to know and understand data and algorithm to enhance thinking and understanding. It also comes up at some interviews. It can also help you land high paying Jobs. Learn more here https://dev.to/karthikeyan676/why-data-structures-and-algorithms-are-important-for-frontend-25mn

## Writing clean code

This will make it easier for your code to be readable, maintainable, and reusable and in turn making you stand out as a developer. Stuffs such as naming, indentation e.t.c should done well to make your code clean. Recruiters can check your code

## Creating Content:
 There are numerous benefits of creating content online. In the tech industry. Visibility matters. It increases your chance of been seen by a recruiter. You make others grow and also you deepen your understanding as you teach others. Learn more on creating content here
https://twitter.com/bahdcoder/status/1351090304967966722?s=19

https://leerob.io/blog/teach-online

https://edidiongasikpo.com/amp/why-is-it-important-to-blog-as-a-developer


>please note this is my first time writing content so feedback on this article will be really appreciated.
Python Project Template
Tags: python, ci, github, productivity
Published: 2021-01-23 02:12:08

I have updated my **Python Project Template** repository. This is a fully working template where you will find configured continuous integration services with GitHub actions, Codecov, tox, ReadTheDocs, and others.

You can use this template as a reference to configure your own CI protocol or as an actual GitHub template for your repository.

I also discuss many aspects on how to structure a Python application/library.

Let me know your thoughts,

https://github.com/joaomcteixeira/python-project-skeleton
Cloning Arrays in JavaScript
Tags: javascript, webdev, programming, beginners
Published: 2021-01-23 02:06:18

**Check out my books on Amazon at https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62**

**Subscribe to my email list now at http://jauyeung.net/subscribe/**

There are a few ways to clone an array in JavaScript,

### Object.assign

`Object.assign` allows us to make a shallow copy of any kind of object including arrays.

For example:
```
const a = [1,2,3];
const b = Object.assign([], a); // [1,2,3]
```
### Array.slice

The `Array.slice` function returns a copy of the original array.

For example:
```
const a = [1,2,3];
const b = a.slice(0); // [1,2,3]
```
### Array.from

The `Array.slice` function returns a copy of the original array. It takes array like objects like `Set` and it also takes an array as an argument.
```
const a = [1,2,3];
const b = Array.from(a); // [1,2,3]
```
### Spread Operator

The fastest way to copy an array, which is available with ES6 or later, is the spread operator.
```
const a = [1,2,3];
const b = [...a]; // [1,2,3]
```
### JSON.parse and JSON.stringify

This allows for deep copy of an array and only works if the objects in the array are plain objects. It can be used like this:
```
const a = [1,2,3];
const b = JSON.parse(JSON.stringify(a)); // [1,2,3]
```
How to Check if a Variable is a Number
Tags: webdev, programming, javascript, beginners
Published: 2021-01-23 02:05:54

**Check out my books on Amazon at https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62**

**Subscribe to my email list now at http://jauyeung.net/subscribe/**

We can check if a variable is a number in multiple ways.

isNaN
=====

We can check by calling `isNaN` with the variable as the argument. It also detects if a string’s content is a number. For example:

```
isNaN(1) // false  
isNaN('1') // false  
isNaN('abc') // true
```

**Note:** `isNaN(null)` is `true` .

typeof Operator
===============

We can use the `typeof` operator before a variable to check if it’s a number, like so:

```
typeof 1 == 'number' // true  
typeof '1' == 'number' // false
```
How to Round Numbers in JavaScript
Tags: webdev, programming, beginners, javascript
Published: 2021-01-23 02:05:34

**Check out my books on Amazon at https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62**

**Subscribe to my email list now at http://jauyeung.net/subscribe/**

JavaScript has multiple ways to round a number. Some choices are the `Math.round` , `number.toFixed` , and`number.toPrecision` . You can also write your own function to round a number up or down to the nearest increment.

Math.round
==========

`Math.round` rounds a number to the nearest integer. If the decimal part of the number is less than 0.5, it is rounded down. Otherwise, if the decimal part of the number of 0.5 or higher then it will be rounded up. The function returns the rounded number as the value.

For example:

```
Math.round(12.5); // 13  
Math.round(12.49); // 12
```

Number.toFixed
==============

You can set the number of digits that appears after the decimal place with `toFixed` function. The function returns the string representation of the number as the value. It can be used like this:

```
const a = 12.8888888888;  
const b = a.toFixed(2); // 12.88
```

Number.toPrecision
==================

`Number.toPrecision` is similar to `toFixed` . It returns the string representation of a number, but you can round it to the specified number of significant digits which you can specify or let it automatically round to the correct number of significant digits.

```
const a = 12.8888888888;  
const b = a.toPrecision(2); // 13, since 2 significant digits is specified  
const c = a.toPrecision(); // 12.8888888888, since all digits are significant in the original number
```

Round to the nearest Increment
==============================

You can round to the nearest increment up or down you specify:

```
const roundNumberUp = (num, increment) => {   
  return Math.ceil(num / increment) \* increment;  
}  
console.log(roundNumberUp(12.2, 0.5)) // 12.5
```

What this does is take the original number, divide by the increment you want to round up to, then take the ceiling of that, then multiply by the increment. This means the number should always round up.

Similarly, you can round down to the nearest increment with `floor`.

```
const roundNumberUp = (num, increment) => {   
  return Math.floor(num / increment) \* increment;  
}  
console.log(roundNumberUp(12.2, 0.5)) // 12.5
```

What this does is take the original number, divide by the increment you want to round up to, then take the floor of that, then multiply by the increment. This means the number should always round down.
How to Check if a JavaScript Object is an Array
Tags: javascript, webdev, programming, beginners
Published: 2021-01-23 02:04:27

**Check out my books on Amazon at https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62**

**Subscribe to my email list now at http://jauyeung.net/subscribe/**

There are a few simple ways to check if an object is an array.

### Array.isArray

The simplest and easiest way is to use `Array.isArray` , which are available in most recent browsers, IE9+, Chrome, Edge, Firefox 4+, etc. It is also built into all versions of Node.js. It checks whether any object or undefined is an array.

To use it, do the following:

```
const arr = [1,2,3,4,5];
const isArrAnArray = Array.isArray(arr); // true

const obj = {};
const isObjAnArray = Array.isArray(obj); // false

const undef = undefined;
const isUndefinedAnArray = Array.isArray(undef); // false
```

### Alternatives

Alternatives include using `instanceOf` , checking if the `constructor` is an array or checking if an object’s prototype has the word Array.

Using `instanceOf` , you can do:

```
const arr = [1,2,3,4,5];
  const isArray = (arr)=>{
    return arr.constructor.toString().indexOf("Array") > -1;
  }
  console.log(isArray(arr)) // true
```

Similarly, by checking an object’s prototype, you can do:

```
const arr = [1,2,3,4,5];
const isArray = (arr) => {
  return Object.prototype.toString.call(arr) === '[object Array]';
}
console.log(isArray(arr)) // true
```

### Third Party Libraries

Underscore and Lodash also have equivalent array check functions:

```
const arr = [1,2,3,4,5];
const isArraAnArray _.isArray(arr); // true
```
Xamarin.Forms | Lottie Animations | Embedded Resource
Tags: mobile, xamarinforms, dotnet, lottieanimations
Published: 2021-01-23 01:49:31

Lottie animation bindings for Xamarin.Forms has been out for quite a while now. Yet I see a lot of people out there who don't use a powerful feature to **share** animation files across platforms rather than manually *copy/paste*ing them into platform projects. 

Sharing your resources has never been easier with Xamarin.Forms nowadays. Let's see how you can have a single point where you keep all your Lottie Animation files.


- First, you need to install the nuget package to your **shared project**.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/srsavbv0xyyi9wlg9b4b.png)



- Now, lets create a *Resources* folder under shared project and **add** the animation JSON file to that folder. 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/kb6uktbqwm2sp4kvdr5m.png)



> **Important!** **`Build Action`** for the JSON file MUST be `EmbeddedResource`.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/5jh9c6ngdn44qqpcsaq7.png)



- Let's add the animationView to a page and *point* the animations **Source** to the very `EmbeddedResource` we added earlier.
```
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:lottie="clr-namespace:Lottie.Forms;assembly=Lottie.Forms"
             x:Class="ayah.Views.MyPage">

    <Grid>
        <lottie:AnimationView AnimationSource="EmbeddedResource"
                              Animation="Resources.loading.json"
                              VerticalOptions="FillAndExpand"
                              HorizontalOptions="FillAndExpand"
                              RepeatMode="Infinite"/>
    </Grid>
</ContentPage>
```
> Notice, the `AnimationSource` property is set to `EmbeddedResource`.


## Wholaa!

{% youtube NU0QGNrOD2A %}
Useful Tech Skills in different Roles
Tags: startup, informative, programming
Published: 2021-01-23 00:41:42

//This is my first Article so Don't Criticize me, LOL :)

Every one of us needs some guidelines to follow, and today I am going to share some important tech and productive Skills that each one of us should have(at least some major ones). 

not like Computer Skills: MS Office, Google Drive, spreadsheets, email, PowerPoint, databases, social media, web, enterprise systems. These Skills will be highly technical and in detail side focused, such as <b>Programming, Software engineering, Design, etc... and some more job-specific requirements skills.</b>
<br>
The list is as follows:
<b>Programming</b>
- C/C++
- C#
- Java
- JavaScript
- Perl
- PHP
- Python
- Swift
- Go
- SQL
- R
- Ruby

<b>Software development:</b>
- Coding
- Debugging
- Implementation
- Testing
- Design
- Configuration
- Applications
- IOS/Android
- Languages
- Security
- Algorithms
- Modeling
- Documentation

<b>Design:</b>
- Adobe creative apps
- HTML
- Interactive media
- Wireframing
- UX research
- Prototyping
- Color theory
- Responsive design
- Photoshop
- Sketch
- User modeling

<b>Project management:</b>
- Budget planning
- Risk management
- Project planning
- PM tools (JIRA, Trello, Monday.com)
- Task management

<b>Product management:</b>
- SCRUM methodology
- Agile methodology
- Product roadmaps
- User experience design
- Programming skills
- Product lifecycle management
- QA testing
- Requirements gathering

<b>Marketing:</b>
- Search Engine Optimization (SEO)
- Digital media
- Social media platforms (Twitter, Facebook, Instagram)
- Automated marketing software
- Content Management Systems (CMS)
- Copywriting
- Content creation
- Google Analytics
- Marketing analytics tools

I wish You liked the list, Have a good Night Folks, it's around 5:00 AM :)
CSS Gap Property Tutorial
Tags: css, webdev, tutorial, gap
Published: 2021-01-23 00:02:29

Part 2 of the 21 CSS tips for 2021 Series

[Subscribe To The Channel!](http://www.youtube.com/FollowAndrew?sub_confirmation=1)

{% youtube no9y_JZozEo %}
Watch the Video Tutorial on YouTube for a visual explanation!

Watch out for Safari, as it's lagging behind on support for this property...