mirror of
https://github.com/status-im/datasets.git
synced 2025-02-18 03:16:21 +00:00
4800 lines
194 KiB
Plaintext
4800 lines
194 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"toc": true
|
||
},
|
||
"source": [
|
||
"<h1>Table of Contents<span class=\"tocSkip\"></span></h1>\n",
|
||
"<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#Handcrafting-Ethereum-vocabulary\" data-toc-modified-id=\"Handcrafting-Ethereum-vocabulary-1\"><span class=\"toc-item-num\">1 </span>Handcrafting Ethereum vocabulary</a></span><ul class=\"toc-item\"><li><span><a href=\"#Proof-of-Concept\" data-toc-modified-id=\"Proof-of-Concept-1.1\"><span class=\"toc-item-num\">1.1 </span>Proof of Concept</a></span></li><li><span><a href=\"#Formatting-for-JSON\" data-toc-modified-id=\"Formatting-for-JSON-1.2\"><span class=\"toc-item-num\">1.2 </span>Formatting for JSON</a></span></li></ul></li></ul></div>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:41.573669Z",
|
||
"start_time": "2018-07-18T16:29:40.166530Z"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/usr/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
|
||
" from ._conv import register_converters as _register_converters\n",
|
||
"Using TensorFlow backend.\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import pandas as pd\n",
|
||
"import spacy\n",
|
||
"from namedentities import named_entities # HTML escaping\n",
|
||
"\n",
|
||
"from gensim.utils import simple_preprocess\n",
|
||
"from gensim.models import Phrases\n",
|
||
"from gensim.models.phrases import Phraser"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:47.636419Z",
|
||
"start_time": "2018-07-18T16:29:41.575096Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Download the model with 'python -m spacy download en_core_web_lg --user'\n",
|
||
"# Note: this is a 800MB model\n",
|
||
"# 'en_core_web_sm', 29MB can be used as alternative\n",
|
||
"# see https://spacy.io/models/en#section-en_core_web_lg\n",
|
||
"nlp = spacy.load('en_core_web_lg')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:47.665027Z",
|
||
"start_time": "2018-07-18T16:29:47.637861Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"df = pd.read_excel('interviews_20180710.xls')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:47.708794Z",
|
||
"start_time": "2018-07-18T16:29:47.666151Z"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>Name</th>\n",
|
||
" <th>How do you handle smart contract verification and security?</th>\n",
|
||
" <th>Other bounties?</th>\n",
|
||
" <th>Who are you and what are you working on?</th>\n",
|
||
" <th>What are the tools/libraries/frameworks you use?</th>\n",
|
||
" <th>What are your biggest frustrations?</th>\n",
|
||
" <th>How do you handle testing?</th>\n",
|
||
" <th>What tools don’t exist at the moment?</th>\n",
|
||
" <th>Other domain specific questions?</th>\n",
|
||
" <th>What was the hardest part about learning to develop with Ethereum?</th>\n",
|
||
" <th>What are you most excited about in the short term?</th>\n",
|
||
" <th>Was anything easier than expected?</th>\n",
|
||
" <th>Who are the other people you think we should talk to?</th>\n",
|
||
" <th>What are the best educational resources?</th>\n",
|
||
" <th>Are there any other questions we should be asking?</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>Fabio Berger + Remco Bloemen</td>\n",
|
||
" <td>Code audits before deployment\\nWant to add a f...</td>\n",
|
||
" <td>Rest of the bounties from Remco\\nState-watchin...</td>\n",
|
||
" <td>0x - Decentralized exchange protocol. It is a ...</td>\n",
|
||
" <td>EthereumJS / truffle hardwallet provider / Typ...</td>\n",
|
||
" <td>Getting a simple experimental environment up i...</td>\n",
|
||
" <td>Testrpc has gotten better ––\\nIncreases the sp...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>Leo Logvinov</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>There is a limit on local variable numbers (ha...</td>\n",
|
||
" <td>Started in blockchain 2 years ago in Berlin, w...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Event watching - unreliable, no support for ba...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Prettier type plugin for solidity. I don’t hav...</td>\n",
|
||
" <td>What has your experience been like working on ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>Axel Ericsson</td>\n",
|
||
" <td>Human thinking and auditing.\\nWill find some e...</td>\n",
|
||
" <td>Breaking out a javascript library for web page...</td>\n",
|
||
" <td>I have built 1Protocol\\nIt lets smart contract...</td>\n",
|
||
" <td>Just web3JS and the python raiden client</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Truffle suite. Before that, built our own unit...</td>\n",
|
||
" <td>There is no tooling or anything related to sta...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Solidity is changing so quickly that, as an ex...</td>\n",
|
||
" <td>Raiden is the golden egg in the space. The exp...</td>\n",
|
||
" <td>Writing smart contracts is surprisingly neat. ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>Mike Goldin</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Pretty cool to have more languages for the EVM...</td>\n",
|
||
" <td>Software developer at Consensys\\nKnown for Tok...</td>\n",
|
||
" <td>Truffle, useful as a testing framework.\\nSolid...</td>\n",
|
||
" <td>Truffle’s debugger is a bit disappointing. Wor...</td>\n",
|
||
" <td>Writes tests in Javascript\\nSol Coverage tool\\...</td>\n",
|
||
" <td>Fuzz Testing and formal verification desired.</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Hardest part is learning to develop in a block...</td>\n",
|
||
" <td>Excited for Casper\\nApplications implemented i...</td>\n",
|
||
" <td>What’s really easy is programming money.\\nOn b...</td>\n",
|
||
" <td>Infura team, client development\\nSpankchain - ...</td>\n",
|
||
" <td>Solidity Docs\\nUses yellow paper gass lookup t...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>Oleksii</td>\n",
|
||
" <td>We have written our own tools which tell us, f...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Started working with smart contracts in early ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Our original vision was to do everything – tes...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>What are other great tools you have used?\\nEth...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>Brett Sun</td>\n",
|
||
" <td>Human audits only right now.\\nTrailofbits is r...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Working on Aragon entirely.\\nThe end goal is t...</td>\n",
|
||
" <td>Four categories:\\nEVM and lower level stuff:\\n...</td>\n",
|
||
" <td>My biggest general frustration comes with the ...</td>\n",
|
||
" <td>In addition to the above we also use solidity-...</td>\n",
|
||
" <td>A nice debugger! Please…\\nMore infrastructure ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Google + Github is my go to.\\nNot enough has b...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>Jorge Izquierdo</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Infura that is more decentralized. A full-node...</td>\n",
|
||
" <td>Aragon - Decentralized Governance platform\\nWe...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Tell us more about getting deep into the EVM?\\...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>Jack Peterson and Sparkle</td>\n",
|
||
" <td>Pay others to think about it - no process yet....</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Back-end: Visual Studio Code with docker image...</td>\n",
|
||
" <td>Lack of a debugger - by far the biggest issue....</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Setting breakpoints in tests!\\nSalesforce Deve...</td>\n",
|
||
" <td>Let’s talk specifically about UI issues / scal...</td>\n",
|
||
" <td>What steps do I need to follow to write these ...</td>\n",
|
||
" <td>Raiden is coming shortly and will be very cool...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>Joey Krug</td>\n",
|
||
" <td>Yeah, encourage everyone to use auditors. Lots...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Co-Chief Investment Officer at Pantera Capital...</td>\n",
|
||
" <td>At Augur, stack is different as it’s a bit old...</td>\n",
|
||
" <td>At the end of the day, it all comes down to th...</td>\n",
|
||
" <td>Run against pyethereum. Test suite is written ...</td>\n",
|
||
" <td>My answers changed over a time, 1 year ago it ...</td>\n",
|
||
" <td>Would be useful if the Ethereum project could ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>In the short term, he’s most excited about Mak...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Back then documentation was very sparse, blogs...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>Mark Beylin</td>\n",
|
||
" <td>Consensys diligence is an auditing team availa...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Creator of the Bounties Network. Bounties on a...</td>\n",
|
||
" <td>I know and use the solium linter.\\nUse truffle...</td>\n",
|
||
" <td>Not being able to upgrade my contracts easily....</td>\n",
|
||
" <td>Mocha tests using Truffle and testrpc.\\nAlso u...</td>\n",
|
||
" <td>Better querying possibilities on the state of ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Didn’t understand the stack. People don’t unde...</td>\n",
|
||
" <td>Sharding. That’s all I want.\\nuPort is getting...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Joseph Vander (learning the be a solidity deve...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Curious to know about developer incentives. As...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>10</th>\n",
|
||
" <td>Aidan Hyman</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Working with parity and geth and parity-bridge...</td>\n",
|
||
" <td>Truffle\\nLack of modularity is the biggest pro...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Talk with Stu, who handles all the testing stu...</td>\n",
|
||
" <td>Mythril for the EVM stack. Rewrite a complete ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Two of our most exciting projects:\\nShift - de...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Honestly just readthedocs, gitter channels and...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>11</th>\n",
|
||
" <td>Greg, Stu, David</td>\n",
|
||
" <td>Mythril, as mentioned above.</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>David: EVM layer stuff: interactions between o...</td>\n",
|
||
" <td>JetBrains suite as an IDE. Remix comes in ther...</td>\n",
|
||
" <td>Up to date documentation!!\\nSystem dependence ...</td>\n",
|
||
" <td>Mostly unit tests in mocha and chai.\\nMostly u...</td>\n",
|
||
" <td>EVMLab certainly has some of the features requ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Greg: Looked at web3 documentation (as it was ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Community! Going to EDCON was an eye-opening, ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Where do we actually find out more about all t...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>12</th>\n",
|
||
" <td>Jon Maurelian</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>I work at Consensys Diligence doing audits; si...</td>\n",
|
||
" <td>We use Truffle a lot (never had to use Dapple ...</td>\n",
|
||
" <td>Auditing:\\nA lot of my time is spent understan...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Piper Merriam\\nNick Johnson\\nChristian Lundkvi...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>13</th>\n",
|
||
" <td>Nick Dodson</td>\n",
|
||
" <td>Mythril will be useful when in full bloom - ne...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Working on experimental infrastructure. ARES, ...</td>\n",
|
||
" <td>Solidity Compiler\\nThe C version is very fast ...</td>\n",
|
||
" <td>Data verifiability problem - nobody is going t...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Tell us more about TCRs and DAOs?\\nThere are m...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>14</th>\n",
|
||
" <td>Ilan Benbrith</td>\n",
|
||
" <td>Consensys Diligence provides some of the best ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>I’m the Technical PM at Consensys Academy work...</td>\n",
|
||
" <td>Truffle, Ganache, Remix, Metamask etc.\\nFront ...</td>\n",
|
||
" <td>Gas and fees is a common frustration, given th...</td>\n",
|
||
" <td>Truffle testing\\nBest practices resources</td>\n",
|
||
" <td>Drizzle is a really cool idea for front-end de...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>We’re still so early on but we hope to incorpo...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Youtube videos\\nConferences and Meetups - putt...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>15</th>\n",
|
||
" <td>Goncalo Sa</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>None come to mind right now. Let’s keep the fo...</td>\n",
|
||
" <td>I work at Consensys Diligence - focus on secur...</td>\n",
|
||
" <td>I used to use Remix a lot more than I do today...</td>\n",
|
||
" <td>I really, really want a good visual debugger. ...</td>\n",
|
||
" <td>Remix, Surya and Mythril as above.\\nVery small...</td>\n",
|
||
" <td>A proper, local dummy client. I love the Truff...</td>\n",
|
||
" <td>What are the details/patterns in smart contrac...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Bernard Miller from our team, focussed entirel...</td>\n",
|
||
" <td>I do this less frequently now, but I basically...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>16</th>\n",
|
||
" <td>Fabiano, Jordan, Nick</td>\n",
|
||
" <td>Audit code: bounty hunt program, found one maj...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Cryptokitties! Goals they have are to get mult...</td>\n",
|
||
" <td>Been a while since we have done smart contract...</td>\n",
|
||
" <td>The lack of proper debugging support. That cau...</td>\n",
|
||
" <td>Standard testing and using community to audit ...</td>\n",
|
||
" <td>2 main areas with significant problems:\\nData ...</td>\n",
|
||
" <td>Have you written any open source tools for sca...</td>\n",
|
||
" <td>The real problems come into play when you are ...</td>\n",
|
||
" <td>The thing we are excited about most in the nex...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Solidity documentation was quite good. Had all...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>17</th>\n",
|
||
" <td>Andy Milenius</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>DappHub:\\nWorking on dev tools since I got int...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Ethereum relies heavily on Javascript dev tool...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>How can Ethereum create more cultural norms an...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>18</th>\n",
|
||
" <td>Esteban Ordano</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Biggest request: have ERC20 upgraded to ERC223...</td>\n",
|
||
" <td>I’m hiring two or three people – excellent eng...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Pains:\\nThe gas issues – the expensiveness of ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Should speak with Fede –– should collaborate t...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>19</th>\n",
|
||
" <td>Matias Bargas</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>I used to be an investor, but came to crypto a...</td>\n",
|
||
" <td>The whole Ethereum stack, basically.\\nTruffle\\...</td>\n",
|
||
" <td>Real monitoring information is tough to come b...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Starting from the infrastructure stuff: we nee...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>The Decentraland client!! Woot woot.\\nSomethin...</td>\n",
|
||
" <td>No, not really.\\nActually, extending the open ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>I came from a strange backend doing tooling fo...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>20</th>\n",
|
||
" <td>Nadav Hollander</td>\n",
|
||
" <td>Write down in plain text documents what the in...</td>\n",
|
||
" <td>A GREAT SOLIDITY DEBUGGER\\nA turnkey solution ...</td>\n",
|
||
" <td>Building Dharma - open protocol for tokenized ...</td>\n",
|
||
" <td>I like to use Typescript for testing.\\n0x team...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Truffle to write JS unit tests.\\n** There are ...</td>\n",
|
||
" <td>Good logging and debugging\\nSetting up your ow...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>“What is the thing that makes debugging solidi...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>21</th>\n",
|
||
" <td>Alex van de Sande</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Finding talented people is very hard. They are...</td>\n",
|
||
" <td>Working on Mist, the Ethereum browser.\\nDevelo...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Securing Electron (desktop JS) was hard. (JS i...</td>\n",
|
||
" <td>People build new features, we check, and then ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>One dev working on a backend integration – I s...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Nick Johnson\\nRyan Zurrer</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>22</th>\n",
|
||
" <td>Nick Johnson</td>\n",
|
||
" <td>Write a spec and define edge cases and corner ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>ENS: documentation, smart contracts, UI’s,\\nAu...</td>\n",
|
||
" <td>Open Zeppelin tools are increasingly good. But...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Truffle unit testing with mocha\\nAdded built i...</td>\n",
|
||
" <td>Byzantium added return data size (prevents arb...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Becoming familiar with the execution model\\nYo...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>23</th>\n",
|
||
" <td>Elena Nadolinski</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Documentation\\nDebugging, so helpful. A debugg...</td>\n",
|
||
" <td>Last 6 months have been working on Solidity, E...</td>\n",
|
||
" <td>Use Truffle because it’s by far the best frame...</td>\n",
|
||
" <td>Lack of error messages, since Solidity 24 you ...</td>\n",
|
||
" <td>Truffle for testing. Force people to do TTD in...</td>\n",
|
||
" <td>A lot of tools exist but aren’t being utilized...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>It’s a myth for how hard it is. “I’m a Solidit...</td>\n",
|
||
" <td>Quitting her job to start her own project so v...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Christopher Gewecke, Wyvern team</td>\n",
|
||
" <td>Personally found a couple Medium articles here...</td>\n",
|
||
" <td>Real world companies that are not tech savvy c...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>24</th>\n",
|
||
" <td>Swaroop</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>We are building EthVigil an API gateway to to ...</td>\n",
|
||
" <td>Mostly custom tools. Started with web3, starte...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Basic unit tests, integration testing. So much...</td>\n",
|
||
" <td>Web3 is a library to make it easier for a lot ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>The first thing I built was a tool that looks ...</td>\n",
|
||
" <td>We built a platform to help people use blockch...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Barely anything with tutorials when they got s...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>25</th>\n",
|
||
" <td>Alex Beregszazzi & Pawel Bylica</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Pawel - focused on VM in general, spent a lot ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Communication is bad within EF and within ecos...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>26</th>\n",
|
||
" <td>Christian Reitwiessner</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Gas profiling:\\nSolidity does some upper-bound...</td>\n",
|
||
" <td>90% of my time: design of Solidity language an...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Tell us more about computational scalability o...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>27</th>\n",
|
||
" <td>Fabian Vogelsteller</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Need good IDEs:\\nRemix is good, but has proble...</td>\n",
|
||
" <td>My future project: Lukso blockchain: EVM-based...</td>\n",
|
||
" <td>Web3.js\\nHistory:\\nInitially, it was built by ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>28</th>\n",
|
||
" <td>Hudson Jameson</td>\n",
|
||
" <td>Use the Remix tool to just scan for general bu...</td>\n",
|
||
" <td>Dev Grants from the Foundation\\nEthereum found...</td>\n",
|
||
" <td>Mainly focused on solidity smart contracts. A ...</td>\n",
|
||
" <td>Remix, MyEtherWallet, MetaMask</td>\n",
|
||
" <td>Hard to read error messages. Solidity and EVM ...</td>\n",
|
||
" <td>Have been using Truffle more lately but was mo...</td>\n",
|
||
" <td>Remix combines an editor with a deployment mec...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>The resources are pretty spread out, and every...</td>\n",
|
||
" <td>Casper. It’s already kind of going into testin...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Raine Revere from ShapeShift</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>29</th>\n",
|
||
" <td>Martin Swende</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>I was a security professional, doing consultin...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Definitely a need for more developers, either ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>74</th>\n",
|
||
" <td>Scott Wright</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Just simple stuff - proofs of concept.\\nWorkin...</td>\n",
|
||
" <td>Remix\\nGeth obviously\\nSolC for compiling\\nYar...</td>\n",
|
||
" <td>Hasn’t happened across too much yet! Been work...</td>\n",
|
||
" <td>Automated testing?\\nThere’s an IDE that I’ve u...</td>\n",
|
||
" <td>Automated testing - I want a testing suite, a ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Would have been that initial setup of the deve...</td>\n",
|
||
" <td>Vyper!\\nHave big hopes for truffle - has a lot...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>75</th>\n",
|
||
" <td>Felix Feng</td>\n",
|
||
" <td>Contracted security auditing firm before launc...</td>\n",
|
||
" <td>Debugger\\nMore free automated formal verificat...</td>\n",
|
||
" <td>Founder of Set Protocol, wrote all the smart c...</td>\n",
|
||
" <td>Internal javascript library in Typescript for ...</td>\n",
|
||
" <td>Truffle migrate on main net\\nWeird configurati...</td>\n",
|
||
" <td>Started with truffle tests\\nThen converted tes...</td>\n",
|
||
" <td>Debugger. Especially as contracts start linkin...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Truffle needs to be easier for beginners. Toug...</td>\n",
|
||
" <td>Ethereum proof of stake\\n0x open source tools....</td>\n",
|
||
" <td>MVP versions of product are easy. Handling all...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Consensys Academy\\nTruffle/Solidity documentat...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>76</th>\n",
|
||
" <td>Simon Jentzsch</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>CTO of SlockIt.\\nDaily standups like any other...</td>\n",
|
||
" <td>Start with Truffle - mainly for testing and se...</td>\n",
|
||
" <td>IDE integration\\nThere are tools and plugins f...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Scalability is long-hoped for and looked forwa...</td>\n",
|
||
" <td>IOT security challenges?\\nUse blockchain to en...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Having people around, trying new things, debug...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>77</th>\n",
|
||
" <td>Fernando G</td>\n",
|
||
" <td>I always try to keep myself on top of existing...</td>\n",
|
||
" <td>I think anything related to ease the whole lif...</td>\n",
|
||
" <td>I am a developer, working in London for the la...</td>\n",
|
||
" <td>Well, it depends, when I build tools related t...</td>\n",
|
||
" <td>Maybe it is my fault, but I would like to see ...</td>\n",
|
||
" <td>For unit testing I use truffle, I write JavaSc...</td>\n",
|
||
" <td>Good question, there is a lot of ecosystem tha...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Scalability improvements. I want sharding and ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Hmm not sure if you spoke to Bernhard Mueller,...</td>\n",
|
||
" <td>I would say no books, because they get outdate...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>78</th>\n",
|
||
" <td>Dandelion</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>SourcCred - bounties and reputation for open s...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Highly adversarial environment makes it hard t...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>At core abstractions layer. If SourceCred depe...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>CryptoZombies really improved my intuition.</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>79</th>\n",
|
||
" <td>David Wolever</td>\n",
|
||
" <td>Front end: nothing really\\nDapp: went through ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Been working with Spankchain team. Combination...</td>\n",
|
||
" <td>Vim editor, truffle. Metamask.\\nSwitching over...</td>\n",
|
||
" <td>Gas limit: No problems with this really.\\nMeta...</td>\n",
|
||
" <td>First, use Truffle for unit testing.\\nSeries o...</td>\n",
|
||
" <td>Need a tool like metamask supporting state cha...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>No real breakdown of how everything works toge...</td>\n",
|
||
" <td>Ours. Spankchain.</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Why are people building dapps instead of just ...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>80</th>\n",
|
||
" <td>James Young</td>\n",
|
||
" <td>We had multiple audits at multiple periods of ...</td>\n",
|
||
" <td>Getting mainstream users onboarded. Informed b...</td>\n",
|
||
" <td>Work primarily with Spankchain, doing state ch...</td>\n",
|
||
" <td>We use Truffle, and Ganache on the web3 blockc...</td>\n",
|
||
" <td>When I’m doing unit tests in Truffle, not know...</td>\n",
|
||
" <td>I test and retest. Wrote the auction contract ...</td>\n",
|
||
" <td>I wish and a hope there is bachelor’s in block...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Knowing what Gitter channels, Slack channels, ...</td>\n",
|
||
" <td>Actually having micropayments be a thing and s...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>I would actually talk to operators that have s...</td>\n",
|
||
" <td>Depending on the background, a lot of it is ha...</td>\n",
|
||
" <td>Human behavioral things, what holds your feet ...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>81</th>\n",
|
||
" <td>Doug Hoyte</td>\n",
|
||
" <td>Trying to keep everything as simple as possibl...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Doug Hoyte, working on sportcrypt.com, a sport...</td>\n",
|
||
" <td>web3.js, ethereumjs-util, solc, testrpc, parit...</td>\n",
|
||
" <td>Docs are usually out-of-date, plain wrong, or ...</td>\n",
|
||
" <td>Custom test harness, could never figure out ho...</td>\n",
|
||
" <td>Hmmm, a good light client implementation so ev...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Working around web3/metamask bugs</td>\n",
|
||
" <td>Building out our product, watching adoption gr...</td>\n",
|
||
" <td>Solidity is supposed to be completely awful so...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Not sure. Solidity docs are OK if you are tech...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>82</th>\n",
|
||
" <td>Ricardo Guillerme Schmidt</td>\n",
|
||
" <td>No major process. “This function should do one...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Development of smart contracts for Status.\\nCa...</td>\n",
|
||
" <td>Microsoft VS code, Git, Remix for manual tests...</td>\n",
|
||
" <td>Being unable to returns strings nicely. Regula...</td>\n",
|
||
" <td>Automated testing?\\nFirst develop the smart co...</td>\n",
|
||
" <td>Would be very good if VScode had the same thin...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Not sure, not actually difficult. If you under...</td>\n",
|
||
" <td>Excited about Golem. I really want to use it b...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Jordi Baylina, James from Status, Luis Cuende ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>83</th>\n",
|
||
" <td>Richard Ramos</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Smart contract developer at Status, also worki...</td>\n",
|
||
" <td>Embark, obviously!\\nNot just a framework for w...</td>\n",
|
||
" <td>Working with MetaMask and your local node/test...</td>\n",
|
||
" <td>Mostly through unit testing in Embark. I creat...</td>\n",
|
||
" <td>If I want to build things that are secure AND ...</td>\n",
|
||
" <td>Let’s talk about Embark further. What do you s...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Status!!!\\nPlasma cash is really interesting a...</td>\n",
|
||
" <td>Learning solidity and writing your fist smart ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Subreddit for ethdev and stack overflow, as al...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>84</th>\n",
|
||
" <td>Bob Summerwill</td>\n",
|
||
" <td>As good as that gets right now, there are vari...</td>\n",
|
||
" <td>Work for GUI’s, development tools for GUI’s. C...</td>\n",
|
||
" <td>Been involved with the Ethereum community sinc...</td>\n",
|
||
" <td>Most of his work has been on the platform work...</td>\n",
|
||
" <td>Where we are at now is a transition between am...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Interactive debugging. Truffle and Remix have ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Where are the tools? There’s nothing, going ba...</td>\n",
|
||
" <td>I am excited about preaching about the end of ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Some universities starting to teach, Consensys...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>85</th>\n",
|
||
" <td>Yaniv Tal and Brandon Ramirez</td>\n",
|
||
" <td>Instead of statically linking contracts, you f...</td>\n",
|
||
" <td>We need to ask, what are the barriers to dapps...</td>\n",
|
||
" <td>Yaniv and Brandon from The Graph, query protoc...</td>\n",
|
||
" <td>Been using Truffle for Solidity. Remix on occa...</td>\n",
|
||
" <td>Artificial limitations in Solidity, number of ...</td>\n",
|
||
" <td>Write a lot of tests, try to make them as comp...</td>\n",
|
||
" <td>Pretty common for people to develop contracts ...</td>\n",
|
||
" <td>How have you found working on Aragon, esp. APM...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Plasma stuff. Obviously early days, but we wan...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>CryptoZombies, used to send people to Zasterin...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>86</th>\n",
|
||
" <td>Sina Habibian</td>\n",
|
||
" <td>A bunch of upfront discussions and security an...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>I started in January or February of this year,...</td>\n",
|
||
" <td>Vim with solidity syntax highlighter, truffle ...</td>\n",
|
||
" <td>Super slow cycle due to testing.\\nAre you runn...</td>\n",
|
||
" <td>Truffle and Javascript unit tests\\nFirst perso...</td>\n",
|
||
" <td>Testing is so important in this space, but tes...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Wrapping my head around potential attacks and ...</td>\n",
|
||
" <td>TrueBit because it gives you the ability to ru...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Dan Finlay</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>87</th>\n",
|
||
" <td>Truffle Team</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Set of tools: linters & coverage tools\\nCritic...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Chris:\\nThe closer you are the foundation of t...</td>\n",
|
||
" <td>It’s downstream on Etheruem and Web 3js; upstr...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Integration between truffle & ganache?\\nWe’d l...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Currently we use Gitter. Every Truffle member ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>88</th>\n",
|
||
" <td>Preethi Kasireddy</td>\n",
|
||
" <td>In the past, OpenZeppelin. Don’t think we’ll u...</td>\n",
|
||
" <td>Testing and debugging!\\nKey management stuff.</td>\n",
|
||
" <td>I’m the founder and CEO of Trustory, an app th...</td>\n",
|
||
" <td>With Ethereum, for Trustory, we will write sma...</td>\n",
|
||
" <td>Not enough standard libs. Creating a dApp, the...</td>\n",
|
||
" <td>For JS, Mocha/Chai. In the past, used py-ether...</td>\n",
|
||
" <td>Debugging. We don’t use Truffle, and if you’re...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Everything. Nothing follows a standard.\\nBigge...</td>\n",
|
||
" <td>For my app to launch!\\nExcited for Casper, for...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Head of Tendermint, Zaki .\\nAntonio Juliano CE...</td>\n",
|
||
" <td>Read the Ethereum source code, read the Solidi...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>89</th>\n",
|
||
" <td>Alexey Akhunov</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Unification of testnets[a].\\nRinkeby & Kovan a...</td>\n",
|
||
" <td>Been in Ethereum since the beginning. Was foll...</td>\n",
|
||
" <td>Geth.\\nCan pass in --cpu-profile\\nUses basic s...</td>\n",
|
||
" <td>Yesterday – spent 3 hours!!! – fixing compiler...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Optimizing Geth:\\nIt all started with a rough ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Nick Johnson\\nPeter from Geth.\\nQuickblocks fo...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>90</th>\n",
|
||
" <td>Simon de la Rouviere</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Autonomous artist blueprint has existed for mo...</td>\n",
|
||
" <td>I have been in blockchain since 2013 working i...</td>\n",
|
||
" <td>I am the smart contract lead at Ujo, so spend ...</td>\n",
|
||
" <td>For me, it’s always been harder to evaluate th...</td>\n",
|
||
" <td>Mythril is very useful and we use it.\\nWriting...</td>\n",
|
||
" <td>One thing that comes to mind is a mature, ince...</td>\n",
|
||
" <td>What are the biggest challenges for Ethereum r...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Curation markets!\\nMore collectible stuff. The...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Google, gitter, ETH stack exchange.\\nSome Cons...</td>\n",
|
||
" <td>Curious about how we plan on dispersing the mo...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>91</th>\n",
|
||
" <td>Alvaro</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>VirtuePoker – offchain game, smart contracts t...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Whisper\\nBuilding a p2p game. We tried using W...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>92</th>\n",
|
||
" <td>Javier Franco</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>How to simplify the way to calculate the gasPr...</td>\n",
|
||
" <td>VirtuePoker –– making the migration to the new...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Gas costs:\\nEthereum price increased, gas pric...</td>\n",
|
||
" <td>Testing our Dutch Auction ICO contract:\\nWe we...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>93</th>\n",
|
||
" <td>Rick Dudley</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>I worked on EthPM briefly.\\nI gave up in frust...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Lack of people over 40 – naivete.\\nTrust and g...</td>\n",
|
||
" <td>I like the DappHub stuff; but it’s not fully i...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Bottom-up sharding scheme\\nAn app-sharding mod...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>94</th>\n",
|
||
" <td>Evan Van Ness</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Have only ever played around very early, but n...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>It’s tough for everybody in this space to bala...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Let’s talk a little about why you’re skeptical...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NexusMutual - on chain smart contract coverage...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>All the information used to be on Reddit, and ...</td>\n",
|
||
" <td>There are a lot of people with tools for thems...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>95</th>\n",
|
||
" <td>William Entriken</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Started using Ethereum in December.\\nCreated E...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>The #1 problem:\\nMy mom wants to buy ETH. In o...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Lack of private/business incentive to solve Ba...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>96</th>\n",
|
||
" <td>Christopher Goes</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Wyvern is an application agnostic protocol for...</td>\n",
|
||
" <td>Solidity, Typescript, Truffle for deployment, ...</td>\n",
|
||
" <td>Solidity - I find it difficult to write comple...</td>\n",
|
||
" <td>Oyente\\nSolCoverage is super useful\\nJavascrip...</td>\n",
|
||
" <td>Local, easy Solidity interpreter\\nCurrently, t...</td>\n",
|
||
" <td>What are the barriers to Wyvern usability (by ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Introduction to Ethereum Medium post: https://...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>97</th>\n",
|
||
" <td>Matt Condon</td>\n",
|
||
" <td>Nothing, no real process besides following bes...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Built a raffle contract, but didn’t ship it be...</td>\n",
|
||
" <td>Truffle, Infura, MetaMask, Etherscan, Remix, S...</td>\n",
|
||
" <td>Iteration cycle is slow, especially compared t...</td>\n",
|
||
" <td>Try not use truffle test.\\nNever written a sol...</td>\n",
|
||
" <td>Truffle has a lot of rough edges (documented e...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Mental model of how blockchains work. Also men...</td>\n",
|
||
" <td>Biggest hype tech is token-curated registries....</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>All of the people in Cape Town that I just met.</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>98</th>\n",
|
||
" <td>Ramon Recuero</td>\n",
|
||
" <td>Found a list of the top 10 security vulnerabil...</td>\n",
|
||
" <td>Having difficulty in hiring people – most engi...</td>\n",
|
||
" <td>Last summer, developed Redis on Ethereum. Simp...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Was pleasantly surprised with Truffle - testin...</td>\n",
|
||
" <td>Redis had the smart contract. Made an npm libr...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Testing in Truffle.\\nIs simple if you come fro...</td>\n",
|
||
" <td>Blockchain Berkeley Lab – professor – working ...</td>\n",
|
||
" <td>Did Coursera course to implement blockchain, b...</td>\n",
|
||
" <td>Share your learnings, get the community back i...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>99</th>\n",
|
||
" <td>Facu Spagnuolo</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>For governance:\\nWe are still exploring which ...</td>\n",
|
||
" <td>I studied Computer Engineering and am a full s...</td>\n",
|
||
" <td>Truffle - I don’t really like it, but have to ...</td>\n",
|
||
" <td>Speed of testing in Truffle is taking ~15min a...</td>\n",
|
||
" <td>We use Travis CI.\\nCoverall for coverage tests...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Upgradable smart contracts?\\nWe’ve been explor...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Zeppelin OS!!\\nReally excited to see a lot of ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Fran Giordano from Zeppelin - knows a lot abou...</td>\n",
|
||
" <td>People in zeppelin are the best resources I ha...</td>\n",
|
||
" <td>I would love to know how people got involved a...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>100</th>\n",
|
||
" <td>Manuel Araoz</td>\n",
|
||
" <td>We design first then develop.\\nSometimes they ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Open Zeppelin: open source smart contract fram...</td>\n",
|
||
" <td>Use the truffle toolkit the entire way. Truffl...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Truffle automated testing with javascript unit...</td>\n",
|
||
" <td>Upgradability\\nWe’re going to build an upgrada...</td>\n",
|
||
" <td>Interesting: Solidity compiler team runs OpenZ...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Jorge from Aragon.\\nKevin Owocki from Gitcoin....</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>101</th>\n",
|
||
" <td>Brendan Chou</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>On chain derivatives for erc-20 tokens\\nOpen s...</td>\n",
|
||
" <td>Remix for smart contracts\\nWriting Javascript ...</td>\n",
|
||
" <td>Running tests in Truffle doesn’t show you why/...</td>\n",
|
||
" <td>Mocha, js unit tests on Truffle</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Anything that helps us iterate faster. Tests c...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Solidity readthedocs, stack overflow, google s...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>102</th>\n",
|
||
" <td>Lane Rettig</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Core developer for EWASM, but independent and ...</td>\n",
|
||
" <td>Use vim, tmux and work way down in the protoco...</td>\n",
|
||
" <td>Testing - “is a nightmare.” The way it is done...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Working on evm2wasm in JS - we need to be able...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>WASM allows people to write contracts in non-E...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Solidity tutorials on ethereum.org was the pla...</td>\n",
|
||
" <td>Product management mindset is incredibly impor...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>103</th>\n",
|
||
" <td>Kames</td>\n",
|
||
" <td>The mainnet launch was very minimal. Using seg...</td>\n",
|
||
" <td>Education platform that is not focused on a bu...</td>\n",
|
||
" <td>I am working on uPort as a community a manager...</td>\n",
|
||
" <td>Eth.js, we use Nick Dodson’s stuff. Inject web...</td>\n",
|
||
" <td>Personally, I don’t have that many frustration...</td>\n",
|
||
" <td>We run a lot of unit tests on the JavaScript, ...</td>\n",
|
||
" <td>Drag and drop website builder for dApps, I’m w...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Wrapping the head around everything in the eco...</td>\n",
|
||
" <td>The overwhelming amount of events. ETHGlobal i...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>Linnia, they are doing market dataplaces for y...</td>\n",
|
||
" <td>Loom’s CryptoZombies and their general onboard...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>104 rows × 15 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" Name \\\n",
|
||
"0 Fabio Berger + Remco Bloemen \n",
|
||
"1 Leo Logvinov \n",
|
||
"2 Axel Ericsson \n",
|
||
"3 Mike Goldin \n",
|
||
"4 Oleksii \n",
|
||
"5 Brett Sun \n",
|
||
"6 Jorge Izquierdo \n",
|
||
"7 Jack Peterson and Sparkle \n",
|
||
"8 Joey Krug \n",
|
||
"9 Mark Beylin \n",
|
||
"10 Aidan Hyman \n",
|
||
"11 Greg, Stu, David \n",
|
||
"12 Jon Maurelian \n",
|
||
"13 Nick Dodson \n",
|
||
"14 Ilan Benbrith \n",
|
||
"15 Goncalo Sa \n",
|
||
"16 Fabiano, Jordan, Nick \n",
|
||
"17 Andy Milenius \n",
|
||
"18 Esteban Ordano \n",
|
||
"19 Matias Bargas \n",
|
||
"20 Nadav Hollander \n",
|
||
"21 Alex van de Sande \n",
|
||
"22 Nick Johnson \n",
|
||
"23 Elena Nadolinski \n",
|
||
"24 Swaroop \n",
|
||
"25 Alex Beregszazzi & Pawel Bylica \n",
|
||
"26 Christian Reitwiessner \n",
|
||
"27 Fabian Vogelsteller \n",
|
||
"28 Hudson Jameson \n",
|
||
"29 Martin Swende \n",
|
||
".. ... \n",
|
||
"74 Scott Wright \n",
|
||
"75 Felix Feng \n",
|
||
"76 Simon Jentzsch \n",
|
||
"77 Fernando G \n",
|
||
"78 Dandelion \n",
|
||
"79 David Wolever \n",
|
||
"80 James Young \n",
|
||
"81 Doug Hoyte \n",
|
||
"82 Ricardo Guillerme Schmidt \n",
|
||
"83 Richard Ramos \n",
|
||
"84 Bob Summerwill \n",
|
||
"85 Yaniv Tal and Brandon Ramirez \n",
|
||
"86 Sina Habibian \n",
|
||
"87 Truffle Team \n",
|
||
"88 Preethi Kasireddy \n",
|
||
"89 Alexey Akhunov \n",
|
||
"90 Simon de la Rouviere \n",
|
||
"91 Alvaro \n",
|
||
"92 Javier Franco \n",
|
||
"93 Rick Dudley \n",
|
||
"94 Evan Van Ness \n",
|
||
"95 William Entriken \n",
|
||
"96 Christopher Goes \n",
|
||
"97 Matt Condon \n",
|
||
"98 Ramon Recuero \n",
|
||
"99 Facu Spagnuolo \n",
|
||
"100 Manuel Araoz \n",
|
||
"101 Brendan Chou \n",
|
||
"102 Lane Rettig \n",
|
||
"103 Kames \n",
|
||
"\n",
|
||
" How do you handle smart contract verification and security? \\\n",
|
||
"0 Code audits before deployment\\nWant to add a f... \n",
|
||
"1 NaN \n",
|
||
"2 Human thinking and auditing.\\nWill find some e... \n",
|
||
"3 NaN \n",
|
||
"4 We have written our own tools which tell us, f... \n",
|
||
"5 Human audits only right now.\\nTrailofbits is r... \n",
|
||
"6 NaN \n",
|
||
"7 Pay others to think about it - no process yet.... \n",
|
||
"8 Yeah, encourage everyone to use auditors. Lots... \n",
|
||
"9 Consensys diligence is an auditing team availa... \n",
|
||
"10 NaN \n",
|
||
"11 Mythril, as mentioned above. \n",
|
||
"12 NaN \n",
|
||
"13 Mythril will be useful when in full bloom - ne... \n",
|
||
"14 Consensys Diligence provides some of the best ... \n",
|
||
"15 NaN \n",
|
||
"16 Audit code: bounty hunt program, found one maj... \n",
|
||
"17 NaN \n",
|
||
"18 NaN \n",
|
||
"19 NaN \n",
|
||
"20 Write down in plain text documents what the in... \n",
|
||
"21 NaN \n",
|
||
"22 Write a spec and define edge cases and corner ... \n",
|
||
"23 NaN \n",
|
||
"24 NaN \n",
|
||
"25 NaN \n",
|
||
"26 NaN \n",
|
||
"27 NaN \n",
|
||
"28 Use the Remix tool to just scan for general bu... \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 NaN \n",
|
||
"75 Contracted security auditing firm before launc... \n",
|
||
"76 NaN \n",
|
||
"77 I always try to keep myself on top of existing... \n",
|
||
"78 NaN \n",
|
||
"79 Front end: nothing really\\nDapp: went through ... \n",
|
||
"80 We had multiple audits at multiple periods of ... \n",
|
||
"81 Trying to keep everything as simple as possibl... \n",
|
||
"82 No major process. “This function should do one... \n",
|
||
"83 NaN \n",
|
||
"84 As good as that gets right now, there are vari... \n",
|
||
"85 Instead of statically linking contracts, you f... \n",
|
||
"86 A bunch of upfront discussions and security an... \n",
|
||
"87 NaN \n",
|
||
"88 In the past, OpenZeppelin. Don’t think we’ll u... \n",
|
||
"89 NaN \n",
|
||
"90 NaN \n",
|
||
"91 NaN \n",
|
||
"92 NaN \n",
|
||
"93 NaN \n",
|
||
"94 NaN \n",
|
||
"95 NaN \n",
|
||
"96 NaN \n",
|
||
"97 Nothing, no real process besides following bes... \n",
|
||
"98 Found a list of the top 10 security vulnerabil... \n",
|
||
"99 NaN \n",
|
||
"100 We design first then develop.\\nSometimes they ... \n",
|
||
"101 NaN \n",
|
||
"102 NaN \n",
|
||
"103 The mainnet launch was very minimal. Using seg... \n",
|
||
"\n",
|
||
" Other bounties? \\\n",
|
||
"0 Rest of the bounties from Remco\\nState-watchin... \n",
|
||
"1 There is a limit on local variable numbers (ha... \n",
|
||
"2 Breaking out a javascript library for web page... \n",
|
||
"3 Pretty cool to have more languages for the EVM... \n",
|
||
"4 NaN \n",
|
||
"5 NaN \n",
|
||
"6 Infura that is more decentralized. A full-node... \n",
|
||
"7 NaN \n",
|
||
"8 NaN \n",
|
||
"9 NaN \n",
|
||
"10 NaN \n",
|
||
"11 NaN \n",
|
||
"12 NaN \n",
|
||
"13 NaN \n",
|
||
"14 NaN \n",
|
||
"15 None come to mind right now. Let’s keep the fo... \n",
|
||
"16 NaN \n",
|
||
"17 NaN \n",
|
||
"18 Biggest request: have ERC20 upgraded to ERC223... \n",
|
||
"19 NaN \n",
|
||
"20 A GREAT SOLIDITY DEBUGGER\\nA turnkey solution ... \n",
|
||
"21 Finding talented people is very hard. They are... \n",
|
||
"22 NaN \n",
|
||
"23 Documentation\\nDebugging, so helpful. A debugg... \n",
|
||
"24 NaN \n",
|
||
"25 NaN \n",
|
||
"26 Gas profiling:\\nSolidity does some upper-bound... \n",
|
||
"27 Need good IDEs:\\nRemix is good, but has proble... \n",
|
||
"28 Dev Grants from the Foundation\\nEthereum found... \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 NaN \n",
|
||
"75 Debugger\\nMore free automated formal verificat... \n",
|
||
"76 NaN \n",
|
||
"77 I think anything related to ease the whole lif... \n",
|
||
"78 NaN \n",
|
||
"79 NaN \n",
|
||
"80 Getting mainstream users onboarded. Informed b... \n",
|
||
"81 NaN \n",
|
||
"82 NaN \n",
|
||
"83 NaN \n",
|
||
"84 Work for GUI’s, development tools for GUI’s. C... \n",
|
||
"85 We need to ask, what are the barriers to dapps... \n",
|
||
"86 NaN \n",
|
||
"87 Set of tools: linters & coverage tools\\nCritic... \n",
|
||
"88 Testing and debugging!\\nKey management stuff. \n",
|
||
"89 Unification of testnets[a].\\nRinkeby & Kovan a... \n",
|
||
"90 Autonomous artist blueprint has existed for mo... \n",
|
||
"91 NaN \n",
|
||
"92 How to simplify the way to calculate the gasPr... \n",
|
||
"93 NaN \n",
|
||
"94 NaN \n",
|
||
"95 NaN \n",
|
||
"96 NaN \n",
|
||
"97 NaN \n",
|
||
"98 Having difficulty in hiring people – most engi... \n",
|
||
"99 For governance:\\nWe are still exploring which ... \n",
|
||
"100 NaN \n",
|
||
"101 NaN \n",
|
||
"102 NaN \n",
|
||
"103 Education platform that is not focused on a bu... \n",
|
||
"\n",
|
||
" Who are you and what are you working on? \\\n",
|
||
"0 0x - Decentralized exchange protocol. It is a ... \n",
|
||
"1 Started in blockchain 2 years ago in Berlin, w... \n",
|
||
"2 I have built 1Protocol\\nIt lets smart contract... \n",
|
||
"3 Software developer at Consensys\\nKnown for Tok... \n",
|
||
"4 Started working with smart contracts in early ... \n",
|
||
"5 Working on Aragon entirely.\\nThe end goal is t... \n",
|
||
"6 Aragon - Decentralized Governance platform\\nWe... \n",
|
||
"7 NaN \n",
|
||
"8 Co-Chief Investment Officer at Pantera Capital... \n",
|
||
"9 Creator of the Bounties Network. Bounties on a... \n",
|
||
"10 Working with parity and geth and parity-bridge... \n",
|
||
"11 David: EVM layer stuff: interactions between o... \n",
|
||
"12 I work at Consensys Diligence doing audits; si... \n",
|
||
"13 Working on experimental infrastructure. ARES, ... \n",
|
||
"14 I’m the Technical PM at Consensys Academy work... \n",
|
||
"15 I work at Consensys Diligence - focus on secur... \n",
|
||
"16 Cryptokitties! Goals they have are to get mult... \n",
|
||
"17 DappHub:\\nWorking on dev tools since I got int... \n",
|
||
"18 I’m hiring two or three people – excellent eng... \n",
|
||
"19 I used to be an investor, but came to crypto a... \n",
|
||
"20 Building Dharma - open protocol for tokenized ... \n",
|
||
"21 Working on Mist, the Ethereum browser.\\nDevelo... \n",
|
||
"22 ENS: documentation, smart contracts, UI’s,\\nAu... \n",
|
||
"23 Last 6 months have been working on Solidity, E... \n",
|
||
"24 We are building EthVigil an API gateway to to ... \n",
|
||
"25 Pawel - focused on VM in general, spent a lot ... \n",
|
||
"26 90% of my time: design of Solidity language an... \n",
|
||
"27 My future project: Lukso blockchain: EVM-based... \n",
|
||
"28 Mainly focused on solidity smart contracts. A ... \n",
|
||
"29 I was a security professional, doing consultin... \n",
|
||
".. ... \n",
|
||
"74 Just simple stuff - proofs of concept.\\nWorkin... \n",
|
||
"75 Founder of Set Protocol, wrote all the smart c... \n",
|
||
"76 CTO of SlockIt.\\nDaily standups like any other... \n",
|
||
"77 I am a developer, working in London for the la... \n",
|
||
"78 SourcCred - bounties and reputation for open s... \n",
|
||
"79 Been working with Spankchain team. Combination... \n",
|
||
"80 Work primarily with Spankchain, doing state ch... \n",
|
||
"81 Doug Hoyte, working on sportcrypt.com, a sport... \n",
|
||
"82 Development of smart contracts for Status.\\nCa... \n",
|
||
"83 Smart contract developer at Status, also worki... \n",
|
||
"84 Been involved with the Ethereum community sinc... \n",
|
||
"85 Yaniv and Brandon from The Graph, query protoc... \n",
|
||
"86 I started in January or February of this year,... \n",
|
||
"87 NaN \n",
|
||
"88 I’m the founder and CEO of Trustory, an app th... \n",
|
||
"89 Been in Ethereum since the beginning. Was foll... \n",
|
||
"90 I have been in blockchain since 2013 working i... \n",
|
||
"91 VirtuePoker – offchain game, smart contracts t... \n",
|
||
"92 VirtuePoker –– making the migration to the new... \n",
|
||
"93 I worked on EthPM briefly.\\nI gave up in frust... \n",
|
||
"94 Have only ever played around very early, but n... \n",
|
||
"95 Started using Ethereum in December.\\nCreated E... \n",
|
||
"96 Wyvern is an application agnostic protocol for... \n",
|
||
"97 Built a raffle contract, but didn’t ship it be... \n",
|
||
"98 Last summer, developed Redis on Ethereum. Simp... \n",
|
||
"99 I studied Computer Engineering and am a full s... \n",
|
||
"100 Open Zeppelin: open source smart contract fram... \n",
|
||
"101 On chain derivatives for erc-20 tokens\\nOpen s... \n",
|
||
"102 Core developer for EWASM, but independent and ... \n",
|
||
"103 I am working on uPort as a community a manager... \n",
|
||
"\n",
|
||
" What are the tools/libraries/frameworks you use? \\\n",
|
||
"0 EthereumJS / truffle hardwallet provider / Typ... \n",
|
||
"1 NaN \n",
|
||
"2 Just web3JS and the python raiden client \n",
|
||
"3 Truffle, useful as a testing framework.\\nSolid... \n",
|
||
"4 NaN \n",
|
||
"5 Four categories:\\nEVM and lower level stuff:\\n... \n",
|
||
"6 NaN \n",
|
||
"7 Back-end: Visual Studio Code with docker image... \n",
|
||
"8 At Augur, stack is different as it’s a bit old... \n",
|
||
"9 I know and use the solium linter.\\nUse truffle... \n",
|
||
"10 Truffle\\nLack of modularity is the biggest pro... \n",
|
||
"11 JetBrains suite as an IDE. Remix comes in ther... \n",
|
||
"12 We use Truffle a lot (never had to use Dapple ... \n",
|
||
"13 Solidity Compiler\\nThe C version is very fast ... \n",
|
||
"14 Truffle, Ganache, Remix, Metamask etc.\\nFront ... \n",
|
||
"15 I used to use Remix a lot more than I do today... \n",
|
||
"16 Been a while since we have done smart contract... \n",
|
||
"17 NaN \n",
|
||
"18 NaN \n",
|
||
"19 The whole Ethereum stack, basically.\\nTruffle\\... \n",
|
||
"20 I like to use Typescript for testing.\\n0x team... \n",
|
||
"21 NaN \n",
|
||
"22 Open Zeppelin tools are increasingly good. But... \n",
|
||
"23 Use Truffle because it’s by far the best frame... \n",
|
||
"24 Mostly custom tools. Started with web3, starte... \n",
|
||
"25 NaN \n",
|
||
"26 NaN \n",
|
||
"27 Web3.js\\nHistory:\\nInitially, it was built by ... \n",
|
||
"28 Remix, MyEtherWallet, MetaMask \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 Remix\\nGeth obviously\\nSolC for compiling\\nYar... \n",
|
||
"75 Internal javascript library in Typescript for ... \n",
|
||
"76 Start with Truffle - mainly for testing and se... \n",
|
||
"77 Well, it depends, when I build tools related t... \n",
|
||
"78 NaN \n",
|
||
"79 Vim editor, truffle. Metamask.\\nSwitching over... \n",
|
||
"80 We use Truffle, and Ganache on the web3 blockc... \n",
|
||
"81 web3.js, ethereumjs-util, solc, testrpc, parit... \n",
|
||
"82 Microsoft VS code, Git, Remix for manual tests... \n",
|
||
"83 Embark, obviously!\\nNot just a framework for w... \n",
|
||
"84 Most of his work has been on the platform work... \n",
|
||
"85 Been using Truffle for Solidity. Remix on occa... \n",
|
||
"86 Vim with solidity syntax highlighter, truffle ... \n",
|
||
"87 Chris:\\nThe closer you are the foundation of t... \n",
|
||
"88 With Ethereum, for Trustory, we will write sma... \n",
|
||
"89 Geth.\\nCan pass in --cpu-profile\\nUses basic s... \n",
|
||
"90 I am the smart contract lead at Ujo, so spend ... \n",
|
||
"91 NaN \n",
|
||
"92 NaN \n",
|
||
"93 NaN \n",
|
||
"94 NaN \n",
|
||
"95 NaN \n",
|
||
"96 Solidity, Typescript, Truffle for deployment, ... \n",
|
||
"97 Truffle, Infura, MetaMask, Etherscan, Remix, S... \n",
|
||
"98 NaN \n",
|
||
"99 Truffle - I don’t really like it, but have to ... \n",
|
||
"100 Use the truffle toolkit the entire way. Truffl... \n",
|
||
"101 Remix for smart contracts\\nWriting Javascript ... \n",
|
||
"102 Use vim, tmux and work way down in the protoco... \n",
|
||
"103 Eth.js, we use Nick Dodson’s stuff. Inject web... \n",
|
||
"\n",
|
||
" What are your biggest frustrations? \\\n",
|
||
"0 Getting a simple experimental environment up i... \n",
|
||
"1 Event watching - unreliable, no support for ba... \n",
|
||
"2 NaN \n",
|
||
"3 Truffle’s debugger is a bit disappointing. Wor... \n",
|
||
"4 Our original vision was to do everything – tes... \n",
|
||
"5 My biggest general frustration comes with the ... \n",
|
||
"6 NaN \n",
|
||
"7 Lack of a debugger - by far the biggest issue.... \n",
|
||
"8 At the end of the day, it all comes down to th... \n",
|
||
"9 Not being able to upgrade my contracts easily.... \n",
|
||
"10 NaN \n",
|
||
"11 Up to date documentation!!\\nSystem dependence ... \n",
|
||
"12 Auditing:\\nA lot of my time is spent understan... \n",
|
||
"13 Data verifiability problem - nobody is going t... \n",
|
||
"14 Gas and fees is a common frustration, given th... \n",
|
||
"15 I really, really want a good visual debugger. ... \n",
|
||
"16 The lack of proper debugging support. That cau... \n",
|
||
"17 Ethereum relies heavily on Javascript dev tool... \n",
|
||
"18 NaN \n",
|
||
"19 Real monitoring information is tough to come b... \n",
|
||
"20 NaN \n",
|
||
"21 Securing Electron (desktop JS) was hard. (JS i... \n",
|
||
"22 NaN \n",
|
||
"23 Lack of error messages, since Solidity 24 you ... \n",
|
||
"24 NaN \n",
|
||
"25 Communication is bad within EF and within ecos... \n",
|
||
"26 NaN \n",
|
||
"27 NaN \n",
|
||
"28 Hard to read error messages. Solidity and EVM ... \n",
|
||
"29 Definitely a need for more developers, either ... \n",
|
||
".. ... \n",
|
||
"74 Hasn’t happened across too much yet! Been work... \n",
|
||
"75 Truffle migrate on main net\\nWeird configurati... \n",
|
||
"76 IDE integration\\nThere are tools and plugins f... \n",
|
||
"77 Maybe it is my fault, but I would like to see ... \n",
|
||
"78 Highly adversarial environment makes it hard t... \n",
|
||
"79 Gas limit: No problems with this really.\\nMeta... \n",
|
||
"80 When I’m doing unit tests in Truffle, not know... \n",
|
||
"81 Docs are usually out-of-date, plain wrong, or ... \n",
|
||
"82 Being unable to returns strings nicely. Regula... \n",
|
||
"83 Working with MetaMask and your local node/test... \n",
|
||
"84 Where we are at now is a transition between am... \n",
|
||
"85 Artificial limitations in Solidity, number of ... \n",
|
||
"86 Super slow cycle due to testing.\\nAre you runn... \n",
|
||
"87 It’s downstream on Etheruem and Web 3js; upstr... \n",
|
||
"88 Not enough standard libs. Creating a dApp, the... \n",
|
||
"89 Yesterday – spent 3 hours!!! – fixing compiler... \n",
|
||
"90 For me, it’s always been harder to evaluate th... \n",
|
||
"91 Whisper\\nBuilding a p2p game. We tried using W... \n",
|
||
"92 Gas costs:\\nEthereum price increased, gas pric... \n",
|
||
"93 Lack of people over 40 – naivete.\\nTrust and g... \n",
|
||
"94 It’s tough for everybody in this space to bala... \n",
|
||
"95 The #1 problem:\\nMy mom wants to buy ETH. In o... \n",
|
||
"96 Solidity - I find it difficult to write comple... \n",
|
||
"97 Iteration cycle is slow, especially compared t... \n",
|
||
"98 Was pleasantly surprised with Truffle - testin... \n",
|
||
"99 Speed of testing in Truffle is taking ~15min a... \n",
|
||
"100 NaN \n",
|
||
"101 Running tests in Truffle doesn’t show you why/... \n",
|
||
"102 Testing - “is a nightmare.” The way it is done... \n",
|
||
"103 Personally, I don’t have that many frustration... \n",
|
||
"\n",
|
||
" How do you handle testing? \\\n",
|
||
"0 Testrpc has gotten better ––\\nIncreases the sp... \n",
|
||
"1 NaN \n",
|
||
"2 Truffle suite. Before that, built our own unit... \n",
|
||
"3 Writes tests in Javascript\\nSol Coverage tool\\... \n",
|
||
"4 NaN \n",
|
||
"5 In addition to the above we also use solidity-... \n",
|
||
"6 NaN \n",
|
||
"7 NaN \n",
|
||
"8 Run against pyethereum. Test suite is written ... \n",
|
||
"9 Mocha tests using Truffle and testrpc.\\nAlso u... \n",
|
||
"10 Talk with Stu, who handles all the testing stu... \n",
|
||
"11 Mostly unit tests in mocha and chai.\\nMostly u... \n",
|
||
"12 NaN \n",
|
||
"13 NaN \n",
|
||
"14 Truffle testing\\nBest practices resources \n",
|
||
"15 Remix, Surya and Mythril as above.\\nVery small... \n",
|
||
"16 Standard testing and using community to audit ... \n",
|
||
"17 NaN \n",
|
||
"18 NaN \n",
|
||
"19 NaN \n",
|
||
"20 Truffle to write JS unit tests.\\n** There are ... \n",
|
||
"21 People build new features, we check, and then ... \n",
|
||
"22 Truffle unit testing with mocha\\nAdded built i... \n",
|
||
"23 Truffle for testing. Force people to do TTD in... \n",
|
||
"24 Basic unit tests, integration testing. So much... \n",
|
||
"25 NaN \n",
|
||
"26 NaN \n",
|
||
"27 NaN \n",
|
||
"28 Have been using Truffle more lately but was mo... \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 Automated testing?\\nThere’s an IDE that I’ve u... \n",
|
||
"75 Started with truffle tests\\nThen converted tes... \n",
|
||
"76 NaN \n",
|
||
"77 For unit testing I use truffle, I write JavaSc... \n",
|
||
"78 NaN \n",
|
||
"79 First, use Truffle for unit testing.\\nSeries o... \n",
|
||
"80 I test and retest. Wrote the auction contract ... \n",
|
||
"81 Custom test harness, could never figure out ho... \n",
|
||
"82 Automated testing?\\nFirst develop the smart co... \n",
|
||
"83 Mostly through unit testing in Embark. I creat... \n",
|
||
"84 NaN \n",
|
||
"85 Write a lot of tests, try to make them as comp... \n",
|
||
"86 Truffle and Javascript unit tests\\nFirst perso... \n",
|
||
"87 NaN \n",
|
||
"88 For JS, Mocha/Chai. In the past, used py-ether... \n",
|
||
"89 NaN \n",
|
||
"90 Mythril is very useful and we use it.\\nWriting... \n",
|
||
"91 NaN \n",
|
||
"92 Testing our Dutch Auction ICO contract:\\nWe we... \n",
|
||
"93 I like the DappHub stuff; but it’s not fully i... \n",
|
||
"94 NaN \n",
|
||
"95 NaN \n",
|
||
"96 Oyente\\nSolCoverage is super useful\\nJavascrip... \n",
|
||
"97 Try not use truffle test.\\nNever written a sol... \n",
|
||
"98 Redis had the smart contract. Made an npm libr... \n",
|
||
"99 We use Travis CI.\\nCoverall for coverage tests... \n",
|
||
"100 Truffle automated testing with javascript unit... \n",
|
||
"101 Mocha, js unit tests on Truffle \n",
|
||
"102 NaN \n",
|
||
"103 We run a lot of unit tests on the JavaScript, ... \n",
|
||
"\n",
|
||
" What tools don’t exist at the moment? \\\n",
|
||
"0 NaN \n",
|
||
"1 Prettier type plugin for solidity. I don’t hav... \n",
|
||
"2 There is no tooling or anything related to sta... \n",
|
||
"3 Fuzz Testing and formal verification desired. \n",
|
||
"4 NaN \n",
|
||
"5 A nice debugger! Please…\\nMore infrastructure ... \n",
|
||
"6 NaN \n",
|
||
"7 Setting breakpoints in tests!\\nSalesforce Deve... \n",
|
||
"8 My answers changed over a time, 1 year ago it ... \n",
|
||
"9 Better querying possibilities on the state of ... \n",
|
||
"10 Mythril for the EVM stack. Rewrite a complete ... \n",
|
||
"11 EVMLab certainly has some of the features requ... \n",
|
||
"12 NaN \n",
|
||
"13 NaN \n",
|
||
"14 Drizzle is a really cool idea for front-end de... \n",
|
||
"15 A proper, local dummy client. I love the Truff... \n",
|
||
"16 2 main areas with significant problems:\\nData ... \n",
|
||
"17 NaN \n",
|
||
"18 NaN \n",
|
||
"19 Starting from the infrastructure stuff: we nee... \n",
|
||
"20 Good logging and debugging\\nSetting up your ow... \n",
|
||
"21 NaN \n",
|
||
"22 Byzantium added return data size (prevents arb... \n",
|
||
"23 A lot of tools exist but aren’t being utilized... \n",
|
||
"24 Web3 is a library to make it easier for a lot ... \n",
|
||
"25 NaN \n",
|
||
"26 NaN \n",
|
||
"27 NaN \n",
|
||
"28 Remix combines an editor with a deployment mec... \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 Automated testing - I want a testing suite, a ... \n",
|
||
"75 Debugger. Especially as contracts start linkin... \n",
|
||
"76 Scalability is long-hoped for and looked forwa... \n",
|
||
"77 Good question, there is a lot of ecosystem tha... \n",
|
||
"78 At core abstractions layer. If SourceCred depe... \n",
|
||
"79 Need a tool like metamask supporting state cha... \n",
|
||
"80 I wish and a hope there is bachelor’s in block... \n",
|
||
"81 Hmmm, a good light client implementation so ev... \n",
|
||
"82 Would be very good if VScode had the same thin... \n",
|
||
"83 If I want to build things that are secure AND ... \n",
|
||
"84 Interactive debugging. Truffle and Remix have ... \n",
|
||
"85 Pretty common for people to develop contracts ... \n",
|
||
"86 Testing is so important in this space, but tes... \n",
|
||
"87 NaN \n",
|
||
"88 Debugging. We don’t use Truffle, and if you’re... \n",
|
||
"89 NaN \n",
|
||
"90 One thing that comes to mind is a mature, ince... \n",
|
||
"91 NaN \n",
|
||
"92 NaN \n",
|
||
"93 NaN \n",
|
||
"94 NaN \n",
|
||
"95 NaN \n",
|
||
"96 Local, easy Solidity interpreter\\nCurrently, t... \n",
|
||
"97 Truffle has a lot of rough edges (documented e... \n",
|
||
"98 NaN \n",
|
||
"99 NaN \n",
|
||
"100 Upgradability\\nWe’re going to build an upgrada... \n",
|
||
"101 NaN \n",
|
||
"102 Working on evm2wasm in JS - we need to be able... \n",
|
||
"103 Drag and drop website builder for dApps, I’m w... \n",
|
||
"\n",
|
||
" Other domain specific questions? \\\n",
|
||
"0 NaN \n",
|
||
"1 What has your experience been like working on ... \n",
|
||
"2 NaN \n",
|
||
"3 NaN \n",
|
||
"4 What are other great tools you have used?\\nEth... \n",
|
||
"5 NaN \n",
|
||
"6 Tell us more about getting deep into the EVM?\\... \n",
|
||
"7 Let’s talk specifically about UI issues / scal... \n",
|
||
"8 Would be useful if the Ethereum project could ... \n",
|
||
"9 NaN \n",
|
||
"10 NaN \n",
|
||
"11 NaN \n",
|
||
"12 NaN \n",
|
||
"13 Tell us more about TCRs and DAOs?\\nThere are m... \n",
|
||
"14 NaN \n",
|
||
"15 What are the details/patterns in smart contrac... \n",
|
||
"16 Have you written any open source tools for sca... \n",
|
||
"17 NaN \n",
|
||
"18 NaN \n",
|
||
"19 NaN \n",
|
||
"20 NaN \n",
|
||
"21 NaN \n",
|
||
"22 NaN \n",
|
||
"23 NaN \n",
|
||
"24 NaN \n",
|
||
"25 NaN \n",
|
||
"26 Tell us more about computational scalability o... \n",
|
||
"27 NaN \n",
|
||
"28 NaN \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 NaN \n",
|
||
"75 NaN \n",
|
||
"76 IOT security challenges?\\nUse blockchain to en... \n",
|
||
"77 NaN \n",
|
||
"78 NaN \n",
|
||
"79 NaN \n",
|
||
"80 NaN \n",
|
||
"81 NaN \n",
|
||
"82 NaN \n",
|
||
"83 Let’s talk about Embark further. What do you s... \n",
|
||
"84 NaN \n",
|
||
"85 How have you found working on Aragon, esp. APM... \n",
|
||
"86 NaN \n",
|
||
"87 Integration between truffle & ganache?\\nWe’d l... \n",
|
||
"88 NaN \n",
|
||
"89 Optimizing Geth:\\nIt all started with a rough ... \n",
|
||
"90 What are the biggest challenges for Ethereum r... \n",
|
||
"91 NaN \n",
|
||
"92 NaN \n",
|
||
"93 Bottom-up sharding scheme\\nAn app-sharding mod... \n",
|
||
"94 Let’s talk a little about why you’re skeptical... \n",
|
||
"95 Lack of private/business incentive to solve Ba... \n",
|
||
"96 What are the barriers to Wyvern usability (by ... \n",
|
||
"97 NaN \n",
|
||
"98 NaN \n",
|
||
"99 Upgradable smart contracts?\\nWe’ve been explor... \n",
|
||
"100 Interesting: Solidity compiler team runs OpenZ... \n",
|
||
"101 NaN \n",
|
||
"102 NaN \n",
|
||
"103 NaN \n",
|
||
"\n",
|
||
" What was the hardest part about learning to develop with Ethereum? \\\n",
|
||
"0 NaN \n",
|
||
"1 NaN \n",
|
||
"2 Solidity is changing so quickly that, as an ex... \n",
|
||
"3 Hardest part is learning to develop in a block... \n",
|
||
"4 NaN \n",
|
||
"5 NaN \n",
|
||
"6 NaN \n",
|
||
"7 What steps do I need to follow to write these ... \n",
|
||
"8 NaN \n",
|
||
"9 Didn’t understand the stack. People don’t unde... \n",
|
||
"10 NaN \n",
|
||
"11 Greg: Looked at web3 documentation (as it was ... \n",
|
||
"12 NaN \n",
|
||
"13 NaN \n",
|
||
"14 NaN \n",
|
||
"15 NaN \n",
|
||
"16 The real problems come into play when you are ... \n",
|
||
"17 NaN \n",
|
||
"18 Pains:\\nThe gas issues – the expensiveness of ... \n",
|
||
"19 NaN \n",
|
||
"20 NaN \n",
|
||
"21 One dev working on a backend integration – I s... \n",
|
||
"22 Becoming familiar with the execution model\\nYo... \n",
|
||
"23 It’s a myth for how hard it is. “I’m a Solidit... \n",
|
||
"24 The first thing I built was a tool that looks ... \n",
|
||
"25 NaN \n",
|
||
"26 NaN \n",
|
||
"27 NaN \n",
|
||
"28 The resources are pretty spread out, and every... \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 Would have been that initial setup of the deve... \n",
|
||
"75 Truffle needs to be easier for beginners. Toug... \n",
|
||
"76 NaN \n",
|
||
"77 NaN \n",
|
||
"78 NaN \n",
|
||
"79 No real breakdown of how everything works toge... \n",
|
||
"80 Knowing what Gitter channels, Slack channels, ... \n",
|
||
"81 Working around web3/metamask bugs \n",
|
||
"82 Not sure, not actually difficult. If you under... \n",
|
||
"83 NaN \n",
|
||
"84 Where are the tools? There’s nothing, going ba... \n",
|
||
"85 NaN \n",
|
||
"86 Wrapping my head around potential attacks and ... \n",
|
||
"87 NaN \n",
|
||
"88 Everything. Nothing follows a standard.\\nBigge... \n",
|
||
"89 NaN \n",
|
||
"90 NaN \n",
|
||
"91 NaN \n",
|
||
"92 NaN \n",
|
||
"93 NaN \n",
|
||
"94 NaN \n",
|
||
"95 NaN \n",
|
||
"96 NaN \n",
|
||
"97 Mental model of how blockchains work. Also men... \n",
|
||
"98 NaN \n",
|
||
"99 NaN \n",
|
||
"100 NaN \n",
|
||
"101 NaN \n",
|
||
"102 NaN \n",
|
||
"103 Wrapping the head around everything in the eco... \n",
|
||
"\n",
|
||
" What are you most excited about in the short term? \\\n",
|
||
"0 NaN \n",
|
||
"1 NaN \n",
|
||
"2 Raiden is the golden egg in the space. The exp... \n",
|
||
"3 Excited for Casper\\nApplications implemented i... \n",
|
||
"4 NaN \n",
|
||
"5 NaN \n",
|
||
"6 NaN \n",
|
||
"7 Raiden is coming shortly and will be very cool... \n",
|
||
"8 In the short term, he’s most excited about Mak... \n",
|
||
"9 Sharding. That’s all I want.\\nuPort is getting... \n",
|
||
"10 Two of our most exciting projects:\\nShift - de... \n",
|
||
"11 NaN \n",
|
||
"12 NaN \n",
|
||
"13 NaN \n",
|
||
"14 NaN \n",
|
||
"15 NaN \n",
|
||
"16 The thing we are excited about most in the nex... \n",
|
||
"17 NaN \n",
|
||
"18 NaN \n",
|
||
"19 The Decentraland client!! Woot woot.\\nSomethin... \n",
|
||
"20 NaN \n",
|
||
"21 NaN \n",
|
||
"22 NaN \n",
|
||
"23 Quitting her job to start her own project so v... \n",
|
||
"24 We built a platform to help people use blockch... \n",
|
||
"25 NaN \n",
|
||
"26 NaN \n",
|
||
"27 NaN \n",
|
||
"28 Casper. It’s already kind of going into testin... \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 Vyper!\\nHave big hopes for truffle - has a lot... \n",
|
||
"75 Ethereum proof of stake\\n0x open source tools.... \n",
|
||
"76 NaN \n",
|
||
"77 Scalability improvements. I want sharding and ... \n",
|
||
"78 NaN \n",
|
||
"79 Ours. Spankchain. \n",
|
||
"80 Actually having micropayments be a thing and s... \n",
|
||
"81 Building out our product, watching adoption gr... \n",
|
||
"82 Excited about Golem. I really want to use it b... \n",
|
||
"83 Status!!!\\nPlasma cash is really interesting a... \n",
|
||
"84 I am excited about preaching about the end of ... \n",
|
||
"85 Plasma stuff. Obviously early days, but we wan... \n",
|
||
"86 TrueBit because it gives you the ability to ru... \n",
|
||
"87 NaN \n",
|
||
"88 For my app to launch!\\nExcited for Casper, for... \n",
|
||
"89 NaN \n",
|
||
"90 Curation markets!\\nMore collectible stuff. The... \n",
|
||
"91 NaN \n",
|
||
"92 NaN \n",
|
||
"93 NaN \n",
|
||
"94 NexusMutual - on chain smart contract coverage... \n",
|
||
"95 NaN \n",
|
||
"96 NaN \n",
|
||
"97 Biggest hype tech is token-curated registries.... \n",
|
||
"98 NaN \n",
|
||
"99 Zeppelin OS!!\\nReally excited to see a lot of ... \n",
|
||
"100 NaN \n",
|
||
"101 Anything that helps us iterate faster. Tests c... \n",
|
||
"102 WASM allows people to write contracts in non-E... \n",
|
||
"103 The overwhelming amount of events. ETHGlobal i... \n",
|
||
"\n",
|
||
" Was anything easier than expected? \\\n",
|
||
"0 NaN \n",
|
||
"1 NaN \n",
|
||
"2 Writing smart contracts is surprisingly neat. ... \n",
|
||
"3 What’s really easy is programming money.\\nOn b... \n",
|
||
"4 NaN \n",
|
||
"5 NaN \n",
|
||
"6 NaN \n",
|
||
"7 NaN \n",
|
||
"8 NaN \n",
|
||
"9 NaN \n",
|
||
"10 NaN \n",
|
||
"11 Community! Going to EDCON was an eye-opening, ... \n",
|
||
"12 NaN \n",
|
||
"13 NaN \n",
|
||
"14 We’re still so early on but we hope to incorpo... \n",
|
||
"15 NaN \n",
|
||
"16 NaN \n",
|
||
"17 NaN \n",
|
||
"18 NaN \n",
|
||
"19 No, not really.\\nActually, extending the open ... \n",
|
||
"20 NaN \n",
|
||
"21 NaN \n",
|
||
"22 NaN \n",
|
||
"23 NaN \n",
|
||
"24 NaN \n",
|
||
"25 NaN \n",
|
||
"26 NaN \n",
|
||
"27 NaN \n",
|
||
"28 NaN \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 NaN \n",
|
||
"75 MVP versions of product are easy. Handling all... \n",
|
||
"76 NaN \n",
|
||
"77 NaN \n",
|
||
"78 NaN \n",
|
||
"79 NaN \n",
|
||
"80 NaN \n",
|
||
"81 Solidity is supposed to be completely awful so... \n",
|
||
"82 NaN \n",
|
||
"83 Learning solidity and writing your fist smart ... \n",
|
||
"84 NaN \n",
|
||
"85 NaN \n",
|
||
"86 NaN \n",
|
||
"87 NaN \n",
|
||
"88 NaN \n",
|
||
"89 NaN \n",
|
||
"90 NaN \n",
|
||
"91 NaN \n",
|
||
"92 NaN \n",
|
||
"93 NaN \n",
|
||
"94 NaN \n",
|
||
"95 NaN \n",
|
||
"96 NaN \n",
|
||
"97 NaN \n",
|
||
"98 Testing in Truffle.\\nIs simple if you come fro... \n",
|
||
"99 NaN \n",
|
||
"100 NaN \n",
|
||
"101 NaN \n",
|
||
"102 NaN \n",
|
||
"103 NaN \n",
|
||
"\n",
|
||
" Who are the other people you think we should talk to? \\\n",
|
||
"0 NaN \n",
|
||
"1 NaN \n",
|
||
"2 NaN \n",
|
||
"3 Infura team, client development\\nSpankchain - ... \n",
|
||
"4 NaN \n",
|
||
"5 NaN \n",
|
||
"6 NaN \n",
|
||
"7 NaN \n",
|
||
"8 NaN \n",
|
||
"9 Joseph Vander (learning the be a solidity deve... \n",
|
||
"10 NaN \n",
|
||
"11 NaN \n",
|
||
"12 Piper Merriam\\nNick Johnson\\nChristian Lundkvi... \n",
|
||
"13 NaN \n",
|
||
"14 NaN \n",
|
||
"15 Bernard Miller from our team, focussed entirel... \n",
|
||
"16 NaN \n",
|
||
"17 NaN \n",
|
||
"18 Should speak with Fede –– should collaborate t... \n",
|
||
"19 NaN \n",
|
||
"20 NaN \n",
|
||
"21 Nick Johnson\\nRyan Zurrer \n",
|
||
"22 NaN \n",
|
||
"23 Christopher Gewecke, Wyvern team \n",
|
||
"24 NaN \n",
|
||
"25 NaN \n",
|
||
"26 NaN \n",
|
||
"27 NaN \n",
|
||
"28 Raine Revere from ShapeShift \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 NaN \n",
|
||
"75 NaN \n",
|
||
"76 NaN \n",
|
||
"77 Hmm not sure if you spoke to Bernhard Mueller,... \n",
|
||
"78 NaN \n",
|
||
"79 NaN \n",
|
||
"80 I would actually talk to operators that have s... \n",
|
||
"81 NaN \n",
|
||
"82 Jordi Baylina, James from Status, Luis Cuende ... \n",
|
||
"83 NaN \n",
|
||
"84 NaN \n",
|
||
"85 NaN \n",
|
||
"86 NaN \n",
|
||
"87 NaN \n",
|
||
"88 Head of Tendermint, Zaki .\\nAntonio Juliano CE... \n",
|
||
"89 Nick Johnson\\nPeter from Geth.\\nQuickblocks fo... \n",
|
||
"90 NaN \n",
|
||
"91 NaN \n",
|
||
"92 NaN \n",
|
||
"93 NaN \n",
|
||
"94 NaN \n",
|
||
"95 NaN \n",
|
||
"96 NaN \n",
|
||
"97 NaN \n",
|
||
"98 Blockchain Berkeley Lab – professor – working ... \n",
|
||
"99 Fran Giordano from Zeppelin - knows a lot abou... \n",
|
||
"100 Jorge from Aragon.\\nKevin Owocki from Gitcoin.... \n",
|
||
"101 NaN \n",
|
||
"102 NaN \n",
|
||
"103 Linnia, they are doing market dataplaces for y... \n",
|
||
"\n",
|
||
" What are the best educational resources? \\\n",
|
||
"0 NaN \n",
|
||
"1 NaN \n",
|
||
"2 NaN \n",
|
||
"3 Solidity Docs\\nUses yellow paper gass lookup t... \n",
|
||
"4 NaN \n",
|
||
"5 Google + Github is my go to.\\nNot enough has b... \n",
|
||
"6 NaN \n",
|
||
"7 NaN \n",
|
||
"8 Back then documentation was very sparse, blogs... \n",
|
||
"9 NaN \n",
|
||
"10 Honestly just readthedocs, gitter channels and... \n",
|
||
"11 NaN \n",
|
||
"12 NaN \n",
|
||
"13 NaN \n",
|
||
"14 Youtube videos\\nConferences and Meetups - putt... \n",
|
||
"15 I do this less frequently now, but I basically... \n",
|
||
"16 Solidity documentation was quite good. Had all... \n",
|
||
"17 NaN \n",
|
||
"18 NaN \n",
|
||
"19 I came from a strange backend doing tooling fo... \n",
|
||
"20 NaN \n",
|
||
"21 NaN \n",
|
||
"22 NaN \n",
|
||
"23 Personally found a couple Medium articles here... \n",
|
||
"24 Barely anything with tutorials when they got s... \n",
|
||
"25 NaN \n",
|
||
"26 NaN \n",
|
||
"27 NaN \n",
|
||
"28 NaN \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 NaN \n",
|
||
"75 Consensys Academy\\nTruffle/Solidity documentat... \n",
|
||
"76 Having people around, trying new things, debug... \n",
|
||
"77 I would say no books, because they get outdate... \n",
|
||
"78 CryptoZombies really improved my intuition. \n",
|
||
"79 NaN \n",
|
||
"80 Depending on the background, a lot of it is ha... \n",
|
||
"81 Not sure. Solidity docs are OK if you are tech... \n",
|
||
"82 NaN \n",
|
||
"83 Subreddit for ethdev and stack overflow, as al... \n",
|
||
"84 Some universities starting to teach, Consensys... \n",
|
||
"85 CryptoZombies, used to send people to Zasterin... \n",
|
||
"86 NaN \n",
|
||
"87 Currently we use Gitter. Every Truffle member ... \n",
|
||
"88 Read the Ethereum source code, read the Solidi... \n",
|
||
"89 NaN \n",
|
||
"90 Google, gitter, ETH stack exchange.\\nSome Cons... \n",
|
||
"91 NaN \n",
|
||
"92 NaN \n",
|
||
"93 NaN \n",
|
||
"94 All the information used to be on Reddit, and ... \n",
|
||
"95 NaN \n",
|
||
"96 Introduction to Ethereum Medium post: https://... \n",
|
||
"97 NaN \n",
|
||
"98 Did Coursera course to implement blockchain, b... \n",
|
||
"99 People in zeppelin are the best resources I ha... \n",
|
||
"100 NaN \n",
|
||
"101 Solidity readthedocs, stack overflow, google s... \n",
|
||
"102 Solidity tutorials on ethereum.org was the pla... \n",
|
||
"103 Loom’s CryptoZombies and their general onboard... \n",
|
||
"\n",
|
||
" Are there any other questions we should be asking? \n",
|
||
"0 NaN \n",
|
||
"1 NaN \n",
|
||
"2 NaN \n",
|
||
"3 NaN \n",
|
||
"4 NaN \n",
|
||
"5 NaN \n",
|
||
"6 NaN \n",
|
||
"7 NaN \n",
|
||
"8 NaN \n",
|
||
"9 Curious to know about developer incentives. As... \n",
|
||
"10 NaN \n",
|
||
"11 Where do we actually find out more about all t... \n",
|
||
"12 NaN \n",
|
||
"13 NaN \n",
|
||
"14 NaN \n",
|
||
"15 NaN \n",
|
||
"16 NaN \n",
|
||
"17 How can Ethereum create more cultural norms an... \n",
|
||
"18 NaN \n",
|
||
"19 NaN \n",
|
||
"20 “What is the thing that makes debugging solidi... \n",
|
||
"21 NaN \n",
|
||
"22 NaN \n",
|
||
"23 Real world companies that are not tech savvy c... \n",
|
||
"24 NaN \n",
|
||
"25 NaN \n",
|
||
"26 NaN \n",
|
||
"27 NaN \n",
|
||
"28 NaN \n",
|
||
"29 NaN \n",
|
||
".. ... \n",
|
||
"74 NaN \n",
|
||
"75 NaN \n",
|
||
"76 NaN \n",
|
||
"77 NaN \n",
|
||
"78 NaN \n",
|
||
"79 Why are people building dapps instead of just ... \n",
|
||
"80 Human behavioral things, what holds your feet ... \n",
|
||
"81 NaN \n",
|
||
"82 NaN \n",
|
||
"83 NaN \n",
|
||
"84 NaN \n",
|
||
"85 NaN \n",
|
||
"86 Dan Finlay \n",
|
||
"87 NaN \n",
|
||
"88 NaN \n",
|
||
"89 NaN \n",
|
||
"90 Curious about how we plan on dispersing the mo... \n",
|
||
"91 NaN \n",
|
||
"92 NaN \n",
|
||
"93 NaN \n",
|
||
"94 There are a lot of people with tools for thems... \n",
|
||
"95 NaN \n",
|
||
"96 NaN \n",
|
||
"97 All of the people in Cape Town that I just met. \n",
|
||
"98 Share your learnings, get the community back i... \n",
|
||
"99 I would love to know how people got involved a... \n",
|
||
"100 NaN \n",
|
||
"101 NaN \n",
|
||
"102 Product management mindset is incredibly impor... \n",
|
||
"103 NaN \n",
|
||
"\n",
|
||
"[104 rows x 15 columns]"
|
||
]
|
||
},
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"df"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:47.719551Z",
|
||
"start_time": "2018-07-18T16:29:47.709888Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"df.columns = [\n",
|
||
" 'name', # Name\n",
|
||
" 'smart_contract', # How do you handle smart contract verif & security?\n",
|
||
" 'bounties', # Other bounties\n",
|
||
" 'who_what', # Who are you and what are you working on?\n",
|
||
" 'tooling', # What are the tools/libraries/frameworks you use?\n",
|
||
" 'frustrations', # What are your biggest frustrations?\n",
|
||
" 'testing', # How do you handle testing?\n",
|
||
" 'missing_tools', # What tools don’t exist at the moment?\n",
|
||
" 'domain_questions', # Other domain specific questions?\n",
|
||
" 'hardest_part', # What was the hardest part to develop with Ethereum?\n",
|
||
" 'excited_about', # What are you most excited about in the short term?\n",
|
||
" 'easier_expected', # Was anything easier than expected?\n",
|
||
" 'people_talk_to', # Who do you think we should talk to?\n",
|
||
" 'best_resources', # What are the best educational resources?\n",
|
||
" 'questions_to_ask' # Are there any other questions we should be asking?\n",
|
||
"]\n",
|
||
"\n",
|
||
"df.fillna('', inplace = True)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:47.724787Z",
|
||
"start_time": "2018-07-18T16:29:47.720798Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# For some reason Python or Excel adds an invisible unicode \\ufeff character.\n",
|
||
"df['name'] = df['name'].str.replace(u'\\ufeff', '')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Handcrafting Ethereum vocabulary"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:48.801128Z",
|
||
"start_time": "2018-07-18T16:29:47.726052Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"eth_keywords = {\n",
|
||
" # Who are you and what are you working on?\n",
|
||
" '0x',\n",
|
||
" 'decentralized_exchange',\n",
|
||
" 'dex',\n",
|
||
" 'decentralization',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity',\n",
|
||
" 'truffle',\n",
|
||
" '1protocol',\n",
|
||
" 'proof_of_stake',\n",
|
||
" 'proof_stake',\n",
|
||
" 'pos',\n",
|
||
" 'mining_pool',\n",
|
||
" 'staking_pool',\n",
|
||
" 'signature',\n",
|
||
" 'token',\n",
|
||
" 'raiden',\n",
|
||
" 'api',\n",
|
||
" 'client',\n",
|
||
" 'consensys',\n",
|
||
" 'token_curated_registries',\n",
|
||
" 'tcr',\n",
|
||
" 'adchain',\n",
|
||
" 'onboarding',\n",
|
||
" 'test',\n",
|
||
" 'ambisafe',\n",
|
||
" 'scalable',\n",
|
||
" 'platform',\n",
|
||
" 'devops',\n",
|
||
" 'javascript',\n",
|
||
" 'js',\n",
|
||
" 'tx',\n",
|
||
" 'transactions',\n",
|
||
" 'parity',\n",
|
||
" 'deployment',\n",
|
||
" 'gas',\n",
|
||
" 'aragon',\n",
|
||
" 'aragon_os',\n",
|
||
" 'organization',\n",
|
||
" 'network',\n",
|
||
" 'permission',\n",
|
||
" 'governance',\n",
|
||
" 'acl',\n",
|
||
" 'access',\n",
|
||
" 'dapp',\n",
|
||
" 'backend',\n",
|
||
" 'protocol',\n",
|
||
" 'stack',\n",
|
||
" 'trustless',\n",
|
||
" 'metamask',\n",
|
||
" 'augur',\n",
|
||
" 'pantera_capital',\n",
|
||
" 'bounty',\n",
|
||
" 'bounties_network',\n",
|
||
" 'infura',\n",
|
||
" 'ethereum',\n",
|
||
" 'ipfs',\n",
|
||
" 'geth',\n",
|
||
" 'evm',\n",
|
||
" 'aion',\n",
|
||
" 'shyft',\n",
|
||
" 'web3',\n",
|
||
" 'merkle_tree',\n",
|
||
" 'audit',\n",
|
||
" 'zeppelin',\n",
|
||
" 'ares',\n",
|
||
" 'governx',\n",
|
||
" 'on-chain',\n",
|
||
" 'off-chain',\n",
|
||
" 'ico',\n",
|
||
" 'developer',\n",
|
||
" 'pm',\n",
|
||
" 'community',\n",
|
||
" 'content',\n",
|
||
" 'course',\n",
|
||
" 'resource',\n",
|
||
" 'mentor',\n",
|
||
" 'blockchain',\n",
|
||
" 'context',\n",
|
||
" 'history',\n",
|
||
" 'mindset',\n",
|
||
" 'ganache',\n",
|
||
" 'remix',\n",
|
||
" 'react',\n",
|
||
" 'react_native',\n",
|
||
" 'oraclize',\n",
|
||
" 'lll',\n",
|
||
" 'vyper',\n",
|
||
" 'eip',\n",
|
||
" 'ethereum_improvement_proposal',\n",
|
||
" 'security',\n",
|
||
" 'cryptokitties',\n",
|
||
" 'sharding',\n",
|
||
" 'dapphub',\n",
|
||
" 'compiler',\n",
|
||
" 'formal_verification',\n",
|
||
" 'formal_proof',\n",
|
||
" 'safe',\n",
|
||
" 'engineer',\n",
|
||
" 'tooling',\n",
|
||
" 'erc20',\n",
|
||
" 'fungible',\n",
|
||
" 'nft_token',\n",
|
||
" 'ipns',\n",
|
||
" 'auction',\n",
|
||
" 'ethalarm',\n",
|
||
" 'browser',\n",
|
||
" 'crypto',\n",
|
||
" 'cryptographic',\n",
|
||
" 'independent',\n",
|
||
" 'verifier',\n",
|
||
" 'investor',\n",
|
||
" 'decentraland',\n",
|
||
" 'open',\n",
|
||
" 'dharma',\n",
|
||
" 'library',\n",
|
||
" 'wrapper',\n",
|
||
" 'mist',\n",
|
||
" 'open-source',\n",
|
||
" 'colony',\n",
|
||
" 'status_open_bounties',\n",
|
||
" 'gitcoin',\n",
|
||
" 'status',\n",
|
||
" 'ens',\n",
|
||
" 'ui',\n",
|
||
" 'static_analysis',\n",
|
||
" 'documentation',\n",
|
||
" 'ethmoji',\n",
|
||
" 'openzeppelin',\n",
|
||
" 'ethwaterloo',\n",
|
||
" 'ethdenver',\n",
|
||
" 'ethvigil',\n",
|
||
" 'rest',\n",
|
||
" 'integration',\n",
|
||
" 'email',\n",
|
||
" 'slack',\n",
|
||
" 'vm',\n",
|
||
" 'design',\n",
|
||
" 'testrpc',\n",
|
||
" 'trezor',\n",
|
||
" 'rpc',\n",
|
||
" 'ewasm',\n",
|
||
" 'research',\n",
|
||
" 'plasma',\n",
|
||
" 'snarks',\n",
|
||
" 'starks',\n",
|
||
" 'zksnarks',\n",
|
||
" 'zkstarks',\n",
|
||
" 'truebit',\n",
|
||
" 'ethereum_wallet',\n",
|
||
" 'web3.js',\n",
|
||
" 'ERC725',\n",
|
||
" 'network',\n",
|
||
" 'p2p',\n",
|
||
" 'analysis',\n",
|
||
" 'hack',\n",
|
||
" 'regulatory',\n",
|
||
" 'giveth',\n",
|
||
" 'pledge',\n",
|
||
" 'chat',\n",
|
||
" 'discovery',\n",
|
||
" 'liquid',\n",
|
||
" 'dappnode',\n",
|
||
" 'makerdao',\n",
|
||
" 'identity',\n",
|
||
" 'gnosis',\n",
|
||
" 'ddex',\n",
|
||
" 'wallet',\n",
|
||
" 'hellogold',\n",
|
||
" 'horizon_blockchain',\n",
|
||
" 'games',\n",
|
||
" 'fair',\n",
|
||
" 'cross-chain',\n",
|
||
" 'finance',\n",
|
||
" 'swap',\n",
|
||
" 'contract',\n",
|
||
" 'solidify',\n",
|
||
" 'knowledge',\n",
|
||
" 'kauri',\n",
|
||
" 'tutorial',\n",
|
||
" 'dispute_resolution',\n",
|
||
" 'arbitration',\n",
|
||
" 'dao',\n",
|
||
" 'incentive',\n",
|
||
" 'decision',\n",
|
||
" 'production',\n",
|
||
" 'payment',\n",
|
||
" 'micro_payment',\n",
|
||
" 'ethereumjs',\n",
|
||
" 'kyokan',\n",
|
||
" 'counterfactual',\n",
|
||
" 'state_channel',\n",
|
||
" 'ethglobal',\n",
|
||
" 'database',\n",
|
||
" 'leroy',\n",
|
||
" 'steemit',\n",
|
||
" 'video',\n",
|
||
" 'infrastructure',\n",
|
||
" 'ethdeploy',\n",
|
||
" 'cryptozombies',\n",
|
||
" 'ethfiddle',\n",
|
||
" 'digital_asset',\n",
|
||
" 'crowdsale',\n",
|
||
" 'modular.network',\n",
|
||
" 'ethpm',\n",
|
||
" 'eal',\n",
|
||
" 'ethereum_address_lookup',\n",
|
||
" 'chrome extension',\n",
|
||
" 'phishing',\n",
|
||
" 'bot',\n",
|
||
" 'myetherwallet',\n",
|
||
" 'mew',\n",
|
||
" 'mycrypto',\n",
|
||
" 'bridge',\n",
|
||
" 'layer_2',\n",
|
||
" 'sidechain',\n",
|
||
" 'ethereum_permission_client',\n",
|
||
" 'wasm',\n",
|
||
" 'kovan',\n",
|
||
" 'trading',\n",
|
||
" 'token_contract',\n",
|
||
" 'consensus',\n",
|
||
" 'algorithm',\n",
|
||
" 'contract',\n",
|
||
" 'polymath',\n",
|
||
" 'ethereum_alarm_clock',\n",
|
||
" 'dagger',\n",
|
||
" 'multisig',\n",
|
||
" 'polychain',\n",
|
||
" 'trinity',\n",
|
||
" 'py-evm',\n",
|
||
" 'web3.py',\n",
|
||
" 'usability',\n",
|
||
" 'quickblocks',\n",
|
||
" 'embark',\n",
|
||
" 'samsara',\n",
|
||
" 'raffle',\n",
|
||
" 'escrow',\n",
|
||
" 'auction',\n",
|
||
" 'collateral',\n",
|
||
" 'portfolio',\n",
|
||
" 'slockit',\n",
|
||
" 'iot',\n",
|
||
" 'sourccred',\n",
|
||
" 'filecoin',\n",
|
||
" 'spankchain',\n",
|
||
" 'spank',\n",
|
||
" 'adtoken',\n",
|
||
" 'dao',\n",
|
||
" 'betting',\n",
|
||
" 'zocrates',\n",
|
||
" 'sweetbridge',\n",
|
||
" 'the_graph',\n",
|
||
" 'json_rpc',\n",
|
||
" 'jsonrpc',\n",
|
||
" 'graphql',\n",
|
||
" 'voting_system',\n",
|
||
" 'trustory',\n",
|
||
" 'tokenomics',\n",
|
||
" 'cryptoeconomic',\n",
|
||
" 'coinbase',\n",
|
||
" 'ujo_music',\n",
|
||
" 'virtuepoker',\n",
|
||
" 'monax',\n",
|
||
" 'maker',\n",
|
||
" 'vulcanizedb',\n",
|
||
" 'etl',\n",
|
||
" 'sql',\n",
|
||
" 'tendermint',\n",
|
||
" 'lightning'\n",
|
||
" 'federated_exchange',\n",
|
||
" 'week_in_ethereum',\n",
|
||
" 'week_ethereum'\n",
|
||
" 'newsletter',\n",
|
||
" 'r/ethereum',\n",
|
||
" 'moderator',\n",
|
||
" 'ERC721',\n",
|
||
" 'xlnt',\n",
|
||
" 'gnarly',\n",
|
||
" 'redis',\n",
|
||
" 'eip0',\n",
|
||
" 'ethereum magicians',\n",
|
||
" 'coworking',\n",
|
||
" 'crypto_nyc',\n",
|
||
" 'odin',\n",
|
||
" 'identity',\n",
|
||
" 'uport',\n",
|
||
" # What are the tools/libaries/framework you use\n",
|
||
" 'typedoc',\n",
|
||
" 'web3js',\n",
|
||
" 'test-rpc',\n",
|
||
" 'eth.js',\n",
|
||
" 'solc',\n",
|
||
" 'minimetoken',\n",
|
||
" 'visual_studio_code',\n",
|
||
" 'docker',\n",
|
||
" 'travis',\n",
|
||
" 'github',\n",
|
||
" 'rinkeby',\n",
|
||
" 'redux',\n",
|
||
" 'ethereumjs-blockstream',\n",
|
||
" 'keythereum',\n",
|
||
" 'sublime',\n",
|
||
" 'emacs',\n",
|
||
" 'vim',\n",
|
||
" 'bignumber',\n",
|
||
" 'blockies',\n",
|
||
" 'mm',\n",
|
||
" 'mythril',\n",
|
||
" 'mithril',\n",
|
||
" 'jetbrains',\n",
|
||
" 'jquery',\n",
|
||
" 'evmlab',\n",
|
||
" 'solhint',\n",
|
||
" 'ethgasreporter',\n",
|
||
" 'mocha',\n",
|
||
" 'oyente',\n",
|
||
" 'manticore',\n",
|
||
" 'rattle',\n",
|
||
" 'antlr',\n",
|
||
" 'vs_code',\n",
|
||
" 'typescript',\n",
|
||
" 'nodejs',\n",
|
||
" 'etherscan',\n",
|
||
" 'web3py',\n",
|
||
" 'django',\n",
|
||
" 'bootstrap',\n",
|
||
" 'evm_lab',\n",
|
||
" 'ethers.js',\n",
|
||
" 'google_cloud',\n",
|
||
" 'eth.js',\n",
|
||
" 'intellij',\n",
|
||
" 'spank',\n",
|
||
" 'zeroclient',\n",
|
||
" 'postgresql',\n",
|
||
" 'ethers.cli',\n",
|
||
" 'ethers.build',\n",
|
||
" 'swarm',\n",
|
||
" 'eth-keyring-controller',\n",
|
||
" 'ethjs-utils',\n",
|
||
" 'openostbase',\n",
|
||
" 'parityjs',\n",
|
||
" 'jupiter_notebook',\n",
|
||
" 'jupyter',\n",
|
||
" '0x.js'\n",
|
||
" 'kubernetes',\n",
|
||
" 'github',\n",
|
||
" 'webpack',\n",
|
||
" 'brave',\n",
|
||
" 'libp2p',\n",
|
||
" 'devp2p',\n",
|
||
" 'atom',\n",
|
||
" 'apm',\n",
|
||
" 'aragon_pakage_manager',\n",
|
||
" 'pprof',\n",
|
||
" 'wyvern',\n",
|
||
" 'bignum',\n",
|
||
" 'numeral',\n",
|
||
" 'chai',\n",
|
||
" 'solcoverage',\n",
|
||
" # How do you handle testing?\n",
|
||
" 'surya',\n",
|
||
" # How do you handle smart contract verification and security?\n",
|
||
" 'professional',\n",
|
||
" 'argus',\n",
|
||
" 'ci',\n",
|
||
" 'human_thinking',\n",
|
||
" 'linting_rule',\n",
|
||
" 'linting',\n",
|
||
" 'linter',\n",
|
||
" 're-entrancy',\n",
|
||
" 'reentrancy',\n",
|
||
" 'vulnerability',\n",
|
||
" 'community_auditing',\n",
|
||
" 'bounty_program',\n",
|
||
" 'invariant',\n",
|
||
" 'unit_test',\n",
|
||
" 'unit_testing',\n",
|
||
" 'code_review',\n",
|
||
" 'quantstamp',\n",
|
||
" 'crappy_process',\n",
|
||
" 'spec',\n",
|
||
" 'edge_case',\n",
|
||
" 'corner_case',\n",
|
||
" 'intentional_break',\n",
|
||
" 'crowdfunding',\n",
|
||
" 'defensive_code',\n",
|
||
" 'risk',\n",
|
||
" 'mistake',\n",
|
||
" 'isolate',\n",
|
||
" 'don_hold_eth',\n",
|
||
" 'escape_hatch',\n",
|
||
" 'library',\n",
|
||
" 'compiler',\n",
|
||
" 'tester',\n",
|
||
" 'tooling',\n",
|
||
" 'error',\n",
|
||
" 'concept',\n",
|
||
" 'economics',\n",
|
||
" 'funcitonal_test',\n",
|
||
" 'fuzzing',\n",
|
||
" 'ethers.build',\n",
|
||
" 'yuet',\n",
|
||
" 'tdd',\n",
|
||
" 'internal_audit',\n",
|
||
" 'checklist',\n",
|
||
" 'integration_test',\n",
|
||
" 'consensys_best_practices',\n",
|
||
" 'subreddit',\n",
|
||
" 'external_audit',\n",
|
||
" 'bug_bounty',\n",
|
||
" 'security_analysis',\n",
|
||
" 'overflow',\n",
|
||
" 'assumption',\n",
|
||
" # Other bounties?\n",
|
||
" 'state_watching',\n",
|
||
" 'nft',\n",
|
||
" 'openssl',\n",
|
||
" 'orderwatcher',\n",
|
||
" 'consensus-building',\n",
|
||
" 'vocal',\n",
|
||
" 'good_idea',\n",
|
||
" 'wrong_abstraction',\n",
|
||
" 'tokenized_equity',\n",
|
||
" 'neufund',\n",
|
||
" 'eurotoken',\n",
|
||
" 'C++_dev',\n",
|
||
" 'payment',\n",
|
||
" 'desktop_wallet',\n",
|
||
" 'web_page',\n",
|
||
" 'open-source_explorer',\n",
|
||
" 'decentralized',\n",
|
||
" 'erc223',\n",
|
||
" 'watcher',\n",
|
||
" 'solidity_debugger',\n",
|
||
" 'trusted_relay_chain',\n",
|
||
" 'side_chain',\n",
|
||
" 'sidechain',\n",
|
||
" 'deposit',\n",
|
||
" 'lock',\n",
|
||
" 'escrow',\n",
|
||
" 'talented_people',\n",
|
||
" 'web_developer',\n",
|
||
" 'software_engineer',\n",
|
||
" 'recruiting',\n",
|
||
" 'gas_profiling',\n",
|
||
" 'gas_cost_estimation',\n",
|
||
" 'stack',\n",
|
||
" 'limit',\n",
|
||
" 'slot',\n",
|
||
" 'iulia',\n",
|
||
" 'technical_writer',\n",
|
||
" 'improve_documentation',\n",
|
||
" 'good_ide',\n",
|
||
" 'omkara',\n",
|
||
" 'smart_contract_security',\n",
|
||
" 'solidity_contract',\n",
|
||
" 'incentive_structure',\n",
|
||
" 'reviewer',\n",
|
||
" 'maintainer',\n",
|
||
" 'bug-bounty',\n",
|
||
" 'dev_grant',\n",
|
||
" 'ethprize',\n",
|
||
" 'scaffolding_tool',\n",
|
||
" 'block_explorer',\n",
|
||
" 'scaling',\n",
|
||
" 'proof-of-authority',\n",
|
||
" 'security_team',\n",
|
||
" 'hire_people',\n",
|
||
" 'hiring_people', # should be catched by lemmatizer\n",
|
||
" 'full_time',\n",
|
||
" 'ethereum_query_language',\n",
|
||
" 'websocket',\n",
|
||
" 'deploy',\n",
|
||
" 'heroku',\n",
|
||
" 'deployment_tool',\n",
|
||
" 'manipulate_strings',\n",
|
||
" 'educate_people',\n",
|
||
" 'stay_safe',\n",
|
||
" 'tutorial',\n",
|
||
" 'write-up',\n",
|
||
" 'how_things_work',\n",
|
||
" 'resource',\n",
|
||
" 'phishing',\n",
|
||
" 'airdrop',\n",
|
||
" 'private_key',\n",
|
||
" 'onboard',\n",
|
||
" 'video',\n",
|
||
" 'infographic',\n",
|
||
" 'computational_analysis',\n",
|
||
" 'cost',\n",
|
||
" 'wasm',\n",
|
||
" 'black-box_test',\n",
|
||
" 'ide',\n",
|
||
" 'dependency',\n",
|
||
" 'code_coverage',\n",
|
||
" 'etherscan_verification',\n",
|
||
" 'tracing_api',\n",
|
||
" 'common_format',\n",
|
||
" 'tracing_rpc_call',\n",
|
||
" 'quickblocks',\n",
|
||
" 'swarm_integration',\n",
|
||
" 'coverage_tool',\n",
|
||
" 'ledger_support',\n",
|
||
" 'unification',\n",
|
||
" 'testnet',\n",
|
||
" 'type',\n",
|
||
" 'safety',\n",
|
||
" 'compiled_language',\n",
|
||
" 'use-case',\n",
|
||
" 'explain',\n",
|
||
" 'data_model',\n",
|
||
" 'interactive_demo',\n",
|
||
" 'upgradeability',\n",
|
||
" 'gas_cost',\n",
|
||
" 'scheduler',\n",
|
||
" 'compiler',\n",
|
||
" 'token_curation_market',\n",
|
||
" # What tools don’t exist at the moment?\n",
|
||
" 'prettier',\n",
|
||
" 'breakpoint',\n",
|
||
" 'log',\n",
|
||
" 'slack',\n",
|
||
" 'estimate_gas',\n",
|
||
" 'software_development',\n",
|
||
" 'issue',\n",
|
||
" 'test_suite',\n",
|
||
" 'better_querying',\n",
|
||
" 'query',\n",
|
||
" 'good_wiki',\n",
|
||
" 'stack_visualizer',\n",
|
||
" 'evmlab',\n",
|
||
" 'execute',\n",
|
||
" 'trace',\n",
|
||
" 'step_through',\n",
|
||
" 'parity_bridge',\n",
|
||
" 'interoperability',\n",
|
||
" 'standardization',\n",
|
||
" 'bridge',\n",
|
||
" 'data_analytics',\n",
|
||
" 'reconciliation',\n",
|
||
" 'analytics',\n",
|
||
" 'data_implicit',\n",
|
||
" 'decentralized_logging',\n",
|
||
" 'automated_updatable_smart_contract',\n",
|
||
" 'ethmix',\n",
|
||
" 'syntax_highlighting',\n",
|
||
" 'event',\n",
|
||
" 'lightweight_user_interface',\n",
|
||
" 'subscribe',\n",
|
||
" 'blockchain_state',\n",
|
||
" 'bamboo',\n",
|
||
" 'vyper',\n",
|
||
" 'serpent',\n",
|
||
" 'rollback_transaction',\n",
|
||
" 'roll_back_transaction',\n",
|
||
" 'versioning',\n",
|
||
" 'type_system',\n",
|
||
" 'simulation_tool',\n",
|
||
" 'open_source',\n",
|
||
" 'storage_platform',\n",
|
||
" 'solidity_interpreter',\n",
|
||
" 'fraud_detection',\n",
|
||
" 'proxy_account',\n",
|
||
" 'interactive_debugger',\n",
|
||
" 'stress-test',\n",
|
||
" 'cryptoeconomics',\n",
|
||
" 'game_theory',\n",
|
||
" 'drag_and_drop',\n",
|
||
" 'builder',\n",
|
||
" 'user_experience',\n",
|
||
" 'quick_validation'\n",
|
||
" }"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Proof of Concept"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:48.807988Z",
|
||
"start_time": "2018-07-18T16:29:48.802551Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"stop_words = nlp.Defaults.stop_words\n",
|
||
"\n",
|
||
"def vocab_extraction(txts):\n",
|
||
" # Transform the serie into a list of list of words,\n",
|
||
" # Remove stopwords at the same time\n",
|
||
" cleaned = []\n",
|
||
" for idx, txt in txts.iteritems():\n",
|
||
" # Remove stopwords\n",
|
||
" cleaned += [[word for word in simple_preprocess(txt, deacc = True) if word not in stop_words]]\n",
|
||
" \n",
|
||
" # Build bigrams and trigrams\n",
|
||
" bigrams = Phraser(Phrases(cleaned, min_count=1, threshold=1))\n",
|
||
" trigrams = Phraser(Phrases(bigrams[cleaned], threshold=1))\n",
|
||
"\n",
|
||
" # Now create the bag of words with the new trigrams\n",
|
||
" cleaned = [trigrams[bigrams[txt]] for txt in cleaned]\n",
|
||
" \n",
|
||
" # Lemmatization - TODO improve\n",
|
||
" lemmatized = []\n",
|
||
" for txt in cleaned:\n",
|
||
" if txt == []:\n",
|
||
" lemmatized += set()\n",
|
||
" else:\n",
|
||
" doc = nlp(\" \".join(txt))\n",
|
||
" # token.lemma_ has a tendency to replace 'ethereumjs' by 'ethereumj'\n",
|
||
" lemmatized += [set(token.lemma_ for token in doc if (\n",
|
||
" token.lemma_ in eth_keywords or token.lower_ in eth_keywords\n",
|
||
" )\n",
|
||
" )]\n",
|
||
" \n",
|
||
" return lemmatized"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:50.304745Z",
|
||
"start_time": "2018-07-18T16:29:48.809025Z"
|
||
},
|
||
"scrolled": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[{'contract',\n",
|
||
" 'decentralized_exchange',\n",
|
||
" 'design',\n",
|
||
" 'event',\n",
|
||
" 'gas',\n",
|
||
" 'network',\n",
|
||
" 'orderwatcher',\n",
|
||
" 'protocol',\n",
|
||
" 'smart_contract',\n",
|
||
" 'transaction'},\n",
|
||
" {'blockchain', 'error', 'ethereum', 'intellij', 'truffle', 'usability'},\n",
|
||
" {'api',\n",
|
||
" 'client',\n",
|
||
" 'contract',\n",
|
||
" 'mew',\n",
|
||
" 'proof_stake',\n",
|
||
" 'protocol',\n",
|
||
" 'raiden',\n",
|
||
" 'signature',\n",
|
||
" 'smart_contract',\n",
|
||
" 'token'},\n",
|
||
" {'adchain',\n",
|
||
" 'consensy',\n",
|
||
" 'deploy',\n",
|
||
" 'design',\n",
|
||
" 'developer',\n",
|
||
" 'ethereum',\n",
|
||
" 'onboarding',\n",
|
||
" 'tcr',\n",
|
||
" 'token',\n",
|
||
" 'type'},\n",
|
||
" {'ambisafe',\n",
|
||
" 'blockchain',\n",
|
||
" 'bounty',\n",
|
||
" 'client',\n",
|
||
" 'contract',\n",
|
||
" 'deploy',\n",
|
||
" 'deployment',\n",
|
||
" 'devop',\n",
|
||
" 'gas',\n",
|
||
" 'issue',\n",
|
||
" 'javascript',\n",
|
||
" 'parity',\n",
|
||
" 'platform',\n",
|
||
" 'scalable',\n",
|
||
" 'smart_contract',\n",
|
||
" 'test',\n",
|
||
" 'token',\n",
|
||
" 'token_contract',\n",
|
||
" 'truffle',\n",
|
||
" 'tx'},\n",
|
||
" {'aragon',\n",
|
||
" 'aragon_o',\n",
|
||
" 'contract',\n",
|
||
" 'design',\n",
|
||
" 'ethereum',\n",
|
||
" 'network',\n",
|
||
" 'organization',\n",
|
||
" 'permission',\n",
|
||
" 'platform',\n",
|
||
" 'resource',\n",
|
||
" 'rinkeby',\n",
|
||
" 'ui'},\n",
|
||
" {'acl',\n",
|
||
" 'aragon',\n",
|
||
" 'backend',\n",
|
||
" 'contract',\n",
|
||
" 'dapp',\n",
|
||
" 'database',\n",
|
||
" 'decentralized',\n",
|
||
" 'developer',\n",
|
||
" 'event',\n",
|
||
" 'governance',\n",
|
||
" 'platform',\n",
|
||
" 'protocol',\n",
|
||
" 'stack',\n",
|
||
" 'tooling',\n",
|
||
" 'trustless',\n",
|
||
" 'tx'},\n",
|
||
" {'augur'},\n",
|
||
" {'bounty',\n",
|
||
" 'developer',\n",
|
||
" 'event',\n",
|
||
" 'infura',\n",
|
||
" 'ipfs',\n",
|
||
" 'network',\n",
|
||
" 'solidity',\n",
|
||
" 'transaction',\n",
|
||
" 'websocket'},\n",
|
||
" {'aion',\n",
|
||
" 'bridge',\n",
|
||
" 'client',\n",
|
||
" 'event',\n",
|
||
" 'evm',\n",
|
||
" 'parity_bridge',\n",
|
||
" 'shyft',\n",
|
||
" 'token'},\n",
|
||
" {'bridge',\n",
|
||
" 'client',\n",
|
||
" 'contract',\n",
|
||
" 'evm',\n",
|
||
" 'js',\n",
|
||
" 'parity_bridge',\n",
|
||
" 'pm',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity',\n",
|
||
" 'stack',\n",
|
||
" 'type'},\n",
|
||
" {'consensy', 'security', 'token', 'zeppelin'},\n",
|
||
" {'are', 'dapp', 'governance', 'governx', 'ico', 'infrastructure', 'infura'},\n",
|
||
" {'blockchain',\n",
|
||
" 'consensy',\n",
|
||
" 'content',\n",
|
||
" 'context',\n",
|
||
" 'contract',\n",
|
||
" 'course',\n",
|
||
" 'design',\n",
|
||
" 'developer',\n",
|
||
" 'ethereum',\n",
|
||
" 'evm',\n",
|
||
" 'ganache',\n",
|
||
" 'integration',\n",
|
||
" 'ipfs',\n",
|
||
" 'lll',\n",
|
||
" 'mentor',\n",
|
||
" 'mindset',\n",
|
||
" 'pm',\n",
|
||
" 'react',\n",
|
||
" 'remix',\n",
|
||
" 'resource',\n",
|
||
" 'security',\n",
|
||
" 'truffle',\n",
|
||
" 'vyper'},\n",
|
||
" {'ethereum', 'evm', 'security', 'smart_contract'},\n",
|
||
" {'blockchain', 'cryptokittie', 'shard'},\n",
|
||
" {'api',\n",
|
||
" 'compiler',\n",
|
||
" 'contract',\n",
|
||
" 'dapphub',\n",
|
||
" 'ethereum',\n",
|
||
" 'evm',\n",
|
||
" 'safety',\n",
|
||
" 'solidity'},\n",
|
||
" {'auction',\n",
|
||
" 'audit',\n",
|
||
" 'blockchain',\n",
|
||
" 'browser',\n",
|
||
" 'community',\n",
|
||
" 'content',\n",
|
||
" 'contract',\n",
|
||
" 'cryptographic',\n",
|
||
" 'decentralized',\n",
|
||
" 'decentralized_exchange',\n",
|
||
" 'email',\n",
|
||
" 'engineer',\n",
|
||
" 'ethalarm',\n",
|
||
" 'event',\n",
|
||
" 'fungible',\n",
|
||
" 'independent',\n",
|
||
" 'ipfs',\n",
|
||
" 'ipns',\n",
|
||
" 'issue',\n",
|
||
" 'nft',\n",
|
||
" 'protocol',\n",
|
||
" 'smart_contract',\n",
|
||
" 'token',\n",
|
||
" 'tooling',\n",
|
||
" 'verifier'},\n",
|
||
" {'crypto', 'decentraland', 'ide', 'investor'},\n",
|
||
" {'contract', 'dharma', 'library', 'open', 'protocol'},\n",
|
||
" {'bounty',\n",
|
||
" 'browser',\n",
|
||
" 'colony',\n",
|
||
" 'developer',\n",
|
||
" 'ethereum',\n",
|
||
" 'gitcoin',\n",
|
||
" 'github',\n",
|
||
" 'integration',\n",
|
||
" 'mist',\n",
|
||
" 'open',\n",
|
||
" 'open_source',\n",
|
||
" 'status'},\n",
|
||
" {'documentation', 'ens', 'evm', 'smart_contract', 'static_analysis', 'ui'},\n",
|
||
" {'ethdenver',\n",
|
||
" 'ethereum',\n",
|
||
" 'ethmoji',\n",
|
||
" 'ethwaterloo',\n",
|
||
" 'nft',\n",
|
||
" 'openzeppelin',\n",
|
||
" 'smart_contract',\n",
|
||
" 'test'},\n",
|
||
" {'api',\n",
|
||
" 'blockchain',\n",
|
||
" 'contract',\n",
|
||
" 'deploy',\n",
|
||
" 'developer',\n",
|
||
" 'email',\n",
|
||
" 'ethvigil',\n",
|
||
" 'event',\n",
|
||
" 'hack',\n",
|
||
" 'ide',\n",
|
||
" 'integration',\n",
|
||
" 'private_key',\n",
|
||
" 'remix',\n",
|
||
" 'rest',\n",
|
||
" 'rpc',\n",
|
||
" 'slack',\n",
|
||
" 'testnet',\n",
|
||
" 'token',\n",
|
||
" 'transaction',\n",
|
||
" 'web_developer'},\n",
|
||
" {'contract',\n",
|
||
" 'dapp',\n",
|
||
" 'design',\n",
|
||
" 'evm',\n",
|
||
" 'ewasm',\n",
|
||
" 'issue',\n",
|
||
" 'javascript',\n",
|
||
" 'rpc',\n",
|
||
" 'solidity',\n",
|
||
" 'testrpc',\n",
|
||
" 'trezor',\n",
|
||
" 'vm'},\n",
|
||
" {'design',\n",
|
||
" 'formal_verification',\n",
|
||
" 'plasma',\n",
|
||
" 'research',\n",
|
||
" 'sharding',\n",
|
||
" 'snark',\n",
|
||
" 'solidity',\n",
|
||
" 'stark',\n",
|
||
" 'truebit'},\n",
|
||
" {'api',\n",
|
||
" 'blockchain',\n",
|
||
" 'browser',\n",
|
||
" 'design',\n",
|
||
" 'developer',\n",
|
||
" 'ethereum',\n",
|
||
" 'identity',\n",
|
||
" 'mist',\n",
|
||
" 'rpc',\n",
|
||
" 'wallet'},\n",
|
||
" {'contract', 'js'},\n",
|
||
" {'analysis',\n",
|
||
" 'api',\n",
|
||
" 'bounty',\n",
|
||
" 'browser',\n",
|
||
" 'client',\n",
|
||
" 'consensus',\n",
|
||
" 'cost',\n",
|
||
" 'deposit',\n",
|
||
" 'developer',\n",
|
||
" 'docker',\n",
|
||
" 'documentation',\n",
|
||
" 'ethereum',\n",
|
||
" 'evm',\n",
|
||
" 'evm_lab',\n",
|
||
" 'execute',\n",
|
||
" 'fuzzing',\n",
|
||
" 'gas',\n",
|
||
" 'geth',\n",
|
||
" 'hack',\n",
|
||
" 'issue',\n",
|
||
" 'js',\n",
|
||
" 'metamask',\n",
|
||
" 'network',\n",
|
||
" 'parity',\n",
|
||
" 'professional',\n",
|
||
" 'protocol',\n",
|
||
" 'query',\n",
|
||
" 'react',\n",
|
||
" 'security',\n",
|
||
" 'stack',\n",
|
||
" 'test',\n",
|
||
" 'tooling',\n",
|
||
" 'trace',\n",
|
||
" 'transaction',\n",
|
||
" 'tx',\n",
|
||
" 'ui',\n",
|
||
" 'vm'},\n",
|
||
" {'bounty',\n",
|
||
" 'consensy',\n",
|
||
" 'developer',\n",
|
||
" 'ethprize',\n",
|
||
" 'gitcoin',\n",
|
||
" 'open_source',\n",
|
||
" 'platform',\n",
|
||
" 'recruit',\n",
|
||
" 'regulatory'},\n",
|
||
" {'gas', 'giveth', 'ipfs', 'limit', 'platform', 'transaction'},\n",
|
||
" {'blockchain', 'bounty', 'chat', 'discovery', 'email', 'pledge', 'ui'},\n",
|
||
" {'aragon',\n",
|
||
" 'blockchain',\n",
|
||
" 'contract',\n",
|
||
" 'dao',\n",
|
||
" 'dappnode',\n",
|
||
" 'gas_cost',\n",
|
||
" 'giveth',\n",
|
||
" 'ico',\n",
|
||
" 'identity',\n",
|
||
" 'liquid',\n",
|
||
" 'makerdao',\n",
|
||
" 'smart_contract',\n",
|
||
" 'status',\n",
|
||
" 'trustless'},\n",
|
||
" {'consensus',\n",
|
||
" 'contract',\n",
|
||
" 'ddex',\n",
|
||
" 'decentralized',\n",
|
||
" 'deploy',\n",
|
||
" 'escrow',\n",
|
||
" 'ethereum',\n",
|
||
" 'ethpm',\n",
|
||
" 'gnosis',\n",
|
||
" 'infrastructure',\n",
|
||
" 'maker',\n",
|
||
" 'network',\n",
|
||
" 'payment',\n",
|
||
" 'platform',\n",
|
||
" 'smart_contract',\n",
|
||
" 'test',\n",
|
||
" 'token',\n",
|
||
" 'wallet'},\n",
|
||
" set(),\n",
|
||
" {'documentation', 'solidity', 'truffle'},\n",
|
||
" {'blockchain', 'contract', 'hellogold', 'token'},\n",
|
||
" {'blockchain', 'cost', 'decentralized', 'fair', 'game', 'scalable'},\n",
|
||
" {'contract', 'swap'},\n",
|
||
" {'aragon',\n",
|
||
" 'audit',\n",
|
||
" 'developer',\n",
|
||
" 'openzeppelin',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidify'},\n",
|
||
" {'bounty',\n",
|
||
" 'decentralized',\n",
|
||
" 'ethereum',\n",
|
||
" 'github',\n",
|
||
" 'ipfs',\n",
|
||
" 'kauri',\n",
|
||
" 'knowledge',\n",
|
||
" 'maker',\n",
|
||
" 'token',\n",
|
||
" 'tutorial'},\n",
|
||
" {'arbitration', 'dao', 'decision', 'incentive', 'smart_contract'},\n",
|
||
" {'client',\n",
|
||
" 'crypto',\n",
|
||
" 'ethereumj',\n",
|
||
" 'library',\n",
|
||
" 'metamask',\n",
|
||
" 'payment',\n",
|
||
" 'pm',\n",
|
||
" 'scale',\n",
|
||
" 'smart_contract',\n",
|
||
" 'state_channel',\n",
|
||
" 'ui',\n",
|
||
" 'wallet'},\n",
|
||
" {'client', 'ethereum', 'plasma', 'solidity', 'spankchain', 'wallet'},\n",
|
||
" set(),\n",
|
||
" {'counterfactual',\n",
|
||
" 'dapp',\n",
|
||
" 'ethglobal',\n",
|
||
" 'event',\n",
|
||
" 'evm',\n",
|
||
" 'protocol',\n",
|
||
" 'state_channel'},\n",
|
||
" {'blockchain',\n",
|
||
" 'contract',\n",
|
||
" 'database',\n",
|
||
" 'ethereum',\n",
|
||
" 'event',\n",
|
||
" 'leroy',\n",
|
||
" 'remix',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity'},\n",
|
||
" {'client',\n",
|
||
" 'contract',\n",
|
||
" 'evm',\n",
|
||
" 'geth',\n",
|
||
" 'smart_contract',\n",
|
||
" 'test',\n",
|
||
" 'testrpc',\n",
|
||
" 'truffle',\n",
|
||
" 'video'},\n",
|
||
" {'crypto',\n",
|
||
" 'decentralized',\n",
|
||
" 'ethereum',\n",
|
||
" 'infrastructure',\n",
|
||
" 'payment',\n",
|
||
" 'protocol',\n",
|
||
" 'steemit',\n",
|
||
" 'transaction',\n",
|
||
" 'video'},\n",
|
||
" {'blockchain',\n",
|
||
" 'crypto',\n",
|
||
" 'cryptozombie',\n",
|
||
" 'developer',\n",
|
||
" 'ethdeploy',\n",
|
||
" 'ethereum',\n",
|
||
" 'ethfiddle',\n",
|
||
" 'evm',\n",
|
||
" 'ide',\n",
|
||
" 'issue',\n",
|
||
" 'platform',\n",
|
||
" 'remix',\n",
|
||
" 'solidity',\n",
|
||
" 'ui'},\n",
|
||
" {'client',\n",
|
||
" 'decentralized_exchange',\n",
|
||
" 'deploy',\n",
|
||
" 'ganache',\n",
|
||
" 'geth',\n",
|
||
" 'signature',\n",
|
||
" 'smart_contract',\n",
|
||
" 'test',\n",
|
||
" 'testnet',\n",
|
||
" 'testrpc',\n",
|
||
" 'truffle'},\n",
|
||
" {'decentralized', 'protocol', 'smart_contract'},\n",
|
||
" {'analysis',\n",
|
||
" 'api',\n",
|
||
" 'contract',\n",
|
||
" 'error',\n",
|
||
" 'ethereum',\n",
|
||
" 'gas',\n",
|
||
" 'js',\n",
|
||
" 'json_rpc',\n",
|
||
" 'kyokan',\n",
|
||
" 'metamask',\n",
|
||
" 'private_key',\n",
|
||
" 'tooling',\n",
|
||
" 'trace',\n",
|
||
" 'tx',\n",
|
||
" 'ui',\n",
|
||
" 'wallet'},\n",
|
||
" {'contract', 'platform', 'tutorial'},\n",
|
||
" {'blockchain',\n",
|
||
" 'bridge',\n",
|
||
" 'contract',\n",
|
||
" 'crowdsale',\n",
|
||
" 'deploy',\n",
|
||
" 'documentation',\n",
|
||
" 'ethpm',\n",
|
||
" 'finance',\n",
|
||
" 'library',\n",
|
||
" 'network',\n",
|
||
" 'open_source',\n",
|
||
" 'stack',\n",
|
||
" 'status',\n",
|
||
" 'test',\n",
|
||
" 'token',\n",
|
||
" 'upgradeability',\n",
|
||
" 'vm',\n",
|
||
" 'zeppelin'},\n",
|
||
" {'bot',\n",
|
||
" 'deploy',\n",
|
||
" 'eal',\n",
|
||
" 'ethereum',\n",
|
||
" 'metamask',\n",
|
||
" 'mycrypto',\n",
|
||
" 'myetherwallet',\n",
|
||
" 'phish',\n",
|
||
" 'transaction'},\n",
|
||
" {'crypto', 'ethereum', 'mew', 'security'},\n",
|
||
" {'blockchain',\n",
|
||
" 'contract',\n",
|
||
" 'dapp',\n",
|
||
" 'ipfs',\n",
|
||
" 'javascript',\n",
|
||
" 'js',\n",
|
||
" 'solidity',\n",
|
||
" 'stack',\n",
|
||
" 'token',\n",
|
||
" 'truffle',\n",
|
||
" 'tutorial'},\n",
|
||
" {'blockchain',\n",
|
||
" 'bridge',\n",
|
||
" 'client',\n",
|
||
" 'developer',\n",
|
||
" 'ethereum',\n",
|
||
" 'permission',\n",
|
||
" 'scale',\n",
|
||
" 'sidechain',\n",
|
||
" 'token',\n",
|
||
" 'tooling'},\n",
|
||
" {'dapp',\n",
|
||
" 'developer',\n",
|
||
" 'documentation',\n",
|
||
" 'js',\n",
|
||
" 'library',\n",
|
||
" 'linter',\n",
|
||
" 'parity',\n",
|
||
" 'react',\n",
|
||
" 'solidity'},\n",
|
||
" {'blockchain',\n",
|
||
" 'contract',\n",
|
||
" 'cost',\n",
|
||
" 'dapp',\n",
|
||
" 'ewasm',\n",
|
||
" 'fuzzing',\n",
|
||
" 'gas',\n",
|
||
" 'gas_cost',\n",
|
||
" 'kovan',\n",
|
||
" 'limit',\n",
|
||
" 'network',\n",
|
||
" 'parity',\n",
|
||
" 'spec',\n",
|
||
" 'stack',\n",
|
||
" 'test',\n",
|
||
" 'wasm'},\n",
|
||
" {'algorithm',\n",
|
||
" 'client',\n",
|
||
" 'consensus',\n",
|
||
" 'contract',\n",
|
||
" 'dapp',\n",
|
||
" 'deploy',\n",
|
||
" 'mist',\n",
|
||
" 'parity',\n",
|
||
" 'proof_stake',\n",
|
||
" 'solidity',\n",
|
||
" 'token_contract',\n",
|
||
" 'trading'},\n",
|
||
" {'blockchain',\n",
|
||
" 'cost',\n",
|
||
" 'crowdsale',\n",
|
||
" 'developer',\n",
|
||
" 'ethereum',\n",
|
||
" 'gas_cost',\n",
|
||
" 'polymath',\n",
|
||
" 'raiden',\n",
|
||
" 'signature',\n",
|
||
" 'smart_contract',\n",
|
||
" 'state_channel'},\n",
|
||
" {'backend', 'dagger', 'email', 'event', 'tx', 'ui'},\n",
|
||
" {'analytic', 'blockchain', 'engineer', 'payment', 'polychain'},\n",
|
||
" {'infura', 'metamask', 'smart_contract', 'token'},\n",
|
||
" {'backend', 'blockchain', 'contract', 'infura', 'metamask'},\n",
|
||
" {'bounty', 'developer', 'library', 'research', 'trinity'},\n",
|
||
" {'audit',\n",
|
||
" 'ethereum',\n",
|
||
" 'formal_verification',\n",
|
||
" 'governance',\n",
|
||
" 'library',\n",
|
||
" 'payment',\n",
|
||
" 'security',\n",
|
||
" 'smart_contract',\n",
|
||
" 'static_analysis',\n",
|
||
" 'usability'},\n",
|
||
" {'blockchain', 'contract', 'decentralized', 'ethereum', 'quickblock'},\n",
|
||
" {'analysis',\n",
|
||
" 'chat',\n",
|
||
" 'contract',\n",
|
||
" 'deploy',\n",
|
||
" 'developer',\n",
|
||
" 'embark',\n",
|
||
" 'mistake',\n",
|
||
" 'remix',\n",
|
||
" 'static_analysis'},\n",
|
||
" {'blockchain',\n",
|
||
" 'developer',\n",
|
||
" 'engineer',\n",
|
||
" 'protocol',\n",
|
||
" 'raffle',\n",
|
||
" 'samsara',\n",
|
||
" 'smart_contract'},\n",
|
||
" {'auction', 'concept', 'course', 'escrow', 'token'},\n",
|
||
" {'dapp',\n",
|
||
" 'javascript',\n",
|
||
" 'library',\n",
|
||
" 'protocol',\n",
|
||
" 'smart_contract',\n",
|
||
" 'test',\n",
|
||
" 'token'},\n",
|
||
" {'access',\n",
|
||
" 'audit',\n",
|
||
" 'blockchain',\n",
|
||
" 'client',\n",
|
||
" 'contract',\n",
|
||
" 'deploy',\n",
|
||
" 'iot',\n",
|
||
" 'kovan',\n",
|
||
" 'library',\n",
|
||
" 'network',\n",
|
||
" 'parity',\n",
|
||
" 'rinkeby',\n",
|
||
" 'slockit',\n",
|
||
" 'smart_contract',\n",
|
||
" 'test',\n",
|
||
" 'testnet',\n",
|
||
" 'type'},\n",
|
||
" {'consensy', 'developer', 'security', 'solidity'},\n",
|
||
" {'bounty',\n",
|
||
" 'ethereum',\n",
|
||
" 'fair',\n",
|
||
" 'filecoin',\n",
|
||
" 'github',\n",
|
||
" 'history',\n",
|
||
" 'identity',\n",
|
||
" 'infrastructure',\n",
|
||
" 'ipfs',\n",
|
||
" 'open_source',\n",
|
||
" 'sourccred',\n",
|
||
" 'token'},\n",
|
||
" {'auction', 'ico', 'smart_contract', 'spankchain', 'state_channel'},\n",
|
||
" {'adtoken',\n",
|
||
" 'concept',\n",
|
||
" 'ethereum',\n",
|
||
" 'event',\n",
|
||
" 'explain',\n",
|
||
" 'production',\n",
|
||
" 'research',\n",
|
||
" 'scale',\n",
|
||
" 'spank',\n",
|
||
" 'spankchain',\n",
|
||
" 'state_channel',\n",
|
||
" 'tcr',\n",
|
||
" 'tooling',\n",
|
||
" 'video'},\n",
|
||
" {'betting', 'ethereum'},\n",
|
||
" {'integration',\n",
|
||
" 'javascript',\n",
|
||
" 'oraclize',\n",
|
||
" 'smart_contract',\n",
|
||
" 'status',\n",
|
||
" 'truebit'},\n",
|
||
" {'developer', 'embark', 'ens', 'identity', 'smart_contract', 'status'},\n",
|
||
" {'consensy', 'sweetbridge'},\n",
|
||
" {'api',\n",
|
||
" 'blockchain',\n",
|
||
" 'community',\n",
|
||
" 'design',\n",
|
||
" 'ethereum',\n",
|
||
" 'graphql',\n",
|
||
" 'infrastructure',\n",
|
||
" 'issue',\n",
|
||
" 'json_rpc',\n",
|
||
" 'network',\n",
|
||
" 'protocol',\n",
|
||
" 'query',\n",
|
||
" 'research',\n",
|
||
" 'rest',\n",
|
||
" 'smart_contract',\n",
|
||
" 'ui'},\n",
|
||
" {'bridge',\n",
|
||
" 'ethereum',\n",
|
||
" 'protocol',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity',\n",
|
||
" 'truebit',\n",
|
||
" 'tutorial'},\n",
|
||
" {'coinbase', 'cryptoeconomic', 'engineer', 'independent', 'trustory'},\n",
|
||
" {'ethereum', 'geth', 'library', 'smart_contract'},\n",
|
||
" {'decentralized', 'ethereum', 'network', 'platform', 'stack'},\n",
|
||
" {'consensus', 'smart_contract', 'virtuepoker'},\n",
|
||
" {'api',\n",
|
||
" 'backend',\n",
|
||
" 'cost',\n",
|
||
" 'gas_cost',\n",
|
||
" 'network',\n",
|
||
" 'plasma',\n",
|
||
" 'regulatory',\n",
|
||
" 'scale',\n",
|
||
" 'virtuepoker'},\n",
|
||
" {'blockchain',\n",
|
||
" 'bounty',\n",
|
||
" 'client',\n",
|
||
" 'content',\n",
|
||
" 'contract',\n",
|
||
" 'dapp',\n",
|
||
" 'database',\n",
|
||
" 'decentralized_exchange',\n",
|
||
" 'deploy',\n",
|
||
" 'engineer',\n",
|
||
" 'ethereum',\n",
|
||
" 'ethpm',\n",
|
||
" 'etl',\n",
|
||
" 'event',\n",
|
||
" 'github',\n",
|
||
" 'graphql',\n",
|
||
" 'ipfs',\n",
|
||
" 'maker',\n",
|
||
" 'monax',\n",
|
||
" 'network',\n",
|
||
" 'query',\n",
|
||
" 'sql',\n",
|
||
" 'tendermint',\n",
|
||
" 'testnet',\n",
|
||
" 'transaction',\n",
|
||
" 'tx',\n",
|
||
" 'vulcanizedb'},\n",
|
||
" {'consensy', 'developer', 'error', 'ethereum', 'moderator'},\n",
|
||
" {'dependency', 'error', 'ethereum', 'open_source', 'solidity'},\n",
|
||
" {'dex',\n",
|
||
" 'discovery',\n",
|
||
" 'ethereum',\n",
|
||
" 'execute',\n",
|
||
" 'nft',\n",
|
||
" 'protocol',\n",
|
||
" 'smart_contract',\n",
|
||
" 'token',\n",
|
||
" 'transaction',\n",
|
||
" 'wyvern'},\n",
|
||
" {'blockchain',\n",
|
||
" 'client',\n",
|
||
" 'contract',\n",
|
||
" 'gnarly',\n",
|
||
" 'network',\n",
|
||
" 'raffle',\n",
|
||
" 'solidity',\n",
|
||
" 'xlnt'},\n",
|
||
" {'ethereum', 'redis'},\n",
|
||
" {'blockchain',\n",
|
||
" 'community',\n",
|
||
" 'ethereum',\n",
|
||
" 'evm',\n",
|
||
" 'knowledge',\n",
|
||
" 'library',\n",
|
||
" 'platform',\n",
|
||
" 'scheduler',\n",
|
||
" 'security',\n",
|
||
" 'smart_contract',\n",
|
||
" 'stack',\n",
|
||
" 'tutorial',\n",
|
||
" 'vm',\n",
|
||
" 'zeppelin'},\n",
|
||
" {'contract',\n",
|
||
" 'library',\n",
|
||
" 'open',\n",
|
||
" 'open_source',\n",
|
||
" 'scheduler',\n",
|
||
" 'smart_contract',\n",
|
||
" 'zeppelin'},\n",
|
||
" {'dapp', 'open', 'protocol', 'smart_contract', 'token'},\n",
|
||
" {'blockchain',\n",
|
||
" 'community',\n",
|
||
" 'coworking',\n",
|
||
" 'crypto',\n",
|
||
" 'developer',\n",
|
||
" 'eip',\n",
|
||
" 'ethereum',\n",
|
||
" 'ewasm',\n",
|
||
" 'governance',\n",
|
||
" 'independent',\n",
|
||
" 'odin',\n",
|
||
" 'open',\n",
|
||
" 'protocol'},\n",
|
||
" {'community', 'decentralized', 'developer', 'ethereum', 'identity', 'uport'}]"
|
||
]
|
||
},
|
||
"execution_count": 9,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"vocab_extraction(df['who_what'])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:51.475298Z",
|
||
"start_time": "2018-07-18T16:29:50.305843Z"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[{'contract',\n",
|
||
" 'documentation',\n",
|
||
" 'ethereumj',\n",
|
||
" 'ethpm',\n",
|
||
" 'open_source',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity',\n",
|
||
" 'truffle',\n",
|
||
" 'typedoc',\n",
|
||
" 'versioning'},\n",
|
||
" {'client', 'raiden'},\n",
|
||
" {'ganache', 'javascript', 'truffle'},\n",
|
||
" {'apm',\n",
|
||
" 'aragon',\n",
|
||
" 'contract',\n",
|
||
" 'dapphub',\n",
|
||
" 'deploy',\n",
|
||
" 'design',\n",
|
||
" 'ens',\n",
|
||
" 'error',\n",
|
||
" 'ethereum',\n",
|
||
" 'ethpm',\n",
|
||
" 'event',\n",
|
||
" 'evm',\n",
|
||
" 'ganache',\n",
|
||
" 'github',\n",
|
||
" 'ipfs',\n",
|
||
" 'issue',\n",
|
||
" 'javascript',\n",
|
||
" 'log',\n",
|
||
" 'minimetoken',\n",
|
||
" 'parity',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solc',\n",
|
||
" 'solidity',\n",
|
||
" 'test',\n",
|
||
" 'tool',\n",
|
||
" 'tooling',\n",
|
||
" 'truffle',\n",
|
||
" 'ui',\n",
|
||
" 'websocket'},\n",
|
||
" {'augur',\n",
|
||
" 'ci',\n",
|
||
" 'contract',\n",
|
||
" 'dependency',\n",
|
||
" 'deploy',\n",
|
||
" 'docker',\n",
|
||
" 'error',\n",
|
||
" 'ethereumj',\n",
|
||
" 'geth',\n",
|
||
" 'github',\n",
|
||
" 'integration_test',\n",
|
||
" 'keythereum',\n",
|
||
" 'library',\n",
|
||
" 'parity',\n",
|
||
" 'rinkeby',\n",
|
||
" 'rpc',\n",
|
||
" 'test',\n",
|
||
" 'testrpc',\n",
|
||
" 'travis',\n",
|
||
" 'truffle',\n",
|
||
" 'typescript',\n",
|
||
" 'ui'},\n",
|
||
" {'augur',\n",
|
||
" 'contract',\n",
|
||
" 'emacs',\n",
|
||
" 'ide',\n",
|
||
" 'integration',\n",
|
||
" 'remix',\n",
|
||
" 'smart_contract',\n",
|
||
" 'stack',\n",
|
||
" 'static_analysis',\n",
|
||
" 'sublime',\n",
|
||
" 'syntax_highlighting',\n",
|
||
" 'test',\n",
|
||
" 'ui',\n",
|
||
" 'vim'},\n",
|
||
" {'bignumber',\n",
|
||
" 'blockie',\n",
|
||
" 'deployment',\n",
|
||
" 'ipfs',\n",
|
||
" 'library',\n",
|
||
" 'react',\n",
|
||
" 'remix',\n",
|
||
" 'testrpc'},\n",
|
||
" {'bot',\n",
|
||
" 'bounty',\n",
|
||
" 'client',\n",
|
||
" 'community',\n",
|
||
" 'decentralized',\n",
|
||
" 'ethereum',\n",
|
||
" 'event',\n",
|
||
" 'evm',\n",
|
||
" 'geth',\n",
|
||
" 'issue',\n",
|
||
" 'js',\n",
|
||
" 'metamask',\n",
|
||
" 'mm',\n",
|
||
" 'mythril',\n",
|
||
" 'network',\n",
|
||
" 'open',\n",
|
||
" 'open_source',\n",
|
||
" 'parity',\n",
|
||
" 'polymath',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity',\n",
|
||
" 'stack',\n",
|
||
" 'test',\n",
|
||
" 'trace',\n",
|
||
" 'truffle',\n",
|
||
" 'wallet',\n",
|
||
" 'wasm'},\n",
|
||
" {'contract',\n",
|
||
" 'evmlab',\n",
|
||
" 'hack',\n",
|
||
" 'ide',\n",
|
||
" 'infrastructure',\n",
|
||
" 'jetbrain',\n",
|
||
" 'jquery',\n",
|
||
" 'log',\n",
|
||
" 'mithril',\n",
|
||
" 'remix'},\n",
|
||
" {'client',\n",
|
||
" 'embark',\n",
|
||
" 'ethgasreport',\n",
|
||
" 'formal_verification',\n",
|
||
" 'gas',\n",
|
||
" 'mocha',\n",
|
||
" 'solhint',\n",
|
||
" 'test',\n",
|
||
" 'tester',\n",
|
||
" 'zeppelin'},\n",
|
||
" {'api',\n",
|
||
" 'client',\n",
|
||
" 'compiler',\n",
|
||
" 'contract',\n",
|
||
" 'email',\n",
|
||
" 'ganache',\n",
|
||
" 'geth',\n",
|
||
" 'js',\n",
|
||
" 'library',\n",
|
||
" 'nodejs',\n",
|
||
" 'parity',\n",
|
||
" 'production',\n",
|
||
" 'rpc',\n",
|
||
" 'solc',\n",
|
||
" 'solidity',\n",
|
||
" 'test',\n",
|
||
" 'testrpc',\n",
|
||
" 'truffle',\n",
|
||
" 'vm',\n",
|
||
" 'wrapper'},\n",
|
||
" {'library', 'lll', 'metamask', 'remix'},\n",
|
||
" {'antlr',\n",
|
||
" 'audit',\n",
|
||
" 'error',\n",
|
||
" 'manticore',\n",
|
||
" 'mythril',\n",
|
||
" 'oyente',\n",
|
||
" 'query',\n",
|
||
" 'rattle',\n",
|
||
" 'solidity',\n",
|
||
" 'solidity_contract'},\n",
|
||
" {'deploy', 'smart_contract', 'truffle'},\n",
|
||
" {'decentralized',\n",
|
||
" 'deploy',\n",
|
||
" 'deployment',\n",
|
||
" 'ethereum',\n",
|
||
" 'integration',\n",
|
||
" 'ipfs',\n",
|
||
" 'issue',\n",
|
||
" 'js',\n",
|
||
" 'nodejs',\n",
|
||
" 'react',\n",
|
||
" 'stack',\n",
|
||
" 'test',\n",
|
||
" 'truffle',\n",
|
||
" 'typescript',\n",
|
||
" 'vs_code'},\n",
|
||
" {'test', 'truffle', 'typescript'},\n",
|
||
" {'etherscan', 'javascript', 'smart_contract'},\n",
|
||
" {'embark', 'mocha', 'openzeppelin', 'remix', 'solidity'},\n",
|
||
" {'truffle'},\n",
|
||
" {'api',\n",
|
||
" 'client',\n",
|
||
" 'ethereum',\n",
|
||
" 'history',\n",
|
||
" 'identity',\n",
|
||
" 'security',\n",
|
||
" 'subscribe',\n",
|
||
" 'transaction'},\n",
|
||
" {'metamask', 'myetherwallet', 'remix'},\n",
|
||
" {'bootstrap',\n",
|
||
" 'deployment',\n",
|
||
" 'django',\n",
|
||
" 'gitcoin',\n",
|
||
" 'infura',\n",
|
||
" 'metamask',\n",
|
||
" 'platform',\n",
|
||
" 'smart_contract',\n",
|
||
" 'truffle',\n",
|
||
" 'versioning'},\n",
|
||
" {'contract', 'deploy', 'evm', 'remix', 'transaction'},\n",
|
||
" {'etherscan', 'metamask', 'react', 'remix', 'smart_contract', 'truffle'},\n",
|
||
" {'infrastructure', 'js', 'parity', 'truffle', 'trustless'},\n",
|
||
" {'api',\n",
|
||
" 'blockchain',\n",
|
||
" 'client',\n",
|
||
" 'contract',\n",
|
||
" 'dependency',\n",
|
||
" 'deployment',\n",
|
||
" 'design',\n",
|
||
" 'developer',\n",
|
||
" 'ganache',\n",
|
||
" 'geth',\n",
|
||
" 'ico',\n",
|
||
" 'infrastructure',\n",
|
||
" 'knowledge',\n",
|
||
" 'metamask',\n",
|
||
" 'open_source',\n",
|
||
" 'state_channel',\n",
|
||
" 'testrpc',\n",
|
||
" 'token',\n",
|
||
" 'truffle',\n",
|
||
" 'typescript'},\n",
|
||
" {'contract', 'event', 'library', 'solidity'},\n",
|
||
" {'embark', 'geth', 'infura', 'remix', 'solidity', 'truffle'},\n",
|
||
" {'react'},\n",
|
||
" {'api',\n",
|
||
" 'atom',\n",
|
||
" 'contract',\n",
|
||
" 'developer',\n",
|
||
" 'engineer',\n",
|
||
" 'gas',\n",
|
||
" 'issue',\n",
|
||
" 'library',\n",
|
||
" 'redux',\n",
|
||
" 'remix',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solc',\n",
|
||
" 'solidity',\n",
|
||
" 'test',\n",
|
||
" 'truffle'},\n",
|
||
" {'analytic',\n",
|
||
" 'api',\n",
|
||
" 'audit',\n",
|
||
" 'backend',\n",
|
||
" 'blockchain',\n",
|
||
" 'browser',\n",
|
||
" 'contract',\n",
|
||
" 'dapp',\n",
|
||
" 'dependency',\n",
|
||
" 'design',\n",
|
||
" 'docker',\n",
|
||
" 'ethereum',\n",
|
||
" 'event',\n",
|
||
" 'gas',\n",
|
||
" 'gas_cost',\n",
|
||
" 'geth',\n",
|
||
" 'ide',\n",
|
||
" 'infura',\n",
|
||
" 'integration_test',\n",
|
||
" 'javascript',\n",
|
||
" 'json_rpc',\n",
|
||
" 'library',\n",
|
||
" 'limit',\n",
|
||
" 'log',\n",
|
||
" 'metamask',\n",
|
||
" 'open',\n",
|
||
" 'plasma',\n",
|
||
" 'query',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity',\n",
|
||
" 'spank',\n",
|
||
" 'syntax_highlight',\n",
|
||
" 'test',\n",
|
||
" 'testnet',\n",
|
||
" 'transaction',\n",
|
||
" 'truffle',\n",
|
||
" 'type',\n",
|
||
" 'typescript',\n",
|
||
" 'ui',\n",
|
||
" 'wallet',\n",
|
||
" 'zeroclient'},\n",
|
||
" {'etherscan', 'truffle', 'vim'},\n",
|
||
" {'browser',\n",
|
||
" 'client',\n",
|
||
" 'contract',\n",
|
||
" 'deploy',\n",
|
||
" 'error',\n",
|
||
" 'ganache',\n",
|
||
" 'heroku',\n",
|
||
" 'js',\n",
|
||
" 'library',\n",
|
||
" 'log',\n",
|
||
" 'network',\n",
|
||
" 'parity',\n",
|
||
" 'safe',\n",
|
||
" 'solidity',\n",
|
||
" 'state_channel',\n",
|
||
" 'test',\n",
|
||
" 'testnet',\n",
|
||
" 'truffle',\n",
|
||
" 'typescript',\n",
|
||
" 'wasm'},\n",
|
||
" {'parity'},\n",
|
||
" {'backend', 'contract', 'deploy', 'infura', 'metamask', 'remix', 'truffle'},\n",
|
||
" {'decentralized',\n",
|
||
" 'ethereum',\n",
|
||
" 'geth',\n",
|
||
" 'network',\n",
|
||
" 'protocol',\n",
|
||
" 'security',\n",
|
||
" 'solidity',\n",
|
||
" 'swarm',\n",
|
||
" 'truebit',\n",
|
||
" 'video'},\n",
|
||
" {'blockchain',\n",
|
||
" 'browser',\n",
|
||
" 'contract',\n",
|
||
" 'dapp',\n",
|
||
" 'dapphub',\n",
|
||
" 'deploy',\n",
|
||
" 'error',\n",
|
||
" 'ganache',\n",
|
||
" 'geth',\n",
|
||
" 'js',\n",
|
||
" 'json_rpc',\n",
|
||
" 'library',\n",
|
||
" 'metamask',\n",
|
||
" 'parity',\n",
|
||
" 'smart_contract',\n",
|
||
" 'stack',\n",
|
||
" 'truffle',\n",
|
||
" 'wallet'},\n",
|
||
" {'api',\n",
|
||
" 'javascript',\n",
|
||
" 'json_rpc',\n",
|
||
" 'mocha',\n",
|
||
" 'query',\n",
|
||
" 'react',\n",
|
||
" 'rpc',\n",
|
||
" 'smart_contract',\n",
|
||
" 'testrpc',\n",
|
||
" 'ui'},\n",
|
||
" {'ci',\n",
|
||
" 'community',\n",
|
||
" 'context',\n",
|
||
" 'deployment',\n",
|
||
" 'error',\n",
|
||
" 'ethereum',\n",
|
||
" 'ethereumj',\n",
|
||
" 'execute',\n",
|
||
" 'integration',\n",
|
||
" 'js',\n",
|
||
" 'library',\n",
|
||
" 'mistake',\n",
|
||
" 'multisig',\n",
|
||
" 'security',\n",
|
||
" 'solidity',\n",
|
||
" 'test',\n",
|
||
" 'testrpc',\n",
|
||
" 'tx',\n",
|
||
" 'wallet',\n",
|
||
" 'zeppelin'},\n",
|
||
" {'analytic', 'blockchain', 'dapp', 'js', 'solidity'},\n",
|
||
" {'access',\n",
|
||
" 'audit',\n",
|
||
" 'community',\n",
|
||
" 'compiler',\n",
|
||
" 'contract',\n",
|
||
" 'cryptozombie',\n",
|
||
" 'deploy',\n",
|
||
" 'deployment',\n",
|
||
" 'documentation',\n",
|
||
" 'ethereum',\n",
|
||
" 'ethpm',\n",
|
||
" 'ganache',\n",
|
||
" 'gas',\n",
|
||
" 'geth',\n",
|
||
" 'ide',\n",
|
||
" 'network',\n",
|
||
" 'openostbase',\n",
|
||
" 'parity',\n",
|
||
" 'production',\n",
|
||
" 'protocol',\n",
|
||
" 'remix',\n",
|
||
" 'security',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity',\n",
|
||
" 'swarm',\n",
|
||
" 'test',\n",
|
||
" 'tooling',\n",
|
||
" 'tutorial',\n",
|
||
" 'type',\n",
|
||
" 'wallet',\n",
|
||
" 'wasm',\n",
|
||
" 'websocket',\n",
|
||
" 'wrapper',\n",
|
||
" 'zeppelin'},\n",
|
||
" {'contract',\n",
|
||
" 'deploy',\n",
|
||
" 'deployment',\n",
|
||
" 'ethereum',\n",
|
||
" 'integration',\n",
|
||
" 'ipfs',\n",
|
||
" 'javascript',\n",
|
||
" 'parity',\n",
|
||
" 'parityjs',\n",
|
||
" 'react',\n",
|
||
" 'smart_contract',\n",
|
||
" 'spec'},\n",
|
||
" {'crypto', 'vim'},\n",
|
||
" {'chai',\n",
|
||
" 'js',\n",
|
||
" 'mocha',\n",
|
||
" 'remix',\n",
|
||
" 'resource',\n",
|
||
" 'test',\n",
|
||
" 'testrpc',\n",
|
||
" 'type',\n",
|
||
" 'typescript'},\n",
|
||
" set(),\n",
|
||
" {'etherscan', 'infura', 'js'},\n",
|
||
" {'ethereum', 'etherscan', 'infura', 'react', 'redux', 'testrpc', 'truffle'},\n",
|
||
" {'api',\n",
|
||
" 'blockchain',\n",
|
||
" 'bounty',\n",
|
||
" 'contract',\n",
|
||
" 'developer',\n",
|
||
" 'documentation',\n",
|
||
" 'error',\n",
|
||
" 'github',\n",
|
||
" 'integration',\n",
|
||
" 'onboarding',\n",
|
||
" 'oyente',\n",
|
||
" 'remix',\n",
|
||
" 'static_analysis',\n",
|
||
" 'test',\n",
|
||
" 'transaction',\n",
|
||
" 'tutorial',\n",
|
||
" 'ui',\n",
|
||
" 'video'},\n",
|
||
" {'deploy',\n",
|
||
" 'evm',\n",
|
||
" 'infura',\n",
|
||
" 'issue',\n",
|
||
" 'library',\n",
|
||
" 'react',\n",
|
||
" 'remix',\n",
|
||
" 'smart_contract',\n",
|
||
" 'truffle',\n",
|
||
" 'upgradeability',\n",
|
||
" 'websocket',\n",
|
||
" 'zeppelin'},\n",
|
||
" {'geth', 'js', 'remix', 'solc'},\n",
|
||
" {'deploy',\n",
|
||
" 'infura',\n",
|
||
" 'javascript',\n",
|
||
" 'library',\n",
|
||
" 'protocol',\n",
|
||
" 'testnet',\n",
|
||
" 'type',\n",
|
||
" 'typescript',\n",
|
||
" 'ui',\n",
|
||
" 'wallet'},\n",
|
||
" {'browser',\n",
|
||
" 'ci',\n",
|
||
" 'client',\n",
|
||
" 'contract',\n",
|
||
" 'error',\n",
|
||
" 'ganache',\n",
|
||
" 'geth',\n",
|
||
" 'json_rpc',\n",
|
||
" 'library',\n",
|
||
" 'limit',\n",
|
||
" 'rpc',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity_contract',\n",
|
||
" 'spec',\n",
|
||
" 'test',\n",
|
||
" 'travis',\n",
|
||
" 'truffle',\n",
|
||
" 'type',\n",
|
||
" 'typescript'},\n",
|
||
" {'ethereum',\n",
|
||
" 'formal_verification',\n",
|
||
" 'ganache',\n",
|
||
" 'ide',\n",
|
||
" 'mythril',\n",
|
||
" 'smart_contract'},\n",
|
||
" {'documentation', 'error', 'metamask', 'state_channel', 'vim'},\n",
|
||
" {'blockchain',\n",
|
||
" 'contract',\n",
|
||
" 'docker',\n",
|
||
" 'etherscan',\n",
|
||
" 'ganache',\n",
|
||
" 'metamask',\n",
|
||
" 'multisig',\n",
|
||
" 'open',\n",
|
||
" 'redux',\n",
|
||
" 'scale',\n",
|
||
" 'state_channel',\n",
|
||
" 'transaction',\n",
|
||
" 'wallet'},\n",
|
||
" {'ethereumjs', 'metamask', 'solc'},\n",
|
||
" {'backend', 'ganache', 'mist', 'parity', 'remix', 'vs_code'},\n",
|
||
" {'embark',\n",
|
||
" 'evm',\n",
|
||
" 'hack',\n",
|
||
" 'infrastructure',\n",
|
||
" 'js',\n",
|
||
" 'library',\n",
|
||
" 'react',\n",
|
||
" 'remix',\n",
|
||
" 'test',\n",
|
||
" 'vs_code',\n",
|
||
" 'webpack'},\n",
|
||
" {'brave',\n",
|
||
" 'bridge',\n",
|
||
" 'browser',\n",
|
||
" 'community',\n",
|
||
" 'dapp',\n",
|
||
" 'embark',\n",
|
||
" 'infura',\n",
|
||
" 'ipfs',\n",
|
||
" 'javascript',\n",
|
||
" 'metamask',\n",
|
||
" 'mist',\n",
|
||
" 'mycrypto',\n",
|
||
" 'parity',\n",
|
||
" 'platform'},\n",
|
||
" {'apm',\n",
|
||
" 'aragon',\n",
|
||
" 'atom',\n",
|
||
" 'blockchain',\n",
|
||
" 'contract',\n",
|
||
" 'etherscan',\n",
|
||
" 'ide',\n",
|
||
" 'ipfs',\n",
|
||
" 'remix',\n",
|
||
" 'upgradeability'},\n",
|
||
" {'client', 'js', 'library', 'safe', 'token', 'travis', 'truffle', 'vim'},\n",
|
||
" {'concept', 'engineer', 'infrastructure', 'open_source', 'stack', 'truffle'},\n",
|
||
" {'consensus',\n",
|
||
" 'ethereum',\n",
|
||
" 'sidechain',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity',\n",
|
||
" 'tendermint',\n",
|
||
" 'trustory'},\n",
|
||
" {'geth', 'open', 'pprof', 'trace'},\n",
|
||
" {'atom',\n",
|
||
" 'community',\n",
|
||
" 'consensy',\n",
|
||
" 'contract',\n",
|
||
" 'deployment',\n",
|
||
" 'error',\n",
|
||
" 'ide',\n",
|
||
" 'library',\n",
|
||
" 'metamask',\n",
|
||
" 'network',\n",
|
||
" 'oraclize',\n",
|
||
" 'protocol',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity',\n",
|
||
" 'test',\n",
|
||
" 'token',\n",
|
||
" 'truffle'},\n",
|
||
" {'deployment',\n",
|
||
" 'js',\n",
|
||
" 'library',\n",
|
||
" 'solidity',\n",
|
||
" 'truffle',\n",
|
||
" 'typescript',\n",
|
||
" 'ui',\n",
|
||
" 'wyvern'},\n",
|
||
" {'bignum', 'chai', 'etherscan', 'mocha', 'numeral', 'truffle'},\n",
|
||
" {'contract',\n",
|
||
" 'dapp',\n",
|
||
" 'deploy',\n",
|
||
" 'ethereumjs',\n",
|
||
" 'event',\n",
|
||
" 'gas',\n",
|
||
" 'issue',\n",
|
||
" 'library',\n",
|
||
" 'log',\n",
|
||
" 'metamask',\n",
|
||
" 'network',\n",
|
||
" 'remix',\n",
|
||
" 'smart_contract',\n",
|
||
" 'test',\n",
|
||
" 'transaction',\n",
|
||
" 'truffle',\n",
|
||
" 'zeppelin'},\n",
|
||
" {'error', 'ethpm', 'ipfs', 'resource'},\n",
|
||
" {'javascript', 'remix', 'smart_contract', 'solcoverage', 'test'},\n",
|
||
" {'evm', 'javascript', 'protocol', 'test', 'vim', 'wasm'},\n",
|
||
" {'cost',\n",
|
||
" 'ethereum',\n",
|
||
" 'ipfs',\n",
|
||
" 'react',\n",
|
||
" 'react_native',\n",
|
||
" 'redux',\n",
|
||
" 'spec',\n",
|
||
" 'test'}]"
|
||
]
|
||
},
|
||
"execution_count": 10,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"vocab_extraction(df['tooling'])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:52.144282Z",
|
||
"start_time": "2018-07-18T16:29:51.476537Z"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[{'augur',\n",
|
||
" 'contract',\n",
|
||
" 'ethereumjs',\n",
|
||
" 'governance',\n",
|
||
" 'integration',\n",
|
||
" 'issue',\n",
|
||
" 'neufund',\n",
|
||
" 'open',\n",
|
||
" 'security',\n",
|
||
" 'signature',\n",
|
||
" 'smart_contract',\n",
|
||
" 'testrpc',\n",
|
||
" 'token'},\n",
|
||
" {'truffle', 'unit_testing'},\n",
|
||
" {'github', 'security', 'smart_contract', 'test'},\n",
|
||
" {'audit', 'ci', 'compiler', 'contract', 'issue', 'security', 'solc'},\n",
|
||
" {'investor', 'js', 'stack', 'test', 'test_suite', 'truffle'},\n",
|
||
" {'deploy', 'rinkeby', 'testrpc', 'truffle'},\n",
|
||
" {'assumption',\n",
|
||
" 'bounty',\n",
|
||
" 'contract',\n",
|
||
" 'ethereum',\n",
|
||
" 'formal_verification',\n",
|
||
" 'js',\n",
|
||
" 'mythril',\n",
|
||
" 'solidity',\n",
|
||
" 'test',\n",
|
||
" 'test_suite',\n",
|
||
" 'truffle',\n",
|
||
" 'unit_test',\n",
|
||
" 'vm'},\n",
|
||
" {'library', 'travis', 'unit_test'},\n",
|
||
" {'resource'},\n",
|
||
" {'mythril', 'remix', 'surya'},\n",
|
||
" {'audit', 'community', 'contract'},\n",
|
||
" {'library', 'solidity', 'test'},\n",
|
||
" {'issue', 'js', 'react'},\n",
|
||
" {'geth', 'mocha', 'signature', 'test', 'testrpc'},\n",
|
||
" {'contract', 'deploy', 'event', 'gas', 'truffle'},\n",
|
||
" {'integration', 'test', 'unit_test'},\n",
|
||
" {'deploy', 'metamask', 'remix', 'truffle'},\n",
|
||
" {'gitcoin', 'test'},\n",
|
||
" {'ci',\n",
|
||
" 'contract',\n",
|
||
" 'deployment',\n",
|
||
" 'error',\n",
|
||
" 'etherscan',\n",
|
||
" 'gas',\n",
|
||
" 'issue',\n",
|
||
" 'js',\n",
|
||
" 'remix',\n",
|
||
" 'rest',\n",
|
||
" 'testrpc',\n",
|
||
" 'wrapper'},\n",
|
||
" {'ci',\n",
|
||
" 'code_coverage',\n",
|
||
" 'community',\n",
|
||
" 'cryptoeconomic',\n",
|
||
" 'dapp',\n",
|
||
" 'decision',\n",
|
||
" 'developer',\n",
|
||
" 'ethereum',\n",
|
||
" 'etherscan',\n",
|
||
" 'game_theory',\n",
|
||
" 'gas',\n",
|
||
" 'isolate',\n",
|
||
" 'issue',\n",
|
||
" 'multisig',\n",
|
||
" 'open',\n",
|
||
" 'rinkeby',\n",
|
||
" 'solidity',\n",
|
||
" 'test',\n",
|
||
" 'testnet',\n",
|
||
" 'token'},\n",
|
||
" {'evm', 'execute', 'remix', 'solidity', 'test'},\n",
|
||
" {'contract', 'unit_test'},\n",
|
||
" {'chai', 'ide', 'mocha', 'solidity', 'test', 'typescript'},\n",
|
||
" {'test'},\n",
|
||
" {'ico', 'test', 'transaction'},\n",
|
||
" set(),\n",
|
||
" set(),\n",
|
||
" {'contract', 'deploy', 'test', 'testrpc', 'ui'},\n",
|
||
" set(),\n",
|
||
" {'browser',\n",
|
||
" 'compiler',\n",
|
||
" 'contract',\n",
|
||
" 'deploy',\n",
|
||
" 'error',\n",
|
||
" 'ethfiddle',\n",
|
||
" 'ganache',\n",
|
||
" 'hack',\n",
|
||
" 'network',\n",
|
||
" 'open',\n",
|
||
" 'solidity',\n",
|
||
" 'truffle',\n",
|
||
" 'zeppelin'},\n",
|
||
" {'deployment', 'javascript', 'js', 'parity'},\n",
|
||
" {'rpc', 'test'},\n",
|
||
" {'blockchain',\n",
|
||
" 'contract',\n",
|
||
" 'error',\n",
|
||
" 'mocha',\n",
|
||
" 'mythril',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solc',\n",
|
||
" 'solidity',\n",
|
||
" 'test',\n",
|
||
" 'vm'},\n",
|
||
" {'contract', 'ganache', 'geth', 'testrpc', 'truffle'},\n",
|
||
" {'test', 'testnet', 'truffle'},\n",
|
||
" {'contract', 'javascript', 'test'},\n",
|
||
" {'rpc', 'tooling'},\n",
|
||
" {'contract',\n",
|
||
" 'formal_verification',\n",
|
||
" 'fuzz',\n",
|
||
" 'fuzzing',\n",
|
||
" 'mythril',\n",
|
||
" 'test',\n",
|
||
" 'unit_test'},\n",
|
||
" {'audit', 'ci', 'contract', 'deploy', 'smart_contract'},\n",
|
||
" {'etherscan', 'smart_contract', 'test', 'ui'},\n",
|
||
" {'contract',\n",
|
||
" 'event',\n",
|
||
" 'javascript',\n",
|
||
" 'production',\n",
|
||
" 'testrpc',\n",
|
||
" 'truffle',\n",
|
||
" 'unit_test',\n",
|
||
" 'vm'},\n",
|
||
" {'contract', 'mocha', 'smart_contract', 'test', 'truffle'},\n",
|
||
" {'geth', 'ide', 'remix', 'test', 'test_suite', 'testnet', 'ui'},\n",
|
||
" {'error', 'library', 'safety', 'test', 'type', 'typescript'},\n",
|
||
" {'contract', 'invariant', 'manticore', 'mythril', 'unit_testing'},\n",
|
||
" {'auction',\n",
|
||
" 'blockchain',\n",
|
||
" 'course',\n",
|
||
" 'test',\n",
|
||
" 'testnet',\n",
|
||
" 'testrpc',\n",
|
||
" 'transaction',\n",
|
||
" 'truffle',\n",
|
||
" 'unit_testing'},\n",
|
||
" {'lock', 'payment', 'spankchain', 'test'},\n",
|
||
" {'test', 'truffle'},\n",
|
||
" {'ide', 'remix', 'smart_contract', 'test', 'unit_test'},\n",
|
||
" {'code_coverage',\n",
|
||
" 'contract',\n",
|
||
" 'embark',\n",
|
||
" 'execute',\n",
|
||
" 'solcoverage',\n",
|
||
" 'test',\n",
|
||
" 'unit_test'},\n",
|
||
" {'blockchain', 'javascript', 'test', 'tooling'},\n",
|
||
" {'contract',\n",
|
||
" 'deploy',\n",
|
||
" 'incentive',\n",
|
||
" 'issue',\n",
|
||
" 'smart_contract',\n",
|
||
" 'test',\n",
|
||
" 'testnet',\n",
|
||
" 'truffle',\n",
|
||
" 'unit_test'},\n",
|
||
" {'ethereum', 'js'},\n",
|
||
" {'client',\n",
|
||
" 'consensy',\n",
|
||
" 'context',\n",
|
||
" 'contract',\n",
|
||
" 'dao',\n",
|
||
" 'error',\n",
|
||
" 'evm',\n",
|
||
" 'hack',\n",
|
||
" 'infura',\n",
|
||
" 'knowledge',\n",
|
||
" 'mythril',\n",
|
||
" 'parity',\n",
|
||
" 'resource',\n",
|
||
" 'safe',\n",
|
||
" 'smart_contract',\n",
|
||
" 'solidity',\n",
|
||
" 'test',\n",
|
||
" 'trace',\n",
|
||
" 'truffle',\n",
|
||
" 'tx',\n",
|
||
" 'unit_test'},\n",
|
||
" {'auction',\n",
|
||
" 'code_coverage',\n",
|
||
" 'contract',\n",
|
||
" 'economic',\n",
|
||
" 'game_theory',\n",
|
||
" 'ico',\n",
|
||
" 'library',\n",
|
||
" 'parity',\n",
|
||
" 'solidity',\n",
|
||
" 'test',\n",
|
||
" 'token'},\n",
|
||
" {'client',\n",
|
||
" 'community',\n",
|
||
" 'consensus',\n",
|
||
" 'context',\n",
|
||
" 'dapphub',\n",
|
||
" 'ethereum',\n",
|
||
" 'explain',\n",
|
||
" 'fuzzing',\n",
|
||
" 'ico',\n",
|
||
" 'integration_test',\n",
|
||
" 'ipfs',\n",
|
||
" 'js',\n",
|
||
" 'monax',\n",
|
||
" 'network',\n",
|
||
" 'security',\n",
|
||
" 'solidity',\n",
|
||
" 'stack',\n",
|
||
" 'test',\n",
|
||
" 'token',\n",
|
||
" 'video',\n",
|
||
" 'zeppelin'},\n",
|
||
" {'analysis',\n",
|
||
" 'audit',\n",
|
||
" 'contract',\n",
|
||
" 'dao',\n",
|
||
" 'evm',\n",
|
||
" 'oyente',\n",
|
||
" 'security',\n",
|
||
" 'solcoverage',\n",
|
||
" 'solidity',\n",
|
||
" 'wyvern'},\n",
|
||
" {'ganache', 'integration_test', 'js', 'solidity', 'test'},\n",
|
||
" {'library', 'redis', 'smart_contract', 'test'},\n",
|
||
" {'ci', 'dapp', 'developer', 'integration', 'test', 'transaction', 'ui'},\n",
|
||
" {'bounty', 'chai', 'test'},\n",
|
||
" {'mocha'},\n",
|
||
" {'consensy', 'formal_verification', 'research', 'smart_contract', 'test'}]"
|
||
]
|
||
},
|
||
"execution_count": 11,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"vocab_extraction(df['testing'])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Formatting for JSON"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:52.148256Z",
|
||
"start_time": "2018-07-18T16:29:52.145828Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def to_escaped_html(txt):\n",
|
||
" paragraphs = [f\"<p>{named_entities(line)}</p>\" for line in txt.splitlines()]\n",
|
||
" return ''.join(paragraphs)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:52.155343Z",
|
||
"start_time": "2018-07-18T16:29:52.149782Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def genTransformer(field, question):\n",
|
||
" def resultProc(df):\n",
|
||
" # Transform the serie into a list of list of words,\n",
|
||
" # Remove stopwords at the same time\n",
|
||
" cleaned = []\n",
|
||
" for idx, txt in df[field].iteritems():\n",
|
||
" # Remove stopwords\n",
|
||
" cleaned += [[word for word in simple_preprocess(txt, deacc = True) if word not in stop_words]]\n",
|
||
"\n",
|
||
" # Build bigrams and trigrams\n",
|
||
" bigrams = Phraser(Phrases(cleaned, min_count=1, threshold=1))\n",
|
||
" trigrams = Phraser(Phrases(bigrams[cleaned], threshold=1))\n",
|
||
"\n",
|
||
" # Now create the bag of words with the new trigrams\n",
|
||
" cleaned = [trigrams[bigrams[txt]] for txt in cleaned]\n",
|
||
"\n",
|
||
" # Lemmatization - TODO improve\n",
|
||
" for idx, txt in enumerate(cleaned):\n",
|
||
" if txt == []:\n",
|
||
" df[field][idx] = {\n",
|
||
" 'question': question,\n",
|
||
" 'answer': to_escaped_html(df[field][idx]),\n",
|
||
" 'keywords': set()\n",
|
||
" }\n",
|
||
" else:\n",
|
||
" doc = nlp(\" \".join(txt))\n",
|
||
" df[field][idx] = {\n",
|
||
" 'question': question,\n",
|
||
" 'answer': to_escaped_html(df[field][idx]),\n",
|
||
" 'keywords': set(token.lemma_ for token in doc if (\n",
|
||
" token.lemma_ in eth_keywords or token.lower_ in eth_keywords\n",
|
||
" ))\n",
|
||
" }\n",
|
||
" return resultProc"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:52.165550Z",
|
||
"start_time": "2018-07-18T16:29:52.156368Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"testing_proc = genTransformer('testing', 'How do you handle testing?')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:52.822828Z",
|
||
"start_time": "2018-07-18T16:29:52.166617Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"testing_proc(df)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:52.826550Z",
|
||
"start_time": "2018-07-18T16:29:52.823954Z"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"{'question': 'How do you handle testing?',\n",
|
||
" 'answer': '<p>Testrpc has gotten better ––</p><p>Increases the speed at which you can dev.</p><p>Blockstream is really cool. Written by Mica (from Augur?), under the EthereumJS lib.</p><p>Good dealing with block re-orgs and changes in state.</p><p>Continuous Integration:</p><p>Doesn’t really work for smart contracts.</p><p>We just use testrpc.</p><p>Neufund was different than 0x:</p><p>Neufund was a trustee for tokens –– it was centralized by definition.</p><p>This made it simpler: I could create “open-ended” contracts –– a switch statement, that the default would send to another proxy contract.</p><p>But wouldn’t be able to do this with 0x –– e.g. if we wanted to add Shnorr signatures –– because it’s a governance / security issues.</p>',\n",
|
||
" 'keywords': {'augur',\n",
|
||
" 'contract',\n",
|
||
" 'ethereumjs',\n",
|
||
" 'governance',\n",
|
||
" 'integration',\n",
|
||
" 'issue',\n",
|
||
" 'neufund',\n",
|
||
" 'open',\n",
|
||
" 'security',\n",
|
||
" 'signature',\n",
|
||
" 'smart_contract',\n",
|
||
" 'testrpc',\n",
|
||
" 'token'}}"
|
||
]
|
||
},
|
||
"execution_count": 16,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"df['testing'][0]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:52.831142Z",
|
||
"start_time": "2018-07-18T16:29:52.827576Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"who_what_proc = genTransformer('who_what', 'Who are you and what are you working on?')\n",
|
||
"tooling_proc = genTransformer('tooling', 'What are the tools/libraries/frameworks you use?')\n",
|
||
"smart_contract_proc = genTransformer('smart_contract', 'How do you handle smart contract verif & security?')\n",
|
||
"other_bounties_proc = genTransformer('bounties', 'Other bounties?')\n",
|
||
"missing_tools_proc = genTransformer('missing_tools', 'What tools don’t exist at the moment?')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:57.276852Z",
|
||
"start_time": "2018-07-18T16:29:52.832347Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"who_what_proc(df)\n",
|
||
"tooling_proc(df)\n",
|
||
"smart_contract_proc(df)\n",
|
||
"other_bounties_proc(df)\n",
|
||
"missing_tools_proc(df)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:57.280613Z",
|
||
"start_time": "2018-07-18T16:29:57.277997Z"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"{'question': 'Who are you and what are you working on?',\n",
|
||
" 'answer': '<p>0x - Decentralized exchange protocol. It is a set of smart contracts that handle standard transactions in an order format.</p><p>The key advantage here is that these smart contracts leads to shared liquidity</p><p>We also achieve increased security and network liquidity through our architecture.</p><p>We launched the network in August 2017.</p><p>It works, but is V1. We are working on V2 which helps people build hybrid stations, supports new token standards, and makes the contract more gas efficient.</p><p>V1 only allows humans to create orders; V2 will allow new smart contract to create orders. This is HUGE.</p><p>Notes:</p><p>We’re building the protocol; designing the standard; building dev tools for anyone to build a decentralized exchange.</p><p>Orders may become invalid for any reason:</p><p>Order being filled</p><p>Griefing attacks</p><p>We’ve now built an OrderWatcher that keeps relayers updated on the state of orders.</p><p>We’re using contract Events as a proxy for state changes.</p><p>Can do a diff between state trees and between block headers.</p><p>We also have a set of smart contracts to handle settlement;</p><p>Everyone who wants to trade is setting allowances on a smart contract.</p><p>We want upgradability.</p>',\n",
|
||
" 'keywords': {'contract',\n",
|
||
" 'decentralized_exchange',\n",
|
||
" 'design',\n",
|
||
" 'event',\n",
|
||
" 'gas',\n",
|
||
" 'network',\n",
|
||
" 'orderwatcher',\n",
|
||
" 'protocol',\n",
|
||
" 'smart_contract',\n",
|
||
" 'transaction'}}"
|
||
]
|
||
},
|
||
"execution_count": 19,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"df['who_what'][0]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"metadata": {
|
||
"ExecuteTime": {
|
||
"end_time": "2018-07-18T16:29:57.289268Z",
|
||
"start_time": "2018-07-18T16:29:57.281841Z"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"df[['name', 'who_what', 'tooling', 'testing', 'smart_contract', 'bounties', 'missing_tools']].to_json('interviews.json', orient = 'index')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Python 3",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.6.5"
|
||
},
|
||
"toc": {
|
||
"nav_menu": {},
|
||
"number_sections": true,
|
||
"sideBar": true,
|
||
"skip_h1_title": false,
|
||
"title_cell": "Table of Contents",
|
||
"title_sidebar": "Contents",
|
||
"toc_cell": true,
|
||
"toc_position": {},
|
||
"toc_section_display": true,
|
||
"toc_window_display": false
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|