teleren/devto huggingface dataset:
Smoothie Time
Published: 2022-04-15 14:24:01

Food cravings can be powerful. For instance, my craving for a refreshing and delicious smoothie inspired the concept behind my web application, "Too Smooth". I thought it would be great to have an app where I could search popular smoothie recipes and save my favorites to reference when I wanted to make a smoothie. 

There was definitely more that went into the idea, but due to lack of time, I will have to keep the rest as future goals. I would love to add a "build your own" page where the user can combine multiple ingredients together and add that smoothie to their favorites list.

I also had the idea to make a smoothie planner where the user can plan out the smoothies that they will make for the week and a grocery list can be generated based on the ingredients that they needed for all of their smoothies. 

The color palette that I chose for the app was inspired by colors of refreshing fruits and vegetables.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9rx0xom4fwb3dwfx543y.jpg)

Overall, I am happy with my app! I would love to keep building on it in order to make it even more useful for the user. If you would like to see my code for the app, check out my Github repo [here](https://github.com/ciaracloud/smoothieApp) !
Content creation update
Tags: discuss, writing
Published: 2022-04-15 14:19:34

Two weeks and no post, bugs me a lot to be honest, so I decided to write a short post on why and my plan for content creation in the future.

Finding time to write posts in school is quite hard (*any college or uni students should share their coping mechanism* 😄), I am currently studying Software Engineering and it's **intensive**. If you've heard of [Full Sail](https://www.fullsail.edu/), you know what I mean (*it is a one-year degree*). I am enjoying it, meeting other devs and just immersing in the tech world, it is an eye opener. On the other hand, things like side project and blogging is getting more and more tasking.

Now, what are my plans for the future of content creation? I would still write, and I would keep working on courses for [freecodecamp](https://freecodecamp.org) albeit at a slower pace. So yeah, I broke my "one-article-a-week" streak and I've been working less on my side projects, but no fear! I would still write when I can, post tips every now-and-then and shitpost on Twitter when I can 😆. 

---

That's it for this post, send your tips and wishes, I'm all ears. Read, learn, code, repeat. Play with open-source, it's a massive opportunity and **don't forget to play and take a break**. See you guys next time 👋.
Dissertation Starts Here
Tags: webdev, beginners, programming, java
Published: 2022-04-15 14:17:52

This week marks the beginning of my dissertation year of my MSc in Computer Science. It's a very unorthodox course as there are no lectures. No reading materials. Nothing, except a brief outlining the requirements for an application you need to build and the criteria it must fulfil.

Prior to starting this course I had no IT experience. So how did I get here?

10 years ago I was in the final years of my military career, it was being cut short after a freak accident seen me in hospital after taking 4 bullets across both legs. I was in such a panic about finding employment once I had been discharged that I didn't really think about what I wanted to do and put more emphasis on what I wanted to earn in the shortest amount of time possible. So I got into construction.

Impending redundancy may not have been the catalyst for appreciating what makes me tick, but being in a job I hated absolutely was. And so I decided to make a leap and get involved in something that always fascinated and intrigued me... coding.

I did a 3 month bootcamp and was then employed as a DevOps Engineer, the company had an affiliation with a University and provided a MSc course which was paid for. So I decided to make another leap again throwing myself in at the deep end.

The first two modules were tough. Now I am in the 3rd and final year. There were times I never thought I was going to make it here and with a tough module ahead, there is even more self doubt about where I'll be this time next year. 

Programming doesn't come naturally to me and since this isn't a skill I use in my full time job (just yet), I need to take the time to practise in my own time. I need to document this process as part of the module so I thought I would post here, for anyone else in the same boat who struggles with self doubt, in the event that my small wins might inspire your own.
Join us at @AzureCosmosDB Conf 2022 on April 19th - 20th
Tags: azure, cosmosdb, nosql, conference
Published: 2022-04-15 14:16:09

Azure Cosmos DB conf is coming April 19th - 20th. We've got live sessions, a great keynote with people like Scott Hanselman, and tons of on-demand sessions. You can find all the details and register (free) https://aka.ms/AzureCosmosDBConf - See you there!

The event is run as three, 3-hour live streams in Americas, APAC and EMEA, each with its own unique content, with a slate of on-demand sessions as well.

{% youtube rklmZFp02OE %}

Visit [Azure Cosmos DB Conf](https://aka.ms/AzureCosmosDBConf) to see our agenda and download an .ics save the date for your calendar.

Some of the key features of this event include:

- Three time zones (Americas, APAC, & EMEA)

- Unique content for each stream

- Straight to on-demand content launched during live event

- .ics save the date available based on your time zone

Are you using Azure Cosmos DB? What are your favorite features? Share them in the comments below!
Pinia to replace VueX as Vue Store
Tags: career, vue, webdev, javascript
Published: 2022-04-15 14:11:05


## Pro

- supports both vue2 and 3
- abandon `Mutation`, only `state`, `getter` and `action`, simplify state management 
- no more nested structure, fits composition api style better 
- supports TypeScript
- better code splitting 

## Basic Usage 

here lets create a project using `vite`: 

```bash
npm init vite@latest
```

install pinia

```bash
npm i pinia
```

the entry `main.ts` file would be: 


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650027442986/AY0_ZmEg3.png)

and then you can create a store 

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650027566014/YKsclLjFV.png)

and use it

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650027679378/M9Er2fMT7.png)

when you need to use multiple properties from `store`, to make it easier, we can destrcuture them using Pinia's `storeToRefs` 


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650027788386/uemevp4Hh.png)

