teleren/devto huggingface dataset:
Which top 🔥 technologies 🤖 and skills ⚙️ will be high 💡 in-demand 📈 in 2020 ? Let us discuss 💬 !!!
Tags: discuss, career, webdev
Published: 2019-12-04 09:32:40

Hey Dev Community,

![](https://cdn-images-1.medium.com/max/2048/1*VyLMeGBgRiAVgNNDcPcGhQ.png)

2019 is about to end. We witnessed a lot of ups and downs this year. It's important to discuss this because newbies can focus on those technologies and learn skills related to them. 

### I was thinking about what technologies related to programming will be high in demand in 2020 and beyond. So, I came up with this list :

*1. Python*
*2. Rust*
*3. GraphQL*
*4. Flutter*
*5. Kotlin*
*6. ReactJS*

### Skills which in my opinion will dominate are :

*1. Data Science*
*2. Machine Learning*
*3. IoT*
*4. Blockchain*
*5. Autonomous Cars Programming*
*6. Embedded Systems Programming*

Let me know what are your thoughts about this ?
Loop on fail - Small Pytest Trick to Boost Your Productivity
Tags: python, pytest, productivity, tdd
Published: 2019-12-04 09:05:36

While reading `pytest-xdist` docs I came across a very interesting flag
```
-f, --looponfail    run tests in subprocess, wait for modified files
                    and re-run failing test set until all pass.
```
Amazing! especially if you have slow tests and you want faster feedback loop.
All you need to do is to install the pytest-xdist plugin
`pip install pytest-xdist`
and then run your tests with `-f` switch.
Now pytest will watch for file changes and run failing tests


**Found this post useful? Add a star⭐️ to my Github project🙂**

{% github moshe/elasticsearch-comrade %}
How we can overcome distractions and stay focused as developers
Tags: beginners, productivity
Published: 2019-12-04 08:41:39

#The distractions that surround us aren't going anywhere, so learning to overcome them is one of the best things we can do for ourselves as developers to always stay focused and get our staff done ✔.
Here are 5 tips that can help us to stay focused during work by managing distraction and eliminating chances for procrastination as developers;
#1. Set plans
All successful people are great planners whereby  they make lists for every major and minor objective. When a task comes your way, spend some time thinking about how you will accomplish it instead of jumping into it straight away. Write down every step necessary from start to finish, with a timeline.

#2. Break it down.
Especially when distractions are high, make tasks smaller and break down your large projects into smaller tasks to help you concentrate and give you a sense of accomplishment and progress.

#3. Set deadlines
If you're working on a complex task, it takes an average of 90 minutes to accomplish anything worthwhile and about 30 minutes just to get your mind on the task. Once you are in the flow, set a concentrated period of time and when the time runs out, stop. It's easier to stay focused when you have an end in sight.

#4. Go offline
Some of the biggest sources of distraction come from email, social media, and cell phones. If you want real focus, take yourself offline until you've accomplished what you need to do.

#5. Give yourself a break
one of the keys to doing great work is to know when to take a break. When you start to feel distracted, take a break every 2hours of work, your break can be for about 15 to 20 minutes. A short break can help you clear up your mind.

Our ability to stay focused is more than just a worthwhile thing to cultivate--it's a critical factor in our success or failure as developers. Getting things done is imperative, and focus is the key to getting things done.

I hope these tips will help  some of us to improve on ourselves as developers.

In case there is anything I have missed that you feel it's worth to be included then you can comment below 👏
G2Plot: elegant and simple charting library
Published: 2019-12-04 02:56:57

---
title: G2Plot: elegant and simple charting library
published: true
description: 
tags: 
---
[`G2Plot`](https://github.com/antvis/G2Plot) is an interactive and responsive charting library based on [the grammar of graphics](https://github.com/antvis/g2), which enables users to generate high quality statistical charts through a few lines of code easily.

Moreover, combining with AntV design principles, G2Plot provides standard and elegant visual styles as well as better user experience.

<img src="https://gw.alipayobjects.com/mdn/rms_d314dd/afts/img/A*wkoYQ5JuFckAAAAAAAAAAABkARQnAQ" width="1200">

## Features

### pretty and high-quality charts out of box

G2Plot is powered by an enterprise-class visualization design principle, which not only focuses on the entire visual style of the charting library, but also provides users the best default options for each chart concerning to their own features.

Even though you are not an expert in data visualization, you still can create elegant charts through a few lines of code.

<img src="https://gw.alipayobjects.com/mdn/rms_d314dd/afts/img/A*rqI2Qqt0pTwAAAAAAAAAAABkARQnAQ" width="600" />

### responsive charts

The responsive ability of G2Plot guarantee your chart’s readability and information density in any display space and data status.

<img src="https://gw.alipayobjects.com/mdn/rms_d314dd/afts/img/A*ifK1TLi_4WoAAAAAAAAAAABkARQnAQ" width="600" />

### story-telling charts

The layer concept in G2Plot provides the possibilities of multi-chart storytelling through the overlapping, combination and connection mode of charts. In addition, G2Plot is exploring the technique of enriching the visual expressiveness of charts, such as transferring statistical chart to infographics.

<img src="https://gw.alipayobjects.com/mdn/rms_d314dd/afts/img/A*gd00QaD9110AAAAAAAAAAABkARQnAQ" width="600" />

## Installation

```bash
$ npm install @antv/g2plot
```

## Usage

<img src="https://gw.alipayobjects.com/mdn/rms_d314dd/afts/img/A*37siRJftYDIAAAAAAAAAAABkARQnAQ" width="450">

```html
<div id="container"></div>
```

```js
import { Bar } from '@antv/g2plot';

const data = [
  { year: '1951 年', sales: 38 },
  { year: '1952 年', sales: 52 },
  { year: '1956 年', sales: 61 },
  { year: '1957 年', sales: 145 },
  { year: '1958 年', sales: 48 },
];

const bar = new Bar(document.getElementById('container'), {
  data,
  xField: 'sales',
  yField: 'year',
  colorField: 'year',
});

bar.render();
```

## Development

```bash
$ npm install

# run test case
$ npm run test

# run demos
$ npm start
```
Best productivity apps for GTD Method 
Tags: productivity
Published: 2019-12-04 08:28:34

If you never heard of GTD Method, you are missing out big time... 

Check out productivity consultant David Allen’s 2001 book, [Getting Things Done](www.gettingthingsdone.com). Allen introduces a five-step method of applying order for a stress-free work life.

![GTD Method](https://thepracticaldev.s3.amazonaws.com/i/jiwx1qw9ppoeuwjvgq4z.png)

1. **Capture**: Write down everything in your mind, every task you have to do. Don’t think twice, just list everything out.
2. **Clarify**: Process the list and decide which task should be done first or required immediate attention.
3. **Organize**: Add due dates, delegate for others, build a reference file, etc. Basically, you put everything to where they belong to.
4. **Review**: Review your task list frequently to see if it needs to be updated or revised.
5. **Engage**: Start doing!

This amazing feeling of confidence in getting goals accomplished has proven to be quite popular—which is why so many people swear by the GTD method. 

## Great GTD tools for freelancers 

For Capturing: [Omnifocus](https://www.omnigroup.com/omnifocus/) is a free mind-mapping application that helps structure and prioritize ideas or tasks. Its click-and-drag interface supports easy branching from a central topic and speedy editing.

For Clarifying: The [Quire](https://quire.io) task management app helps organize tasks into goals and supports collaboration and communication in achieving those goals. Key features include the Kanban board which helps focus and execute immediate tasks and the Peekaboo folder which tucks away postponed tasks until you’re ready to handle them.

For Creating Reminders: [Google Calendar](https://calendar.google.com/calendar/r) allows users to create personal and public calendars for free. Accessible from any device connected to the web, the application is great place to schedule and share appointments, events, and task reminders. You can also program your calendar to forward event and task reminders via text message.

How about yours? Have you heard of GTD Method? What is your favorite app to align GTD Method with?
Servicenow ITOM Training from IT Canvass
Tags: servicenow, itsm, itom, servicenowtraining
Published: 2019-12-04 08:08:18

---
title:  Servicenow ITOM Training from IT Canvass
published: true
description: we at IT canvass giving the best online training on ITOM Modules with hands on experience. Learn <a href="http://itcanvass.com/"> Servicenow ITOM Training at online</a> by real time team experts. 
tags: servicenow, ITSM, ITOM, ServicenowTraining
---
Create and Test an MSix Installation
Tags: desktop, msix
Published: 2019-12-04 08:01:03

I've previously written about the new Msix packaging project <a href="https://www.pmichaels.net/2019/11/10/msix-packaging-project/">here</a>.  One thing that I didn't cover in that post is that, whilst the process described there will allow you to create an Msix package, you will not be able to deploy it on your own machine.  In fact, you'll likely get an error such as this if you try:

<blockquote>
App installation failed with error message: The current user has already installed an unpackaged version of this app. A packaged version cannot replace this. The conflicting package is 027b8cb5-10c6-42b7-bd06-828fad8e3dfb and it was published by CN=pcmic. 
</blockquote>

Because this has run on your machine, there's a conflict with the installation.  Fortunately, removing the installed version is quite easy; first, copy the package name (indicated below):

<a href="https://www.pmichaels.net/wp-content/uploads/2019/12/msix-test-1.png"><img src="https://www.pmichaels.net/wp-content/uploads/2019/12/msix-test-1.png" alt="" width="812" height="516" class="alignnone size-full wp-image-4010" /></a>


Launch a copy of powershell (as admin) and enter the following command:

```
Get-AppxPackage -name [packagename] -AllUsers
```

In my case, that would be:

```
Get-AppxPackage -name 027b8cb5-10c6-42b7-bd06-828fad8e3dfb -AllUsers
```

You'll then see something similar to the following (copy the PackageFullName):

<a href="https://www.pmichaels.net/wp-content/uploads/2019/12/msix-test-2.png"><img src="https://www.pmichaels.net/wp-content/uploads/2019/12/msix-test-2.png" alt="" width="983" height="487" class="alignnone size-full wp-image-4009" /></a>

Now you can remove the package:

```
Remove-AppxPackage -package [PackageFullName] -AllUsers
```

In my case:

```
Remove-AppxPackage -package 027b8cb5-10c6-42b7-bd06-828fad8e3dfb_0.2.5.0_x64__sqbt0zj9e43cj -AllUsers
```

Unfortunately, you don't get any indication this has worked, so type the get command again:

```
Get-AppxPackage -name 027b8cb5-10c6-42b7-bd06-828fad8e3dfb -AllUsers
```

And you should see that nothing is returned.  Now, when you run it, it should be fine:

<a href="https://www.pmichaels.net/wp-content/uploads/2019/12/msix-test-3.png"><img src="https://www.pmichaels.net/wp-content/uploads/2019/12/msix-test-3.png" alt="" width="812" height="516" class="alignnone size-full wp-image-4008" /></a>


<h1>References</h1>

<a href="https://developercommunity.visualstudio.com/content/problem/198610/another-user-has-already-installed-an-unpackaged-v.html">https://developercommunity.visualstudio.com/content/problem/198610/another-user-has-already-installed-an-unpackaged-v.html</a>
How to set Python3 as a default python version on MacOS?
Tags: python, productivity, beginners, tutorial
Published: 2019-12-04 06:28:36

By default MacOS ships with Python-2.-. But, I guess most of us have long back started to work with Python-3 and it is very irritating to run **python3** every time instead of **python** in terminal. Here is how to do this.

Open the terminal (bash or zsh) whatever shell you are using.

Install python-3 using Homebrew (https://brew.sh).

```
brew install python
```

Look where it is installed.

```
ls -l /usr/local/bin/python*
```

The output is something like this:

```
lrwxr-xr-x  1 irfan  admin  34 Nov 11 16:32 /usr/local/bin/python3 -> ../Cellar/python/3.7.5/bin/python3
lrwxr-xr-x  1 irfan  admin  41 Nov 11 16:32 /usr/local/bin/python3-config -> ../Cellar/python/3.7.5/bin/python3-config
lrwxr-xr-x  1 irfan  admin  36 Nov 11 16:32 /usr/local/bin/python3.7 -> ../Cellar/python/3.7.5/bin/python3.7
lrwxr-xr-x  1 irfan  admin  43 Nov 11 16:32 /usr/local/bin/python3.7-config -> ../Cellar/python/3.7.5/bin/python3.7-config
lrwxr-xr-x  1 irfan  admin  37 Nov 11 16:32 /usr/local/bin/python3.7m -> ../Cellar/python/3.7.5/bin/python3.7m
lrwxr-xr-x  1 irfan  admin  44 Nov 11 16:32 /usr/local/bin/python3.7m-config -> ../Cellar/python/3.7.5/bin/python3.7m-config
```

Change the default python symlink to the version you want to use from above. 
Note that, we only need to choose the one that end with **python3.*.** Please avoid using the ones' that end with **config** or **python3.*m** or **python3.*m-config**. 

Below command shows how it should be done:

```
ln -s -f /usr/local/bin/python3.7 /usr/local/bin/python
```

Close the current terminal session or keep it that way and instead open a new terminal window (not tab). Run this:

```
python --version

```

You will get this:

```
Python 3.7.5
```

Hah! That's it. Happy coding!!
I'm not leaving! :)
Tags: whychoose
Published: 2019-12-04 07:45:02

Thanks to everyone who helped me overcome my sadness the comments all of you made me not want to quit anymore! 

And naysayers stop making people upset. It's not nice.

I'm happy that my comments helped me grow slowly.

Dev isn't a place to become a celebrity. I change my usual actions when I'm on Dev.
 
(If you don't believe me check my twitter I'm very different there)

As I'm growing your helping me grow and I thank you.

The Dev community is so nice and welcoming!

But I won't let the naysayers let me down!

I'll keep researching keep writing and keep posting.

But I don't know if I'll stop. I don't know.

In the future I might have too much work to do.

I'll try to stay free so I can keep Dev happy.

Many thanks Ibrahim From TGD Dev ™ .
My 5 favourite clojure libraries
Tags: clojure, libraries, day4
Published: 2019-12-08 18:13:48

---
title: My 5 favourite clojure libraries
published: true
date: 2019-12-04 07:00:00 UTC
tags: clojure,libraries,day 4
canonical_url: https://alexanderoloo.com/blog/2019/12/04/my-5-favourite-clojure-libraries.html
---

In my travels I have collected a set of clojure libraries that I can rely on to help me solve problems effectively. These are my top 5.

1. [cheshire](https://github.com/dakrone/cheshire) by [@dakrone](https://github.com/dakrone)
2. [http-kit](https://github.com/http-kit/http-kit) by [@shenfeng](https://github.com/shenfeng) and maintained by [@ptaoussanis](https://github.com/ptaoussanis)
3. [nippy](https://github.com/ptaoussanis/nippy) by [@ptaoussanis](https://github.com/ptaoussanis)
4. [at-at](https://github.com/overtone/at-at) by [@samaaron](https://github.com/samaaron), [@rosejn](https://github.com/rosejn), and [@michaelneale](https://github.com/michaelneale)
5. [charmander](https://github.com/alekcz/charmander) by [@alekcz](https://github.com/alekcz)

### 1. cheshire

cheshire is a library for _“JSON and JSON SMILE (binary json format) encoding/decoding”_.  
I’m currently using `[cheshire "5.9.0"]` successfully in production. My favourite thing about cheshire is that when parsing JSON it can automatically convert the keys to keywords in Clojure. I must admit I’ve abuse this feature in places where I probably shouldn’t have. Haha.

### 2. http-kit

http-kit is a _“minimalist, event-driven, high-performance Clojure HTTP server/client library”_.  
I’m currently using `[http-kit "2.4.0-alpha3"]` successfully in production. #cowboy  
My favourite thing about http-kit is that the HTTP client is really straight forward. Checkout the [docs](http://www.http-kit.org/client.html#options), you’ll see what I mean.

### 3. nippy

nippy is a _“high-performance serialization library for Clojure”_.  
I’m currently using `[com.taoensso/nippy "2.14.0"]` successfully in production. My favourite thing about nippy (besides it being rediculously fast) is that after processing large datasets I can save the object straight from memory directly to disk. This allows my application to pick up instantaneously from where it left off after a reboot.

### 4. at-at

at-at is an _“ahead-of-time function scheduler”_.  
I’m currently using `[overtone/at-at "1.2.0"]` successfully in production. My favourite [trick](/blog/2019/09/11/overtone-music-to-keep-my-dynos-awake.html) with at-at is to use it to schedule a ping every 5 minutes to keep my dynos awake. Obviously I use http-kit to do the ping.

### 5. charmander

charmander is a _“set of libraries to make working with firebase easier in clojure”_.  
I’m currently using `[alekcz/charmander "0.6.0"]` successfully in production.   
My favourite thing about charmander is that it has been the project that has taught me the most about clojure. Writing it has been one heck of a journey.

_May your build always pass._

_Alex_

This post is part of the ["Advent of Parens"](https://alexanderoloo.com/blog/2019/12/01/advent-of-parens.html).
On.NET Episode: Securing your Azure applications with Azure.Identity
Tags: security, azure, dotnet, cloud
Published: 2019-12-04 06:23:54

In this episode, Scott from the Azure SDK team joins us to talk about the Azure.Identity library and how it makes authentication easier for your Azure applications.

{% youtube 1VRx_Xpvlro %}

If you liked this video and would like to see some more of our .NET content, please subscribe to our [.NET Developers YouTube Channel](https://www.youtube.com/channel/UCvtT19MZW8dq5Wwfu6B0oxw).


## Useful Links
* [Azure.Identity on NuGet](https://www.nuget.org/packages/Azure.identity?WT.mc_id=ondotnet-c9-cephilli)
* [Azure SDKs for .NET](https://github.com/Azure/azure-sdk-for-net?WT.mc_id=ondotnet-c9-cephilli)
* [Azure SDK Design Guidelines for .NET](https://azure.github.io/azure-sdk/dotnet_introduction.html?WT.mc_id=ondotnet-c9-cephilli)
* [Azure for .NET and .NET Core developers](https://docs.microsoft.com/en-us/dotnet/azure/?WT.mc_id=ondotnet-c9-cephilli)
The Case Against JS Frameworks.
Tags: javascript, framework
Published: 2019-12-04 06:07:45

---
title: The Case Against JS Frameworks.
published: true
description: Join the greatest debate on frameworks ever! Drama overflows!
tags: #javascript #framework
---

Gotcha! This will not likely be the grand debate you are looking for. I think I will make some form of point or observation though. Maybe.

Oh, and first post. Long time lurker, etc.

Before I joined the Client Apps team, Jesse over in Internal Systems started modernizing the ye old webforms app using a Handlebars variant.

Me, I brought in 10 years of JS experience, love, and my Homebrew JS and jQuery plugin system. You could almost call it a framework...but it's not, more of a pattern. I jumped right in that heap of webforms and started flying on all sorts of new projects!

About six months in, we had a meeting to discuss what Frameworks we should be using. I'm like, "okay, good teams agree on their architecture. I'm game." I presented AngularJS as my personal choice, having tinkered in it before. That was rejected, but only because Bob, a former employee, had thrown together some projects with KnockoutJS, before leaving the company. So we did that.

But it really isn't an arcitecture, more of a tool. So I kept busting out projects with my personal system, making incremental improvements. Actually removed jQuery at the appropriate time (es5).

I am productive. Dangerously so. It's hard to beat my numbers. I am the one folks go to when they need something fast and quality. I am not ego-tripping, only making this point because...

While every team is discussing what framework they are going to use, on top of other existing frameworks, and competing with other teams' framework choices, I just cruise along with my well-documented and proven coding patterns.

What's weird is no one ever asks me about using it officially. At least they do borrow code/pattern/style. Just like I do from every bit of code I browse.

I think I promised a point of some kind. Learn to love JavaScript. Don't be afraid of it. Stop trying to find a framework that will hide the implementation and do things for you. One day you'll realize that you don't need the 3000 ton hammer to build that drop-down widget.

Wait, nowhere in the post did I actually imply any of that. Oh well! 

*Yawns* bedtime I think... Let me publish this right before bed. That always tends to work out without any drama.
The Brain Climax 
Tags: programming, webdev, javascript, beginners
Published: 2019-12-04 05:35:59



As a junior developer in a company with more young senior developers,there is the need to work hard and put more effort daily,you keep setting new standards for yourself, whether consciously or unconsciously these standards automatically define you and your progress at work.
There is a common saying that "programmers have no life",although its just a saying it has taken a lot of "Programmer's lives",we look up to our mentors and want to be like them ,we want to spend over 12 hours at work,sleep less,code more,we want to fall in love with the process.Its safe to say that we are training ourselves to be like them,but then what is your BRAIN CLIMAX.
For some the brain climax is when they get tired and cant work efficiently anymore, unlike the first 30 mins.While some never get to the climax.
Palindrome String in Javascript
Tags: javascript, webdev, tutorial
Published: 2019-12-04 05:33:55

This is a classical problem asked in mostly all the interviews.
I am posting the solution in Javascript, you can convert it in the language of your own choice.

### Algo:

1. Use two pointers (left & right)
2. Put left at the start of string and right at the end of string
3. Check the value at pointer and take decision on the basis of equality
4. Move the pointers towards each other
5. Until left is smaller than equal to right

### Code:

```js

 const isPalindrome  = function(A){
    A = A.replace(/[^0-9a-zA-Z]/g, "");
    A = A.toLowerCase();
    var left = 0
    var right = A.length; - 1;
    while(left <= right) {
        if(A[left] !== A[right]) {
            return 0
        }
        left++;
        right--;
    }
    return 1;
}

```

Note: In the above solution I have omitted the special characters and spaces.

*Feel free to post suggestions or more efficient code*