teleren/devto huggingface dataset:
Announcing our new Gatsby Workshop
Published: 2019-11-12 12:38:22

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/3w2rngepw42s5ecuhyxt.png)

We’re pumped to announce our [first Gatsby workshop on the 12th of May](https://www.react-europe.org/#slot-2147-workshop-build-great-websites-and-apps-using-gatsby-js-with-the-team-from-gatsby) at [ReactEurope](https://www.react-europe.org/) that will be given by the good folks from the Gatsby team itself including Madalyn Parker and Josh Comeau.

Gatsby is a very versatile tool that allows you to do many things with it to display and manage your content but also build actual dynamic apps so we are very excited about the outline we came up with that will enable you to build powerful apps with it:

- Getting started with Gatsby
- CSS and layout
- Querying data with GraphQL, working with CMS’ like Contentful or Wordpress
- Routing, creating pages programmatically
- Accessibility
- Animations and interactions
- Authentication, having protected routes
- Leveraging the Gatsby Ecosystem with starters, plugins, and themes
- Deployment and profiling

We’ll refine the outline with time but this should give you a good idea already.

Looking forward to seeing you all there.

We also have [5 other workshops](https://www.react-europe.org/#schedule) on React.js, Next.js, Forms, GraphQL, React Native and more.

Cheers and see you soon,

-the ReactEurope team

PS: if you would like to sponsor the conference, get in touch with us at reacteurope@eventlama.com
Techpeople, do you ever take notes?
Tags: discuss
Published: 2019-11-12 12:32:55

<h4>Hello, users!</h4>

All my life when learning something new I've been **taking notes** (*doesn't matter if paper or pc*), specially when learning new technologies I use to write my own guides for myself to know exactly what steps I take and why.

I'm even concerned when I'm mentoring someone new and they **don't take any notes** or write anything, they just *copy* or *do*.

I've been told many times by different people that "*they don't take notes*", but I think noone can just learn by *hearing/seeing*, even by just *doing*. I think no matter at what point, you **MUST** take notes or write your own outline or w/e. 

*(This also applies for programming comments, of course).*

What do you think?
Ethical Editor / IDE ?
Tags: emacs, vscode, sublimetext, discuss
Published: 2019-11-12 12:31:09

---
title: Ethical Editor / IDE ?
published: true
description: Are there any actively developed ethical editors out IDEs?
tags: Emacs, VS Code, Sublime Text, discuss
---

I'm a long-time Emacs user. Generally, I'm happy with it. I enjoy using it and I'm productive.

However, I've recently noticed that some (many?) of the Emacs maintainers and users hold opposite political views. For example, they seem to want the community to be mostly men, while I want to be part of a more diverse community.

It's true that the community around an editor is less important than the functionality and usefulness of the editor. However, I'd like to be proud of my editor's community, not just tolerant of it.

This isn't just a rant against the Emacs community. Both Atom and VS Code are owned by Microsift. Even though they're both open source like Emacs, their connection and ultimate control by Microsoft makes them problematic to me, as a GNU/Linux user. Sublime Text is not open source and Vim has a similar community problem as Emacs.

My question ... what are the editors that are developed and maintained by more left-leaning communities who value open source/Free Software and inclusion?
Friday Night Deploys: Episode 2 - Work Life Batman
Tags: podcast, webdev, jokes
Published: 2019-11-12 12:21:25

Last friday, Keith and I spoke about work/life balance as developers. Keith seems to think Batman is a solid example of work/life balance and I continue to find "Caped Crusader" an amusing and dumb nickname for the batman.

We also talk about: Being unfunny! Fire extinguishers! The Microsoft Zune! Phil's Snobby Frame Rate Preferences! Hype-Driven Development! The end of the Matrix where Neo jumps through Agent Smith! The Simpsons questionable animation practices! Cannibalizing Senior Developers! Billionaires! Having an existential crisis!

## Listen to The Full Episode!
{% spotify spotify:episode:25Vn7cU2CWsSwMgA0XOqV1%}

**We're also on...**

**Apple:** https://apple.co/34M87WC
**Google:** https://bit.ly/2X3fgzd

## Get In Touch With Us!
If you would like to share your work/life balance related material whether it be advice, stories, struggles, or better super hero comparisons, @ or DM us on our [twitter](https://twitter.com/DevPlebs?s=20).

You can also ask questions or give us some feedback about the show!
CSS for all
Tags: css, properties, values, https
Published: 2019-11-12 17:12:48

---
title: CSS for all
published: true
date: 2019-11-12 12:04:23 UTC
tags: css,properties,values,https
canonical_url: https://adactio.com/journal/16095
---
*This was originally posted <a href="https://adactio.com/journal/16095" rel="canonical">on my own site</a>, which is awesome.*

There have been some great new CSS properties and values shipping in Firefox recently.

[Miriam Suzanne](https://www.miriamsuzanne.com/) explains the difference between the newer `revert` value and the older `inherit`, `initial` and `unset` values in [a video on the Mozilla Developer channel](https://www.youtube.com/watch?v=GAjoVRmipcU):

```
display: revert;

```

In [another video](https://www.youtube.com/watch?v=sZS-7RX_c7g), Jen describes some new properties for styling underlines (on links, for example):

```
text-decoration-thickness: 0.1em;
text-decoration-color: red;
text-underline-offset: 0.2em;
text-decoration-skip-ink: auto;

```

Great stuff!

As far as I can tell, all of these properties are available to you regardless of whether you are serving your website over HTTP or over HTTPS. That may seem like an odd observation to make, but I invite you to cast your mind back to January 2018. That’s when the Mozilla Security Blog posted about moving to [secure contexts everywhere](https://blog.mozilla.org/security/2018/01/15/secure-contexts-everywhere/):

> Effective immediately, all new features that are web-exposed are to be restricted to secure contexts. Web-exposed means that the feature is observable from a web page or server, whether through JavaScript, CSS, HTTP, media formats, etc. A feature can be anything from an extension of an existing IDL-defined object, **a new CSS property** , a new HTTP response header, to bigger features such as WebVR.

(emphasis mine)

![Buzz Lightyear says to Woody: Secure contexts …secure contexts everywhere!](https://i.imgflip.com/3g2rhu.jpg)

Despite that “effective immediately” clause, I haven’t observed any of the new CSS properties added in the past two years to be restricted to HTTPS. I’m glad about that. [I wrote about this announcement at the time](https://adactio.com/journal/13498):

> I am in total agreement that we should be encouraging everyone to switch to HTTPS. But requiring HTTPS in order to use CSS? The ends don’t justify the means.
> 
> If there were valid security reasons for making HTTPS a requirement, I would be all for enforcing this. But these are two totally separate areas. Enforcing HTTPS by withholding CSS support is no different to enforcing AMP by withholding search placement.

There’s no official word from the Mozilla Security Blog about any change to their two-year old “effective immediately” policy, and [the original blog post](https://blog.mozilla.org/security/2018/01/15/secure-contexts-everywhere/) hasn’t been updated. Maybe we can all just pretend it never happened.

*This was originally posted <a href="https://adactio.com/journal/16095" rel="canonical">on my own site</a>, which is awesome.*
Lookin for a DevRel Job or Internship.
Tags: devrel
Published: 2019-11-12 11:51:11

Hey Guys,
I am Nilesh Shinde from Mumbai,India.
I am about to complete my Masters degree(Master in Computer application).
I have a strong experience in tech communities across mumbai.
I am an Machine learning enthusiast.
Now I am looking for a job in Devloper Relations teams or Community teams.
I am okay with the location anywhere in the world.
Please help me with the oppoertunities if any.
Thanks.
JavaScript Closures
Tags: javascript, computerscience, tutorial
Published: 2019-11-12 11:49:09

A closure is a function that can access the scope of its parent function even when the parent scope has been closed. The scope of a function is closed when the function has finished when the function has been completed. Closures can be explained through an example of creating a simple counter.

The below code shows a function that increments a 'count' variable. However, the problem with this code is that the 'count' variable is within the global scope, which means other code can access the 'count' variable and change it. This reduces the integrity of the 'count' variable, as we cannot be sure where exactly the 'count' variable has been changed within the code.

```javascript
var count = 0;

function add(){
	count += 1;
}
```

We can solve the scope problem by putting the count variable within the function. This means that the 'count' variable will not be available outside of the function. However, this causes another problem, the count variable will always result in the value 1 as it is being set to 0 every time the function is called. 

```javascript
function add(){
	var count = 0;
	count += 1;
	return count;
}
```

So we need a way to only initialise the count variable once but also keep the accessibility of the 'count' variable private. This is where closures come in. A closure in JavaScript can be described as a self-invoking function that also returns a function. The code below shows a closure and can be quite complicated to understand all at once. To begin with, we have a variable called 'add', the other side of the equals sign is a function wrapped in parenthesis. This function is invoked, or called, as there are two parentheses at the end of the code. This is the same as calling any other function, we pass the parameters within parenthesis after the function. This is a self-invoking function. Inside this function, a 'count' variable is set to 0, and then a function is returned. The variable we started with, called 'add', is assigned the value of the returned function, the child function. The child function is still able to access the scope of the parent function, even though the scope is closed. 

This means, the 'count' variable is not accessible outside of the function, and the value of the count will increment every time the 'add' function is called.

```javascript
var add = (function () {
  var count = 0;
  return function () {
  	count += 1; 
  	return count
  }
})();

add();
```

This article was originally posted on my website: https://acroynon.com/
10 Github commands for those who have only heard of it
Tags: github, vcs
Published: 2019-11-12 11:18:47

I've 9 minutes to finish writing this article. So I will keep this as short as I possibly can.

So Github is a Version Control System built on top of Git.
It's a tool extensively used in software development. What it does is it helps you in keeping track of your development work (files, folders, codes etc) in versions.
Oh you are working to release version 72 of your app ? What if you want that very specific code (that you stole) from version 18 that you wrote a few years back? A pain in the ass really!
But With git you can find that code very easily.

The commands:

git init
Just initialize a new git repository. It tells you are ready to make some commitments with the code!

git add .
Add all files in the current working directory to the staging directory. Meaning, files are now 'almost' ready to be committed.

git commit -m "Some message here."
This does the commit. So whatever changes you made is now stamped with a SHA1 key, and you can come to this point later in future if you wish to. So congrats.

git remote add origin [https://github.com/BijayKumarPun/testtest.git]
Connect your current local git repository to a remote repository. Meaning, you can upload your files there, and later retrieve them from somewhere else. 

git push  origin master
Now push all the local commits to the remote repo!

git stash save
Save the changes, like when you are changing branches.

git stash pop
Pop all the saved content.

git checkout -b [some branch name]
Create a new branch and move there.

git remote -v
v is for Verbose. It lists the remote origin URL where you can both fetch and push.




That's all for the day.

[I took 3 minutes extra for writing this.]



Going home now!
3 commands for later.
It's ok not to know everything
Tags: beginners, career, motivation
Published: 2019-11-12 11:35:01

When I became a "professional" software developer around six years ago, I thought quite a lot about my job title.

I wanted to be "Fullstack" and, at some point, I wanted that "Senior" prefix. 

Since then, I've had lots of job titles including Senior Fullstack Software Engineer.

If you're reading this and you're not applying for the job you *really* want because you don't think you're ready - it's ok to not know everything. 

I consider myself a backend engineer that can do frontend when needed, and I've been employed several times as a "Fullstack" engineer. If you asked me to make a simple CSS animation or a responsive HTML webpage - I'd be going straight to Google, because I simply don't know how to do frontend from memory. 

But, do you know why these companies employed me anyway? Because they don't care if I can write a website, from scratch, from memory, or if I do it by searching the web - because it's ok not to know everything. 


I learn quickly and I can pick things up, that I've never done before, with minimal assistance. I wasn't given the job because I can retain loads of information, truth be told my memory is shit, but because they can give me a job and trust that I'll do it. 

I'll say it one more time:

> It's ok not to know everything

If you're competent enough to get through a task using Google, you're ready to start applying.
The Magic Formula for Productivity
Tags: productivity, webdev, design
Published: 2019-11-12 11:30:37

If you’re a designer or a developer for a consulting agency, you will know the pain of constantly context switching between projects, clients and admin. Work is being done, but amidst all the emails, Slack messages and Quip conversations it’s difficult to focus and be productive.

Our small web development agency felt this pain and decided to do something about it. As a team, we used [Trello](https://trello.com/) for organising and collaborating on all kinds of projects. But Trello didn’t provide a way for us to communicate with people outside of our team.

So we used a stand-alone helpdesk solution to receive and reply to client emails. This meant that team members were continuously context switching, making mistakes and wasting time and money. Why couldn’t we keep everything in Trello — a powerful tool we loved using?

Thus, **[SendBoard](https://trello.com/power-ups/5d4c0b80452f202510cce4cc/sendboard)** was born. 🎉

![SendBoard Features](https://blog.trello.com/hubfs/SendBoard-Wash-and-Cut.gif)

Our mission is to help teams get more done by allowing them to send, receive and collaborate on email without having to leave Trello — everything is in one place.

Teams get to leverage the power of Trello (Power-Ups, automation & collaboration) and clients get faster turn-around times. It’s a win-win 🏆

Since our team has been using SendBoard, our average response times have dropped substantially and the amount of work (cards in the Trello world) we get through has increased drastically.

So there is a magic formula for productivity, at least for small teams…

**[Trello](https://trello.com/) + [SendBoard](https://trello.com/power-ups/5d4c0b80452f202510cce4cc/sendboard)**

Give it a try and let us know how it works for you and your team! 🙌
On a related note, SendBoard went live on [Product Hunt](https://www.producthunt.com/) today, so please show us some love to help us spread the word. ❤️👍

https://www.producthunt.com/posts/sendboard-for-trello

Thanks for reading - have a super day!

![Obligatory thanks dog](https://i.giphy.com/media/o22WjU9bIgFWM/200.webp)
Weekly Cloud-Native Digest #20
Tags: cloud, news
Published: 2019-11-12 11:13:31

---
title: Weekly Cloud-Native Digest #20
published: true
date: 2019-11-12 11:03:21 UTC
tags:  cloud,news
canonical_url: https://educosta.dev/blog/weekly-cloud-native-digest-20/
cover_image: https://thepracticaldev.s3.amazonaws.com/i/0ov6xhnzgga51ad9pkz7.jpg
---

Save  time and stay up-to-date with what’s going on in the Cloud-Native  ecosystem. Every week a collection of useful links with videos, articles  and more. 

- [Design Techniques for Building Stateful, Cloud-Native Applications - Part 1: Resiliency, Recoverability, and Scalability](https://www.lightbend.com/blog/design-techniques-stateful-cloud-native-applications-resilience-recoverability-scalability) 									
- [Nice video with a demonstration on how #EventStorm technique works.](https://www.youtube.com/watch?v=xIB_VQVVWKk&list=PLxpwvsFSXIjD_RVJ1g_URXyQCNpbGtD6N&index=7&t=450s) 									
- [FREE  EBook - Kubernetes Patterns Reusable Elements for Design Cloud-Native  Applications. Wrote @bibryam  and @ro14nd  with compliments of @RedHat](https://www.redhat.com/en/engage/kubernetes-containers-architecture-s-201910240918?sc_cid=701f2000000u6QkAAI) 									
- [The actor model in 10 minutes](https://www.brianstorti.com/the-actor-model/) 									
- [Multiple  Layers of Caching - This article covers some of the basics of caching,  yet focus on the importance of having multiple layers of caching in a  system. By @JaredRirie](https://backendology.com/2018/08/27/multiple-layers-caching/) 									
- [The  Microservices Workflow Automation Cheat Sheet - Does your company want  to go for a #microservice architecture and apply #workflow automation ?  Check some some guidance on the core #architecture decisions you have to  make. By @berndruecker](https://zeebe.io/blog/2018/12/microservices-workflow-automation-cheatsheet/) 									
- [Simple Event Driven Microservices with Spring Cloud Stream](https://spring.io/blog/2019/10/15/simple-event-driven-microservices-with-spring-cloud-stream) 									
- [We built network isolation for 1,500 services to make Monzo more secure](https://monzo.com/blog/we-built-network-isolation-for-1-500-services) 									
- [Introducing  Event Storming - #EventStorming is a workshop format for quickly  exploring complex business domains. It is powerful, engaging, efficient,  easy and fun. Read this introduction and know more. by @ziobrando 											](http://ziobrando.blogspot.com/2013/11/introducing-event-storming.html) 									
- [Design Techniques for Building Stateful, #CloudNative Applications -  #Resiliency, #Recoverability, and #Scalability By @mckeeh3](https://www.lightbend.com/blog/design-techniques-stateful-cloud-native-applications-resilience-recoverability-scalability) 	

The post [Weekly Cloud-Native Digest #20](https://educosta.dev/blog/weekly-cloud-native-digest-20/) appeared first on [Be Cloud Native](https://educosta.dev).
How to handle: API-first development; data encryption; & pre-production complexity
Tags: todayilearned, database, devops
Published: 2019-11-12 11:00:21

*TL;DR style notes from articles I read today.*

### [API first development approach and how it can help your business](http://bit.ly/2CAJlNg)

- An API-first approach helps dev teams reduce the cost of developing apps, increase speed-to-market & ensure good developer experiences. 
- It involves developing APIs that are consistent and reusable for all platforms, devices and operating systems.
- For other developers, APIs are the first & most important way to access & interact with your product. APIs need to be designed with these users in mind.
- APIs should be a specification in the implementation, instead of just being a thin layer on top of your application.
- User-friendly API documentation is of utmost importance.

*[Full post here](http://bit.ly/2CAJlNg), 6 mins read*

---

### [The hardest thing about data encryption](http://bit.ly/2O1UcVN)

- The biggest challenge with data encryption is key management i.e - how do you safely store secret keys for either symmetric or asymmetric cryptosystem.
- Symmetric encryption uses a secret key to encrypt data and uses the same key to decrypt this data when needed. Asymmetric encryption works with a multi-key system. 
- Handle key management by sticking to best practices & outsourcing the underlying cryptography as much as possible.
- Amazon KMS is a good option if you need to safely encrypt data symmetrically. For asymmetric encryption, it is best to consult a cryptography expert.

*[Full post here](http://bit.ly/2O1UcVN), 6 mins read*

---

### [The question of multiple databases and pre-production complexity](http://bit.ly/33G0Kjt)

- With DevOps, do not get lost trying to create the perfect solution. Just focus on making continuous, small improvements. 
- When working with long pipelines break up changes into smaller chunks that are easier to develop, test, and deploy.
- Deal with the complexity of distributed applications with a purpose-built tool
- Specialized automation and insight tooling are helpful for detecting differences between staging and prod before they impact your uptime.
- If minimizing the total number of environments is not realistically possible, look at specialized tooling to automate database management.

*[Full post here](http://bit.ly/33G0Kjt), 5 mins read*

---

*[Get these notes directly to your inbox every weekday by signing up for my newsletter, in.snippets(), here.](https://mailchi.mp/appsmith/insnippets?utm_source=devto&utm_medium=post08&utm_campaign=is)*
Palindrome - Challenge 2 (Basic)
Tags: javascript, beginners, career
Published: 2019-11-12 10:35:11

Okay here's the second post to my guide to understanding the basics of  Data Structures and Algorithms with JavaScript series by solving common challenges. On this one, we look at: The infamous <b>Palindrome Challenge</b>.

<b>Question:</b>
Find out if the given string is a palindrome. A palindrome is a string or word that can be read the same in normal and reverse. For example "Madam I'm Adam", "Race Car".

<b>Let's Tackle</b>
<li>We will create a function ``isPalindrome`` that takes in a string as an argument and returns true if the string is a Palindrome and false if it's not.</li>

```javascript
function isPalindrome(string){
  
}
```

<li>Next, we will convert the string into a lower case to make it easier for comparison</li>

```javascript
function isPalindrome(string){
  string = string.toLowerCase()
}
```

<li>We will define a variable and set it to a list of alphabetical letters from a - z. Now, this will help us filter through our string to remove any special characters like comas. We want to only compare letters and not characters. Note, we don't want to use regex</li>

```javascript
function isPalindrome(string){
  string = string.toLowerCase()
  let validCharacters = 'abcdefghijklmnopqrstuvwxyz'.split('')
}
```

<li>Next, we define a variable and set it to an empty array. We then push the valid characters from our strings to the array.</li>

```javascript
function isPalindrome(string){
  string = string.toLowerCase()
  charactersArray = string.split('')
  let validCharacters = 'abcdefghijklmnopqrstuvwxyz'.split('')
  
  let lettersArr = []
  
  charactersArray.forEach(char => {
     if(validCharacters.indexOf(char) > -1) lettersArr.push(char)
  })
}
```

<li>Next, we will join the ``lettersArr`` into a string and compare it to its reverse and return true if they match or false if they don't.</li>

```javascript
function isPalindrome(string){
  string = string.toLowerCase()
  charactersArray = string.split('')
  let validCharacters = 'abcdefghijklmnopqrstuvwxyz'.split('')
  
  let lettersArr = []
  
  charactersArray.forEach(char => {
     if(validCharacters.indexOf(char) > -1) lettersArr.push(char)
  })

  if(lettersArr.join('') === lettersArr.reverse().join('')) return true;
     else return false;
}
```

And, there we have it. Simple isn't it!

See you at the next one!

Happy Hacking!!