teleren/devto huggingface dataset:
3 Things YOU should never stop doing as a Senior Engineer
Tags: career, tips, motivation, hiring
Published: 2019-11-18 17:35:43

-  Learning  => Every engineer should continue learning through passion-driven actions or direct feed back from direct reports and other people in the organisation. Feedback is King and you should always seek for feedback. Having a shorter feedback loop with your team also aids in developing a rock-solid team.
-  Communicating  => Every engineer should be able to communicate their long term vision with the team. Every team should have a defined or at least existing roadmap. This roadmap could be changing and dynamic but what’s important is that the team knows where the ship is sailing to.
-  Building  => Every engineer should never stop BUILDING! This could be in the form of building new processes, methodologies, internal libraries and most especially RELATIONSHIPS! This habit of continuous building exemplifies to the team that experimenting, trying out new things and failing are all part of the improvement process.

  Complacency is the enemy of the comfortable Senior Engineer earning six-figures a month. Learn, Communicate and Build like it’s your first “Hello World” application :)

Comment down below what you think and what principles have helped you in maintaining your edge as a Senior Engineer!
Why is GitHub supporting Child Separation Agency? 
Tags: discuss, github, healthydebate
Published: 2019-11-18 17:34:56

I love using GitHub products, but was shocked when I found out they do business with [child separation agencies](https://www.nbcnews.com/news/us-news/more-5-400-children-split-border-according-new-count-n1071791) like ICE (Immigration Customs Enforcement). Will you join [GitHubbers](https://twitter.com/githubbers) (employees of GitHub) and I in asking [@GitHub](https://twitter.com/github) and their CEO [Nat Friedman](https://twitter.com/natfriedman) to drop ICE as a client and never work with such agencies again? 

![GitHub sponsorship logo with smiling cat and heart, modified with text "Drop ICE"](https://thepracticaldev.s3.amazonaws.com/i/9gd9csxehbc6dtm21o1w.png)
From Monolith to Kubernetes Webinar with CloudBees
Tags: kubernetes, jenkinsx, microservices, cloudnative
Published: 2020-01-16 18:24:09

---
title: From Monolith to Kubernetes Webinar with CloudBees
published: true
date: 2019-11-18 16:56:45 UTC
tags: kubernetes,jenkins-x,microservices,cloud-native
canonical_url: https://salaboy.com/2019/11/18/cloudbees-webinar/
---

I am super happy to announce that I am doing a Webinar about how to go **_“From Monoliths to Kubernetes using Jenkins X”_**. This is being organised by CloudBees and it is going to happen the [26th Nov 2019](https://register.gotowebinar.com/register/4496029892230348035). I will be showing live how to work with multiple projects and what main challenges are you going to face while going cloud native, along the tools ([Zeebe](http://zeebe.io), Helm, etc.) that will help you to move faster.

[![](https://salaboy.files.wordpress.com/2019/11/webinar.jpg?w=1024)](https://register.gotowebinar.com/register/4496029892230348035)

![](https://salaboy.files.wordpress.com/2019/11/from-monolith-to-k8s.png?w=1024)

If you are interested in the webinar please register here: [https://register.gotowebinar.com/register/4496029892230348035](https://register.gotowebinar.com/register/4496029892230348035)

I’m really looking forward to hear your questions and comments about it.

## Recording

<iframe type="text/html" width="960" height="540" src="https://www.youtube.com/embed/EIkiz8t3jXw?version=3&amp;rel=1&amp;fs=1&amp;autohide=2&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent" allowfullscreen="true" style="border:0;"></iframe>
Unit Testing Private, Non-exported Functions with Rewire
Tags: testing, javascript, webdev
Published: 2019-11-18 16:55:28

*Originally published at [shipshape.io](https://shipshape.io/blog/unit-testing-private-non-exported-functions-with-rewire/)*

When a JavaScript function is exported, it is straightforward to unit test. 
We can import it directly into our test and test the functionality. For example,
we could use something like Jest to setup a simple import and unit test.

```js
// foo.js

export function foo() {
  return 'bar';
}
```

```js
// foo.spec.js

import { foo } from './foo.js'

describe('Foo', () => {
  describe('foo', () => {
    expect(foo()).toBe('bar');
  });
});
```

How would we test functions that we do not expose via `export` though?

There is a great tool, [rewire](https://www.npmjs.com/package/rewire), that allows getting references 
to functions that are not explicitly exported. Assuming you are using Babel, we can use 
[babel-plugin-rewire](https://github.com/speedskater/babel-plugin-rewire) to make the setup more simple.

```bash
  npm install babel-plugin-rewire --save-dev
```

Then we need to add it to our plugins for testing, in our `babel.config.js`.

```js
...
plugins: [
  'babel-plugin-rewire',
  ...
]
...
```

We can then import the whole file, and get references to the non-exported functions, using
`__get__`.

```js
// bar.js

function _bar() {
  return 'baz';
}
```

```js
// bar.spec.js

import Bar from './bar.js'

describe('Bar', () => {
  describe('_bar', () => {
    const _bar = Bar.__get__('_bar');
    expect(_bar()).toBe('baz');
  });
});
```

Rewire makes this setup downright magical, and saves us from needing to needlessly export things
or use other hacks, just to get a reference to the function for testing. We can now ensure functions
remain private, without all the headaches at testing time!
Shepherd 6.0: One Dependency, Smaller Bundle, and New Look!
Tags: javascript, opensource
Published: 2019-11-18 16:49:00

_Originally published at [shipshape.io](https://shipshape.io/blog/shepherd-6-smaller-faster-tether/)_

## Return to Tether

As Robert wrote about in a previous [post](https://shipshape.io/blog/shepherd-popper-to-tether/), we moved back to the original element attachment and positioning library Shepherd.js shipped with. This was with the intent of not only controlling the overal bundle size (which I'll discuss next), but also about being able to control those dependencies over time. Since Ship Shape is now maintaining the [Tether](https://github.com/shipshapecode/tether) code base, we have a chance to ensure that it stays lean and performant for it's users, which are also ourselves for the future of Shepherd.

## Smaller Size

Getting back to the point on overall size. For implementers of Shepherd, we find it important to make sure we're able to ship a library that adds only what is needed for the Tour API and allow engineers to create rich experiences with little impact to their application's performance. We think we've done quite a bit by reducing the overall bundle size down to `~15kb (min + gzip)` and removing all dependencies other than Tether.

## Website Update

![Image of Latest Shepherd Website](https://shipshape.io/img/blog/shepherd6-site4.png)

As we continued to iterate, on improving the library, we decided to work with the team at [make&model](https://www.makemodel.co) to create branding to help Shepherd be more memorable and unique. This now combines the demo site and branding to help show the many benefits of the library and highlight companies already using it. It also helps to show the seemingly limitless level of customization that can be achieved with Shepherd tours.

We hope this latest release provides a speedy, low impact, and easy to use way to bring application tours to your users! Feedback is appreciated, as always.
Why Choose A Public DNS?
Tags: whychoose
Published: 2019-11-18 13:55:42

Hello I'm Ibrahim From TGD Dev™
(Why Choose? - An Official Dev Series! Episode 2)
This episode of Why Choose? - An Official Dev Series! We will be discussing why choose a public DNS?

But today There will be negative feedback on public dns.

First You should use Public DNS If your WiFi Isn't very good.
For example doing Google DNS will be good! Or CloudFlare Open DNS etc..

Second DNS Can sometimes Give you safety if you didn't know!
But they can also give you danger..... By using a DNS you need to trust them not to use your data becuase now that U use DNS they can get all your data including Personal data..... If you don't want that don't use DNS...



Third
DNS Can be great if your WiFi is running slow Like If your connected to over 20 Devices Set 10 of them to DNS then your WiFi will run like new!


Fourth And Last.

DNS Are Great ways To Improve your browsing too we've done a test with and without DNS here's the results.

Twitter without DNS 4 seconds Twitter with DNS 2 Seconds.

If that's enough for your consider a DNS We tried Google DNS DNS 1 Is 8.8.8.8 DNS 2 is 8.8.4.4 

But You MUST trust the DNS Before using because By using a DNS you need to trust them not to use your data becuase now that U use DNS they can get all your data including Personal data..... If you don't want that don't use DNS...

I hope U enjoyed this  Episode On Why Choose? - An Official Dev Series!



If you have a suggestion Of what Next episode should be about Reply In The comments!

- Why Choose? - An Official Dev Series! Episode 2

Sincerely Ibrahim From TGD Dev™

Support Email: Tgdevsuport@gmail.com
Code & Psychotherapy: More Similar Than You Think!
Tags: codenewbie, womenintech, womenwhocode
Published: 2019-11-18 16:44:49

![](https://media.giphy.com/media/l36kU80xPf0ojG0Erg/giphy.gif)

 
In my previous post, I briefly mentioned how working with clients as a psychotherapist is analogous to programming. Part of being a good therapist means understanding how a client sees the world and why. Similarly, while learning to code, I continuously find myself discovering how computers see the world and why. Two important aspects of both human and computer interactions are communication and problem solving. 

Being a therapist relies on effective communication with clients, which is very complex and nuanced, especially from person to person; we learn how to communicate in an individualized way with every person that comes through our doors. However, there are core components of communication with humans, that overlap with those in computer interaction. Communication requires knowing the parameters of interaction, which consists of learning syntax, operating within mutually agreed upon defined concepts, and becoming familiar with common patterns. 

In programming, we do exactly these things when we conform to proper syntax, define concepts via variable/method/classes/object creation, and learn patterns like if statements, while loops and iteration. Therapy and writing code both share the idea that you are working within a language that has a certain framework, to achieve a goal. 
 
Problem solving is another important piece of therapy and some would argue, the point. Typically, when working with clients, we focus on a specific life area that is causing them discomfort. Together we discuss the pieces of the problem and develop a plan on how to change it, which involves creating and maintaining new behaviors, testing these behaviors, and evaluating them to see if they are useful in helping alleviate our original problem. 

In a similar vein, programs are often created as an answer to a “problem”, whether it be: to automate routine tasks, improve on existing tools, collect and analyze data, or a myriad of other reasons. Programmers run through a similar process where we develop, maintain, test, and evaluate our programs. A great example that mirrors therapy is debugging. It is particularly relevant in showing how we work to find a root cause for a problem and work to fix it through this process.
 
Overall, I hope this post demonstrates that **writing code and psychotherapy are more similar than you think!** Both require strong problem-solving and communication skills to be done effectively to work towards greater goals.
A message from Iran, asking for help on creating better proxies
Tags: iran, networking, privacy, discuss
Published: 2019-11-18 16:40:36

Dear dev.to,

I'm Iranian. I'm studying abroad and no longer live in Iran, but I have friends and families in Iran who are dear to me, and whom I love with all my heart.

Iran has a tendency to disconnect the citizens from internet whenever there are protests going on. I don't want to go on a political rant and tell you why they are protesting now, that is a long story and might put my immediate family in danger. Instead, let me talk to you about my disconnected friends.

The internet has been down for at least 30 hours now. This is a huge loss for many. Almost all businesses are losing money for this matter,  freelancers can't communicate with the project owners, the protestors aren't aware of the dangers coming their way, and we are disconnected from our friends and families. The only places that still have internet access are the banks, some universities, and the internal servers in Iran.

A few of my friends managed to set proxies, tor hidden bridges, ssh tunnels on their internal servers, and connect them to the internet using yet another proxy, etc. The problem is, the government identifies these servers, shut them down and bully the server owner.

I'm asking dev.to to give them ideas about creating these connection to minimize the gov's suspicion. I hope this message is not against dev.to's policy, and I hope you can help them.
2020 ClassicPress Management Committee Elections
Tags: wordpress, opensource, contributorswanted
Published: 2019-11-18 16:31:10

The thing I love most about ClassicPress is the community. When ClassicPress started back in August of last year, founded by Scott Bowler, we knew we had to do things differently. The upcoming 2020 Management Committee Elections are the embodiment of this conscious decision we made as an organization. 

Today, any active community member can put their name forward to be included in the general elections being held next month. The community then gets to vote on who they wish to have on the committee; voting in those who they believe will help continue the forward momentum we have seen so far.

The Management Committee oversees the day-to-day work and operations of ClassicPress, and all committee members are re-elected every 12 months. For more information, you can review the [ClassicPress Organizational Structure](https://forums.classicpress.net/t/classicpress-organizational-structure/704?u=wadestriebel).

> The new committee will have 9 members. Of the original Founding Committee, only 6 have decided to run in this election. You read that right, current committee members don’t just automatically join the new committee. They must be elected just like everyone else. Even if all 6 of them get elected, there will be 3 new committee members joining them, so the 2020 committee cannot/will not be only Founding Committee members. What I am trying to say here is that everyone has a chance and it is really important to nominate yourself if you think you can make a difference in the project.


Self-nominations are open until Wednesday, November 20th at 11:59pm UTC time. Active community members are invited to put their names forward! For more information you can refer to the [original blog post](https://www.classicpress.net/blog/self-nomination-for-the-committee-of-2020-now-open/).
New Whitepaper: The Tao of Extensibility
Tags: customization, identitymanagement, auth0, identity
Published: 2019-11-18 16:25:22

---
title: New Whitepaper: The Tao of Extensibility
published: true
description: Choosing the right customization strategy can make the difference between success and failure in your next identity project.
tags: #customization #identitymanagement #auth0 #identity
canonical_url: https://auth0.com/blog/new-whitepaper-the-tao-of-extensibility/
---
Auth0 Principal Architect Vittorio Bertocci’s new whitepaper can help CTOs, architects and developers understand the trade-offs between the different customization strategies offered by today’s identity solutions, explaining how to pick the right one for each scenario in the “Tao of Extensibility.”

[Read on 🧩](https://auth0.com/blog/new-whitepaper-the-tao-of-extensibility/?utm_source=dev&utm_medium=sc&utm_campaign=taoofext/)

![New Whitepaper: The Tao of Extensibility](https://cdn.auth0.com/blog/tao-of-extensibility/the-ideal-conditions3.jpg)
The Building an Indie Business Podcast- Why You Shouldn't Compare Your Solo/New Podcast to Big Podcasts
Tags: podcast
Published: 2019-11-18 16:08:52

In this episode I discuss why you shouldn't compare your podcast to Big Podcasts such as Bill Burr's

[Revenue Research](https://revenueresearch.co/)
[Episode Page](https://baib-podcast.com)
https://overcast.fm/+RG5jZ241I
Favourite open source boxing match?
Tags: opensource, gaming
Published: 2019-11-18 16:03:36

Does anyone know an open source html/js boxing game? I am running an activist campaign next week, with a boxing game theme between Berlin and a corporation. The simpler/goofier it is, the better! I have limited time, but am familiar with Ruby, Javascript, HTML and CSS.

Post your favorite open source boxing games and their source code!
DevOps is dead
Published: 2019-11-18 15:58:42

I sat in a meeting last year as everyone round the table was asked to not use DevOps as the answer.  As a company, we were not using it well so what other options were available to us.

For many, that was a bit of a shock, but I really understood where that person was coming from: writing individual scripts for huge cloud deployments were not working for us.

I took that away and finally started working on augmented delivery.  The basic idea is that any deliverable can be defined as a model.  That model should enable you to define the pertinent information for any product and then generate all the human readable information you need.

Does that sound interesting?
TEACH ME ANYTHING - Wrapping and Securing a Rest API in GraphQL
Tags: graphql, webdev, tutorial
Published: 2019-11-18 15:54:37

Hello Hackers! Today we are bringing you our new educational series: TEACH ME ANYTHING, aiming to give you the tips and tricks you need in under 10 minutes or less! We headed to #JSDAYIE for a tech conference in Dublin and got speaker #RoyDerks who is a serial startup CTO to TEACH US ANYTHING! Roy is also an international speaker and gives tech workshops all around the world. In this clip, Roy shows us how to create a Node.js/Express server that wraps existing REST APIs into one single GraphQL endpoint.

🔥 PREVIOUS VIDEO • A podcast with CTO of Medit: How to Curate Technical Decisions→ https://www.youtube.com/watch?v=f6Ph1...

➡️Share this Video:
https://youtu.be/B7aBnxaxsfU

📺Subscribe To Our Channel and Get More Great Tips
http://bit.ly/Subscribe2Hackflix

➡️ Ever wanted to learn about the tech industry and software engineering? Hackflix is your HACK to learning the tips and tricks, motivational stories and educational podcasts to guide you for your future in the industry. We aim to learn, inspire and share! So what are you waiting for? Check out all of our latest videos on https://hackflix.dev/

✅Make sure to Like, Favourite and Share this video and Subscribe if you haven't done so already at: https://bit.ly/Hackflix

🎬Podcasts You NEED To Watch:

➡️Talking Web Component Vs. Frameworks, PWAs Vs. Native Apps
https://www.youtube.com/watch?v=hfekH...

➡️How To Grow Your Mindset To Reach Your Goals
https://www.youtube.com/watch?v=YzNST...

// Other Great Resources:
https://hackflix.dev/

⬇️Tweet us a Question!
https://twitter.com/hackflix_dev

👤Connect with us:
https://www.facebook.com/hackflix.dev
https://www.instagram.com/hackflix.dev
https://twitter.com/hackflix_dev
https://www.linkedin.com/company/hack...

& For our developers out there:
https://dev.to/hackflix_dev
RoR Sr. and Lead Devs for Musictech co. Brooklyn NY
Published: 2019-11-18 15:42:25

Hi, I'm hiring one Senior and one Lead Full-Stack Developer in Brooklyn, NY. It's a platform for independent musicians to easily self publish, avoiding paying royalties to producers. Very high-impact opportunity for a company who's mission is to get more great music into the world and help independent artists make a sustainable living while pursuing their passion.

#ruby #rails #react #node.js
Shortwire the async/await's catch
Tags: javascript, async, exception
Published: 2019-11-18 15:37:48

Handling exceptions in the async/await functions can become really bothersome. You can have multiple await calls inside a function for which you need to handle exceptions separately. This requires either wrapping every await call inside its own try/catch block, or using a single try/catch and trying to handle multiple exception types inside a single catch block. Either way, not too pretty. Especially if you want a way to easily resume execution only if some of the async calls fail. But, if you remember that what's awaited for is a simple Promise, things become much more flexible. Rejects can be handled by using well known *.catch* callback:

```javascript
async function fetchUserPosts(userId) {
  const user = await fetchUser(userId).catch(() => null)
  return user
    ? await fetchPosts(user.postIds)
    : []
}
```

We chain *fetchUser*'s original Promise by using **.catch** method. *catch* returns another Promise that resolves with either a fetched user, or null if any error occurred during the *fetchUser* call. By eliminating the possibility of an exception on the first line, onwards we only need to think of 2 possible cases:

1. there is user data
2. there is no user data :)

This is a very simplified example of how to elegantly skip non-critical exceptions without breaking up your code into a few loosely connected chunks. This is however not a suggested approach for general async/await error handling.
RTS game development - Week #3
Tags: csharp, unity3d, gamedev
Published: 2019-11-18 15:10:54

Repo: https://gitlab.com/Kipash/rts-concept

##It's the third week and more work has been done.##
The biggest thing is the terrain, units no longer move on a flat surface.

But, let's start from the beginning. Last week we did formations and their ordering. And we had said that we will make units rotate along their velocity vector. Also, squads which will be selectable through UI. All above has been done. Hooray!

Units now look along their velocity vector.

A couple of new formations: Line, Arrow, Double Arrow and Row. 

Formation were separated into two interfaces. `IFormationBehaviour` and `ISlotAssignBehaviour`. And then there's the Formation class which binds these two behaviors together.
```cs
//creates different formations and its behaviours
var layerAssingmentBehaviour = new LayerAssingmentBehaviour() { InvertAngle = invertAngle };
var axisAssingmentBehaviour = new AxisAssingmentBehaviour();

formations.Add(FormationType.Box, new Formation()
{
    FormationBehaviour = new BoxFormationBehaviour(4),
    SlotAssignBehaviour = layerAssingmentBehaviour,
});
```

A button for switching between individual mode and squad mode. Individual lets you select any unit through box selection. Squad mode has box selection disabled, but on whatever unit you click, it will select the whole squad.

UI for squads, ability to select any squad with one click. The upper bar.

Added terrain to see if the formations work in 3D. It had a couple of bugs with height, but it has been all fixed. 

And finally... teams and attacking. Simple mock, just by right-clicking on an enemy unit it instantly kills it.

![Attack mock](https://thepracticaldev.s3.amazonaws.com/i/wv08n3acff4ld6n0p1uc.gif)

Some other little things... 

Selection is not pixel-based but rather physical ray cast and position-based. Had an issue with different resolution needing different biases.

A minimap with a camera rendering from the top.

###Bugs!###
- DoubleArrow formation still has its problems.

###Features to add!###

- Unit individual movement and logic. "Autoplay", for example, Unit which is attacking and its target is out of range, it should start chasing it.

- Unit attack. Ray cast and optimization. Visualization. How much accurate?

- Curved formation for surrounding a target.