teleren/devto huggingface dataset:
Why we built Spike? An alternative to PagerDuty and Opsgenie you will love 💙
Tags: pagerduty, opsgenie, monitoring, phone
Published: 2020-05-07 03:38:51

First things first - we are starting to write our thoughts on Dev.to 🎉

Incident management for dev teams is a slightly confusing term. The core of the term is managing incidents properly. 

We think of incidents as an issue that will or is currently affecting your customers to use your product. We understand that _no matter the size of your business, this affects you_

##A simple overview

Before __Spike__

1. Incident occurs 
2. 😡 frustration mounts 
3. Contacts support (or you) 
4. 🤷‍♀️ they have no idea why this happened 
5. You 👩‍💻 identify there is an incident
6. Get back to support or to customer
7. Customer's wait time for resolution begins ⏳

After __Spike__

1. Incidents happen
2. We alert instantly via __phone call/sms__ 
3. You resolve them 
4. customers stay unaffected 😇

Most other players are majorly focused on Enterprises. 

When you build for enterprises your product becomes bloated with tons of features for customisations and loose ends that it becomes difficult to use if you are __not an enterprise__

Spike is built on simplicity and reliability at it's core and completely focused on SMBs. 

#Simplicity
No really, how do you focus on simplicity? 
1. Making it easy to use
2. Designed for dev teams
3. Building features that our customers will actually use

