teleren/devto huggingface dataset:
Developer eXperience. How I missed it before?
Tags: dx, ux, usability, development
Published: 2018-11-04 11:32:22

---
title: Developer eXperience. How I missed it before?
published: true
description: Developer experience -  developers are people too
tags: [dx, ux, usability, development]
cover_image: https://thepracticaldev.s3.amazonaws.com/i/y6ckziwjicz3xr8ncwlu.jpg
---

Recently I learned the term "developer experience (DX)" and it is like lightning strike. I thought about this thing a lot but didn't know how it is called. I referred to it as [usability](https://www.nngroup.com/articles/usability-101-introduction-to-usability/), UX for developers or ergonomics, for example, in my recent post [Developer is the next blue collar job](https://dev.to/stereobooster/developer-is-the-next-blue-collar-job-269b).

I wonder how I haven't heard about it before? Under which rock have I been leaving? So I did quick internet research: some people are talking about [designing API](https://www.kennethlange.com/4-must-read-articles-on-developer-experience-dx/) or about tools, like editors, or about [UX vs DX](https://medium.com/@cramforce/developer-experience-and-user-experience-c4004354b32a). The most useful thing I got from my search, so far, is the slogan: developer experience -  developers are people too. 

It seems there are a lot of things yet to be discovered and formalized. It is a green field. I already have some ideas on the subject, and preparing some articles, but I'm learning myself and open for suggestions, ideas, advices. **What would you consider part of DX? What should I read/watch to know more about DX?**

> Photo by Joanna Nix on Unsplash
Ruby community on twitter
Tags: ruby, rails, community
Published: 2018-11-04 11:12:24

---
title: Ruby community on twitter
published: true
description: ruby community on twitter
tags: ruby, rubyonrails, community
---

Would suggest me some ruby and ruby on rails twitter accounts to follow the ruby community? I'm starting to study ruby and I would like to follow the ruby community and learn amazing things about ruby😍😍😍
BxJS Weekly Episode 35 - javascript news podcast
Tags: javascript, node, podcast, news
Published: 2018-11-04 10:15:11

---
title: BxJS Weekly Episode 35 - javascript news podcast
published: true
description: Listen to the best javascript news of the week in a podcast form
tags: javascript, node, podcast, news
---

Hey dev.to community!

