Ecoer Logo
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS40.90%
Net Worth
0.079USD
STEEM
0.004STEEM
SBD
0.084SBD
Effective Power
5.008SP
├── Own SP
0.663SP
└── Incoming Deleg
+4.345SP

Detailed Balance

STEEM
balance
0.004STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
0.663SP
Delegated Out
0.000SP
Delegation In
4.345SP
Effective Power
5.008SP
Reward SP (pending)
0.000SP
SBD
sbd_balance
0.084SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
0.000SBD
{
  "balance": "0.004 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.000 STEEM",
  "vesting_shares": "1077.487564 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7066.172242 VESTS",
  "sbd_balance": "0.084 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.000 SBD",
  "conversions": []
}

Account Info

nametooorkish67
id762765
rank1,293,377
reputation3089525432
created2018-02-13T22:21:30
recovery_accountsteem
proxyNone
post_count98
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2022-02-15T14:00:15
last_root_post2022-02-15T14:00:15
last_vote_time2022-02-15T13:51:48
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votes0
balance0.004 STEEM
savings_balance0.000 STEEM
sbd_balance0.084 SBD
savings_sbd_balance0.000 SBD
vesting_shares1077.487564 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7066.172242 VESTS
reward_vesting_balance0.000000 VESTS
vesting_balance0.000 STEEM
vesting_withdraw_rate0.000000 VESTS
next_vesting_withdrawal1969-12-31T23:59:59
withdrawn0
to_withdraw0
withdraw_routes0
savings_withdraw_requests0
last_account_recovery1970-01-01T00:00:00
reset_accountnull
last_owner_update1970-01-01T00:00:00
last_account_update2018-02-23T22:24:39
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "active": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5Cj4ffidhCMRY1FsLC3QjMReze62vFyeKGKX5LUNx5LLL4rGfF",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "balance": "0.004 STEEM",
  "can_vote": true,
  "comment_count": 0,
  "created": "2018-02-13T22:21:30",
  "curation_rewards": 0,
  "delegated_vesting_shares": "0.000000 VESTS",
  "downvote_manabar": {
    "current_mana": 2035914951,
    "last_update_time": 1779089727
  },
  "guest_bloggers": [],
  "id": 762765,
  "json_metadata": "{\"profile\":{\"profile_image\":\"https://instagram.com/p/BbXHmylHWC6/\",\"cover_image\":\"https://instagram.com/p/BVaKOHYH6SJ/\"}}",
  "last_account_recovery": "1970-01-01T00:00:00",
  "last_account_update": "2018-02-23T22:24:39",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_post": "2022-02-15T14:00:15",
  "last_root_post": "2022-02-15T14:00:15",
  "last_vote_time": "2022-02-15T13:51:48",
  "lifetime_vote_count": 0,
  "market_history": [],
  "memo_key": "STM7AfL77EHxxdmYZCMcU2HTQsZAsDvJvBQpRhPfP7N8iGjp14Lda",
  "mined": false,
  "name": "tooorkish67",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "other_history": [],
  "owner": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5xVNKRooQjq35NfgKWrGgYreKWCKBFaab5YxFpa8SQ4K3Q5jJX",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "pending_claimed_accounts": 0,
  "post_bandwidth": 0,
  "post_count": 98,
  "post_history": [],
  "posting": {
    "account_auths": [],
    "key_auths": [
      [
        "STM6TYWkWWnKhbZeHEffArbMtrZZmiNxWXkKgKXeWgm1cF5upJNVe",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://instagram.com/p/BbXHmylHWC6/\",\"cover_image\":\"https://instagram.com/p/BVaKOHYH6SJ/\"}}",
  "posting_rewards": 53,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "proxy": "",
  "received_vesting_shares": "7066.172242 VESTS",
  "recovery_account": "steem",
  "reputation": 3089525432,
  "reset_account": "null",
  "reward_sbd_balance": "0.000 SBD",
  "reward_steem_balance": "0.000 STEEM",
  "reward_vesting_balance": "0.000000 VESTS",
  "reward_vesting_steem": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "sbd_balance": "0.084 SBD",
  "sbd_last_interest_payment": "1970-01-01T00:00:00",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "2022-02-15T09:35:24",
  "tags_usage": [],
  "to_withdraw": 0,
  "transfer_history": [],
  "vesting_balance": "0.000 STEEM",
  "vesting_shares": "1077.487564 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "vote_history": [],
  "voting_manabar": {
    "current_mana": "8143659806",
    "last_update_time": 1779089727
  },
  "voting_power": 0,
  "withdraw_routes": 0,
  "withdrawn": 0,
  "witness_votes": [],
  "witnesses_voted_for": 0,
  "rank": 1293377
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.345 SP to @tooorkish67
2026/05/18 07:35:27
delegateetooorkish67
delegatorsteem
vesting shares7066.172242 VESTS
Transaction InfoBlock #106152217/Trx 051c3ea1462676c4d438438d439e0ddd7e7d86a2
View Raw JSON Data
{
  "block": 106152217,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "7066.172242 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-18T07:35:27",
  "trx_id": "051c3ea1462676c4d438438d439e0ddd7e7d86a2",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 2.677 SP to @tooorkish67
2026/05/13 09:35:51
delegateetooorkish67
delegatorsteem
vesting shares4353.961837 VESTS
Transaction InfoBlock #106011334/Trx 1ba6f50c3080cc91e8ee773f47295c28557e5375
View Raw JSON Data
{
  "block": 106011334,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "4353.961837 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-13T09:35:51",
  "trx_id": "1ba6f50c3080cc91e8ee773f47295c28557e5375",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 4.353 SP to @tooorkish67
2026/04/26 06:45:30
delegateetooorkish67
delegatorsteem
vesting shares7078.687998 VESTS
Transaction InfoBlock #105519667/Trx 7b6ce2a1e60d510dbf6bbde46fb51019ea8b25c8
View Raw JSON Data
{
  "block": 105519667,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "7078.687998 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-04-26T06:45:30",
  "trx_id": "7b6ce2a1e60d510dbf6bbde46fb51019ea8b25c8",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 2.703 SP to @tooorkish67
2026/01/24 03:31:03
delegateetooorkish67
delegatorsteem
vesting shares4395.508656 VESTS
Transaction InfoBlock #102875422/Trx 8210c7ae5f38ef18d8640e11d9b8e71c0059bd76
View Raw JSON Data
{
  "block": 102875422,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "4395.508656 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-01-24T03:31:03",
  "trx_id": "8210c7ae5f38ef18d8640e11d9b8e71c0059bd76",
  "trx_in_block": 6,
  "virtual_op": 0
}
steemdelegated 2.804 SP to @tooorkish67
2024/12/17 22:39:48
delegateetooorkish67
delegatorsteem
vesting shares4559.727853 VESTS
Transaction InfoBlock #91321617/Trx ff02250871e1861634a1d7cce9af504e942e6623
View Raw JSON Data
{
  "block": 91321617,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "4559.727853 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2024-12-17T22:39:48",
  "trx_id": "ff02250871e1861634a1d7cce9af504e942e6623",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 2.908 SP to @tooorkish67
2023/11/14 14:18:12
delegateetooorkish67
delegatorsteem
vesting shares4728.861385 VESTS
Transaction InfoBlock #79875700/Trx 83db75f6523061bc8bada71efe9baadd087adaa3
View Raw JSON Data
{
  "block": 79875700,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "4728.861385 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-11-14T14:18:12",
  "trx_id": "83db75f6523061bc8bada71efe9baadd087adaa3",
  "trx_in_block": 6,
  "virtual_op": 0
}
steemdelegated 4.711 SP to @tooorkish67
2023/09/27 20:14:45
delegateetooorkish67
delegatorsteem
vesting shares7662.131668 VESTS
Transaction InfoBlock #78518078/Trx d2405dfdc149939feb0d40fe31722673c163ccf0
View Raw JSON Data
{
  "block": 78518078,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "7662.131668 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-09-27T20:14:45",
  "trx_id": "d2405dfdc149939feb0d40fe31722673c163ccf0",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 4.819 SP to @tooorkish67
2023/01/13 13:24:30
delegateetooorkish67
delegatorsteem
vesting shares7836.951191 VESTS
Transaction InfoBlock #71147920/Trx f7929cea1b8237ea5e5606512d4d0a75b35a4be5
View Raw JSON Data
{
  "block": 71147920,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "7836.951191 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-01-13T13:24:30",
  "trx_id": "f7929cea1b8237ea5e5606512d4d0a75b35a4be5",
  "trx_in_block": 1,
  "virtual_op": 0
}
tooorkish67custom json: community
2022/08/01 23:18:18
idcommunity
json["subscribe",{"community":"hive-101145"}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #66436922/Trx 8cd91066b741f5f1686a2ce680f033eff760a3e0
View Raw JSON Data
{
  "block": 66436922,
  "op": [
    "custom_json",
    {
      "id": "community",
      "json": "[\"subscribe\",{\"community\":\"hive-101145\"}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-08-01T23:18:18",
  "trx_id": "8cd91066b741f5f1686a2ce680f033eff760a3e0",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 4.929 SP to @tooorkish67
2022/05/17 16:12:12
delegateetooorkish67
delegatorsteem
vesting shares8015.280596 VESTS
Transaction InfoBlock #64252109/Trx f8de09aae4dfe3d4dd62e87ba572590c3608cdc9
View Raw JSON Data
{
  "block": 64252109,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "8015.280596 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-05-17T16:12:12",
  "trx_id": "f8de09aae4dfe3d4dd62e87ba572590c3608cdc9",
  "trx_in_block": 2,
  "virtual_op": 0
}
steemdelegated 16.459 SP to @tooorkish67
2022/05/05 21:32:27
delegateetooorkish67
delegatorsteem
vesting shares26766.241709 VESTS
Transaction InfoBlock #63914120/Trx 74a1788eec2ce52bf7d106c17bd5f79de67d4469
View Raw JSON Data
{
  "block": 63914120,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "26766.241709 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-05-05T21:32:27",
  "trx_id": "74a1788eec2ce52bf7d106c17bd5f79de67d4469",
  "trx_in_block": 7,
  "virtual_op": 0
}
2022/02/15 14:00:15
authortooorkish67
bodyby Miško Hevery, Jonathan Wolter, Russ Ruffer, Brad Cross, and lots of other test infected Googlers This guide lists principles that will help you write impossible to tests code. Or, avoiding these techniques will help you write code that can be tested. Make Your Own Dependencies - Instantiate objects using new in the middle of methods, don't pass the object in. This is evil because whenever you new up an object inside a block of code and then use it, anyone that wants to test that code is also forced to use that concrete object you new'ed up. They can't "inject" a dummy, fake, or other mock in to simplify the behavior or make assertions about what you do to it. Heavy Duty Constructors - Make constructors that do lots of work in them. The more work you do in the constructor, the hard it is to create your object in a test fixture. And if your constructor can construct other things that are hard themselves to construct, that's even better! You want the transitive dependencies of every constructor to be enormous. Enormous is hard to get under test. Depend on Concrete Classes - Tie things down to concrete classes - avoid interfaces wherever possible. (They let people substitute the concrete classes you're using for their own classes which would implement the same contract in the interface or abstract class. Testing do-gooders might want to do this to get your code under a test harness - don't let them!) Conditional Slalom - Always, always, feel good when writing lengthy if branches and switch statements. These increase the number of possible execution paths that tests will need to cover when exercising the code under test. The higher the Cyclomatic complexity, the harder it is to test! When someone suggests to use polymorphism instead of conditionals, laugh at their thoughtfulness towards testing. Make the branching both deep and wide: if you're not consistently at least 5 conditionals deep, you're spoon feeding testable code to the TDD zealots. Depend on Large Context Objects - Pass around ginormous context objects (or small ones with hard to construct contents). These will reduce the clarity of methods [myMethod(Context ctx) is less clear than myMethod(User user, Label label)]. For testing, the context objects will need to be created, populated, and passed around. Use Statics - Statics, statics everywhere! They put a great big crunch in testability. They can't be mocked, and are a smell that you've got a method without a home. OO zealots will say that a static method is a sign that one of the parameters should own the method. But you're being 3v1L! Use More Statics - Statics are a really powerful tool to bring TDD Infected engineers to their knees. Static methods can't be overridden in a subclass (sometimes subclassing a class and overriding methods is a technique for testing). When you use static methods, they can't be mocked using mocking libraries (nixing another trick up the pro-testing engineer's sleeve). Use Global Flags - Why call a method explicitly? Just like L Ron Hubbard, use "mind over matter" to set a flag in one part of your code, in order to cause an effect in a totally different part of your application (it's even more fun when you do it concurrently in different threads!). The testers will go crazy trying to figure out why all of a sudden a conditional that was evaluating true one minute is all of a sudden evaluating to false. Use Singletons Everywhere - Why pass in a dependency and make it obvious when you can use a singleton? It's hard to set up a test that requires singletons, and the TDDers will be in for a world of hurt when all their tests depend on each other's state. Be Defensive - They're out to Get Your Code! - Defensively assert about the state of parameters passed in methods, constructors, and mid-method. If someone can pass in a null, you've left your guard down. You see, there are testing freaks out there that like to instantiate your object, or call a method under test and pass in nulls! Be aggressive in preventing this: rule your code with an iron fist! (And remember: it's not paranoia if they really are out to get you.) Use Primitives Wherever Possible - Instead of using a "cookie object," pass in primitives and do all the parsing you need, every time you need a value. Primitives make people work harder by having to parse and massage them to get the data out -- where objects are mockable (gasp) and nullable, and encapsulate state (who'd want to do that?) Look for Everything You Need - By Looking for things you are asserting your objects dominance as the object which knows where everything is. This will make the life of tester hard, since he will have to mimic the environment so that your code can get a hold of what it needs. And don't be afraid of how many objects you need to reach out to to, the more the harder it will be for test to mock them all out in unisin. If you are an InvoiceTaxCalculator, feel free to do things like: invoiceTaxCalculator.getUser().getDbManager().getCaRateTables().getSalesTaxRate(). Cover your ears when some testing weenie tells you about Dependency Injection, Law of Demeter, or not looking for things. Use static initializes - Do as much work as possible when your class is loaded. Testing nuts will be so frustrated when they find out just loading your class causes nasty stuff like network or file access. Couple functional code directly to the external systems it depends on If your product uses external systems such as a databases, file systems or a network, make sure your business logic is coded to reference as many low level implementation details of these systems as possible. This will prevent others from using your code in ways you don't intend, (like small tests that run in 2 ms instead of 5 minutes). Mix Object Lifecycles - Have long lived objects reference short lived objects. This confuses people as the long lived object references the short lived object still after it's no longer valid or alive. This is especially insidious, both bad design, and evil, hard to test. Side Effects are the Way to Go Your best bet is to perform a large number of side effect producing operations in your methods. This is especially true for setters. The more non-obvious the side effects better. Peculiar and seemingly irrational side effects are particularly helpful for unit testing. To add another layer of sweet creamy goodness on top, you want to make it possible to initialize your objects in an invalid state, with uninitialized member fields. Once you have achieved this, be sure to make calls on the methods of the uninitialized fields as side effects from your setters in order to cause SEGV's or NPE's, depending on your language's vernacular. Why go to all this trouble? Clean, readable, and testable code that works, that's why! Side effect free functions are for intellectual weaklings that think a function name should give some kind of an indication of what the function does. Create Utility Classes and Functions/Methods - For instance, you have a String which is a URL you're passing around (obeying "Use Primitives Wherever Possible"). Create another class with static methods such as isValidUrl(String url). Don't let the OO police tell you to make that a method on a URL object. And if your static utility methods can call to external services as well, that's even better! Create Managers and Controllers - all over the place have these Managers and Controllers meddling in the responsibilities of other objects. Don't bother trying to pull that responsibility into other individual objects. Look at a SomeObjectManager class and you have no idea what it's going to do. Do Complicated Creation Work in Objects - Whenever someone suggests you to use a Factory to instantiate things, know that you are smarter than them. You're more intelligent than they must be, because your objects can have multiple responsibilities and be thousands of lines long. Greenlight if-branches and switch statements - Go ahead, don't feel dirty about nesting if-branches. It's "more readable" that way. OO cowboys will want to have a whole polymorphic soup of collaborating objects. Say no to the OO-ist. When you nest and branch conditionals, all you need to do is read the code from top to bottom. Like a great novel, one simple linear prose of code. With the OO-overboard paradigm, it's like a terrible choose-your-own-adventure kid's book. You're constantly flipping between classes and juggling patterns and so many more complex concepts. Just if-things out and you'll be fine. Utils, Utils, Utils! - Code smell? No way - code perfume! Litter about as many util and helper classes as you wish. These folks are helpful, and when you stick them off somewhere, someone else can use them too. That's code reuse, and good for everyone, right? Be forewarned, the OO-police will say that functionality belongs in some object, as that object's responsibility. Forget it, you're way to pragmatic to break things down like they want. You've got a product to ship after all! Use "Refactoring" whenever you need to get away with something - This is a word that Test-Driven and OO-goons like. So if you want to do something far reaching, involving new functionality, without tests, just tell them you're "Refactoring." It'll trick them every time. No matter that they think you need to have tests around everything before you can refactor, and that it should never add new functionality. Ignore their hubbub, and do things your own way! Java Specific Final Methods - Use final classes and methods all the time. They can't be overridden for testing (-; But don't bother making fields final, or using value objects (without setters) - just let your objects' state be changed by anything and anyone. No sense in guaranteeing state, it'd make things too easy. Handcuff your users to Specific Types - Use instanceof as much as possible. This will make Mocking a pain, and show people that you're in control of the objects allowed. C++ Specific Use non-virtual methods - Unless you need to override the method in a deep and scary inheritance hierarchy, just make the method non-virtual. If you make it virtual, a TDD zealot may mock your class! An even nicer trick is to keep your destructor non-virtual - then when the testing freaks try to subclass, whooooaoaaaaaa.... Never use pure abstract classes - Depending on pure abstract classes is a sure-fire way to let the TDD crazies inject stubs and mocks into your code, making it testable. Macros are your friends - Always use #ifdef PROD and other compile-time switches to make sure the testies can't get at your really important blocks of code and test them. In fact, this code won't even run: until it gets to production!
json metadata{"tags":["code","bitcoin","metaverse","ifdef"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkcode
permlinkhow-to-write-3v1l-untestable-code-july-24-2008
titleHow to Write 3v1L, Untestable Code 'July 24, 2008'
Transaction InfoBlock #61643737/Trx 5c552a981c3c2ef9b9392b25d4d0a61036359171
View Raw JSON Data
{
  "block": 61643737,
  "op": [
    "comment",
    {
      "author": "tooorkish67",
      "body": "by Miško Hevery, Jonathan Wolter, Russ Ruffer, Brad Cross, and lots of other test infected Googlers\nThis guide lists principles that will help you write impossible to tests code. Or, avoiding these techniques will help you write code that can be tested.\n\nMake Your Own Dependencies - Instantiate objects using new in the middle of methods, don't pass the object in. This is evil because whenever you new up an object inside a block of code and then use it, anyone that wants to test that code is also forced to use that concrete object you new'ed up. They can't \"inject\" a dummy, fake, or other mock in to simplify the behavior or make assertions about what you do to it.\n\nHeavy Duty Constructors - Make constructors that do lots of work in them. The more work you do in the constructor, the hard it is to create your object in a test fixture. And if your constructor can construct other things that are hard themselves to construct, that's even better! You want the transitive dependencies of every constructor to be enormous. Enormous is hard to get under test.\n\nDepend on Concrete Classes - Tie things down to concrete classes - avoid interfaces wherever possible. (They let people substitute the concrete classes you're using for their own classes which would implement the same contract in the interface or abstract class. Testing do-gooders might want to do this to get your code under a test harness - don't let them!)\n\nConditional Slalom - Always, always, feel good when writing lengthy if branches and switch statements. These increase the number of possible execution paths that tests will need to cover when exercising the code under test. The higher the Cyclomatic complexity, the harder it is to test! When someone suggests to use polymorphism instead of conditionals, laugh at their thoughtfulness towards testing. Make the branching both deep and wide: if you're not consistently at least 5 conditionals deep, you're spoon feeding testable code to the TDD zealots.\n\nDepend on Large Context Objects - Pass around ginormous context objects (or small ones with hard to construct contents). These will reduce the clarity of methods [myMethod(Context ctx) is less clear than myMethod(User user, Label label)]. For testing, the context objects will need to be created, populated, and passed around.\n\nUse Statics - Statics, statics everywhere! They put a great big crunch in testability. They can't be mocked, and are a smell that you've got a method without a home. OO zealots will say that a static method is a sign that one of the parameters should own the method. But you're being 3v1L!\n\nUse More Statics - Statics are a really powerful tool to bring TDD Infected engineers to their knees. Static methods can't be overridden in a subclass (sometimes subclassing a class and overriding methods is a technique for testing). When you use static methods, they can't be mocked using mocking libraries (nixing another trick up the pro-testing engineer's sleeve).\n\nUse Global Flags - Why call a method explicitly? Just like L Ron Hubbard, use \"mind over matter\" to set a flag in one part of your code, in order to cause an effect in a totally different part of your application (it's even more fun when you do it concurrently in different threads!). The testers will go crazy trying to figure out why all of a sudden a conditional that was evaluating true one minute is all of a sudden evaluating to false.\n\nUse Singletons Everywhere - Why pass in a dependency and make it obvious when you can use a singleton? It's hard to set up a test that requires singletons, and the TDDers will be in for a world of hurt when all their tests depend on each other's state.\n\nBe Defensive - They're out to Get Your Code! - Defensively assert about the state of parameters passed in methods, constructors, and mid-method. If someone can pass in a null, you've left your guard down. You see, there are testing freaks out there that like to instantiate your object, or call a method under test and pass in nulls! Be aggressive in preventing this: rule your code with an iron fist! (And remember: it's not paranoia if they really are out to get you.)\n\nUse Primitives Wherever Possible - Instead of using a \"cookie object,\" pass in primitives and do all the parsing you need, every time you need a value. Primitives make people work harder by having to parse and massage them to get the data out -- where objects are mockable (gasp) and nullable, and encapsulate state (who'd want to do that?)\n\nLook for Everything You Need - By Looking for things you are asserting your objects dominance as the object which knows where everything is. This will make the life of tester hard, since he will have to mimic the environment so that your code can get a hold of what it needs. And don't be afraid of how many objects you need to reach out to to, the more the harder it will be for test to mock them all out in unisin. If you are an InvoiceTaxCalculator, feel free to do things like: invoiceTaxCalculator.getUser().getDbManager().getCaRateTables().getSalesTaxRate(). Cover your ears when some testing weenie tells you about Dependency Injection, Law of Demeter, or not looking for things.\n\nUse static initializes - Do as much work as possible when your class is loaded. Testing nuts will be so frustrated when they find out just loading your class causes nasty stuff like network or file access.\nCouple functional code directly to the external systems it depends on If your product uses external systems such as a databases, file systems or a network, make sure your business logic is coded to reference as many low level implementation details of these systems as possible. This will prevent others from using your code in ways you don't intend, (like small tests that run in 2 ms instead of 5 minutes).\n\nMix Object Lifecycles - Have long lived objects reference short lived objects. This confuses people as the long lived object references the short lived object still after it's no longer valid or alive. This is especially insidious, both bad design, and evil, hard to test.\nSide Effects are the Way to Go Your best bet is to perform a large number of side effect producing operations in your methods. This is especially true for setters. The more non-obvious the side effects better. Peculiar and seemingly irrational side effects are particularly helpful for unit testing. To add another layer of sweet creamy goodness on top, you want to make it possible to initialize your objects in an invalid state, with uninitialized member fields. Once you have achieved this, be sure to make calls on the methods of the uninitialized fields as side effects from your setters in order to cause SEGV's or NPE's, depending on your language's vernacular. Why go to all this trouble? Clean, readable, and testable code that works, that's why! Side effect free functions are for intellectual weaklings that think a function name should give some kind of an indication of what the function does.\n\nCreate Utility Classes and Functions/Methods - For instance, you have a String which is a URL you're passing around (obeying \"Use Primitives Wherever Possible\"). Create another class with static methods such as isValidUrl(String url). Don't let the OO police tell you to make that a method on a URL object. And if your static utility methods can call to external services as well, that's even better!\n\nCreate Managers and Controllers - all over the place have these Managers and Controllers meddling in the responsibilities of other objects. Don't bother trying to pull that responsibility into other individual objects. Look at a SomeObjectManager class and you have no idea what it's going to do.\nDo Complicated Creation Work in Objects - Whenever someone suggests you to use a Factory to instantiate things, know that you are smarter than them. You're more intelligent than they must be, because your objects can have multiple responsibilities and be thousands of lines long.\nGreenlight if-branches and switch statements - Go ahead, don't feel dirty about nesting if-branches. It's \"more readable\" that way. OO cowboys will want to have a whole polymorphic soup of collaborating objects. Say no to the OO-ist. When you nest and branch conditionals, all you need to do is read the code from top to bottom. Like a great novel, one simple linear prose of code. With the OO-overboard paradigm, it's like a terrible choose-your-own-adventure kid's book. You're constantly flipping between classes and juggling patterns and so many more complex concepts. Just if-things out and you'll be fine.\n\nUtils, Utils, Utils! - Code smell? No way - code perfume! Litter about as many util and helper classes as you wish. These folks are helpful, and when you stick them off somewhere, someone else can use them too. That's code reuse, and good for everyone, right? Be forewarned, the OO-police will say that functionality belongs in some object, as that object's responsibility. Forget it, you're way to pragmatic to break things down like they want. You've got a product to ship after all!\nUse \"Refactoring\" whenever you need to get away with something - This is a word that Test-Driven and OO-goons like. So if you want to do something far reaching, involving new functionality, without tests, just tell them you're \"Refactoring.\" It'll trick them every time. No matter that they think you need to have tests around everything before you can refactor, and that it should never add new functionality. Ignore their hubbub, and do things your own way!\nJava Specific\n\nFinal Methods - Use final classes and methods all the time. They can't be overridden for testing (-; But don't bother making fields final, or using value objects (without setters) - just let your objects' state be changed by anything and anyone. No sense in guaranteeing state, it'd make things too easy.\nHandcuff your users to Specific Types - Use instanceof as much as possible. This will make Mocking a pain, and show people that you're in control of the objects allowed.\n\nC++ Specific\n\nUse non-virtual methods - Unless you need to override the method in a deep and scary inheritance hierarchy, just make the method non-virtual. If you make it virtual, a TDD zealot may mock your class! An even nicer trick is to keep your destructor non-virtual - then when the testing freaks try to subclass, whooooaoaaaaaa....\nNever use pure abstract classes - Depending on pure abstract classes is a sure-fire way to let the TDD crazies inject stubs and mocks into your code, making it testable.\n\nMacros are your friends - Always use #ifdef PROD and other compile-time switches to make sure the testies can't get at your really important blocks of code and test them. In fact, this code won't even run: until it gets to production!",
      "json_metadata": "{\"tags\":[\"code\",\"bitcoin\",\"metaverse\",\"ifdef\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "code",
      "permlink": "how-to-write-3v1l-untestable-code-july-24-2008",
      "title": "How to Write 3v1L, Untestable Code  'July 24, 2008'"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T14:00:15",
  "trx_id": "5c552a981c3c2ef9b9392b25d4d0a61036359171",
  "trx_in_block": 1,
  "virtual_op": 0
}
2022/02/15 13:51:48
authortooorkish67
permlinkhappy-70th-birthday-dad
votertooorkish67
weight10000 (100.00%)
Transaction InfoBlock #61643570/Trx b32aa0e2a50d9f0188dd7601f0e1e077978dc142
View Raw JSON Data
{
  "block": 61643570,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "happy-70th-birthday-dad",
      "voter": "tooorkish67",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T13:51:48",
  "trx_id": "b32aa0e2a50d9f0188dd7601f0e1e077978dc142",
  "trx_in_block": 1,
  "virtual_op": 0
}
2022/02/15 13:51:42
authortooorkish67
permlinkan-ancient-language-has-defied-translation-for-100-years-can-ai-crack-the-code
votertooorkish67
weight10000 (100.00%)
Transaction InfoBlock #61643568/Trx 073e1e244d1d33eb5440e0e2faa89343fee0a98a
View Raw JSON Data
{
  "block": 61643568,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "an-ancient-language-has-defied-translation-for-100-years-can-ai-crack-the-code",
      "voter": "tooorkish67",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T13:51:42",
  "trx_id": "073e1e244d1d33eb5440e0e2faa89343fee0a98a",
  "trx_in_block": 2,
  "virtual_op": 0
}
tooorkish67upvoted (100.00%) @tooorkish67 / nature
2022/02/15 13:51:36
authortooorkish67
permlinknature
votertooorkish67
weight10000 (100.00%)
Transaction InfoBlock #61643566/Trx 21dfd2cf9d790d1c7b0e679e0fa1be0fe4002a8f
View Raw JSON Data
{
  "block": 61643566,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "nature",
      "voter": "tooorkish67",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T13:51:36",
  "trx_id": "21dfd2cf9d790d1c7b0e679e0fa1be0fe4002a8f",
  "trx_in_block": 10,
  "virtual_op": 0
}
2022/02/15 13:51:36
authortooorkish67
permlinkart-pics-or-follow-me-or
votertooorkish67
weight10000 (100.00%)
Transaction InfoBlock #61643566/Trx 9f8a441a6a07fd4c18f1c8dd47decc1c89c443d1
View Raw JSON Data
{
  "block": 61643566,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "art-pics-or-follow-me-or",
      "voter": "tooorkish67",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T13:51:36",
  "trx_id": "9f8a441a6a07fd4c18f1c8dd47decc1c89c443d1",
  "trx_in_block": 0,
  "virtual_op": 0
}
2022/02/15 13:51:30
authortooorkish67
permlink7vktae-art-pics-or-or-follow-me-or-or
votertooorkish67
weight10000 (100.00%)
Transaction InfoBlock #61643564/Trx 94972b914a57cf84b2a0f7449546c3b7ddab814f
View Raw JSON Data
{
  "block": 61643564,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "7vktae-art-pics-or-or-follow-me-or-or",
      "voter": "tooorkish67",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T13:51:30",
  "trx_id": "94972b914a57cf84b2a0f7449546c3b7ddab814f",
  "trx_in_block": 3,
  "virtual_op": 0
}
2022/02/15 13:51:27
authortooorkish67
permlinkbruce-lee-motivation-music
votertooorkish67
weight10000 (100.00%)
Transaction InfoBlock #61643563/Trx 2cc7fbbd9659483bd0767038eddbafab12736f26
View Raw JSON Data
{
  "block": 61643563,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "bruce-lee-motivation-music",
      "voter": "tooorkish67",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T13:51:27",
  "trx_id": "2cc7fbbd9659483bd0767038eddbafab12736f26",
  "trx_in_block": 4,
  "virtual_op": 0
}
2022/02/15 13:49:30
authortooorkish67
body@@ -4769,8 +4769,21 @@ ny more! +%0A%0A*quotation*
json metadata{"tags":["dad","happy"],"image":["https://cdn.steemitimages.com/DQmPrNBZAuej39DbjaU5PJR5aaZHPtE6aDBcLdsowTDkNNj/dad70-1536x1152.jpg"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkcancer
permlinkhappy-70th-birthday-dad
titleHappy 70th birthday Dad!
Transaction InfoBlock #61643524/Trx 78078187f7cdbffea3610f162b0b6bb2302760bc
View Raw JSON Data
{
  "block": 61643524,
  "op": [
    "comment",
    {
      "author": "tooorkish67",
      "body": "@@ -4769,8 +4769,21 @@\n ny more!\n+%0A%0A*quotation*\n",
      "json_metadata": "{\"tags\":[\"dad\",\"happy\"],\"image\":[\"https://cdn.steemitimages.com/DQmPrNBZAuej39DbjaU5PJR5aaZHPtE6aDBcLdsowTDkNNj/dad70-1536x1152.jpg\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "cancer",
      "permlink": "happy-70th-birthday-dad",
      "title": "Happy 70th birthday Dad!"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T13:49:30",
  "trx_id": "78078187f7cdbffea3610f162b0b6bb2302760bc",
  "trx_in_block": 7,
  "virtual_op": 0
}
2022/02/15 13:48:51
authortooorkish67
body![dad70-1536x1152.jpg](https://cdn.steemitimages.com/DQmPrNBZAuej39DbjaU5PJR5aaZHPtE6aDBcLdsowTDkNNj/dad70-1536x1152.jpg) When, before covid, I used to travel the world giving quantum computing talks, every once in a while I’d meet an older person who asked whether I had any relation to a 1970s science writer by the name of Steve Aaronson. So, yeah, Steve Aaronson is my dad. He majored in English in Penn State, where he was lucky enough to study under the legendary Phil Klass, who wrote under the pen name William Tenn and who basically created the genre of science-fiction comedy, half a century before there were any such things as Futurama. After graduating, my dad became a popular physics and cosmology writer, who interviewed greats like Steven Weinberg and John Archibald Wheeler and Arno Penzias (discoverer of the cosmic microwave background radiation). He published not only in science magazines but in Playboy and Penthouse, which (as he explained to my mom) paid better than the science magazines. When I was growing up, my dad had a Playboy on his office shelf, which I might take down if for example I wanted to show a friend a 2-page article, with an Aaronson byline, about the latest thinking on the preponderance of matter over antimatter in the visible universe. Eventually, partly motivated by the need to make money to support … well, me, and then my brother, my dad left freelancing to become a corporate science writer at AT&T Bell Labs. There, my dad wrote speeches, delivered on the floor of Congress, about how breaking up AT&T’s monopoly would devastate Bell Labs, a place that stood with ancient Alexandria and Cambridge University among the human species’ most irreplaceable engines of scientific creativity. (Being a good writer, my dad didn’t put it in quite those words.) Eventually, of course, AT&T was broken up, and my dad’s dire warning about Bell Labs turned out to be 100% vindicated … although on the positive side, Americans got much cheaper long distance. After a decade at Bell Labs, my dad was promoted to be a public relations executive at AT&T itself, where when I was a teenager, he was centrally involved in the launch of the AT&T spinoff Lucent Technologies (motto: “Bell Labs Innovations”), and then later the Lucent spinoff Avaya—developments that AT&T’s original breakup had caused as downstream effects. In the 1970s, somewhere between his magazine stage and his Bell Labs stage, my dad also worked for Eugene Garfield, the pioneer of bibliometrics for scientific papers and founder of the Institute for Scientific Information, or ISI. (Sergey Brin and Larry Page would later cite Garfield’s work, on the statistics of the scientific-citation graph, as one of the precedents for the PageRank algorithm at the core of Google.) My dad’s job at ISI was to supply Eugene Garfield with “raw material” for essays, which the latter would then write and publish in ISI’s journal Current Contents under the byline Eugene Garfield. Once, though, my dad supplied some “raw material” for a planned essay about “Style in Scientific Writing”—and, well, I’ll let Garfield tell the rest: This topic of style in scientific writing was first proposed as something I should undertake myself, with some research and drafting help from Steve. I couldn’t, with a clear conscience, have put my name to the “draft” he submitted. And, though I don’t disagree with much of it, I didn’t want to modify or edit it in order to justify claiming it as my own. So here is Aaronson’s “draft,” as it was submitted for “review.” You can say I got a week’s vacation. After reading what he wrote it required little work to write this introduction. Interested yet? You can read “Style in Scientific Writing” here. You can, if we’re being honest, tell that this piece was originally intended as “raw material”—but only because of the way it calls forth such a fierce armada of all of history’s awesomest quotations about what makes scientific writing good or bad, like Ben Franklin and William James and the whole gang, which would make it worth the read regardless. I love eating raw dough, I confess, and I love my dad’s essay. (My dad, ironically enough, likes everything he eats to be thoroughly cooked.) When I read that essay, I hear my dad’s voice from my childhood. “Omit needless words.” There were countless revisions and pieces of advice on every single thing I wrote, but usually, “omit needless words” was the core of it. And as terrible as you all know me to be on that count, imagine how much worse it would’ve been if not for my dad! And I know that as soon as he reads this post, he’ll find needless words to omit. But hopefully he won’t omit these: Happy 70th birthday Pops, congrats on beating the cancer, and here’s to many more!
json metadata{"tags":["cancer","dad","happy"],"image":["https://cdn.steemitimages.com/DQmPrNBZAuej39DbjaU5PJR5aaZHPtE6aDBcLdsowTDkNNj/dad70-1536x1152.jpg"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkcancer
permlinkhappy-70th-birthday-dad
titleHappy 70th birthday Dad!
Transaction InfoBlock #61643511/Trx cc2203936aa8d8deff2bc3309a44101998175120
View Raw JSON Data
{
  "block": 61643511,
  "op": [
    "comment",
    {
      "author": "tooorkish67",
      "body": "![dad70-1536x1152.jpg](https://cdn.steemitimages.com/DQmPrNBZAuej39DbjaU5PJR5aaZHPtE6aDBcLdsowTDkNNj/dad70-1536x1152.jpg)\n\nWhen, before covid, I used to travel the world giving quantum computing talks, every once in a while I’d meet an older person who asked whether I had any relation to a 1970s science writer by the name of Steve Aaronson. So, yeah, Steve Aaronson is my dad. He majored in English in Penn State, where he was lucky enough to study under the legendary Phil Klass, who wrote under the pen name William Tenn and who basically created the genre of science-fiction comedy, half a century before there were any such things as Futurama. After graduating, my dad became a popular physics and cosmology writer, who interviewed greats like Steven Weinberg and John Archibald Wheeler and Arno Penzias (discoverer of the cosmic microwave background radiation). He published not only in science magazines but in Playboy and Penthouse, which (as he explained to my mom) paid better than the science magazines. When I was growing up, my dad had a Playboy on his office shelf, which I might take down if for example I wanted to show a friend a 2-page article, with an Aaronson byline, about the latest thinking on the preponderance of matter over antimatter in the visible universe.\n\nEventually, partly motivated by the need to make money to support … well, me, and then my brother, my dad left freelancing to become a corporate science writer at AT&T Bell Labs. There, my dad wrote speeches, delivered on the floor of Congress, about how breaking up AT&T’s monopoly would devastate Bell Labs, a place that stood with ancient Alexandria and Cambridge University among the human species’ most irreplaceable engines of scientific creativity. (Being a good writer, my dad didn’t put it in quite those words.) Eventually, of course, AT&T was broken up, and my dad’s dire warning about Bell Labs turned out to be 100% vindicated … although on the positive side, Americans got much cheaper long distance.\n\nAfter a decade at Bell Labs, my dad was promoted to be a public relations executive at AT&T itself, where when I was a teenager, he was centrally involved in the launch of the AT&T spinoff Lucent Technologies (motto: “Bell Labs Innovations”), and then later the Lucent spinoff Avaya—developments that AT&T’s original breakup had caused as downstream effects.\n\nIn the 1970s, somewhere between his magazine stage and his Bell Labs stage, my dad also worked for Eugene Garfield, the pioneer of bibliometrics for scientific papers and founder of the Institute for Scientific Information, or ISI. (Sergey Brin and Larry Page would later cite Garfield’s work, on the statistics of the scientific-citation graph, as one of the precedents for the PageRank algorithm at the core of Google.)\n\nMy dad’s job at ISI was to supply Eugene Garfield with “raw material” for essays, which the latter would then write and publish in ISI’s journal Current Contents under the byline Eugene Garfield. Once, though, my dad supplied some “raw material” for a planned essay about “Style in Scientific Writing”—and, well, I’ll let Garfield tell the rest:\n\nThis topic of style in scientific writing was first proposed as something I should undertake myself, with some research and drafting help from Steve. I couldn’t, with a clear conscience, have put my name to the “draft” he submitted. And, though I don’t disagree with much of it, I didn’t want to modify or edit it in order to justify claiming it as my own. So here is Aaronson’s “draft,” as it was submitted for “review.” You can say I got a week’s vacation. After reading what he wrote it required little work to write this introduction.\n\nInterested yet? You can read “Style in Scientific Writing” here. You can, if we’re being honest, tell that this piece was originally intended as “raw material”—but only because of the way it calls forth such a fierce armada of all of history’s awesomest quotations about what makes scientific writing good or bad, like Ben Franklin and William James and the whole gang, which would make it worth the read regardless. I love eating raw dough, I confess, and I love my dad’s essay. (My dad, ironically enough, likes everything he eats to be thoroughly cooked.)\n\nWhen I read that essay, I hear my dad’s voice from my childhood. “Omit needless words.” There were countless revisions and pieces of advice on every single thing I wrote, but usually, “omit needless words” was the core of it. And as terrible as you all know me to be on that count, imagine how much worse it would’ve been if not for my dad! And I know that as soon as he reads this post, he’ll find needless words to omit.\n\nBut hopefully he won’t omit these:\n\nHappy 70th birthday Pops, congrats on beating the cancer, and here’s to many more!",
      "json_metadata": "{\"tags\":[\"cancer\",\"dad\",\"happy\"],\"image\":[\"https://cdn.steemitimages.com/DQmPrNBZAuej39DbjaU5PJR5aaZHPtE6aDBcLdsowTDkNNj/dad70-1536x1152.jpg\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "cancer",
      "permlink": "happy-70th-birthday-dad",
      "title": "Happy 70th birthday Dad!"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T13:48:51",
  "trx_id": "cc2203936aa8d8deff2bc3309a44101998175120",
  "trx_in_block": 17,
  "virtual_op": 0
}
steemdelegated 16.571 SP to @tooorkish67
2022/02/15 10:48:15
delegateetooorkish67
delegatorsteem
vesting shares26948.304263 VESTS
Transaction InfoBlock #61639918/Trx cc58e90210e1e0cf79b619c9cd1c516f5c98d9ef
View Raw JSON Data
{
  "block": 61639918,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "26948.304263 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T10:48:15",
  "trx_id": "cc58e90210e1e0cf79b619c9cd1c516f5c98d9ef",
  "trx_in_block": 6,
  "virtual_op": 0
}
tooorkish67custom json: notify
2022/02/15 10:09:30
idnotify
json["setLastRead",{"date":"2022-02-15T10:09:30"}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #61639147/Trx 2236cbd80bc6b2a892bd172641af787d3b7166e4
View Raw JSON Data
{
  "block": 61639147,
  "op": [
    "custom_json",
    {
      "id": "notify",
      "json": "[\"setLastRead\",{\"date\":\"2022-02-15T10:09:30\"}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T10:09:30",
  "trx_id": "2236cbd80bc6b2a892bd172641af787d3b7166e4",
  "trx_in_block": 2,
  "virtual_op": 0
}
tooorkish67published a new post: omg
2022/02/15 10:06:54
authortooorkish67
body..
json metadata{"tags":["gold","blockchain","china"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkbitcoin
permlinkomg
titleOMG 😱
Transaction InfoBlock #61639095/Trx 0a4d479c16e83a78ede258edd497e9497fdd0a70
View Raw JSON Data
{
  "block": 61639095,
  "op": [
    "comment",
    {
      "author": "tooorkish67",
      "body": "..",
      "json_metadata": "{\"tags\":[\"gold\",\"blockchain\",\"china\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "bitcoin",
      "permlink": "omg",
      "title": "OMG 😱"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T10:06:54",
  "trx_id": "0a4d479c16e83a78ede258edd497e9497fdd0a70",
  "trx_in_block": 2,
  "virtual_op": 0
}
2022/02/15 10:03:36
authortooorkish67
permlinkan-ancient-language-has-defied-translation-for-100-years-can-ai-crack-the-code
votergruntbeta
weight10000 (100.00%)
Transaction InfoBlock #61639029/Trx 5db4460b9f39eaf98e3e276ca8ecfbdbe9fd85c8
View Raw JSON Data
{
  "block": 61639029,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "an-ancient-language-has-defied-translation-for-100-years-can-ai-crack-the-code",
      "voter": "gruntbeta",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T10:03:36",
  "trx_id": "5db4460b9f39eaf98e3e276ca8ecfbdbe9fd85c8",
  "trx_in_block": 4,
  "virtual_op": 0
}
2022/02/15 10:03:06
authortooorkish67
permlinkan-ancient-language-has-defied-translation-for-100-years-can-ai-crack-the-code
votergruntomega
weight10000 (100.00%)
Transaction InfoBlock #61639019/Trx 100398501832b18592d5f1f5df19ad4a63d99b3e
View Raw JSON Data
{
  "block": 61639019,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "an-ancient-language-has-defied-translation-for-100-years-can-ai-crack-the-code",
      "voter": "gruntomega",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T10:03:06",
  "trx_id": "100398501832b18592d5f1f5df19ad4a63d99b3e",
  "trx_in_block": 0,
  "virtual_op": 0
}
executive-boardsent 0.001 STEEM to @tooorkish67- "❗ Hello tooorkish67, great that you are using the STEEM blockchain. The Executive Board is publishing insider infos at https://discord.gg/KyBbmhh on how you will be earning the most coins. It's easy, ..."
2022/02/15 10:01:06
amount0.001 STEEM
fromexecutive-board
memo❗ Hello tooorkish67, great that you are using the STEEM blockchain. The Executive Board is publishing insider infos at https://discord.gg/KyBbmhh on how you will be earning the most coins. It's easy, just follow the instructions. THE 1000X BOOSTER KEY is already waiting for you over there too. 😉 Warm regards, The Executive Board.
totooorkish67
Transaction InfoBlock #61638979/Trx 83b8c8a7cc26d131120f063a98369b7eceae23c2
View Raw JSON Data
{
  "block": 61638979,
  "op": [
    "transfer",
    {
      "amount": "0.001 STEEM",
      "from": "executive-board",
      "memo": "❗ Hello tooorkish67, great that you are using the STEEM blockchain. The Executive Board is publishing insider infos at https://discord.gg/KyBbmhh on how you will be earning the most coins. It's easy, just follow the instructions. THE 1000X BOOSTER KEY is already waiting for you over there too. 😉 Warm regards, The Executive Board.",
      "to": "tooorkish67"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T10:01:06",
  "trx_id": "83b8c8a7cc26d131120f063a98369b7eceae23c2",
  "trx_in_block": 0,
  "virtual_op": 0
}
2022/02/15 09:58:51
authortooorkish67
bodyJiaming Luo grew up in mainland China thinking about neglected languages. When he was younger, he wondered why the different languages his mother and father spoke were often lumped together as Chinese “dialects.” When he became a computer science doctoral student at MIT in 2015, his interest collided with his advisor’s long-standing fascination with ancient scripts. After all, what could be more neglected — or, to use Luo’s more academic term, “lower resourced” — than a long-lost language, left to us as enigmatic symbols on scattered fragments? “I think of these languages as mysteries,” Luo told Rest of World over Zoom. “That’s definitely what attracts me to them.” In 2019, Luo made headlines when, working with a team of fellow MIT researchers, he brought his machine-learning expertise to the decipherment of ancient scripts. He and his colleagues developed an algorithm informed by patterns in how languages change over time. They fed their algorithm words in a lost language and in a known related language; its job was to align words from the lost language with their counterparts in the known language. Crucially, the same algorithm could be applied to different language pairs. Luo and his colleagues tested their model on two ancient scripts that had already been deciphered: Ugaritic, which is related to Hebrew, and Linear B, which was first discovered among Bronze Age–era ruins on the Greek island of Crete. It took professional and amateur epigraphists — people who study ancient written matter — nearly six decades of mental wrangling to decode Linear B. Officially, 30-year-old British architect Michael Ventris is primarily credited with its decipherment, although the private efforts of classicist Alice Kober lay the groundwork for his breakthrough. Sitting night after night at her dining table in Brooklyn, New York, Kober compiled a makeshift database of Linear B symbols, comprising 180,000 paper slips filed in cigarette boxes, and used those to draw important conclusions about the nature of the script. She died in 1950, two years before Ventris cracked the code. Linear B is now recognized as the earliest form of Greek. uo and his team wanted to see if their machine-learning model could get to the same answer, but faster. The algorithm yielded what was called “remarkable accuracy”: it was able to correctly translate 67.3% of Linear B’s words into their modern-day Greek equivalents. According to Luo, it took between two and three hours to run the algorithm once it had been built, cutting out the days or weeks — or months or years — that it might take to manually test out a theory by translating symbols one by one. The results for Ugaritic showed an improvement on previous attempts at automatic decipherment. The work raised an intriguing proposition. Could machine learning assist researchers in their quests to crack other, as-yet undeciphered scripts — ones that have so far resisted all attempts at translation? What historical secrets might be unlocked as a result? British India, 1872-1873. Alexander Cunningham, an English army engineer turned archeological surveyor, clomped about the ruins of a town in Punjab province that locals called Harappa. On the face of it, there wasn’t much to survey: about two decades earlier, engineers working to link the cities of Lahore and Multan had stumbled across the site and used many of the bricks they found — perfectly preserved, fire kilned — as ballast for nearly 100 miles of railway track, blithely unaware they were remnants of one of the world’s oldest civilizations. ![Jiaming-11-600x800.jpg](https://cdn.steemitimages.com/DQmeBtWDx8qCdxTrFKjWBsRNmZqbSLSdH41ntNwH9xiCLXC/Jiaming-11-600x800.jpg) Jiaming Luo, a Phd student at the Massachusetts Institute of Technology. Tim Dunk for Rest of World Cunningham didn’t know this either — the Indus Valley civilization wouldn’t be formally “discovered” until the 1920s — but he knew the site had some historical value. Burrowing through the ruins, he and his team chanced upon stone implements they surmised were used for scraping wood or leather. They gathered shards of ancient pottery and what appeared to be a clay ladle. The most striking discovery, though, was a tiny stone tablet, roughly 1.5 inch by 1.5 inch. “On it is engraved very deeply a bull, without a hump, looking to the right, with two stars under the neck,” Cunningham wrote in his report. “Above the bull there is an inscription in six characters, which are quite unknown to me. They are certainly not Indian letters; and as the bull which accompanies them is without a hump, I conclude that the seal is foreign to India.” I have a cheap replica of that first seal, bought years ago from a museum gift shop at one of the Indus Valley sites: the animal on it has a thick neck, a lumpen torso, and a single swooping horn. Some people insist it is a unicorn. The inscription scrawled above it resembles a string of hieroglyphics; one character looks like a fish. In the century and a half since the discovery of the first seal, thousands more have been unearthed: 90% of them along the Indus River in modern-day Pakistan, the remaining in India or as far afield as modern-day Iraq. We know now that these tablets, described by one excavator as “little masterpieces of controlled realism,” are indigenous to the Indian subcontinent; researchers believe they were probably used to close documents and mark packages of goods, which is why they are referred to as seals. In part because of how the symbols in the inscriptions jostle each other at one end, almost as if the inscriber had run out of space, researchers have concluded that the inscriptions are meant to be read right to left. But we still don’t know what they actually say. ![Stone1-400x279.png](https://cdn.steemitimages.com/DQmZVQkbj9gYhUJbnrfJS5F7JhkEE5ZrTa4VKYv1CETuyqY/Stone1-400x279.png) A stone stamp-seal found at Harappa in the Indus Valley, mondern-day Pakistan’s Punjab and Sindh provinces. The Trustees of the British Museum This isn’t from a lack of trying. Scholars often point out that the Indus script, as the collection of some 4,000 excavated inscriptions, comprising between 400 and roughly 700 unique symbols, is known, might be one of the most deciphered scripts in history. More than a hundred attempts have been published since the 1920s. One theory links it to the Rongorongo script of Easter Island, also still undeciphered; another, offered by a German tantric guru claiming to have achieved his solution through meditation, links it to the cuneiform script used to write the Sumerian language. For some groups in South Asia, the quest to decode the Indus script is almost existential. India and Pakistan, increasingly riven by their respective strains of religious nationalism, have markedly different relationships to their shared ancient past. The Pakistani state, deeply wedded to the idea of itself as a Muslim homeland, largely ignores its pre-Islamic heritage; its Indian counterpart, on the other hand, has taken to scouring history to find justification for the claim that India has always been a Hindu nation. Up until the discovery of Harappa, the earliest Indians were believed to be people who lived between 1500 and 500 B.C. and composed the Vedas, the Sanskrit texts that form the basis of modern-day Hinduism. The discovery of a civilization of people who lived before the Vedic people upended the story of India. Given that it undermines their claims of indigeneity, proponents of Hindutva — the most mainstream strain of Hindu nationalism — balk at the theory of a pre-Vedic civilization, even as evidence for it accumulates across disciplines, including archaeology, genetics, and linguistics. The smallest of advances in Indus Valley research, therefore, tends to reverberate far beyond the confines of academics. Attempts to prove that the Indus people worshipped Hindu gods and spoke an earlier form of Sanskrit continue unabated. In 2000, one researcher even digitally distorted an image of an Indus seal to make the animal on it look like a horse, which figures prominently in Sanskrit literature. Politics aside, it is remarkable how little we know about the original people of the Indus Valley, who at one point constituted nearly 10% of the world’s inhabitants. It is especially galling given how much more we know about their contemporaries, such as the people of the Egyptian and Mesopotamian civilizations. Part of the reason for this is the continued elusiveness of the Indus script. Putting machines to work on the Indus script is trickier than using them to reverse-engineer Linear B. We don’t have a great deal of information about the Indus script: most crucially, we don’t know what other language it may be related to. As a result, a model like Luo’s wouldn’t work for the Indus script. That’s not to say technology can’t help, though. In some ways, computer modeling has already played a crucial role: by showing that the Indus script is a language at all. For most of the 20th century, the Indus inscriptions were widely accepted as representations of an undeciphered language. Then, in 2004, a group of Harvard researchers — cultural neurobiologist and comparative historian Steve Farmer, computational theorist Richard Sproat, and philologist Michael Witzel — published a paper essentially rubbishing nearly all existing research on the matter. The Indus seals, they claimed, were nothing more than a collection of religious or political symbols — similar to, say, highway signs — and all attempts to decipher them as a language were a waste of time. To underscore their point, Farmer offered a $10,000 reward to anyone who could find an Indus inscription containing at least 50 symbols. Most Indologists and other Indus script researchers dismissed these arguments. One group of mathematicians, however, turned to computers to investigate the claims. Ronojoy Adhikari, a professor of statistical physics at the University of Cambridge, was one of them. Before Cambridge, Adhikari worked at the Institute of Mathematical Sciences, in Chennai. In 2009, he attended a talk by Iravatham Mahadevan, an Indian civil servant turned epigraphist. Mahadevan, who died in 2018, had already cracked Tamil-Brahmi, another undeciphered script, then turned his attention to the Indus script. ![Ronojoy-12-600x810.jpg](https://cdn.steemitimages.com/DQmR1tckktDjdfrm6PDKhmckjfcaRU4TheT9gHYp6dW49rx/Ronojoy-12-600x810.jpg) Ronojoy Adhikari, a professor of statistical physics at the University of Cambridge. Tim Dunk for Rest of World Adhikari remembers being fascinated. “I’m a person from the sciences; I don’t have a humanities background,” he said. “But what I found very attractive in Mahadevan’s way of looking at the problem was that he had a very quantitative, almost scientific, approach. He was asking, how many times does a particular symbol occur? What does it occur against? What is the context in which it is occurring? And it appeared to me that because it had already been so quantified, it would be easy to translate this into a formal mathematical analysis.” A few other data scientists in attendance joined forces with Adhikari. They knew they couldn’t decipher the script. “So the question we asked was: Can we at least tell whether it’s conveying any sort of linguistic information?” Led by computer scientist Rajesh Rao, the researchers devised a computer program to see if they could answer this question: Was the Indus script a language? “You can give me any sequence of symbols, I don’t care what they are — hieroglyphics, written language, sheet music, computer code — and I will look at them from the point of view of a mathematician,” explained Adhikari. “Meaning, I will simply count how many times one sign occurs next to another.” “So the question we asked was: can we at least tell whether it’s conveying any sort of linguistic information?” Their program drew on the work of Claude E. Shannon, a mid-century American mathematician, engineer, and decoder of wartime codes, who formulated the notion of information entropy — essentially a mathematical measure of disorder. In linguistic systems, symbols occur with somewhat fixed frequencies. “For instance, I just can’t pick up a letter from the alphabet, string it with another letter from the alphabet, and expect to get an English word,” explained Adhikari. In common English, for instance, the letter “q” is nearly always followed by “u.” This semiflexibility is a marker of all linguistic systems. Computer code, on the other hand, is completely rigid: the slightest deviation, and it falls apart. ![Stone3-400x189.png](https://cdn.steemitimages.com/DQmUKHEGF1vzcdfbsKpjpo38gEEcDJGcovp46CYmXUWUivP/Stone3-400x189.png) The researchers fed their program the 4,000 inscriptions that form the entirety of the Indus script. For good measure, they also ran the program on other linguistic samples (English characters and words, Sanskrit, Tamil, Sumer, and Tagalog) and some nonlinguistic scripts (DNA, protein, Beethoven’s Sonata no. 32, and a computer code called Fortran). The program took about 45 minutes. “I remember the first time that plot was generated,” recalled Adhikari. On the graph, the curves depicting music, protein, and DNA sequences hovered high, close to the maximum level of entropy, indicating a high level of randomness. Lower down, the known languages are all in a tight cluster. Fortran appears further below. As for the Indus script, it appears with the other languages, just under Sanskrit and mapping almost cleanly onto Tamil. “It felt fantastic. It really felt very good. It’s nice to have a hunch, but to be able to prove it — I remember thinking, Yes, we’ve really got something here.” ![Adsız.png](https://cdn.steemitimages.com/DQmdm9ybwEjQbQwvv82KdntxxUGKZ497fXkmZPazE59C2oA/Ads%C4%B1z.png) There is a big difference, of course, between showing that a script encodes a language and decoding what it says. Bahata Ansumali Mukhopadhyay met Adhikari over a decade ago. At the time, she was a disenchanted software developer looking for an escape route. When Adhikari, who had begun exploring deep learning approaches to work on the script, was in the market for an assistant, she eagerly volunteered. Deep learning is the dominant technique in artificial intelligence today. It is primarily a form of pattern recognition: the more data you feed a machine, the better it becomes at interpreting future data. But the large-dataset approach isn’t particularly useful when it comes to low-resource (to use Luo’s term) subjects, such as the Indus script, where data is limited. Mukhopadhyay was quick to realize this. “I was supposed to be coding,” she said sheepishly. “But, I spent most of my time reading.” Mukhopadhyay went down one rabbit hole after another. She parsed Mesopotomian, Akkadian, Sumerian, and Old Persian dictionaries. She taught herself how to read Egyptian hieroglyphics. “I realized just how subtle symbolism can be,” she said. “Like the god Horus, his eye was torn into fragments. Each part is imagined as a fraction — and then from there, the ancient Egyptians created their symbols for fractions.” “Here you have to understand the historical symbolism used in India. How will artificial intelligence tackle that?” Even as she helped build software to aid research on the Indus script, her doubts about the approach were building. “See, if the Indus script were an alpha syllabary [a writing system split into units of consonants and vowels, as in Urdu/Hindi], then machine learning and artificial intelligence would have been very suitable,” she explained. But because the inscriptions appear to be pictorial in nature, they posed a greater challenge. “Here you have to understand the historical symbolism used in India. How will artificial intelligence tackle that? How would AI know these symbols represent the fragments of Horus’ eye?” For the past few years, Mukhopadhyay has been independently researching the Indus inscriptions, focusing on individual symbols. This involves coming up with a particular theory and then testing it — something computers aren’t very good at. ![Bahata-14.jpg](https://cdn.steemitimages.com/DQmauuQtUKYwyfroMD9Z3deY5YGHhCgXt61JwianoCpcaid/Bahata-14.jpg) Bahata Ansumali Mukhopadhyay, a researcher of Indus script. Tim Dunk for Rest of World Mukhopadhyay’s theory, for which she made a case in a peer-reviewed paper in Nature, is that the Indus seals were used for taxation and trade control — a collector might carry one around, for instance, as a sort of license. In a subsequent paper, by examining words used for “elephant” — piri, piru, pilu —and “ivory” — pirus — in near Eastern languages at the time of the Indus civilization, she has argued that the Indus people spoke an earlier form of Dravidian, the linguistic ancestor of current languages like Telugu, Tamil, and Kannada. If researchers can successfully identify a contemporary linguistic relation to the Indus script, it could hold the key to deciphering it. As Mukhopadhyay explains her work, her earrings jiggle. They are artsy depictions of elephant heads. “Pilu,” she said, smiling. Current iterations of AI aren’t designed to deploy the sort of approach adopted by Mukhopadhyay. Adhikari, who is now also less bullish about the prospect of machine decipherment, is skeptical it ever will be. “I think there are many aspects of cognition we cannot encode in a convenient framework,” he said. “I wouldn’t hazard a guess, but I don’t see it happening in my lifetime. I think we need to understand our brains much better.” Moreover, he added, not all information is quantifiable in a way that computers can understand. “A machine understands one, two, three very well. Two plus two equals four, yes. But …” His gaze drifted beyond his computer screen. “But that this sunset here looks like a beautiful flame — well, it is this sort of abstraction that holds the key to this script.” Regardless of the approach used, AI is dependent on high-quality data being available in a machine-readable format. This remains a key challenge when it comes to ancient texts, given that they often come to us chipped, eroded, or incomplete in some other form. Scholars can spend decades debating the uniqueness of symbols: Is that a scratch next to a known character, for instance, or a new character altogether? Given how little there is to work with when it comes to long-lost languages, noisy or incomplete data can seriously curtail decipherment efforts. For the past two decades, Vancouver-based Bryan K. Wells and Berlin-based Andreas Fuls have been quietly digitizing all known Indus seals and symbols. They append contextual information — such as where they were excavated, when, and alongside what artifacts — and add new ones as they are excavated. The Interactive Corpus of Indus Texts (ICIT) currently contains information about 4,537 inscribed artifacts, 5,509 texts, and 19,616 sign occurrences, featuring a total of 707 unique Indus symbols — a much higher number than the 417 previously identified. ![Stone2-400x283.png](https://cdn.steemitimages.com/DQmPcP81n3jBGzDqwZ5g2RjvLVAZe5bpbdtQMwp9nf2Meb8/Stone2-400x283.png) A stamp-seal made of glazed white steatite with a bull standing over a manger, found in Babylon, Iraq. The Trustees of the British Museum The earlier corpora were compiled by hand. As a result, Wells argues, they were so limited that they risked undermining script research. “You know the old computer saying,” he said recently over Skype, “Garbage in, garbage out.” Nearly 50 researchers around the world currently use the database. For now, the mysteries of the Indus script continue to elude decipherment. Last year, in a follow-up paper to their work automating the decoding of Ugaritic and Linear B, Luo and his team made a small but crucial advance: an algorithm aimed at identifying possible related languages of undeciphered writing systems. Potentially, this could help address the problem of deciphering scripts that don’t yet have a known language they can be compared against. When Luo and his team tested their model on the Iberian language, which has historically been linked to Basque, their findings suggested the two languages were not in fact close enough to be related — a conclusion that corroborated recent scholarship on the matter. But while Iberian, said Luo, has at least 80 unique symbols, the Indus script has at least 400, making it exponentially more challenging. Still, theoretically speaking, modern machines can handle this level of computation. Could it be possible simply to “brute force” a problem like the Indus script — to analyze it against all contemporary South Asian languages and see which emerges as its closest linguistic relation? “That’s a good thought,” Luo said, after pausing to think. “If I had time, I would definitely try that.” Luo is quick to point out that he doesn’t expect any decipherment of lost languages to be fully automated. “My thinking is: Let the system propose a list of candidates and let the experts see, Okay, maybe this theory is more correct than the other,” he said. “It definitely reduces the effort and the number of hours that experts have to expend.” Not everyone is willing to entertain help from machines. Before settling on Iberian, Luo and his colleagues had considered tackling Etruscan, an undeciphered script from pre-Roman Italy. “One of our co-authors emailed a bunch of professors working in this field,” recalled Luo, chuckling. One of them wrote back, shooing them away. “He replied in quite angry tones, ‘machines can never compete with humans.’” THE END
json metadata{"tags":["alphabet","lanquage","india","art"],"image":["https://cdn.steemitimages.com/DQmeBtWDx8qCdxTrFKjWBsRNmZqbSLSdH41ntNwH9xiCLXC/Jiaming-11-600x800.jpg","https://cdn.steemitimages.com/DQmZVQkbj9gYhUJbnrfJS5F7JhkEE5ZrTa4VKYv1CETuyqY/Stone1-400x279.png","https://cdn.steemitimages.com/DQmR1tckktDjdfrm6PDKhmckjfcaRU4TheT9gHYp6dW49rx/Ronojoy-12-600x810.jpg","https://cdn.steemitimages.com/DQmUKHEGF1vzcdfbsKpjpo38gEEcDJGcovp46CYmXUWUivP/Stone3-400x189.png","https://cdn.steemitimages.com/DQmdm9ybwEjQbQwvv82KdntxxUGKZ497fXkmZPazE59C2oA/Ads%C4%B1z.png","https://cdn.steemitimages.com/DQmauuQtUKYwyfroMD9Z3deY5YGHhCgXt61JwianoCpcaid/Bahata-14.jpg","https://cdn.steemitimages.com/DQmPcP81n3jBGzDqwZ5g2RjvLVAZe5bpbdtQMwp9nf2Meb8/Stone2-400x283.png"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkalphabet
permlinkan-ancient-language-has-defied-translation-for-100-years-can-ai-crack-the-code
titleAn ancient language has defied translation for 100 years. Can AI crack the code?
Transaction InfoBlock #61638934/Trx 451d59a4a586bf9abf00426039d29b2e681b33a3
View Raw JSON Data
{
  "block": 61638934,
  "op": [
    "comment",
    {
      "author": "tooorkish67",
      "body": "Jiaming Luo grew up in mainland China thinking about neglected languages. When he was younger, he wondered why the different languages his mother and father spoke were often lumped together as Chinese “dialects.”\n\nWhen he became a computer science doctoral student at MIT in 2015, his interest collided with his advisor’s long-standing fascination with ancient scripts. After all, what could be more neglected — or, to use Luo’s more academic term, “lower resourced” — than a long-lost language, left to us as enigmatic symbols on scattered fragments? “I think of these languages as mysteries,” Luo told Rest of World over Zoom. “That’s definitely what attracts me to them.”\n\nIn 2019, Luo made headlines when, working with a team of fellow MIT researchers, he brought his machine-learning expertise to the decipherment of ancient scripts. He and his colleagues developed an algorithm informed by patterns in how languages change over time. They fed their algorithm words in a lost language and in a known related language; its job was to align words from the lost language with their counterparts in the known language. Crucially, the same algorithm could be applied to different language pairs.\n\nLuo and his colleagues tested their model on two ancient scripts that had already been deciphered: Ugaritic, which is related to Hebrew, and Linear B, which was first discovered among Bronze Age–era ruins on the Greek island of Crete. It took professional and amateur epigraphists — people who study ancient written matter — nearly six decades of mental wrangling to decode Linear B. Officially, 30-year-old British architect Michael Ventris is primarily credited with its decipherment, although the private efforts of classicist Alice Kober lay the groundwork for his breakthrough. Sitting night after night at her dining table in Brooklyn, New York, Kober compiled a makeshift database of Linear B symbols, comprising 180,000 paper slips filed in cigarette boxes, and used those to draw important conclusions about the nature of the script. She died in 1950, two years before Ventris cracked the code. Linear B is now recognized as the earliest form of Greek.  \n\nuo and his team wanted to see if their machine-learning model could get to the same answer, but faster. The algorithm yielded what was called “remarkable accuracy”: it was able to correctly translate 67.3% of Linear B’s words into their modern-day Greek equivalents. According to Luo, it took between two and three hours to run the algorithm once it had been built, cutting out the days or weeks — or months or years — that it might take to manually test out a theory by translating symbols one by one. The results for Ugaritic showed an improvement on previous attempts at automatic decipherment.\n\nThe work raised an intriguing proposition. Could machine learning assist researchers in their quests to crack other, as-yet undeciphered scripts — ones that have so far resisted all attempts at translation? What historical secrets might be unlocked as a result? \n\n\nBritish India, 1872-1873. Alexander Cunningham, an English army engineer turned archeological surveyor, clomped about the ruins of a town in Punjab province that locals called Harappa. On the face of it, there wasn’t much to survey: about two decades earlier, engineers working to link the cities of Lahore and Multan had stumbled across the site and used many of the bricks they found — perfectly preserved, fire kilned — as ballast for nearly 100 miles of railway track, blithely unaware they were remnants of one of the world’s oldest civilizations.\n\n\n![Jiaming-11-600x800.jpg](https://cdn.steemitimages.com/DQmeBtWDx8qCdxTrFKjWBsRNmZqbSLSdH41ntNwH9xiCLXC/Jiaming-11-600x800.jpg)\n\nJiaming Luo, a Phd student at the Massachusetts Institute of Technology. Tim Dunk for Rest of World\n\nCunningham didn’t know this either — the Indus Valley civilization wouldn’t be formally “discovered” until the 1920s — but he knew the site had some historical value. Burrowing through the ruins, he and his team chanced upon stone implements they surmised were used for scraping wood or leather. They gathered shards of ancient pottery and what appeared to be a clay ladle. The most striking discovery, though, was a tiny stone tablet, roughly 1.5 inch by 1.5 inch. “On it is engraved very deeply a bull, without a hump, looking to the right, with two stars under the neck,” Cunningham wrote in his report. “Above the bull there is an inscription in six characters, which are quite unknown to me. They are certainly not Indian letters; and as the bull which accompanies them is without a hump, I conclude that the seal is foreign to India.”\n\nI have a cheap replica of that first seal, bought years ago from a museum gift shop at one of the Indus Valley sites: the animal on it has a thick neck, a lumpen torso, and a single swooping horn. Some people insist it is a unicorn. The inscription scrawled above it resembles a string of hieroglyphics; one character looks like a fish. In the century and a half since the discovery of the first seal, thousands more have been unearthed: 90% of them along the Indus River in modern-day Pakistan, the remaining in India or as far afield as modern-day Iraq.\n\nWe know now that these tablets, described by one excavator as “little masterpieces of controlled realism,” are indigenous to the Indian subcontinent; researchers believe they were probably used to close documents and mark packages of goods, which is why they are referred to as seals. In part because of how the symbols in the inscriptions jostle each other at one end, almost as if the inscriber had run out of space, researchers have concluded that the inscriptions are meant to be read right to left. But we still don’t know what they actually say.\n\n\n![Stone1-400x279.png](https://cdn.steemitimages.com/DQmZVQkbj9gYhUJbnrfJS5F7JhkEE5ZrTa4VKYv1CETuyqY/Stone1-400x279.png)\n\nA stone stamp-seal found at Harappa in the Indus Valley, mondern-day Pakistan’s Punjab and Sindh provinces. The Trustees of the British Museum\n\nThis isn’t from a lack of trying. Scholars often point out that the Indus script, as the collection of some 4,000 excavated inscriptions, comprising between 400 and roughly 700 unique symbols, is known, might be one of the most deciphered scripts in history. More than a hundred attempts have been published since the 1920s. One theory links it to the Rongorongo script of Easter Island, also still undeciphered; another, offered by a German tantric guru claiming to have achieved his solution through meditation, links it to the cuneiform script used to write the Sumerian language.\n\nFor some groups in South Asia, the quest to decode the Indus script is almost existential. India and Pakistan, increasingly riven by their respective strains of religious nationalism, have markedly different relationships to their shared ancient past. The Pakistani state, deeply wedded to the idea of itself as a Muslim homeland, largely ignores its pre-Islamic heritage; its Indian counterpart, on the other hand, has taken to scouring history to find justification for the claim that India has always been a Hindu nation.\n\nUp until the discovery of Harappa, the earliest Indians were believed to be people who lived between 1500 and 500 B.C. and composed the Vedas, the Sanskrit texts that form the basis of modern-day Hinduism. The discovery of a civilization of people who lived before the Vedic people upended the story of India. Given that it undermines their claims of indigeneity, proponents of Hindutva — the most mainstream strain of Hindu nationalism — balk at the theory of a pre-Vedic civilization, even as evidence for it accumulates across disciplines, including archaeology, genetics, and linguistics.\n\nThe smallest of advances in Indus Valley research, therefore, tends to reverberate far beyond the confines of academics. Attempts to prove that the Indus people worshipped Hindu gods and spoke an earlier form of Sanskrit continue unabated. In 2000, one researcher even digitally distorted an image of an Indus seal to make the animal on it look like a horse, which figures prominently in Sanskrit literature.\n\nPolitics aside, it is remarkable how little we know about the original people of the Indus Valley, who at one point constituted nearly 10% of the world’s inhabitants. It is especially galling given how much more we know about their contemporaries, such as the people of the Egyptian and Mesopotamian civilizations. Part of the reason for this is the continued elusiveness of the Indus script.\n\n\nPutting machines to work on the Indus script is trickier than using them to reverse-engineer Linear B. We don’t have a great deal of information about the Indus script: most crucially, we don’t know what other language it may be related to. As a result, a model like Luo’s wouldn’t work for the Indus script. That’s not to say technology can’t help, though. In some ways, computer modeling has already played a crucial role: by showing that the Indus script is a language at all. \n\nFor most of the 20th century, the Indus inscriptions were widely accepted as representations of an undeciphered language. Then, in 2004, a group of Harvard researchers — cultural neurobiologist and comparative historian Steve Farmer, computational theorist Richard Sproat, and philologist Michael Witzel — published a paper essentially rubbishing nearly all existing research on the matter. The Indus seals, they claimed, were nothing more than a collection of religious or political symbols — similar to, say, highway signs — and all attempts to decipher them as a language were a waste of time. To underscore their point, Farmer offered a $10,000 reward to anyone who could find an Indus inscription containing at least 50 symbols. \n\nMost Indologists and other Indus script researchers dismissed these arguments. One group of mathematicians, however, turned to computers to investigate the claims. Ronojoy Adhikari, a professor of statistical physics at the University of Cambridge, was one of them. \n\nBefore Cambridge, Adhikari worked at the Institute of Mathematical Sciences, in Chennai. In 2009, he attended a talk by Iravatham Mahadevan, an Indian civil servant turned epigraphist. Mahadevan, who died in 2018, had already cracked Tamil-Brahmi, another undeciphered script, then turned his attention to the Indus script.\n\n![Ronojoy-12-600x810.jpg](https://cdn.steemitimages.com/DQmR1tckktDjdfrm6PDKhmckjfcaRU4TheT9gHYp6dW49rx/Ronojoy-12-600x810.jpg)\n\nRonojoy Adhikari, a professor of statistical physics at the University of Cambridge. Tim Dunk for Rest of World\n\nAdhikari remembers being fascinated. “I’m a person from the sciences; I don’t have a humanities background,” he said. “But what I found very attractive in Mahadevan’s way of looking at the problem was that he had a very quantitative, almost scientific, approach. He was asking, how many times does a particular symbol occur? What does it occur against? What is the context in which it is occurring? And it appeared to me that because it had already been so quantified, it would be easy to translate this into a formal mathematical analysis.”\n\nA few other data scientists in attendance joined forces with Adhikari. They knew they couldn’t decipher the script. “So the question we asked was: Can we at least tell whether it’s conveying any sort of linguistic information?”\n\nLed by computer scientist Rajesh Rao, the researchers devised a computer program to see if they could answer this question: Was the Indus script a language? “You can give me any sequence of symbols, I don’t care what they are — hieroglyphics, written language, sheet music, computer code — and I will look at them from the point of view of a mathematician,” explained Adhikari. “Meaning, I will simply count how many times one sign occurs next to another.”\n\n\n“So the question we asked was: can we at least tell whether it’s conveying any sort of linguistic information?”\n\nTheir program drew on the work of Claude E. Shannon, a mid-century American mathematician, engineer, and decoder of wartime codes, who formulated the notion of information entropy — essentially a mathematical measure of disorder. In linguistic systems, symbols occur with somewhat fixed frequencies. “For instance, I just can’t pick up a letter from the alphabet, string it with another letter from the alphabet, and expect to get an English word,” explained Adhikari. In common English, for instance, the letter “q” is nearly always followed by “u.” This semiflexibility is a marker of all linguistic systems. Computer code, on the other hand, is completely rigid: the slightest deviation, and it falls apart.\n\n\n![Stone3-400x189.png](https://cdn.steemitimages.com/DQmUKHEGF1vzcdfbsKpjpo38gEEcDJGcovp46CYmXUWUivP/Stone3-400x189.png)\n\nThe researchers fed their program the 4,000 inscriptions that form the entirety of the Indus script. For good measure, they also ran the program on other linguistic samples (English characters and words, Sanskrit, Tamil, Sumer, and Tagalog) and some nonlinguistic scripts (DNA, protein, Beethoven’s Sonata no. 32, and a computer code called Fortran). The program took about 45 minutes.\n\n“I remember the first time that plot was generated,” recalled Adhikari. On the graph, the curves depicting music, protein, and DNA sequences hovered high, close to the maximum level of entropy, indicating a high level of randomness. Lower down, the known languages are all in a tight cluster. Fortran appears further below.\n\nAs for the Indus script, it appears with the other languages, just under Sanskrit and mapping almost cleanly onto Tamil. “It felt fantastic. It really felt very good. It’s nice to have a hunch, but to be able to prove it — I remember thinking, Yes, we’ve really got something here.”  \n\n\n![Adsız.png](https://cdn.steemitimages.com/DQmdm9ybwEjQbQwvv82KdntxxUGKZ497fXkmZPazE59C2oA/Ads%C4%B1z.png)\n\nThere is a big difference, of course, between showing that a script encodes a language and decoding what it says.\n\nBahata Ansumali Mukhopadhyay met Adhikari over a decade ago. At the time, she was a disenchanted software developer looking for an escape route. When Adhikari, who had begun exploring deep learning approaches to work on the script, was in the market for an assistant, she eagerly volunteered.\n\nDeep learning is the dominant technique in artificial intelligence today. It is primarily a form of pattern recognition: the more data you feed a machine, the better it becomes at interpreting future data. But the large-dataset approach isn’t particularly useful when it comes to low-resource (to use Luo’s term) subjects, such as the Indus script, where data is limited. Mukhopadhyay was quick to realize this. \n\n“I was supposed to be coding,” she said sheepishly. “But, I spent most of my time reading.”\n\nMukhopadhyay went down one rabbit hole after another. She parsed Mesopotomian, Akkadian, Sumerian, and Old Persian dictionaries. She taught herself how to read Egyptian hieroglyphics. “I realized just how subtle symbolism can be,” she said. “Like the god Horus, his eye was torn into fragments. Each part is imagined as a fraction — and then from there, the ancient Egyptians created their symbols for fractions.”\n\n“Here you have to understand the historical symbolism used in India. How will artificial intelligence tackle that?”\n\nEven as she helped build software to aid research on the Indus script, her doubts about the approach were building. “See, if the Indus script were an alpha syllabary [a writing system split into units of consonants and vowels, as in Urdu/Hindi], then machine learning and artificial intelligence would have been very suitable,” she explained. But because the inscriptions appear to be pictorial in nature, they posed a greater challenge. “Here you have to understand the historical symbolism used in India. How will artificial intelligence tackle that? How would AI know these symbols represent the fragments of Horus’ eye?”\n\nFor the past few years, Mukhopadhyay has been independently researching the Indus inscriptions, focusing on individual symbols. This involves coming up with a particular theory and then testing it — something computers aren’t very good at.\n\n![Bahata-14.jpg](https://cdn.steemitimages.com/DQmauuQtUKYwyfroMD9Z3deY5YGHhCgXt61JwianoCpcaid/Bahata-14.jpg)\n\nBahata Ansumali Mukhopadhyay, a researcher of Indus script. Tim Dunk for Rest of World\n\nMukhopadhyay’s theory, for which she made a case in a peer-reviewed paper in Nature, is that the Indus seals were used for taxation and trade control — a collector might carry one around, for instance, as a sort of license. In a subsequent paper, by examining words used for “elephant” — piri, piru, pilu —and “ivory” — pirus — in near Eastern languages at the time of the Indus civilization, she has argued that the Indus people spoke an earlier form of Dravidian, the linguistic ancestor of current languages like Telugu, Tamil, and Kannada. If researchers can successfully identify a contemporary linguistic relation to the Indus script, it could hold the key to deciphering it. As Mukhopadhyay explains her work, her earrings jiggle. They are artsy depictions of elephant heads. “Pilu,” she said, smiling.\n\nCurrent iterations of AI aren’t designed to deploy the sort of approach adopted by Mukhopadhyay. Adhikari, who is now also less bullish about the prospect of machine decipherment, is skeptical it ever will be. “I think there are many aspects of cognition we cannot encode in a convenient framework,” he said. “I wouldn’t hazard a guess, but I don’t see it happening in my lifetime. I think we need to understand our brains much better.” Moreover, he added, not all information is quantifiable in a way that computers can understand. “A machine understands one, two, three very well. Two plus two equals four, yes. But …” His gaze drifted beyond his computer screen. “But that this sunset here looks like a beautiful flame — well, it is this sort of abstraction that holds the key to this script.”\n\nRegardless of the approach used, AI is dependent on high-quality data being available in a machine-readable format. This remains a key challenge when it comes to ancient texts, given that they often come to us chipped, eroded, or incomplete in some other form. Scholars can spend decades debating the uniqueness of symbols: Is that a scratch next to a known character, for instance, or a new character altogether? Given how little there is to work with when it comes to long-lost languages, noisy or incomplete data can seriously curtail decipherment efforts.\n\nFor the past two decades, Vancouver-based Bryan K. Wells and Berlin-based Andreas Fuls have been quietly digitizing all known Indus seals and symbols. They append contextual information — such as where they were excavated, when, and alongside what artifacts — and add new ones as they are excavated. The Interactive Corpus of Indus Texts (ICIT) currently contains information about 4,537 inscribed artifacts, 5,509 texts, and 19,616 sign occurrences, featuring a total of 707 unique Indus symbols — a much higher number than the 417 previously identified.\n\n\n![Stone2-400x283.png](https://cdn.steemitimages.com/DQmPcP81n3jBGzDqwZ5g2RjvLVAZe5bpbdtQMwp9nf2Meb8/Stone2-400x283.png)\n\nA stamp-seal made of glazed white steatite with a bull standing over a manger, found in Babylon, Iraq. The Trustees of the British Museum\n\nThe earlier corpora were compiled by hand. As a result, Wells argues, they were so limited that they risked undermining script research. “You know the old computer saying,” he said recently over Skype, “Garbage in, garbage out.” Nearly 50 researchers around the world currently use the database.\n\nFor now, the mysteries of the Indus script continue to elude decipherment. Last year, in a follow-up paper to their work automating the decoding of Ugaritic and Linear B, Luo and his team made a small but crucial advance: an algorithm aimed at identifying possible related languages of undeciphered writing systems. Potentially, this could help address the problem of deciphering scripts that don’t yet have a known language they can be compared against. When Luo and his team tested their model on the Iberian language, which has historically been linked to Basque, their findings suggested the two languages were not in fact close enough to be related — a conclusion that corroborated recent scholarship on the matter. \n\nBut while Iberian, said Luo, has at least 80 unique symbols, the Indus script has at least 400, making it exponentially more challenging. Still, theoretically speaking, modern machines can handle this level of computation. Could it be possible simply to “brute force” a problem like the Indus script — to analyze it against all contemporary South Asian languages and see which emerges as its closest linguistic relation? “That’s a good thought,” Luo said, after pausing to think. “If I had time, I would definitely try that.”\n\nLuo is quick to point out that he doesn’t expect any decipherment of lost languages to be fully automated. “My thinking is: Let the system propose a list of candidates and let the experts see, Okay, maybe this theory is more correct than the other,” he said. “It definitely reduces the effort and the number of hours that experts have to expend.”\n\nNot everyone is willing to entertain help from machines. Before settling on Iberian, Luo and his colleagues had considered tackling Etruscan, an undeciphered script from pre-Roman Italy. “One of our co-authors emailed a bunch of professors working in this field,” recalled Luo, chuckling. One of them wrote back, shooing them away. “He replied in quite angry tones, ‘machines can never compete with humans.’”\n\n                                                                                                 THE END",
      "json_metadata": "{\"tags\":[\"alphabet\",\"lanquage\",\"india\",\"art\"],\"image\":[\"https://cdn.steemitimages.com/DQmeBtWDx8qCdxTrFKjWBsRNmZqbSLSdH41ntNwH9xiCLXC/Jiaming-11-600x800.jpg\",\"https://cdn.steemitimages.com/DQmZVQkbj9gYhUJbnrfJS5F7JhkEE5ZrTa4VKYv1CETuyqY/Stone1-400x279.png\",\"https://cdn.steemitimages.com/DQmR1tckktDjdfrm6PDKhmckjfcaRU4TheT9gHYp6dW49rx/Ronojoy-12-600x810.jpg\",\"https://cdn.steemitimages.com/DQmUKHEGF1vzcdfbsKpjpo38gEEcDJGcovp46CYmXUWUivP/Stone3-400x189.png\",\"https://cdn.steemitimages.com/DQmdm9ybwEjQbQwvv82KdntxxUGKZ497fXkmZPazE59C2oA/Ads%C4%B1z.png\",\"https://cdn.steemitimages.com/DQmauuQtUKYwyfroMD9Z3deY5YGHhCgXt61JwianoCpcaid/Bahata-14.jpg\",\"https://cdn.steemitimages.com/DQmPcP81n3jBGzDqwZ5g2RjvLVAZe5bpbdtQMwp9nf2Meb8/Stone2-400x283.png\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "alphabet",
      "permlink": "an-ancient-language-has-defied-translation-for-100-years-can-ai-crack-the-code",
      "title": "An ancient language has defied translation for 100 years. Can AI crack the code?"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T09:58:51",
  "trx_id": "451d59a4a586bf9abf00426039d29b2e681b33a3",
  "trx_in_block": 1,
  "virtual_op": 0
}
tooorkish67claimed reward balance: 0.084 SBD, 0.034 SP
2022/02/15 09:35:24
accounttooorkish67
reward sbd0.084 SBD
reward steem0.000 STEEM
reward vests55.152923 VESTS
Transaction InfoBlock #61638469/Trx d0e879d4e246bb7758fbe321d7098db70d6d0098
View Raw JSON Data
{
  "block": 61638469,
  "op": [
    "claim_reward_balance",
    {
      "account": "tooorkish67",
      "reward_sbd": "0.084 SBD",
      "reward_steem": "0.000 STEEM",
      "reward_vests": "55.152923 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-02-15T09:35:24",
  "trx_id": "d0e879d4e246bb7758fbe321d7098db70d6d0098",
  "trx_in_block": 4,
  "virtual_op": 0
}
steemdelegated 5.020 SP to @tooorkish67
2022/01/18 00:16:51
delegateetooorkish67
delegatorsteem
vesting shares8163.082133 VESTS
Transaction InfoBlock #60825324/Trx 8c26bb2d667a0994bb85141e58eed36f3f82581a
View Raw JSON Data
{
  "block": 60825324,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "8163.082133 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-01-18T00:16:51",
  "trx_id": "8c26bb2d667a0994bb85141e58eed36f3f82581a",
  "trx_in_block": 18,
  "virtual_op": 0
}
steemdelegated 5.133 SP to @tooorkish67
2021/06/14 07:24:33
delegateetooorkish67
delegatorsteem
vesting shares8347.276421 VESTS
Transaction InfoBlock #54615579/Trx b7ab06d417527b518774f0842c04bd6329f012df
View Raw JSON Data
{
  "block": 54615579,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "8347.276421 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2021-06-14T07:24:33",
  "trx_id": "b7ab06d417527b518774f0842c04bd6329f012df",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 5.248 SP to @tooorkish67
2020/12/11 17:35:42
delegateetooorkish67
delegatorsteem
vesting shares8534.698395 VESTS
Transaction InfoBlock #49362804/Trx 2e889eca56a6dde4722c4dbbce1682a9290f56b9
View Raw JSON Data
{
  "block": 49362804,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "8534.698395 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-11T17:35:42",
  "trx_id": "2e889eca56a6dde4722c4dbbce1682a9290f56b9",
  "trx_in_block": 5,
  "virtual_op": 0
}
steemdelegated 1.176 SP to @tooorkish67
2020/12/06 11:10:57
delegateetooorkish67
delegatorsteem
vesting shares1912.543513 VESTS
Transaction InfoBlock #49214316/Trx d96d5e9d6c45e97aca43a5ce0da48355ce43a25c
View Raw JSON Data
{
  "block": 49214316,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "1912.543513 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-06T11:10:57",
  "trx_id": "d96d5e9d6c45e97aca43a5ce0da48355ce43a25c",
  "trx_in_block": 7,
  "virtual_op": 0
}
steemdelegated 5.252 SP to @tooorkish67
2020/12/05 21:13:30
delegateetooorkish67
delegatorsteem
vesting shares8540.906249 VESTS
Transaction InfoBlock #49197884/Trx c20b96810a046898009b10be670b91e72979cf59
View Raw JSON Data
{
  "block": 49197884,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "8540.906249 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-05T21:13:30",
  "trx_id": "c20b96810a046898009b10be670b91e72979cf59",
  "trx_in_block": 4,
  "virtual_op": 0
}
steemdelegated 1.181 SP to @tooorkish67
2020/11/03 05:03:06
delegateetooorkish67
delegatorsteem
vesting shares1920.017158 VESTS
Transaction InfoBlock #48273593/Trx 34316991a17ebe623104bee7b515e6376532075a
View Raw JSON Data
{
  "block": 48273593,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "1920.017158 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-11-03T05:03:06",
  "trx_id": "34316991a17ebe623104bee7b515e6376532075a",
  "trx_in_block": 5,
  "virtual_op": 0
}
tpmnurupvoted (100.00%) @tooorkish67 / q8wl6b
2020/08/02 20:26:48
authortooorkish67
permlinkq8wl6b
votertpmnur
weight10000 (100.00%)
Transaction InfoBlock #45649830/Trx e3b8bb6ed537324112f8a648b60f459cc1602bba
View Raw JSON Data
{
  "block": 45649830,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "q8wl6b",
      "voter": "tpmnur",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-08-02T20:26:48",
  "trx_id": "e3b8bb6ed537324112f8a648b60f459cc1602bba",
  "trx_in_block": 0,
  "virtual_op": 0
}
tpmnurupvoted (100.00%) @tooorkish67 / q8wl6b
2020/08/02 20:26:12
authortooorkish67
permlinkq8wl6b
votertpmnur
weight10000 (100.00%)
Transaction InfoBlock #45649818/Trx 4ab0d2efaa3038faff160e563cbc9a33678eda09
View Raw JSON Data
{
  "block": 45649818,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "q8wl6b",
      "voter": "tpmnur",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-08-02T20:26:12",
  "trx_id": "4ab0d2efaa3038faff160e563cbc9a33678eda09",
  "trx_in_block": 5,
  "virtual_op": 0
}
steemdelegated 5.340 SP to @tooorkish67
2020/07/23 18:11:12
delegateetooorkish67
delegatorsteem
vesting shares8684.538993 VESTS
Transaction InfoBlock #45361542/Trx 238c3a99c0afc63392bacdc5537a67aeee8d28ec
View Raw JSON Data
{
  "block": 45361542,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "8684.538993 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-07-23T18:11:12",
  "trx_id": "238c3a99c0afc63392bacdc5537a67aeee8d28ec",
  "trx_in_block": 22,
  "virtual_op": 0
}
crypto.piotrsent 0.002 STEEM to @tooorkish67- "Dear @tooorkish67, I hope you don't mind this little memo. I would like to introduce you to new "LEARN AND EARN" initiative which I came up together with @hardaeborla. Check out my latest post and hop..."
2020/05/14 17:49:48
amount0.002 STEEM
fromcrypto.piotr
memoDear @tooorkish67, I hope you don't mind this little memo. I would like to introduce you to new "LEARN AND EARN" initiative which I came up together with @hardaeborla. Check out my latest post and hopefully you will enjoy our new idea. Obviously I would appreciate every resteem and your feedback. I read all comments. Yours, Piotr // LINK: https://steemit.com/hive-175254/@crypto.piotr/learn-and-earn-our-project-hope-new-awesome-initiative
totooorkish67
Transaction InfoBlock #43371952/Trx a439ee304083996195e3e20b06c218ee440b5408
View Raw JSON Data
{
  "block": 43371952,
  "op": [
    "transfer",
    {
      "amount": "0.002 STEEM",
      "from": "crypto.piotr",
      "memo": "Dear @tooorkish67, I hope you don't mind this little memo. I would like to introduce you to new \"LEARN AND EARN\" initiative which I came up together with @hardaeborla. Check out my latest post and hopefully you will enjoy our new idea. Obviously I would appreciate every resteem and your feedback. I read all comments. Yours, Piotr // LINK: https://steemit.com/hive-175254/@crypto.piotr/learn-and-earn-our-project-hope-new-awesome-initiative",
      "to": "tooorkish67"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-14T17:49:48",
  "trx_id": "a439ee304083996195e3e20b06c218ee440b5408",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 17.701 SP to @tooorkish67
2020/05/09 12:15:09
delegateetooorkish67
delegatorsteem
vesting shares28786.971427 VESTS
Transaction InfoBlock #43224666/Trx ce223c79877812d466f10a85787fc3378786b47e
View Raw JSON Data
{
  "block": 43224666,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "28786.971427 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-09T12:15:09",
  "trx_id": "ce223c79877812d466f10a85787fc3378786b47e",
  "trx_in_block": 16,
  "virtual_op": 0
}
steemdelegated 3.289 SP to @tooorkish67
2020/05/08 16:49:42
delegateetooorkish67
delegatorsteem
vesting shares5348.766101 VESTS
Transaction InfoBlock #43201906/Trx 3e8164f8696efe6f5b7a82da393f8c749614440f
View Raw JSON Data
{
  "block": 43201906,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "tooorkish67",
      "delegator": "steem",
      "vesting_shares": "5348.766101 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-08T16:49:42",
  "trx_id": "3e8164f8696efe6f5b7a82da393f8c749614440f",
  "trx_in_block": 3,
  "virtual_op": 0
}
2020/05/03 05:50:09
authortooorkish67
permlinkdrake-where-s-jesus
votergymbeann
weight10000 (100.00%)
Transaction InfoBlock #43048523/Trx 7fa87a3ae1b15d0e61c3ff71ffeb680746de923e
View Raw JSON Data
{
  "block": 43048523,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "drake-where-s-jesus",
      "voter": "gymbeann",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-03T05:50:09",
  "trx_id": "7fa87a3ae1b15d0e61c3ff71ffeb680746de923e",
  "trx_in_block": 20,
  "virtual_op": 0
}
2020/05/03 05:49:54
authortooorkish67
permlinkdrake-where-s-jesus
votergymbeann
weight10000 (100.00%)
Transaction InfoBlock #43048518/Trx 5a6d6e18e5f26ce9fe50669f6f19371b311bd13a
View Raw JSON Data
{
  "block": 43048518,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "drake-where-s-jesus",
      "voter": "gymbeann",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-03T05:49:54",
  "trx_id": "5a6d6e18e5f26ce9fe50669f6f19371b311bd13a",
  "trx_in_block": 45,
  "virtual_op": 0
}
gymbeannupvoted (100.00%) @tooorkish67 / paul-walker
2020/05/03 05:49:30
authortooorkish67
permlinkpaul-walker
votergymbeann
weight10000 (100.00%)
Transaction InfoBlock #43048510/Trx dc5832b26afe367b107081a02469d73dba49b20c
View Raw JSON Data
{
  "block": 43048510,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "paul-walker",
      "voter": "gymbeann",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-03T05:49:30",
  "trx_id": "dc5832b26afe367b107081a02469d73dba49b20c",
  "trx_in_block": 4,
  "virtual_op": 0
}
tooorkish67published a new post: omg
2020/04/20 23:44:54
authortooorkish67
body![740F1D59-DDDA-40D8-AE92-D3250E265A46.jpeg](https://cdn.steemitimages.com/DQmbSq9uTyd5a2VUPonwvAQP7dSYN2Bgmw79qsLpniphAks/740F1D59-DDDA-40D8-AE92-D3250E265A46.jpeg)
json metadata{"tags":["bitcoin","gold","blockchain","china"],"image":["https://cdn.steemitimages.com/DQmbSq9uTyd5a2VUPonwvAQP7dSYN2Bgmw79qsLpniphAks/740F1D59-DDDA-40D8-AE92-D3250E265A46.jpeg"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkbitcoin
permlinkomg
titleOMG 😱
Transaction InfoBlock #42704761/Trx 0411af2a34a0d7754c70aa363522da6c061b9607
View Raw JSON Data
{
  "block": 42704761,
  "op": [
    "comment",
    {
      "author": "tooorkish67",
      "body": "![740F1D59-DDDA-40D8-AE92-D3250E265A46.jpeg](https://cdn.steemitimages.com/DQmbSq9uTyd5a2VUPonwvAQP7dSYN2Bgmw79qsLpniphAks/740F1D59-DDDA-40D8-AE92-D3250E265A46.jpeg)",
      "json_metadata": "{\"tags\":[\"bitcoin\",\"gold\",\"blockchain\",\"china\"],\"image\":[\"https://cdn.steemitimages.com/DQmbSq9uTyd5a2VUPonwvAQP7dSYN2Bgmw79qsLpniphAks/740F1D59-DDDA-40D8-AE92-D3250E265A46.jpeg\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "bitcoin",
      "permlink": "omg",
      "title": "OMG 😱"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-20T23:44:54",
  "trx_id": "0411af2a34a0d7754c70aa363522da6c061b9607",
  "trx_in_block": 8,
  "virtual_op": 0
}
tooorkish67published a new post: bitcoin-or
2020/04/20 15:32:51
authortooorkish67
body![F052C356-A4DC-49B0-8401-49BC87E80EA1.jpeg](https://cdn.steemitimages.com/DQmaTP2FVT1q4HbVJBCuvKKvCxShMXcYDuHrzTbEEhydRwb/F052C356-A4DC-49B0-8401-49BC87E80EA1.jpeg) ![C2FBCA0D-EDEE-4408-95E5-4B925E600698.jpeg](https://cdn.steemitimages.com/DQmSK2Uy9euV4dh5EYa7Vkhh7LqFnXAND8XQUTUff41GFvH/C2FBCA0D-EDEE-4408-95E5-4B925E600698.jpeg)
json metadata{"tags":["bitcoin","etherium","blockchain","gold"],"image":["https://cdn.steemitimages.com/DQmaTP2FVT1q4HbVJBCuvKKvCxShMXcYDuHrzTbEEhydRwb/F052C356-A4DC-49B0-8401-49BC87E80EA1.jpeg","https://cdn.steemitimages.com/DQmSK2Uy9euV4dh5EYa7Vkhh7LqFnXAND8XQUTUff41GFvH/C2FBCA0D-EDEE-4408-95E5-4B925E600698.jpeg"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkbitcoin
permlinkbitcoin-or
titleBitcoin |
Transaction InfoBlock #42695195/Trx 5efc17dd95f0ef8045870733fb6924c757a9439c
View Raw JSON Data
{
  "block": 42695195,
  "op": [
    "comment",
    {
      "author": "tooorkish67",
      "body": "![F052C356-A4DC-49B0-8401-49BC87E80EA1.jpeg](https://cdn.steemitimages.com/DQmaTP2FVT1q4HbVJBCuvKKvCxShMXcYDuHrzTbEEhydRwb/F052C356-A4DC-49B0-8401-49BC87E80EA1.jpeg)\n\n![C2FBCA0D-EDEE-4408-95E5-4B925E600698.jpeg](https://cdn.steemitimages.com/DQmSK2Uy9euV4dh5EYa7Vkhh7LqFnXAND8XQUTUff41GFvH/C2FBCA0D-EDEE-4408-95E5-4B925E600698.jpeg)",
      "json_metadata": "{\"tags\":[\"bitcoin\",\"etherium\",\"blockchain\",\"gold\"],\"image\":[\"https://cdn.steemitimages.com/DQmaTP2FVT1q4HbVJBCuvKKvCxShMXcYDuHrzTbEEhydRwb/F052C356-A4DC-49B0-8401-49BC87E80EA1.jpeg\",\"https://cdn.steemitimages.com/DQmSK2Uy9euV4dh5EYa7Vkhh7LqFnXAND8XQUTUff41GFvH/C2FBCA0D-EDEE-4408-95E5-4B925E600698.jpeg\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "bitcoin",
      "permlink": "bitcoin-or",
      "title": "Bitcoin |"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-20T15:32:51",
  "trx_id": "5efc17dd95f0ef8045870733fb6924c757a9439c",
  "trx_in_block": 16,
  "virtual_op": 0
}
2020/04/19 00:31:09
authortooorkish67
permlinkdrake-where-s-jesus
voterraise-me-up
weight1 (0.01%)
Transaction InfoBlock #42649720/Trx 9ded45b635c159980dfeb31665c2f7348624e632
View Raw JSON Data
{
  "block": 42649720,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "drake-where-s-jesus",
      "voter": "raise-me-up",
      "weight": 1
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-19T00:31:09",
  "trx_id": "9ded45b635c159980dfeb31665c2f7348624e632",
  "trx_in_block": 5,
  "virtual_op": 0
}
2020/04/19 00:18:18
authorackza
permlinkbuy-and-sell-btc-locally-with-cryptolocally-we-also-have-eos-and-tlos-and-you-can-sell-sand-for-eos-and-tlos-and-or-get-eos-and
votertooorkish67
weight10000 (100.00%)
Transaction InfoBlock #42649471/Trx d532bb738c513b0b22df85061e67b45d468d967a
View Raw JSON Data
{
  "block": 42649471,
  "op": [
    "vote",
    {
      "author": "ackza",
      "permlink": "buy-and-sell-btc-locally-with-cryptolocally-we-also-have-eos-and-tlos-and-you-can-sell-sand-for-eos-and-tlos-and-or-get-eos-and",
      "voter": "tooorkish67",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-19T00:18:18",
  "trx_id": "d532bb738c513b0b22df85061e67b45d468d967a",
  "trx_in_block": 15,
  "virtual_op": 0
}
2020/04/18 23:50:21
authortooorkish67
permlinkdrake-where-s-jesus
voterstatsexpert
weight2000 (20.00%)
Transaction InfoBlock #42648927/Trx 3f4bf37d5d95532aaf80d8f052603211b83a293d
View Raw JSON Data
{
  "block": 42648927,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "drake-where-s-jesus",
      "voter": "statsexpert",
      "weight": 2000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T23:50:21",
  "trx_id": "3f4bf37d5d95532aaf80d8f052603211b83a293d",
  "trx_in_block": 13,
  "virtual_op": 0
}
tooorkish67published a new post: drake-where-s-jesus
2020/04/18 23:49:09
authortooorkish67
body![63B81F6C-BF2B-45A6-A0B5-DF73B8CCB54F.jpeg](https://cdn.steemitimages.com/DQmXQtGQuMASfqggfwEFeo4pGk1HyD6axvYFdQx7nSVXT6i/63B81F6C-BF2B-45A6-A0B5-DF73B8CCB54F.jpeg)
json metadata{"tags":["bitcoin","blockchain","gold"],"image":["https://cdn.steemitimages.com/DQmXQtGQuMASfqggfwEFeo4pGk1HyD6axvYFdQx7nSVXT6i/63B81F6C-BF2B-45A6-A0B5-DF73B8CCB54F.jpeg"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkbitcoin
permlinkdrake-where-s-jesus
titleDrake where’s Jesus
Transaction InfoBlock #42648903/Trx ec531a4030372e4c003d3fd53a352210c57f4cc5
View Raw JSON Data
{
  "block": 42648903,
  "op": [
    "comment",
    {
      "author": "tooorkish67",
      "body": "![63B81F6C-BF2B-45A6-A0B5-DF73B8CCB54F.jpeg](https://cdn.steemitimages.com/DQmXQtGQuMASfqggfwEFeo4pGk1HyD6axvYFdQx7nSVXT6i/63B81F6C-BF2B-45A6-A0B5-DF73B8CCB54F.jpeg)",
      "json_metadata": "{\"tags\":[\"bitcoin\",\"blockchain\",\"gold\"],\"image\":[\"https://cdn.steemitimages.com/DQmXQtGQuMASfqggfwEFeo4pGk1HyD6axvYFdQx7nSVXT6i/63B81F6C-BF2B-45A6-A0B5-DF73B8CCB54F.jpeg\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "bitcoin",
      "permlink": "drake-where-s-jesus",
      "title": "Drake where’s Jesus"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T23:49:09",
  "trx_id": "ec531a4030372e4c003d3fd53a352210c57f4cc5",
  "trx_in_block": 4,
  "virtual_op": 0
}
2020/04/18 23:48:24
idfollow
json["follow",{"follower":"tooorkish67","following":"socky","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42648889/Trx c706e8f1e08010f1a7f78025894fcb7196a58ac9
View Raw JSON Data
{
  "block": 42648889,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"socky\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T23:48:24",
  "trx_id": "c706e8f1e08010f1a7f78025894fcb7196a58ac9",
  "trx_in_block": 2,
  "virtual_op": 0
}
tooorkish67published a new post: war
2020/04/18 16:36:00
authortooorkish67
bodyThe end of Globalization. The beginning of the Second Cold War.
json metadata{"tags":["bitcoin","gold","blockchain","covid19"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkbitcoin
permlinkwar
titleWar
Transaction InfoBlock #42640483/Trx de709a3e4429426b29b373644062a4b6aa976b84
View Raw JSON Data
{
  "block": 42640483,
  "op": [
    "comment",
    {
      "author": "tooorkish67",
      "body": "The end of Globalization.\n\nThe beginning of the Second Cold War.",
      "json_metadata": "{\"tags\":[\"bitcoin\",\"gold\",\"blockchain\",\"covid19\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "bitcoin",
      "permlink": "war",
      "title": "War"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T16:36:00",
  "trx_id": "de709a3e4429426b29b373644062a4b6aa976b84",
  "trx_in_block": 12,
  "virtual_op": 0
}
2020/04/18 11:18:51
idfollow
json["follow",{"follower":"tooorkish67","following":"adoniszach","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634319/Trx 2d165a1c3f5493e6c6070af429b4d7c547ed583a
View Raw JSON Data
{
  "block": 42634319,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"adoniszach\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:51",
  "trx_id": "2d165a1c3f5493e6c6070af429b4d7c547ed583a",
  "trx_in_block": 13,
  "virtual_op": 0
}
2020/04/18 11:18:51
idfollow
json["follow",{"follower":"tooorkish67","following":"travelblogbd","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634319/Trx bd25703f4d930f3d13a083bef8d65e2cfb75519e
View Raw JSON Data
{
  "block": 42634319,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"travelblogbd\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:51",
  "trx_id": "bd25703f4d930f3d13a083bef8d65e2cfb75519e",
  "trx_in_block": 11,
  "virtual_op": 0
}
2020/04/18 11:18:51
idfollow
json["follow",{"follower":"tooorkish67","following":"bearnode","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634319/Trx adb0f5c904297c65f794f1daa39157e02bfb1099
View Raw JSON Data
{
  "block": 42634319,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"bearnode\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:51",
  "trx_id": "adb0f5c904297c65f794f1daa39157e02bfb1099",
  "trx_in_block": 5,
  "virtual_op": 0
}
2020/04/18 11:18:48
idfollow
json["follow",{"follower":"tooorkish67","following":"loretamerola33","what":[]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634318/Trx f02ff681dae15a5b74eefd7dea6982358b73fb00
View Raw JSON Data
{
  "block": 42634318,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"loretamerola33\",\"what\":[]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:48",
  "trx_id": "f02ff681dae15a5b74eefd7dea6982358b73fb00",
  "trx_in_block": 16,
  "virtual_op": 0
}
2020/04/18 11:18:45
idfollow
json["follow",{"follower":"tooorkish67","following":"loretamerola33","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634317/Trx a5649006bc22789af58d1460675a3c3ecbc84d5a
View Raw JSON Data
{
  "block": 42634317,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"loretamerola33\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:45",
  "trx_id": "a5649006bc22789af58d1460675a3c3ecbc84d5a",
  "trx_in_block": 6,
  "virtual_op": 0
}
2020/04/18 11:18:45
idfollow
json["follow",{"follower":"tooorkish67","following":"weaver1911","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634317/Trx 3144ff5c3cba227855caed939aa5bae519651057
View Raw JSON Data
{
  "block": 42634317,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"weaver1911\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:45",
  "trx_id": "3144ff5c3cba227855caed939aa5bae519651057",
  "trx_in_block": 1,
  "virtual_op": 0
}
2020/04/18 11:18:45
idfollow
json["follow",{"follower":"tooorkish67","following":"edinarlatam","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634317/Trx 4cb4bda924c944515828e5dd6d9a8bceb50c6822
View Raw JSON Data
{
  "block": 42634317,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"edinarlatam\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:45",
  "trx_id": "4cb4bda924c944515828e5dd6d9a8bceb50c6822",
  "trx_in_block": 0,
  "virtual_op": 0
}
2020/04/18 11:18:42
idfollow
json["follow",{"follower":"tooorkish67","following":"swaglisk","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634316/Trx e35f9008b0ad7fad826481775929e26c10081e4c
View Raw JSON Data
{
  "block": 42634316,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"swaglisk\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:42",
  "trx_id": "e35f9008b0ad7fad826481775929e26c10081e4c",
  "trx_in_block": 22,
  "virtual_op": 0
}
2020/04/18 11:18:42
idfollow
json["follow",{"follower":"tooorkish67","following":"stixy","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634316/Trx 8661081f18968b96f7a8196dc8a6fc7905e6ef95
View Raw JSON Data
{
  "block": 42634316,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"stixy\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:42",
  "trx_id": "8661081f18968b96f7a8196dc8a6fc7905e6ef95",
  "trx_in_block": 17,
  "virtual_op": 0
}
2020/04/18 11:18:42
idfollow
json["follow",{"follower":"tooorkish67","following":"vados","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634316/Trx 1e38d75d5d47b63690be19b9a929bb9a96636fdc
View Raw JSON Data
{
  "block": 42634316,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"vados\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:42",
  "trx_id": "1e38d75d5d47b63690be19b9a929bb9a96636fdc",
  "trx_in_block": 7,
  "virtual_op": 0
}
2020/04/18 11:18:42
idfollow
json["follow",{"follower":"tooorkish67","following":"marcusmalone","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634316/Trx f560cc301e4e74cfd37cba00c9cc1e574ddad056
View Raw JSON Data
{
  "block": 42634316,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"marcusmalone\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:42",
  "trx_id": "f560cc301e4e74cfd37cba00c9cc1e574ddad056",
  "trx_in_block": 0,
  "virtual_op": 0
}
2020/04/18 11:18:39
idfollow
json["follow",{"follower":"tooorkish67","following":"maxer27","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634315/Trx d9aa3c151ba578d1f646dbbb02767486c37d3aef
View Raw JSON Data
{
  "block": 42634315,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"maxer27\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:39",
  "trx_id": "d9aa3c151ba578d1f646dbbb02767486c37d3aef",
  "trx_in_block": 19,
  "virtual_op": 0
}
2020/04/18 11:18:39
idfollow
json["follow",{"follower":"tooorkish67","following":"dr-frankenstein","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634315/Trx 9588e7ac2de0ba6ca37b684d79d48acae1b9c890
View Raw JSON Data
{
  "block": 42634315,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"dr-frankenstein\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:39",
  "trx_id": "9588e7ac2de0ba6ca37b684d79d48acae1b9c890",
  "trx_in_block": 15,
  "virtual_op": 0
}
2020/04/18 11:18:39
idfollow
json["follow",{"follower":"tooorkish67","following":"omrfrq18","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634315/Trx 1fbadc51890e2c4a0d5e0584dd8a05b797f2f57b
View Raw JSON Data
{
  "block": 42634315,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"omrfrq18\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:39",
  "trx_id": "1fbadc51890e2c4a0d5e0584dd8a05b797f2f57b",
  "trx_in_block": 10,
  "virtual_op": 0
}
2020/04/18 11:18:39
idfollow
json["follow",{"follower":"tooorkish67","following":"zhullanhz","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634315/Trx 1fc7167a5fb0a67d9b75d4e4c6103b06ac38fcfb
View Raw JSON Data
{
  "block": 42634315,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"zhullanhz\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:39",
  "trx_id": "1fc7167a5fb0a67d9b75d4e4c6103b06ac38fcfb",
  "trx_in_block": 2,
  "virtual_op": 0
}
2020/04/18 11:18:36
idfollow
json["follow",{"follower":"tooorkish67","following":"marilin35","what":["blog"]}]
required auths[]
required posting auths["tooorkish67"]
Transaction InfoBlock #42634314/Trx adf45aca85b8d139a38c7e3f9a8b85d542a294dd
View Raw JSON Data
{
  "block": 42634314,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"tooorkish67\",\"following\":\"marilin35\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "tooorkish67"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:18:36",
  "trx_id": "adf45aca85b8d139a38c7e3f9a8b85d542a294dd",
  "trx_in_block": 36,
  "virtual_op": 0
}
2020/04/18 11:13:54
authorbitsports
permlinkis-this-the-future-of-dfs-and-fantasy-sports
votertooorkish67
weight10000 (100.00%)
Transaction InfoBlock #42634222/Trx 5b235ac7ae71c361b217e090cb998d01a4fb7d68
View Raw JSON Data
{
  "block": 42634222,
  "op": [
    "vote",
    {
      "author": "bitsports",
      "permlink": "is-this-the-future-of-dfs-and-fantasy-sports",
      "voter": "tooorkish67",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:13:54",
  "trx_id": "5b235ac7ae71c361b217e090cb998d01a4fb7d68",
  "trx_in_block": 11,
  "virtual_op": 0
}
tooorkish67upvoted (100.00%) @john371911 / buy-votes
2020/04/18 11:13:36
authorjohn371911
permlinkbuy-votes
votertooorkish67
weight10000 (100.00%)
Transaction InfoBlock #42634217/Trx ec516d870de040076b86afff4dfe961fa58c911b
View Raw JSON Data
{
  "block": 42634217,
  "op": [
    "vote",
    {
      "author": "john371911",
      "permlink": "buy-votes",
      "voter": "tooorkish67",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:13:36",
  "trx_id": "ec516d870de040076b86afff4dfe961fa58c911b",
  "trx_in_block": 5,
  "virtual_op": 0
}
2020/04/18 11:13:18
authorsgt-dan
permlinkblockchain-battle-hive-144703
votertooorkish67
weight10000 (100.00%)
Transaction InfoBlock #42634211/Trx 32769068975141084bf74ca29a4d617cec343408
View Raw JSON Data
{
  "block": 42634211,
  "op": [
    "vote",
    {
      "author": "sgt-dan",
      "permlink": "blockchain-battle-hive-144703",
      "voter": "tooorkish67",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T11:13:18",
  "trx_id": "32769068975141084bf74ca29a4d617cec343408",
  "trx_in_block": 18,
  "virtual_op": 0
}
2020/04/18 03:03:15
authortooorkish67
permlinkcovid19
voterraise-me-up
weight1 (0.01%)
Transaction InfoBlock #42624685/Trx fd7690c6a6de909397952a9955d8a3a87e9b1e76
View Raw JSON Data
{
  "block": 42624685,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "covid19",
      "voter": "raise-me-up",
      "weight": 1
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T03:03:15",
  "trx_id": "fd7690c6a6de909397952a9955d8a3a87e9b1e76",
  "trx_in_block": 38,
  "virtual_op": 0
}
geenapalmerupvoted (100.00%) @tooorkish67 / covid19
2020/04/18 02:56:45
authortooorkish67
permlinkcovid19
votergeenapalmer
weight10000 (100.00%)
Transaction InfoBlock #42624558/Trx ca19bfcdfe779611f7f0aeffdc10ee45d06cc0ad
View Raw JSON Data
{
  "block": 42624558,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "covid19",
      "voter": "geenapalmer",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T02:56:45",
  "trx_id": "ca19bfcdfe779611f7f0aeffdc10ee45d06cc0ad",
  "trx_in_block": 8,
  "virtual_op": 0
}
statsexpertupvoted (20.00%) @tooorkish67 / 7exxqm
2020/04/18 02:30:15
authortooorkish67
permlink7exxqm
voterstatsexpert
weight2000 (20.00%)
Transaction InfoBlock #42624047/Trx a9be08e8af1fbe53d46c7db08c123441391e3c80
View Raw JSON Data
{
  "block": 42624047,
  "op": [
    "vote",
    {
      "author": "tooorkish67",
      "permlink": "7exxqm",
      "voter": "statsexpert",
      "weight": 2000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T02:30:15",
  "trx_id": "a9be08e8af1fbe53d46c7db08c123441391e3c80",
  "trx_in_block": 13,
  "virtual_op": 0
}
tooorkish67published a new post: 7exxqm
2020/04/18 02:26:30
authortooorkish67
body𝙎𝙘𝙝𝙤𝙤𝙡𝙨 𝙖𝙧𝙚𝙣’𝙩 𝙖𝙗𝙤𝙪𝙩 𝙡𝙚𝙖𝙧𝙣𝙞𝙣𝙜. 𝙊𝙛𝙛𝙞𝙘𝙚𝙨 𝙖𝙧𝙚𝙣’𝙩 𝙖𝙗𝙤𝙪𝙩 𝙬𝙤𝙧𝙠𝙞𝙣𝙜. 𝘾𝙝𝙪𝙧𝙘𝙝𝙚𝙨 𝙖𝙧𝙚𝙣’𝙩 𝙖𝙗𝙤𝙪𝙩 𝙥𝙧𝙖𝙮𝙞𝙣𝙜. 𝙍𝙚𝙨𝙩𝙖𝙪𝙧𝙖𝙣𝙩𝙨 𝙖𝙧𝙚𝙣’𝙩 𝙖𝙗𝙤𝙪𝙩 𝙚𝙖𝙩𝙞𝙣𝙜. 𝙊𝙗𝙫𝙞𝙤𝙪𝙨 𝙣𝙤𝙬?
json metadata{"tags":["blockchain","bitcoin","cryptocurrency","gold"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkblockchain
permlink7exxqm
title𝙊𝙗𝙫𝙞𝙤𝙪𝙨 𝙣𝙤𝙬?
Transaction InfoBlock #42623975/Trx 9a8aa03b38ed4eadbd3c8d272503c621c6a55c9e
View Raw JSON Data
{
  "block": 42623975,
  "op": [
    "comment",
    {
      "author": "tooorkish67",
      "body": "𝙎𝙘𝙝𝙤𝙤𝙡𝙨 𝙖𝙧𝙚𝙣’𝙩 𝙖𝙗𝙤𝙪𝙩 𝙡𝙚𝙖𝙧𝙣𝙞𝙣𝙜.  \n𝙊𝙛𝙛𝙞𝙘𝙚𝙨 𝙖𝙧𝙚𝙣’𝙩 𝙖𝙗𝙤𝙪𝙩 𝙬𝙤𝙧𝙠𝙞𝙣𝙜.  \n𝘾𝙝𝙪𝙧𝙘𝙝𝙚𝙨 𝙖𝙧𝙚𝙣’𝙩 𝙖𝙗𝙤𝙪𝙩 𝙥𝙧𝙖𝙮𝙞𝙣𝙜.  \n𝙍𝙚𝙨𝙩𝙖𝙪𝙧𝙖𝙣𝙩𝙨 𝙖𝙧𝙚𝙣’𝙩 𝙖𝙗𝙤𝙪𝙩 𝙚𝙖𝙩𝙞𝙣𝙜.  \n𝙊𝙗𝙫𝙞𝙤𝙪𝙨 𝙣𝙤𝙬?",
      "json_metadata": "{\"tags\":[\"blockchain\",\"bitcoin\",\"cryptocurrency\",\"gold\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "blockchain",
      "permlink": "7exxqm",
      "title": "𝙊𝙗𝙫𝙞𝙤𝙪𝙨 𝙣𝙤𝙬?"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T02:26:30",
  "trx_id": "9a8aa03b38ed4eadbd3c8d272503c621c6a55c9e",
  "trx_in_block": 17,
  "virtual_op": 0
}
beemenginesent 0.001 STEEM to @tooorkish67- "💎 Best Community Service: auto post booster, tens extra votes 24/24, passive earnings and more. Checkout https://www.steembeem.com 🤙 or try it one month FOR ONLY 1 STEEM 🤯 to @beemengine with memo:..."
2020/04/18 02:20:48
amount0.001 STEEM
frombeemengine
memo💎 Best Community Service: auto post booster, tens extra votes 24/24, passive earnings and more. Checkout https://www.steembeem.com 🤙 or try it one month FOR ONLY 1 STEEM 🤯 to @beemengine with memo: subscribe
totooorkish67
Transaction InfoBlock #42623864/Trx 800f1448c7e543c9916d06358fed0cc55f624bc5
View Raw JSON Data
{
  "block": 42623864,
  "op": [
    "transfer",
    {
      "amount": "0.001 STEEM",
      "from": "beemengine",
      "memo": "💎 Best Community Service: auto post booster, tens extra votes 24/24, passive earnings and more.\nCheckout https://www.steembeem.com 🤙 or try it one month FOR ONLY 1 STEEM 🤯 to @beemengine with memo: subscribe",
      "to": "tooorkish67"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-18T02:20:48",
  "trx_id": "800f1448c7e543c9916d06358fed0cc55f624bc5",
  "trx_in_block": 18,
  "virtual_op": 0
}

Account Metadata

POSTING JSON METADATA
profile{"profile_image":"https://instagram.com/p/BbXHmylHWC6/","cover_image":"https://instagram.com/p/BVaKOHYH6SJ/"}
JSON METADATA
profile{"profile_image":"https://instagram.com/p/BbXHmylHWC6/","cover_image":"https://instagram.com/p/BVaKOHYH6SJ/"}
{
  "posting_json_metadata": {
    "profile": {
      "profile_image": "https://instagram.com/p/BbXHmylHWC6/",
      "cover_image": "https://instagram.com/p/BVaKOHYH6SJ/"
    }
  },
  "json_metadata": {
    "profile": {
      "profile_image": "https://instagram.com/p/BbXHmylHWC6/",
      "cover_image": "https://instagram.com/p/BVaKOHYH6SJ/"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM5xVNKRooQjq35NfgKWrGgYreKWCKBFaab5YxFpa8SQ4K3Q5jJX1/1
Active
Single Signature
Public Keys
STM5Cj4ffidhCMRY1FsLC3QjMReze62vFyeKGKX5LUNx5LLL4rGfF1/1
Posting
Single Signature
Public Keys
STM6TYWkWWnKhbZeHEffArbMtrZZmiNxWXkKgKXeWgm1cF5upJNVe1/1
Memo
STM7AfL77EHxxdmYZCMcU2HTQsZAsDvJvBQpRhPfP7N8iGjp14Lda
{
  "owner": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5xVNKRooQjq35NfgKWrGgYreKWCKBFaab5YxFpa8SQ4K3Q5jJX",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "active": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5Cj4ffidhCMRY1FsLC3QjMReze62vFyeKGKX5LUNx5LLL4rGfF",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "posting": {
    "account_auths": [],
    "key_auths": [
      [
        "STM6TYWkWWnKhbZeHEffArbMtrZZmiNxWXkKgKXeWgm1cF5upJNVe",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "memo": "STM7AfL77EHxxdmYZCMcU2HTQsZAsDvJvBQpRhPfP7N8iGjp14Lda"
}

Witness Votes

0 / 30
No active witness votes.
[]