teleren/devto huggingface dataset:
Elasticsearch License Change, Alpha Global Union, White House Website Accessibility Features, & more on DevNews!
Tags: news, podcast
Published: 2021-01-28 20:46:13

---
title: Elasticsearch License Change, Alpha Global Union, White House Website Accessibility Features, & more on DevNews!
published: true
description: Listen to S3E3 of the DevNews pod!
tags: news, podcast
series: DevNews Season 3
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/zoxvbu0494gq3sxtjp4v.png
---

### Another week, another installment of DevNews — the show where @saronyitbarek and I explore the latest stories in software news

{% podcast https://dev.to/devnews/s3-e3-elasticsearch-license-change-alpha-global-union-a-cookie-tracking-alternative-and-white-house-website-accessibility-features %}

### **Here's what we covered this week:**
- International Google workers unionizing
- A potentially more privacy-friendly alternative to cookie-tracking
- Web accessibility changes to [whitehouse.gov](https://www.whitehouse.gov/) under the Biden administration

### **We were also joined by a special guest this week:** 

- [Jacob Rogers](twitter.com/jacoblrogers55), Senior Legal Manager at the Wikimedia Foundation, who shared what we need to know about upcoming licensing changes to Elasticsearch and Kibana.


_You can [follow DevNews](dev.to/devnews) to get episode notifications and listen right in your feed_ — or subscribe on your platform of choice! Plus, if you leave us a review, we'll send you a free pack of thank-you stickers. Details [here](https://airtable.com/shr8oKAIMZgdYnBxx). 

## **Quick Listening Links**
- [Apple Podcasts](https://podcasts.apple.com/us/podcast/s3-e3-elasticsearch-license-change-alpha-global-union/id1525581923?i=1000506850233)
- [Spotify](https://open.spotify.com/episode/2FueC8VaIDPlJf0HXpp1aA)
- [Google](https://podcasts.google.com/feed/aHR0cDovL2ZlZWRzLmNvZGVuZXdiaWUub3JnL2Rldm5ld3NfcG9kY2FzdC54bWw/episode/aHR0cHM6Ly9kZXZwb2RzLmRldi9wb2RjYXN0cy9kZXZuZXdzLzE5?sa=X&ved=0CAQQkfYCahcKEwioiJ_Eur_uAhUAAAAAHQAAAAAQAw)
- [Stitcher](https://www.stitcher.com/show/devnews)
- [Listen Notes](https://www.listennotes.com/podcasts/devnews/s3e3-elasticsearch-license-riPCWT_kAF8/)
- [TuneIn](https://tunein.com/podcasts/Technology-Podcasts/DevNews-p1352512/?topicId=160391283)
- [RSS Feed](http://feeds.codenewbie.org/devnews_podcast.xml)
- [PocketCasts](https://pca.st/nvet2r35)
- [Transcript](https://devpods.herokuapp.com/podcasts/devnews/episodes/111)

---
_Acknowledgements_ 
- _@levisharpe for producing & mixing the show_
- Our season three sponsors, [SendBird](https://sendbird.com/) and [Rudderstack](https://rudderstack.com/) ❤️ 

![News](https://media.giphy.com/media/3oKIPoAP1wLvewc7QI/giphy.gif)
What is Rubber Duck Debugging?
Tags: debugging, tutorial, programming, beginners
Published: 2021-01-28 20:28:58

{% youtube ugegu6lSWaY %}

In this post I will explain what "rubber duck debugging" is.

If you are hearing the term first time, you might be thinking "What an earth is that!?". And you are not alone. That was the exact reaction I had back when I first heard the term.

Even though it sounds silly it is actually one of the best debugging techniques out there. And it works on all languages and platforms.

_I also made a video on Youtube explaining what rubber duck debugging is. You can watch it [here](https://www.youtube.com/watch?v=ugegu6lSWaY)._

## Rubber duck debugging explained

![rubber duck debugging](https://dev-to-uploads.s3.amazonaws.com/i/ghn86316oa5pi6mfvoa6.jpg)

The idea behind the term is that you have a rubber duck on your desktop and whenever you hit a wall or can't figure out a solution to your problem, you take the rubber duck and start to explain your problem to it.

This might sound stupid but it actually works. Think about it. Have you ever asked your co-worker or friend help for some problem and while you explain your problem and how your code should work, you actually have an "ahaa" moment and solve the problem while explaining it. It's the same thing but instead of you explaining your problem to a co-worker, you explain it to the rubber duck, quietly sitting and listening on your desktop.

This has happened to me so many times. It really helps to explain the problem and your code line by line to someone because then you get out of your own head and usually see things more clearly which in return really helps on finding a solution.

## Origin of the term

Of course it doesn't have to be a rubber duck you explain your problems to. It can be some other object or even a pet. Only requirement is that it is right there when you need it and it can listen (not talk!).

The reason for the name of this method is that the book _[Pragmatic Programmer](https://amzn.to/3a7WJZN)_ (must read for any serious developer) introduced this method and in the book a programmer would carry around a rubber duck, hence the name of the term.
The inherent flaw in Customer Centric vision
Tags: culture, leadership, career, discuss
Published: 2021-01-28 20:21:49

Various companies hold a very *Customer Centric* vision.

> Our customers buy and use our services. No other constituency (e.g., investors, employees, partners) rates above the customer in importance. The success of our business is fully dependent on satisfying our customers, and our business would not exist without them.

<br>The approach behind this vision is as mentioned, *"our business would not exist without them[customers]"*. But if you look closely, do you see that bug? Do you see the inherent flaw in this approach? Well, I do.<br>

<br>You see its very good and appreciative that customers are kept high in the eyes of the organisation, making sure that they are served with the best possible quality that can be provided. It not only makes the customers feel good, but drives a good business for the company as well. Customers are more likely to stick to the organisation than move away to competitors.

<br>But doing this, the company silently pushes *"when it comes to customer vs employees, we may not hesitate in cutting you[employee] loose"*. Now this is not such a good thing, is it? I believe, this kind of contradicts the good leadership principles that should be embedded and enforced in the culture. Your organisation is as good as the people working for you. If you do not keep them as happy, then the employee does not put his heart in his work, thereby degrading the quality of work and product being delivered to the customers.

<br>Yes, customers are extremely important in a customer driven business, but so are employees. It is good that **customer importance** is being pushed while communicating organisation values, but it is also important to show the employees that they are important and valuable assets to the company.


What do you think about this?
Deploy SPA with Azure Blob Storage in minutes.
Published: 2021-01-28 20:14:13

You can easily deploy any static website with Azure Blob Storage.
First, you need Azure account with the storage account and find the <b>Static website</b> setting.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/5xm4342jxcem8mxyxc8i.png)

Click Save and *$web* container will be created.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/qhfigfqi9bu2gxary95b.png)

Then upload everything in *$web* container that you need for your SPA. The final URL you can find in the same setting <b>Static website</b> category.

And finally the last step is to create custom domain name for containers.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/cq1owqdg0qrd4688jcdu.png)

And everything is ready! Now your SPA is deployed and you will pay only for the storage and requests. More information about the cost you can find <a href="https://azure.microsoft.com/en-us/pricing/details/storage/blobs/">here</a>

References:
https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website-how-to?tabs=azure-portal
A quick glance at PostgreSQL (Node.js driver) - better than doc-type NoSQL, and too good to be true
Tags: docker, postgres, node, fulltextsearch
Published: 2021-01-28 20:12:26

And I like it more than not like it, that is it like NoSQL in "strict mode".

- `TEXT[]` with `JSONB` index or `GIN` index is supported.
- `ARRAY`, `JSONB` and `TIMESTAMP`, with automatic conversion **to-and-back JavaScript Objects, Array, Object and Date**.
- Unsurprisingly, `ALTER TABLE ADD COLUMN` is supported.

## No, I don't use standard Postgres this time

I don't know if MongoDB supports extensions, but Postgres does, and even third parties. 

I am talking about non-English full text search, in Chinese and Japanese; using <https://pgroonga.github.io>

### `Dockerfile`

```Dockerfile
FROM postgres:13
RUN apt-get update
RUN apt-get install -y wget

WORKDIR /app
RUN wget https://packages.groonga.org/debian/groonga-apt-source-latest-buster.deb
RUN apt-get install -y ./groonga-apt-source-latest-buster.deb
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
RUN apt-get update
RUN apt-get install -y postgresql-13-pgdg-pgroonga
RUN apt-get install -y groonga-tokenizer-mecab
```

### `docker-compose.yml`

```yaml
version: "3"
services:
  db:
    build: ./packages/db
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgress
      - POSTGRES_DB=postgres
    ports:
      - "5433:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes: 
  pgdata:
```

### So, what did I really install on my machine?

I did install Postgres on my machine to test it first; but I don't think it is really needed.

More importantly,

- pgAdmin

## I still want better full-text search.

What about

- Column specific search, if wanted
- Non-text search query string

I am positive I can create my own query language, [as I have done it before](https://github.com/patarapolw/qsearch); but what matters more here is performance... as I am privileged
enough to have today.

And, yeah, MongoDB does have full-text index; but it is very primitive to me.
AzureFunBytes Episode 28 - COMBOS with AKS and @HashiCorp Consul!
Tags: azure, kubernetes, beginners, cloudnative
Published: 2021-01-28 20:08:47

We're back again on AzureFunBytes with another COMBO session.  COMBOs are live sessions with vendors who provide products that help you get the most out of  your Azure experience.  This time we'll dive into the [HashiCorp Consul](https://www.hashicorp.com/products/consul) product along with some help.  [Zach Deptawa](https://twitter.com/zdeptawa) from the Azure Advocates team helps me along with HashiCorp DevRels [Taylor Dolezal](https://twitter.com/onlydole) and [Kerim Satirli](https://twitter.com/ksatirli)!

We cover some of the new features you can find in [Terraform 0.14]( http://hashi.co/whats-new-with-terraform-014).  We look into  [Consul](https://www.consul.io/) and how [Vault](https://www.vaultproject.io/) can help secure your secrets and more.

{% youtube ttOS2HfgZEw %}

Thanks to the HashiCorp team, you can demo the same code by going to [this repository!](https://github.com/onlydole/azure-fun-bytes)  

We discuss how to configure and integrate Consul into our Azure applications!  We answer questions, do some demos, and learn together!

AzureFunBytes! - Byte-sized content with a live Twitch show!

Learn about Azure fundamentals with me!

Live stream is available on Twitch at 2 pm EDT Thursday. You can also find the recordings there as well.

https://twitch.tv/azurefunbytes
https://twitter.com/azurefunbytes
https://aka.ms/jaygordononyoutube

Join me, ask questions, and learn about Azure!


Useful Docs:

[Microsoft Learn: Azure Fundamentals](https://cda.ms/1jV) 
[Microsoft Azure: $200 Free Credit](https://cda.ms/1tj) 
[HashiCorp Consul Service on Azure](https://www.hashicorp.com/products/consul/service-on-azure) 
[Azure Kubernetes Service (AKS)](https://azure.microsoft.com/services/kubernetes-service/?WT.mc_id=devops-12370-jagord) 
[Deploy HashiCorp Consul Service on Azure](https://learn.hashicorp.com/tutorials/consul/hashicorp-consul-service-deploy) 
GitHub: [Deploying Consul on Azure (Single and Multi-Region)](https://github.com/hashicorp/azure-consul)
[Service Principals for Azure Active Directory](https://docs.microsoft.com/azure/active-directory/develop/app-objects-and-service-principals?WT.mc_id=devops-12370-jagord)
Open Source : Docker Hub CLI Tool
Tags: news, devops, linux, beginners
Published: 2021-01-28 20:05:18

Open Sourcing the Docker Hub CLI Tool:

December 2020,  a new experimental Docker Hub CLI tool, also known as hub-tool was released. This new CLI lets you explore, inspect and manage your content on Docker Hub as well as work with your teams and manage your account.

 This tool is already available with Docker Desktop, so if you are a Windows or Mac user you can try it now. For Linux users docker announced that they open sourced the hub-tool code, and it can be found at https://github.com/docker/hub-tool. You can download the binary directly on the release page.

Please read full article here:
https://www.docker.com/blog/open-sourcing-the-docker-hub-cli-tool/

(Currently, I can't reply on dev.to . The reason moderators believe my one of reply to post was not in context with title of article. And believe it was as readers liked my reply 😂. 

The reason I am not asking them to allow to lift ban as I believe it was one-sided decision taken by dev.to and after all portal belongs to them 😭. 

So if you reply on this post... I won't be able to reply. Keep one side communication here if you like with me. However you can reply to others.)
Decorating Command Handler with Decorator Pattern in .NET 5
Tags: dotnet, csharp, designpatterns
Published: 2021-01-28 19:54:08

Hey.

This is my first video, where I describe and show how you can use decorator pattern with .NET 5 default dependency injection to extend the class behaviour, without modifying it. This is one of possible Open/Close principle implementations.

Hope you enjoy!

https://www.youtube.com/watch?v=R_-3VwMH5Jg&t=5s
What domain do I use when setting up OAuth for Zendesk?
Tags: webdev, oauth, api, zendesk
Published: 2021-01-28 19:53:08

If you're building a Zendesk integration that allows your users to connect their Zendesk accounts to your app, you have probably noticed that all the [Zendesk documentation for OAuth](https://support.zendesk.com//hc/en-us/articles/203663836) use the domain `{subdomain}.zendesk.com`, and you might be asking: whose subdomain is this? Is it the app developer's or the user's?

> The subdomain you use when developing OAuth apps for Zendesk is the *user*'s subdomain

The answer is that it's the *user*'s subdomain, not you, the developer's subdomain. If you're building the integration only for internal use, that's the same subdomain so it won't matter, but if you intend for other Zendesk users to make use of it (what Zendesk calls a "global OAuth client"), you'll need to use their subdomain.

### Why do I need the user's subdomain?

Why use the customer's subdomain? [Zendesk's docs](https://developer.zendesk.com/apps/docs/publish/global_oauth_intro) sum it up:

> Zendesk maintains separate logins for each Zendesk account or subdomain. When a customer signs in, they're signing into a specific Zendesk subdomain which carries over to OAuth. When a Zendesk account owner uses OAuth to authorize your service, they're authorizing the service for their subdomain.

The documentation can be a little bit confusing at times, using "your" subdomain at times when they mean "the user's" subdomain. Just know whereever you see `{subdomain}`, they're referring to your user, not you.

### How to get the user's subdomain

Now you might be wondering if Zendesk provides a sort of global subdomain that you can use where Zendesk either determines through cookies, or collects directly from the user, their Zendesk subdomain. The unfortunate answer here is no: you're left to your own devices to determine the user's subdomain *before* sending them through the OAuth flow. You'll also need to hang on to this subdomain: it's used not only for the initial authorization request, but also the token request and API calls afterward.

You'll probably want to model your own subdomain collection after Zendesk's login process pictured here:

![Zendesk's default subdomain collection screen](https://dev-to-uploads.s3.amazonaws.com/i/gi6c1l8ogvobah1v29o0.png)

### Conclusion

So if you're building a Zendesk integration, don't forget to build in subdomain collection to make sure you're making requests to the right domain. 

Of course, if you don't want to bother building an entire subdomain collection flow, you can use [Xkit's Zendesk Connector](https://app.xkit.co/connectors/new/zendesk). It has built-in subdomain collection through a popup window and it will surface the subdomain to you with every access token it provides.

![Xkit's Zendesk subdomain collection popup](https://dev-to-uploads.s3.amazonaws.com/i/zxaenyecq2kyi1okyfxm.png)

With one API call you'll get everything you'll need to get access to your user's Zendesk account. And you can [get started in 30 minutes, for free](https://xkit.co/pricing).
Why Naming Conventions are Important (and useful) in Software Development.
Tags: softwaredesign, development, cleancode, conventions
Published: 2021-01-28 19:57:03

---
title: Why Naming Conventions are Important (and useful) in Software Development.
published: true
date: 2021-01-28 19:44:47 UTC
tags: SoftwareDesign,Development,CleanCode,Conventions
canonical_url: https://eamonkeane.dev/why-naming-conventions-are-important-and-useful-in-software-development/
---

 ![Why Naming Conventions are Important (and useful) in Software Development.](https://images.unsplash.com/photo-1461958508236-9a742665a0d5?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MXwxMTc3M3wwfDF8c2VhcmNofDJ8fHdvcmRzfGVufDB8fHw&ixlib=rb-1.2.1&q=80&w=2000)

We've all heard of programming conventions. Every language seems to have it's own take on how you _should_ name something; should you use camelCase or PascalCase for the class name? How about a method? In C# you'd use PascalCase for method names whereas in Python uses lowercase\_seperated\_by\_underscores also known as snake\_case.

![Why Naming Conventions are Important (and useful) in Software Development.](https://eamonkeane.dev/content/images/2021/01/method-naming-convention-for-c--programming-language-example.png)<figcaption>C# naming convention for methods using PascalCase.</figcaption>

![Why Naming Conventions are Important (and useful) in Software Development.](https://eamonkeane.dev/content/images/2021/01/method-naming-convention-for-python-programming-language-example.png)<figcaption>Python naming convention for methods using snake_case.</figcaption>

Naming conventions and indeed all style related conventions in programming are important.

**bUt WhY?**

<!--kg-card-begin: markdown-->
1. It improves readability.
2. It speeds up development.
3. Onboarding new team members is faster.
<!--kg-card-end: markdown-->

**Readability**  
When scanning through a file it makes it easy to pick out the various members by just looking at _how_ they're named. This shouldn't be underestimated as we read code way more than we write code.

**Velocity**  
Naming a variable, method, field? Having naming conventions mean you don't even have to think about these things. You know what it should look like, you just have to come up with a good name. Good naming is another article in itself!

**Onboarding new team members**  
You're joining a team that uses a new language? Cool, go and see how they name their members and then just follow suit. Obviously, if they're doing something crazy with their naming then you might want to discuss it without blindly following along.
Live 2D
Tags: live2d, gamedev, animation, vtuber
Published: 2021-01-28 19:44:38

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/zhf2hecin29dpz21nrzt.gif)

A few weeks ago I began to learn how to use Live 2D. Mostly by watching the official Live 2D cubism tutorials on Youtube and branched out into watching some other tutorials of folks creating vtubers. 

My goal was to try and make a simple vtuber. 

I took some of my artwork from my online visual novel project, The Shrine, and colorized it and also chopped it into layers that I could animate in Live 2D. The above is the result. I'm using Live 2D's animation timeline for this GIF. 

I later got Facerig off Steam and managed to make the character work using my own eye and mouth movements. 

There's much to be done... such as head tilting, side-to-side motion. There's a lot I can improve with how the hair moves and the eye blinks work. I'll have to take a second iteration down the line. 

The reason I became interested in this is because I help make visual novels at work, and The Shrine, is my online visual novel I wrote in Javascript/HTML5. Even if I don't want to make a vtuber out of my original character, I could create animation data and import the Live2D data for use on the web which is pretty neat. 

That though is another project in itself -- importing Live2D's JS library and integrating it with my homegrown visual novel script parsing engine. 

Honestly though sounds like a lot of work right now. I'll keep thinking about it and illustrating the webcomic for the time being.

If you have any questions about Live2D (mostly about how to make assets) feel free to ping me.
MacOS Automator action to move screenshots
Published: 2021-01-28 19:36:17

By default, MacOS' shortcut to save a screenshot to a file, such as Shift-Command-4 will save the screenshot image to the Desktop. If you're like me and prefer little to nothing on your desktop (it's hidden by various applications most of the time anyway), then this post describes an [Automator](https://support.apple.com/guide/automator/welcome/mac) folder action to automatically move screenshots into your Pictures folder or any folder of your choosing.

When you open Automator or create a new file, choose the Folder Action type, shown here:

![Choose folder action type](https://dev-to-uploads.s3.amazonaws.com/i/n8m1lpvhvyf5fxyqhz7k.png)

Choose the Desktop folder in the action's configuration at the top and add the steps shown here. _You can change the destination folder in the last step to any location you prefer._

![Tasks](https://dev-to-uploads.s3.amazonaws.com/i/a3535sjt0lkzihc06okd.png)

Now, when a screenshot image file is saved to the Desktop, a few moments later the folder action will automatically move it.
Is NoOps mostly fluff?
Tags: discuss
Published: 2021-01-28 19:33:20

So I've been hearing a decent amount about "NoOps" and how it's supposed to revolutionize infrastructure management by removing the need for a DevOps team. However, when I look into it, it seems that a lot of it is just DevOps but where infrastructure isn't managed in code anymore. And when I've asked about what's supposed to happen when say, a server goes down, the answer seems to be that the dev team is notified about it and goes in and corrects the issue...which just seems like DevOps. 

So I'm curious, has anyone heard of NoOps? Did it seem like mostly hype or something that has actual merit?