VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.034USD
STEEM
0.000STEEM
SBD
0.000SBD
Effective Power
5.001SP
├── Own SP
0.633SP
└── Incoming DelegationsDeleg
+4.368SP
Detailed Balance
| STEEM | ||
| balance | 0.000STEEM | STEEM |
| market_balance | 0.000STEEM | STEEM |
| savings_balance | 0.000STEEM | STEEM |
| reward_steem_balance | 0.000STEEM | STEEM |
| STEEM POWER | ||
| Own SP | 0.633SP | SP |
| Delegated Out | 0.000SP | SP |
| Delegation In | 4.368SP | SP |
| Effective Power | 5.001SP | SP |
| Reward SP (pending) | 0.023SP | SP |
| SBD | ||
| sbd_balance | 0.000SBD | SBD |
| sbd_conversions | 0.000SBD | SBD |
| sbd_market_balance | 0.000SBD | SBD |
| savings_sbd_balance | 0.000SBD | SBD |
| reward_sbd_balance | 0.000SBD | SBD |
{
"balance": "0.000 STEEM",
"savings_balance": "0.000 STEEM",
"reward_steem_balance": "0.000 STEEM",
"vesting_shares": "1031.443596 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "7112.216210 VESTS",
"sbd_balance": "0.000 SBD",
"savings_sbd_balance": "0.000 SBD",
"reward_sbd_balance": "0.000 SBD",
"conversions": []
}Account Info
| name | beeheap |
| id | 331200 |
| rank | 577,376 |
| reputation | 10138066 |
| created | 2017-08-24T07:56:45 |
| recovery_account | steem |
| proxy | None |
| post_count | 4 |
| comment_count | 0 |
| lifetime_vote_count | 0 |
| witnesses_voted_for | 0 |
| last_post | 2019-10-11T10:43:33 |
| last_root_post | 2019-10-11T10:43:33 |
| last_vote_time | 2021-05-04T14:37:15 |
| proxied_vsf_votes | 0, 0, 0, 0 |
| can_vote | 1 |
| voting_power | 0 |
| delayed_votes | 0 |
| balance | 0.000 STEEM |
| savings_balance | 0.000 STEEM |
| sbd_balance | 0.000 SBD |
| savings_sbd_balance | 0.000 SBD |
| vesting_shares | 1031.443596 VESTS |
| delegated_vesting_shares | 0.000000 VESTS |
| received_vesting_shares | 7112.216210 VESTS |
| reward_vesting_balance | 38.829706 VESTS |
| vesting_balance | 0.000 STEEM |
| vesting_withdraw_rate | 0.000000 VESTS |
| next_vesting_withdrawal | 1969-12-31T23:59:59 |
| withdrawn | 0 |
| to_withdraw | 0 |
| withdraw_routes | 0 |
| savings_withdraw_requests | 0 |
| last_account_recovery | 1970-01-01T00:00:00 |
| reset_account | null |
| last_owner_update | 1970-01-01T00:00:00 |
| last_account_update | 2025-01-05T15:12:12 |
| mined | No |
| sbd_seconds | 0 |
| sbd_last_interest_payment | 1970-01-01T00:00:00 |
| savings_sbd_last_interest_payment | 1970-01-01T00:00:00 |
{
"id": 331200,
"name": "beeheap",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7bChezSnwvjinzrUeW82RoZc5fXu26Dr8UD6vHqZB2aQhwAUWS",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM8N1UTTyh4vZJvh7yBTtp4qfZruwsc1CSfbuQNjUoX8HzutkKFh",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7oNdCbfcNbLFJDJ8sKTvefXzmwzwGSZjrsAooXgGtcBzLTbdiL",
1
]
]
},
"memo_key": "STM4xpjHsjGyZ8zWUnrHU27TD4Sb6M58nQkwxQ9D83myUyKnTn1jq",
"json_metadata": "{\"profile\":{\"location\":\"the Netherlands\",\"profile_image\":\"https://media.licdn.com/mpr/mpr/shrinknp_200_200/p/1/000/0ef/026/235b88a.jpg\",\"name\":\"Koen Rijnsent\",\"about\":\"Blockchain, cryptocurrency & spreadsheets\",\"website\":\"https://github.com/krijnsent/\"}}",
"posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmRAmDzkbbPMSZKnmaUsCBqH67D3MtB9PTfMCaF7tCSAWs/egg.svg\",\"name\":\"Re Movedaccount\",\"version\":2}}",
"proxy": "",
"last_owner_update": "1970-01-01T00:00:00",
"last_account_update": "2025-01-05T15:12:12",
"created": "2017-08-24T07:56:45",
"mined": false,
"recovery_account": "steem",
"last_account_recovery": "1970-01-01T00:00:00",
"reset_account": "null",
"comment_count": 0,
"lifetime_vote_count": 0,
"post_count": 4,
"can_vote": true,
"voting_manabar": {
"current_mana": "8143659806",
"last_update_time": 1779055044
},
"downvote_manabar": {
"current_mana": 2035914951,
"last_update_time": 1779055044
},
"voting_power": 0,
"balance": "0.000 STEEM",
"savings_balance": "0.000 STEEM",
"sbd_balance": "0.000 SBD",
"sbd_seconds": "0",
"sbd_seconds_last_update": "1970-01-01T00:00:00",
"sbd_last_interest_payment": "1970-01-01T00:00:00",
"savings_sbd_balance": "0.000 SBD",
"savings_sbd_seconds": "0",
"savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
"savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
"savings_withdraw_requests": 0,
"reward_sbd_balance": "0.000 SBD",
"reward_steem_balance": "0.000 STEEM",
"reward_vesting_balance": "38.829706 VESTS",
"reward_vesting_steem": "0.023 STEEM",
"vesting_shares": "1031.443596 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "7112.216210 VESTS",
"vesting_withdraw_rate": "0.000000 VESTS",
"next_vesting_withdrawal": "1969-12-31T23:59:59",
"withdrawn": 0,
"to_withdraw": 0,
"withdraw_routes": 0,
"curation_rewards": 0,
"posting_rewards": 0,
"proxied_vsf_votes": [
0,
0,
0,
0
],
"witnesses_voted_for": 0,
"last_post": "2019-10-11T10:43:33",
"last_root_post": "2019-10-11T10:43:33",
"last_vote_time": "2021-05-04T14:37:15",
"post_bandwidth": 0,
"pending_claimed_accounts": 0,
"vesting_balance": "0.000 STEEM",
"reputation": 10138066,
"transfer_history": [],
"market_history": [],
"post_history": [],
"vote_history": [],
"other_history": [],
"witness_votes": [],
"tags_usage": [],
"guest_bloggers": [],
"rank": 577376
}Withdraw Routes
| Incoming | Outgoing |
|---|---|
Empty | Empty |
{
"incoming": [],
"outgoing": []
}From Date
To Date
2026/05/17 21:57:24
2026/05/17 21:57:24
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 7112.216210 VESTS |
| Transaction Info | Block #106140703/Trx dea33271a93107275c62872e7a3b5ec58ec40aad |
View Raw JSON Data
{
"trx_id": "dea33271a93107275c62872e7a3b5ec58ec40aad",
"block": 106140703,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-05-17T21:57:24",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "7112.216210 VESTS"
}
]
}2026/05/11 19:11:12
2026/05/11 19:11:12
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 4400.005805 VESTS |
| Transaction Info | Block #105965358/Trx 6a815527a9dd0a8d8ac2029bf561d457292258bd |
View Raw JSON Data
{
"trx_id": "6a815527a9dd0a8d8ac2029bf561d457292258bd",
"block": 105965358,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-05-11T19:11:12",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "4400.005805 VESTS"
}
]
}2026/04/25 21:21:57
2026/04/25 21:21:57
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 7124.731966 VESTS |
| Transaction Info | Block #105508423/Trx 2fdb6518ff493a88d874764362f822864e62b274 |
View Raw JSON Data
{
"trx_id": "2fdb6518ff493a88d874764362f822864e62b274",
"block": 105508423,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-04-25T21:21:57",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "7124.731966 VESTS"
}
]
}2026/01/23 01:45:15
2026/01/23 01:45:15
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 4441.552624 VESTS |
| Transaction Info | Block #102844574/Trx 49657d0f1c58d67fb9765f56f868ea819b7002b7 |
View Raw JSON Data
{
"trx_id": "49657d0f1c58d67fb9765f56f868ea819b7002b7",
"block": 102844574,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-01-23T01:45:15",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "4441.552624 VESTS"
}
]
}2025/01/12 19:27:33
2025/01/12 19:27:33
| benefactor | beeheap |
| author | abandi |
| permlink | is-there-any-evidence-of-steem-investors-making-huge-profits-20250105t192729 |
| sbd payout | 0.000 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 38.829706 VESTS |
| Transaction Info | Block #92064761/Virtual Operation #3 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 92064761,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 3,
"timestamp": "2025-01-12T19:27:33",
"op": [
"comment_benefactor_reward",
{
"benefactor": "beeheap",
"author": "abandi",
"permlink": "is-there-any-evidence-of-steem-investors-making-huge-profits-20250105t192729",
"sbd_payout": "0.000 SBD",
"steem_payout": "0.000 STEEM",
"vesting_payout": "38.829706 VESTS"
}
]
}beeheapupdated their account properties2025/01/05 15:12:12
beeheapupdated their account properties
2025/01/05 15:12:12
| account | beeheap |
| json metadata | |
| posting json metadata | {"profile":{"profile_image":"https://cdn.steemitimages.com/DQmRAmDzkbbPMSZKnmaUsCBqH67D3MtB9PTfMCaF7tCSAWs/egg.svg","name":"Re Movedaccount","version":2}} |
| extensions | [] |
| Transaction Info | Block #91858519/Trx bc7bdf3db80aeaf559117eaba6cbc042380186c0 |
View Raw JSON Data
{
"trx_id": "bc7bdf3db80aeaf559117eaba6cbc042380186c0",
"block": 91858519,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2025-01-05T15:12:12",
"op": [
"account_update2",
{
"account": "beeheap",
"json_metadata": "",
"posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmRAmDzkbbPMSZKnmaUsCBqH67D3MtB9PTfMCaF7tCSAWs/egg.svg\",\"name\":\"Re Movedaccount\",\"version\":2}}",
"extensions": []
}
]
}beeheapupdated their account properties2025/01/05 15:11:48
beeheapupdated their account properties
2025/01/05 15:11:48
| account | beeheap |
| json metadata | |
| posting json metadata | {"profile":{"profile_image":"https://media.licdn.com/mpr/mpr/shrinknp_200_200/p/1/000/0ef/026/235b88a.jpg","name":"Re Movedaccount","version":2}} |
| extensions | [] |
| Transaction Info | Block #91858511/Trx 8ccb0373d8280a13d8ec19b69b799caf59e99246 |
View Raw JSON Data
{
"trx_id": "8ccb0373d8280a13d8ec19b69b799caf59e99246",
"block": 91858511,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2025-01-05T15:11:48",
"op": [
"account_update2",
{
"account": "beeheap",
"json_metadata": "",
"posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://media.licdn.com/mpr/mpr/shrinknp_200_200/p/1/000/0ef/026/235b88a.jpg\",\"name\":\"Re Movedaccount\",\"version\":2}}",
"extensions": []
}
]
}2025/01/05 15:11:18
2025/01/05 15:11:18
| parent author | bstiel |
| parent permlink | re-beeheap-excel-and-vba-development-with-github-20171202t074944492z |
| author | beeheap |
| permlink | re-bstiel-re-beeheap-excel-and-vba-development-with-github-20171211t121837962z |
| title | |
| body | Emptied |
| json metadata | {"app":"steemit/0.2"} |
| Transaction Info | Block #91858501/Trx a33bb29bbf146af50486e4fc3ed00ff719468f62 |
View Raw JSON Data
{
"trx_id": "a33bb29bbf146af50486e4fc3ed00ff719468f62",
"block": 91858501,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2025-01-05T15:11:18",
"op": [
"comment",
{
"parent_author": "bstiel",
"parent_permlink": "re-beeheap-excel-and-vba-development-with-github-20171202t074944492z",
"author": "beeheap",
"permlink": "re-bstiel-re-beeheap-excel-and-vba-development-with-github-20171211t121837962z",
"title": "",
"body": "Emptied",
"json_metadata": "{\"app\":\"steemit/0.2\"}"
}
]
}beeheappublished a new post: excel-and-vba-development-with-github2025/01/05 15:10:51
beeheappublished a new post: excel-and-vba-development-with-github
2025/01/05 15:10:51
| parent author | |
| parent permlink | vba |
| author | beeheap |
| permlink | excel-and-vba-development-with-github |
| title | Removed article 2 |
| body | <html> <p>Removed</p> </html> |
| json metadata | {"app":"steemit/0.2","format":"html"} |
| Transaction Info | Block #91858492/Trx 4965e0f0a60ad56855e89f0b4c7d714d96902eea |
View Raw JSON Data
{
"trx_id": "4965e0f0a60ad56855e89f0b4c7d714d96902eea",
"block": 91858492,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2025-01-05T15:10:51",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "vba",
"author": "beeheap",
"permlink": "excel-and-vba-development-with-github",
"title": "Removed article 2",
"body": "<html>\n<p>Removed</p>\n</html>",
"json_metadata": "{\"app\":\"steemit/0.2\",\"format\":\"html\"}"
}
]
}beeheappublished a new post: create-a-fantasy-grid-map-in-excel2025/01/05 15:09:27
beeheappublished a new post: create-a-fantasy-grid-map-in-excel
2025/01/05 15:09:27
| parent author | |
| parent permlink | map |
| author | beeheap |
| permlink | create-a-fantasy-grid-map-in-excel |
| title | No article 1 |
| body | Removed |
| json metadata | {"app":"steemit/0.2","format":"markdown"} |
| Transaction Info | Block #91858464/Trx 092640d56585ceab490e4bf00819202a347e5b5c |
View Raw JSON Data
{
"trx_id": "092640d56585ceab490e4bf00819202a347e5b5c",
"block": 91858464,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2025-01-05T15:09:27",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "map",
"author": "beeheap",
"permlink": "create-a-fantasy-grid-map-in-excel",
"title": "No article 1",
"body": "Removed",
"json_metadata": "{\"app\":\"steemit/0.2\",\"format\":\"markdown\"}"
}
]
}2024/12/16 21:05:06
2024/12/16 21:05:06
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 4605.771821 VESTS |
| Transaction Info | Block #91290990/Trx e3bc480a1e4ed1fb50cc98d492bb535e0104dde4 |
View Raw JSON Data
{
"trx_id": "e3bc480a1e4ed1fb50cc98d492bb535e0104dde4",
"block": 91290990,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2024-12-16T21:05:06",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "4605.771821 VESTS"
}
]
}2023/11/13 12:50:36
2023/11/13 12:50:36
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 4774.905353 VESTS |
| Transaction Info | Block #79845260/Trx 7ebb268cf432a039bf65fdf4455e41ed16d040b6 |
View Raw JSON Data
{
"trx_id": "7ebb268cf432a039bf65fdf4455e41ed16d040b6",
"block": 79845260,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2023-11-13T12:50:36",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "4774.905353 VESTS"
}
]
}2023/09/21 19:09:57
2023/09/21 19:09:57
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 7712.184139 VESTS |
| Transaction Info | Block #78344646/Trx d775b8df669d9872b64681aa5e604ed40f5bbcf5 |
View Raw JSON Data
{
"trx_id": "d775b8df669d9872b64681aa5e604ed40f5bbcf5",
"block": 78344646,
"trx_in_block": 6,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2023-09-21T19:09:57",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "7712.184139 VESTS"
}
]
}2022/11/10 05:38:21
2022/11/10 05:38:21
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 7928.896434 VESTS |
| Transaction Info | Block #69306671/Trx 832b11ee1d8a77901001ba3dd15cc7a5601b2f5c |
View Raw JSON Data
{
"trx_id": "832b11ee1d8a77901001ba3dd15cc7a5601b2f5c",
"block": 69306671,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2022-11-10T05:38:21",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "7928.896434 VESTS"
}
]
}2022/03/16 08:37:48
2022/03/16 08:37:48
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 8108.145408 VESTS |
| Transaction Info | Block #62466466/Trx 1e9ccf9ea84130bc2013e65cee79b5be1534c85e |
View Raw JSON Data
{
"trx_id": "1e9ccf9ea84130bc2013e65cee79b5be1534c85e",
"block": 62466466,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2022-03-16T08:37:48",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "8108.145408 VESTS"
}
]
}2021/08/03 21:54:45
2021/08/03 21:54:45
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 8290.938631 VESTS |
| Transaction Info | Block #56054560/Trx 6619eee81e6ab78f08bed6bbb52c380bb672dffd |
View Raw JSON Data
{
"trx_id": "6619eee81e6ab78f08bed6bbb52c380bb672dffd",
"block": 56054560,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2021-08-03T21:54:45",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "8290.938631 VESTS"
}
]
}2021/07/08 08:59:33
2021/07/08 08:59:33
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 27523.791067 VESTS |
| Transaction Info | Block #55298102/Trx 2b5857cd15482765e9ee87d206487f4bc844648a |
View Raw JSON Data
{
"trx_id": "2b5857cd15482765e9ee87d206487f4bc844648a",
"block": 55298102,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2021-07-08T08:59:33",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "27523.791067 VESTS"
}
]
}2021/05/04 15:56:12
2021/05/04 15:56:12
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 27710.805038 VESTS |
| Transaction Info | Block #53454188/Trx 80b42083b051e1a494c8fb2d90754df961ab0fd0 |
View Raw JSON Data
{
"trx_id": "80b42083b051e1a494c8fb2d90754df961ab0fd0",
"block": 53454188,
"trx_in_block": 11,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2021-05-04T15:56:12",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "27710.805038 VESTS"
}
]
}beeheapupvoted (100.00%) @trueflip / true-flip-tfl-token-q-and-a-spring-20212021/05/04 14:37:15
beeheapupvoted (100.00%) @trueflip / true-flip-tfl-token-q-and-a-spring-2021
2021/05/04 14:37:15
| voter | beeheap |
| author | trueflip |
| permlink | true-flip-tfl-token-q-and-a-spring-2021 |
| weight | 10000 (100.00%) |
| Transaction Info | Block #53452623/Trx 23058197ce422a500772728172230c6cfeee5997 |
View Raw JSON Data
{
"trx_id": "23058197ce422a500772728172230c6cfeee5997",
"block": 53452623,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2021-05-04T14:37:15",
"op": [
"vote",
{
"voter": "beeheap",
"author": "trueflip",
"permlink": "true-flip-tfl-token-q-and-a-spring-2021",
"weight": 10000
}
]
}2020/12/11 09:05:45
2020/12/11 09:05:45
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 8525.589440 VESTS |
| Transaction Info | Block #49352790/Trx e2f81bfa2579d449263f824818502aac51ee9c0f |
View Raw JSON Data
{
"trx_id": "e2f81bfa2579d449263f824818502aac51ee9c0f",
"block": 49352790,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-12-11T09:05:45",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "8525.589440 VESTS"
}
]
}2020/12/06 02:43:21
2020/12/06 02:43:21
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 1912.543513 VESTS |
| Transaction Info | Block #49204360/Trx 31dd9c312460091266e2c35211333a68a6003216 |
View Raw JSON Data
{
"trx_id": "31dd9c312460091266e2c35211333a68a6003216",
"block": 49204360,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-12-06T02:43:21",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "1912.543513 VESTS"
}
]
}2020/12/05 10:40:15
2020/12/05 10:40:15
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 8531.956079 VESTS |
| Transaction Info | Block #49185465/Trx 8b05542a7fefcb5880e88eff9cfe2660e441abd5 |
View Raw JSON Data
{
"trx_id": "8b05542a7fefcb5880e88eff9cfe2660e441abd5",
"block": 49185465,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-12-05T10:40:15",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "8531.956079 VESTS"
}
]
}2020/11/02 11:11:00
2020/11/02 11:11:00
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 1920.017158 VESTS |
| Transaction Info | Block #48252556/Trx 61bbe3c6a143fd45805081e90569185cd145f004 |
View Raw JSON Data
{
"trx_id": "61bbe3c6a143fd45805081e90569185cd145f004",
"block": 48252556,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-11-02T11:11:00",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "1920.017158 VESTS"
}
]
}2020/05/09 03:38:18
2020/05/09 03:38:18
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 8734.602653 VESTS |
| Transaction Info | Block #43214572/Trx 3bc2f354ba09c887746bed09ef74d33758f31826 |
View Raw JSON Data
{
"trx_id": "3bc2f354ba09c887746bed09ef74d33758f31826",
"block": 43214572,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-09T03:38:18",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "8734.602653 VESTS"
}
]
}2020/05/08 06:55:48
2020/05/08 06:55:48
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 1953.311140 VESTS |
| Transaction Info | Block #43190306/Trx 26e1533aee67fb3c09b6c9e063a7398a7ef9305d |
View Raw JSON Data
{
"trx_id": "26e1533aee67fb3c09b6c9e063a7398a7ef9305d",
"block": 43190306,
"trx_in_block": 41,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-08T06:55:48",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "1953.311140 VESTS"
}
]
}2020/01/10 10:55:03
2020/01/10 10:55:03
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 8799.663806 VESTS |
| Transaction Info | Block #39804115/Trx 5bf0baddf65d40edc200eff594e116994653d8a3 |
View Raw JSON Data
{
"trx_id": "5bf0baddf65d40edc200eff594e116994653d8a3",
"block": 39804115,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-01-10T10:55:03",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "8799.663806 VESTS"
}
]
}beeheappublished a new post: create-a-fantasy-grid-map-in-excel2019/10/15 07:03:39
beeheappublished a new post: create-a-fantasy-grid-map-in-excel
2019/10/15 07:03:39
| parent author | |
| parent permlink | map |
| author | beeheap |
| permlink | create-a-fantasy-grid-map-in-excel |
| title | Create a fantasy grid map - in Excel |
| body | @@ -333,16 +333,156 @@ bottom. + This is an example of what the tool generates:%0A!%5B%5D(https://cdn.steemitimages.com/DQmZjvj2UKQ15bAACMUtTQV164YR22FtANFBPfUwTPUAxz2/image.png) %0A# Techn |
| json metadata | {"tags":["creator","excel","grid","civilization"],"image":["https://cdn.steemitimages.com/DQmZjvj2UKQ15bAACMUtTQV164YR22FtANFBPfUwTPUAxz2/image.png","https://cdn.steemitimages.com/DQmZHqdvYFSGUCvtxcyDDtf5F3uvAAh8mjV6SpNPLEg5gvC/image.png","https://cdn.steemitimages.com/DQmc96AKZ3pMSA1mo6VNeNvFRKPvRQYpJmtfW549r7xC2T2/image.png","https://cdn.steemitimages.com/DQmZVashmJi9EH24mFbph6F63ehXeWWqEacsFujn9vSUdGn/image.png","https://cdn.steemitimages.com/DQmYmBfwJ4eX37J8aDzdR7BxhRNScpRCAbXvYRbfEyszi7a/image.png","https://cdn.steemitimages.com/DQmaSwc534jTYxok7CCryZ1Ura2c47dstG8ZgisCVqbrZyJ/image.png","https://cdn.steemitimages.com/DQmc1GML9geE7UjRKEi1ndEBhaqg88v3LrQzGhGMQ5Rqt9p/image.png","https://cdn.steemitimages.com/DQmPJZRjkULZjTKha98CJRqxHWVjhpWzaWxSSC2BUjyQnzR/image.png","https://cdn.steemitimages.com/DQmUaeckBdg1o8U133eVnZjWfDQkcaC9sSmS8cXz8GmyXq6/image.png","https://cdn.steemitimages.com/DQmP31tpnu4ySWkZeSLVa3hWovDge49n7VzhQNhtEdcTGgx/image.png","https://cdn.steemitimages.com/DQmcVgNygxerZJQRWP46iyQcYJQNpTonR5Gvav34QfXxmjN/image.png"],"links":["https://visualbruno.itch.io/world-of-empires2","https://stackoverflow.com/a/33170115/4552016","https://flafla2.github.io/2014/08/09/perlinnoise.html","https://www.dropbox.com/s/0ngjkp0kabugks6/WorldOfEmpires2_map_edit_steemit.xlsx?dl=0"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #37298625/Trx f88a7a2110c261464cba9460c13f229fed5081fb |
View Raw JSON Data
{
"trx_id": "f88a7a2110c261464cba9460c13f229fed5081fb",
"block": 37298625,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-10-15T07:03:39",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "map",
"author": "beeheap",
"permlink": "create-a-fantasy-grid-map-in-excel",
"title": "Create a fantasy grid map - in Excel",
"body": "@@ -333,16 +333,156 @@\n bottom.\n+ This is an example of what the tool generates:%0A!%5B%5D(https://cdn.steemitimages.com/DQmZjvj2UKQ15bAACMUtTQV164YR22FtANFBPfUwTPUAxz2/image.png)\n %0A# Techn\n",
"json_metadata": "{\"tags\":[\"creator\",\"excel\",\"grid\",\"civilization\"],\"image\":[\"https://cdn.steemitimages.com/DQmZjvj2UKQ15bAACMUtTQV164YR22FtANFBPfUwTPUAxz2/image.png\",\"https://cdn.steemitimages.com/DQmZHqdvYFSGUCvtxcyDDtf5F3uvAAh8mjV6SpNPLEg5gvC/image.png\",\"https://cdn.steemitimages.com/DQmc96AKZ3pMSA1mo6VNeNvFRKPvRQYpJmtfW549r7xC2T2/image.png\",\"https://cdn.steemitimages.com/DQmZVashmJi9EH24mFbph6F63ehXeWWqEacsFujn9vSUdGn/image.png\",\"https://cdn.steemitimages.com/DQmYmBfwJ4eX37J8aDzdR7BxhRNScpRCAbXvYRbfEyszi7a/image.png\",\"https://cdn.steemitimages.com/DQmaSwc534jTYxok7CCryZ1Ura2c47dstG8ZgisCVqbrZyJ/image.png\",\"https://cdn.steemitimages.com/DQmc1GML9geE7UjRKEi1ndEBhaqg88v3LrQzGhGMQ5Rqt9p/image.png\",\"https://cdn.steemitimages.com/DQmPJZRjkULZjTKha98CJRqxHWVjhpWzaWxSSC2BUjyQnzR/image.png\",\"https://cdn.steemitimages.com/DQmUaeckBdg1o8U133eVnZjWfDQkcaC9sSmS8cXz8GmyXq6/image.png\",\"https://cdn.steemitimages.com/DQmP31tpnu4ySWkZeSLVa3hWovDge49n7VzhQNhtEdcTGgx/image.png\",\"https://cdn.steemitimages.com/DQmcVgNygxerZJQRWP46iyQcYJQNpTonR5Gvav34QfXxmjN/image.png\"],\"links\":[\"https://visualbruno.itch.io/world-of-empires2\",\"https://stackoverflow.com/a/33170115/4552016\",\"https://flafla2.github.io/2014/08/09/perlinnoise.html\",\"https://www.dropbox.com/s/0ngjkp0kabugks6/WorldOfEmpires2_map_edit_steemit.xlsx?dl=0\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}flabberupvoted (100.00%) @beeheap / create-a-fantasy-grid-map-in-excel2019/10/14 19:19:30
flabberupvoted (100.00%) @beeheap / create-a-fantasy-grid-map-in-excel
2019/10/14 19:19:30
| voter | flabber |
| author | beeheap |
| permlink | create-a-fantasy-grid-map-in-excel |
| weight | 10000 (100.00%) |
| Transaction Info | Block #37284573/Trx 285e7797e1f8b0d8c36e748f32a0434deb661bd3 |
View Raw JSON Data
{
"trx_id": "285e7797e1f8b0d8c36e748f32a0434deb661bd3",
"block": 37284573,
"trx_in_block": 26,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-10-14T19:19:30",
"op": [
"vote",
{
"voter": "flabber",
"author": "beeheap",
"permlink": "create-a-fantasy-grid-map-in-excel",
"weight": 10000
}
]
}2019/10/11 12:18:51
2019/10/11 12:18:51
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 29138.473773 VESTS |
| Transaction Info | Block #37189964/Trx a4428bc601a88ccbce3db9f836df9104245100f9 |
View Raw JSON Data
{
"trx_id": "a4428bc601a88ccbce3db9f836df9104245100f9",
"block": 37189964,
"trx_in_block": 18,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-10-11T12:18:51",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "29138.473773 VESTS"
}
]
}filipinoupvoted (10.00%) @beeheap / create-a-fantasy-grid-map-in-excel2019/10/11 11:32:30
filipinoupvoted (10.00%) @beeheap / create-a-fantasy-grid-map-in-excel
2019/10/11 11:32:30
| voter | filipino |
| author | beeheap |
| permlink | create-a-fantasy-grid-map-in-excel |
| weight | 1000 (10.00%) |
| Transaction Info | Block #37189039/Trx 9176361c42ddd74469c4f4833ba3c4e2feb0a341 |
View Raw JSON Data
{
"trx_id": "9176361c42ddd74469c4f4833ba3c4e2feb0a341",
"block": 37189039,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-10-11T11:32:30",
"op": [
"vote",
{
"voter": "filipino",
"author": "beeheap",
"permlink": "create-a-fantasy-grid-map-in-excel",
"weight": 1000
}
]
}beeheappublished a new post: create-a-fantasy-grid-map-in-excel2019/10/11 10:43:33
beeheappublished a new post: create-a-fantasy-grid-map-in-excel
2019/10/11 10:43:33
| parent author | |
| parent permlink | map |
| author | beeheap |
| permlink | create-a-fantasy-grid-map-in-excel |
| title | Create a fantasy grid map - in Excel |
| body | # What? # For a Civilization-like game I like to play (freeware, https://visualbruno.itch.io/world-of-empires2 ) I wanted to create better maps. As Civilization used to be a simple squares-based map, I found Excel an easy and visual tool to get this done. This article is about the map creator I made. The link to the tool is at the bottom. # Technical # Using just excel functions the tool can create a 64x48 tiles map. The tool does not use macros. It has to have a random factor, but should be deterministic in its outcome. As in: you can pick a random seed, but given the same seed, it should give the same outcome. # The map making # ## Step 1 ## As a base for the map, I started off with one cell where the user has to put in a "seed value", a number greater than 0 which is the base for the whole map. Based on this seed and the dimensions of the map, the grid is filled with pseudo-random numbers. In Excel function: `=MOD(48271*A1,2^31-1)` - this is the [Lehmer random number generator](https://stackoverflow.com/a/33170115/4552016)  ## Step 2 ## Standardize these values to the range 0-1, so they can be used easier. I added some conditional formatting for easier visual checks.  ## Step 3 ## The next step is to use these random numbers to create land and sea. For this we need one more extra input: the percentage of land that the user wants. The issue is that the map just based on the random numbers from Step 2 looks like this (top 40% of random values are land here):  In order to make a more credible map, land masses need to be clumped together, which is basically smoothening the random values. The trick for that is using [Perlin Noise](https://flafla2.github.io/2014/08/09/perlinnoise.html) ### Perlin Noise example ###  The calculation here starts off with the grid filled with pseudo random values. In order to smoothen it we will only take some values. In the example above the *octave* is 2. An octave is basically setting the smoothness: the higher the octave, the smoother the outcome. An octave of 2 means that only every 4th random value is used, the values in between are calculated based on these values. What that means is that e.g. the circled cells are the same value as the random values, the rest is calculated. An example is the 0,51 (yellow box). The general formula is: `value(i0,j0)*(1-vert_blend)*(1-horiz_blend)+value(i0,j1)*(vert_blend)*(1-horiz_blend)+value(i1,j0)*(1-vert_blend)*(horiz_blend)+value(i1,j1)*(vert_blend)*(horiz_blend)` This means for 0,51: `0,00*(1-0,75)*(1-0,5)+0,43*(0,75)*(1-0,5)+0,71*(1-0,75)*(1-0,5)+0,70*(0,75)*(0,5)=0,51` Doing that for various *octaves* (1-4), this is the result from random to octave 4:  ## Step 4 ## The 4th step is merging these 5 random maps. Again: I am basically creating a height map, so only the e.g. top 40% of random values becomes land, the rest sea. The main challenge here is the weighing factor per map. If I want a pangea map (one big landmass), I want to give the 4th octave a big weight, the lower ones less. What I came up with are 2 factors: the maximum octave used (0 is the random numbers I started with) and the octave multiplier: starting with a weight of 1 for octave 0, the next octave weight gets multiplied by this number. The results of these steps becomes apparent in step 5. ## Step 5 ## Step 5 is setting the landmass percentage, as said above: only the e.g. top 40% of random values of step 4 become land, the rest sea. With 40%, this is the impact of the settings of step 4:  This starts looking like a map! And what I can do is create some pre-determined settings for e.g. "a fractal map", "a pangea map" and a "continents" map, just a random seed and 3 numbers will do :). ## Step 6 ## Step 6 is a small smoothening: removing the single tile water or land. Basically: if all tiles around it are water, than the tile itself should be water. ## Step 7 ## Mountains & lakes... Say the top 1% of the height map (step 5) should be mountain. For lakes: every water tile that has at least 2 land tiles next to it becomes a lake. After step 6&7, this is the land (light green), lake (blue), sea (white) & mountain (dark green) map.  ## Step 8 ## Climate... Here I have 2 inputs: rainfall (0: little, 9: lots) and temperature (0: cold, 9: hot). But how does this translate into different tile types? For that I created a small table for the different types of terrain, their min&max temperature (scale: 0-100) and min&max rainfall (0-100).  ### Temperature ### This one is rather easy: it runs from 0 at the poles to 100 at the equator. One small adjustment: when the temperature is set to "cold" (=0), it runs from 0 to 90 and when it's set to hot (=9) it runs from 9 to 99. ### Rainfall ### In my tool I'm basically using a Perlin noise map with an octave of 1,5. I'm using the resulting (random) numbers for 80% and add the setting for rainfall for 20%, so a "very wet" map will be in the range of 20-100 and a very dry map will be 0-80. This leads clusters of wet and dry, e.g.:  ### Terrain type ### The next step is to find out if a terrain type can exist on a certain cell in the grid. That's not too complicated with the temperature and the rainfall already calculated. But it can happen that based on these 2 criteria multiple terrain types can occur on one cell, so I needed some pseudo random variable to determine the final terrain type. Again: I want the system to be deterministic and always lead to the same answer. So what I did is to take the random values of step 2 and for every terrain type, I took the next chunck of that random value, like so: Random value from step 2: 0,78252378 Tundra (from digit 2): 0,8252378 Grassland (from digit 3): 0,252378 Plains (from digit 4): 0,52378 Etcetera... In that way, I have the temperature & rainfall to filter out which terrain types are possible and a pseudo random factor to act as a tie-breaker if more terrain types are possible. ## The result ##  If you have excel and want to play around with this tool, you can download it here: https://www.dropbox.com/s/0ngjkp0kabugks6/WorldOfEmpires2_map_edit_steemit.xlsx?dl=0 Feedback is very welcome! |
| json metadata | {"tags":["map","creator","excel","grid","civilization"],"image":["https://cdn.steemitimages.com/DQmZHqdvYFSGUCvtxcyDDtf5F3uvAAh8mjV6SpNPLEg5gvC/image.png","https://cdn.steemitimages.com/DQmc96AKZ3pMSA1mo6VNeNvFRKPvRQYpJmtfW549r7xC2T2/image.png","https://cdn.steemitimages.com/DQmZVashmJi9EH24mFbph6F63ehXeWWqEacsFujn9vSUdGn/image.png","https://cdn.steemitimages.com/DQmYmBfwJ4eX37J8aDzdR7BxhRNScpRCAbXvYRbfEyszi7a/image.png","https://cdn.steemitimages.com/DQmaSwc534jTYxok7CCryZ1Ura2c47dstG8ZgisCVqbrZyJ/image.png","https://cdn.steemitimages.com/DQmc1GML9geE7UjRKEi1ndEBhaqg88v3LrQzGhGMQ5Rqt9p/image.png","https://cdn.steemitimages.com/DQmPJZRjkULZjTKha98CJRqxHWVjhpWzaWxSSC2BUjyQnzR/image.png","https://cdn.steemitimages.com/DQmUaeckBdg1o8U133eVnZjWfDQkcaC9sSmS8cXz8GmyXq6/image.png","https://cdn.steemitimages.com/DQmP31tpnu4ySWkZeSLVa3hWovDge49n7VzhQNhtEdcTGgx/image.png","https://cdn.steemitimages.com/DQmcVgNygxerZJQRWP46iyQcYJQNpTonR5Gvav34QfXxmjN/image.png"],"links":["https://visualbruno.itch.io/world-of-empires2","https://stackoverflow.com/a/33170115/4552016","https://flafla2.github.io/2014/08/09/perlinnoise.html","https://www.dropbox.com/s/0ngjkp0kabugks6/WorldOfEmpires2_map_edit_steemit.xlsx?dl=0"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #37188061/Trx c854edb61f1ebc3787683c7be43db96ae6a9e901 |
View Raw JSON Data
{
"trx_id": "c854edb61f1ebc3787683c7be43db96ae6a9e901",
"block": 37188061,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-10-11T10:43:33",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "map",
"author": "beeheap",
"permlink": "create-a-fantasy-grid-map-in-excel",
"title": "Create a fantasy grid map - in Excel",
"body": "# What? #\nFor a Civilization-like game I like to play (freeware, https://visualbruno.itch.io/world-of-empires2 ) I wanted to create better maps. As Civilization used to be a simple squares-based map, I found Excel an easy and visual tool to get this done. This article is about the map creator I made. The link to the tool is at the bottom.\n# Technical #\nUsing just excel functions the tool can create a 64x48 tiles map. The tool does not use macros. It has to have a random factor, but should be deterministic in its outcome. As in: you can pick a random seed, but given the same seed, it should give the same outcome.\n# The map making #\n## Step 1 ##\nAs a base for the map, I started off with one cell where the user has to put in a \"seed value\", a number greater than 0 which is the base for the whole map. Based on this seed and the dimensions of the map, the grid is filled with pseudo-random numbers. In Excel function:\n`=MOD(48271*A1,2^31-1)` - this is the [Lehmer random number generator](https://stackoverflow.com/a/33170115/4552016)\n\n\n## Step 2 ##\nStandardize these values to the range 0-1, so they can be used easier. I added some conditional formatting for easier visual checks.\n\n\n## Step 3 ##\nThe next step is to use these random numbers to create land and sea. For this we need one more extra input: the percentage of land that the user wants. The issue is that the map just based on the random numbers from Step 2 looks like this (top 40% of random values are land here):\n\nIn order to make a more credible map, land masses need to be clumped together, which is basically smoothening the random values. The trick for that is using [Perlin Noise](https://flafla2.github.io/2014/08/09/perlinnoise.html)\n### Perlin Noise example ###\n \nThe calculation here starts off with the grid filled with pseudo random values. In order to smoothen it we will only take some values. In the example above the *octave* is 2. An octave is basically setting the smoothness: the higher the octave, the smoother the outcome. An octave of 2 means that only every 4th random value is used, the values in between are calculated based on these values. What that means is that e.g. the circled cells are the same value as the random values, the rest is calculated.\nAn example is the 0,51 (yellow box). The general formula is:\n`value(i0,j0)*(1-vert_blend)*(1-horiz_blend)+value(i0,j1)*(vert_blend)*(1-horiz_blend)+value(i1,j0)*(1-vert_blend)*(horiz_blend)+value(i1,j1)*(vert_blend)*(horiz_blend)`\nThis means for 0,51:\n`0,00*(1-0,75)*(1-0,5)+0,43*(0,75)*(1-0,5)+0,71*(1-0,75)*(1-0,5)+0,70*(0,75)*(0,5)=0,51`\nDoing that for various *octaves* (1-4), this is the result from random to octave 4:\n\n## Step 4 ##\nThe 4th step is merging these 5 random maps. Again: I am basically creating a height map, so only the e.g. top 40% of random values becomes land, the rest sea. The main challenge here is the weighing factor per map. If I want a pangea map (one big landmass), I want to give the 4th octave a big weight, the lower ones less. What I came up with are 2 factors: the maximum octave used (0 is the random numbers I started with) and the octave multiplier: starting with a weight of 1 for octave 0, the next octave weight gets multiplied by this number. The results of these steps becomes apparent in step 5.\n## Step 5 ##\nStep 5 is setting the landmass percentage, as said above: only the e.g. top 40% of random values of step 4 become land, the rest sea. With 40%, this is the impact of the settings of step 4:\n\nThis starts looking like a map! And what I can do is create some pre-determined settings for e.g. \"a fractal map\", \"a pangea map\" and a \"continents\" map, just a random seed and 3 numbers will do :).\n## Step 6 ##\nStep 6 is a small smoothening: removing the single tile water or land. Basically: if all tiles around it are water, than the tile itself should be water.\n## Step 7 ##\nMountains & lakes... Say the top 1% of the height map (step 5) should be mountain. For lakes: every water tile that has at least 2 land tiles next to it becomes a lake. After step 6&7, this is the land (light green), lake (blue), sea (white) & mountain (dark green) map.\n\n## Step 8 ##\nClimate... Here I have 2 inputs: rainfall (0: little, 9: lots) and temperature (0: cold, 9: hot). But how does this translate into different tile types? For that I created a small table for the different types of terrain, their min&max temperature (scale: 0-100) and min&max rainfall (0-100).\n\n### Temperature ###\nThis one is rather easy: it runs from 0 at the poles to 100 at the equator. One small adjustment: when the temperature is set to \"cold\" (=0), it runs from 0 to 90 and when it's set to hot (=9) it runs from 9 to 99.\n### Rainfall ###\nIn my tool I'm basically using a Perlin noise map with an octave of 1,5. I'm using the resulting (random) numbers for 80% and add the setting for rainfall for 20%, so a \"very wet\" map will be in the range of 20-100 and a very dry map will be 0-80. This leads clusters of wet and dry, e.g.:\n\n### Terrain type ###\nThe next step is to find out if a terrain type can exist on a certain cell in the grid. That's not too complicated with the temperature and the rainfall already calculated. But it can happen that based on these 2 criteria multiple terrain types can occur on one cell, so I needed some pseudo random variable to determine the final terrain type. Again: I want the system to be deterministic and always lead to the same answer. So what I did is to take the random values of step 2 and for every terrain type, I took the next chunck of that random value, like so:\nRandom value from step 2: 0,78252378\nTundra (from digit 2): 0,8252378\nGrassland (from digit 3): 0,252378\nPlains (from digit 4): 0,52378 \nEtcetera... In that way, I have the temperature & rainfall to filter out which terrain types are possible and a pseudo random factor to act as a tie-breaker if more terrain types are possible.\n## The result ##\n\nIf you have excel and want to play around with this tool, you can download it here:\nhttps://www.dropbox.com/s/0ngjkp0kabugks6/WorldOfEmpires2_map_edit_steemit.xlsx?dl=0\nFeedback is very welcome!",
"json_metadata": "{\"tags\":[\"map\",\"creator\",\"excel\",\"grid\",\"civilization\"],\"image\":[\"https://cdn.steemitimages.com/DQmZHqdvYFSGUCvtxcyDDtf5F3uvAAh8mjV6SpNPLEg5gvC/image.png\",\"https://cdn.steemitimages.com/DQmc96AKZ3pMSA1mo6VNeNvFRKPvRQYpJmtfW549r7xC2T2/image.png\",\"https://cdn.steemitimages.com/DQmZVashmJi9EH24mFbph6F63ehXeWWqEacsFujn9vSUdGn/image.png\",\"https://cdn.steemitimages.com/DQmYmBfwJ4eX37J8aDzdR7BxhRNScpRCAbXvYRbfEyszi7a/image.png\",\"https://cdn.steemitimages.com/DQmaSwc534jTYxok7CCryZ1Ura2c47dstG8ZgisCVqbrZyJ/image.png\",\"https://cdn.steemitimages.com/DQmc1GML9geE7UjRKEi1ndEBhaqg88v3LrQzGhGMQ5Rqt9p/image.png\",\"https://cdn.steemitimages.com/DQmPJZRjkULZjTKha98CJRqxHWVjhpWzaWxSSC2BUjyQnzR/image.png\",\"https://cdn.steemitimages.com/DQmUaeckBdg1o8U133eVnZjWfDQkcaC9sSmS8cXz8GmyXq6/image.png\",\"https://cdn.steemitimages.com/DQmP31tpnu4ySWkZeSLVa3hWovDge49n7VzhQNhtEdcTGgx/image.png\",\"https://cdn.steemitimages.com/DQmcVgNygxerZJQRWP46iyQcYJQNpTonR5Gvav34QfXxmjN/image.png\"],\"links\":[\"https://visualbruno.itch.io/world-of-empires2\",\"https://stackoverflow.com/a/33170115/4552016\",\"https://flafla2.github.io/2014/08/09/perlinnoise.html\",\"https://www.dropbox.com/s/0ngjkp0kabugks6/WorldOfEmpires2_map_edit_steemit.xlsx?dl=0\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}2019/08/24 09:41:39
2019/08/24 09:41:39
| parent author | beeheap |
| parent permlink | excel-and-vba-development-with-github |
| author | steemitboard |
| permlink | steemitboard-notify-beeheap-20190824t094138000z |
| title | |
| body | Congratulations @beeheap! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@beeheap/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@beeheap) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=beeheap)_</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes! |
| json metadata | {"image":["https://steemitboard.com/img/notify.png"]} |
| Transaction Info | Block #35829167/Trx e6fef037351aba026c741537cb47929c92d18af1 |
View Raw JSON Data
{
"trx_id": "e6fef037351aba026c741537cb47929c92d18af1",
"block": 35829167,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-08-24T09:41:39",
"op": [
"comment",
{
"parent_author": "beeheap",
"parent_permlink": "excel-and-vba-development-with-github",
"author": "steemitboard",
"permlink": "steemitboard-notify-beeheap-20190824t094138000z",
"title": "",
"body": "Congratulations @beeheap! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@beeheap/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@beeheap) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=beeheap)_</sub>\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
"json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
}
]
}2019/05/12 13:31:30
2019/05/12 13:31:30
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 8943.202877 VESTS |
| Transaction Info | Block #32843833/Trx 2097a47eb8e90b2cdfb224f505e6744a387260e8 |
View Raw JSON Data
{
"trx_id": "2097a47eb8e90b2cdfb224f505e6744a387260e8",
"block": 32843833,
"trx_in_block": 65,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-12T13:31:30",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "8943.202877 VESTS"
}
]
}cryptowezzupvoted (100.00%) @beeheap / excel-and-vba-development-with-github2018/11/16 17:49:51
cryptowezzupvoted (100.00%) @beeheap / excel-and-vba-development-with-github
2018/11/16 17:49:51
| voter | cryptowezz |
| author | beeheap |
| permlink | excel-and-vba-development-with-github |
| weight | 10000 (100.00%) |
| Transaction Info | Block #27756475/Trx d52a3bee83989ca91bafe12a32803e9cb65ea8a9 |
View Raw JSON Data
{
"trx_id": "d52a3bee83989ca91bafe12a32803e9cb65ea8a9",
"block": 27756475,
"trx_in_block": 12,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-11-16T17:49:51",
"op": [
"vote",
{
"voter": "cryptowezz",
"author": "beeheap",
"permlink": "excel-and-vba-development-with-github",
"weight": 10000
}
]
}2018/11/16 17:49:39
2018/11/16 17:49:39
| voter | cryptowezz |
| author | beeheap |
| permlink | re-bstiel-re-beeheap-excel-and-vba-development-with-github-20171211t121837962z |
| weight | 10000 (100.00%) |
| Transaction Info | Block #27756471/Trx 901aff004d53f82d57487ea612aec3f1123eef18 |
View Raw JSON Data
{
"trx_id": "901aff004d53f82d57487ea612aec3f1123eef18",
"block": 27756471,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-11-16T17:49:39",
"op": [
"vote",
{
"voter": "cryptowezz",
"author": "beeheap",
"permlink": "re-bstiel-re-beeheap-excel-and-vba-development-with-github-20171211t121837962z",
"weight": 10000
}
]
}2018/05/16 20:07:48
2018/05/16 20:07:48
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 9142.755312 VESTS |
| Transaction Info | Block #22489657/Trx 41d9a74a11abe7308d0337c48027c322338898db |
View Raw JSON Data
{
"trx_id": "41d9a74a11abe7308d0337c48027c322338898db",
"block": 22489657,
"trx_in_block": 28,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-05-16T20:07:48",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "9142.755312 VESTS"
}
]
}2018/02/22 12:16:39
2018/02/22 12:16:39
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 29624.680313 VESTS |
| Transaction Info | Block #20092361/Trx 5ccb1baa5bd684f7537f3152f211189d2419ca6d |
View Raw JSON Data
{
"trx_id": "5ccb1baa5bd684f7537f3152f211189d2419ca6d",
"block": 20092361,
"trx_in_block": 34,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-22T12:16:39",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "29624.680313 VESTS"
}
]
}2018/02/17 12:20:27
2018/02/17 12:20:27
| parent author | beeheap |
| parent permlink | re-coininfo-re-tonyfat-review-of-ico-symmetry-fund-20180126t104602661z |
| author | spacebeard |
| permlink | re-beeheap-re-coininfo-re-tonyfat-review-of-ico-symmetry-fund-20180217t122025654z |
| title | |
| body | yeah i had about 1.2 Eth with these fuckers, but it was all from profits so its not that big of deal but seriously this is bull shit. |
| json metadata | {"tags":["crypto"],"app":"steemit/0.1"} |
| Transaction Info | Block #19948475/Trx 609f6cd84bf2f5d3cb9bd33e3233aaea67a184a1 |
View Raw JSON Data
{
"trx_id": "609f6cd84bf2f5d3cb9bd33e3233aaea67a184a1",
"block": 19948475,
"trx_in_block": 41,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-17T12:20:27",
"op": [
"comment",
{
"parent_author": "beeheap",
"parent_permlink": "re-coininfo-re-tonyfat-review-of-ico-symmetry-fund-20180126t104602661z",
"author": "spacebeard",
"permlink": "re-beeheap-re-coininfo-re-tonyfat-review-of-ico-symmetry-fund-20180217t122025654z",
"title": "",
"body": "yeah i had about 1.2 Eth with these fuckers, but it was all from profits so its not that big of deal but seriously this is bull shit.",
"json_metadata": "{\"tags\":[\"crypto\"],\"app\":\"steemit/0.1\"}"
}
]
}2018/02/10 04:30:21
2018/02/10 04:30:21
| parent author | beeheap |
| parent permlink | re-coininfo-re-tonyfat-review-of-ico-symmetry-fund-20180126t104602661z |
| author | nuthman |
| permlink | re-beeheap-re-coininfo-re-tonyfat-review-of-ico-symmetry-fund-20180210t043022274z |
| title | |
| body | Is there any new news about this? I only have 1 ETH invested in SYMM but it would really suck to lose it. I've sent in a request for a refund but am guessing that I'll never get a response. |
| json metadata | {"tags":["crypto"],"app":"steemit/0.1"} |
| Transaction Info | Block #19737658/Trx ae6da6904457b7e651dc8c1f04aeb70a79fb0347 |
View Raw JSON Data
{
"trx_id": "ae6da6904457b7e651dc8c1f04aeb70a79fb0347",
"block": 19737658,
"trx_in_block": 16,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-02-10T04:30:21",
"op": [
"comment",
{
"parent_author": "beeheap",
"parent_permlink": "re-coininfo-re-tonyfat-review-of-ico-symmetry-fund-20180126t104602661z",
"author": "nuthman",
"permlink": "re-beeheap-re-coininfo-re-tonyfat-review-of-ico-symmetry-fund-20180210t043022274z",
"title": "",
"body": "Is there any new news about this? I only have 1 ETH invested in SYMM but it would really suck to lose it. I've sent in a request for a refund but am guessing that I'll never get a response.",
"json_metadata": "{\"tags\":[\"crypto\"],\"app\":\"steemit/0.1\"}"
}
]
}2018/01/26 10:46:03
2018/01/26 10:46:03
| parent author | coin.info |
| parent permlink | re-tonyfat-review-of-ico-symmetry-fund-20180119t135846811z |
| author | beeheap |
| permlink | re-coininfo-re-tonyfat-review-of-ico-symmetry-fund-20180126t104602661z |
| title | |
| body | Hey Tony, you might want to re-review this fund, hereby two links to a post I made. I have strong indications that it's a SCAM, so hope you can check my facts and change your article accordingly. https://bitcointalk.org/index.php?topic=2480514.msg28957307#msg28957307 or https://www.cryptocompare.com/coins/symm/post/p_671172 |
| json metadata | {"tags":["crypto"],"links":["https://bitcointalk.org/index.php?topic=2480514.msg28957307#msg28957307","https://www.cryptocompare.com/coins/symm/post/p_671172"],"app":"steemit/0.1"} |
| Transaction Info | Block #19313830/Trx 8d05c0e3c1a3f9a6a9ba84ea76b344373cf9fb5a |
View Raw JSON Data
{
"trx_id": "8d05c0e3c1a3f9a6a9ba84ea76b344373cf9fb5a",
"block": 19313830,
"trx_in_block": 44,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-26T10:46:03",
"op": [
"comment",
{
"parent_author": "coin.info",
"parent_permlink": "re-tonyfat-review-of-ico-symmetry-fund-20180119t135846811z",
"author": "beeheap",
"permlink": "re-coininfo-re-tonyfat-review-of-ico-symmetry-fund-20180126t104602661z",
"title": "",
"body": "Hey Tony, you might want to re-review this fund, hereby two links to a post I made. I have strong indications that it's a SCAM, so hope you can check my facts and change your article accordingly.\nhttps://bitcointalk.org/index.php?topic=2480514.msg28957307#msg28957307 or https://www.cryptocompare.com/coins/symm/post/p_671172",
"json_metadata": "{\"tags\":[\"crypto\"],\"links\":[\"https://bitcointalk.org/index.php?topic=2480514.msg28957307#msg28957307\",\"https://www.cryptocompare.com/coins/symm/post/p_671172\"],\"app\":\"steemit/0.1\"}"
}
]
}beeheapfollowed @cryptowezz2017/12/15 13:35:27
beeheapfollowed @cryptowezz
2017/12/15 13:35:27
| required auths | [] |
| required posting auths | ["beeheap"] |
| id | follow |
| json | ["follow",{"follower":"beeheap","following":"cryptowezz","what":["blog"]}] |
| Transaction Info | Block #18108461/Trx 36e5189ec6cf2d29c77e70e6294266a73c618732 |
View Raw JSON Data
{
"trx_id": "36e5189ec6cf2d29c77e70e6294266a73c618732",
"block": 18108461,
"trx_in_block": 19,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-12-15T13:35:27",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"beeheap"
],
"id": "follow",
"json": "[\"follow\",{\"follower\":\"beeheap\",\"following\":\"cryptowezz\",\"what\":[\"blog\"]}]"
}
]
}2017/12/11 12:18:39
2017/12/11 12:18:39
| parent author | bstiel |
| parent permlink | re-beeheap-excel-and-vba-development-with-github-20171202t074944492z |
| author | beeheap |
| permlink | re-bstiel-re-beeheap-excel-and-vba-development-with-github-20171211t121837962z |
| title | |
| body | Hi Björn, thanks for your feedback! I do like your example, it does make life more convenient for some people. It does however have two drawbacks for me: - I would have to install & learn python (I do speak it a little). I do like to stick to my Excel/VBA only setup (with the GitHub GUI). It's basically the "lowest/least tech option". - In my setup there are some modules I don't want to export, have a test module and one with my API keys. I prefer those not to end up on the web, so still have to white list my modules somewhere. I'm trying to come up with an answer to your statement that "You are dependent on Excel, so if you copy your workbook from an email or another folder into your Git repository folder, your VBA export function will not run. " My macro runs just fine, it's only that my export directory settings are fixed in my Excel-dev file. What I've once built is an extra settings file in my work directory. On opening my workbook, the workbook looks for that settings file in the same directory it is located. It than grabs those settings and runs on whatever machine or give an error if it can't find the settings nor the normal GitHub directory. |
| json metadata | {"tags":["vba"],"app":"steemit/0.1"} |
| Transaction Info | Block #17991771/Trx c94884fa4747035efd811d2b64e448bd8fab7070 |
View Raw JSON Data
{
"trx_id": "c94884fa4747035efd811d2b64e448bd8fab7070",
"block": 17991771,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-12-11T12:18:39",
"op": [
"comment",
{
"parent_author": "bstiel",
"parent_permlink": "re-beeheap-excel-and-vba-development-with-github-20171202t074944492z",
"author": "beeheap",
"permlink": "re-bstiel-re-beeheap-excel-and-vba-development-with-github-20171211t121837962z",
"title": "",
"body": "Hi Björn,\nthanks for your feedback! I do like your example, it does make life more convenient for some people. It does however have two drawbacks for me:\n- I would have to install & learn python (I do speak it a little). I do like to stick to my Excel/VBA only setup (with the GitHub GUI). It's basically the \"lowest/least tech option\".\n- In my setup there are some modules I don't want to export, have a test module and one with my API keys. I prefer those not to end up on the web, so still have to white list my modules somewhere.\n\nI'm trying to come up with an answer to your statement that \"You are dependent on Excel, so if you copy your workbook from an email or another folder into your Git repository folder, your VBA export function will not run. \" \nMy macro runs just fine, it's only that my export directory settings are fixed in my Excel-dev file. What I've once built is an extra settings file in my work directory. On opening my workbook, the workbook looks for that settings file in the same directory it is located. It than grabs those settings and runs on whatever machine or give an error if it can't find the settings nor the normal GitHub directory.",
"json_metadata": "{\"tags\":[\"vba\"],\"app\":\"steemit/0.1\"}"
}
]
}bstielupvoted (100.00%) @beeheap / excel-and-vba-development-with-github2017/12/02 12:08:00
bstielupvoted (100.00%) @beeheap / excel-and-vba-development-with-github
2017/12/02 12:08:00
| voter | bstiel |
| author | beeheap |
| permlink | excel-and-vba-development-with-github |
| weight | 10000 (100.00%) |
| Transaction Info | Block #17732512/Trx 37cc417ee50b9fe3195ceb37e3cf1c6d874c06b0 |
View Raw JSON Data
{
"trx_id": "37cc417ee50b9fe3195ceb37e3cf1c6d874c06b0",
"block": 17732512,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-12-02T12:08:00",
"op": [
"vote",
{
"voter": "bstiel",
"author": "beeheap",
"permlink": "excel-and-vba-development-with-github",
"weight": 10000
}
]
}2017/12/02 07:49:42
2017/12/02 07:49:42
| parent author | beeheap |
| parent permlink | excel-and-vba-development-with-github |
| author | bstiel |
| permlink | re-beeheap-excel-and-vba-development-with-github-20171202t074944492z |
| title | |
| body | Hi Koen, thanks for the article (funnily, I've actually come across your crypto currency workbook on GitHub in a completely different context). I've recently written about using the git pre-commit hook to take care of auto-exporting VBA code from a workbook. In other words, every time you do `git commit`, git executes a little Python script that grabs the VBA modules from the workbook, writes it to the file system and adds it to the commit: https://www.xltrail.com/blog/auto-export-vba-commit-hook What are your thoughts on that? |
| json metadata | {"tags":["vba"],"links":["https://www.xltrail.com/blog/auto-export-vba-commit-hook"],"app":"steemit/0.1"} |
| Transaction Info | Block #17727346/Trx 5641a19562669e953b2a65051bcb29c48136518d |
View Raw JSON Data
{
"trx_id": "5641a19562669e953b2a65051bcb29c48136518d",
"block": 17727346,
"trx_in_block": 9,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-12-02T07:49:42",
"op": [
"comment",
{
"parent_author": "beeheap",
"parent_permlink": "excel-and-vba-development-with-github",
"author": "bstiel",
"permlink": "re-beeheap-excel-and-vba-development-with-github-20171202t074944492z",
"title": "",
"body": "Hi Koen,\n\nthanks for the article (funnily, I've actually come across your crypto currency workbook on GitHub in a completely different context).\n\nI've recently written about using the git pre-commit hook to take care of auto-exporting VBA code from a workbook. In other words, every time you do `git commit`, git executes a little Python script that grabs the VBA modules from the workbook, writes it to the file system and adds it to the commit: https://www.xltrail.com/blog/auto-export-vba-commit-hook\n\nWhat are your thoughts on that?",
"json_metadata": "{\"tags\":[\"vba\"],\"links\":[\"https://www.xltrail.com/blog/auto-export-vba-commit-hook\"],\"app\":\"steemit/0.1\"}"
}
]
}lamubin3supvoted (100.00%) @beeheap / excel-and-vba-development-with-github2017/11/20 22:37:06
lamubin3supvoted (100.00%) @beeheap / excel-and-vba-development-with-github
2017/11/20 22:37:06
| voter | lamubin3s |
| author | beeheap |
| permlink | excel-and-vba-development-with-github |
| weight | 10000 (100.00%) |
| Transaction Info | Block #17399629/Trx 700a6ca5c8996d41aa5f22e91fbcea9c7dae9cbb |
View Raw JSON Data
{
"trx_id": "700a6ca5c8996d41aa5f22e91fbcea9c7dae9cbb",
"block": 17399629,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-11-20T22:37:06",
"op": [
"vote",
{
"voter": "lamubin3s",
"author": "beeheap",
"permlink": "excel-and-vba-development-with-github",
"weight": 10000
}
]
}beeheapfollowed @dan.jeffries12017/11/20 19:56:09
beeheapfollowed @dan.jeffries1
2017/11/20 19:56:09
| required auths | [] |
| required posting auths | ["beeheap"] |
| id | follow |
| json | ["follow",{"follower":"beeheap","following":"dan.jeffries1","what":["blog"]}] |
| Transaction Info | Block #17396413/Trx 1d0eda9d976ebb7d8baa5489b42353cb47d3aaa9 |
View Raw JSON Data
{
"trx_id": "1d0eda9d976ebb7d8baa5489b42353cb47d3aaa9",
"block": 17396413,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-11-20T19:56:09",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"beeheap"
],
"id": "follow",
"json": "[\"follow\",{\"follower\":\"beeheap\",\"following\":\"dan.jeffries1\",\"what\":[\"blog\"]}]"
}
]
}beeheappublished a new post: excel-and-vba-development-with-github2017/11/20 19:49:24
beeheappublished a new post: excel-and-vba-development-with-github
2017/11/20 19:49:24
| parent author | |
| parent permlink | vba |
| author | beeheap |
| permlink | excel-and-vba-development-with-github |
| title | Excel & VBA development with GitHub |
| body | <html> <h1>A 5 step how-to for VBA/Excel developers who want to share their code and want to have structure in their excel-tool development.</h1> <h1><img src="https://uloqu.com/assets/excel_to_github.png" width="1541" height="244"/></h1> <p>What I have set up for my project:</p> <ol> <li>setup a <strong>basic excel</strong> to work on </li> <li>and an <strong>online place </strong>to store the project</li> <li>start coding and be able to <strong>test </strong>the code</li> <li>have a macro to <strong>export</strong> all relevant VBA code</li> <li>get the new code in a <strong>Github repository </strong>online</li> </ol> <h3><strong>1. Basic Excel setup</strong></h3> <p>I've been building quite a lot of excel tools in my life. Normally I save the excel file I am working on several times during development, using <strong>Save As</strong>. I use names like: <em>CryptoTool_20171118a.xlsm</em>, <em>CryptoTool_20171118b.xlsm</em>, etc. Some years ago I've worked on a start-up and discovered version control. So when I recently decided to build a VBA project to connect Excel to various bitcoin/cryptocurrency exchanges, I decided to go for a more professional approach: including version control and testing in my development process.</p> <p>One side note: version control only works well for VBA code, not so much for logging changes in sheets, charts etc. Anyhow, since my project is mainly about code, I decided to give version control a try. I do save my master file ocasionally with the naming convention above.</p> <h3>2. Store the project online</h3> <p>So, version control... According to Wikipedia: Git is a version control system for tracking changes in computer files and coordinating work on those files among multiple people.</p> <p>So Git basically 1) helps me tracking changes in your code and 2) gives me the ability to go back to earlier versions of that code. So I got myself <a href="https://github.com/krijnsent/">an account at GitHub</a>, and created a new project called <a href="https://github.com/krijnsent/crypto_vba/">crypto_vba</a>. Step one was to create a readme.md file and make a small description of the project.</p> <p>What I found hard about github is that git is basically command-line based. Although I grew up with MS DOS on the command line, I fancy a graphical interface. Luckily github has a desktop version: <a href="https://desktop.github.com/">https://desktop.github.com/</a> . After downloading and installing that it's pretty easy to connect it to my online project and to add a local directory where I will be storing the files I want to have online.</p> <h3>3. Code testing</h3> <p>After version control, a second building block for profesional development is <strong>testing</strong>. An extensive variety of this is Test driven development. That means: first write the test for a function, after which you can start building the function. I don't go that far for this project, but do include a test Sub at the top of every module.</p> <p>I found a complication while building this, as I need to test my code with some <em>private settings</em>. In my case that's the exchange API keys. I don't want those to end up in my Github repository online. So what I do:</p> <ul> <li>Create a module that won't be exported to my Github project</li> <li>In that module, create a public Constant:</li> </ul> <pre><code>Public Const apikey_btce = "MP3YF9J3"</code></pre> <p>And in the modules for the people who want to use it:</p> <pre><code>apikey = "your api key here"<br> 'Remove this line, unless you define 2 constants somewhere ( Public Const apikey_btce = "the key to use everywhere" etc )<br> apikey = apikey_btce</code></pre> <p>In this way, tests pass and as long as you don't export your secret module, nobody will have the private settings.</p> <h3>4. Export VBA code and import it into a test file</h3> <p>So now you have a setup where you can work in the master file, test the code and want to export that code. For this I found various snippets online, the version I use is here: <a href="https://pastebin.com/Lhb6yupj">https://pastebin.com/Lhb6yupj</a>. What this macro does:</p> <ul> <li>export all VBA modules that are listed and save them as .bas files in a specified directory</li> <li>import those .bas files into the example file in that same directory</li> </ul> <h3>5. Push the updated files online</h3> <p>So from the master you can export code, but still need to put it online. At that point, the <a href="https://desktop.github.com">Github desktop</a> comes in. What the program does is basically show you the differences in the .bas files between the last version and the current version. Note: the program is looking at the exported files, not at the code inside your Excel file. After adding a short description of the update, it's simply pushing the "Commit to master" button and after that at the top "push". </p> <p><img src="https://uloqu.com/assets/github_desktop.png" width="1280" height="720"/></p> <p><br></p> <p>So that's how it works for me, hope that this how-to inspires you to share your code. Feedback is welcome in the comments. If you want to go a step further, like importing & exporting VBA code, do check out this project: <a href="http://ramblings.mcpher.com/Home/excelquirks/vbagit/gettingstarted">http://ramblings.mcpher.com/Home/excelquirks/vbagit/gettingstarted</a></p> <p><br></p> </html> |
| json metadata | {"tags":["vba","github","development","excel"],"image":["https://uloqu.com/assets/excel_to_github.png","https://uloqu.com/assets/github_desktop.png"],"links":["https://github.com/krijnsent/","https://github.com/krijnsent/crypto_vba/","https://desktop.github.com/","https://pastebin.com/Lhb6yupj","https://desktop.github.com","http://ramblings.mcpher.com/Home/excelquirks/vbagit/gettingstarted"],"app":"steemit/0.1","format":"html"} |
| Transaction Info | Block #17396278/Trx a9615f234c568c0ca2b1e7b6e6ec64c6a63e4f26 |
View Raw JSON Data
{
"trx_id": "a9615f234c568c0ca2b1e7b6e6ec64c6a63e4f26",
"block": 17396278,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-11-20T19:49:24",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "vba",
"author": "beeheap",
"permlink": "excel-and-vba-development-with-github",
"title": "Excel & VBA development with GitHub",
"body": "<html>\n<h1>A 5 step how-to for VBA/Excel developers who want to share their code and want to have structure in their excel-tool development.</h1>\n<h1><img src=\"https://uloqu.com/assets/excel_to_github.png\" width=\"1541\" height=\"244\"/></h1>\n<p>What I have set up for my project:</p>\n<ol>\n <li>setup a <strong>basic excel</strong> to work on </li>\n <li>and an <strong>online place </strong>to store the project</li>\n <li>start coding and be able to <strong>test </strong>the code</li>\n <li>have a macro to <strong>export</strong> all relevant VBA code</li>\n <li>get the new code in a <strong>Github repository </strong>online</li>\n</ol>\n<h3><strong>1. Basic Excel setup</strong></h3>\n<p>I've been building quite a lot of excel tools in my life. Normally I save the excel file I am working on several times during development, using <strong>Save As</strong>. I use names like: <em>CryptoTool_20171118a.xlsm</em>, <em>CryptoTool_20171118b.xlsm</em>, etc. Some years ago I've worked on a start-up and discovered version control. So when I recently decided to build a VBA project to connect Excel to various bitcoin/cryptocurrency exchanges, I decided to go for a more professional approach: including version control and testing in my development process.</p>\n<p>One side note: version control only works well for VBA code, not so much for logging changes in sheets, charts etc. Anyhow, since my project is mainly about code, I decided to give version control a try. I do save my master file ocasionally with the naming convention above.</p>\n<h3>2. Store the project online</h3>\n<p>So, version control... According to Wikipedia: Git is a version control system for tracking changes in computer files and coordinating work on those files among multiple people.</p>\n<p>So Git basically 1) helps me tracking changes in your code and 2) gives me the ability to go back to earlier versions of that code. So I got myself <a href=\"https://github.com/krijnsent/\">an account at GitHub</a>, and created a new project called <a href=\"https://github.com/krijnsent/crypto_vba/\">crypto_vba</a>. Step one was to create a readme.md file and make a small description of the project.</p>\n<p>What I found hard about github is that git is basically command-line based. Although I grew up with MS DOS on the command line, I fancy a graphical interface. Luckily github has a desktop version: <a href=\"https://desktop.github.com/\">https://desktop.github.com/</a> . After downloading and installing that it's pretty easy to connect it to my online project and to add a local directory where I will be storing the files I want to have online.</p>\n<h3>3. Code testing</h3>\n<p>After version control, a second building block for profesional development is <strong>testing</strong>. An extensive variety of this is Test driven development. That means: first write the test for a function, after which you can start building the function. I don't go that far for this project, but do include a test Sub at the top of every module.</p>\n<p>I found a complication while building this, as I need to test my code with some <em>private settings</em>. In my case that's the exchange API keys. I don't want those to end up in my Github repository online. So what I do:</p>\n<ul>\n <li>Create a module that won't be exported to my Github project</li>\n <li>In that module, create a public Constant:</li>\n</ul>\n<pre><code>Public Const apikey_btce = \"MP3YF9J3\"</code></pre>\n<p>And in the modules for the people who want to use it:</p>\n<pre><code>apikey = \"your api key here\"<br>\n'Remove this line, unless you define 2 constants somewhere ( Public Const apikey_btce = \"the key to use everywhere\" etc )<br>\napikey = apikey_btce</code></pre>\n<p>In this way, tests pass and as long as you don't export your secret module, nobody will have the private settings.</p>\n<h3>4. Export VBA code and import it into a test file</h3>\n<p>So now you have a setup where you can work in the master file, test the code and want to export that code. For this I found various snippets online, the version I use is here: <a href=\"https://pastebin.com/Lhb6yupj\">https://pastebin.com/Lhb6yupj</a>. What this macro does:</p>\n<ul>\n <li>export all VBA modules that are listed and save them as .bas files in a specified directory</li>\n <li>import those .bas files into the example file in that same directory</li>\n</ul>\n<h3>5. Push the updated files online</h3>\n<p>So from the master you can export code, but still need to put it online. At that point, the <a href=\"https://desktop.github.com\">Github desktop</a> comes in. What the program does is basically show you the differences in the .bas files between the last version and the current version. Note: the program is looking at the exported files, not at the code inside your Excel file. After adding a short description of the update, it's simply pushing the \"Commit to master\" button and after that at the top \"push\". </p>\n<p><img src=\"https://uloqu.com/assets/github_desktop.png\" width=\"1280\" height=\"720\"/></p>\n<p><br></p>\n<p>So that's how it works for me, hope that this how-to inspires you to share your code. Feedback is welcome in the comments. If you want to go a step further, like importing & exporting VBA code, do check out this project: <a href=\"http://ramblings.mcpher.com/Home/excelquirks/vbagit/gettingstarted\">http://ramblings.mcpher.com/Home/excelquirks/vbagit/gettingstarted</a></p>\n<p><br></p>\n</html>",
"json_metadata": "{\"tags\":[\"vba\",\"github\",\"development\",\"excel\"],\"image\":[\"https://uloqu.com/assets/excel_to_github.png\",\"https://uloqu.com/assets/github_desktop.png\"],\"links\":[\"https://github.com/krijnsent/\",\"https://github.com/krijnsent/crypto_vba/\",\"https://desktop.github.com/\",\"https://pastebin.com/Lhb6yupj\",\"https://desktop.github.com\",\"http://ramblings.mcpher.com/Home/excelquirks/vbagit/gettingstarted\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
}
]
}2017/10/13 16:13:42
2017/10/13 16:13:42
| delegator | steem |
| delegatee | beeheap |
| vesting shares | 29829.556404 VESTS |
| Transaction Info | Block #16298456/Trx 25772631d91ce77261fb6779b17de3de6cc185fd |
View Raw JSON Data
{
"trx_id": "25772631d91ce77261fb6779b17de3de6cc185fd",
"block": 16298456,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-10-13T16:13:42",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "beeheap",
"vesting_shares": "29829.556404 VESTS"
}
]
}beeheapupdated their account properties2017/08/24 12:40:21
beeheapupdated their account properties
2017/08/24 12:40:21
| account | beeheap |
| memo key | STM4xpjHsjGyZ8zWUnrHU27TD4Sb6M58nQkwxQ9D83myUyKnTn1jq |
| json metadata | {"profile":{"location":"the Netherlands","profile_image":"https://media.licdn.com/mpr/mpr/shrinknp_200_200/p/1/000/0ef/026/235b88a.jpg","name":"Koen Rijnsent","about":"Blockchain, cryptocurrency & spreadsheets","website":"https://github.com/krijnsent/"}} |
| Transaction Info | Block #14854969/Trx 3facdcec723d0ca51c44c3d29110a8b7d56f5bc1 |
View Raw JSON Data
{
"trx_id": "3facdcec723d0ca51c44c3d29110a8b7d56f5bc1",
"block": 14854969,
"trx_in_block": 16,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-08-24T12:40:21",
"op": [
"account_update",
{
"account": "beeheap",
"memo_key": "STM4xpjHsjGyZ8zWUnrHU27TD4Sb6M58nQkwxQ9D83myUyKnTn1jq",
"json_metadata": "{\"profile\":{\"location\":\"the Netherlands\",\"profile_image\":\"https://media.licdn.com/mpr/mpr/shrinknp_200_200/p/1/000/0ef/026/235b88a.jpg\",\"name\":\"Koen Rijnsent\",\"about\":\"Blockchain, cryptocurrency & spreadsheets\",\"website\":\"https://github.com/krijnsent/\"}}"
}
]
}beeheapupdated their account properties2017/08/24 12:14:36
beeheapupdated their account properties
2017/08/24 12:14:36
| account | beeheap |
| memo key | STM4xpjHsjGyZ8zWUnrHU27TD4Sb6M58nQkwxQ9D83myUyKnTn1jq |
| json metadata | {"profile":{"location":"the Netherlands"}} |
| Transaction Info | Block #14854454/Trx 89e905a4d3113791015e776a150c89021ef571ce |
View Raw JSON Data
{
"trx_id": "89e905a4d3113791015e776a150c89021ef571ce",
"block": 14854454,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-08-24T12:14:36",
"op": [
"account_update",
{
"account": "beeheap",
"memo_key": "STM4xpjHsjGyZ8zWUnrHU27TD4Sb6M58nQkwxQ9D83myUyKnTn1jq",
"json_metadata": "{\"profile\":{\"location\":\"the Netherlands\"}}"
}
]
}2017/08/24 07:56:45
2017/08/24 07:56:45
| fee | 0.500 STEEM |
| delegation | 57000.000000 VESTS |
| creator | steem |
| new account name | beeheap |
| owner | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM7bChezSnwvjinzrUeW82RoZc5fXu26Dr8UD6vHqZB2aQhwAUWS",1]]} |
| active | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM8N1UTTyh4vZJvh7yBTtp4qfZruwsc1CSfbuQNjUoX8HzutkKFh",1]]} |
| posting | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM7oNdCbfcNbLFJDJ8sKTvefXzmwzwGSZjrsAooXgGtcBzLTbdiL",1]]} |
| memo key | STM4xpjHsjGyZ8zWUnrHU27TD4Sb6M58nQkwxQ9D83myUyKnTn1jq |
| json metadata | |
| extensions | [] |
| Transaction Info | Block #14849300/Trx bb3121a2b61458faa93f98e1337b39a671ddada0 |
View Raw JSON Data
{
"trx_id": "bb3121a2b61458faa93f98e1337b39a671ddada0",
"block": 14849300,
"trx_in_block": 12,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2017-08-24T07:56:45",
"op": [
"account_create_with_delegation",
{
"fee": "0.500 STEEM",
"delegation": "57000.000000 VESTS",
"creator": "steem",
"new_account_name": "beeheap",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7bChezSnwvjinzrUeW82RoZc5fXu26Dr8UD6vHqZB2aQhwAUWS",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM8N1UTTyh4vZJvh7yBTtp4qfZruwsc1CSfbuQNjUoX8HzutkKFh",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7oNdCbfcNbLFJDJ8sKTvefXzmwzwGSZjrsAooXgGtcBzLTbdiL",
1
]
]
},
"memo_key": "STM4xpjHsjGyZ8zWUnrHU27TD4Sb6M58nQkwxQ9D83myUyKnTn1jq",
"json_metadata": "",
"extensions": []
}
]
}Manabar
Voting Power100.00%
Downvote Power100.00%
Resource Credits100.00%
Reputation Progress0.00%
{
"voting_manabar": {
"current_mana": "8143659806",
"last_update_time": 1779055044
},
"downvote_manabar": {
"current_mana": 2035914951,
"last_update_time": 1779055044
},
"rc_account": {
"account": "beeheap",
"rc_manabar": {
"current_mana": "10164408779",
"last_update_time": 1779055044
},
"max_rc_creation_adjustment": {
"amount": "2020748973",
"precision": 6,
"nai": "@@000000037"
},
"max_rc": "10164408779"
}
}Account Metadata
| POSTING JSON METADATA | |
| profile | {"profile_image":"https://cdn.steemitimages.com/DQmRAmDzkbbPMSZKnmaUsCBqH67D3MtB9PTfMCaF7tCSAWs/egg.svg","name":"Re Movedaccount","version":2} |
| JSON METADATA | |
| profile | {"location":"the Netherlands","profile_image":"https://media.licdn.com/mpr/mpr/shrinknp_200_200/p/1/000/0ef/026/235b88a.jpg","name":"Koen Rijnsent","about":"Blockchain, cryptocurrency & spreadsheets","website":"https://github.com/krijnsent/"} |
{
"posting_json_metadata": {
"profile": {
"profile_image": "https://cdn.steemitimages.com/DQmRAmDzkbbPMSZKnmaUsCBqH67D3MtB9PTfMCaF7tCSAWs/egg.svg",
"name": "Re Movedaccount",
"version": 2
}
},
"json_metadata": {
"profile": {
"location": "the Netherlands",
"profile_image": "https://media.licdn.com/mpr/mpr/shrinknp_200_200/p/1/000/0ef/026/235b88a.jpg",
"name": "Koen Rijnsent",
"about": "Blockchain, cryptocurrency & spreadsheets",
"website": "https://github.com/krijnsent/"
}
}
}Auth Keys
Owner
Single Signature
Public Keys
STM7bChezSnwvjinzrUeW82RoZc5fXu26Dr8UD6vHqZB2aQhwAUWS1/1
Active
Single Signature
Public Keys
STM8N1UTTyh4vZJvh7yBTtp4qfZruwsc1CSfbuQNjUoX8HzutkKFh1/1
Posting
Single Signature
Public Keys
STM7oNdCbfcNbLFJDJ8sKTvefXzmwzwGSZjrsAooXgGtcBzLTbdiL1/1
Memo
STM4xpjHsjGyZ8zWUnrHU27TD4Sb6M58nQkwxQ9D83myUyKnTn1jq
{
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7bChezSnwvjinzrUeW82RoZc5fXu26Dr8UD6vHqZB2aQhwAUWS",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM8N1UTTyh4vZJvh7yBTtp4qfZruwsc1CSfbuQNjUoX8HzutkKFh",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7oNdCbfcNbLFJDJ8sKTvefXzmwzwGSZjrsAooXgGtcBzLTbdiL",
1
]
]
},
"memo": "STM4xpjHsjGyZ8zWUnrHU27TD4Sb6M58nQkwxQ9D83myUyKnTn1jq"
}Witness Votes
0 / 30
No active witness votes.
[]