teleren/devto huggingface dataset:
CAMPUS BUIDLer - Day 2
Tags: binance, crypto, beginners, blockchain
Published: 2021-11-03 00:34:50

Continuing the series for

## Day 2

`As I'm beginner in writing blogs. Please be kind. Thanks!`

I would like to quote the main subject areas and then quote the sub-headings of my Learnings. So, let's start!

-----------------------

# Topic 1: What is Bitcoin? How does it work?

Bitcoin is a digital form of cash. But unlike the fiat currencies you’re used to, there is no central bank controlling it. Instead, the financial system in Bitcoin is run by thousands of computers distributed around the world. Anyone can participate in the ecosystem by downloading open-source software.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n308qoqvfrvfn6vmp0e2.png)

-----------------------

# Topic 2: Difference between Fiat Currency and Cryptocurrency?

- A cryptocurrency (or crypto) is a form of digital cash that enables individuals to transmit value in a digital setting.
- A good cryptocurrency will be decentralized.
- There isn’t a central bank or subset of users that can change the rules without reaching consensus.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lu3bnr7mqvbjzxuhzbty.png)

-----------------------

# Topic 3: What is the difference between Bitcoin and Cryptocurrency ?

- **Blockchain:** Records information (data blocks).
- **Cryptocurrency:** Popular & well-known methodology to use blockchain. In turn, Bitcoin is the 1st & most popular example of a cryptocurrency.

#### 1.) Differences between Blockchain & Cryptocurrency.

⋅⋅⋅

#### 2.) All about Ledgers:

> ##### Who has the authority to it.
##### How do ledge work in a system.

⋅⋅⋅

#### 3.) Who are the network nodes & what are their responsibilities.

⋅⋅⋅

#### 4.) How did the name "_Blockchain_" originate from.

⋅⋅⋅

#### 5.) How easily are the blocks available to public.

⋅⋅⋅

#### 6.) What special privileges do miners possess.

⋅⋅⋅

#### 7.) How Cryptocurrencies eliminate the intermediator bodies.
> ##### Why are Cryptocurrencies Limited in supply.

⋅⋅⋅

#### 8.) Not all cryptocurrencies have their own blockchain.
> ##### Some were created on top of an _already existing blockchain_, while others were created completely from _scratch_.
> ##### Understood that Bitcoin too has a limited supply stock, after which no more could be mined as well.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r8sa8o1mrg2l3oqvawjd.png)
The best tools money can buy
Tags: tools, softwaredevelopment, efficiency, systemsthinking
Published: 2021-11-15 11:56:00

---
title: The best tools money can buy
published: true
date: 2021-11-03 00:00:00 UTC
tags: tools,softwaredevelopment,efficiency,systemsthinking
canonical_url: https://jhall.io/archive/2021/11/03/the-best-tools-money-can-buy/
---

Once upon a time, the computer was the most expensive component of any IT system. At that time, it often made sense to spend a few extra hours optimizing a for loop, or rewriting a function to use a few bytes less memory, to avoid the need for a major hardware upgrade. Those days are long gone.

Today, in most IT systems, human engineers are the most expensive component. These days it doesn’t make sense to optimize a function to use a few less bytes of memory, except in the rarest of performance-critical pieces of code.

This means it’s in the best interest of the IT system as a whole to optimize for the engineer’s time, since that time is expensive.

But how do you know which tools optimize for an engineer’s time? Should you give your engineer a RAM upgrade? A more efficient IDE? A different operating system?

Fortunately, this doesn’t need to be complicated. Here I offer two simple rules that you can employ immediately, to boost your engineering productivity:

1. Buy the best tools money can buy.

2. Buy the tools each engineer is most comfortable with.

