teleren/devto huggingface dataset:
Godfathers of Artificial Intelligence 
Tags: intelligence, ai, artificial, godfathersofai
Published: 2019-04-04 06:09:54

---
title: Godfathers of Artificial Intelligence 
published: true
description: Recently winners of Turing Award have been announced as Yann LeCun, Geoff Hinton, and Yoshua Bengio for contribution Artificial intelligence. Let’s learn about their journey and the evolution of Artificial intelligence. 
tags: Intelligence, AI, Artificial, Godfathers of AI
---

<img src="https://thepracticaldev.s3.amazonaws.com/i/pxn4m84121c5u0y6k58v.jpg" />

Recently winners of Turing Award have been announced as Yann LeCun, Geoff Hinton, and Yoshua Bengio for contribution Artificial intelligence. Let’s learn about their journey and the evolution of Artificial intelligence.

**Read Full Article Here: <a href="https://www.decipherzone.com/blog-detail/Godfathers-of-Artificial-Intelligence">Godfathers of AI</a>**

Alan Turing

Alan Turing, the British mathematician who is also considered as the father of mathematics laid the foundation for computers and artificial intelligence. The famous P & NP problems that are taught to computer science students is the base for the Turing test (Turing test was designed). The Turing test, developed by Alan Turing in 1950 is a test of a machine's ability to exhibit intelligent behaviour equivalent to, or indistinguishable from, that of a human.
14 Practice Question Walkthrough Videos for AWS Certified Cloud Practitioner
Tags: aws, certification, beginners, career
Published: 2019-04-04 03:56:09

---
title: 14 Practice Question Walkthrough Videos for AWS Certified Cloud Practitioner
published: true
description: 
tags: aws, certification, beginners, career 
---

