teleren/devto huggingface dataset:
A Developers Study Plan for 2020
Tags: study
Published: 2020-01-02 12:33:11

---
title: A Developers Study Plan for 2020
published: true
date: 2019-12-31 19:42:28 UTC
tags: Study,study
canonical_url: 
---

The best decision I made last year was to study Laravel and start migrating my web project from CodeIgniter to Laravel as this ultimately landed me my current job. At my workplace I expect to continue to come across more Laravel features, PHP tricks and coding best practices.

I like to use my daily commute into London for studying. I’ll continue to watch a [YouTube series on design patterns](https://www.youtube.com/watch?v=v9ejT8FO-7I&list=PLrhzvIcii6GNjpARdnO4ueTUAVR9eMBpc). Since my team uses design patterns it’s good to review them.

I’ve started studying statistics. Although I don’t really do any statistics currently, I think this is a mathematical topic that is really interesting and might come in useful one day. I use [Khan Academy](https://www.khanacademy.org/math/statistics-probability) and a [free online book](http://greenteapress.com/thinkstats2/html/index.html). Khan Academy is nice as in addition to videos there are also a lot of exercises. I am also using Khan Academy for reviewing [algorithms](https://www.khanacademy.org/computing/computer-science/algorithms).

This year, I hope to get to use VueJS for some parts of the new version of my side-project. The best learning is done by doing, so I’ll have to think of a cool project where I can use some of my new statistics knowledge.
How can I improve my coding videos
Tags: help
Published: 2019-12-31 19:33:15

---
title: How can I improve my coding videos
published: true
tags: help
---

Recently I started making video versions for some of the posts that I am posting here. But it's hard to tell whether they're any good as people usually don't leave comments.

Here's my channel:

https://www.youtube.com/channel/UCfFe22CVJ0e0o91QLDrwxPw/

If there was **one** thing that I could improve, what would it be?

Thank you 🙇
Happy New Year 2020
Tags: phalcon, newyear, 2020
Published: 2019-12-31 20:13:58

---
title: Happy New Year 2020
published: true
date: 2019-12-31 19:28:50 UTC
tags: phalcon,new year,2020
canonical_url: 
---

![](https://blog.phalcon.io/assets/files/happy-new-year.jpg)

From all of us from the Phalcon Team, may 2020 is filled with health and happiness for you and your loved ones!

2019 was filled with excitement. We have released 13 versions of the framework, including a couple of maintenance releases for v3 and alpha, beta etc. versions for v4, culminating with a v4 Stable right before Christmas.

We have added and deleted over 5 million lines of code to the framework and had over 1,750 commits from 24 contributors (and that is only on the main [cphalcon](https://github.com/phalcon/cphalcon) repository).

You can see all of the 2019 commits in [cphalcon](https://github.com/phalcon/cphalcon) visualized here: [https://youtu.be/VpQHjOUvlTs](https://youtu.be/VpQHjOUvlTs)

We have also started regular hangouts, usually one a month, to keep the community informed and increased our blog posts for the same reason.

April saw our first bugfest which was a success. We will have another one in April 2020 so get ready!

Right before our v4 Stable release - just before Christmas - we hit a significant milestone. Our [cphalcon](https://github.com/phalcon/cphalcon) repository has been _starred_ for more than 10,000 times! We are excited and humbled by your support and trust.

![](https://blog.phalcon.io/assets/files/stars.png)

We would like to thank our awesome community for helping us with code submissions, document corrections, reporting bugs, suggesting new features and discussing with us regarding the future and direction of the framework.

You guys are awesome!!

Thank you!

* * *

Chat - Q&A

- [Discord Chat](https://phalcon.io/discord)
- [Forum](https://phalcon.link/forum)

Support

- [OpenCollective - Support Us](https://phalcon.io/fund)
- [Store - Merchandise](https://phalcon.io/store)

Social Media

- [Telegram](https://phalcon.io/telegram)
- [Gab](https://phalcon.io/gab)
- [MeWe](https://phalcon.io/mewe)
- [Parler](https://phalcon.io/parler)
- [Reddit](https://phalcon.io/reddit)
- [Facebook](https://phalcon.io/fb)
- [Twitter](https://phalcon.io/t)

Videos

- [BitChute](https://phalcon.io/bitchute)
- [LBRY](https://phalcon.io/lbry)
- [YouTube](https://phalcon.io/youtube)

![](https://assets.phalcon.io/phalcon/images/emoji/heart.png) Phalcon Team
Merge multiple dictionaries - Python Tips
Tags: python
Published: 2019-12-31 19:20:58

With Python >= 3.5 we can easily merge multiple dictionaries with `{**}` operation.


```python
dict1 = {"a":1, "b":2}
dict2 = {"x":3, "y":4}
merged = {**dict1, **dict2}
print(merged) # {'a': 1, 'b': 2, 'x': 3, 'y': 4}
```

If the latter dictionary contains the same key as the previous one, it will overwrite the value for that key.

```python
dict1 = {"a":1, "b":2}
dict2 = {"x":3, "a":4}
merged = {**dict1, **dict2}
print(merged) # {'a': 4, 'b': 2, 'x': 3}
```

We can merge several dictionaries:

```python
dict1 = {"a":1, "b":2}
dict2 = {"c":3, "d":4}
dict3 = {"x":5, "y":6}
merged = {**dict1, **dict2, **dict3}
print(merged) # {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'x': 5, 'y': 6}
```

And we can add extra keys when do the merging:
```python
merged = {**dict1, **dict2, **dict3, "z":7}
print(merged) # {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'x': 5, 'y': 6, 'z': 7}
```

Merge and overwrite key:
```python
merged = {**dict1, **dict2, **dict3, "a": 10}
print(merged) # {'a': 10, 'b': 2, 'c': 3, 'd': 4, 'x': 5, 'y': 6}
```
How snarky are you when responding to recruiters?
Tags: career
Published: 2019-12-31 19:07:17

I have gotten multiple LinkedIn messages this month from random recruiters asking if I'm looking for a job/open to new opportunities. This isn't anything new, only difference is I started a new job at the beginning of November... I mean it wouldn't be completely impossible for a person in my situation to be looking again, but pretty unlikely.

Am I asking too much that a recruiter look at my profile before reaching out? Would it be too much for me to respond in a way that makes it clear that I'd expect that before actually connecting with them on LinkedIn? Or am I better to just ignore?
Contagem regressiva para 2020 com Python
Tags: 2019, 2020, anonovo, python
Published: 2019-12-31 18:53:53

```py
# importando método sleep que suspende a execução por alguns segundos
from time import sleep
# imprimindo cabeçalho
print('</2019>')
# pausa de 1 segundo
sleep(1)
print('CONTAGEM REGRESSIVA PARA 2020')
# laço que começa em 10 até 0 com passo -1
for cont in range(10, -1, -1):
    # imprimindo o contador
    print(cont)
    # pausa de 1 segundo
    sleep(1)
# imprimindo as mensagens 
print('Feliz ano novo!')
print('<2020>')
print('Fogo nos fascistas!',end='\n\n')
```
O resultado será:

![resultado do programa de ano novo](https://thepracticaldev.s3.amazonaws.com/i/w89qhbsdfnge0wy2sb68.png)
Top 5 DEV Comments from the Past Week
Tags: bestofdev
Published: 2019-12-31 18:50:39

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

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

@sunnysingh shared a story from their college days in the **[What is the most overworked you've ever been?] (https://dev.to/sunnysingh/comment/jclp)** discussion:
{% devcomment jclp %}

@aminnairi added an example of what makes currying so powerful to the post, **[Currying in JS 🤠](https://dev.to/aminnairi/comment/jepa)**:
{% devcomment jepa %}


@emma chimed in on the discussions, **[What's your personal productivity software stack?](https://dev.to/ben/what-s-your-personal-productivity-software-stack-5522)**, to share the most important software they have installed on their machine:
{% devcomment jen9 %}

@ryansmith listed five top frameworks to consider in response to: **[ What's the Node framework landscape like?](https://dev.to/ben/what-s-the-node-framework-landscape-like-5d5f)**:
{% devcomment jg2c %}

@andeemarks kicks off a thoughtful discussion about refactoring in **[ Keeping your code clean by sweeping out "if" statements](https://dev.to/tomazlemos/keeping-your-code-clean-by-sweeping-out-if-statements-4in8)**:
{% devcomment jd69 %}


See you next week for more great comments ✌
2019: My year in review
Tags: 2019, review, recap
Published: 2019-12-31 18:42:27

---
title: 2019: My year in review
published: true
description: a recap of the year 2019 for me
tags: 2019, review, recap
---

![Cut the cameras. Deadass](https://thepracticaldev.s3.amazonaws.com/i/c8spvuckzoojvtvb8r0w.jpg)
Quick-fire tips for making a better web experience for Featurephone users
Tags: kaios, webdev, ux, a11y
Published: 2019-12-31 18:13:15

I've recently been exploring the emerging web experience thanks to Kai OS, a new breed of internet-connected feature phone. In emerging markets, hundreds of millions of users are now getting connected to the internet for the first time. Unfortunately the internet is quite a chore to browse on micro-browsers and tiny non-touch screens.

Right off the bat, I've come up with a few tips to make browsing on a tiny Kai OS device more bearable. These aren't your typical mobile standards!

# Lose the header and title your page
That's right, my first unusual tip is to totally lose your site's header in favour of the site's title which is shown permanently on the address bar. Perhaps a little extreme, but your logo alone might take up over half the screen in some cases! If you really want to keep a header, try to make it as small as possible, preferable no larger in height than one line of test. Also lose the image and make it text if possible.

# Turn your hamburger menu back into text-links
The less clicks needed to navigate your site on Kai OS, the better. I propose ditching the hamburger menu on micro-sizes and opting for plaintext links instead. Keep the text small and allow only up to three links per row.

> More scrolling is better than more clicks

# Hide images behind links
You want your page to consume as little data as possible to be considerate of data rates in developing countries. Hide your images behind plaintext links and don't load them until they're requested. This also makes your page more scrollable and easier to navigate.

# No fixed content, ever.
Ditch your fixed header and footer- these will make your site completely, utterly unusable on tiny screens.  Your viewport is already miniscule so every pixel counts!

# Avoid pop-ups entirely
Pop-ups are the bane of micro-web-browsing. Some websites, even W3Schools, are impossible to navigate because there is a pop-up that obscures the screen. Hopefully, as the OS matures its browser will allow a better mouse-like cursor so we can close pop-ups.

# Give pop-ups big close buttons
If you can't avoid a pop-up or modal, at least give it a big close button, preferably at the top where it's easy to reach.

Those are my first  quick-fire tips for creating bearable web experiences on Kai OS and other internet-connected feature-phones. Developing websites that offer a decent experience on these devices is a challenge, but we shouldn't disregard this massive group of new users who are diving into an internet that is quite inaccessibile already.
Shiv zipapps and CI - Building SaaS #21
Tags: python, django, saas
Published: 2019-12-31 18:02:55

{% youtube ATg3YtaBPiI %}

In this episode, I took our new Shiv zipapp and fixed a problem with its dependencies.  Then we worked on building the Shiv app in the continuous integration (Circle CI) environment.

Show notes for this stream are at [Episode 21 Show Notes](https://www.mattlayman.com/building-saas/shiv-zipapps-ci/).

To learn more about the stream, please check out [Building SaaS with Python and Django](https://www.mattlayman.com/building-saas/).
2020 - Free Resources for Learning Web Development
Published: 2019-12-31 18:00:38

With a new year comes many new hearts and minds that will be captivated with the idea of web development as a career or hobby. With so many resources to learn web development what are some free resources you can use?

## devNursery.com

This website is actually my final project for the Bootcamp I did with General Assembly in 2019. At this website, you can find a growing slack community filled with aspiring web developers providing each other with advice and moral support, a directory of instructional videos I've created for different languages and frameworks and a modest blogging/todo list platform if you sign up for a free account. 

Check it out if at least for the instructional video directory.

## Podcasts

Of course, there is my podcast, Web Dev 101, but there are several other great podcasts to help you stay in the development loop such as HTML all the Things and Syntax.

## Youtube

Some of the best channels when it comes to web development include Travery Media, Academind, Web Dev Simplified, Fireship (subscribe to my youtube channel too, AlexMercedCoder). These channels help get started in almost any technology with ease.

What other resources do you recommend? Leave a comment.
React Jest Testing Help
Tags: react, jest, async, javascript
Published: 2019-12-31 17:52:05

Hi everyone,

At the moment I am trying to test a method on a React component that contains some async logic. The method is called on a child component but it method on the child also calls a method on a parent (A Context API Provider). The method on the parent returns a promise, however the method does not resolve in the child. Is there a way I can get this method to complete in my Jest test? Am I going about testing completely wrong? I want the method to resolve so I can assert that the newItem property in Home.js has been reset. Happy New Year!

Home.test.js
```
import React from 'react';
import { mount } from 'enzyme';
import App from '../App';
import Provider from '../components/Provider';


test('should add to the provider list', () => {
  const wrapper = mount(
    <Provider>
      <App/>
    </Provider>
  );

  const child = wrapper.find('Home');
  const spy = jest.spyOn(child.instance(), 'addToList');

  child.setState({ newItem: { name: 'Cheese' } });
  wrapper.find('form').simulate('submit');

  expect(wrapper.state('list')).toHaveLength(1);
  expect(spy).toHaveBeenCalled();
});
```

component method in Home.js
```
addToList(event) {
    event.preventDefault();

    const { newItem } = this.state;

    if (!newItem.name) return;

    this.context.addToList(newItem)
      .then(() => {
        this.setState(() => ({
          newItem: { name: '' }
        }));
      })
      .catch(err => {
        //
      });
  }
```

component method in Provider.js
```
addToList(newItem) {
    return new Promise(resolve => {
      this.setState(state => {
        state.list.push(newItem);
        return state;
      }, resolve);
    });
  }
```
New Year gift for DevCommunity and WordPress users
Tags: webdev, wordpress, php, restapi
Published: 2019-12-31 17:51:39

About a month ago I started writing on DevCommunity. As a developer, I found DevCommunity like home. Developers from different backgrounds are sharing their works, ideas, and thoughts. It's just full of joy here.

I was thinking that DevCommunity users may also have WordPress sites. How they'll showcase their DEV articles on WordPress site?

So, I've created a WordPress plugin a few days ago, so that you can showcase your DevCommunity articles on your WordPress site.
Actually, It was a small try from my site to make a bridge between DevCommunity and WordPress.

If you are a WordPress user you already know about shortcodes. This plugin works with a shortcode. `[dev_post user_name=dev-user-name]` this simple shortcode will show all your DevCommunity articles on WordPress site.

Of course, you'll have more control over it. You can show as many articles as you want by adding `post_count=3` in the shortcode. 

If you want two columns grid layout, you also can do that. 

You can download the plugin from WordPress plugin repo **[DevTo articles on WP](https://wordpress.org/plugins/devto-articles-on-wp/)**.
You also can download it from [Github](https://github.com/AbmSourav/DevTo-articles-on-WordPress)

Enjoy your holidays. Happy New Year 2020
Using Fortune For Studying
Tags: comptia, security, study, cybersecurity
Published: 2019-12-31 17:13:08

![Example](https://thepracticaldev.s3.amazonaws.com/i/d7489sjc6ujq91gcjhng.png)

I'm studying for Comptia Security+ (SY0-501) certification as part of a retooling that I'm doing.  (Working fulltime while going back to school ain't no joke.)  The retooling is taking the form of degree, ctf/proof of work, and certifications.  To help squeeze in some additional efficiency I've set up my terminal to pop up a flashcard each login of terms to memorize.  This is accomplished using fortune, lolcat, and cowsay in conjunction with a custom fortune file.  For right now, I've just grabbed a dumb list of terms to memorize but as I build my study guides, I'll flesh this out.

https://github.com/Chad-Ballay/fortune_study_guide

### Install Utilities
Install fortune, lolcat, and cowsay using Homebrew.  Only fortune is needed but the asthetics of having Lolcat and Cowsay make it better.
*  [https://en.wikipedia.org/wiki/Fortune_(Unix)](https://en.wikipedia.org/wiki/Fortune_(Unix))
*  [https://github.com/busyloop/lolcat](https://github.com/busyloop/lolcat)
*  [https://github.com/tnalpgge/rank-amateur-cowsay](https://github.com/tnalpgge/rank-amateur-cowsay)
```console
$ brew install fortune
$ brew install lolcat
$ brew install cowsay
```

### Get A Fortune File
You can get mine. 
https://github.com/Chad-Ballay/fortune_study_guide/blob/master/study_guides/SY0_501.fortune

Or write your own.  
http://bradthemad.org/tech/notes/fortune_makefile.php

### Setup Your Fortune File
I install them locally to ~/.fortune since the intention is to have specific cert ones for focus.  You could install this wherever you want, you just need to remember that for the .bash_profile step.
```console
$ mkdir ~/.fortune
$ cp ./study_guides/SY0_501.fortune ~/.fortune/
$ strfile ~/.fortune/SY0_501.fortune
```

### Test It
You should be able to get some random flashcard and ascii art when you run this.
```console
$ fortune ~/.fortune/SY0_501.fortune | cowsay -f $(shuf -n 1 -e $(cowsay -l | tail -n +2)) | lolcat
```

### Setup Profile
Now to modify your login to always have one.
```console
$ cp ~/.bash_profile ~/.bash_profile.backup.$$
$ echo 'fortune ~/.fortune/SY0_501.fortune | cowsay -f $(shuf -n 1 -e $(cowsay -l | tail -n +2)) | lolcat' >> ~/.bash_profile
```

### TODO
PR's are always welcome.
*  I need to review the data in my Fortune file since there are misspellings galore.  
*  I need to expand it to include more concepts.
*  I need to create other Fortune files for GSEC, CySA, CCNA, etc...
Matt's Tidbits #49 - What to do when your (Log)cat misbehaves
Tags: mattstidbits, android, androidstudio, tidbittuesday
Published: 2019-12-31 17:10:24

[Last week I wrote about an easy way to filter search results that occur in unit tests so you can focus on production code.](https://medium.com/@matthew.b.groves/matts-tidbits-48-separating-out-search-results-for-test-code-d11190ab4847) This time, I want to share a story about a misbehaving Logcat window.

Pet owners know that cats especially like to go crazy around the holidays:
![](https://media.giphy.com/media/xTk9ZVpnoAWBzgOCxq/giphy.gif)

Unfortunately, it seems my Logcat window in Android Studio took some inspiration from its furry cousins recently as the "filter" toolbar completely disappeared from the IDE for only one of my projects:
![](https://cdn-images-1.medium.com/max/1600/1*SuT3jh--wceSVTsRRSJPPg.png)

For those who aren't familiar, the piece that's missing is the following menu, which allows you to specify which device you're viewing output for, as well as filtering by app/log level/etc.:
![](https://cdn-images-1.medium.com/max/1600/1*wy31Hb6KUA4DxNc-6JrjZg.png)

Restarting Android Studio didn't help, so I turned to Stack Overflow, where I found the following thread:
https://stackoverflow.com/questions/28714646/logcat-is-missing-the-filters-options

Thankfully, this ended up being a simple fix, as clicking the "Event Log" button in the lower right corner brought the filter toolbar back right away!
![](https://cdn-images-1.medium.com/max/1600/1*ufQbhIj4S1VLKzJwHRIeKQ.png)

As with any other Android Studio bug, it's important to check whether an official bug has been filed. In this case, one already existed - go star the issue if you'd like to see this one fixed!
https://issuetracker.google.com/issues/140508076

Do you know of any Android Studio bugs that you haven't reported yet? You really should! Think of it like a developer New Year's resolution - make sure you're filing tickets for the bugs that you find - your input is important! The bugs won't get found and fixed all on their own. Please follow me on Medium if you're interested in being notified of future tidbits.

Interested in joining the awesome team here at Intrepid? [We're hiring!](https://www.intrepid.io/careers)

*This tidbit was discovered on December 23, 2019.*
How to deploy a React application on AWS Amplify
Tags: aws, react, javascript, videos
Published: 2019-12-31 17:09:34

---
title: How to deploy a React application on AWS Amplify
published: true
description: While studying for one of the AWS Exams I found a service called AWS Amplify. In this video I show you how easy it is to use this service to push a React application to a repository on Github and then have it automatically deploy on AWS.
tags: AWS, React, JavaScript, videos
---

### While studying for one of the AWS Exams I found a service called AWS Amplify. In this video I show you how easy it is to use this service to push a React application to a repository on Github and then have it automatically deploy on AWS.

{% youtube kKwyKQ8Jxd8 %}

Originally published at [andredevries.dev](https://andredevries.dev/posts/aws-amplify-react/)