teleren/devto huggingface dataset:
Using Google Forms As a A Data Source for NiFi Flows
Published: 2020-09-23 16:49:50

---
title: Using Google Forms As a A Data Source for NiFi Flows
published: true
date: 2020-09-23 16:12:00 UTC
tags: 
canonical_url: 
---

 **Setup a Google Developers Account**

'

[![](https://1.bp.blogspot.com/-V-r-3kVQmw0/X2S7LMVVLxI/AAAAAAAAboI/bT-1dajRLbESfDtmrK8QWDqq96YLav63gCLcBGAsYHQ/s320/googledeveloperconsoleAPIKey.png)](https://1.bp.blogspot.com/-V-r-3kVQmw0/X2S7LMVVLxI/AAAAAAAAboI/bT-1dajRLbESfDtmrK8QWDqq96YLav63gCLcBGAsYHQ/s2048/googledeveloperconsoleAPIKey.png)
  

**Use or Create an API Key For Sheets at Developer Console**

**For Your Google Sheet (If not OAuth, You Need to Make it Visible via URL)**

Or you will face PERMISSION\_DENIED

**Enable Google Sheets API**

https://console.developers.google.com/apis/api/sheets.googleapis.com/overview?project=YOURPROJECTID

**View Metrics**

https://console.developers.google.com/apis/api/sheets.googleapis.com/overview?project=YOURPROJECTISCOOL

Access The Data Via NIFI

https://sheets.googleapis.com/v4/spreadsheets/YOURGOOGLESHEET?includeGridData=true&key=YOURKEY

**References:**

https://community.cloudera.com/t5/Community-Articles/Streaming-Ingest-of-Google-Sheets-with-HDF-2-0/ta-p/247764
14 - 'If someone expresses confidence in you, believe them!' ft. Tony Amos
Tags: startup, agile, veteran, inclusion
Published: 2020-09-23 16:10:36

{% spotify spotify:episode:4Grp4KpsoUSkKXIaNN0OMO %}

Some of **my** favorite quotes from this episode:

“Close your eyes. Take a deep breathe. Let it out. 'You can do this'... but he didn't say it like that... It was a direct order” **- Tony Amos**

“Software is a reflection of the people who build it. Software is supposed to integrate with life in order to solve a problem, but if the people writing the software don’t have the life experiences … then it leaves something lacking in the software.” **- Tony Amos**

“If someone expresses confidence in you, believe them” **- Tony Amos**


**LinkedIn:** [https://www.linkedin.com/in/anthony-amos/](https://www.linkedin.com/in/anthony-amos/)

**Twitter:** [https://twitter.com/agile_anthony](https://twitter.com/agile_anthony)

**Tony’s Blog post:** [https://medium.com/@agile_anthony/memo-to-the-lone-black-programmer-e8371c12707d](https://medium.com/@agile_anthony/memo-to-the-lone-black-programmer-e8371c12707d)

**“I feel like I was accidentally hired”, Ibrahim Diallo:** [https://www.bbc.com/news/technology-53180073](https://www.bbc.com/news/technology-53180073)

**Wang 2200:** [https://en.wikipedia.org/wiki/Wang_2200](https://en.wikipedia.org/wiki/Wang_2200)

**Nasdaq Stock Wall:** [https://www.stocktrader.com/wp-content/uploads/2012/02/nasdaq-stock-wall.png](https://www.stocktrader.com/wp-content/uploads/2012/02/nasdaq-stock-wall.png)
MA 16: Philip Guo (#3) on Life After Digital Death
Published: 2020-10-01 21:09:17

---
title: MA 16: Philip Guo (#3) on Life After Digital Death
published: true
date: 2020-09-23 16:00:00 UTC
tags: 
canonical_url: https://share.transistor.fm/s/f40ec401
---

Last podcast with Philip, who just left most social media after getting tenure.

What's life after removing yourself from social media? Philip Guo joins Henry (the last in the "trilogy") to chat about LAT, life after Twitter. We discuss being irrelevant, forcing yourself to think about different things, treating a newsletter like email, restraining your growth, moving to the digital suburbs, engaging with the past, directing your attention and production, being particular and local, making it normal again to not have to create. (recorded in July) _Transcript_: [https://hopeinsource.com/digital-death](https://hopeinsource.com/digital-death).  
  
**First chat (MA 7)**: [https://hopeinsource.com/growing-old](https://hopeinsource.com/growing-old)  
**Second chat (MA 15)**: [https://hopeinsource.com/unlisting](https://hopeinsource.com/unlisting)  
**Philip** : [https://pg.ucsd.edu](https://pg.ucsd.edu/)  
**Henry** : [https://twitter.com/left\_pad](https://twitter.com/left_pad)  
  
**Headings:**

- Intro to the Trilogy
- A Movie Review By a Random Person
- Forcing Your Own Hand
- Email Is a Newsletter without an Archive
- Restrained Growth
- Convenience Over Everything
- Quitting and Twitter Brouhaha
- From City to Suburbs
- Stepping Back By Not Producing
- Conflating Consumption and Production
- Engaging with The Distant Past
- Getting the Last Word
- Showing Charity to Those Things
- Spewing Out Stuff, Undirected
- After Influence, Staying Niche?
- Generality (Mega Church) and Particularity (House Church)
- The Small Scale is the Only Scale
- It's Not Weird To Not Make Anything

**[★ Support this podcast by donating ★](https://github.com/sponsors/hzoo "★ Support this podcast by donating ★")**
I'm writing an open source sci-fi book
Tags: machinelearning, ai, scifi
Published: 2020-09-23 15:56:49

I'm releasing an open source sci fi novel. You can read it for free on [github](https://github.com/wrannaman/wrannaman). 

It's my second book, but my last one was ~8 years ago. Things have changed! 

Marketing a book is weird. It feels qualitatively different than launching a new saas project. But I'm trying a similar approach. This would be the 'open-core' approach. The book itself is (perhaps) worthless on its own without an audience. And I don't have an audience yet. So the book is "open source" as a way to get attention, and perhaps after several books it will turn into an audience. 

I'm only on day 3. Nothing has blown up on reddit or hacker news, etc.

Current stats on day 3: 

- 252 views on github
- 8 stars on github 
- 3 reads on medium 
- 5 reads on wattpad 
- 0 email signups
- 0 presales on gumroad 
- 0 presales on amazon

Running ads on fb + reddit to github
Append text in each line in a large CSV (unix style)
Tags: linux, sed, csv, file
Published: 2020-09-23 15:33:36

Say you have a 10GB csv file and you want to add a text in the end of each line.

Obviously, opening it in vim work cut it 
> oh will it? ... let me confirm ... I tried and vim crushed :( ...

"So, what do we do?" I asked my conscious self while googling and stack-overflow-ing with 10+ tabs opened.

Viola! one of my stack-overflow tab came through and the answer was [sed](https://en.wikipedia.org/wiki/Sed) - a stream editor.

```bash
sed -r 's/text_to_find/text_to_replace/' input_file > output_file
# example
sed -r 's/\r/|the_text\r/' big_file.csv > output.csv
```
Basically, what it does here is;

`-r` this option represent extended regular expression

`'s/**\r**/|**the_text\r**/'` the `\r` represent EOL, so  replace EOL with `the_text` plus EOL(so that the output won't be a single line file)

The rest i.e... input and output file is self explanatory.

~~Writing is exhausting, I'm done.~~ I have being told to be positive, so i'm scratching this and the line below.

~~Now i have to search for a cover image, smh.~~

Thanks for your one minute, hopefully I will write again.
Maximum Value PC Build for Software Engineering
Published: 2020-09-23 15:26:16

Today we will build a desktop computer from scratch with the maximum possible value for the money. I am a long time Mac and Linux user on the laptop side for my software engineering tasks, but I am tired of the fan noise. So, I decided to create a desktop build and get the maximum bang for my buck, while retaining great upgradability. I would like to remind you that this build is targeting mainly programming with lightweight photo/video/3D work. Below are the specs:

* CPU: AMD Ryzen 5 3600: ~$200
  * Alternative: Ryzen 3 3100/3300X: ~$100
  * Future: Ryzen 4600/4300X/4100 when they are out.
* GPU: NVIDIA GeForce GTX 1650 SUPER: ~$200
  * Alternative: GTX 1060 6GB: ~$100: (check out Ebay)
  * Future: GTX 3060 when it is out.
* MOBO: MSI X570 Tomahawk WiFi: ~$200
  * Alternative: MSI B550 Gaming Carbon WiFi: ~$200
* RAM: Corsair Vengeance LPX Black DDR4 3200MHz 2x16GB: ~$150
* SSD Disk (NVMe): WD Blue SN550 M.2 2280 1TB: ~$100
* Power Supply: Corsair RM750X V2 750W: ~$120
* Chassis: Fractal Design Define 7: ~$150
  * Alternative: Fractal Design Meshify C: ~$90
* Keyboard: HyperX Alloy FPS: ~$70
* Mouse: Logitech G502: ~$50
* Headset: Logitech G Pro
* Desk Speaker: Creative Pebble V2
* Total: ~$900 - ~$1200

Since it is physically impossible to copy that many images to dev.to, I'll just leave a link to my blog post on YT video if you want to follow the full guide:
* Article: https://quanticdev.com/articles/max-value-pc-build-guide
* Video guide: https://www.youtube.com/watch?v=LUE3avxvPMA
Beautiful box-shadow examples - A curated collection of 83 free beautiful box-shadow 🎨
Tags: webdev, css
Published: 2020-09-23 15:21:23

---
title: Beautiful box-shadow examples - A curated collection of 83 free beautiful box-shadow 🎨
published: true
description: 83 free CSS box-shadow ready-to-use for your next projects. Click to copy.
tags: #webdev #css
cover_image: https://getcssscan.com/css-box-shadow-examples/og-image.jpg
---

👋 Hi Dev.to!

One of the reasons I created CSS Scan was because I'm always interested in knowing how some websites make their box-shadow.

So I made [this collection](https://getcssscan.com/css-box-shadow-examples?ref=devto) of my favorite box-shadow on the internet, and I'll be adding new shadows to the list every time I see some new ones.

🎨 [CSS box-shadow examples by CSS Scan](https://getcssscan.com/css-box-shadow-examples?ref=devto) is a curated collection of 83 free beautiful CSS box-shadow.

💖 Bookmark it (keep it on your favorites) and use it whenever you need it for your projects!
All you have to do is click on a box you like, and it'll copy its CSS box-shadow rule.

And if you have any ideas or suggestions, I'm all ears.

Thanks all! 🙌

Launch Tweet: https://twitter.com/gvrizzo/status/1303958972022403072
Daily Price data from uniswap via subgraph (TheGraph)
Tags: uniswap, blockchain
Published: 2020-09-23 15:13:54

---
title: Daily Price data from uniswap via subgraph (TheGraph)
published: true
description: 
tags: uniswap, blockchain
//cover_image: https://direct_url_to_image.jpg
---

## daily data
```bash
# thegraph.sh
curl -v \
  -X POST "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2" \
  -H "Content-Type: application/json" \
  -d \
'{"query": "{tokenDayDatas(first: 3, orderBy: date, orderDirection: desc, where: { token: \"0x5caf454ba92e6f2c929df14667ee360ed9fd5b26\"}) { id date token { id symbol } priceUSD } }",
  "variables":null
}'
```

```
$ sh ./thegraph.sh | jq
```

```json
{
  "data": {
    "tokenDayDatas": [
      {
        "date": 1600819200,
        "id": "0x5caf454ba92e6f2c929df14667ee360ed9fd5b26-18528",
        "priceUSD": "2.806800389425393983069918593327176",
        "token": {
          "id": "0x5caf454ba92e6f2c929df14667ee360ed9fd5b26",
          "symbol": "DEV"
        }
      },
      {
        "date": 1600732800,
        "id": "0x5caf454ba92e6f2c929df14667ee360ed9fd5b26-18527",
        "priceUSD": "3.03633060835788742357890476280017",
        "token": {
          "id": "0x5caf454ba92e6f2c929df14667ee360ed9fd5b26",
          "symbol": "DEV"
        }
      },
      {
        "date": 1600646400,
        "id": "0x5caf454ba92e6f2c929df14667ee360ed9fd5b26-18526",
        "priceUSD": "3.233086904554954033846620475375757",
        "token": {
          "id": "0x5caf454ba92e6f2c929df14667ee360ed9fd5b26",
          "symbol": "DEV"
        }
      }
    ]
  }
}
```

*update: 2020.09.24*

## semi-realtime data

### ETH-USD price
```
$ curl -X POST "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2" -H "Content-Type: application/json" -d \
'{"query": "{bundle(id: 1) { id ethPrice } }",
  "variables":null
}'
```

```json
{"data":{"bundle":{"ethPrice":"338.9406833562309124607125730378295","id":"1"}}}
```

### DEV-ETH price
```bash
$ curl -X POST "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2" -H "Content-Type: application/json" -d \
'{"query": "{token(id: \"0x5caf454ba92e6f2c929df14667ee360ed9fd5b26\") { id derivedETH } }",
  "variables":null
}'
```

```json
{"data":{"token":{"derivedETH":"0.008128160843209088915463402585521696","id":"0x5caf454ba92e6f2c929df14667ee360ed9fd5b26"}}}
```
Caching strategies for PWA
Tags: 100daysofcode, javascript, pwa
Published: 2020-09-23 15:05:05

I learnt the different caching strategies used in PWA today.

Caching strategies define how the services worker responds on receiving a fetch event. They include:
* Cache only: Involves fetching from the cache without making any request to the network. Suitable for static content that changes only on update.
* Network only: Involves fetching from the network. Suitable for content with no offline version.
* Cache first: Involves checking the cache first and using the network as a fallback strategy.
* Network first: Involves checking the network and using the cache as a fallback strategy. Suitable for dynamic content.
* Cache then network: Involves fetching from the cache first then proceeding to a network request which then updates the cache. The updates are implemented on arrival. 
* Stale while revalidate: Involves making use of the cache first then fetching from the network. Updates reflect on refresh. 

You might want to clear different versions of the cached data. Here is the resource with the code to perform that: [Deleting Outdated cache](https://codelabs.developers.google.com/codelabs/pwa-caching-service-worker/index.html?index=..%2F..dev-pwa-training#7)

_That's it for day 69: 100days of code._
_Let's do this again tomorrow_
A Little Background
Tags: portfolio, vue, strapi, career
Published: 2020-09-23 15:04:55

A couple of weeks ago, I was rejected for a job at my dream company.
 
![Gif of me being sad](https://media.giphy.com/media/5WmyaeDDlmb1m/giphy.gif "Me Sad")
<figcaption>Me crying after I got the second rejection email from the same company.</figcaption>
Through that process, I realized I really want a full-time position with a company. 

Before that, I had been casually applying for jobs, but never really gave it my all. 

After being rejected, I decided I was going to go for it, and start working to get hired at a larger company, where I could collaborate with a team and hone in my skills in either Software Development or Customer Service, which are two things that I do at my agency that I truly enjoy.

With that decision, I decided to start work on [my personal portfolio](https://chriswray.dev). 

![Me working hard](https://media.giphy.com/media/L4ByDMLsriDrccUuUo/giphy.gif "Me working hard.")
<figcaption>Working hard on my personal portfolio.</figcaption>

Up until now, the only portfolio I have had is [my agency website, Soltech](https://solmediaco.com), and the projects I have built and code I have featured in [my Github](https://github.com/cwray-tech). 

It isn’t really a great way of advertising myself, so now I am starting the work of building my portfolio.

Since my portfolio is going to showcase a variety of skills and interests, I decided that the best thing that I can do is document the process of building my portfolio in a series of blog posts. 

This is the first one! 

Look out for more blogs to come.
New Side Project, New Blog Series
Tags: elixir, tutorial, sideprojects
Published: 2020-09-23 15:04:10

I am currently in between projects at work, and I decided a good way to spend my time would be to spin up a side project. For nearly a year I have been compiling a dataset of my favorite GPS coordinates along with other attributes of the location, knowing that at some point, when I had the time, I could use it as a jumping off point for a project. There are some aspects of my recent work project I wanted to dig further into, as well as some things that didn't exist at all and I want to see what it would take to implement. The end goal of this project is more a sandbox to experiment with than a polished app. But, if at some point I get something that is worth sharing with the world, that would be great as well.

As with my other blog series [This Week I Learned](https://dev.to/noelworden/beginning-of-a-blog-series-5aj3), I know that I learn a lot when I write about my process, so writing my way through this side project was an easy decision. In addition to expanding my knowledge, I hope that writing about my process can help someone else's process be a little bit smoother. 

This side project and the articles that accompany it are all about learning, as such, I would greatly appreciate any feedback on how I might improve on the code I implement.
ShadowGas - Transfer
Tags: blockchain
Published: 2020-09-23 14:53:17

The ShadowGas `Transfer` feature allows you to move the gas tokens stored at the contract's address to the address of the contract's owner or to an address provided.

---

I recommend checking out my first post (below) before reading if you haven't already. It goes over the **installation**, **setup**, and the **contract's `Store` feature**.

https://dev.to/traylorboy/shadowgas-store-40m9

---

# Transfer

`<GAS_TOKEN>` should be either **Chi** or **Lgt**

### Empty
```sh
npx buidler empty --token <GAS_TOKEN>
```

Sends Chi or Lgt from contract to possessor *(contract owner)*

### EmptyTo
```sh
npx buidler emptyTo --token <GAS_TOKEN>
```

Sends Chi or Lgt from contract to address *(modify in shadow.config.js)*

## Examples

### Empty 3 Lgt and Chi

*You can modify the amount to send in `shadow.config.json`*

```sh
npx buidler empty --token Lgt

npx buidler empty --token Chi
```

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/qtwn5yvodhui1cl7z6vx.png)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ly3n6tz0kqg82u3t2l6u.png)

### Empty 3 Lgt and Chi to address

*You can modify the address to send to in `shadow.config.json`*

```sh
npx buidler emptyTo --token Lgt

npx buidler emptyTo --token Chi
```

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/1s4rnojcvq97dhnk01ga.png)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/n0z31gxbxu69qzky26uj.png)

I am currently finishing up the trade feature!

The repo can be found here: https://github.com/TraylorBoy/ShadowGas
REST Endpoint + CRUD with AWS Lambda and DynamoDB in 2 minutes
Tags: aws
Published: 2020-09-23 14:31:01

---
title: REST Endpoint + CRUD with AWS Lambda and DynamoDB in 2 minutes
published: true
description: A lightning fast overview of everything you need to know to set up a REST endpoint with full CRUD capability with AWS Lambda, DynamoDB and AWS Amplify in 2 minutes.
tags: AWS
slug: amplify_rest_crud
canonical_url: https://www.swyx.io/writing/amplify_rest_crud
---

A lightning fast overview of everything you need to know to set up a REST endpoint with full CRUD capability with AWS Lambda, DynamoDB and AWS Amplify in 2 minutes.

Dev.to embed: {% youtube 8-wJilYucnI %}

- YouTube: https://youtu.be/8-wJilYucnI
- Github: https://github.com/sw-yx/amplifycrud-demo
- Guide: https://docs.amplify.aws/guides/api-rest/form-api-with-dynamodb-and-lambda/q/platform/js
WebAssembly: another JVM?
Published: 2020-09-23 14:18:58

WebAssembly has been gaining popularity in recent times. It's fast, it's "hip" and my God, C/C++ and Rust developers seem to mention it a lot these days. There are several articles already written for Wasm (as I'll keep calling WebAssembly in this article). Go [here](https://dev.to/oayomide/create-a-webassembly-app-with-react-and-go-39j7) for my article on using WebAssembly, Go and React. There is also a Rust port [here](https://github.com/oayomide/yaimp-rs). The Rust port is up and running [at this URL.](https://yaimp.herokuapp.com)

Java is a language that needs no introduction. The JVM is simply a virtual machine that takes in [Java bytecode](https://en.wikipedia.org/wiki/Java_bytecode) and then spit out the machine code of the CPU the code is running on. That way, you can write any language that is supported by the JVM (e.g Scala) and run it on any CPU/platform. This forms the basis of Java's Write Once, Run Anywehere. Enter Wasm.

Wasm basically is a format that allows you compile code you've written in various languages on any hardware/platform in a safe environment.

So how does Wasm differ from the JVM?

* Speed. Wasm runs at near native speed (even in the browser).
* Security. WebAssembly lets you run code you don't trust. It runs in its own sandbox.
* In the frontend, there are JS bindings from your host language. This means you can write your app in a language like Rust. You can manipulate the DOM directly, compile to Wasm and have JS bindings generated for you.
* WebAssembly can be loaded "lazily" loaded. What does this mean? You can actually run the WASM code before its been fully dowloaded. The browser can run the WASM as its being downloaded using the ```WebAssembly.instantiateStreaming()``` function provided in JavaScript.

Personally, my biggest takeaway from the differences between JVM and WebAssembly is that Wasm is platform-independent and provides near native speed for whatever architecture you're running on all with support for many languages, guaranteed security and the fact that you can stream the Wasm binary in the browser. Another takeaway is the fact that it supports a lot of languages — Rust, Go, AssemblyScript all support Wasm. I think its pretty obvious that Wasm is not just another JVM. WebAssembly **is** WebAssembly.
Season Of Docs, Meeting-4
Tags: opensource, github
Published: 2020-09-23 14:13:19


On 16th of September, I had a meeting with my mentors regarding my Google's Season Of Docs project.
The following tasks were assigned to me:-

1. Correcting the section order of the menu on the LHS of synbiohub.github.io

2. Provide correct links to the broken ones in the About SynBioHub and the references section.

3. Renaming the "Further References" section to the "References" section.

4. Moving the Plugins from the Installation section to the Plugins section and reconfiguring the table using Go-lang templates and partials provided by Hugo.

5. Changing the docker-installation to something more appropriate.

6. Include installation instructions for Mac OS and Linux OS to the installation section.

7. Remove all the content from the Source installation section and provide a link to the github repository.

8. Make a separate section for Setup and add some content to it, i.e. about Web-Of-Registries and SendGrid Mail setup.

9. Go through the doc on plugins sent by Jet.

10. Try and prepare a doc on Information collected from the assync. research paper that can be included in the  documentation.


I was able to accomplish the following tasks:-

1. Provided correct links to the broken ones in the About SynBioHub section and the References section.

2. Renamed the "Further References" section to the "References" section.

3. Changed the docker installation to something more appropriate, though it still requires some improvement.

4. Included the installation instructions to Mac OS and Linux-Ubuntu 20.04 to the installation section.

5. Removed all the content from the Source installation section and gave the link to the github repo.

6. Installed SynBioHub without any error on Ubuntu.

7. Created a separate section for setup.

8. Added a brief description about "Web-Of-Registries" to the Setup section.

The Problems that I've encountered this week are:-

1. Couldn't re-order the menu. I tried to re-order the menu by allocating weight's to every section but surprisingly, it didn't do any good.

2.  Though I was able to move the plugins table from the "Installation" section, but unfortunately I was unable to understand & use the Go-lang template and partials provided by Hugo. I've opened a few PR's on Hugo's repo and I'm hoping to find a feasible solution in the next couple of days.

3. Wanted to Upload a design to synbiohub.org but was unable to find the link to the repo from which I was to copy the designs.

4. Was unable to go through the doc sent by Jet fully. Though, I was able to go through the first few pages and had a few doubts.

Hope I'll be able to clarify the doubts that I have and plan tasks for the upcoming week in the next week.