I create hundreds of practice exam questions for AWS Certification on my study platform [ExamPro](https://exampro.co) and since I have so many I can afford to share some of them for free with you buds.

If you like this stuff I can make available more questions for free across the other 9 exams including ones of the new AWS Machine Learning Certification.

{% youtube 0Q9Agpa_1bA %}
{% youtube oMNt2X5EvdE %}
{% youtube yUzf5GnaD00 %}
{% youtube 67uBmy9-aVw %}
{% youtube mX85MAZP3MU %}

{% youtube wrIA8I7a2FU %}
{% youtube 425HWyctcEA %}
{% youtube T2bueOQl3GI %}
{% youtube 0EutWjcS_qs %}
{% youtube uYyO6kmM6_E %}

{% youtube Rpje-XLvANo %}
{% youtube 10fpez7Sclc %}
{% youtube R0V2wkh9rp4 %}
{% youtube sBfX-88AhRA %}
Day 8 Learning Javascript
Tags: beginners
Published: 2019-04-04 03:03:16

---
title: Day 8 Learning Javascript
published: true
description: A beginner's journey into Javascript...
tags: #beginner
---

JS just threw me for a loop! Eek!

So, I mentioned in my last post how easy I found the subject of Objects, and the exercises I did along with it. And how that probably means the next topic I tackle will give me hell. Well, I was right.

I learned about Loops today.

I. Am. Lost.

Everything else I've been able to grasp pretty well, and whatever I didn't understand initially I researched deeper into the topic via MDN, Stack Overflow, and video tutorials until it made sense. But so far, nothing about Loops make sense to me. I don't get the syntax. I don't get when to use *for*, *forEach*, *while*, or *do-while*. I don't understand the results the Loops return.

Looks like I have a LOT of extra digging to do into Loops.
Visual Studio Live Share
Tags: pairprogramming, vscode
Published: 2019-04-05 12:40:43

---
title: Visual Studio Live Share
published: true
tags: [pair programming, VSCode]
canonical_url: https://visualstudio.microsoft.com/services/live-share/
---

[Visual Studio Live Share](https://smw.fyi/53)

This looks very promising. I also love the built in option to share with a large(r) audience.
What's an awesome VS Code extension you recently installed?
Tags: discuss, vscode, texteditor
Published: 2019-04-04 02:11:42

---
title: What's an awesome VS Code extension you recently installed?
published: true
tags: discuss, vscode, texteditor
canonical_url: https://www.iamdeveloper.com/posts/what-s-a-recent-awesome-vs-code-extension-you-installed-38de/
cover_image: https://thepracticaldev.s3.amazonaws.com/i/f3b89f40dgu0qul4dmxn.png
---

I just came across a simple yet awesome VS Code extension tonight care of Elijah Manor.

{%twitter 1113425724466135046 %}

Basically it dims code that currently isn't selected. Here it is in action.

![](https://thepracticaldev.s3.amazonaws.com/i/sg667uu5pqycpq6rmd5n.gif)

So what's an awesome VS Code extension you recently installed? 👨‍💻

P.S.: It's a bit out of date, but here's my VS Code setup for those interested.

{%link https://dev.to/nickytonline/my-visual-studio-code-setup-2ima %}
What's the difference between an action creator and a action?
Tags: redux, react, javascript, codenewbie
Published: 2019-04-04 01:00:07

---
title: What's the difference between an action creator and a action?
published: true
description: This explains the difference between actions and action creators.
tags: redux, react, javascript, codenewbie
---


An action is simply an object that has two things: a type, and a payload.

An action creator is simply a function, that just returns an action.

Why do we care about action creators?  I don't think one should care to correct people who don't differentiate between actions and action creators, but it is a good thing to make action creators, because it provides a way to have reusable actions that you can use all throughout your code base.

Also, you can add logic in there that you may not want to have to remember to do each time you use an action.

My favorite example is when you have to create a uniquely generated id.

```js
import shortid from "shortid";

export const addPost = ({ title, body }) => {
    return {
        title,
        body,
        id: shortid.generate()
    };
};
```

What do you like to do with your action creators?
Visual Studio Tips - Window Management
Tags: vstips, csharp, productivity, visualstudio
Published: 2019-04-04 18:01:03

---
title: Visual Studio Tips - Window Management
published: true
tags: vstips, csharp, productivity, visualstudio
canonical_url: https://hutchcodes.net/2019/04/visual-studio-tips-window-management/
---

Everyone has their own favorite layout for the various tool windows in Visual Studio. But sometimes you want different Window layouts based on what you’re working on, or whether you have external screens attached to your laptop.

<!--more-->

First the basics of tool windows.

You can click and hold any window by its header (or its tab if it is already docked) and drag it. While drag it you will see a bunch of little blue boxes indicating where it can docked, if you drop it on one of those it will dock, otherwise it will float and can even be moved to a second monitor.

![alt text](https://hutchcodes.net/img/2019/WindowsDocking.gif "Animation of docking a window")

If a window is docked, you can Pin a window with the Thumbtack icon to make it always visible, or if it’s already pinned you can Unpin it to make it Autohide.

![alt text](https://hutchcodes.net/img/2019/WindowPinUnpin.jpg "Window header with pin/unpin icon highlighted")

### Save Your Window Layouts

Once you have all your windows where you want them you can Save the layout by going to Window -> Save Window Layout. You’ll be prompted to name your layout. This saves which windows are open, where they are docked, whether they are pinned or autohidden, **and** their size.

![alt text](https://hutchcodes.net/img/2019/WindowSaveLayout.jpg "Window Save Layout menu item")

Once you’ve save a layout or two, you can either go back to the Window menu, click Apply Window Layout and select your layout from the list. Or you can use the hot key combination for the layout (ie `Ctrl+Shift+1` for layout 1)

![alt text](https://hutchcodes.net/img/2019/WindowApplyLayout.jpg "Window Apply Layout menu item")

### The Catch

The one slightly unintuitive part of saving window layouts is that when you save a layout, that is for both the layout for editing _and_ the layout for debugging which are often different. So to set a layout, you need to get all the windows where you want them in edit mode, then start a debug session to get all of those windows where you want them, then save the layout. Otherwise you’ll find yourself needing to switch layouts every time you go from editing to debugging and back.
Create something that is imperfect for a reason
Tags: showdev, fun, node
Published: 2019-04-04 00:39:27

---
title: Create something that is imperfect for a reason
published: true
description: Create something that is imperfect to produce results
tags: showdev, fun, node
---

##Problem 

I create and support a few Open Source Software [regexits](https://www.npmjs.com/package/regexits) and [are they up](https://www.npmjs.com/package/aretheyup) and also have two large scale projects in the works. A HQ video to HQ GIF for Windows, Linux and Mac, and IQFINITY which is a dashboard for Amazon and ebay Sellers both open source. Juggling all of this and creating something that is driven by users is a lot, its draining and can cause burn out.

## Solution

I create intentional 'imperfect' web apps, demos or even cli apps. Let me explain, the apps I create function, do what I want and that is it. Usually it focuses on a single element

For example [bloody weather](http://weather.jamesperkins.io) it has one operation. type a US zip and return the weather with a British slang in there... It's not pretty, its not styled to the level of projects I usually work on. I started this on Sunday in 30 min intervals between project work.  


This is what it looks like on mobile 

![home] (https://thepracticaldev.s3.amazonaws.com/i/nslrdi0exvw7yojp54vi.png)


It isn't super pretty and has flaws, for example if you type on mobile the screen shifts causing overlaps. Sure I could fix it, but that's not the aim. The aim is to decompress by not worrying about the styling and responsive design.  


## Sum Up

Give the app a try.. The API is an open-weather and has some issues using zip code but the app is starting small, next I will add city when I need some decompression. You should find a small project that you don't put the pressure of high standards and just let it flow, it helps break through the frustrations of other work.
Data Persistence in Swift: UserDefaults
Tags: swift, ios, tutorial, xcode
Published: 2019-04-04 00:38:24

---
title: Data Persistence in Swift: UserDefaults
published: true
description: 
tags: swift, ios, tutorial, xcode
cover_image: https://thepracticaldev.s3.amazonaws.com/i/e003j4goln59vntyl4n6.jpeg
---


There are multiple ways to <a href="https://iosapptemplates.com/blog/ios-development/data-persistence-ios-swift">persist data in iOS apps</a>. In this article, we are going to talk about UserDefaults. In Swift, UserDefaults API can be used to store small amounts of information about the application or user's settings.

![swift userdefaults](https://thepracticaldev.s3.amazonaws.com/i/e003j4goln59vntyl4n6.jpeg)

For instance, the user should be able to specify the default playback speed or currency that you should display when presenting some stock data. These preferences should be application specific and should be persistent between app launches. However, this data storage is wiped out when users delete the app, so the data is not persistent across app installs.

## UserDefaults Example

```
class UserRepository {
    enum Key: String, CaseIterable {
        case name, avatarData
        func make(for userID: String) -> String {
            return self.rawValue + "_" + userID
        }
    }
    let userDefaults: UserDefaults
    // MARK: - Lifecycle
    init(userDefaults: UserDefaults = .standard) {
        self.userDefaults = userDefaults
    }
    // MARK: - API
    func storeInfo(forUserID userID: String, name: String, avatarData: Data) {
        saveValue(forKey: .name, value: name, userID: userID)
        saveValue(forKey: .avatarData, value: avatarData, userID: userID)
    }
    
    func getUserInfo(forUserID userID: String) -> (name: String?, avatarData: Data?) {
        let name: String? = readValue(forKey: .name, userID: userID)
        let avatarData: Data? = readValue(forKey: .avatarData, userID: userID)
        return (name, avatarData)
    }
    
    func removeUserInfo(forUserID userID: String) {
        Key
            .allCases
            .map { $0.make(for: userID) }
            .forEach { key in
                userDefaults.removeObject(forKey: key)
        }
    }
    // MARK: - Private
    private func saveValue(forKey key: Key, value: Any, userID: String) {
        userDefaults.set(value, forKey: key.make(for: userID))
    }
    private func readValue<T>(forKey key: Key, userID: String) -> T? {
        return userDefaults.value(forKey: key.make(for: userID)) as? T
    }
}
```

## Benefits
- UserDefaults is easy to use, with a simple clean API
- UserDefaults is thread-safe (you can read and write values from any thread)
- UserDefaults is shared between the app and the app extensions


## Disadvantages

- Collisions can happen easily
- Lack of data encryption
- Not persistent across app installs

Stay tuned for the other articles where I will present a few alternatives to UserDefaults, trying to mitigate some of the limitations outlined above.

Resources
* [link1](https://pastelink.net/bwy4pq2b)
* [Micro](https://micro.blog/sebduta)
* [Devbrite](http://devbrite.io/)
Rename Variable While Destructuring In Javascript
Tags: javascript, destructuring, objects
Published: 2019-04-13 19:14:08

---
title: Rename Variable While Destructuring In Javascript
published: true
tags: javascript, destructuring, objects
canonical_url: https://stephencharlesweiss.com//2019-04-04/rename-with-destructuring-in-javascript/
---

I recently came across a situation where I had two different props in a component that had the same name (they were in different parts of the object).

I wanted to use both and compare them, but also wanted to use destructuring so I didn’t have to drill through the object to find them.

This got me wondering whether or not I’d be able to simply rename while destructuring the object.

Turns out you can.

Imagine the following:

```
const me = {
  name:'stephen',
  family: {
    wife : {
      name: 'kate'
    },
    animal: {
      name : 'finn',
      type: 'dog',
    },
  }
}
```

So, I want to be able to access my name, my wife’s name, and my dog’s name.

I can do that with destructuring, like so:

```
const { name } = me
const { name: wife } = me.family.wife
const { name: dog } = me.family.dog
```

The only thing that I really wish this could do that it _can’t_ is allow additional restructuring _within_ the object and combine this into one line. That is, the following will _not_ work:`const {name, family.wife.name: wife, family.dog.name: dog} = me`

Oh well.

[Wes Bos](https://wesbos.com/destructuring-renaming/) has a helpful post on the topic. Check it out.
JS Dev - So Much New
Tags: aesthetics, syntax
Published: 2019-04-03 22:22:56

---
title: JS Dev - So Much New
published: true
description: 
tags: aesthetics, syntax
---

What's your preferred way to format this type of destructuring?


```javascript
        let {
            thing1,
            thing2,
            thing3 } = this.state;
```

It's amazing to realize how many new development features the Javascript dev community is bringing to development in general. So many awesome features available to us via Webpack and Babel!
Superheroes, Lazybones or New People — Who Are Remote Developers?
Tags: remote, research, remotelife, career
Published: 2019-04-03 21:51:31

---
title: Superheroes, Lazybones or New People — Who Are Remote Developers?
published: true
description: research on remote developers
tags: remote, research, remotelife, career
---

I've started building a product for remote developers about 6 months ago. Recently my team & I created our first research on remote work to know our users better. 

We've surveyed 250 engineers, interviewed 10 CTOs from remote startups, analyzed 400 LinkedIn and GitHub accounts to answer one questions: what makes a successful remote developer? I'd like to share with you some insights and discoveries we learned.

<h2>Benefits</h2>
<strong>Here are the three most important benefits that remote work gives for developers:</strong>
1. The opportunity to get rid of a daily commute.
2. Spend more time with their family.
3. Get access to foreign projects and a higher salary.

<img src="https://thepracticaldev.s3.amazonaws.com/i/zuoc4h5nk4kriclydkaj.png">

I was quite surprised by #2 — most of our respondents put family above salary. Isn't that sweet? 😍

<h2>Difficulties</h2>
There are many advantages in terms of working remotely, yet, at the same time, you can easily face many problems. 

<strong>We've found 3 main difficulties in remote work:</strong>
1. No boundaries between work and personal life.
2. Difficulties in communication.
3. Difficulties with self-organization.

<img src="https://thepracticaldev.s3.amazonaws.com/i/mwjejbl86amgylba7otp.png">

Well, no big discoveries here. But I have to mention that 27% of respondents said they have no problems in working remotely. If I was part of this survey, I'll be the one answering 'loneliness' — as 20% of developers did. I guess if you don't have a family and naturally introvert you can get lonely working remotely after all. 

<h2>Portrait</h2>
The second part of our research was analyzing LinkedIn and GitHub profiles of remote engineers form fully remote companies like GitLab, Trello, Dribble, and others. We were interested in creating a portrait of a successful remote employee. 

And we got some really interesting data: <strong>the average age of remote developers is between 30 and 35 years</strong> and they usually had between 5 to 7 years of work experience before they moved to remote work.

<img src="https://thepracticaldev.s3.amazonaws.com/i/yq6wg7tu7ymeitmhrhj3.png">

I'm 27 now and been working remotely for a couple of years, so let's say I'm the exception to the rule. But I find it exciting that remote developers are people with decent experience and age — means that they decide to go remote consciously like it's an evolution of their choices. 

If you want to learn more about Remote Developers — please, read our <a href="https://6nomads.com/resources/remote_en">research</a href>. I'll appreciate your thoughts or essential experience on remote work. Do you agree with the results of the research? Or are you also 'exception to the rule'?
Doing an AMA with the CTO of Reddit. What should we ask him?
Tags: discuss, productivity, engineering, ama
Published: 2019-04-03 20:50:29

---
title: Doing an AMA with the CTO of Reddit. What should we ask him?
published: true
description: 
tags: #discuss, #productivity, #engineering, #ama
---
![CTO of Reddit, and Engineering Managers from Square and Zendesk](https://thepracticaldev.s3.amazonaws.com/i/v6zbai7m43cqc6kgiu73.jpg)
I am an artist who became a software architect, Ask Me Anything!
Tags: ama, webdev
Published: 2019-04-03 19:33:24

In college I majored in an interdisciplinary degree that combined technology and art. Eventually I got a MFA at Syracuse. Web development was something that I considered a hobby back in the late 90s. The demand for web development kept following me in the 00s and eventually I put down my camera and picked up coding again. Fast forward a decade I found myself teaching at General Assembly, architecting UI for Symantec and working on enterprise applications for Nike and NBCUniversal.

I had to start all over again at one point, learning web development from scratch. Are you starting out in a similar way, transitioning from art to web development?

#AMA !
Foster an adaptive mindset
Tags: leadership, softskills, motivation
Published: 2019-04-03 19:24:28

---
title: Foster an adaptive mindset
published: true
description: 
tags: leadership, softskills, motivation
cover_image: https://thepracticaldev.s3.amazonaws.com/i/mvf0n15qq3plzro8rgoh.jpg
---

_Originally published on [WyeWorks blog](https://www.wyeworks.com/blog/2019/04/01/foster-an-adaptive-mindset/)._

It’s hard to let go of the way we do things. To embrace said change with arms wide open, even harder. Regardless of our job title or the type of work we perform, whenever we’re asked to do something in a different way than we’re used to, we’ll experience some degree of emotional pain.

Working on overcoming this pain takes on special relevance in this day and age, due to the fact that an adaptive mindset is now a necessary trait, which results from the speed with which the world we live in evolves and moves forward.

## Why is adaptation so difficult?

Depending on life experiences, our values, and the contexts we are involved in, our perception of reality and how things should and ought to be done will differ from those around us. This doesn’t mean that our perception is right and theirs is wrong. It means they’re simply different _points of view_.

These behaviors and ways of seeing things slowly hardwire into our essence, until they reach a point in which we put them in motion automatically, no effort required. Doing things differently on the other hand, goes against this.

Embracing change means getting way out of our comfort zone. Getting out of our comfort zone implies effort. Implies investing energy to understand the new reality. Implies _taking a risk_.

## Is it worth the effort?

I strongly believe that taking that risk will allow us generate new _learnings_. Will allow us to _discover_. Will allow us to _grow_.

I’m not saying that all risks are worth taking. That all change should be welcomed. What I’m trying to say is that we should see incoming change with a different set of eyes: _the eyes of opportunity_.

Next time you foresee an incoming change opportunity, I encourage you to shift your perspective and stance against it. Make an effort to welcome it. After all, it could be your chance to __make a difference__.
Exploring tags in dev to
Tags: discuss
Published: 2019-04-03 19:24:20

---
title: Exploring tags in dev to
published: true
description: I am new to dev to. While I was exploring the tags to follow, I did not find a mobile tag. Will it be nice to have a "Xplat mobile" tag where all cross platform mobile framework related discussions and experiences can be posted?
tags: #discuss
---