### Pinia State Management

simple data modification can be done using `store.propertyName` directly 


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650027888122/jkyW_jC3J.png)

if the modification involves much data, we can use `$patch`, as instructed in its doc, it will improve speed of modification 

`$patch` accepts two args: 

- $patch + object
- $patch + function

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650028098972/bwAkI2LhQ.png)

you can also make change via `action`

- add `chagneState` method in `store.actions` 

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650028252071/qXf84IKMS.png)

- call `store.methodName` directly 

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650028345042/3lkVVTFz8.png)

### Getters inside Pinia

the `getter` inside `pinia` is almost the same to the one in `vue`

`getter`‘s value can be cached, so even if no value change, it will only be called once for multiple calls

- add `getter` method 

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650028568291/IfOoh3ljg.png)

- use it inside component 

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650028668991/j4g0BpLkS.png)

inside `getter` we can also use `this` to modify data 

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650028768551/WWTGicoVI.png)

### call one store in another

let's create a new store file called `substore.ts`

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650029085681/Z0GaZoq7U.png)

and use it in `index.ts`

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1650029063636/Mz_Z4APHV.png)

## Conclusion

well, it is the default recommended by Vue team to replace Vuex, and you can use it in production already.
Manage Kubernetes at scale in Multi Cloud
Tags: kubernetes, rancher, gardener, cloud
Published: 2022-04-15 14:06:44

In the last months, I was looking for a solution to manage Kubernetes at scale in multi-cloud.