* * *
_If you enjoyed this message, [subscribe](https://jhall.io/daily) to <u>The Daily Commit</u> to get future messages to your inbox._
Extend Microsoft Viva Connections with your existing web development skills
Tags: javascript, webdev, programming, microsoft365
Published: 2021-11-03 09:19:27

---
title: Extend Microsoft Viva Connections with your existing web development skills
published: true
date: 03/11/2021
tags: javascript,webdev,programming,microsoft365
canonical_url: https://blog.mastykarz.nl/learn-extend-viva-connections/
---

![Microsoft Viva Connections](https://blog.mastykarz.nl/assets/images/2021/11/banner-viva-connections.png)

[Microsoft Viva Connections](https://developer.microsoft.com/viva) is the gateway to the modern employee experience. As more and more organizations started working remotely/hybrid, they realized they need a better way to engage with their employees and keep them up-to-date. This is where Viva Connections comes in. It's a turn-key solution that's a part of Microsoft 365 and which aggregates information from different sources and puts them in front of employees on desktop and mobile.

Many organizations are very interested in Microsoft Viva and Viva Connections. Not only do they want to start using it, but also extend it to their needs to make it even more relevant to their employees. And as a developer that's a great opportunity that you should take advantage of.

You can use your existing web development skills and extend Viva Connections with custom functionality. Using Microsoft Graph you can bring data and insights from Microsoft 365 to people's fingertips. And by connecting to your custom APIs, you can bring in your line of business data as well!

To show you what's possible and how to get started, Microsoft created a [learning path on MS Learn](https://aka.ms/extend-viva-connections). It takes you step by step through the basics of Viva Connections, how you can extend it and how to get stared. If you like web development, this is perfect opportunity to do more with your skills. You can try it all for free with a [Microsoft 365 developer tenant](https://developer.microsoft.com/microsoft-365/dev-program).
The Joy Of Empowering Others
Tags: beginners, codenewbie, career
Published: 2021-11-02 23:59:22

I’ve had the privilege of speaking at a few events this year. I linked a couple of them below.

I don’t think I can ever tire of encouraging those who wish to break into software development! Several people who’ve listened to these talks have reached out, sharing how they related to my journey, and the resulting motivation they received. When it comes to tech: the more, the merrier !

🎙 ThunderNerds - [Empowering Women In Tech](https://www.thundernerds.io/2021/05/empowering-women-in-tech-with-arit-amana/)

🎙 CodeNewbie - [Breaking Into Tech As A Mother](https://www.codenewbie.org/podcast/what-it-s-like-to-break-into-tech-as-a-mother/)

{% twitter 1407043780813938693 %}
{% twitter 1403064905771614208 %}

---

### It's A Wrap!

Whew! We wrapped Cycle 2 of my nonprofit [Our Time For Tech](https://ourtimefortech.org) up at the end of May. I am so proud of our 7 fellows and their accomplishments!

Our CodeCollab fellows completed the MVP of their ShiftWork app, and [demoed it for the tech community](https://us02web.zoom.us/rec/share/2iQMA6qbRTKoXz25phHeiXYOlq30OpVYAVSnquhBR4V_GC2ryUdkSNEOVIEpg1xq.S2rtluXeMkBwfpMS) (password: XJE*PnA9).

Our BetterPrep fellows landed their first-ever dev jobs 🎉 or built skills and fortitude to better weather their job searches.

I’m currently retro-ing the Cycle 2 experience and using what I learn to plan for 2022. If you know anyone that may be interested in what we offer, invite them to join the Arit Developer newsletter so they can stay updated on future programs.

---

> To enjoy content like this in your inbox, subscribe to the **Arit Developer** newsletter [HERE](https://news.arit.dev).
No Try/Catch! A JavaScript library to make your asynchronous code cleaner!
Tags: javascript, webdev, node, typescript
Published: 2021-11-02 22:14:07

If you write apps using Node.JS, you've probably ended up in then-catch hell.

This code below works, but when you have to do large operations that require you to chain many promises together, it can get super repetitive and hard to read and maintain.

```js
//then-catch hell
somePromise(arg1, arg2, arg3)
 .then((result) => {
   anotherPromise(arg1, arg2, arg3)
     .then((anotherResult) => {
       andAnotherPromise(arg1, arg2, arg3)
         .then((andAnotherResult) => {})
         .catch((error) => {
           console.error(error);
         });
     })
     .catch((error) => {
       console.error(error);
     });
 })
 .catch((error) => {
   console.error(error);
 });

```

This is where async/await can come in handy, but if you've ever used the await keyword on a promise, you probably needed to catch errors and ended up with some ugly code like this.

```js
//try-catch tower of terror
let result;

try {
 result = await somePromise(arg1, arg2, arg3);
} catch (error) {
 return console.error(error);
}

let anotherResult;

try {
 anotherResult = await anotherPromise(arg1, arg2, arg3);
} catch (error) {
 return console.error(error);
}
```

Of course, you could always wrap all your operations in a single try-catch (example below), but you would lose granularity unless you are using your own libraries and writing unique error codes for everything that could go wrong (not fun). The lack of granularity in the example below would make it very hard to debug if something goes wrong.

```js
try {
 let result = await somePromise(arg1, arg2, arg3);
 let anotherResult = await anotherPromise(arg1, arg2, arg3);
} catch (error) {
 return console.error(error);
}
```

Now, I present to you no-try-catch! The solution to the hell you have been going through. 

All you need to do is wrap your promises and check if the result has an error property. It also supports TypeScript, so the data property will be typed with the promise result.

```js
import wrapper from "no-try-catch";
//or const wrapper = require("no-try-catch");

let result = wrapper(somePromise, [arg1, arg2, arg3]); //returns {error: Error, data: null} or {error: null, data: RESULT_FROM_PROMISE}

if (result.error) return console.error(result.error);

console.log(result.data);
```

You can install the package from NPM or review the source code on Github.

https://www.npmjs.com/package/no-try-catch
https://github.com/grangus/no-try-catch

If you find any bugs (you probably will), please open an issue on Github.
Community Summit 2021 Demos
Tags: conferences, development, flow, powerautomate
Published: 2022-06-15 17:23:12

---
title: Community Summit 2021 Demos
published: true
date: 2021-11-02 23:45:00 UTC
tags: Conferences,Development,flow,PowerAutomate
canonical_url: https://barretblake.dev/2021/11/community-summit-2021-demos/?utm_source=rss&utm_medium=rss&utm_campaign=community-summit-2021-demos
---

I delivered two presentations at Community Summit NA 2021. As part of that, I provided a number of demos. Below you can find some of the flows I used in my presentation.

The post [Community Summit 2021 Demos](https://barretblake.dev/2021/11/community-summit-2021-demos/) first appeared on [Barret Codes](https://barretblake.dev).
Tips of open source projects that use Next.js?
Tags: nextjs
Published: 2021-11-02 23:41:18

Hey there,

I've been working on a simple [npm package simplifying Next.js routing](https://github.com/sakur-github/generate-next-routes) by creating a routes.js file that reflects the file structure.

A `/pages` folder that looks like this:
```
pages
├── users
│   └── [user].js
├── about-us.js
└── index.js
```
generates a `routes.js` that looks like this
``` javascript
export const routes = {
  aboutUs: '/about-us',
  home: '/',
  users: { user: { getRoute: (user) => `/user/${user}}` } }
}
```
The problem that I have is that I'm not sure if it will work correctly for every use case, so I'd like to find some open-source projects that have large and complicated `/pages` folder that I can test on. Any tips?

Also, would this be useful for any of you?
WebGL in C# with Silk.NET: Part 1 - Emscripten interop
Tags: csharp, webassembly
Published: 2021-11-02 23:38:43

TIL: Emscripten (the LLVM to WASM compiler) is capable of picking up on OpenGL and automatically translating to WebGL. Yes, really.
I don't know why, but I know that I want to trigger this functionality from C# with Silk.NET

So first of all, what does a basic GLFW/OpenGL Emscripten compatible program look like in C++?
I've found [this gist](https://gist.github.com/ousttrue/0f3a11d5d28e365b129fe08f18f4e141) and that seems very reasonable, almost everything here can be done with Silk.NET already, just missing one thing:
`emscripten_set_main_loop` so in this blog post I just try and figure out how I can call this from C#.

It's a little complicated, but the easiest way to make this work is to just
- create a file with `#include "emscripten.h"` in it.
- Reference that file using `NativeFileReference`
- use the DllImports like normal.

This allows us to set an emscripten main loop already:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rkdr2g8qcl9bv0z03aq1.png)
 
In the next part I'll look at basic OpenGL interop. I'm very confident now this first huddle is overcome!
Free Next.js Portfolio Template
Tags: javascript, typescript, react, nextjs
Published: 2021-11-02 23:29:59

## Introduction

If you're a developer, it's important for you to have a personal portfolio website – especially when you're applying for jobs.

After a few months of development, I have finally put together a multi-themed website that will greatly increase your chances of getting attention from recruiters.

Here is a link to my portfolio - https://www.adrinlol.com/

You can download the source code for free- https://adrinlol.gumroad.com/l/cHsGL

You will find a detailed documentation inside the `README` fille on how to setup, make changes and run this website.


## About the project

This template has several API calls, that is handled by the SWR (stale-while-revalidate), the list includes: 

- [Medium's API](https://developers.medium.com/) to display my personal articles in this project.

- [Spotify's API](https://developer.spotify.com/) to show the current track as well as display my top 20 songs of the week. 

- [GitHub's API](https://docs.github.com/en/rest) to highlight most popular of my open-source projects.

## Technology stack

As for the technologies, here is a full list of libraries I'm using for this project:

- Next.js

- styled-components

- swr

- react-transition-group

## Lighthouse results

It should come with no surprise that Next.js coupled with SWR is blazing fast, and the results are no surprise.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7nc6yr60wfdcyyawmdg2.PNG)
Intro to Blockchain: Opensea
Published: 2021-11-02 23:25:37

What is Opensea? Opensea is known as the most popular secondary market for NFT's at this moment. It essentially is just a platform where a user can connect their wallet and have all the contents of that wallet be shown and be eligible for trading / selling.
Although a connected wallet is not required. Without a wallet, you can still browse the current NFT's on the market. 

The great thing about Opensea is that it gives the NFT community a shared space where everyone goes to share their NFT's. The even greater thing is that you dont have to transfer your NFT from your wallet to the platform. Opensea itself just retrieves the NFT from your wallet and persists the data that you attached to it. 

Opensea is very crucial to the community. It's the place where you would go to sell your NFT. It's the ebay to used goods, the amazon to random products, the walmart to groceries. Currently Opensea is the top dog but there have been other companies trying to take that away from them. Insert Coinbase who is trying to make their own market. Coinbase is a more reupatable brand but will the it overcome the OG?
100 días de código: 1, comenzando la planeación de lo que será. #100DaysOfCode
Tags: spanish, 100daysofcode, javascript, webdev
Published: 2021-11-02 23:17:36

¡Bienvenidos!

Despues de una semana de darle vueltas al asunto por fin pude juntar la motivación necesaria para comenzar con este reto. 

Es difícil comenzar a informarte porque genera procrastinación al no encontrar los recursos necesarios y le agradezco al blog de [Rammina](https://dev.to/rammina) ya que me resulto muy bueno el formato que ella emplea para este reto.
![planear](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w5ebhesp41sx3kvbc1lx.jpg)
Ahora es momento de comenzar a planear y para ello los pasos siguientes: 

## Comenzar es lo importante
Lo mas importante es comenzar en cualquiera de los casos, no importa si hay una manera correcta porque quien no comienza no termina.

Para este reto te recomiendo empezar a anotar las cosas que te gustaría poder hacer en este reto como crear un Bot de Discord o Hacer un calendario con o sin la necesidad de anotar las tecnologías en las que lo harás. 

En mi caso yo quiero hacer un Bot que te pueda ayudar a organizarte y una pagina para pedir pasteles personalizados.

**PD**: si no tienes ninguna idea en 15 min lee el resto de la pagina 
## ¿Cómo lo hare?
Ahora es momento de pensar en como hacerlo. 
Un buen punto de partida es reconocer tus habilidades y los lenguajes que te gustaría aprender o mejorar y listarlos, puede ser una lista de 1 ( aunque no creo que se considere una lista) o 20, lo importante es que sea algo que quieres para tu futuro. 
En mi caso yo quiero aprender Nextjs, patrones de diseño, Jest y mejorar mis habilidades en React.

Un buen comienzo es ver su roadmap de la tecnología que quieres usar para saber que pasos seguir y no te preocupes que no es necesario conocer nada ya que a eso dedicaras los días siguientes, por ahora solo anota su nombre. 

![Felicidades](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inldro3148g1cghzprpf.jpg)

Y ahora **¡ya esta!** y te preguntaras ¿para que anote las ideas? Pues al aprender un idioma tendrás que practicar y para ello están esas ideas que escribiste. Intenta unirlas con eso que quieres aprender y si no anotaste ninguna no te preocupes puedes buscar algunas en las siguientes paginas:
- [Cada vez que produces un todolist una puppy muere](https://www.freecodecamp.org/news/every-time-you-build-a-to-do-list-app-a-puppy-dies-505b54637a5d/)
- [10 ideas para comenzar a desarrollar](https://medium.com/@dtkatz/10-react-starter-project-ideas-to-get-you-coding-5b35782e1831)
- [Proyectos para practicar](https://daveceddia.com/react-practice-projects/) (no necesitas hacerlos en React)

PD2: tu puedes, sonríe y animo!
PD3: si tienes alguna duda házmela saber en los comentarios.
Google cloud build webhooks on specific commit SHA.
Tags: googlecloud
Published: 2021-11-02 23:03:06

The gcloud build has webhook triggers that allow you to trigger the build using a simple http api.
How to create such a trigger can be found [here](https://cloud.google.com/build/docs/automating-builds/create-webhook-triggers)

The disadvantage for me was that the web trigger cannot be applied to a specific commit, but only to a branch such as master,
moreover the branch name is fixed. 

Today I found an interesting way to trigger a build using a webhook trigger for any commit.

Briefly, I create a normal push branch trigger using a branch name that can't exist. Then I create a webhook trigger which
using the command `gcloud alpha builds triggers run --sha={COMMIT_SHA}` to run the first trigger with the `commitSha` of specific commit.

Now the pictures.

### This is push branch trigger.

![push trigger](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pabqrf6x3wwbs5lrh5he.png)
 

### This is the webhook trigger.

![webhook trigger](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s18en4k2chltrlh4v4i3.png)

with following substitutions

![substitutions](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dnc4k4v3rot5vn20b6to.png)
  
and following inline source

```yaml
steps:
  - name: 'google/cloud-sdk'
    args:
      - '-c'
      - |
        set -eou pipefail
        shopt -s inherit_errexit

        if [[ "${COMMIT_SHA}" ]]; then
          echo "HERE ${COMMIT_SHA}"
          gcloud alpha builds triggers run ${_TRIGGER_NAME} --sha ${COMMIT_SHA}
        else
          echo "MASTER"
          gcloud alpha builds triggers run ${_TRIGGER_NAME} --branch=master
        fi
    id: aggregator-custom-build
    waitFor:
      - '-'
    entrypoint: bash
tags:
  - webhook-trigger
```

### Finally

To invoke webhook trigger you need just.

```bash
    curl -X POST -H "application/json" \
    "https://cloudbuild.googleapis.com/v1/projects/${PROJECT}/triggers/webhook-invoke-trigger:webhook?key=${API_KEY}" \
    -d '{"COMMIT_SHA": "${COMMIT_SHA}", "TRIGGER_NAME": "webhook-invoke-agg-custom-update"}'
```

That allows me to run specific build steps like periodic data updates using "sha fixed" scripts.
Lagoon and the CNCF - Getting Started
Tags: opensource, sandbox, cncf, community
Published: 2021-11-02 22:44:26

There is a process to getting a project accepted as a CNCF project. The first step is the CNCF sandbox. Projects which are accepted are then incubated, and then eventually graduate. Lagoon is currently at the beginning of the process, waiting to be accepted as a sandbox project. You can [read more about the sandbox here](https://github.com/cncf/toc/blob/main/process/sandbox.md). 

Before we officially submitted our project via their form, we did an optional first step that can give you a bit of a boost, by attending a meeting of the App Delivery Technical Advisory Group, and giving a quick presentation on Lagoon, which went well and made us feel really positive about submitting it. This presentation was back in April. 

We also had to make sure we had our ducks in a row before officially submitting our project - marketing, social media, and website, as well as our GitHub organization. You might have noticed that we’ve recently done some work to move Lagoon away from amazee.io branding - that’s been very purposeful. In order to submit Lagoon, we had to make it its own fully stand-alone product, separate from amazee.io in all of its branding. This required some re-organization of things behind the scenes, as well as moving around repositories and GitHub organizations, but everything is coming together now! 

When we felt ready, and had worked on all of the questions, we took the plunge and submitted the form - and now, we wait! The TOC (Technical Oversight Committee) meets every two months and reviews as many applications as they can get to at each meeting. Their next meeting will be in a few weeks, so we’re hoping to hear some good news! It’s also possible that we won’t be accepted at this time, and they’ll give us some feedback and we’ll submit again - which is okay! This is the beginning of a long journey for Lagoon, and we hope you’ll come along with us.