teleren/devto huggingface dataset:
You don't need to be an expert to go on stage.
Tags: speaking, identities
Published: 2019-12-19 17:20:50

---
title: You don't need to be an expert to go on stage.
published: true
description:
tags: speaking, identities
---

I've heard many reasons why people don't want to speak. The most popular are:
 - "I don't have anything to tell" 
 - "I'm not an expert in this topic"
 - "I don't know anything special"
 - or other variants.

People tend to think that the only way to talk is to be an expert or specialist in something. While it's true that we like talks by experts in their fields because of deep insights and new knowledge, there're many other types of talks.

Tara Sophia Mohr from Adobe wrote a great post about identities https://99u.adobe.com/articles/7277/understanding-how-to-frame-your-creative-expertise.

She argues that one shouldn’t be an expert in the field in order to speak. Though talks by experts are the most popular on Tech Conferences, people often feel that such talks weren't practical enough for them or too abstract.

She suggests three other Identities:
- Survivor
- The called
- Cross trainer

I prepared a simple sketch for you:

![Sketch](https://thepracticaldev.s3.amazonaws.com/i/mutsbcaue18e7ss33byo.png)

Other identities I have in mind and see often on stage:

- teacher. These people want to learn something new and think that the best way to learn is to teach somebody else. It's quite popular in the world of podcasts.
- journalist. Many different sources, links between them. Unexpected connections.

Please suggest more in comments!


Sometimes the only thing you need to be a good speaker is a passion and some time to prepare your talk. 

We’ve built [tulu.la](http://tulu.la) to help all speakers in their journey.
Operator Overloading in Rust
Tags: rust, trait, operator, string
Published: 2019-12-19 17:17:17

I am learning operator overloading in Rust. There is this basic example in the programming book:
```rust
struct Point{
        x:i32,
        y:i32
    };
```
Then implement the add trait over the Point type to be able to add 2 instances of the point type like so:
```rust
impl Add<Point> for Point{
        type Output=Point;
        fn add(self, point:Point)->Self::Output{
            Point{
                x:self.x+point.x,
                y:self.y+point.y,
            }
        }
    }
```
Now we can add 2 points using the below statement:

```rust
let point_a=Point{
x:30,
y:40
}

let point_b=Point{
x:50,
y:60
}
point_c=point_a+point_b;     
``` 

So far so good right? Now can you tell me how to implement the same for String type or for the string literal &str, well it took me a day to figure out how to do that-

First create a new Type using the base String type-
```rust
struct MyString(String);
```
Then implement the Add trait over the custom type like this-
```rust
impl Add<MyString> for MyString{
        type Output= MyString;
        fn add(self,input:MyString)->Self::Output{
            let mut own_str=self.0.to_string();
            let input_str=input.0.to_string();
            own_str.push_str(&input_str);
            MyString(own_str)
        }
    }
```
once you understand the above, you can try re-writing the same like this, in a fewer lines of code-

```rust
impl Add<MyString> for MyString{
        type Output= MyString;
        fn add(self,input:MyString)->Self::Output{
            self.0.to_string().push_str(&input.0.to_string());
            self
        }
    }
```
I hope this saves your day while learning rust.
Meteor Galaxy Roadmap
Tags: meteor, node, hosting
Published: 2019-12-19 17:00:47



Another great news hits the Meteor community: Meteor Galaxy, the official platform for hosting Meteor application, gets a news a [roadmap](https://forums.meteor.com/t/meteor-hosting-news-galaxy-roadmap/51181). 

The new plan features:

- Autoscaling

- Native app build and publish

- Deploy from Git push

- New Pricing Plan

They took into consideration many of the suggestions provided on the [Meteor forums](https://forums.meteor.com/t/help-tiny-what-would-it-take-for-you-to-use-galaxy-very-important/50574).

With a plan for [Meteor](https://forums.meteor.com/t/the-new-meteor-roadmap-is-out/51086/30) and [Galaxy](https://forums.meteor.com/t/meteor-hosting-news-galaxy-roadmap/51181) one can only anticipate the awesome future that awaits us!
Utiliser les Futures avec Vavr
Published: 2019-11-13 15:20:44

### **Introduction**

Dans le cadre d’un projet chez l’un de nos clients, on nous a chargé de réaliser une API. Celle-ci avait la responsabilité d’agréger différentes données venant de plusieurs API.

À des fins de performance, nous avons choisi de paralléliser les appels et d’utiliser les Futures.

___

### **Présentation**

La librairie Vavr est utilisable à partir de la version 8 de Java.  
Cette librairie a pour but d’améliorer le coté programmation fonctionnelle de Java 8 en ajoutant notamment des types de données immuables et des structures de contrôles orientés fonctionnelles.

C'est parmi ces types de données immuables que nous trouvons notre Future, objet de cet article.

Une Future va permettre de réaliser une action dont le résultat sera disponible dans le futur.

Lorsque l'action de la Future est terminée, trois états de celle-ci sont possibles :

* *completed*: lorsque la Future s'est terminée

* *success*: lorsque la Future s'est terminée avec succès

* *failure*: lorsque la Future s'est terminée en erreur

Il est possible d'ajouter des callbacks afin d'intercepter ces trois états.

Chez notre client, cela permettait de lancer X actions (Futures) permettant de récupérer des données, attendre le résultat de chacune et agréger toutes les données. Pour mettre en place ceci, nous avons créé une liste de Futures, les avons packagées dans une séquence. Nous devons attendre le résultat de toutes les Futures et avons donc bloqué les différents Thread grâce à la méthode .await(). Ensuite, la méthode .get() nous permet d’obtenir le résultat de la Future.

___

### **Illustration : la course d'animaux**

Afin de lancer la course et de vous présenter les Futures, nous allons réaliser un test unitaire.

Création de la classe Java Animal avec son nom, sa famille, son type et vitesse moyenne. L'annotation @Data vient du projet Lombok : une librairie de génération de code. Ce projet fera l'objet d'un autre article.

{% gist https://gist.github.com/mmarchad/a079c081501584873bcccd453791628e.js %} 

{% gist https://gist.github.com/mmarchad/938b00b321228ce1f8a20b563a787d77.js %} 

Ici, nous initialisons 5 animaux qui sont de famille et de vitesse différentes.

{% gist https://gist.github.com/mmarchad/d94001394899bf6ec265df93307919fd.js %} 

Le test unitaire:

{% gist https://gist.github.com/mmarchad/23e8fcbcb2e7d3af352dc89b783e3e0e.js %} 

Résultat du test unitaire :

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

### **Conclusion**

Grâce à ce test unitaire, nous avons utilisé la librairie Vavr, disponible à partir de Java 8, afin de paralléliser des traitements. Cette librairie ne permet pas uniquement l’utilisation de Future mais elle implémente aussi des Collections, List, Map, Option, Try …

La documentation de Vavr est disponible ci-dessous afin d’approfondir cette librairie.

### **Documentation**
[Site officiel Vavr](http://www.vavr.io/)

[Introduction to Future in Vavr | Baeldung](https://www.baeldung.com/vavr-future)
Sharing command line expertise: Mouse over attribute to get explanation.
Published: 2019-12-19 16:51:59

*In kmdr v0.4, we are introducing Explain Session web pages and enabling kmdr users to share command explanations from the cli. Bringing kmdr to the browser is a milestone on our path to a [browser extension](https://dev.to/kmdr/right-click-to-explain-commands-that-s-what-s-next-eh1) that will provide attribute level explanations of any commands you select.*

An Explain Session web page features the command as a code snippet with each of its attributes explained through pop-ups triggered by mouse-over.  Viewers can also sign-up for exclusive access to the incoming browser extension through the web page.

{% youtube xwm7HtbTnfs %}

The install instructions featured also have mouse over explanations and showcase the use case for embedding kmdr explanations into documentation. 

![Embedded explanation](https://user-images.githubusercontent.com/1195596/71062752-2f769180-2163-11ea-9619-57a92a31bcd5.gif)

[See explanation session web page from the `git` example above.](https://explain.kmdr.sh/s/acfade40-214a-11ea-a15e-7d7748c22fc1)

Explanation session web pages can be created by any kmdr v0.4 user. The option to share explanations via URL is provided after every command query. 

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/f6i22st3dl8viay6mnnc.png)

Upon choosing the share option, you will be prompted to input a summary of the command. The summary is rendered as the title of the Explain Session web page when opened in a browser.

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/ulh3jkdhqvhga51cendh.png)

The next milestone en-route to a browser extension is user account creation. This feature will ensure synchronization between CLI and browser as you discover new commands, want explanations, and then execute. To gain exclusive access to new features,  [sign up to our newsletter!](https://kmdr.sh/sign-up/)
Who is an engineer
Tags: engineering, mindmap
Published: 2019-12-20 09:55:42

---
title: Who is an engineer
published: true
date: 2019-12-19 16:29:14 UTC
tags: engineering, mindmap
canonical_url: https://vorakl.com/articles/engineering/
cover_image: https://vorakl.com/files/engineering/engineers.png
---

With the coming of the Industrial Age (approx. 1760-1950), an agricultural society transitioned to an economy, based primarily on massive industrial production. It was the time of the rise of specialized educational centers, where people could get deep knowledge in many different fields of science and became either scientists or engineers.

  

Briefly, the main difference between scientists and engineers is that scientists **discover**, but engineers **invent**. That is Engineers, using discoveries of scientists, invent _systems_, _devices_, _processes_, which they _design_, _develop_, _implement_, _build_, _manage_, _maintain_, and _improve_ as different stages of the Engineering process. Engineering is a practical application of scientific knowledge, integrated with business and management. In other words, engineers act as a bridge between science and society by doing inventions for the real world and people.

  

In the modern time of the Information Age, the role of an engineer has been extended by non-technical skills, as a result of the globalization and spreading of trade relationships across the globe. These are skills such as intellectual (communication, foreign languages, critical thinking), management (time management, self-organization, planning), and standards awareness (tech certifications, best practices).

  

[![Engineers](https://vorakl.com/files/engineering/engineers.png)](https://vorakl.com/files/engineering/engineers.png)

  

[![Engineering](https://vorakl.com/files/engineering/engineering.png)](https://vorakl.com/files/engineering/engineering.png) ![](http://feeds.feedburner.com/~r/voraklsnotes/atom/~4/lLrAMy4E4Ag)
Elegant way to reverse iterate a std::vector in modern C++
Tags: cpp, vector, iterate
Published: 2019-12-19 16:26:28

---
title: Elegant way to reverse iterate a std::vector in modern C++
published: true
description: range based iterating is very elegant and it is nice to have the same elegance while reverse iterating a vector. 
tags: cpp, vector, iterate
---

template <class T>
    class backwards {
        T& _obj;
    public:
        backwards(T &obj) : _obj(obj) {}
        auto begin() {return _obj.rbegin();}
        auto end() {return _obj.rend();}
    };


for (auto &elem : backwards(vec)) {
    // ...useful code
}


Source: https://stackoverflow.com/questions/3610933/iterating-c-vector-from-the-end-to-the-begin
How to get Date into the datepicker 
Tags: angular, typescript
Published: 2019-12-19 16:24:24

Hello dev team,
I am using angular date picker material. 
When a user click to edit profile button displayed new form control.
I did not get the exist date value into the datepicker control remaining all data 
retrieved.

please find below code link

https://codeshare.io/503wDL
Webpack Remote Development?
Tags: webpack, question, javascript
Published: 2019-12-19 16:19:30

I didn't want my first post on Dev.to to be a question, but it seems to be the best place I've found to answer many other questions, so here goes.

I'm working on an app that requires I access an iframe; this means due to `same-origin` policy it would be awesome if I could do remote dev on the server providing the iframe so the origin is the same.

Right now, I'm running a build, uploading it to the test server, then messing with testing with the iframe in the browser console.

I'm wondering if anyone has had any success and can provide specific guidance on configuring Webpack to work with Nginx on a *non-web root* URL (i.e domain.com/testing).

I can get webpack to run, and I have a proxy_pass in Nginx successfully serving the page, however Webpack refuses to serve the app (Cannot GET /testing).

I've tried various configurations of the `publicPath`, `public` and `contentBase` settings, but Webpack simply can't figure out that I'm not at the web root. The console shows 404s for various scripts looking at `/` instead of `/testing`. None of this changes with the various `devServer` configs.

Any help would be greatly appreciated.
How to Get a Job Using Open Source
Tags: opensource, career, productivity
Published: 2019-12-19 16:17:44

I'd love feedback on the blog I wrote: How to Get a Job Using Open Source.

Thank you!

https://medium.com/openteams/how-to-get-a-job-using-open-source-c1e570799370?sk=00c884a14f50228ac0a89008b1b56842
How to Crush Your Next Team Demo
Tags: career, beginners, productivity, tutorial
Published: 2019-12-19 11:43:40

After years of sitting through, and participating in, many sprint demos, here is advice I've accumulated and would like to share with you.

**You must appease the demo gods.** They will either smile down on you or wreak havoc. It all boils down to preparation. Prepare your demo by walking through it beforehand. Keep it stable, don't change it or rush it last minute. Don't overdo the prep, though.

**Spend a moment to introduce yourself.** Yes, many times, I had no clue who the person was even in the same organization. Introduce yourself — what you do and the team you're on. I want to know more about you and may seek you (and others) after for a chat on the impressive demo.

**Spend 90% on the context, 10% on the walk-through.** I have sat through demos with meaning not shared. The *why* not discussed. Setup the demo as if the audience has no clue of the value. Discuss the goal first. Then, talk through what you are to demo. Finally, in a few short-strokes, click the buttons that make things "happen" for the customer's delight.

**Face the audience, speak louder than usual.** Some demos encourage those to face the same way as the audience. Attempt to break that cycle by going up to the podium. Having that courage is lovely.

**Focus on one central point, and stick to it.** Try not to demo many things, stick to one primary value. I have seen demos where there were so many concepts and ideas presented. I appreciated their hard work. But what was important?

**Slides aren't necessary, but they can support you.** Slides can tell the story. Outline what you are to demo. Highlight the challenges you faced and speak about upcoming future work. 

**Make sure the audience can see what you see.** Lean on the presentation modes in your software so that those can see the work presented. Many times I could not see what was going on. Increase font size for distant readability. I want to see the details.

**Always do it live!** Walk-through the demo on the device, with a live connection, the way customers see it. Have that covered? Challenge yourself by going as far as live coding.

**But plan a quick backup when the gods strike down.** Demos are rife with failure. Here is a secret. Create a video or screenshots of the walk-through of what *would* happen if the demo begins to fail. Talk through it. The audience will be glad, and [the gods appeased](http://www2.rdrop.com/~paulmck/DemoGods/#Demo%20Gods).

**Prepare a shortlist of proposed questions.** Give the audience a chance to ask questions. A recent tip I heard and experimented with, expect your audience not to have any questions. If so, throw up a proposed list of items to the audience. There is a good chance it will start a fantastic conversation.

**Don't worry, and you're doing great.** Every demo is a chance to learn about yourself and the audience. The team is there to support you. Even with failure, there is the opportunity to improve the experience for your customers. It is also a chance to increase shared context. Do this at every opportunity! 🎉
A Lightweight React Library for creating clickable Prototypes
Tags: prototyping, react, sketch, ux
Published: 2019-12-19 15:49:14

---
title: A Lightweight React Library for creating clickable Prototypes
published: true
description: Lightweight React Library for creating clickable Prototypes
tags: #prototyping #react #sketch #ux 
---

As a little Holiday project, and as a follow-up of the DMN Innovation Week we had at [Camunda](https://camunda.com), I created [a small React components library](https://github.com/pinussilvestrus/clickable-prototype) to quickly create clickable prototypes. 

Inside Innovation Week, we created multiple small prototypes to test various ideas on how to improve the DMN experience in [bpmn-io](https://bpmn.io). Inside that, I used `jquery` to create a click-prototype and use it inside user tests. The results can be seen in this [GitHub repository](https://github.com/pinussilvestrus/drd-relation-prototype).

Yes, jquery is not the *best* solution to save the application state, like to save the actually visible view. Therefore I wanted to have a simple library that managed the interaction between different screens/views and where I only have to declare the click points which should direct to the next view. 

I've chosen `React` and created the [`clickable-prototype`](https://github.com/pinussilvestrus/clickable-prototype) project. It offers different components to declare your clickable prototype. A simple React Application using that would like that

```jsx
import React, { Component } from 'react'

import { View, HitBox, ViewContainer } from 'clickable-prototype'

import view1 from './views/view1.png'
import view2 from './views/view2.png'

export default class App extends Component {
  render () {
    return (
      <div>
        <h1><span>clickable-prototype</span> Demo</h1>
        <ViewContainer defaultView='view1' className='container'>
          <View
            key='view1'
            className='custom-view'
            screen={view1}
            width='1220px'
            height='630px'>
            <HitBox
              position={{y: 380, x: 477, width: 280, height: 60}}
              to='view2' />
          </View>
          <View
            key='view2'
            className='custom-view'
            screen={view2}
            width='1220px'
            height='630px'>
            <HitBox
              position={{y: 490, x: 477, width: 280, height: 60}}
              to='view1' />
          </View>
        </ViewContainer>
      </div>
    )
  }
}

```

This will result in the following prototype

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/wvom18t0sfuibjolkqyu.gif)

It's a very early stage of the library but it helps me a lot to quickly create clickable prototypes without any extra fancy stuff as you'd have in applications like [InVision](https://www.invisionapp.com/).

I would really appreciate if you give it a try and give some feedback!
What are your personal development plans for 2019?
Tags: discuss, selfimprovement, personaldevelopment
Published: 2019-12-19 15:46:28

I'm a firm believer in constantly improving my skills. I like having a core set of frameworks I use day to day (.NET Core and React currently) but also like to expand my knowledge and try other things. 

That started this year with picking up React as a front end framework (I'd always been an Angular guy). Turns out, React makes more sense to my little brain than Angular ever did so that turned out to be a very happy experiment.

That's got me thinking about where I want to go in the next 12 months with my development skills. 

## Expand my back end framework knowledge

I am and always have been a .NET developer. Anything server-side has always been in .NET Framework and more recently .NET core. 

Whilst there is nothing wrong with that, I like having options. So in the next 12 months, I'm going to start experimenting with another server-side framework. Which one is still up for debate...

Node seems to well used around the internet, I hear a lot of good things about Go and recently read an article about the incredible speed of Rust. So plenty of choices. Any suggestions from anyone reading this are greatly appreciated. 

## Get official with AWS

In a similar vein to the Angular/React experiment, I've also started to explore AWS vs Azure (mainly due to my employer going all out AWS). 

On that front, I am aiming to get my AWS certifications in architecture and development in the first few months of next year.

Knowing how cloud apps should be developed as intended by the company that builds the platform, instead of how stack overflow recommends, is an invaluable skill.

## Test-Driven Development

From an all-round perspective, I plan on really ramping up my usage of TDD. Whilst I do write unit tests for ~~all~~ ~~most~~ some of the code I write, I want to really grasp the TDD principles. 

Whilst time constraints are the main issue, sometimes it's pure forgetfulness. I write a section of code and then realize after that I never wrote a test for it.

All about habit building, but it's certainly a good habit to get into. 

## Over to you

I'd love to hear what your plans are for 2020, how do you plan on bettering yourself as a developer? Drop a message in the comments.
redial 0.7 is out
Tags: python, linux, devops, ubuntu
Published: 2019-12-19 15:03:25

Terminal Based SSH Session Manager for Unix Systems.


## New Features

- Basic support for adding ssh keys to connections
- Dynamic, Local and Remote port forwarding settings (only one of each can be defined for now)
- UI state is restored at startup. Redial now remembers last selected connection and folder expanded/collapsed states

https://github.com/taypo/redial

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/852fxwbum1fj39j3115m.gif)