teleren/devto huggingface dataset:
Ask DEV: LightWeight APM for Kubernetes using OpenTelemetry?
Tags: discuss, sre, devops, kubernetes
Published: 2020-04-02 06:52:48

After going through monitoring and tracing solutions in Prometheus, DataDog, NewRelic, and other players like LightStep, HoneyComb, Instana, etc, I still don't see a product that is simple and easy to use for people who don't need to do the heavyweight RCA.

DataDog still remains the only option for companies that spend in the ticket size < 2000 USD per month in APM solutions, but they seem to be very complex to me. Another option is shifting to OSS tools using Prometheus, OpenTracing, OpenTelemetry. But then you need to spend a lot of time in learning PromQL, HA setup, Storage and building Grafana dashboard.

All vendors doing tracing don't seem to sample data to enable metrics collected over traces and enable RCA which come at a huge cost of storage (the pricing plan of these vendors can make a small company sweat). Sending data when my application is running fine seems to add little value to cost.

I see a product gap that tries to address the low ticket-size users (< $2000 spend per month on APM) of all APM players with below plans and is based on OSS tools like Prometheus/OpenTracing/Opentelemetry:

Plan 1 - 40% of the cost by other vendors (only Metrics) - Converting OpenTracing instrumentation to useful Prometheus metrics like in chapter 11 of Mastering Distributed Tracing. A rather detailed metrics from APM perspective like RPS + Latencies + Slowest queries of Redis, Mongo, MySql, etc. Also, metrics aggregated by endpoints of the application.

Plan 2 - 60% of the cost by other vendors (Metrics + sampled traces) - Tail Based Sampling based on anomaly found by gathered metrics from plan 1. This will send only the trace needed for debugging the anomaly and thus will be a huge cost saver.

Plan 3 - 100% of the cost by other vendors (100% of traces) - Full-fledged enterprise plan sending full traces for RCA and better debugging.

My current understanding is all the APM players are focussing on higher ticket customers (Plan 3) right now.

Wondering if a solution that is lightweight and cost-effective ( < 2000 USD per month) built natively for Kubernetes will be interesting to you? What are the features you would like to see there?
Introducing BugVilla my new project.
Tags: showdev, react, node
Published: 2020-04-02 06:52:06

Universal bug tracker for everyone! BugVilla allows team members to collaborate, discuss and kill bugs effectively.

{% youtube lIYgHEI1gC4%}

Live Demo: https://bugvilla.herokuapp.com/
Source Code: https://github.com/anuraghazra/BugVilla


Hope you guys liked it.
If you liked the project give it a star on Github. :D

## ✨ Features

- Issue discussions
- Markdown support
- Comment reactions
- Social interactions
- User reputation system
- \# Reference other bugs
- @ Mentions users
- Notifications
- Bug labels


## Tech Stack

| Stack    | -                                                                                                  | -                                                                                                 | -                                                                                                | -                                                                                                                | -                                                                                                   |
| -------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| FrontEnd | <p align="center">Reactjs</p> | <p align="center">Typescript</p>  | <p align="center">Redux</p>   | <p align="center">Styled Components</p> | <p align="center">Cypress</p>       |
| BackEnd  | <p align="center">Nodejs</p>   | <p align="center">MongoDB</p> | <p align="center">Heroku</p> | <p align="center">Express</p>               | <p align="center">Socket.io</p> |
Open source Quasar Scrum Template
Tags: vue, quasarframework, javascript, scrum
Published: 2020-04-02 06:46:11

Hello all, I would like to share the open-source Quasar Scrum template. You can access it using the following URL.

https://github.com/mayank091193/quasar-scrum

Also, a live preview is available at the following link.

https://quasar-scrum.netlify.com/

If this helps you in any way, you can contribute to this project by supporting me. Please check out my sponsorship page.

https://github.com/sponsors/mayank091193

Please feel free to give your feedback.
Create Facebook Feed in WordPress with Facebook API
Tags: wordpress, facebook, restapi, webdev
Published: 2020-04-02 06:26:10

