VOTING POWER0.00%
DOWNVOTE POWER0.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.000USD
STEEM
0.000STEEM
SBD
0.000SBD
Own SP
0.000SP
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.000SP | SP |
| Delegated Out | 0.000SP | SP |
| Delegation In | 0.000SP | SP |
| Effective Power | 0.000SP | SP |
| Reward SP (pending) | 0.000SP | 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": "0.000000 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "0.000000 VESTS",
"sbd_balance": "0.000 SBD",
"savings_sbd_balance": "0.000 SBD",
"reward_sbd_balance": "0.000 SBD",
"conversions": []
}Account Info
| name | kopipe |
| id | 1337659 |
| rank | 1,862,368 |
| reputation | 6032800 |
| created | 2019-11-18T09:52:06 |
| recovery_account | oracle-d |
| proxy | None |
| post_count | 3 |
| comment_count | 0 |
| lifetime_vote_count | 0 |
| witnesses_voted_for | 0 |
| last_post | 2019-11-26T07:22:42 |
| last_root_post | 2019-11-26T07:22:42 |
| last_vote_time | 1970-01-01T00:00:00 |
| 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 | 0.000000 VESTS |
| delegated_vesting_shares | 0.000000 VESTS |
| received_vesting_shares | 0.000000 VESTS |
| reward_vesting_balance | 0.000000 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 | 2019-11-18T10:21:03 |
| 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": 1337659,
"name": "kopipe",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5STj6vYXHDAB1d3iNeGfcDs7Q1CYbZuddwBZK5sLzyX7AnzU2B",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5uXdNLPg8tiQgkUERz5M58Jq3F1vRU19xfkkPMF6ZDhzBXdD86",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7DrvQKxKerMvsP5V3HNspKd37NpE8YqFCGCKSZs2R56uUnKkLH",
1
]
]
},
"memo_key": "STM6jEs8gYKLZhays9Eh5JBvkzgbho4h5wj2Z2XmtTwy9NGhRaJfX",
"json_metadata": "{\"app\":{\"host\":\"widget.steem.ninja\",\"about\":\"Steem.Ninja is a Steem account creation services provided by Oracle-D Communities Limited.\",\"website\":\"https://steem.ninja\",\"blog\":\"https://steemit.com/@steem.ninja\"},\"profile\":{\"cover_image\":\"https://cdn.steem.ninja/default_cover.jpg\",\"profile_image\":\"https://pbs.twimg.com/profile_images/1191991647430561792/3i2ohOwA.jpg\",\"name\":\"Fred Brennan 🔣🇵🇭✝\",\"website\":\"https://github.com/ctrlcctrlv\"}}",
"posting_json_metadata": "",
"proxy": "",
"last_owner_update": "1970-01-01T00:00:00",
"last_account_update": "2019-11-18T10:21:03",
"created": "2019-11-18T09:52:06",
"mined": false,
"recovery_account": "oracle-d",
"last_account_recovery": "1970-01-01T00:00:00",
"reset_account": "null",
"comment_count": 0,
"lifetime_vote_count": 0,
"post_count": 3,
"can_vote": true,
"voting_manabar": {
"current_mana": 0,
"last_update_time": 1574070726
},
"downvote_manabar": {
"current_mana": 0,
"last_update_time": 1574070726
},
"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": "0.000000 VESTS",
"reward_vesting_steem": "0.000 STEEM",
"vesting_shares": "0.000000 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "0.000000 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-11-26T07:22:42",
"last_root_post": "2019-11-26T07:22:42",
"last_vote_time": "1970-01-01T00:00:00",
"post_bandwidth": 0,
"pending_claimed_accounts": 0,
"vesting_balance": "0.000 STEEM",
"reputation": 6032800,
"transfer_history": [],
"market_history": [],
"post_history": [],
"vote_history": [],
"other_history": [],
"witness_votes": [],
"tags_usage": [],
"guest_bloggers": [],
"rank": 1862368
}Withdraw Routes
| Incoming | Outgoing |
|---|---|
Empty | Empty |
{
"incoming": [],
"outgoing": []
}From Date
To Date
kopipepublished a new post: the-use-of-unicode-data-in-font-creation2019/11/26 07:22:42
kopipepublished a new post: the-use-of-unicode-data-in-font-creation
2019/11/26 07:22:42
| parent author | |
| parent permlink | fontforge |
| author | kopipe |
| permlink | the-use-of-unicode-data-in-font-creation |
| title | The use of Unicode data in font creation |
| body | I've worn many hats over the years…one of my favorites is FontForge contributor. [Back on August 13<sup>th</sup>](https://github.com/fontforge/fontforge/pull/3852), I made it so when you close the Execute Script dialog, you won't lose the associated script. One reason for that is I frequently write useful scripts which I accidentally lose when closing FontForge. Today I'll present one. I'm making a typewriter font…[have been since May](https://twitter.com/HW_BEAT_THAT/status/1134437602331725824)! One of the things that makes this font different is that when two same letters are nearby they do not look identical, unlike almost every font in existence…minus another font of mine, [Quaerite Regnum Dei](https://github.com/ctrlcctrlv/QuaeriteRegnumDei). 😉 What I'm going for with this project is maximum realism. I've studied output of real typewriters a little too much, and tinkered with GIMP scripts ~~a little~~ *way* too much, to get acceptable procedurally generated output. So, the precomposed characters in this font, according to my vision, should look as if they were made on a typewriter—type the base letter, backspace, type the mark. Meaning, marks, within reason, must not move from letter to letter; ñ and ã must have the mark in the same place if overlaid on top of one another, same with Ñ and Ã, however I'm willing to imagine a typewriter with two versions of each mark, one for uppercase and lowercase letters. So unlike basically all fonts where what you want to do is place anchors carefully on each letter, in this font we want uniformity. That means we can use the FontForge Python API to place our marks. Another anomaly is that we really only need one `mark` (Mark to Base Positioning) class, let's call it `themarkclass`, even though this font has some top marks, bottom marks, even the Hebrew *dagesh* middle mark, because it's monospaced. Here's a script to figure out which characters should get marks: ```python import unicodedata f=fontforge.fonts()[0] for g in f.glyphs("encoding"): e=chr(0 if g.unicode == -1 else g.unicode) # Encoding... c=unicodedata.category(e) # Unicode "category", looks like e.g. "Lu" d=unicodedata.decomposition(e) # Unicode "decomposition", for Ñ would be "004E 0303" il=('L' in c and ('u' in c or 'l' in c) and not d) # Is "e" a base letter? if il: print(g.glyphname, e, "L") ``` We get some interesting output like: ``` ... grk_ALPHA Α L grk_BETA Β L grk_GAMMA Γ L grk_DELTA Δ L grk_EPSILON Ε L grk_ZETA Ζ L grk_ETA Η L grk_THETA Θ L grk_IOTA Ι L grk_KAPPA Κ L grk_LAMDA Λ L grk_MU Μ L grk_NU Ν L grk_XI Ξ L grk_OMICRON Ο L grk_PI Π L grk_RHO Ρ L grk_SIGMA Σ L grk_TAU Τ L grk_UPSILON Υ L grk_PHI Φ L grk_CHI Χ L grk_PSI Ψ L grk_OMEGA Ω L ... ``` All right! And for our marks we can just say: ```python im = 'M' in c if im: print(g.glyphname, e, "M") ``` Now we've got as well: ``` ... uni05B0 ְ M uni05B1 ֱ M uni05B2 ֲ M uni05B3 ֳ M uni05B4 ִ M uni05B5 ֵ M uni05B6 ֶ M uni05B7 ַ M uni05B8 ָ M uni05B9 ֹ M uni05BA ֺ M uni05BB ֻ M dagesh ּ M uni05BF ֿ M shin_dot ׁ M sin_dot ׂ M ... ``` All that's left to do is use the FontForge API to add the marks... ```python if il: g.addAnchorPoint("theclass","base",0,(0 if 'u' in c else -114)) if im: g.addAnchorPoint("theclass","mark",0,0) ``` And let's also add the needed tables! ```python f.addLookup("mark1","gpos_mark2base",(),(("mark",(("latn",("dflt")),("cyrl",("dflt")),("grek",("dflt")))),) ) f.addLookupSubtable("mark1", "mark1-1") f.addAnchorClass("mark1-1", "theclass") ``` **Voilà!** [](https://cdn.steemitimages.com/DQmPj3zqggGDEgEvCFm6AtrNoQ4yhPP7xnfF8u5b18vNyh8/2019-11-26-151059_3456x1656_scrot.png)) Now we can tell FontForge we want it to generate Latin-1 for us just by going to the **Element→Build** menu; as long as we have the letters needed, and the marks needed (it's best for Latin-1 to add 0-width marks to the block beginning at U+0300), it will build them. Be aware, if that's *not* true, it will do its best, and its best is often...terrible.  <sub>Can you tell which one FontForge generated?</sub> |
| json metadata | {"tags":["fontforge"],"image":["https://cdn.steemitimages.com/DQmPj3zqggGDEgEvCFm6AtrNoQ4yhPP7xnfF8u5b18vNyh8/2019-11-26-151059_3456x1656_scrot.png","https://cdn.steemitimages.com/DQmbJprY8UZMERWsnr6HZikZEWF8MUJ8ZexEX2UDgAKk7mu/2019-11-26-152316_976x945_scrot.png"],"links":["https://github.com/fontforge/fontforge/pull/3852","https://twitter.com/HW_BEAT_THAT/status/1134437602331725824","https://github.com/ctrlcctrlv/QuaeriteRegnumDei","https://cdn.steemitimages.com/DQmPj3zqggGDEgEvCFm6AtrNoQ4yhPP7xnfF8u5b18vNyh8/2019-11-26-151059_3456x1656_scrot.png"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #38506258/Trx f1ad04c493fcc6b58f9774a412d1ab8b86120837 |
View Raw JSON Data
{
"trx_id": "f1ad04c493fcc6b58f9774a412d1ab8b86120837",
"block": 38506258,
"trx_in_block": 22,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-26T07:22:42",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "fontforge",
"author": "kopipe",
"permlink": "the-use-of-unicode-data-in-font-creation",
"title": "The use of Unicode data in font creation",
"body": "I've worn many hats over the years…one of my favorites is FontForge contributor. [Back on August 13<sup>th</sup>](https://github.com/fontforge/fontforge/pull/3852), I made it so when you close the Execute Script dialog, you won't lose the associated script.\n\nOne reason for that is I frequently write useful scripts which I accidentally lose when closing FontForge. Today I'll present one.\n\nI'm making a typewriter font…[have been since May](https://twitter.com/HW_BEAT_THAT/status/1134437602331725824)! One of the things that makes this font different is that when two same letters are nearby they do not look identical, unlike almost every font in existence…minus another font of mine, [Quaerite Regnum Dei](https://github.com/ctrlcctrlv/QuaeriteRegnumDei). 😉\n\nWhat I'm going for with this project is maximum realism. I've studied output of real typewriters a little too much, and tinkered with GIMP scripts ~~a little~~ *way* too much, to get acceptable procedurally generated output. So, the precomposed characters in this font, according to my vision, should look as if they were made on a typewriter—type the base letter, backspace, type the mark. Meaning, marks, within reason, must not move from letter to letter; ñ and ã must have the mark in the same place if overlaid on top of one another, same with Ñ and Ã, however I'm willing to imagine a typewriter with two versions of each mark, one for uppercase and lowercase letters.\n\nSo unlike basically all fonts where what you want to do is place anchors carefully on each letter, in this font we want uniformity. That means we can use the FontForge Python API to place our marks. Another anomaly is that we really only need one `mark` (Mark to Base Positioning) class, let's call it `themarkclass`, even though this font has some top marks, bottom marks, even the Hebrew *dagesh* middle mark, because it's monospaced.\n\nHere's a script to figure out which characters should get marks:\n\n```python\nimport unicodedata\nf=fontforge.fonts()[0]\n\nfor g in f.glyphs(\"encoding\"):\n e=chr(0 if g.unicode == -1 else g.unicode) # Encoding...\n c=unicodedata.category(e) # Unicode \"category\", looks like e.g. \"Lu\"\n d=unicodedata.decomposition(e) # Unicode \"decomposition\", for Ñ would be \"004E 0303\"\n il=('L' in c and ('u' in c or 'l' in c) and not d) # Is \"e\" a base letter?\n if il: print(g.glyphname, e, \"L\")\n```\n\nWe get some interesting output like:\n\n```\n...\ngrk_ALPHA Α L\ngrk_BETA Β L\ngrk_GAMMA Γ L\ngrk_DELTA Δ L\ngrk_EPSILON Ε L\ngrk_ZETA Ζ L\ngrk_ETA Η L\ngrk_THETA Θ L\ngrk_IOTA Ι L\ngrk_KAPPA Κ L\ngrk_LAMDA Λ L\ngrk_MU Μ L\ngrk_NU Ν L\ngrk_XI Ξ L\ngrk_OMICRON Ο L\ngrk_PI Π L\ngrk_RHO Ρ L\ngrk_SIGMA Σ L\ngrk_TAU Τ L\ngrk_UPSILON Υ L\ngrk_PHI Φ L\ngrk_CHI Χ L\ngrk_PSI Ψ L\ngrk_OMEGA Ω L\n...\n```\n\nAll right! And for our marks we can just say:\n\n```python\nim = 'M' in c\nif im: print(g.glyphname, e, \"M\")\n```\n\nNow we've got as well:\n\n```\n...\nuni05B0 ְ M\nuni05B1 ֱ M\nuni05B2 ֲ M\nuni05B3 ֳ M\nuni05B4 ִ M\nuni05B5 ֵ M\nuni05B6 ֶ M\nuni05B7 ַ M\nuni05B8 ָ M\nuni05B9 ֹ M\nuni05BA ֺ M\nuni05BB ֻ M\ndagesh ּ M\nuni05BF ֿ M\nshin_dot ׁ M\nsin_dot ׂ M\n...\n```\n\nAll that's left to do is use the FontForge API to add the marks...\n\n```python\nif il: g.addAnchorPoint(\"theclass\",\"base\",0,(0 if 'u' in c else -114))\nif im: g.addAnchorPoint(\"theclass\",\"mark\",0,0)\n```\n\nAnd let's also add the needed tables!\n\n```python\nf.addLookup(\"mark1\",\"gpos_mark2base\",(),((\"mark\",((\"latn\",(\"dflt\")),(\"cyrl\",(\"dflt\")),(\"grek\",(\"dflt\")))),) )\nf.addLookupSubtable(\"mark1\", \"mark1-1\")\nf.addAnchorClass(\"mark1-1\", \"theclass\")\n```\n\n**Voilà!**\n\n\n[](https://cdn.steemitimages.com/DQmPj3zqggGDEgEvCFm6AtrNoQ4yhPP7xnfF8u5b18vNyh8/2019-11-26-151059_3456x1656_scrot.png))\n\nNow we can tell FontForge we want it to generate Latin-1 for us just by going to the **Element→Build** menu; as long as we have the letters needed, and the marks needed (it's best for Latin-1 to add 0-width marks to the block beginning at U+0300), it will build them. Be aware, if that's *not* true, it will do its best, and its best is often...terrible.\n\n\n\n<sub>Can you tell which one FontForge generated?</sub>",
"json_metadata": "{\"tags\":[\"fontforge\"],\"image\":[\"https://cdn.steemitimages.com/DQmPj3zqggGDEgEvCFm6AtrNoQ4yhPP7xnfF8u5b18vNyh8/2019-11-26-151059_3456x1656_scrot.png\",\"https://cdn.steemitimages.com/DQmbJprY8UZMERWsnr6HZikZEWF8MUJ8ZexEX2UDgAKk7mu/2019-11-26-152316_976x945_scrot.png\"],\"links\":[\"https://github.com/fontforge/fontforge/pull/3852\",\"https://twitter.com/HW_BEAT_THAT/status/1134437602331725824\",\"https://github.com/ctrlcctrlv/QuaeriteRegnumDei\",\"https://cdn.steemitimages.com/DQmPj3zqggGDEgEvCFm6AtrNoQ4yhPP7xnfF8u5b18vNyh8/2019-11-26-151059_3456x1656_scrot.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}johngilbertreplied to @kopipe / q1ab762019/11/20 20:21:06
johngilbertreplied to @kopipe / q1ab76
2019/11/20 20:21:06
| parent author | kopipe |
| parent permlink | q193ow |
| author | johngilbert |
| permlink | q1ab76 |
| title | |
| body | Very interesting. I did some digging and found your post about the theory that Jim owns the company. I am really curious about the timeline. The site was registered in May. Do you think that 8chan and VanwaTech have been connected since it was registered or since CloudFlare suspended their service? |
| json metadata | {"app":"steemit/0.1"} |
| Transaction Info | Block #38349308/Trx 8f6e692ca9df55d5f76768fc1bec05f9dfb93fb3 |
View Raw JSON Data
{
"trx_id": "8f6e692ca9df55d5f76768fc1bec05f9dfb93fb3",
"block": 38349308,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-20T20:21:06",
"op": [
"comment",
{
"parent_author": "kopipe",
"parent_permlink": "q193ow",
"author": "johngilbert",
"permlink": "q1ab76",
"title": "",
"body": "Very interesting. I did some digging and found your post about the theory that Jim owns the company. I am really curious about the timeline. The site was registered in May. Do you think that 8chan and VanwaTech have been connected since it was registered or since CloudFlare suspended their service?",
"json_metadata": "{\"app\":\"steemit/0.1\"}"
}
]
}kopipereplied to @johngilbert / q193ow2019/11/20 04:40:18
kopipereplied to @johngilbert / q193ow
2019/11/20 04:40:18
| parent author | johngilbert |
| parent permlink | q18ef0 |
| author | kopipe |
| permlink | q193ow |
| title | |
| body | There is no evidence that VanwaTech has any major clients other than 8chan. Lim claims to have "thousands" of clients but not a single major non-8chan client is known. |
| json metadata | {"app":"steemit/0.1"} |
| Transaction Info | Block #38330525/Trx aaebfdf95101600575d0fff9f7f19afa5a36fb76 |
View Raw JSON Data
{
"trx_id": "aaebfdf95101600575d0fff9f7f19afa5a36fb76",
"block": 38330525,
"trx_in_block": 9,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-20T04:40:18",
"op": [
"comment",
{
"parent_author": "johngilbert",
"parent_permlink": "q18ef0",
"author": "kopipe",
"permlink": "q193ow",
"title": "",
"body": "There is no evidence that VanwaTech has any major clients other than 8chan. Lim claims to have \"thousands\" of clients but not a single major non-8chan client is known.",
"json_metadata": "{\"app\":\"steemit/0.1\"}"
}
]
}johngilbertreplied to @kopipe / q18ef02019/11/19 19:35:24
johngilbertreplied to @kopipe / q18ef0
2019/11/19 19:35:24
| parent author | kopipe |
| parent permlink | 8chan-is-still-using-cloudflare |
| author | johngilbert |
| permlink | q18ef0 |
| title | |
| body | Is there a way for CloudFlare to withhold their services from 8chan without impacting all the other sites using VanwaTech? |
| json metadata | {"app":"steemit/0.1"} |
| Transaction Info | Block #38319644/Trx b200909cd3f6799dcf109c238465bc37cbfd1c20 |
View Raw JSON Data
{
"trx_id": "b200909cd3f6799dcf109c238465bc37cbfd1c20",
"block": 38319644,
"trx_in_block": 18,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-19T19:35:24",
"op": [
"comment",
{
"parent_author": "kopipe",
"parent_permlink": "8chan-is-still-using-cloudflare",
"author": "johngilbert",
"permlink": "q18ef0",
"title": "",
"body": "Is there a way for CloudFlare to withhold their services from 8chan without impacting all the other sites using VanwaTech?",
"json_metadata": "{\"app\":\"steemit/0.1\"}"
}
]
}johngilbertupvoted (100.00%) @kopipe / 8chan-is-still-using-cloudflare2019/11/19 19:09:42
johngilbertupvoted (100.00%) @kopipe / 8chan-is-still-using-cloudflare
2019/11/19 19:09:42
| voter | johngilbert |
| author | kopipe |
| permlink | 8chan-is-still-using-cloudflare |
| weight | 10000 (100.00%) |
| Transaction Info | Block #38319131/Trx ae6745ff345234c3a1b69fb9f8b8c87d040afe17 |
View Raw JSON Data
{
"trx_id": "ae6745ff345234c3a1b69fb9f8b8c87d040afe17",
"block": 38319131,
"trx_in_block": 13,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-19T19:09:42",
"op": [
"vote",
{
"voter": "johngilbert",
"author": "kopipe",
"permlink": "8chan-is-still-using-cloudflare",
"weight": 10000
}
]
}gr3yupvoted (100.00%) @kopipe / 8chan-is-still-using-cloudflare2019/11/19 05:53:00
gr3yupvoted (100.00%) @kopipe / 8chan-is-still-using-cloudflare
2019/11/19 05:53:00
| voter | gr3y |
| author | kopipe |
| permlink | 8chan-is-still-using-cloudflare |
| weight | 10000 (100.00%) |
| Transaction Info | Block #38303225/Trx 222d11aa3a28e357757d5f3306e8fe3a518fe87c |
View Raw JSON Data
{
"trx_id": "222d11aa3a28e357757d5f3306e8fe3a518fe87c",
"block": 38303225,
"trx_in_block": 11,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-19T05:53:00",
"op": [
"vote",
{
"voter": "gr3y",
"author": "kopipe",
"permlink": "8chan-is-still-using-cloudflare",
"weight": 10000
}
]
}kopipepublished a new post: 8chan-is-still-using-cloudflare2019/11/18 12:16:45
kopipepublished a new post: 8chan-is-still-using-cloudflare
2019/11/18 12:16:45
| parent author | |
| parent permlink | cloudflare |
| author | kopipe |
| permlink | 8chan-is-still-using-cloudflare |
| title | 8chan is Still Using CloudFlare |
| body | @@ -1987,16 +1987,17 @@ serve:%0A%0A +%5B !%5B2019-1 @@ -2145,16 +2145,134 @@ rot.png) +%5D(https://cdn.steemitimages.com/DQmatZpFnU2pffdxhvFW2JGXngetYSU99y47P86bfEP6ieo/2019-11-18-190814_3458x1644_scrot.png) %0A%0AWhat a |
| json metadata | {"tags":["eightchan"],"image":["https://cdn.steemitimages.com/DQmatZpFnU2pffdxhvFW2JGXngetYSU99y47P86bfEP6ieo/2019-11-18-190814_3458x1644_scrot.png"],"links":["https://www.wsj.com/articles/notorious-8chan-forum-is-an-internet-nomad-11573909201","http://archive.is/tzA9C","http://archive.is/RuyDQ","https://cdn.steemitimages.com/DQmatZpFnU2pffdxhvFW2JGXngetYSU99y47P86bfEP6ieo/2019-11-18-190814_3458x1644_scrot.png","https://github.com/kyprizel/testcookie-nginx-module","https://github.com/kyprizel/testcookie-nginx-module/blob/master/doc/usecases.txt#L112","https://vanwatech.com/aes.js"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #38282138/Trx 105225b5694182129999a5024b76caaafd04d726 |
View Raw JSON Data
{
"trx_id": "105225b5694182129999a5024b76caaafd04d726",
"block": 38282138,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-18T12:16:45",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "cloudflare",
"author": "kopipe",
"permlink": "8chan-is-still-using-cloudflare",
"title": "8chan is Still Using CloudFlare",
"body": "@@ -1987,16 +1987,17 @@\n serve:%0A%0A\n+%5B\n !%5B2019-1\n@@ -2145,16 +2145,134 @@\n rot.png)\n+%5D(https://cdn.steemitimages.com/DQmatZpFnU2pffdxhvFW2JGXngetYSU99y47P86bfEP6ieo/2019-11-18-190814_3458x1644_scrot.png)\n %0A%0AWhat a\n",
"json_metadata": "{\"tags\":[\"eightchan\"],\"image\":[\"https://cdn.steemitimages.com/DQmatZpFnU2pffdxhvFW2JGXngetYSU99y47P86bfEP6ieo/2019-11-18-190814_3458x1644_scrot.png\"],\"links\":[\"https://www.wsj.com/articles/notorious-8chan-forum-is-an-internet-nomad-11573909201\",\"http://archive.is/tzA9C\",\"http://archive.is/RuyDQ\",\"https://cdn.steemitimages.com/DQmatZpFnU2pffdxhvFW2JGXngetYSU99y47P86bfEP6ieo/2019-11-18-190814_3458x1644_scrot.png\",\"https://github.com/kyprizel/testcookie-nginx-module\",\"https://github.com/kyprizel/testcookie-nginx-module/blob/master/doc/usecases.txt#L112\",\"https://vanwatech.com/aes.js\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}solidhyraxflagged (-100.00%) @kopipe / 8chan-is-still-using-cloudflare2019/11/18 11:30:48
solidhyraxflagged (-100.00%) @kopipe / 8chan-is-still-using-cloudflare
2019/11/18 11:30:48
| voter | solidhyrax |
| author | kopipe |
| permlink | 8chan-is-still-using-cloudflare |
| weight | -10000 (-100.00%) |
| Transaction Info | Block #38281219/Trx aeeec000c1a2f649a48364d5e2d63fd9bfbc6bd1 |
View Raw JSON Data
{
"trx_id": "aeeec000c1a2f649a48364d5e2d63fd9bfbc6bd1",
"block": 38281219,
"trx_in_block": 14,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-18T11:30:48",
"op": [
"vote",
{
"voter": "solidhyrax",
"author": "kopipe",
"permlink": "8chan-is-still-using-cloudflare",
"weight": -10000
}
]
}kopipepublished a new post: 8chan-is-still-using-cloudflare2019/11/18 11:20:45
kopipepublished a new post: 8chan-is-still-using-cloudflare
2019/11/18 11:20:45
| parent author | |
| parent permlink | cloudflare |
| author | kopipe |
| permlink | 8chan-is-still-using-cloudflare |
| title | 8chan is Still Using CloudFlare |
| body | **TL;DR: 8kun (8chan) will not load unless clients pass CloudFlare's firewalls.** When Jim Watkins and son proudly claimed to the world and their users that they were going to be replacing CloudFlare's multimillion dollar network just for their 8chan website, I was skeptical. Many of their users, however, believed it; after all, they had not the necessary experience to realize what was being promised. Since then, they've dropped the «8chan» name, instead preferring to be called «8kun». I see no logical reason to begin doing so—the software is the same, the owners are the same, and the rules are the same. Some, [such as Ron Watkins to the Wall Street Journal](https://www.wsj.com/articles/notorious-8chan-forum-is-an-internet-nomad-11573909201), would say that a lack of /pol/ makes 8chan no longer 8chan. That seems dubious at best to me. As can be seen [in this archive](http://archive.is/tzA9C), among other places, and on 8chan itself when it is up, board creation was and is as of this writing still very much on the table; as the rules have hardly changed, to expect that a /pol/ or /pol/-like board will not reappear as soon as the world stops paying attention is a dubious proposition, and one I do not accept. Let's however analyze the network. How are they doing it, these intrepid entrepreneurs, out-competing CloudFlare, which jettisoned them? In which datacenters have they bought servers, which networking cables have they installed, which satellites have they launched? Let's stop kidding ourselves, Nick Lim has done none of that. After being kicked from network after network, and then registrar after registrar, rather impressively, they have for now found [an ISP that will allow their crusty ship to drop anchor and use its port](http://archive.is/RuyDQ). But they worry, oh you see. CloudFlare was so convenient! It had an excellent firewall, and stopped many attacks. If only they could find a way to use its network on the sly! They've found a way. Observe:  What are we looking at here? I too was in doubt. We are looking at the output of an nginx module known as [testcookie](https://github.com/kyprizel/testcookie-nginx-module), except [configured to use client-side AES](https://github.com/kyprizel/testcookie-nginx-module/blob/master/doc/usecases.txt#L112). We don't need to worry so much about this; it's pretty much irrelevant. It's a small roadblock in the way of would be miscreants. Perhaps it can even stop a few who don't care enough to drive around it, and instead turn around. What's really interesting is the URL https://vanwatech.com/aes.js, which computes the AES needed to get 8kun to load. Oh, computer! Tell me about VANWATECH.COM. ``` [fred@pc ~]$ whois vanwatech.com #? Domain Name: VANWATECH.COM Registry Domain ID: 2396981845_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.google.com Registrar URL: http://domains.google Updated Date: 2019-05-31T05:40:51Z Creation Date: 2019-05-31T04:01:37Z Registry Expiry Date: 2020-05-31T04:01:37Z Registrar: Google LLC Registrar IANA ID: 895 Registrar Abuse Contact Email: [email protected] Registrar Abuse Contact Phone: +1.8772376466 Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited Name Server: LISA.NS.CLOUDFLARE.COM Name Server: MARK.NS.CLOUDFLARE.COM DNSSEC: unsigned ``` CloudFlare nameservers? Well, perhaps he's just using their free DNS, let's not jump to concl— ``` [fred@pc ~]$ dig A vanwatech.com +noall +answer # dig, you really doth protest too much vanwatech.com. 299 IN A 104.27.148.220 vanwatech.com. 299 IN A 104.27.149.220 ``` And of course 104.16.0.0/12 is CLOUDFLARENET, meaning, CloudFlare owns these IPs. So what does it all mean? Well, to load 8kun your computer needs to pass an AES challenge. That challenge can only be passed if your computer knows where to get the script which says how to compute it, `aes.js`, from. `aes.js` is hosted on VANWATECH.COM. VANWATECH.COM is hosted on CloudFlare. In sum, *CloudFlare is defending 8chan today, 18<sup>th</sup> November 2019*. I call on CloudFlare to kick them off. They sent a strong message when they kicked 8chan off, and hopefully they won't allow them back in through this backdoor. VanwaTech's anti-DDoS service is nothing but some open source nginx module and CloudFlare's firewall. |
| json metadata | {"tags":["cloudflare","eightchan"],"image":["https://cdn.steemitimages.com/DQmatZpFnU2pffdxhvFW2JGXngetYSU99y47P86bfEP6ieo/2019-11-18-190814_3458x1644_scrot.png"],"links":["https://www.wsj.com/articles/notorious-8chan-forum-is-an-internet-nomad-11573909201","http://archive.is/tzA9C","http://archive.is/RuyDQ","https://github.com/kyprizel/testcookie-nginx-module","https://github.com/kyprizel/testcookie-nginx-module/blob/master/doc/usecases.txt#L112","https://vanwatech.com/aes.js"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #38281018/Trx b5ccf506fd80413d40e21c0bb82eeb65ee14a784 |
View Raw JSON Data
{
"trx_id": "b5ccf506fd80413d40e21c0bb82eeb65ee14a784",
"block": 38281018,
"trx_in_block": 11,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-18T11:20:45",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "cloudflare",
"author": "kopipe",
"permlink": "8chan-is-still-using-cloudflare",
"title": "8chan is Still Using CloudFlare",
"body": "**TL;DR: 8kun (8chan) will not load unless clients pass CloudFlare's firewalls.**\n\nWhen Jim Watkins and son proudly claimed to the world and their users that they were going to be replacing CloudFlare's multimillion dollar network just for their 8chan website, I was skeptical. Many of their users, however, believed it; after all, they had not the necessary experience to realize what was being promised.\n\nSince then, they've dropped the «8chan» name, instead preferring to be called «8kun». I see no logical reason to begin doing so—the software is the same, the owners are the same, and the rules are the same. Some, [such as Ron Watkins to the Wall Street Journal](https://www.wsj.com/articles/notorious-8chan-forum-is-an-internet-nomad-11573909201), would say that a lack of /pol/ makes 8chan no longer 8chan. That seems dubious at best to me. As can be seen [in this archive](http://archive.is/tzA9C), among other places, and on 8chan itself when it is up, board creation was and is as of this writing still very much on the table; as the rules have hardly changed, to expect that a /pol/ or /pol/-like board will not reappear as soon as the world stops paying attention is a dubious proposition, and one I do not accept.\n\nLet's however analyze the network. How are they doing it, these intrepid entrepreneurs, out-competing CloudFlare, which jettisoned them? In which datacenters have they bought servers, which networking cables have they installed, which satellites have they launched?\n\nLet's stop kidding ourselves, Nick Lim has done none of that. After being kicked from network after network, and then registrar after registrar, rather impressively, they have for now found [an ISP that will allow their crusty ship to drop anchor and use its port](http://archive.is/RuyDQ). But they worry, oh you see. CloudFlare was so convenient! It had an excellent firewall, and stopped many attacks. If only they could find a way to use its network on the sly!\n\nThey've found a way. Observe:\n\n\n\nWhat are we looking at here? I too was in doubt. We are looking at the output of an nginx module known as [testcookie](https://github.com/kyprizel/testcookie-nginx-module), except [configured to use client-side AES](https://github.com/kyprizel/testcookie-nginx-module/blob/master/doc/usecases.txt#L112).\n\nWe don't need to worry so much about this; it's pretty much irrelevant. It's a small roadblock in the way of would be miscreants. Perhaps it can even stop a few who don't care enough to drive around it, and instead turn around. What's really interesting is the URL https://vanwatech.com/aes.js, which computes the AES needed to get 8kun to load.\n\nOh, computer! Tell me about VANWATECH.COM.\n\n```\n[fred@pc ~]$ whois vanwatech.com #?\n Domain Name: VANWATECH.COM\n Registry Domain ID: 2396981845_DOMAIN_COM-VRSN\n Registrar WHOIS Server: whois.google.com\n Registrar URL: http://domains.google\n Updated Date: 2019-05-31T05:40:51Z\n Creation Date: 2019-05-31T04:01:37Z\n Registry Expiry Date: 2020-05-31T04:01:37Z\n Registrar: Google LLC\n Registrar IANA ID: 895\n Registrar Abuse Contact Email: [email protected]\n Registrar Abuse Contact Phone: +1.8772376466\n Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited\n Name Server: LISA.NS.CLOUDFLARE.COM\n Name Server: MARK.NS.CLOUDFLARE.COM\n DNSSEC: unsigned\n```\n\n\nCloudFlare nameservers? Well, perhaps he's just using their free DNS, let's not jump to concl—\n\n```\n[fred@pc ~]$ dig A vanwatech.com +noall +answer # dig, you really doth protest too much\nvanwatech.com.\t\t299\tIN\tA\t104.27.148.220\nvanwatech.com.\t\t299\tIN\tA\t104.27.149.220\n```\n\nAnd of course 104.16.0.0/12 is CLOUDFLARENET, meaning, CloudFlare owns these IPs.\n\nSo what does it all mean? Well, to load 8kun your computer needs to pass an AES challenge. That challenge can only be passed if your computer knows where to get the script which says how to compute it, `aes.js`, from. `aes.js` is hosted on VANWATECH.COM. VANWATECH.COM is hosted on CloudFlare. In sum, *CloudFlare is defending 8chan today, 18<sup>th</sup> November 2019*.\n\nI call on CloudFlare to kick them off. They sent a strong message when they kicked 8chan off, and hopefully they won't allow them back in through this backdoor. VanwaTech's anti-DDoS service is nothing but some open source nginx module and CloudFlare's firewall.",
"json_metadata": "{\"tags\":[\"cloudflare\",\"eightchan\"],\"image\":[\"https://cdn.steemitimages.com/DQmatZpFnU2pffdxhvFW2JGXngetYSU99y47P86bfEP6ieo/2019-11-18-190814_3458x1644_scrot.png\"],\"links\":[\"https://www.wsj.com/articles/notorious-8chan-forum-is-an-internet-nomad-11573909201\",\"http://archive.is/tzA9C\",\"http://archive.is/RuyDQ\",\"https://github.com/kyprizel/testcookie-nginx-module\",\"https://github.com/kyprizel/testcookie-nginx-module/blob/master/doc/usecases.txt#L112\",\"https://vanwatech.com/aes.js\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}kopipeupdated their account properties2019/11/18 10:21:03
kopipeupdated their account properties
2019/11/18 10:21:03
| account | kopipe |
| memo key | STM6jEs8gYKLZhays9Eh5JBvkzgbho4h5wj2Z2XmtTwy9NGhRaJfX |
| json metadata | {"app":{"host":"widget.steem.ninja","about":"Steem.Ninja is a Steem account creation services provided by Oracle-D Communities Limited.","website":"https://steem.ninja","blog":"https://steemit.com/@steem.ninja"},"profile":{"cover_image":"https://cdn.steem.ninja/default_cover.jpg","profile_image":"https://pbs.twimg.com/profile_images/1191991647430561792/3i2ohOwA.jpg","name":"Fred Brennan 🔣🇵🇭✝","website":"https://github.com/ctrlcctrlv"}} |
| Transaction Info | Block #38279829/Trx 1a3b5d7a17b776e1969a35604836fca81cc606c5 |
View Raw JSON Data
{
"trx_id": "1a3b5d7a17b776e1969a35604836fca81cc606c5",
"block": 38279829,
"trx_in_block": 9,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-18T10:21:03",
"op": [
"account_update",
{
"account": "kopipe",
"memo_key": "STM6jEs8gYKLZhays9Eh5JBvkzgbho4h5wj2Z2XmtTwy9NGhRaJfX",
"json_metadata": "{\"app\":{\"host\":\"widget.steem.ninja\",\"about\":\"Steem.Ninja is a Steem account creation services provided by Oracle-D Communities Limited.\",\"website\":\"https://steem.ninja\",\"blog\":\"https://steemit.com/@steem.ninja\"},\"profile\":{\"cover_image\":\"https://cdn.steem.ninja/default_cover.jpg\",\"profile_image\":\"https://pbs.twimg.com/profile_images/1191991647430561792/3i2ohOwA.jpg\",\"name\":\"Fred Brennan 🔣🇵🇭✝\",\"website\":\"https://github.com/ctrlcctrlv\"}}"
}
]
}2019/11/18 09:52:06
2019/11/18 09:52:06
| creator | oracle-d |
| new account name | kopipe |
| owner | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM5STj6vYXHDAB1d3iNeGfcDs7Q1CYbZuddwBZK5sLzyX7AnzU2B",1]]} |
| active | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM5uXdNLPg8tiQgkUERz5M58Jq3F1vRU19xfkkPMF6ZDhzBXdD86",1]]} |
| posting | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM7DrvQKxKerMvsP5V3HNspKd37NpE8YqFCGCKSZs2R56uUnKkLH",1]]} |
| memo key | STM6jEs8gYKLZhays9Eh5JBvkzgbho4h5wj2Z2XmtTwy9NGhRaJfX |
| json metadata | {"app":{"host":"widget.steem.ninja","about":"Steem.Ninja is a Steem account creation services provided by Oracle-D Communities Limited.","website":"https://steem.ninja","blog":"https://steemit.com/@steem.ninja"},"profile":{"about":"This account was created via @steem.ninja","cover_image":"https://cdn.steem.ninja/default_cover.jpg","profile_image":"https://robohash.org/kopipe.png"}} |
| extensions | [] |
| Transaction Info | Block #38279250/Trx a6b3d186a5c4e197dceb2fdc182c09210a7a1e40 |
View Raw JSON Data
{
"trx_id": "a6b3d186a5c4e197dceb2fdc182c09210a7a1e40",
"block": 38279250,
"trx_in_block": 41,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-18T09:52:06",
"op": [
"create_claimed_account",
{
"creator": "oracle-d",
"new_account_name": "kopipe",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5STj6vYXHDAB1d3iNeGfcDs7Q1CYbZuddwBZK5sLzyX7AnzU2B",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5uXdNLPg8tiQgkUERz5M58Jq3F1vRU19xfkkPMF6ZDhzBXdD86",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7DrvQKxKerMvsP5V3HNspKd37NpE8YqFCGCKSZs2R56uUnKkLH",
1
]
]
},
"memo_key": "STM6jEs8gYKLZhays9Eh5JBvkzgbho4h5wj2Z2XmtTwy9NGhRaJfX",
"json_metadata": "{\"app\":{\"host\":\"widget.steem.ninja\",\"about\":\"Steem.Ninja is a Steem account creation services provided by Oracle-D Communities Limited.\",\"website\":\"https://steem.ninja\",\"blog\":\"https://steemit.com/@steem.ninja\"},\"profile\":{\"about\":\"This account was created via @steem.ninja\",\"cover_image\":\"https://cdn.steem.ninja/default_cover.jpg\",\"profile_image\":\"https://robohash.org/kopipe.png\"}}",
"extensions": []
}
]
}Manabar
Voting Power0.00%
Downvote Power0.00%
Resource Credits100.00%
Reputation Progress0.00%
{
"voting_manabar": {
"current_mana": 0,
"last_update_time": 1574070726
},
"downvote_manabar": {
"current_mana": 0,
"last_update_time": 1574070726
},
"rc_account": {
"account": "kopipe",
"rc_manabar": {
"current_mana": 2034230917,
"last_update_time": 1574752962
},
"max_rc_creation_adjustment": {
"amount": "5917406148",
"precision": 6,
"nai": "@@000000037"
},
"max_rc": "5917406148"
}
}Account Metadata
| POSTING JSON METADATA | |
| None | |
| JSON METADATA | |
| app | {"host":"widget.steem.ninja","about":"Steem.Ninja is a Steem account creation services provided by Oracle-D Communities Limited.","website":"https://steem.ninja","blog":"https://steemit.com/@steem.ninja"} |
| profile | {"cover_image":"https://cdn.steem.ninja/default_cover.jpg","profile_image":"https://pbs.twimg.com/profile_images/1191991647430561792/3i2ohOwA.jpg","name":"Fred Brennan 🔣🇵🇭✝","website":"https://github.com/ctrlcctrlv"} |
{
"posting_json_metadata": {},
"json_metadata": {
"app": {
"host": "widget.steem.ninja",
"about": "Steem.Ninja is a Steem account creation services provided by Oracle-D Communities Limited.",
"website": "https://steem.ninja",
"blog": "https://steemit.com/@steem.ninja"
},
"profile": {
"cover_image": "https://cdn.steem.ninja/default_cover.jpg",
"profile_image": "https://pbs.twimg.com/profile_images/1191991647430561792/3i2ohOwA.jpg",
"name": "Fred Brennan 🔣🇵🇭✝",
"website": "https://github.com/ctrlcctrlv"
}
}
}Auth Keys
Owner
Single Signature
Public Keys
STM5STj6vYXHDAB1d3iNeGfcDs7Q1CYbZuddwBZK5sLzyX7AnzU2B1/1
Active
Single Signature
Public Keys
STM5uXdNLPg8tiQgkUERz5M58Jq3F1vRU19xfkkPMF6ZDhzBXdD861/1
Posting
Single Signature
Public Keys
STM7DrvQKxKerMvsP5V3HNspKd37NpE8YqFCGCKSZs2R56uUnKkLH1/1
Memo
STM6jEs8gYKLZhays9Eh5JBvkzgbho4h5wj2Z2XmtTwy9NGhRaJfX
{
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5STj6vYXHDAB1d3iNeGfcDs7Q1CYbZuddwBZK5sLzyX7AnzU2B",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5uXdNLPg8tiQgkUERz5M58Jq3F1vRU19xfkkPMF6ZDhzBXdD86",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7DrvQKxKerMvsP5V3HNspKd37NpE8YqFCGCKSZs2R56uUnKkLH",
1
]
]
},
"memo": "STM6jEs8gYKLZhays9Eh5JBvkzgbho4h5wj2Z2XmtTwy9NGhRaJfX"
}Witness Votes
0 / 30
No active witness votes.
[]