BxJS Weekly Episode 35 is now out! 🚀
Listen to the best javascript news of the week in a podcast form right here.
You can find all the mentioned links [here on github](https://github.com/BuildingXwithJS/bxjs-weekly/blob/master/links/18-44-Episode-35.md).

You can also watch or listen to this episode on:
- [YouTube](https://youtu.be/urifnzgDacE)
- [Castbox](https://castbox.fm/episode/BxJS-Weekly-Ep.-35-Nov-3%2C-2018-(javascript-news-podcast)-id1378315-id99119276?country=us)

Any feedback is appreciated 😁

Additional stuff:
- [Twitch channel](https://www.twitch.tv/yamalight)
- [Discord server](https://discord.gg/hnKCXqQ)
- [BxJS Weekly github repo](https://github.com/BuildingXwithJS/bxjs-weekly)

Social media links:
- [Twitter](http://twitter.com/yamalight)
- [Medium](https://medium.com/@yamalight)
- [Github](http://github.com/yamalight)

If you enjoy my content, please consider [supporting me](https://codezen.net/support.html) 😉
Automatically opening a react native mobile app
Tags: help, reactnative, react, android
Published: 2018-11-04 08:57:49

---
title: Automatically opening a react native mobile app
published: true
tags: help,react-native,react,android
---

I have no experience in mobile app development and want to develop a react native mobile app that would automatically pop up whenever a link is clicked similar to a browser. I have found this StackOverflow answer for [Android App](https://stackoverflow.com/questions/34794853/automatically-open-an-android-app-without-tapping-icon#new-answer).

How can I implement this in react native ?
Giving praise
Tags: discuss, softskills, people
Published: 2018-11-04 07:56:20

---
title: Giving praise
published: true
description: Thoughts on giving praise
tags: discuss, softskills, people
---

Just some thoughts on giving praise.

One of the biggest mistakes that you can make as a manager/team-lead/head-of-whatever is to give praise only to a few of the people who worked on a project.

Giving praise to only one or two of the people who worked on something has 2 results:

- They who got the praise feel embarrased because they think that everyone else thinks that they claimed credit for the whole work.
- People who didn't get praise will be extremely dissapointed.

When you give praise, investigate as much as you would if you were about to criticize someone. Understand who did what, pay attention to details, and give everyone the credit they diserve.

Be as detailed and descriptive as possible. Simply saying "Good job" or "Nice" can have the opposite effect, the people who get the praise may think that you only care about the final result and that you don't care or even do not know how it was achieved.

Instead of saying "Good job", try to be more specific, e.g. "It's great that you did X because it will solve the case Y, and we will not struggle in the future with problem Z".

Try to understand the people to whom you give praise, not everyone feels comfortable getting praise in public, and not everyone appreciates getting praise "only" in private.

> Some are made modest by great praise, others insolent. - Friedrich Nietzsche
For a better web experience
Tags: discuss
Published: 2018-11-04 07:52:24

---
title: For a better web experience
published: true
description: Looking for books on sustainability and accessibility. 
tags: #discuss
---

---
I've been teaching web development for two years now. I want to define a set of best practices for a better web experience. We have some great resources in French (Opquast, GreenIT, etc) but I want more in order to be as relevant as possible. 
Maybe some day I will find some time to share more information about that (but teaching + coding + parenting take a lot of my time). 
Right now, I'm looking for books on sustainability and accessibility. Do you have any recommendations? 

---
Templates in C
Tags: c, template
Published: 2018-11-04 04:07:18

**What?**

You may be asking this question to yourself. Don't worry, you're not dyslexic.

**This is madness. How will we do this?**

Easy, by using macros.

For this example, we'll be creating a generic vector using this macro templating mechanism.

list.h

```cpp
#pragma once

#include <stdlib.h>

typedef struct _BaseList
{
    void *buffer;
    int   index;
    int   length;
    int   capacity;
} BaseList;

#define List(type)         \
    struct                  \
    {                       \
        type *buffer;       \
        int   element_size; \
        int   index;        \
        int   length;       \
        int   capacity;     \
    } *



BaseList *list_new_  (int size_of_each_element);
void      list_delete(BaseList *list);
void      list_resize(BaseList *list, int new_size);

#define list_new(type) (List (type) ) list_new_(sizeof(type));

#define list_push(list, data)    \
    if(list->index > list->length) \
        list_resize(list, list->capacity * 2); \
    list->buffer[list->index++] = data;        \
    list->length++;
```

We define a macro called `List`. It takes a parameter called `type` and it will create an anonymous struct that will be made for each instance. We need a named structure for the functions we'll be using. I'll call it `BaseList` and this is what the functions will be using.

Notice at the end of the `List` macro definition, there is an asterisk. That's important if we want this to work. C wouldn't like it if we tried to convert from a `BaseList` to an anonymous structure. However, if we can convert from a pointer to a `BaseList` to a pointer to an anonymous structure it will do it but probably give you a warning.

For the push function, it was easier to create a simple macro. If we run out of space, we allocate twice as much. We store the data in the next available spot.

list.c:

```cpp
#include "list.h"

BaseList *list_new_(int size_of_each_element)
{
    BaseList *new_list = malloc(sizeof(*new_list));
    new_list->buffer = malloc(size_of_each_element * 8);

    new_list->index = 0;
    new_list->length = 0;
    new_list->capacity = 8;
    
    return new_list;
}

void list_resize(BaseList *list, int new_size)
{
    list->buffer = realloc(list->buffer, new_size);
}

void list_delete(BaseList *list)
{
    free(list->buffer);
    free(list);
}
```

To make the code simpler, I've decided to remove the error checking.

Now to test this baby:

main.cpp

```cpp
#include <stdio.h>
#include "list.h"


int main(void)
{
    List (int) list_of_ints = list_new(int);

    list_push(list_of_ints, 100);
    list_push(list_of_ints, 200);
    list_push(list_of_ints, 300);

    printf("%d\n%d\n%d\n", list_of_ints->buffer[0], list_of_ints->buffer[1], list_of_ints->buffer[2]);
}
```

Compile and run.

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

It works!

Of course, you can expand on this and improve it. I hope you enjoyed the article and consider it a peace offering for not remembering to use `SDL_Quit()` and not uploading the next installment of Using SDL2.
How To Add If…Else Statements In React JSX
Tags: react, javascript, jsx, reactnative
Published: 2018-11-04 02:44:10

---
title: How To Add If…Else Statements In React JSX
published: true
description: How To Add If…Else Statements In React JSX
tags: #react #javascript #jsx #reactnative
---

Post Link : <a href= "https://www.skptricks.com/2018/11/how-to-add-if-else-statements-in-react-application.html" >How To Add If…Else Statements In React JSX </a>

Sometimes, depending on the conditions, we need to perform various actions particularly in view layout of react application. To do so, we  are using the conditional statements inside the render block in react application. This tutorial explains how to perform conditional rendering in react & react native application using simple if and else statement and ternary expression.
As you already know, the React Native uses JSX which is a syntax extension to JavaScript. This syntax extension will be converted to regular JS objects during the compilation.

<a href= "https://www.skptricks.com/2018/11/how-to-add-if-else-statements-in-react-application.html" >How To Add If…Else Statements In React JSX </a>


<img src="https://2.bp.blogspot.com/-jlROSM0x9EA/W92JLuux8zI/AAAAAAAACFw/OlVdTiG87TIosonj0_It8oXzt7shyH-gwCLcBGAs/s400/cond.png" />
Video Tutorials on the freeCodeCamp Random Quote Machine
Tags: freecodecamp, react
Published: 2018-11-04 01:36:19

---
title: Video Tutorials on the freeCodeCamp Random Quote Machine
published: true
description: 
tags: 
  - freecodecamp
  - react
---
I completed a video series where I recorded the steps necessary to create a Random Quote Machine. The Random Quote Machine is created using [React](https://reactjs.org/), [Material UI](https://material-ui.com) and [Font Awesome](https://fontawesome.com) and deployed with [Netlify](http://netlify.com). [View the entire playlist.](https://www.youtube.com/playlist?list=PL3cz80ehFCan4srLIp1HmhrQ0CU8Cw9XM)

# Set Up Environment
In the first video, I set up the local environment, including the FreeCodeCamp test suite. I use [create-react-app](https://github.com/facebook/create-react-app) to bootstrap the application.

{% youtube 3QngsWA9IEE %}

# Begin Development
In the second video, I begin to develop the application. Specifically, I added a button with an event handler.

{% youtube XnoTmO06OYo %}

# Fetch and Render a Quote
In the third video, I use the `fetch()` API to make a GET request and fetch quotes from a [JSON file](https://gist.githubusercontent.com/natebass/b0a548425a73bdf8ea5c618149fe1fce/raw/f4231cd5961f026264bb6bb3a6c41671b044f1f4/quotes.json). I introduce React lifecycle methods. A quote is rendered and displayed to the browser.

{% youtube us51Jne67_I %}

# Choose a Random Quote on Button Click
In the fourth video, a new quote is rendered when our button is pressed.

{% youtube iZx7hqHb5MU %}

# Add Styling with Help of Material-UI
In the fifth video, I use [Material-UI](https://material-ui.com) to style the Random Quote Machine.

{% youtube zUefD1Ojr88 %}

# Add Tweet Link to Application and Pass FreeCodeCamp Test Suite
In the sixth video, I use [Font Awesome](https://fontawesome.com) to render a Twitter icon. This icon allows the user to tweet a quote when clicked.

{% youtube lpba9vBqXl0 %}

# Deploy Random Quote Machine to Netlify
In the seventh and final video, I deploy the Random Quote Machine to [Netlify](https://www.netlify.com/).

{% youtube Jvp8j6zrFHE %}

# Use React Hooks to Handle State
In the eighth and final video, I have some fun and add React hooks to handle the state of our application. Keep in mind that, as of November 6, 2018, this is not a stable API and is done just for fun and experimentation.

{% youtube M_hFfrN8_PQ %}

I hope this helps in your coding journey. Please subscribe to the channel and comment / like the videos. Want me to cover something in a new video? Suggest it in a YouTube comment! Good luck!

Follow me on Twitter, Instagram and Medium!
https://twitter.com/aryanjabbari
https://www.instagram.com/thewebdevcoach/
https://medium.com/@thewebdevcoach
gentoo eix-update failure
Tags: gentoo, linux, permissions, portage
Published: 2019-10-28 09:54:15

---
title: gentoo eix-update failure
published: true
date: 2018-11-04 00:00:00 UTC
tags: gentoo,linux,permissions,portage
canonical_url: https://foursixnine.io/blog/2018/11/04/gentoo-eix-update-failure.html
---

## Summary

If you are having the following error on your Gentoo system:

```
Can't open the database file '/var/cache/eix/portage.eix' for writing (mode = 'wb')
```

Don’t waste your time, simply the /var/cache/eix directory is not present and/or writeable by the eix/portage use

```
mkdir -p /var/cache/eix
chmod +w /var/cache/eix*
```

Basic story is that eix will drop privileges to portage user when ran as root.
MazeBattles.com: Site that allows users to race against their friends to solve generated mazes (NodeJS)
Tags: javascript, node, games, webdev
Published: 2018-11-03 23:51:30

---
title: MazeBattles.com: Site that allows users to race against their friends to solve generated mazes (NodeJS)
published: true
description: This was my first experience developing a NodeJS application. The GitHub repository is at (https://github.com/HenryDavidZhu/MazeBattles.com).
tags: #javascript #nodejs #games #webdev
---
Using SDL2: Quick update
Tags: cpp, sdl
Published: 2018-11-03 23:25:44

So, I left out something important from the previous articles.

**Um... Okay. What is it?**

SDL has an initialization function and a deinitialization function called `SDL_Quit()`. It needs to be called before your application quits.

**Did you forget or you just wanted to "keep the code cleaner"?**

No, I forgot. It should go into the `Application` class's deconstructor.
A quick way to create Google documents.
Tags: productivity, google, discuss
Published: 2018-11-03 21:26:45

---
title: A quick way to create Google documents.
published: true
description: 
tags: productivity, google, discussion
---

A question - triggered by a quick productivity tip a colleague showed me this week.

If you are a Google Drive / Documents user you can create a new document by typing the document type followed by .new in the browser bar.

This creates and opens a blank document of that type in your Google Drive.

The ones I've seen documented are:

* Docs: doc.new, docs.new, document.neworms: form.new, forms.new
* Sheets: sheet.new, sheets.new, spreadsheet.new
* Slides: slides.new, deck.new, presentation.new
* Sites: Slides: slides.new, deck.new, presentation.new 

Do any other tools have anything this neat - that I've just missed?

Refs:

[Quartz at work: Google has a .new timesaving tip]
(https://qz.com/work/1441913/a-new-trick-for-starting-google-docs-slides-sheets-and-forms/amp/)
React Native boilerplate by Prominent Edge
Tags: react, reactnative
Published: 2018-11-03 20:47:53

---
title: React Native boilerplate by Prominent Edge
published: true
description: Get running on React Native quickly without Expo, using TypeScript, MobX-State-Tree, NativeBase, React Navigation, Enzyme
tags: react, reactnative
---

We open sourced our React Native boilerplate Prominent Edge. Expo is too limited for our needs, and other boilerplates were either outdated, were too heavy, or didn't use our most recommended libraries.

- [React Native mobile boilerplate](https://github.com/ProminentEdge/mobile-boilerplate)

![Prominent Edge](https://thepracticaldev.s3.amazonaws.com/i/9x5k0sxko4n26t3nq0vi.png "Prominent Edge")

Technologies used:

- TypeScript
- MobX-State-Tree
- NativeBase
- React Navigation
- Enzyme
- JSDom
- Jest

Hope it can help someone here!

https://prominentedge.com
Big companies only hire graduates and other myths.
Tags: discuss, career, beginners
Published: 2018-11-03 19:00:43

---
title: Big companies only hire graduates and other myths. 
published: true
description: I share my thoughts on college. 
tags: discuss, career, beginners
series: November Daily
---

I often hear people give the advice that "big companies still care about college" when new people ask if they need a degree to be a Developer. I personally don't even believe that narrow case is true enough to even mention. 

I live in Phoenix Arizona, which is not the _most_ or _least_ techy city. It is pretty average in that regard, and I have only had one company, USAA deny my application because of a lack of college education. I believe they recently dropped this policy. I have only worked full time for two companies, U-Haul and American Express. I honestly think big companies care as little about degrees as startups at this point. At least that seems to be the case from my experience. 

If you are trying to break into the tech industry I firmly believe investing in your talents will pay off far more than getting a degree. Simply by putting in the work making things you should garner a fair amount of attention. The opportunity cost of getting a degree is massive. Not only in the money spent, but also in the years of wasted time. 

The simple truth is, there is a massive shortage of skilled workers in tech, and if you can prove that you have the chops, you will get hired. If you liked this post consider joining my [Discourd](https://discord.gg/bbXbhv5) where I answer all sorts of questions from general industry topics, to helping you debug your personal project.
Why I Love Coding in Ruby:  Dir.mktmpdir
Tags: ruby, programming
Published: 2018-11-03 18:10:32

---
title: Why I Love Coding in Ruby:  Dir.mktmpdir
published: true
description: 
tags: ruby, programming
---
Because blocks!

This code creates a temporary directory and a file <code>foo.txt</code> therein:

```ruby
require 'tmpdir'

Dir.mktmpdir do |dir|
  open("#{dir}/foo.txt", 'w') do |file|
    # Do something with the file.
  end
end
```

When the block exits, the directory and its contents *are deleted automatically*.

Easy peasy!
Design Patterns: use or not to use
Tags: java, webdev, programming, discuss
Published: 2018-11-03 16:34:57

---
title: Design Patterns: use or not to use
published: true
description: How is it possible to naturally use design patterns? Is it just a matter of experience? 
tags: java, webdev, programming, discussion
cover_image: https://thepracticaldev.s3.amazonaws.com/i/ylqkxvdgrn57bcxzp5l4.jpg
---

Right now I'm reading [Design Patterns and Best Practices in Java](https://www.packtpub.com/application-development/design-patterns-and-best-practices-java) by Kamalmeet Singh, Adrian Ianculescu and Lucian-Paul Torje, a very good book that explains the multitude of design patterns that the Java language has and some best practices in Java. During development I'm already used to identify opportunities and use creational patterns such as Singleton, Factory and Builder. However, I never really read a book listing design patterns like that, which was always a point of worry for me as a developer and I'm trying to fix that now to evolve even more in my development skills. 

However, advancing through the reading one question arose, principally regarding the behavioral patterns I'm reading right now. The book is very clear in the explanation of what the patterns do, examples and applicability, but there is the old saying: "it is easier said than done". In my opinion it should feel natural, you cannot write code trying to find excuses to use X or Y design pattern. How developers develop this kind of habit? How they know that, looking to a problem, that they should use, for example, observer pattern or mediator pattern, without resorting to a book to remember their use cases? Is it just a matter of experience? How to gain experience without falling into excessive use of patterns?

My familiarity with creational patterns comes from its solid use in Java itself and many famous libraries, I saw that they were convenient and started to use them myself. However, creational patterns are much more concrete and easily identifiable than behavioral patterns. It sounds hard to do the same natural process that I did with creational patterns. 

What did you people do to make it natural, if anything at all? Should I worry about it that much? What are the most important patterns that you think it is necessary to know to apply on the fly? I'm looking forward to your points of view in this subject that are always in vogue in the development community. :)
#codevember - 3 - Carrot
Tags: codevember, showdev
Published: 2018-11-03 17:21:44

---
title: #codevember - 3 - Carrot
published: true
tags: codevember, showdev
canonical_url: https://nikol.as/blog/2018/11/codevember-3-carrot/
---

{% codepen https://codepen.io/vintagesucks/pen/ZmEXwy %}
A Secret Tool I Use Daily
Tags: zerotier, tools
Published: 2018-10-30 15:26:59

---
title: A Secret Tool I Use Daily
published: true
description: A short description about zerotier.
tags: zerotier,tools
---

### The Best Tool Is One You Don't Think About

Every computer and server I use, I install [zerotier](https://zerotier.com/) on.  What is zerotier?  It's virtual networking, or software based networking.  I originally thought the idea was neat but either a. the software would fail me or b. the company would fizzle out.  I've been using zerotier for years and neither of those situations have happened.

### How it works

Zerotier uses UDP, with a TCP fallback, and creates a virtual network device on your computer.  It establishes a network through zerotier root servers to get both a private IPv4 and IPv6 addresses per network.  Alternatively you can join a public zerotier network such as their "Earth" network which is open to anyone to join.  Once connected, you get encrypted peer to peer connections.  Here is what it looks like to jump from my work computer to my home server:

![traceroute](https://thepracticaldev.s3.amazonaws.com/i/5q70dmqnzlveh1mid41q.png)

You would think I needed to configure a million files to get this to work, à la a vpn server.  Not the case.

```bash
# after installing zerotier, using earth network ID here:
zerotier join 8056c2e21c000001
```

Once you join, you can login to zerotier and allow this new host on the network. 
 
That's it!  Straight magic after that.

### So how do I use it

I use it to ssh into my different computers.  Often times I'll have some code on my a computer that I forgot to push.  I can also maintain my home server and restrict certain web interfaces based on my zerotier IP address.  The ease of use totally negates the need for a complicated VPN setup.  I've been so impressed with zerotier that I'm the maintainer of the Alpine Linux zerotier package.  They even have a mobile app if you're into always being connected.

Give it a shot.  The free tier is very reasonable.