With the help of Facebook rest API, we can create a Facebook feed on our website. Nowadays every business has a Facebook page. A Facebook feed on the website may help to boost business.
In this article, I’ll show how to get data from a Facebook page.

For fetching data from Facebook you need two things:
1. Page ID
2. Access Token

Get these data from [Here](https://developers.facebook.com/docs/pages/).
Facebook provides some endpoints to access data. But for authentication, you need those two pieces of information.
```php
$page_id = 'your facebook page id';
$token = 'your access token';
$url = 'https://graph.facebook.com/v4.0/' . $page_id . '/posts?' . '&access_token=' . $token;

$fb_posts = wp_remote_get( $url );
$posts = wp_remote_retrieve_body( $fb_posts );
print_r( json_decode( $posts ) );
```
Now You are getting data but only basic data. For making a feed you need more depth information right?
You can also add a query in the endpoint.

```php
$url_queries = 'fields=status_type,created_time,from,message,story,full_picture,permalink_url,attachments.limit(1){type,media_type,title,description,unshimmed_url},comments.summary(total_count),reactions.summary(total_count)';
$page_id = 'your facebook page id';
$token = 'your access token';
$url = 'https://graph.facebook.com/v4.0/' . $page_id . '/posts?' . $url_queries . '&access_token=' . $token;

$fb_posts = wp_remote_get( $url );
$posts = wp_remote_retrieve_body( $fb_posts );
print_r( json_decode( $posts ) );
```
Now with some HTML and CSS, you can make a pretty visualization of the feed.

Congratulations, you have created the feed. But if you think deeply, you will find that it’s not good for performance. Because at every page refresh it’ll fetch data from the Facebook database, which is time-consuming.

So, you need to cash your data for better performance. WordPress has a mechanism called `transient`. It is used to cash data for a certain period of time...
**[Read More from my original article](https://blog.abmsourav.com/facebook-feed-in-wordpress/)**
*________________________*

**Related Post:**
{% post https://dev.to/abmsourav/twitter-feed-on-wordpress-503j %}
What is Social CRM and tips to achieve Social CRM Success
Tags: crm, software, business
Published: 2020-04-02 05:48:55

What is Social CRM?

Before we look into the basics of Social CRM, let us first look at what the traditional CRM had to offer.


A traditional CRM essentially comprised of the following features: sales, forecast, marketing, campaign handling, and customer data support. These functions were important to move the customer from one stage to the other stage and eventually develop the potential client in a buyer. All the data related to the customer was entered in the [CRM](https://www.sagesoftware.co.in/crm/) and it would allow the company to target better and reach out to its customers better.


But what is noticed here that, the customer was never a part of the whole function and every message or communication of the company was directed towards him without his involvement.


This is where Social CRM comes into play. In Social CRM, the consumer is the focal point of the whole organization. Instead of pushing brand ideas and communication to the consumer, brands are now involving the consumer to shape their own strategies and experiences and build consumer relationships.

[Read More](https://www.sagesoftware.co.in/blogs/what-is-social-crm-and-tips-to-achieve-social-crm-success/)
Feature Testing Using Capybara
Published: 2020-04-02 05:48:33

Link: https://blog.joshsoftware.com/2017/06/29/feature-testing-using-capybara/

Feature testing is high level testing that allows us to go through our entire system, ensuring that each and every component is working perfectly fine. The test-cases written for it are termed as feature specs, which requires capybara.

In this blog, we will be focussing on writing feature specs using capybara with rspec. More specifically, we are going to look at capybara key features as well as, how capybara specs looks like.
Open Lowcode version 1 Released
Tags: java, lowcode, enterprise
Published: 2020-04-02 05:11:26

I am glad to announce that after a few years of effort, [Open Lowcode](https://github.com/openlowcode/Open-Lowcode) version 1 is released. Open Lowcode is a solution for enterprises and organisations to create good specific apps quickly and cheaply, and run it for years with rock-bottom costs.

Open Low-code magic sauce boils down to:
 * Full open-source so customers will never experience vendor lock-in
 * vertical integration providing performance, simplicity and almost no obsolescence
 * All freedom to code the complex last 10%
 * Ergonomics for real work, as close as possible from Office suites

if you want to know more about the reasonning behind this initiative, please have a look at the [Tech Blog](https://openlowcode.com/tech-blog/)

I am actively looking for contributors, and highly welcome developers of all skills, especially if you come from an enterprise background. If you are stuck a few days at home in the last weeks, why not come and hack a little bit in a friendly environment ?
Want to contribute to open source software
Tags: opensource, node, beginners, javascript
Published: 2020-04-02 04:42:54

Hi! I have just joined **Dev**. Love the community here and cannot wait to interact and learn from all of you. 
The reason I am writing this post is that I have  some free time on my hand, and I've always wanted to contribute to Open source software so if any of you open source maintainers have a beginner friendly task in any open source project hit me up! My experience is mostly in back-end development with nodeJs but I know a little about react too.
What’s your alternative solution? Challenge #8
Tags: challenges, discuss, javascript, codenewbie
Published: 2020-04-02 04:18:24

# About this series

This is series of daily JavaScript coding challenges... for both beginners and advanced users.

Each day I’m gone present you a very simple coding challenge, together with the solution. The solution is intentionally written in a didactic way using classic JavaScript syntax in order to be accessible to coders of all levels.

Solutions are designed with increase level of complexity.

## Today’s coding challenge

```
Create a function that will convert from Celsius to Fahrenheit.

```

(scroll down for solution)

## Code newbies

If you are a code newbie, try to work on the solution on your own. After you finish it, or if you need help, please consult the provided solution.

## Advanced developers

Please provide alternative solutions in the comments below. 

You can solve it using functional concepts or solve it using a different algorithm... or just solve it using the latest ES innovations.

By providing a new solution you can show code newbies different ways to solve the same problem.

## Solution

```javascript
// Solution for challenge08

function celsiusToFahrenheit(n)
{
    return n * 1.8 + 32;
}

var r = celsiusToFahrenheit(20);
println(r);

```


To quickly verify this solution, copy the code above in this coding [editor](https://codeguppy.com/code.html) and press "Run".

> Note: The solution was originally designed for [codeguppy.com](https://codeguppy.com) environment, and therefore is making use of `println`. This is the almost equivalent of `console.log` in other environments. Please feel free to use your preferred coding playground / environment when implementing your solution.
ShowDev: My new `vim` plugin for adding devicons to `fzf`
Tags: vim, fzf, showdev
Published: 2020-04-02 04:03:07

Hey dev.to! I haven't posted in awhile so it feels good to be back. This is gonna be a quicker post cause I might do a fuller blog post soon.

But I wanted to introduce my new (and first) `vim` plugin called `fzf.devicon.vim`!
For anyone who uses `fzf.vim` this plugin will be really familiar! Basically it acts as a clone of `fzf.vim` but it adds in devicons depending on the files types for each line!
It supports streaming results and should be fast enough to even the pickiest `fzf` user!

For anyone who isn't familair with `fzf.vim` it integrates the awesome fuzzy finding power of fzf into vim. I'm a huge fan of fzf in general and use it anywhere I can! Another thing I started liking recently is having the icons for each file type throughout vim, and for awhile fzf was my last hold-out with devicons. I had a hacked together solution in my `vimrc` for ahwile but finally got a full plugin extracted!

Here is a quick demo gif and you can checkout the github repo below!

![Demo GIF](https://dev-to-uploads.s3.amazonaws.com/i/4zb6tzp1hljo2wcwmwax.gif)

[fzf.devicon.vim](https://github.com/coreyja/fzf.devicon.vim)
Single Number
Tags: beginners, programming, interview, career
Published: 2020-04-02 03:34:56

Here is a simple problem dealing with arrays. 

Given a non-empty array of integers, every element appears twice except for one. Find that single one.

###Example 1:
Input: [2,2,1]
Output: 1

###Example 2:
Input: [4,1,2,1,2]
Output: 4

There are a couple of ways on how to deal with this problem the easiest approach, in my opinion, is to use a dictionary.

## Using a Dictionary: 
Dictionaries allow you to store key-value pairs allowing us to store a number and the count of times you see the number. Now there are a couple of ways to implement a dictionary if you want to create your own but here I am going to use the built-in one. Using this method allows for an O(n) BigO notation but does use memory.

{% gist https://gist.github.com/austinmsuarez/72225a9daa75f0c0e653f3bb9d6af9df %}

## 2 For Loop solution: 
One way to do it without using much extra memory is to use a double for loop to go through the array. Going through the array once you find a duplicate you can change the digit to undefined. If you pass through the list without finding a duplicate you can return it. Note this will destroy the integrity of the list as you are changing values.

{% gist https://gist.github.com/austinmsuarez/e94904de38c01b149b3babb02421b75b.js %}

There are a couple of other ways to solve this problem so put your solution down below! Thanks for reading, like and follow for more! 🙃
Use `bool` in C program
Tags: clang, c
Published: 2020-04-02 03:05:42

Usually in C we use int to represent boolean values, like:

```c
int a = 0;
```

But sometimes use `bool` to define the boolean type, and use `true` & `false` to represent the value will make our code more clear. I just found out that you can do this by including `stdbool.h` file:

```c
#include <stdio.h>
#include <stdbool.h>

int main() {
    bool rainyDay = false;
    printf("Rainy day: %d\n", rainyDay);
    return 0;
}
```

Compile and run it:
```
Rainy day: 0
```

Actually the `stdbool.h` just defined the bool using `#define`, which map the `bool` type to `_Bool`, `true` to 1 and `false` to 0. [Check the full source code here](https://clang.llvm.org/doxygen/stdbool_8h_source.html).
"The University of Barnes and Noble" : Tech Jr. Podcast
Tags: podcast, techjr, career, development
Published: 2020-04-02 06:59:28

---
title: "The University of Barnes and Noble" : Tech Jr. Podcast
published: true
date: 2020-04-02 03:00:21 UTC
tags: podcast, techjr, career, development
canonical_url: https://www.jaysonjphillips.com/blog/2020/04/the-university-of-barnes-and-noble-tech-jr-podcast/
---

The synopsis for the episode is so perfect that I'm going to share it here:  
  
"Jayson Phillips is a self-proclaimed graduate of the University of Barnes and Noble. This week we talk to Jayson about working for a bootcamp, learning to code, and dig into some fun tech like flutter, Golang, and Rust."

I had a helluva time chatting with [Lee Warrick](https://leewarrick.com/) and [Edwin Otero](https://edii698.github.io/resume/) about my journey into software development, my **_why_** for teaching, why Barnes and Noble will always have a place in my heart, and all the fun, nerdy, techie things that come up when you get 3 developers in a room.

[Take a listen](https://techjr.dev/episodes/2020/the-university-of-barnes-and-noble-with-jayson-phillips) over at _[https://techjr.dev](https://techjr.dev)_ and the dozens of other great episodes of content Lee & Edwin have cooked up over the past year!
Simple Mac Keyboard Shortcuts
Tags: beginners, productivity, codenewbie, webdev
Published: 2020-04-02 02:19:37

As you have probably heard at some point in your coding journey (thanks Marc), the faster you can make mistakes, the faster you can learn from those mistakes. To that end, I have been trying to use my mouse as little as possible lately and instead have been relying on keyboard shortcuts. It was a struggle at first to break from old habits, but the new muscle memory is finally starting to take hold. Here are some of the shortcuts that I have found most useful.

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

* Command-Tab (or Command-Shift-Tab): Toggle between apps.
* Control-Tab (or Control-Shift-Tab): Toggle between tabs in your browser.
* Option-Command-J: Open/close the DevTools (in Chrome).
* Control-Backtick (`): Jump into your console (while in DevTools or Visual Studion Code).
* Command–Left Bracket ([): Go to the previous page/folder.
* Command–Right Bracket (]): Go to the next page/folder.
* Control-Command-F: Full screen mode (or undo if already full screen).
* Command-X: Cut the selected item and copy it to the Clipboard.
* Command-C: Copy the selected item to the Clipboard. 
* Command-V: Paste the contents of the Clipboard into the current document or app. 
* Command-Z: Undo the previous command. You can then press Shift-Command-Z to Redo, reversing the undo command. 
* Command-A: Select all.
* Command-R: Refresh the page.
* Command-F: Open a Find window.
* Control-T: Open a new tab.
* Command-W: Close the front window or tab. 
* Command-H: Hide the front app.

And, of course...
* Control-Command-Q: Lock your screen. (Seriously, always lock the screen when you step away from your computer.)

These shortcuts make a good set to begin your practice. Learn them, love them, and in no time you'll forget that you paid a lot of money for a good mouse that you never use.

For a much more exhaustive list, visit https://support.apple.com/en-us/HT201236.
Docker + Jenkins: Chemistry 
Tags: aws, vpc, cloud, subnets
Published: 2020-04-02 01:38:26



### With jenkins you can use docker in two contexts.
1 - use docker container from a private repo as the jenkins node to build your code  
2 - use jenkins node to build your docker container and probably push it to your private repo

This was confusing when i started and so i want to declutter this :

Assuming 
- you have a jenkins single agent cluster with docker daemon running on that agent. 
- a private docker registry with credentials to pull and push

## use docker container from a private repo as the jenkins node to build your code  
- Install plugin **pipeline model**   
(https://jenkins.io/doc/book/pipeline/)
(https://plugins.jenkins.io/pipeline-model-definition/)

- to specify that you want Jenkins to pull the node:6.0 image from a private registry, and run the build inside it. This can pretty much be any image you like, your build steps and stages will run inside it. the registry credentials are stored in the jenkins credentials store for this purpose.


```
pipeline {

    /* start with outmost.*/
    agent any

    /* This method fetches a container defination from the registered repo and build and runs the steps inside it.*/
    stages {
        stage('Test') {
            agent {
                    docker { 
                        image 'node:7-alpine' 
                        registryUrl 'https://my-docker-virtual.artifactory.rogers.com/'
                        registryCredentialsId 'ARTIFACTORY_USER'
                        }
            }
            steps {
                sh 'node --version'
            }
        }
    }
}
```

- IMPORTANT: Inside this container, i have no context of the docker which is running on bare metal jenkins. hence i have no context of the registry . I can not write a push command in the steps as i am inside the container.
- I can also use a docker file as a agent definition instead of fetching a docker definition from registry
```
pipeline {
    agent { dockerfile true }
    stages {
        stage('Test') {
            steps {
                sh 'node --version'
                sh 'svn --version'
            }
        }
    }
}
```
- Here it is looking into the root directory for the Dockerfile which it will use as a build agent.

## use jenkins node to build your docker container and probably push it to your private repo
```
node {

    checkout scm

    docker.withRegistry('https://registry.hub.docker.com','dockerhubcredentails'){
    def myImage= docker.build("digitaldockerimages/busybox:0.0.1")

    /*push container to the registry*/
    myImage.push()
    }
}
```

Here i am using a private registry and fetching the credentials for the registry from jenkins secret storage.  

Ref:  
https://www.youtube.com/watch?v=z32yzy4TrKM  
https://jenkins.io/doc/book/pipeline/docker/#sidecar  
https://github.com/jenkinsci/pipeline-model-definition-plugin/wiki/Controlling-your-build-environment  
https://issues.jenkins-ci.org/browse/JENKINS-39684