teleren/devto huggingface dataset:
Does Your Career Look like My Morning Toast?
Tags: career, cooking, beginners
Published: 2020-01-20 11:22:31


During the time of your career, you will be learning new things. What about my breakfast? The toast had some gouda cheese, blue cheese, eggs, scallions, and smoked pepper. My toast and your career is a sum of ingredients and the way we prepare it.

## The importance of good ingredients
We may agree that cheese for a toast is like a code for a developer.
I was once served a toast consisting only of bread and cheese. It did the job of filling my hunger meter, but the taste was not great. That's why I decided today to add some smoked pepper to my morning toast.

I wanted something extraordinary.

When we start our development career, we start with the basics. Bread and cheese. A programming language and ability to make something out of it. To get to the next level, we have to add something to our skills. What should it be?

Is it blue cheese? Is it writing a maintainable code? You can experiment on your own or find one of the thousands of recipes online. Thankfully, both for development career and breakfast. 

To get a feeling of what extraordinary means, you may need to look around. One time I went to a restaurant and paid quite a price for a toast. With the first bite, I knew I was dealing with something special. How?

It's important to try different things. The same applies to codebases, frameworks, and problem solutions. Working only within one project makes it hard to get new perspectives. I had been lucky to visit enough places to know that the price I paid for my toast was justifiable.

Workshops, projects, meetups, conferences, videos, tweets, articles.
With time you will learn what extraordinary means for you.
 
You already know how my finished toast looked like from the outside. What about the taste? It was good but not balanced.