#Honesty
This is expected from every product you use but it's kinda rare. 
1. No fake promises to seal the deal
2. No charging based on number of incidents or alerts
3. No constant pings to upgrade your plan. [We only have plan](https://spike.sh/pricing)
4. Cancel your plan with a [click of a button](https://twitter.com/SpikedHQ/status/1256532677546647552)
5. Your data is yours, privacy is super important.

#Flat pricing
One plan for the entire platform with access to all features makes a lot of sens to us.

__Why?__
1. Benefit from the entire platform
2. Unlimited integrations. _Monitor for incidents across the entire platform_
3. Unlimited alerts. _Imagine not getting alerts when your customers are affected only because you need to upgrade... Yikes!!_
4. Stop guessing your bill at the end of the month

No matter the size of your business, when incidents occur they affect your customers. 

#Bootstrapped
Yup! We are bootstrapped. We have a small handful of paying customers over the past couple of months. 

_No VCs, no pressure_ translates to 👉 _focusing on customers and growing at our own pace_

More about us 👉 [🌏Spike](https://spike.sh), [Twitter](https://twitter.com/SpikedHQ)

Quick note - 
We will continue to share our experiences on tech and product as we grow Spike here. Let us know what you would like to hear.
CSS drop-shadow() Function
Tags: todayilearned
Published: 2020-05-07 03:34:54

---
title: CSS drop-shadow() Function
published: true
description: The drop-shadow function is like box-shadow, but the shadow conforms to the shape!
tags: til
---
I was working on a little animation of my logo - the can and cloud. On hover, a parade of clouds slide in front of a can - really just the same cloud in a marquee style animation that uses a `translateX()`.

Since it was floating in front of the can, it would be nice to have a little shadow to complete the illusion.

But you can't put a `box-shadow` on a SVG path.

I was sad, because I thought I was going to have to use some crazy verbose thing inside SVG.  I always prefer to control things with CSS and to keep markup semantic and sparse as possible. CSS is for presentation! I didn't wanna have to add this obscenity to the nice and tiny SVG code.

## For the love of God, don't make me code this!
```xml

<filter id="dropshadow" height="130%">
  <feGaussianBlur in="SourceAlpha" stdDeviation="3"/> <!-- stdDeviation is how much to blur -->
  <feOffset dx="2" dy="2" result="offsetblur"/> <!-- how much to offset -->
  <feComponentTransfer>
    <feFuncA type="linear" slope="0.5"/> <!-- slope is the opacity of the shadow -->
  </feComponentTransfer>
  <feMerge> 
    <feMergeNode/> <!-- this contains the offset blurred image -->
    <feMergeNode in="SourceGraphic"/> <!-- this contains the element that the filter is applied to -->
  </feMerge>
</filter>
<circle r="10" style="filter:url(#dropshadow)"/>
```

## Always read the second answer on Stack Overflow

Thank goodness I know how to scroll, and hence [discover the dear, dear CSS `drop-shadow` function](https://stackoverflow.com/questions/6088409/svg-drop-shadow-using-css3). It is actually a value of the [CSS `filter` property](https://developer.mozilla.org/en-US/docs/Web/CSS/filter), which has been [widely supported](https://caniuse.com/#feat=css-filters) for five years.

Here is how you use it.  Works just like box-shadow, except it does not support the spread value - only blur.

```css
filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, .7));
```

{% codepen https://codepen.io/tinynow/pen/mdeXKoB %}
Design and build with other developers in mind
Tags: orclapex
Published: 2020-05-07 03:34:28

> The goal is to develop an application that is self documenting because no one in the future, including you, will have access to your current mental state.

Having the opportunity to work on a system you developed years ago is a real eye opener. The key takeaway for me was that I am now a different person and what I did at the time is not obvious to me.

Reading code is the last thing most of us think about when we build. And in APEX code is often interpreted from little bits of data. How we put that data together is important. 

One of the things I like the most about APEX is the structure is familiar and consistent. I can usually open any application and find my way around. But once I encounter code blocks and complex queries, a different style of reading comes into play.

Incidental complexity is how we create messes and so the overarching message here is to minimize and document complexity. The opposite of complex is simple (not easy). This means at hand, easy to reason about, clear.

Consider, will debugging this require me to go look up a bunch of things? How many balls do I need to put into the air in order to understand what is happening right here and now as I debug or support a customer or add an enhancement?
Why use Web Components?
Published: 2020-05-07 03:19:32

Web components are a set of JavaScript APIs designed to allow the creation of reusable custom HTML tags for use in web pages and apps. Web components are designed to be used with any browser and any already existing JavaScript library/framework. This is awesome as it allows a standard way of sharing code without any compatibility issues.

Web components are designed to work on any website and help reduce redundancies that web developers might face. For example, a header might be something a company wants to use on multiple websites. Well, instead of remaking that header on each site they use web components to reuse that header on any site they would like. This saves tons of time which also means it saves tons of money. Large companies such as Xfinity and YouTube use web components to keep a consistent brand across all their sites. 

A popular web component company called Vaadin offers a headless experience through their open-source JavaScript framework. The use of their grid allows for streamlined prototyping in a fraction of the usual time. The standard design of web components allows for lots of web development processes to be streamlined which I think all businesses can benefit from.

YouTube Video: https://youtu.be/7wIytvwIysA
Consumindo a dll do Selenium WebDriver | Powershell 7
Tags: powershell, selenium, automation
Published: 2020-05-07 03:16:21

# Como utilizar uma dll .Net no PowerShell.

E ai, pessoal, beleza? Trazendo um assunto bem legal que é misturar um framework de automação __(PowerShell 7)__ e uma ferramenta __*__ que utilizaríamos para QA(Quality Assurance) __*Selenium WebDriver__ .

Se por acaso você não sabe o PowerShell foi reescrito em .Net Core, na data que escrevo este texto estamos na versão 3.1 e consequentemente o PowerShell vem evoluindo em conjunto com o .Net, atualmente estamos na versão 7.0(Pwsh), por ser escrito em .Net eu consigo importar as dlls que eu utilizaria em uma aplicação C# no PowerShell, instanciar objetos, interagir com as propriedades e os seu métodos.

Nesta demonstração utilizo o site do [DevShow podcast](https://devshow.com.br/sobre-nos/) para fazer o webscrap(extrair dados de uma página web) neste caso para pegar a uri para os downloads dos episódios disponíveis. Para você que não conhece, neste podcast falamos de inúmeros assuntos de tecnologia, fica a dica para nos acompanhar 😉 no seu agregador de podcast favorito ou utilizando o código que vou disponibilizar🐱‍💻🧠 e realizar o download dos episódios que quiser, vamos lá?

* Requisitos
    * Download do pacote nuget do Selenium(no nosso caso vou utilizar a versão Alpha05 para utilizar em conjunto do Edge Chromium base, a versão Alpha em especial é para utilizar o modo furtivo a.k.a headless 😂😂😂 ).
    * Download WebDriver compatível com a versão do seu navegador.
    * Incluir o diretório do WebDriver nas variáveis de ambiente (Você pode incluir o diretório do WebDriver no construtor do EdgeDriver assim como eu faço nessa demonstração, porem você pode tranquilamente incluir o path nas variáveis de ambiente).
 
### Estrutura de pastas

* PastadoScript
     * script.ps1
     * wishlist.txt
* selenium.webdriver.X.X.X
    * lib
        * netstandard2.0
            * WebDriver.dll
* WebDriver
    * webdriver.exe

### Código fonte
{% gist https://gist.github.com/EwertonJordao/42c81e5514d2a3a063d93fababf957c3 %}

### Resultado 

![Gif mostrando a execução do código e enfatizando o modo headless no msedge Chromium](https://dev-to-uploads.s3.amazonaws.com/i/6j94zq1jtr9417qluahr.gif)

![Imagem com o resultado dos 3 downloads no file explorer, três arquivos com tamanhos distintos vindos do site do podcast](https://dev-to-uploads.s3.amazonaws.com/i/i1939p41wxbwcq5fsy0k.png)

É isso pessoal, vimos como é simples utilizar uma dll e dar novos poderes a nossa sessão no PWSH, com pouco menos de 50 linhas de código implementamos uma solução pratica em linha de comando 😉, espero que tenham curtido o assunto, forte abraço. __E não se esqueça, PWSH7 é vida ❤.__

### Referência

[Documentação Edge(Chromium)](https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium#download-a-webdriver-language-binding)

[Documentação Selenium .Net](https://www.selenium.dev/selenium/docs/api/dotnet/)

[Exemplos Selenium](https://www.selenium.dev/documentation/en/)
39 : The Advantage of Self-taught Programming
Tags: webdev
Published: 2020-05-07 03:02:42

##**The reasons I keep trying to self-taught programming is**

1. Getting used to figure out the problems and solutions alone
2. Value what I care, for example, how I view of learning to code
3. Prioritize how my situation is, how I am, first of all 
4. Getting knowledgable of Computer Science, and Programming
5. Using Resources and create my curriculum 
6. Building my background 
7. Meditate how I think, what I want to try out
8. Alternate the basic way of learning to code 
9. Keep it simple, Being responsible is good 
10. Capable of harmonizing the reasons and logic together
[From April 30 to May 6] The things I knew and thought last week
Tags: javascript, nuxt, design
Published: 2020-05-07 02:36:32

---
title: [From April 30 to May 6] The things I knew and thought last week
published: true
description: This is my log
tags: javascript, nuxt, design
---

**[team building] Being so nice about answering a question that makes us easy to ask a question**

writing...

**[design] Do we need a template for creating CRUD API in backend and frontend?**

writing...

**[JavaScript] catch a Promise reject**

```js
try {
  await asyncFunc()
} catch (e) {
  console.error(e)
  throw new Error(e)
}
```

**[Git] commit message**

I though what commit message is best for our team. For now, this commit message is better because when we look into some problem, a commit message after the issue number makes us quickly understand what we did in the commit.

**commit message**
```
solve my-repo/my-project#1 <message what you solved in this commit>
```

**[Nuxt] I red Nuxt code inside**

Our team has been using [Nuxt](https://github.com/nuxt) and, I wanted to understand the inside. So I understood the outlines.

**From Nuxt entry point to responding Vue to a client**
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/rj8r6gsyajs9f7xc9a8v.jpg)
Join us live on Twitch this Thursday!
Tags: twilio, twiliohackathon
Published: 2020-05-07 02:17:49

---
title: Join us live on Twitch this Thursday!
published: true
description: Every Thursday at 4pm PST, Phil Nash and Dominik Kundel go live on twitch.tv/twilio to talk about all things coding and Twilio
tags: twilio, twiliohackathon
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/maywuvlklhdbfftqly0n.png
---

The Twilio Hackathon is over but the Twilio Office Hours on Twitch are not! 

{% link https://dev.to/devteam/announcing-the-twilio-hackathon-winners-1lp4 %}

The only thing that changes is the name. Instead of joining us for Twilio Office Hours, we welcome you to join us for **Remote Participants** every Thursday 4pm PST on [Twitch](https://twitch.tv/twilio). 

## New Title Same Show

The title change but the hosts will remain! [Phil Nash](https://dev.to/philnash) and I are excited to hang out with you between for two hours answering your questions about Twilio, coding in general and jumping into the code editor to build fun things!

## What's on this week?

For this week we will look into the winners of the hackathon and also cover some of the fun hacks that were submitted but didn't make it into the top 14 submissions. 

We'll also dive into using [Cloudflare workers](https://workers.cloudflare.com/) to host single page applications on [Twilio Functions](https://www.twilio.com/functions).

Other than that we welcome you to join us and help us decide what we talk about 😊 or maybe drop by and show us your awesome projects!

## When is this happening?

The next stream is on:
- Thursday May 7, 2020 at 4pm PST
- Thursday May 7, 2020 at 7pm EST
- Friday May 8, 2020 at 9am AEST

Those are all the same times but Phil is in Australia and therefore a day ahead 😊

We can't wait for you to join us at [twitch.tv/twilio](https://twitch.tv/twilio)
My notes from Aaron Patterson's RailsConf 2020 keynote
Tags: ruby, rails, activerecord
Published: 2020-05-07 02:04:17

---
title: My notes from Aaron Patterson's RailsConf 2020 keynote
published: true
description: "I will talk about a variety of things related to puns, Rails, and puns on Rails" -Aaron
tags: Ruby, Rails, ActiveRecord
---

Aaron's talk was very Aaron: 20 minutes of jokes, 40 minutes of brain bending Rails performance show-and-tell. His goal: to teach you how to profile your Rails app. If you haven't watched his keynote yet, here's the gist:

https://www.joshuawood.net/notes/2020-railsconf-aaron-patterson-keynote

A few takeaways:
- Not all code is equal
- Similar behaviors should have similar performance
- **Poor performance is a bug**

Miss Aaron's talk? In THIS economy?

👌
Le 'ou' booléen aux formules MassImpact de DemandTools
Tags: salesforce, tutorial, french
Published: 2020-05-07 22:52:48

---
title: "Le 'ou' booléen aux formules MassImpact de DemandTools"
published: true
date: 2020-05-07 02:00:00 UTC
tags: salesforce,tutorial,french
canonical_url: https://katiekodes.com/demandtools-formule-ou/
---

[Sur le Reddit de Salesforce](https://reddit.com/r/salesforce/comments/gfdyki/need_to_create_an_ifor_statement_in_mass_impact/), on a demandé comment combiner des conditions avec une logique de «&nbsp;[ou](https://fr.wikipedia.org/wiki/Alg%C3%A8bre_de_Boole_(logique)#Disjonction)&nbsp;» dans une formule du logiciel [DemandTools](https://www.validity.com/demandtools/).

## Le problème

L'OP désirait une formule de la structure ci-dessous :

```
IF(
	OR(ThisCondition,ThatCondition)
	,"ValeurSiVrai"
	,"ValeurSiFaux"
)
```

L'OP est arrivé(e) à ce formule-ci :

```
if_StringReturn(
	{owner.profileid}="aaaaaaaaaaaa"
	,"ValeurSiVrai"
	,"ValeurSiFaux"
)
```

## Efforts ratés

Je ne suis pas arrivée a faire accepter ce code-ci :

```
if_StringReturn(
	{owner.profileid}="aaaaaaaaaaaa" || {owner.profileid}="bbbbbbbbbbbb"
	,"ValeurSiVrai"
	,"ValeurSiFaux"
)
```

Ni celui-ci _(parfois, on peut traiter des valeurs booléens comme des 0 et des 1)_ :

```
if_StringReturn(
    (
        {owner.profileid}="aaaaaaaaaaaa"
        +
        {owner.profileid}="bbbbbbbbbbbb"
    ) > 0
    ,"ValeurSiVrai"
    ,"ValeurSiFaux"
)
```

## Le code qui marche

**Enfin** j'ai trouvé du code qui me semble marcher :

```
if_StringReturn(
    (
        Int(
            if_NumberReturn(
                {owner.profileid}="aaaaaaaaaaaa"
                , 1
                , 0
            )
        )
        +
        Int(
            if_NumberReturn(
                {owner.profileid}="bbbbbbbbbbbb"
                , 1
                , 0
            )
        )
    ) > 0
    ,"ValeurSiVrai"
    ,"ValeurSiFaux"
)
```

Comme l'éditeur des champs de formules dans Salesforce, DemandTools ne semble pas s'inquiéter de vos espaces supplémentaires, alors utilisez librement des espaces et de nouveaux lignes pour pouvoir lire votre formule.
Day 132 : Go
Tags: hiphop, code, coding, lifelongdev
Published: 2020-05-07 01:13:48

_liner notes_:
- Professional : Got to have a meeting with the team I've been working with on a demo for them. They wanted to see how I used the APIs to make the demo work, so I walked them through the code. They liked what I did and suggested some things that haven't been put into the documentation yet. Looking forward to trying it out. I came across a StackOverflow question about our APIs. I've never posted to StackOverflow before, normally just checked the site to see if they had any answers to questions I had. haha So today I signed up and replied to the person's question. We'll see if that helped. Also, did a review and merged a pull request. I haven't been getting GitHub notifications because they have been going to an email I'm not using for that, so I switched it to my work email. For the rest of the day, we had a run through of the Vonage Developer Day online conference schedule. You can check it out and register for FREE at https://developer.nexmo.com/day .

- Personal : Worked on finishing up the demo feature and went over some Japanese before going to bed.

![View of Rio de Janeiro, Brazil from above as the sun sets](https://dev-to-uploads.s3.amazonaws.com/i/ly7dbteqc7cb6at58bqs.png)

Planning to go to bed early. Got some early meetings and I want to get up to finish my slides so I can do my run through later in the day.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube LO2RPDZkY88 %}
Aaron Patterson's keynote was fantastic
Tags: ruby, rails, railsconf
Published: 2020-05-07 00:37:14

I have always found Aaron Patterson to be hilarious even when bordering on longwinded. I think his opening keynote for RailsConf 2020.2 Couch Edition was a splendid example of his humor and his technical skill.  It's mind boggling, and truly inspiring, to see how Aaron takes a simple "life hack" and turns it into a refactoring of Rails.  Also, I'm happy to see that I'm not the only one who procrastinates by finding random projects to needlessly work on.  

If you haven't had a chance to watch it yet, whether your a Rails dev or not, I highly recommend it!

[RailsConf 2020.2 Couch Edition -- opening keynote](https://railsconf.com/2020/video/aaron-patterson-aaron-patterson-s-variety-show)
Whats your story as a developer /programmer? , i'm getting less motivated
Tags: discuss, productivity
Published: 2020-05-07 00:36:58

I was a full stack programmer,  I stopped for at least 5 years now I'm back to dev , training hard to become a front end developer but its tiring I'm getting less motivated and tired again , each time I get errors it gets me depressed,  what's your story , what gets you motivated,  what keeps you going , how fo you keep up , I really wanna know, might help me
debugging Rails code without a debugger
Tags: ruby, beginners, rails
Published: 2020-05-07 00:10:57

That feeling figuring out a bug.. like... you f'ing ROCKSTAR! An ocean of people harping out - "WE'RE NOT WORTHY!"

![Debugger god](https://media.giphy.com/media/QX6ruFElzFdeIfblrg/giphy.gif)

Fun fact about bugs - an **actual bug** is the reason why we coin computer errors a "bug". One day during WW2, a moth crashed into the Harvard Mark 2 (a computer). The circuit boards were huge.. weighing in 25 short tons. That's 5,0000lbs. yikes.

![Harvard Mark](https://thedayintech.files.wordpress.com/2013/09/harvard-mark-1-action.jpg)

Anyways, no need to explain my debugging methods. I use all of [Aaron Patterson's](https://github.com/tenderlove) tricks. 

He unofficially owns the "Ruby Debugger Manifesto without a Debugger". He also owns the grumpiest cat in the world.

https://tenderlovemaking.com/2016/02/05/i-am-a-puts-debuggerer.html

![Aaron's cat](https://assets.fireside.fm/file/fireside-images/podcasts/images/2/2abc9bc8-b92b-42cb-9d8b-160a10489653/episodes/f/ff8c265a-6bc7-4376-a4c2-4daae515ce6f/cover_medium.jpg?v=1)

Enjoy!
How to import a gpg key on zypper (openSUSE)
Published: 2020-05-21 09:20:51

---
title: How to import a gpg key on zypper (openSUSE)
published: true
date: 2020-05-07 00:00:00 UTC
tags: 
canonical_url: https://foursixnine.io/blog/linux/tech/2020/05/07/How-to-import-a-gpg-key-on-zypper-(openSUSE).html
---

For some odd reason, I couldn’t find quickly (2 mins in the manpage and some others on DuckDuckGo) a way to import aGPG key.

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

Just because one of the repos gives this ugly message:

```
Repository vscode does not define additional 'gpgkey=' URLs.
Warning: File 'repomd.xml' from repository 'vscode' is signed with an unknown key 'EB3E94ADBE1229CF'.

    Note: Signing data enables the recipient to verify that no modifications occurred after the data
    were signed. Accepting data with no, wrong or unknown signature can lead to a corrupted system
    and in extreme cases even to a system compromise.

    Note: File 'repomd.xml' is the repositories master index file. It ensures the integrity of the
    whole repo.

    Warning: We can't verify that no one meddled with this file, so it might not be trustworthy
    anymore! You should not continue unless you know it's safe.

```

I know you can use `zypper ar --gpg-auto-import-keys`, but I didn’t do it when I added it (and I’m too lazy to remove the repo and add it again, just to see if it works)

```
rpm --import https://packages.microsoft.com/keys/microsoft.asc
zypper ref

```
git rebase, 😎 --> 😱
Tags: tutorial, beginners, git, rebase
Published: 2020-05-06 23:55:17

---
title: git rebase, 😎 --> 😱
published: true
description: When a git rebase was not intended.
tags: tutorial, beginner, git, rebase
cover_image: https://images.pexels.com/photos/3760778/pexels-photo-3760778.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940
---


You keyed in `git rebase` , and pressed <kbd>Enter</kbd> like a 😎.

Then everything looks ...🔥... not exactly the same as you expected it.
🍒 you realised that you didn't `push` ⛅ any of your recent work and you're at a point of no return!  💨 

# <center>😮</center>
# <center>😨</center>
# <center>😱</center>
# <center>😰</center>
# <center>😩</center>
# <center>🙈</center>
# <center>PANIC</center>
<hr>

# <center>💡</center>
# <center>Here's a solution</center>
> Use `git reflog` - Manage reflog information.

1. In the terminal, type in `git reflog`.
You'll see a list of all recent commits.
![](https://i.imgur.com/MpzWP4J.png)

2. Pick the one which you worked last.
In my case, commit 29b5617 was the one I needed to go back to.
`git reset --hard 29b5617`
![](https://i.imgur.com/5Af6gP4.png)
Alternatively, `git reset --hard HEAD@{17}` would have worked exactly the same.

<hr>

### <center>Let the rest know how you've survived an unwanted `git rebase` by leaving a comment.</center>