You have many products in the market like:
1- [Gardener](https://gardener.cloud/) is open source from SAP


The gardener has three tiers of clusters:
**Garden Cluster** top-level management cluster, responsible for:
- Managing the seed clusters and through them managing the shoot clusters.
- Interacting with end-users, allowing them to deploy seeds and shoots.


**Seed Cluster**: is responsible for managing one or more shoot clusters. 

Generally, you have one seed cluster per cloud provider per region because of the latency issues.


**Shoot Cluster**: deploy your normal workloads: web servers, databases, machine learning. You will have many shoot clusters deployed all over the world across many providers and locations.



![Gardener Kubernetes Cluster Setup](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wybvut2kc3dmkrrk5jmo.png)
 
**Gardener Pros**: 
- Open source
- Support many cloud providers (AWS, Alibaba Cloud, Azure GCP, Metal-Stack, OpenStack, VMware vSphere)
- Saving cost: in the large-scale clusters, the concept of seeds will save cost. For example, if you have more than 1000 Kubernetes clusters that mean you need to have 3000 Master nodes (control plane) but if you use seed can be reduced to 1000 nodes as seeds can manage multiple shoots.    

**Gardener Cons**:
- Nightmare for setup, especially for upgrades.  
- Lack of documentation. 
- No enterprise support. 


2- [Anthos](https://cloud.google.com/anthos) from Google Cloud Platform (GCP):

**Anthos Pros**:
- Enterprise support.
- One dashboard for all Kubernetes clusters.

**Anthos Cons**:
- Not open source.
- Not cloud agnostic.
- High cost as you pay per CPU for all nodes in the cluster.


3- [Rancher](https://rancher.com/) is open source from SUSE

**Rancher Pros**:
- Open source.
- Easy to setup.
- Good documentation.
- Community and enterprise support.
- Continuous Delivery.
     
**Rancher Cons**:

- Some of the API documentation is missing, which I figured out by seeing the request from the web portal.
Epics, User Stories and Tasks
Tags: agile, projectmanagement, softwaredevelopment
Published: 2022-04-15 14:06:13

#### Follow me on Linkedin if you like provoking posts about software development. [Let's socialize!](https://www.linkedin.com/in/alexsandro-souza-dev/detail/recent-activity/shares/)

With another Sprint Planning, the problem returns: how can I help the team organise the work efficiently? Below you can find a quick guide to help create Epics, User Stories and Tasks

## Epic

An epic captures a large body of work. It is essentially a large user story that can be broken down into a number of smaller stories. It may take several sprints to complete an epic.

In practice, epics should represent features which will be delivered by an initiative

## User Story

A convenient format for expressing the desired business value. Story is a kind of work that directly affects the end-user experience

They can be written at various levels of granularity and should be easy to progressively refine.

### How to create?
User Stories employ the model: "As a (persona) I want to (do something) so that I can (make something else possible)." 

Ex: "As the birthday guy, I want to invite my friends, so we can enjoy this party together."

### Who writes user stories?
Typically initiated by the PO, further refined by the team 

When written by others, the PO is still accountable for the story.

## Tasks
Tasks are simple imperative statements that declare what must be done, and often form the component parts of user stories.

Think of a task in scrum as a business requirement that’s not user focused and no longer involves the end user.

That’s the distinction: You usually know when you’ve broken down beyond a user story to its smallest pieces when you run out of personas and are left with just business level requirements. 

### How to create?

The model for task writing is: (Action) the (Result) by/for/of/to and (Object). 

Ex: "Generate a unique identifier for a transaction" 

### Who writes Tasks?
Task is a kind of work that is purely technical, therefore tech people should write it.

## Conclusion
Not everything in your backlog has to be a user story. It can be a task too. 


Referencies:
https://www.linkedin.com/pulse/scrum-basics-whats-difference-between-user-story-task-edward-emerson/
A GitHub Whitespace Shortcut!
Tags: productivity, github
Published: 2022-04-15 13:43:19

As an engineer, I like to do things in as few steps as possible. If I can automate something, I will. However, one day I was complaining to my boss [Ross](https://www.linkedin.com/in/ross-a-martin/) about [GitHub](https://github.com/) PRs and whitespaces.

It takes me three clicks to remove the whitespace from any PR. That’s at least two clicks too many in my opinion.

![3 step process to remove whitespace](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zgu6qsvj979eapow3f5y.png)

To ease my aching hand—and erase the black mark inefficiency leaves on my soul—my boss [Ross](https://www.linkedin.com/in/ross-a-martin/) showed me this little bookmark he made:

![screenshot of bookmark in browser](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1rl7o5r9fcao6rlip4g4.png)

**Voila!** With one click, I could get rid of all the whitespace in a PR and focus on the code I actually wanted to (i.e., functionality that changed).


## How to add this shortcut

1. Create a new bookmark. You can name it `github whitespace` or whatever you like.
2. Edit your new bookmark.
3. Add the following JavaScript script which will add the remove whitespace command to your window: `javascript: (() => { window.location += '?w=1%27; })();`

![editing bookmark by adding code](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a4jyigna5ux63q5mplzg.png)

4. Save your bookmark.
5. Go to a Github PR with a ton of whitespace changes.
6. Click on your bookmark.
7. **Witness the magic!**

Inefficiency be gone!

_Brought to you by [Krys Flores](https://www.lob.com/blog/humans-of-lob-krys-flores)_
New Relic announces 20% Price Increase
Tags: devops, discuss, performance, monitoring
Published: 2022-04-15 13:39:23

Yesterday New Relic announced [adjustments to their pricing model](https://docs.newrelic.com/whats-new/2022/04/whats-new-4-14-data-updates), increasing Data Ingestion from $0.25 per gigabyte to $0.30 beginning on June 1, 2022.  That 5 cents may not sound like much, but it's a **20% increase** from the prior rate!  

For companies like mine, the increase is not miniscule.  Last month, New Relic ingested 21,680GB of data from our Cloud, costing $5,420.  Under the revised rates, that same amount of data will now cost $6,504, a monthly difference of **$1,084**.  That is not an insignificant increase during a year which is experiencing record inflation across the board.  

Prior to the announcement, our sentiment was that we were already over-paying for the value that New Relic was providing, but this rate hike is now forcing us to reconsider our relationship with the vendor.  

Are you using New Relic?  I'd love hear your thoughts on the rate change & experience with the product!
Best Web Development Tools To Use in 2022
Tags: webdev, web, developmenttrends, webtools
Published: 2022-04-15 12:25:44

Web development is developing with a rapid phase and seems unstoppable. All the major businesses are adapting this new trend to go along with the modern technology & competition. 

It can be divided into cluster of 4 groups 

**Web Design **

- Adobe XD
- Figma

**Version Control**

- Git
- Github

**Code Editors**

- Visual Studio Code
- Sublime Text

**Other Tools**

- Browser DevTools
- Node Package Manager

There are tons of tools available for web development that has made the process a lot easier and faster, These tools will scale your web development processes and make you an outstanding and high-performing web developer. [Visit us here](https://www.pinoybisnes.com/technology/top-web-development-tools-to-use-in-2022/) to know more about the latest web development trends.
Integrate Version catalog in Android
Tags: android, integrate, version, algorithms
Published: 2022-04-15 12:20:23

# Do you know what is version Catalog in [Android](https://blog.canopas.com/android-integrate-ktlint-check-with-git-ci-28d641e90545)?

A version catalog is a list of dependencies, represented as dependency coordinates, that a user can pick from when declaring dependencies in a build script. Version catalog was introduced in Gradle 7.0

## Why do we use Version catalog in Android?

Version catalog basically focuses on aim of sharing dependencies between modules. Consider a scenario when we have only single module in our app. In that case we can easily manage dependencies and its version in module level build.gradle file (as we need to update version in one module only).

Version catalog is effective way to manage our dependencies when we have multiple modules (as we need to update dependencies at one place only) and everything else will be managed by version catalog. 

You can find full version of article [on our blog website blog.canopas.com](https://blog.canopas.com/integrate-version-catalog-in-android-2f26d6fff3ea)
100 Days of Swift - Day 11
Tags: swift
Published: 2022-04-15 12:17:24

Continuation of [Hacking With Swift](https://www.hackingwithswift.com/) [100 Days of Swift](https://www.hackingwithswift.com/100)

**Day 11 - Protocols**
(Maybe just call them interfaces?)

So protocols are in swift what interfaces are in any other language, but here protocols are a bit on steroids, and here is why. You have your usual stuff around them, access modifier, define the behavior of whoever implements them, you can abstract the concrete class by using the protocol in a parameter, etc. 

What makes them powerful is the fact that they serve sort of an abstract interface when matched with Extensions, these allow you to modify data types (structs and protocols) to add a desire behavior and at the same time when paired with protocols it helps them have a default functionality, so whenever a class implements the protocol it doesn't have to build the body of all the protocol member's (so an abstract class).

Man this journey makes my brain hurts a bit.
MERN Stack Build Video-Chat-App
Tags: javascript, tutorial, webdev, programming
Published: 2022-04-15 12:10:18

This is probably the simplest solution to understanding the MERN stack alongside Socket.IO and WebRTC. 

Fork the Video-Chat App hosted on Heroku, and then the job’s done.

**Deployed: 🤯**
https://intense-eyrie-38900.herokuapp.com/dashboard

**Version Control + Documentation 🤐**
https://github.com/JavascriptDon/Video-Chat-App-

**License: 📝**
This project is under The BSD Zero Clause License (0BSD). See the LICENSE for more information.

**Contributions**
Contributions are always welcome...

🔹 Fork the repository
🔹 Improve current program by
🔹 improving functionality
🔹 adding a new feature
🔹 bug fixes
🔹 Push your work and Create a Pull Request
#mongoose #blog
Published: 2022-04-15 12:09:16

Mongoose is a Node. js-based Object Data Modelling (ODM) library for MongoDB. Currently, I am learning mongoose because I found some advantages in it. The Mongoose module is one of the most powerful external modules of NodeJS. Mongoose is used to translate the code and its representation from MongoDB to the Node.js server. Collection validation of the MongoDB database can be done easily. In mongoose, a predefined Structure can be
implemented on the collection. Constraints can be applied to documents of collections using Mongoose. Mongoose module built on the top of MongoDB driver and provides an easy abstraction of the query and defines a query. The Mongoose module provides several functions in order to manipulate the documents of the collection of the MongoDB database.
These are the reasons why I’m learning Mongoose for databases. We can use Mongoose for our team project. Because MongoDB allows us to add our team members via invitation. Which we can find in our MongoDB profile and by accepting that each team member can use the database. There are different kinds of roles.
HELP! where i practice DSA codding question in javascript language
Tags: das, codding, javascript, beginners
Published: 2022-04-15 12:00:50

hii my college placement just started and DSA is very important 
but i have only basic knowledge
please suggest my a platform where i practice dsa in javascript .... and where all the questions answer also avilable....
any platform or utube link anything u can help me 
thank u ...............
Automation — PHP Code Formatting before(pre) git commit
Tags: php, codenewbie, automation, programming
Published: 2022-04-15 11:43:30


Who cares about [code](https://blog.canopas.com/android-code-coverage-using-jacoco-6639a1fc4293) formatting and comments? Humans...

Imagine yourself fixing code style issues day after day. Wouldn't you want to do something more interesting by formatting code before committing?

Want to learn how to format code in [PHP](https://blog.canopas.com/custom-php-runtime-layer-in-aws-lambda-functions-fee0e71c7097) before committing to git repository?

Git hooks are scripts that will run when a certain event occurs in git like git push, git pull, git commit, etc…We can find git hooks at .git/hooks in a particular git repository.

Pre-commit is a git hook, that triggers custom scripts or commands during the execution of a git commit. 

Here [Automation - PHP Code Formatting before(pre) git commit](https://blog.canopas.com/automation-php-code-formatting-before-pre-git-commit-ce23c43586b0)  to check out.
Resolvendo exercícios do JSchallenger - (Javascript Basics #4)
Tags: javascript, jschallenger, series
Published: 2022-04-15 11:42:44

O que deve ser feito aqui?

- Escrever uma função que obtenha uma cadeia de caracteres (`a`) e um número (`n`) como argumentos
- Retornar o caractere `n` de `a`

Sabemos que números negativos são utilizados para referirem-se aos últimos caracteres de uma ***string***. Para identificar esse caractere no índice n, vamos fazer a seguinte operação: pegar o número total de caracteres e subtraí-lo por -1, dentro de uma notação de colchetes.

```javascript
function myFunction(a, n) {
   return a[n - 1]
}
```

### Resultados

```javascript
myFunction('abcd',1) // 'a'
myFunction('zyxbwpl',5) // 'w'
myFunction('gfedcba',3) // 'e'
```

A quem interessar possa, o ***link*** do desafio está aqui:

[Get nth character of string](https://jschallenger.com/javascript-basics/get-nth-character-string-javascript)

Gostou? Até a próxima anotação! :)
WN15: What is the best piece of content you found?
Tags: career, productivity, discuss, aws
Published: 2022-04-15 11:40:20

Another week has passed, and here we want to get the best pieces of content you found during the week!

It really can be anything:

- videos
- posts
- tweets
- books
- motivation
- etc.

Share anything that added value to your journey and could add value to other people's journey.

So, what is the best piece of content you found this week?