![Uneven distribution of ingredients](https://thepracticaldev.s3.amazonaws.com/i/w98atqelxbwf4ic95q2m.jpg)

When I bite the edge of my toast, I could feel only gouda and bread, maybe a little bit of egg. The same may happen when people interact with you. Your coding skills might be top-notch, but you cannot express your ideas well. As a result, it sounds uninteresting, bland. Like the edge of my toast.

Our work as developers consists of many activities. One way to perform well is to invest time and acquire basic knowledge in all areas. Communication, working as a team, explaining tough concepts. If you struggle with some of those, you may end with mixed results. We may aim to be the best engineer, but our software architecture skills won't get us far if people don't enjoy working with you.

It's great to add some 12-month ripened goat cheese to your toast.
I only want you to remember to spread butter all over your toast as well.
🐨🎤[GIF] Cheatsheet for Javascript Nullish Coalescing operator
Tags: javascript, design, tutorial, beginners
Published: 2020-01-20 11:18:09

Good day folks! 👋 Today, we are going to cover something small, yet, an important feature in Javascript. In this post, we will see how `Nullish Coalescing` or Nullish Koala-sing 🐨🎤 (whichever sounds good 😅) works using GIFs.


👇_Things to note before we get started:_ 
1. Short-circuiting is denoted by `⚡️`
2. At the time of writing this post, Nullish Coalescing was a [`Stage 4`](https://github.com/tc39/proposal-nullish-coalescing) proposal

Alright, let's get started with the different scenarios of its usage 

*Scenario 1 (Base case)*:  If the expression at the `left-hand side` of the `??` operator evaluates to `undefined` or `null`, its `right-hand side` is returned.
<img width="900" alt="If the expression at the `left-hand side` of the `??` operator evaluates to `undefined` or `null`, its `right-hand side` is returned." src="https://user-images.githubusercontent.com/19341550/72685059-487cb480-3b0c-11ea-9948-463070e500dd.gif">

*Scenario 2*: Behavior of Nullish Coalescing `??` operator with `falsy` Javascript values.
<img width="900" alt="Behavior of Nullish Coalescing `??` operators when `falsy` Javascript values are passed " src="https://user-images.githubusercontent.com/19341550/72626449-bd1aec00-3970-11ea-908a-e23b56f5f33a.gif">

Notice how short-circuiting (denoted by ⚡️) happens when the LHS is `null` or `undefined`. It doesn't matter if the LHS is falsy values _except_ for `null` and `undefined`

> _Note: Explicit *parentheses groups* are required to mix with `||` and `&&`_

*Scenario 3*: When mixed with other short-circuiting operators `||` and `&&` *without* parentheses
<img width="900" alt="When mixed with other short-circuiting operators `||` and `&&` *without* parentheses logical or and logical and javascript" src="https://user-images.githubusercontent.com/19341550/72658820-91cde680-39dc-11ea-897d-73be34a174c0.gif">

*Scenario 4*: When mixed with other short-circuiting operators `||` and `&&` *with* parentheses groups
<img width="900" alt="When mixed with other short-circuiting operators `||` and `&&` *with* parentheses groups" src="https://user-images.githubusercontent.com/19341550/72658821-91cde680-39dc-11ea-80db-5e160724f25c.gif">

<img width="900" alt="When mixed with other short-circuiting operators `||` and `&&` *with* parentheses groups" src="https://user-images.githubusercontent.com/19341550/72658822-91cde680-39dc-11ea-9788-29b89b5f4b96.gif">

That's it for today and I hope you found it useful!

And hey, I ❤️ learning from and staying in touch with the curious folks out there (I'm looking at you. Yeah, YOU!). So, please feel free to reach out if you have any questions or suggestions 🙋‍♀️🙋‍♂️ I'm all ears 🤩

| [🐥Twitter](https://twitter.com/HemSays) | [💼LinkedIn](https://www.linkedin.com/in/hems23/) |
|---|---|

Auf wiedersehen 🙌🏼


--- 

Repo Link : {% github hemchander23/javascript_in_gifs %}
is there anything tech NOT on devto ?
Tags: webdev, search, discuss
Published: 2020-01-20 11:07:37

basically ive stopped bing/ecosia/goog - ling now ! 

instead i just search first on dev.to - however niche or obscure the tech it seems that someone on dev has already written about it BEFORE i get a chance !

examples
* [circlci](https://dev.to/search?q=circleci)
* [linuxliteos](https://dev.to/search?q=linuxliteos)
* [mysterium](https://dev.to/search?q=mysterium)
* [stickers](https://dev.to/search?q=stickers)
* [y2038](https://dev.to/search?q=y2038)
Go global variables in AWS Lambda
Tags: aws, lambda, go
Published: 2020-01-20 11:00:34

As my first story, I decided to write a bit about my recent issue with AWS Lambda and global variables.

![Image credits to https://www.topcoder.com](https://miro.medium.com/max/1200/1*HHWa0RxinMXW3AmP7PRBKQ.png)

# Overview
Was happily writing some refactor when for some reason I decided to move the variable that holds the response of the Lambda to a global variable, removing it from the scope of the handler to a global state and changing it inside the handler, at the time I had no clue what I was about to do, now that you have an overview of the situation can you guess what happened?

# The issue
That lambda response was doing an append due to how we are handling data from DynamoDB, so over multiple calls to that lambda, the response was returning a list of more and more invites even from other accounts.

This, as you can imagine, was a huge issue, the project was not in production yet so we catch these issues a few days later when the entire team was testing a staging environment with multiple accounts.

# Resolution
That part was not simple since we just noticed that doing some printf, and that the variable was not clean when the lambda (hot state) was triggered, just simply moving this variable to the Handler fixed the issues.

Since the lambda do not save the local variables memory state, everything inside the handle will be new at every call.

# Conclusion
It was our first project with lambdas and go so this was not a simple issue to catch, we start to be more careful with what we put as a global variable, there are some external libs initialization that you want to actually make global, so the lambda while hot caches, but never put lambda response or input as variable.

Create this variables on the handler so they are fresh and clean every time the lambda runs.

Think twice in what you want to put as global, be careful in this decisions because they can cause a major problem and users get the wrong information or even mixed.

Always test, integration and manual testing are something that I try to make mandatory on my day to day work, test from multiple contexts always to prevent this to happen.

*Ps: If you have any recommendation please send me a message, always open to improve.*
What the hell is pattern matching?
Tags: csharp, dotnet
Published: 2020-01-20 10:52:05

I know, I know, pattern matching is a fancy word right? Well it is actually the name of a __C# 7.0__ feature that I found out about some time ago and it is damn handy!

Let us start! You know, when you are writing an epic tale of awesome code, you have a class hierarchy where some classes share a common interface. In my, very (for demonstration purposes) simple example, I have an interface _IPerson_ and two classes: _Dwarf_ and _Elf_ which both inherit from the _IPerson_ interface, because, well, both elves and dwarves are persons. The _IPerson_ interface just has an _Age_ property and the both the dwarf and elf have respectively a _DwarfishName_ and an _ElfishName_.

As we are on are epic coding tale, we arrive at a point where we have an object of type _IPerson_. And obviously, we want to access some class specific properties. In our case if the IPerson is a _Dwarf_ we want to access the _DwarfishName_ property and in the case it is an _Elf_, we want to access its _ElfishName_ property. This is how we would do it without pattern matching:

```c#
static void PrintPerson(IPerson person)
        {
            Console.WriteLine("*** PERSON ***");
            Console.WriteLine($"Age: {person.Age}");
            if (person is Elf)
            {
                Elf elf = (Elf) person;
                Console.WriteLine($"Name in elfish: {elf.ElfishName}");
            }

            if (person is Dwarf)
            {
                Dwarf dwarf = (Dwarf) person;
                Console.WriteLine($"Name in dwarfs: {dwarf.DwarfishName}");
            }
        }
```
First we do a check with the _is_ operator, then we do the approriate cast and lastly , we can access the class specific properties. It isn't much code and nor is it complicated. 

But you know, you can do the same in C# 7.0 with less but still very readable code. This is done with so called __pattern matching__:

```c#
static void PrintPersonWithPatternMatching(IPerson person)
        {
            Console.WriteLine("*** PERSON ***");
            Console.WriteLine($"Age: {person.Age}");
            if (person is Elf elf)
            {
                Console.WriteLine($"Name in elfish: {elf.ElfishName}");
            }

            if (person is Dwarf dwarf)
            {
                Console.WriteLine($"Name in dwarfs: {dwarf.DwarfishName}");
            }
        }
```

What you actually do is just add a variable name after the type you are checking against. The _is_ operator still operates the same, but also puts the casted object inside the variable. Nice right?!?


#Sources
https://docs.microsoft.com/en-us/dotnet/csharp/pattern-matching
Demo project: https://bitbucket.org/aldhaenens/p-d-demo/src/master/
Rename a C# Project
Tags: visualstudio, csharp, dotnet
Published: 2020-01-20 10:50:19

One of the problems beginners face when using Visual Studio happens when they try to rename a project since there will be a lot of leftovers in the process. This can be a problem even for professionals if they find out that the project name cannot be used, for example, in patents or copyright situations. Today we are going to fully rename a Visual Studio Project.

> Note: This guide works with every version of Visual Studio and every kind of .NET Project.

## Step 1: Solution Name and Project Name

Renaming the solution is actually the simplest part of the process. Just click on the solution item in **Solution Explorer** twice (but do not double click) to get an editable field and then type the new name.

In most of the cases your project name will match your solution name so just repeat the steps on the project item instead of the solution.

## Step 2: Folder Name

Renaming the project actually does not change the folder your project is contained. When you do the first step you will have this situation:

```
<root>
|- NewName.sln
|- OldName
   |- NewName.csproj (or vbporj, vcxproj...)
```

In order to get the new name on the project folder you have to:

  1. Rename the folder itself
  2. Open the sln file with a text editor like notepad and do a Find&Replace to replace the old name with the new name.

> Note: You can also remove the wrong project inside Soluton Explorer and add the correct one back.

## Step 3: Executable or Library Name

Executable (or Library) Name is actually pretty easy to do: just right-click on your project in **Solution Explorer** and choose **Properties**.

In the application ta you will see the **Assembly Name** text box. Just change these and you are ready to go.

## Step 4: Namespaces

You may not want to keep the namespaces containing the name of your application, especially if you are using a name that you cannot use.

To do this, first of all, change the **Default Namespace** in the project properties like you did in Step 3. and then you can use **Find&Replace** to change any reference to the old name in the new one. 

Alternatively you can rename the namespace in one of your files and then use the refactoring tool (the little box appearing under the namespace when you edit it) to replace any reference.
Top 3 Hybrid App Development Frameworks in 2020
Tags: hybridapp, reactnative, ionic, phonegap
Published: 2020-01-20 10:49:35

Technologists are always attempting to overhaul the current levels of frameworks and procedures. Much the same as they brought cell phones and portable applications in the operational casing, we are probably going to witness more creative ideas in next few years.

Discussing hybrid application, we have seen new Technologies/frameworks are coming up that claim to facilitate the lives of designers. We have shortlisted the best hybrid frame-works for you.

 

React Native:

Topping our rundown of hybrid application development in 2020 is React Native. It empowers engineers to assemble cross platform applications with negligible exertion that allow a local like affair to the end-clients. There is a tremendous network of developers to help you in the event that you go to a state called gridlock. In spite of the fact that the structure isn’t exhorted for fledglings to attempt their hands on, the enormous network urges them to make a plunge and investigate.

 

Ionic:

IonicFit for building local looking applications, this structure has picked up prominence in the past and overpowering when worked in mix with AngularJS. Engineers have favored it for hybrid application advancement especially because of its broad rundown of features, predefined components and obviously, a vast network of designers and developers who are constantly prepared to encourage you.

 

Phonegap:

Regardless, you can’t remove this exceptional framework for cross platform application development from this list. It empowers designers and developers to utilize a similar code for various platforms like android and ios to utilize their current web development knowledge to rapidly design applications that are upheld by different frameworks. Information of HTML, CSS, and JavaScript is sufficient to begin with PhoneGap application.

 

 

If you are looking for hybrid app development using latest framework, contact us at inquiry@vibidsoft.com or call on +1 909 475 0113.
theres another DEVTO !
Published: 2020-01-20 10:43:55

its a web design agency based in the UK !
* https://www.devto.com 
* https://sitereport.netcraft.com/?url=https://www.devto.com
* https://www.devto.co.uk
* https://sitereport.netcraft.com/?url=https://www.devto.co.uk
which webdev expos do you go to ?
Tags: discuss, conferences, expos, devops
Published: 2020-01-20 10:38:19

as a follow up to [the devops & devsecops expo list](https://dev.to/securestep9/cybersecurity-infosec-appsec-meetups-events-in-london-2na1)

which webdev expos do you go to ?
* [AI & BigData](https://www.ai-expo.net/)
* [BETT](https://www.bettshow.com/visiting-bett) (if you are in edu) its on THIS WEEK
* [IP EXPO](https://www.explore-group.com/events/ip-expo-europe-2019/s49094/)

see claranet on ipexpo

https://www.claranet.co.uk/ip-expo-london-2019

*IP EXPO has built a reputation as the best event for cloud, infrastructure and cyber security pros in Europe*

ps i concur and i havent missed IPEXPO in 10 years
drop everything ! the Y2038 bug is already here !
Tags: webdev, futurology, y2038bug
Published: 2020-01-20 10:20:18

drop everything the Y2038 (#y38k #y38kbug #y2038bug) is already here !

apparently *if you have a 20 year* CA CERT *some clients will think it’s already expired*

https://twitter.com/johnckirk/status/1219181548060147712

{% twitter 1219181548060147712 %}

LATEST NEWS
update to linux 5.6 kernel to fix the y38kbug for in any 32-bit systems
* https://www.theregister.co.uk/2020/01/30/linux_5_6_2038/
Why I recommend MobX for React Native in 2020
Tags: reactnative, react, mobx, youtube
Published: 2020-01-20 10:04:15

Check out why I think you should use MobX with React Native as your state management library for your next project. A quick introduction and getting started guide!

MobX is a great state management library that hasn't got enough attention, in my video I go over:

* What MobX is
* How to install MobX for React Native
* Observers and Observables
* Computes and Actions
* Setting up a store Provider

{% youtube Hy0Xg6p1VB4%}
Post 101, I have a new job
Tags: watercooler
Published: 2020-01-20 09:58:05

Today I start a new position at Forgerock, although the name isn't as widely known as Dyson, the name that gave me my handle, Adam Cyclones it is a really big deal for me, I'm stepping out of my comfort zone and into something much more interesting. I'm sure I will have much more content about identify when I get going. Wish me luck!
How to execute Docker commands inside of a Docker container? 🐳👩🏻‍💻
Tags: docker, devops, beginners, tutorial
Published: 2020-01-20 09:57:38

I've seen a lot of people ask the question: ***How to execute docker inside of a docker container?*** And there can actually be a use case for that. 

 
The ***most obvious use case*** for me was a Jenkins container, that needs to execute docker commands in order to build and push the image in docker repo in its build jobs.
 

There are 3 ways to do it: 

1. get a ready Jenkins image with docker pre-installed 

2. install docker yourself in the Jenkins official image (by adjusting the Dockerfile and rebuilding the image)

3. use docker installed on the host where the container is running. -> This is the option I have used 

 

In order to get the docker from host into the container, you need to mount the docker installation path on the host into the Jenkins container. 


```
apiVersion: extensions/v1beta1

kind: Deployment

metadata:

  name: jenkins

spec:

  template:

    spec: 

      containers:

      - image: jenkins

        name: jenkins

        ...

        volumeMounts:

        - mountPath: /var/run/docker.sock

          name: docker-sock

        ...

      volumes:

      - name: docker-sock

        hostPath:

          path: /var/run/docker.sock
```

Now when this Jenkins container starts you will have docker commands available inside. 


----------

[Complete and FREE Kubernetes & Docker course on Youtube](https://www.youtube.com/playlist?list=PLy7NrYWoggjwPggqtFsI_zMAwvG0SqYCb)
Use (free) Github Actions to automatically deploy your site (and do other stuff as well)
Tags: github, ci, cd, automation
Published: 2020-01-20 09:55:39

---
title: Use (free) Github Actions to automatically deploy your site (and do other stuff as well)
published: true
description: 
tags: github, ci, cd, automation
---

[Github Actions](https://github.com/features/actions) are a relatively new feature on Github. You can use them for free if you don't use it too much. For my purposes that's a lot!

What are Github Actions?
They basically allow you to "do stuff" with your code when you push new code to your repository. This "stuff" can be:

* linting your code
* automatically reformat your code
* automatically upload your code to where you're hosting something
* and pretty much anything you can think of

I currently use it to:
* [automatically reformat all the Python code in a repository to the "black" standard](https://github.com/lgeiger/black-action)
* [deploy my static site to a staging or deploy location](https://github.com/SamKirkland/FTP-Deploy-Action)

Do check it out, it's easy to start with and super helpful.
Upgrading from Visual C++ 6.0: The $(InputFile) macro
Tags: c, cpp
Published: 2020-01-20 09:46:04

When trying to compile code that used to run under Visual C++ 6.0 you actually have to face some quirks which resides in custom build tools. One of these is the `$(InputFile)` macro producing linking errors like `cannot find input file '.\debug\.obj'`.

As the geek I tend to be, I like to do a lot of crazy things including compiling old games with the modern compiler.

Quite some time ago, when I was compiling the code of [Quake](https://github.com/id-Software/Quake) under Visual C++ 2015, I faced the same problem I had with older versions of the IDE: when the linker tries to link the output files of the Assembler, if fails with an error code similar to this:

```
Error: cannot find input file '.\debug\.obj'
```

The problem arises since the macro `$(InputFile)` is not available anymore in modern Visual C++ versions and therefore it produces an empty string as output. The conversion process, moreover, does not manage to convert the macro occurrences in the Outputs property of the Custom Build Tool.

Fixing this is as simple as opening the **Properties** of the files, and looking into the **Outputs** of the custom build tool and replace the occurrences of `$(InputFile)` with the new `%(FileName)` macro which achieves the same effect. A screenshot of the final result can be seen in the image.

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

Hope that this trick will help you in bringing your old code into the new age.
A short comparison of Docker vs Virtual Machine 🐳
Tags: docker, webdev, beginners, devops
Published: 2020-01-20 09:37:48

When starting to learn Docker the question of

***What is the difference between Docker and Virtual Machine***

comes up very fast.

So, in this short video I simply explain what the main differences between Docker (Containerization) and Virtual Machine (like Oracle VM VirtualBox, Virtualization) are. And ***what benefits each has***.

--------------------------

{% youtube 5GanJdbHlAA %}
First commit
Tags: webdev, blog
Published: 2020-01-20 09:29:50

Commit early and often, that is what they say. I am going to try and apply this to this blog. Which means that I am committing myself (pun intended) to writing short and consise blog post about my journey into the world of Web Development. Hopefully this will be both usefull to myself as a future reference and anyone who stumbles upon this part of the Internet. Happy coding!

This post was originally published on my blog [Helmen Design](https://www.helmendesign.no)
ASP.NET Core (Rest Web API or GraphQL)
Tags: discuss, aspnet, graphql, api
Published: 2020-01-20 09:19:43

---
title: ASP.NET Core (Rest Web API or GraphQL)
published: true
description: 
tags: discuss, aspnet, graphql, api
---

I'll be working on a new pet project, the project consists of client applications(Web Application SPA, and a Xamarin.Forms mobile Application), the backend will be ASP.NET Core, now I'm curious if I should use Web API(Rest) or should I go use GraphQL?

Another question also, is GraphQL the new way to go when implementing APIs which is going to be consumed by different client apps(mobile and web)?