Ecoer Logo
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS75.83%
Net Worth
0.586USD
STEEM
0.000STEEM
SBD
0.000SBD
Own SP
10.100SP

Detailed Balance

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

Account Info

namedpedoneze
id907078
rank128,650
reputation261567348313
created2018-04-02T11:56:12
recovery_accountsteem
proxyNone
post_count2
comment_count0
lifetime_vote_count0
witnesses_voted_for1
last_post2018-04-08T13:55:42
last_root_post2018-04-07T19:13:06
last_vote_time2018-04-14T22:05:39
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votes0
balance0.000 STEEM
savings_balance0.000 STEEM
sbd_balance0.000 SBD
savings_sbd_balance0.000 SBD
vesting_shares16426.317133 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares0.000000 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-04-07T16:33:54
minedNo
sbd_seconds0
sbd_last_interest_payment2018-08-06T02:44:33
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 907078,
  "name": "dpedoneze",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6sJCxaXv49W5shDigN6Q4UYZamed2BEe15i5HwwJxuZetdsjZC",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7HKYSzwLAsMwTjitnZgBavqJnpX6hYPHzNAXvh52kpEkq8LdbY",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [
      [
        "utopian.app",
        1
      ]
    ],
    "key_auths": [
      [
        "STM5jq6Ucb95UVG9jz4eaMw9EWG7fC2fo7jJEkTSCPSBwy1NQidsA",
        1
      ]
    ]
  },
  "memo_key": "STM61Z9Yc6io7Q13jUqD9yHXX9cDMMWjzVKmxGuSL27qcjXzJirbu",
  "json_metadata": "{\"profile\":{\"profile_image\":\"https://avatars0.githubusercontent.com/u/5757502\",\"name\":\"D. Pedoneze\"}}",
  "posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://avatars0.githubusercontent.com/u/5757502\",\"name\":\"D. Pedoneze\"}}",
  "proxy": "",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_account_update": "2018-04-07T16:33:54",
  "created": "2018-04-02T11:56:12",
  "mined": false,
  "recovery_account": "steem",
  "last_account_recovery": "1970-01-01T00:00:00",
  "reset_account": "null",
  "comment_count": 0,
  "lifetime_vote_count": 0,
  "post_count": 2,
  "can_vote": true,
  "voting_manabar": {
    "current_mana": "16426317133",
    "last_update_time": 1588927317
  },
  "downvote_manabar": {
    "current_mana": 4106579283,
    "last_update_time": 1588927317
  },
  "voting_power": 0,
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "sbd_balance": "0.000 SBD",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "2018-08-06T02:44:33",
  "sbd_last_interest_payment": "2018-08-06T02:44:33",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "reward_sbd_balance": "0.000 SBD",
  "reward_steem_balance": "0.000 STEEM",
  "reward_vesting_balance": "0.000000 VESTS",
  "reward_vesting_steem": "0.000 STEEM",
  "vesting_shares": "16426.317133 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "withdrawn": 0,
  "to_withdraw": 0,
  "withdraw_routes": 0,
  "curation_rewards": 0,
  "posting_rewards": 15918,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 1,
  "last_post": "2018-04-08T13:55:42",
  "last_root_post": "2018-04-07T19:13:06",
  "last_vote_time": "2018-04-14T22:05:39",
  "post_bandwidth": 0,
  "pending_claimed_accounts": 0,
  "vesting_balance": "0.000 STEEM",
  "reputation": "261567348313",
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [
    "utopian-io"
  ],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 128650
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 0.000 SP to @dpedoneze
2020/05/08 08:41:57
delegatorsteem
delegateedpedoneze
vesting shares0.000000 VESTS
Transaction InfoBlock #43192381/Trx 70ffb6967a42cdb5265f86f51cd1596daa908abe
View Raw JSON Data
{
  "trx_id": "70ffb6967a42cdb5265f86f51cd1596daa908abe",
  "block": 43192381,
  "trx_in_block": 13,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-08T08:41:57",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dpedoneze",
      "vesting_shares": "0.000000 VESTS"
    }
  ]
}
2019/04/02 13:03:39
parent authordpedoneze
parent permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
authorsteemitboard
permlinksteemitboard-notify-dpedoneze-20190402t130338000z
title
bodyCongratulations @dpedoneze! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@dpedoneze/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@dpedoneze) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=dpedoneze)_</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #31693519/Trx 87198fd6728f1ebde5d71ae670dcaa0619c0df29
View Raw JSON Data
{
  "trx_id": "87198fd6728f1ebde5d71ae670dcaa0619c0df29",
  "block": 31693519,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-04-02T13:03:39",
  "op": [
    "comment",
    {
      "parent_author": "dpedoneze",
      "parent_permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-dpedoneze-20190402t130338000z",
      "title": "",
      "body": "Congratulations @dpedoneze! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@dpedoneze/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@dpedoneze) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=dpedoneze)_</sub>\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
steemdelegated 1.238 SP to @dpedoneze
2018/11/26 17:18:30
delegatorsteem
delegateedpedoneze
vesting shares2013.984142 VESTS
Transaction InfoBlock #28043711/Trx 3a398d48f37bc09ed9d734ab9a69102de42d573e
View Raw JSON Data
{
  "trx_id": "3a398d48f37bc09ed9d734ab9a69102de42d573e",
  "block": 28043711,
  "trx_in_block": 24,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-26T17:18:30",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dpedoneze",
      "vesting_shares": "2013.984142 VESTS"
    }
  ]
}
steemdelegated 8.587 SP to @dpedoneze
2018/08/06 03:11:39
delegatorsteem
delegateedpedoneze
vesting shares13966.463701 VESTS
Transaction InfoBlock #24818847/Trx 449f2fe2bd034c386b98103929d4496dc0e06680
View Raw JSON Data
{
  "trx_id": "449f2fe2bd034c386b98103929d4496dc0e06680",
  "block": 24818847,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-08-06T03:11:39",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dpedoneze",
      "vesting_shares": "13966.463701 VESTS"
    }
  ]
}
dpedonezesent 20.510 SBD to @blocktrades- "b5a77939-cee7-43fd-98b0-23721830bdc8"
2018/08/06 02:44:33
fromdpedoneze
toblocktrades
amount20.510 SBD
memob5a77939-cee7-43fd-98b0-23721830bdc8
Transaction InfoBlock #24818305/Trx f6eb65ca7ce44578f1ae20739670419ccb96ad7c
View Raw JSON Data
{
  "trx_id": "f6eb65ca7ce44578f1ae20739670419ccb96ad7c",
  "block": 24818305,
  "trx_in_block": 33,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-08-06T02:44:33",
  "op": [
    "transfer",
    {
      "from": "dpedoneze",
      "to": "blocktrades",
      "amount": "20.510 SBD",
      "memo": "b5a77939-cee7-43fd-98b0-23721830bdc8"
    }
  ]
}
steemdelegated 1.247 SP to @dpedoneze
2018/07/14 22:29:09
delegatorsteem
delegateedpedoneze
vesting shares2028.569492 VESTS
Transaction InfoBlock #24180413/Trx b050d87d025ad22835cc0804511819546961ce15
View Raw JSON Data
{
  "trx_id": "b050d87d025ad22835cc0804511819546961ce15",
  "block": 24180413,
  "trx_in_block": 24,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-14T22:29:09",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dpedoneze",
      "vesting_shares": "2028.569492 VESTS"
    }
  ]
}
steemdelegated 8.698 SP to @dpedoneze
2018/04/14 22:38:48
delegatorsteem
delegateedpedoneze
vesting shares14146.873886 VESTS
Transaction InfoBlock #21571896/Trx 1f2da326a0e420cd9f6bfb719522a4ae4ea32b3e
View Raw JSON Data
{
  "trx_id": "1f2da326a0e420cd9f6bfb719522a4ae4ea32b3e",
  "block": 21571896,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-14T22:38:48",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dpedoneze",
      "vesting_shares": "14146.873886 VESTS"
    }
  ]
}
2018/04/14 22:05:39
voterdpedoneze
authorutopian-io
permlinkre-dpedoneze-speeding-up-your-development-using-haml-on-your-ruby-on-rails-project-20180409t000400440z
weight10000 (100.00%)
Transaction InfoBlock #21571233/Trx 2be668b763c740d547925432eae30d7d14b13b40
View Raw JSON Data
{
  "trx_id": "2be668b763c740d547925432eae30d7d14b13b40",
  "block": 21571233,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-14T22:05:39",
  "op": [
    "vote",
    {
      "voter": "dpedoneze",
      "author": "utopian-io",
      "permlink": "re-dpedoneze-speeding-up-your-development-using-haml-on-your-ruby-on-rails-project-20180409t000400440z",
      "weight": 10000
    }
  ]
}
dpedonezeclaimed reward balance: 20.510 SBD, 9.974 SP
2018/04/14 20:53:21
accountdpedoneze
reward steem0.000 STEEM
reward sbd20.510 SBD
reward vests16222.362242 VESTS
Transaction InfoBlock #21569787/Trx 5d01e753010403febbdaa685f0b70b0b56f73cd0
View Raw JSON Data
{
  "trx_id": "5d01e753010403febbdaa685f0b70b0b56f73cd0",
  "block": 21569787,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-14T20:53:21",
  "op": [
    "claim_reward_balance",
    {
      "account": "dpedoneze",
      "reward_steem": "0.000 STEEM",
      "reward_sbd": "20.510 SBD",
      "reward_vests": "16222.362242 VESTS"
    }
  ]
}
2018/04/14 19:13:06
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
sbd payout20.510 SBD
steem payout0.000 STEEM
vesting payout16222.362242 VESTS
Transaction InfoBlock #21567781/Virtual Operation #53
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 21567781,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 53,
  "timestamp": "2018-04-14T19:13:06",
  "op": [
    "author_reward",
    {
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "sbd_payout": "20.510 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "16222.362242 VESTS"
    }
  ]
}
utopian.payreceived 6.648 SP benefactor reward from @dpedoneze
2018/04/14 19:13:06
benefactorutopian.pay
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
sbd payout0.000 SBD
steem payout0.000 STEEM
vesting payout10812.869920 VESTS
Transaction InfoBlock #21567781/Virtual Operation #52
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 21567781,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 52,
  "timestamp": "2018-04-14T19:13:06",
  "op": [
    "comment_benefactor_reward",
    {
      "benefactor": "utopian.pay",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "sbd_payout": "0.000 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "10812.869920 VESTS"
    }
  ]
}
2018/04/11 03:04:27
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"utopian-io","what":["blog"]}]
Transaction InfoBlock #21462031/Trx 6482afdb54697ea8a6e793abe91a3b09b0c69123
View Raw JSON Data
{
  "trx_id": "6482afdb54697ea8a6e793abe91a3b09b0c69123",
  "block": 21462031,
  "trx_in_block": 39,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-11T03:04:27",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"utopian-io\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 15:20:48
voterazwarrangkuti
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight4000 (40.00%)
Transaction InfoBlock #21419161/Trx c7a48f6602792da0244ef5d99963486c241853eb
View Raw JSON Data
{
  "trx_id": "c7a48f6602792da0244ef5d99963486c241853eb",
  "block": 21419161,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T15:20:48",
  "op": [
    "vote",
    {
      "voter": "azwarrangkuti",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 4000
    }
  ]
}
dpedonezefollowed @mkt
2018/04/09 14:07:18
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"mkt","what":["blog"]}]
Transaction InfoBlock #21417691/Trx 0d10bc02bad127db86f3357d3f5db1142fe04430
View Raw JSON Data
{
  "trx_id": "0d10bc02bad127db86f3357d3f5db1142fe04430",
  "block": 21417691,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T14:07:18",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"mkt\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 14:07:12
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"curx","what":["blog"]}]
Transaction InfoBlock #21417689/Trx ad41a394618bfe1940748a560c0dab050ba5af25
View Raw JSON Data
{
  "trx_id": "ad41a394618bfe1940748a560c0dab050ba5af25",
  "block": 21417689,
  "trx_in_block": 60,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T14:07:12",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"curx\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 14:07:12
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"zapncrap","what":["blog"]}]
Transaction InfoBlock #21417689/Trx bf74906d221cec7c87345c1e308ebf3a59825d74
View Raw JSON Data
{
  "trx_id": "bf74906d221cec7c87345c1e308ebf3a59825d74",
  "block": 21417689,
  "trx_in_block": 53,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T14:07:12",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"zapncrap\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 14:07:12
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"yuxi","what":["blog"]}]
Transaction InfoBlock #21417689/Trx 1ed7c52e4b153b0126d5f10f7726adb4f373b64c
View Raw JSON Data
{
  "trx_id": "1ed7c52e4b153b0126d5f10f7726adb4f373b64c",
  "block": 21417689,
  "trx_in_block": 37,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T14:07:12",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"yuxi\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 14:07:09
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"supreme-verdict","what":["blog"]}]
Transaction InfoBlock #21417688/Trx 13036bf399814bd24c26cf38cb8e51005f68def2
View Raw JSON Data
{
  "trx_id": "13036bf399814bd24c26cf38cb8e51005f68def2",
  "block": 21417688,
  "trx_in_block": 47,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T14:07:09",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"supreme-verdict\",\"what\":[\"blog\"]}]"
    }
  ]
}
dpedonezefollowed @mys
2018/04/09 14:07:09
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"mys","what":["blog"]}]
Transaction InfoBlock #21417688/Trx 6b6da201295b7687696b69cc4066cbda2e8401fb
View Raw JSON Data
{
  "trx_id": "6b6da201295b7687696b69cc4066cbda2e8401fb",
  "block": 21417688,
  "trx_in_block": 35,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T14:07:09",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"mys\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 11:29:33
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"sezenke","what":["blog"]}]
Transaction InfoBlock #21414537/Trx 58cfd069060587d068095825afb6d700d3b3c04d
View Raw JSON Data
{
  "trx_id": "58cfd069060587d068095825afb6d700d3b3c04d",
  "block": 21414537,
  "trx_in_block": 78,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T11:29:33",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"sezenke\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 11:29:33
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"gangresteem","what":["blog"]}]
Transaction InfoBlock #21414537/Trx 602fccd23d373ff27e8bb9e8ddd59bcf0e50bf48
View Raw JSON Data
{
  "trx_id": "602fccd23d373ff27e8bb9e8ddd59bcf0e50bf48",
  "block": 21414537,
  "trx_in_block": 67,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T11:29:33",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"gangresteem\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 11:29:33
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"cryptoriddler","what":["blog"]}]
Transaction InfoBlock #21414537/Trx 06dd38c04b3a48357b83b4b2bb3f5c731ff0799d
View Raw JSON Data
{
  "trx_id": "06dd38c04b3a48357b83b4b2bb3f5c731ff0799d",
  "block": 21414537,
  "trx_in_block": 66,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T11:29:33",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"cryptoriddler\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 11:29:30
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"bekirsolak","what":["blog"]}]
Transaction InfoBlock #21414536/Trx 8d03eb2f6fc6f123b883a2047563540c371be2f8
View Raw JSON Data
{
  "trx_id": "8d03eb2f6fc6f123b883a2047563540c371be2f8",
  "block": 21414536,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T11:29:30",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"bekirsolak\",\"what\":[\"blog\"]}]"
    }
  ]
}
dpedonezevoted for witness @utopian-io
2018/04/09 11:28:18
accountdpedoneze
witnessutopian-io
approvetrue
Transaction InfoBlock #21414512/Trx f188a121485dc8f6734483b40c612ae12e1da049
View Raw JSON Data
{
  "trx_id": "f188a121485dc8f6734483b40c612ae12e1da049",
  "block": 21414512,
  "trx_in_block": 26,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T11:28:18",
  "op": [
    "account_witness_vote",
    {
      "account": "dpedoneze",
      "witness": "utopian-io",
      "approve": true
    }
  ]
}
2018/04/09 11:26:45
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"grzesiekb","what":["blog"]}]
Transaction InfoBlock #21414481/Trx 6e05dffe0416c861031c5423594aeb0f299e6151
View Raw JSON Data
{
  "trx_id": "6e05dffe0416c861031c5423594aeb0f299e6151",
  "block": 21414481,
  "trx_in_block": 27,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T11:26:45",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"grzesiekb\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 11:26:42
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"minnowhub","what":["blog"]}]
Transaction InfoBlock #21414480/Trx 0f9085db0bdd4d32176fa07cbb6311b53636463d
View Raw JSON Data
{
  "trx_id": "0f9085db0bdd4d32176fa07cbb6311b53636463d",
  "block": 21414480,
  "trx_in_block": 35,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T11:26:42",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"minnowhub\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 11:26:39
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"cifer","what":["blog"]}]
Transaction InfoBlock #21414479/Trx 07525f3e9b0463333f4b6fd7303f9e5f5be14b78
View Raw JSON Data
{
  "trx_id": "07525f3e9b0463333f4b6fd7303f9e5f5be14b78",
  "block": 21414479,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T11:26:39",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"cifer\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/09 10:02:57
votermrcalxy
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21412805/Trx 581e12f1e9822f1cd68279ea7fb4aae0d0bb0ed8
View Raw JSON Data
{
  "trx_id": "581e12f1e9822f1cd68279ea7fb4aae0d0bb0ed8",
  "block": 21412805,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T10:02:57",
  "op": [
    "vote",
    {
      "voter": "mrcalxy",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/09 04:58:24
votergoodluckleo
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21406714/Trx ba83521077ccd29c1e414f206244b79f3d5aa390
View Raw JSON Data
{
  "trx_id": "ba83521077ccd29c1e414f206244b79f3d5aa390",
  "block": 21406714,
  "trx_in_block": 16,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T04:58:24",
  "op": [
    "vote",
    {
      "voter": "goodluckleo",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/09 04:10:09
votergrzesiekb
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21405749/Trx d6bad166be5f901af139752e1431c9250f396d84
View Raw JSON Data
{
  "trx_id": "d6bad166be5f901af139752e1431c9250f396d84",
  "block": 21405749,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T04:10:09",
  "op": [
    "vote",
    {
      "voter": "grzesiekb",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/09 00:04:06
parent authordpedoneze
parent permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
authorutopian-io
permlinkre-dpedoneze-speeding-up-your-development-using-haml-on-your-ruby-on-rails-project-20180409t000400440z
title
body### Hey @dpedoneze I am @utopian-io. I have just upvoted you! #### Achievements - You have less than 500 followers. Just gave you a gift to help you succeed! - This is your first accepted contribution here in Utopian. Welcome! #### Community-Driven Witness! I am the first and only Steem Community-Driven Witness. <a href="https://discord.gg/zTrEMqB">Participate on Discord</a>. Lets GROW TOGETHER! - <a href="https://v2.steemconnect.com/sign/account-witness-vote?witness=utopian-io&approve=1">Vote for my Witness With SteemConnect</a> - <a href="https://v2.steemconnect.com/sign/account-witness-proxy?proxy=utopian-io&approve=1">Proxy vote to Utopian Witness with SteemConnect</a> - Or vote/proxy on <a href="https://steemit.com/~witnesses">Steemit Witnesses</a> [![mooncryption-utopian-witness-gif](https://steemitimages.com/DQmYPUuQRptAqNBCQRwQjKWAqWU3zJkL3RXVUtEKVury8up/mooncryption-s-utopian-io-witness-gif.gif)](https://steemit.com/~witnesses) **Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x**
json metadata{"tags":["utopian-io"],"community":"utopian","app":"utopian/1.0.0"}
Transaction InfoBlock #21400829/Trx 44b7f362ae07336819a479281dc3dd9eb49cf74f
View Raw JSON Data
{
  "trx_id": "44b7f362ae07336819a479281dc3dd9eb49cf74f",
  "block": 21400829,
  "trx_in_block": 21,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T00:04:06",
  "op": [
    "comment",
    {
      "parent_author": "dpedoneze",
      "parent_permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "author": "utopian-io",
      "permlink": "re-dpedoneze-speeding-up-your-development-using-haml-on-your-ruby-on-rails-project-20180409t000400440z",
      "title": "",
      "body": "### Hey @dpedoneze I am @utopian-io. I have just upvoted you!\n#### Achievements\n- You have less than 500 followers. Just gave you a gift to help you succeed!\n- This is your first accepted contribution here in Utopian. Welcome!\n#### Community-Driven Witness!\nI am the first and only Steem Community-Driven Witness. <a href=\"https://discord.gg/zTrEMqB\">Participate on Discord</a>. Lets GROW TOGETHER!\n- <a href=\"https://v2.steemconnect.com/sign/account-witness-vote?witness=utopian-io&approve=1\">Vote for my Witness With SteemConnect</a>\n- <a href=\"https://v2.steemconnect.com/sign/account-witness-proxy?proxy=utopian-io&approve=1\">Proxy vote to Utopian Witness with SteemConnect</a>\n- Or vote/proxy on <a href=\"https://steemit.com/~witnesses\">Steemit Witnesses</a>\n\n[![mooncryption-utopian-witness-gif](https://steemitimages.com/DQmYPUuQRptAqNBCQRwQjKWAqWU3zJkL3RXVUtEKVury8up/mooncryption-s-utopian-io-witness-gif.gif)](https://steemit.com/~witnesses)\n\n**Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x**",
      "json_metadata": "{\"tags\":[\"utopian-io\"],\"community\":\"utopian\",\"app\":\"utopian/1.0.0\"}"
    }
  ]
}
2018/04/09 00:03:57
voterutopian-io
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight1100 (11.00%)
Transaction InfoBlock #21400826/Trx 9ed15a0e4436c25a8dbe05ef50d24e01807d6479
View Raw JSON Data
{
  "trx_id": "9ed15a0e4436c25a8dbe05ef50d24e01807d6479",
  "block": 21400826,
  "trx_in_block": 28,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-09T00:03:57",
  "op": [
    "vote",
    {
      "voter": "utopian-io",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 1100
    }
  ]
}
2018/04/08 20:23:48
voterkittenpics
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight2500 (25.00%)
Transaction InfoBlock #21396423/Trx b73fa493e5e44be59c8d9179c2fb3190c45451de
View Raw JSON Data
{
  "trx_id": "b73fa493e5e44be59c8d9179c2fb3190c45451de",
  "block": 21396423,
  "trx_in_block": 49,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T20:23:48",
  "op": [
    "vote",
    {
      "voter": "kittenpics",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 2500
    }
  ]
}
2018/04/08 20:23:00
parent authordpedoneze
parent permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
authorsteemitboard
permlinksteemitboard-notify-dpedoneze-20180408t202302000z
title
bodyCongratulations @dpedoneze! You have completed some achievement on Steemit and have been rewarded with new badge(s) : [![](https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstvote.png)](http://steemitboard.com/@dpedoneze) You made your First Vote [![](https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstcomment.png)](http://steemitboard.com/@dpedoneze) You made your First Comment Click on any badge to view your own Board of Honor on SteemitBoard. For more information about SteemitBoard, click [here](https://steemit.com/@steemitboard) If you no longer want to receive notifications, reply to this comment with the word `STOP` > Upvote this notification to help all Steemit users. Learn why [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)! Do not miss the [last announcement](https://steemit.com/easter/@steemitboard/celebrate-easter-with-steemitboard-the-eggs-opened-and-guess-what-popped-out) from @steemitboard!
json metadata{"image":["https://steemitboard.com/img/notifications.png"]}
Transaction InfoBlock #21396407/Trx 80032b9a9133205c8bdf09d20a7a125f288ea232
View Raw JSON Data
{
  "trx_id": "80032b9a9133205c8bdf09d20a7a125f288ea232",
  "block": 21396407,
  "trx_in_block": 47,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T20:23:00",
  "op": [
    "comment",
    {
      "parent_author": "dpedoneze",
      "parent_permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-dpedoneze-20180408t202302000z",
      "title": "",
      "body": "Congratulations @dpedoneze! You have completed some achievement on Steemit and have been rewarded with new badge(s) :\n\n[![](https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstvote.png)](http://steemitboard.com/@dpedoneze) You made your First Vote\n[![](https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstcomment.png)](http://steemitboard.com/@dpedoneze) You made your First Comment\n\nClick on any badge to view your own Board of Honor on SteemitBoard.\nFor more information about SteemitBoard, click [here](https://steemit.com/@steemitboard)\n\nIf you no longer want to receive notifications, reply to this comment with the word `STOP`\n\n> Upvote this notification to help all Steemit users. Learn why [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)!\n\nDo not miss the [last announcement](https://steemit.com/easter/@steemitboard/celebrate-easter-with-steemitboard-the-eggs-opened-and-guess-what-popped-out) from @steemitboard!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notifications.png\"]}"
    }
  ]
}
2018/04/08 19:56:45
voterthegrandestine
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395882/Trx f47a505d03096336a4f9040a856703357a6f4d0b
View Raw JSON Data
{
  "trx_id": "f47a505d03096336a4f9040a856703357a6f4d0b",
  "block": 21395882,
  "trx_in_block": 42,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:56:45",
  "op": [
    "vote",
    {
      "voter": "thegrandestine",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:56:45
voterlilith
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395882/Trx 2080ab7ce78db584520a369220246e3928c5f70e
View Raw JSON Data
{
  "trx_id": "2080ab7ce78db584520a369220246e3928c5f70e",
  "block": 21395882,
  "trx_in_block": 39,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:56:45",
  "op": [
    "vote",
    {
      "voter": "lilith",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:56:45
voteraudiosiren
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395882/Trx c37d6c7f7f95aa26eac9d64e5785312885cbe072
View Raw JSON Data
{
  "trx_id": "c37d6c7f7f95aa26eac9d64e5785312885cbe072",
  "block": 21395882,
  "trx_in_block": 38,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:56:45",
  "op": [
    "vote",
    {
      "voter": "audiosiren",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:56:45
voterthe-reaper
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395882/Trx ec2b002e3d5d38acff2e4498f921a6b2d8d0d79e
View Raw JSON Data
{
  "trx_id": "ec2b002e3d5d38acff2e4498f921a6b2d8d0d79e",
  "block": 21395882,
  "trx_in_block": 36,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:56:45",
  "op": [
    "vote",
    {
      "voter": "the-reaper",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
votermonster-reborn
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx 43e15086b8fc4f8663089d12a06998c935b59fc1
View Raw JSON Data
{
  "trx_id": "43e15086b8fc4f8663089d12a06998c935b59fc1",
  "block": 21395861,
  "trx_in_block": 44,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "monster-reborn",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
voterparadoxofchoice
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx 55dc8704301a561d10d9d3b35522a365bcaccf94
View Raw JSON Data
{
  "trx_id": "55dc8704301a561d10d9d3b35522a365bcaccf94",
  "block": 21395861,
  "trx_in_block": 43,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "paradoxofchoice",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
voterchain-reaction
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx a2253bfeff8474eac1ac208a27067ac62bdc0f19
View Raw JSON Data
{
  "trx_id": "a2253bfeff8474eac1ac208a27067ac62bdc0f19",
  "block": 21395861,
  "trx_in_block": 39,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "chain-reaction",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
voterlove-me
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx 2d2bcb2a096545e664e2f23cb0590598932f0843
View Raw JSON Data
{
  "trx_id": "2d2bcb2a096545e664e2f23cb0590598932f0843",
  "block": 21395861,
  "trx_in_block": 37,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "love-me",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
voterbetacore
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx e7e598976c39cb5a6f536107bc8257149070ca0a
View Raw JSON Data
{
  "trx_id": "e7e598976c39cb5a6f536107bc8257149070ca0a",
  "block": 21395861,
  "trx_in_block": 34,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "betacore",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
votermysticalword
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx b4afd560e87c3ef8ef60eaee15bd9b19d9587769
View Raw JSON Data
{
  "trx_id": "b4afd560e87c3ef8ef60eaee15bd9b19d9587769",
  "block": 21395861,
  "trx_in_block": 30,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "mysticalword",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
voterchaostheory
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx ee3a2a97ba72409e27fa9537034ab2d59b898ac4
View Raw JSON Data
{
  "trx_id": "ee3a2a97ba72409e27fa9537034ab2d59b898ac4",
  "block": 21395861,
  "trx_in_block": 28,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "chaostheory",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
voterretrocausality
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx a13e770a29896eee45e551b93157145fad196fa4
View Raw JSON Data
{
  "trx_id": "a13e770a29896eee45e551b93157145fad196fa4",
  "block": 21395861,
  "trx_in_block": 27,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "retrocausality",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
voterbutterfly-effect
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx 10bbed9591fbbca0196609ed95093e32d770e65d
View Raw JSON Data
{
  "trx_id": "10bbed9591fbbca0196609ed95093e32d770e65d",
  "block": 21395861,
  "trx_in_block": 26,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "butterfly-effect",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
voteromegacore
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx abc9e1a1bd9b289c66b67dd71efcad9fe839f1b7
View Raw JSON Data
{
  "trx_id": "abc9e1a1bd9b289c66b67dd71efcad9fe839f1b7",
  "block": 21395861,
  "trx_in_block": 24,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "omegacore",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
votermirrorforce
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx 2009df26e1361a081d119b4806e473d6cfd05ad8
View Raw JSON Data
{
  "trx_id": "2009df26e1361a081d119b4806e473d6cfd05ad8",
  "block": 21395861,
  "trx_in_block": 23,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "mirrorforce",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:42
voteralphacore
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight500 (5.00%)
Transaction InfoBlock #21395861/Trx c559777fdcda6a9f987a6e3e2f5ded50c91776bc
View Raw JSON Data
{
  "trx_id": "c559777fdcda6a9f987a6e3e2f5ded50c91776bc",
  "block": 21395861,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "alphacore",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 500
    }
  ]
}
2018/04/08 19:55:42
voterskybreaker
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395861/Trx 09747bed7ccf30f59e6f255e997ef793a59e677a
View Raw JSON Data
{
  "trx_id": "09747bed7ccf30f59e6f255e997ef793a59e677a",
  "block": 21395861,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:42",
  "op": [
    "vote",
    {
      "voter": "skybreaker",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:55:36
votersupreme-verdict
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21395859/Trx e31e7d29c101765a44d0bbf51fbe49ccc4e143d3
View Raw JSON Data
{
  "trx_id": "e31e7d29c101765a44d0bbf51fbe49ccc4e143d3",
  "block": 21395859,
  "trx_in_block": 41,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:55:36",
  "op": [
    "vote",
    {
      "voter": "supreme-verdict",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 19:17:42
votermkt
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight2023 (20.23%)
Transaction InfoBlock #21395101/Trx 39636e3b84f28093cfba2f2b388a81f8fb36cfb2
View Raw JSON Data
{
  "trx_id": "39636e3b84f28093cfba2f2b388a81f8fb36cfb2",
  "block": 21395101,
  "trx_in_block": 29,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:17:42",
  "op": [
    "vote",
    {
      "voter": "mkt",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 2023
    }
  ]
}
2018/04/08 19:17:15
voterantikesdenken
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight1500 (15.00%)
Transaction InfoBlock #21395092/Trx 6e0bcba035139b0b683e39cb93f4190423bc6b13
View Raw JSON Data
{
  "trx_id": "6e0bcba035139b0b683e39cb93f4190423bc6b13",
  "block": 21395092,
  "trx_in_block": 48,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T19:17:15",
  "op": [
    "vote",
    {
      "voter": "antikesdenken",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 1500
    }
  ]
}
2018/04/08 18:55:06
voteryuxi
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight7000 (70.00%)
Transaction InfoBlock #21394649/Trx f7087e475959346b8cd242af476aa6d223c70489
View Raw JSON Data
{
  "trx_id": "f7087e475959346b8cd242af476aa6d223c70489",
  "block": 21394649,
  "trx_in_block": 44,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T18:55:06",
  "op": [
    "vote",
    {
      "voter": "yuxi",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 7000
    }
  ]
}
2018/04/08 18:55:06
voterminnowhub
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight6859 (68.59%)
Transaction InfoBlock #21394649/Trx 16fe1b3789278fe4a724eb1405c26af29a16218a
View Raw JSON Data
{
  "trx_id": "16fe1b3789278fe4a724eb1405c26af29a16218a",
  "block": 21394649,
  "trx_in_block": 16,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T18:55:06",
  "op": [
    "vote",
    {
      "voter": "minnowhub",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 6859
    }
  ]
}
2018/04/08 18:54:03
votercifer
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight6500 (65.00%)
Transaction InfoBlock #21394628/Trx 5bfa8db3de940bf2fff9e12ac5deec0430ebdcc9
View Raw JSON Data
{
  "trx_id": "5bfa8db3de940bf2fff9e12ac5deec0430ebdcc9",
  "block": 21394628,
  "trx_in_block": 55,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T18:54:03",
  "op": [
    "vote",
    {
      "voter": "cifer",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 6500
    }
  ]
}
2018/04/08 18:52:09
voterzapncrap
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight3000 (30.00%)
Transaction InfoBlock #21394590/Trx 80fe9dcc71f69eead07a9ecf70038cfbcac1a06c
View Raw JSON Data
{
  "trx_id": "80fe9dcc71f69eead07a9ecf70038cfbcac1a06c",
  "block": 21394590,
  "trx_in_block": 34,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T18:52:09",
  "op": [
    "vote",
    {
      "voter": "zapncrap",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 3000
    }
  ]
}
2018/04/08 18:52:06
votermys
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight10000 (100.00%)
Transaction InfoBlock #21394589/Trx 4b662b3fc0994422aa712b33dfb33b9c52c1f993
View Raw JSON Data
{
  "trx_id": "4b662b3fc0994422aa712b33dfb33b9c52c1f993",
  "block": 21394589,
  "trx_in_block": 32,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T18:52:06",
  "op": [
    "vote",
    {
      "voter": "mys",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 10000
    }
  ]
}
2018/04/08 18:52:06
votercurx
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight3000 (30.00%)
Transaction InfoBlock #21394589/Trx 6f0f695dff43e983d5e04e02fcf5e422acff4298
View Raw JSON Data
{
  "trx_id": "6f0f695dff43e983d5e04e02fcf5e422acff4298",
  "block": 21394589,
  "trx_in_block": 13,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T18:52:06",
  "op": [
    "vote",
    {
      "voter": "curx",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 3000
    }
  ]
}
2018/04/08 18:51:54
parent authordpedoneze
parent permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
authorportugalcoin
permlinkre-dpedoneze-speeding-up-your-development-using-haml-on-your-ruby-on-rails-project-20180408t185152035z
title
bodyThank you for the contribution. It has been approved. You can contact us on [Discord](https://discord.gg/uTyJkNm). **[[utopian-moderator]](https://utopian.io/moderators)**
json metadata{"tags":["utopian-io"],"community":"utopian","app":"utopian/1.0.0"}
Transaction InfoBlock #21394585/Trx 7f3b674a0e212fcd26018afeb514f19429cf57fc
View Raw JSON Data
{
  "trx_id": "7f3b674a0e212fcd26018afeb514f19429cf57fc",
  "block": 21394585,
  "trx_in_block": 48,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T18:51:54",
  "op": [
    "comment",
    {
      "parent_author": "dpedoneze",
      "parent_permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "author": "portugalcoin",
      "permlink": "re-dpedoneze-speeding-up-your-development-using-haml-on-your-ruby-on-rails-project-20180408t185152035z",
      "title": "",
      "body": "Thank you for the contribution. It has been approved.\n\nYou can contact us on [Discord](https://discord.gg/uTyJkNm).\n**[[utopian-moderator]](https://utopian.io/moderators)**",
      "json_metadata": "{\"tags\":[\"utopian-io\"],\"community\":\"utopian\",\"app\":\"utopian/1.0.0\"}"
    }
  ]
}
2018/04/08 18:51:45
parent author
parent permlinkutopian-io
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
titleSpeeding up your development using HAML on your Ruby on Rails project
body#### What Will I Learn? In this tutorial, you will learn the HAML (HTML abstraction markup language) basics and how to speed up your development by using HAML instead of the regular HTML (in rails `html.erb` files). - You will learn how to use HAML on your Ruby on Rails project; - You will learn the basics HTML to HAML; - You will learn some nice tricks with HAML. #### Requirements In order to follow this tutorial you will have to fill those requirements: - Basic HTML knowledge; - Basic Ruby on Rails knowledge; - A Ruby on Rails project (you can create a new one by using the `rails new haml_basics` command. #### Difficulty - Basic #### Tutorial Contents HAML (HTML abstraction markup language) is a templating engine for HTML, witch really speeds up your development since its uses almost 50% less code (using the HAML template)! ##### How to use HAML on your Ruby on Rails project This step is really easy, you just have to open you `Gemfile` file and add the HAML gem `gem 'haml'`. After doing it you will have to run `bundle install` on your root project folder to install our newest gem. (TIP: Remember to __restart__ your rails application after that - so it will load our new gem). ##### Basics HTML to HAML Now the we have the HAML gem installed and running on our project we can start using our new template engine. Good for us, Rails won't force us to change all of ours `html.erb` files into `html.haml` so we can have both kinds of file on your project (TIP: would be really good if you refactor all `html.erb` files into `html.haml` files). > If you're like me and doesn't like to have a mix of this files (`html.erb` and `html.haml`), you can use the [haml-rails gem](https://github.com/indirect/haml-rails) to convert all .erb views to haml format by using a [really easy command](https://github.com/indirect/haml-rails#converting-all-erb-views-to-haml-format). I will be using a regular `index.html.erb` file and I will refactor it from HTML to HAML, after that I will explain our main refactors. These are our current HTML files: > Main file (`index.html.erb`) ```erb <div class="container" id="main-container"> <div class="row mt-1"> <div class="col-sm-9"> <% resources.each do |resource| %> <%= render resource %> <% end %> </div> <div class="col-sm-3"> <%= render 'search' %> </div> </div> </div> ``` > Resource partial (`_resource.html.erb`) ```erb <div class="resource mt-3"> <div class="row"> <div class="col-12"> <%= link_to resource.value, resource.url, target: '_blank' %> <small class="badge badge-light" data-toggle="tooltip" data-active="true" data-position="top" title="Resource count"> <%= resource.total %> </small> </div> </div> <div class="row"> <div class="col-12"> <small> <%= resource.created_at %> </small> <small class="ml-2"> <%= link_to '', resource_path(resource), class: 'fa fa-trash delete', method: :delete, data: { confirm: t("delete_confirm") } %> </small> <small class="ml-2"> <%= link_to t('edit'), edit_resource_path(resource), class: 'edit' %> </small> </div> </div> </div> ``` > Search partial (`_search.html.erb`) ```erb <h4 class="mt-1"> <%= t('search_header') %> </h4> <%= form_for @q do |f| %> <div class="form-group"> <%= f.label :kind_eq, 'Resource kind' %> <%= f.select :kind_eq, Resource.kinds, { prompt: t('select_all') }, { class: 'form-control' } %> </div> <div class="form-group"> <%= f.label :value_cont, 'Resource value' %> <%= f.search_field :value_cont, class: 'form-control' %> </div> <%= f.submit class: 'btn btn-secondary' %> <% end %> ``` And now the newly created HAML files: > Main file (`index.html.haml`) ```haml .container#main-container .row.mt-1 .col-sm-9 - resources.each do |resource| = render 'resource' .col-sm-3 = render 'search' ``` > Resource partial (`_resource.html.haml`) ```haml .resource.mt-3 .row .col-12 = link_to resource.value, resource.url, target: '_blank' %small.badge.badge-light{ data: { toggle: 'tooltip', active: "true", position: "top" }, title: "Resource count" } = resource.total .row .col-12 %small = resource.created_at %small.ml-2 = link_to '', resource_path(resource), class: 'fa fa-trash delete', method: :delete, data: { confirm: t("delete_confirm") } %small.ml-2 = link_to t('edit'), edit_resource_path(resource), class: 'edit' ``` > Search partial (`_search.html.haml`) ```haml %h4.mt-1 = t('search_header') = search_form_for @q do |f| .form-group = f.label :kind_eq, 'Resource kind' = f.select :kind_eq, Resource.kinds, { prompt: t('select_all') }, { class: 'form-control' } .form-group = f.label :value_cont, 'Resource value' = f.search_field :value_cont, class: 'form-control' = f.submit class: 'btn btn-secondary' ``` ##### Explaining our refactoring > First of all we have to save our files using the `.haml` extension and not `.erb`. Forget the `<tag></tag>` , now we have to use `%tag` and we won't have to write `class="class-name"`, we just have to wrote `.class-name` and its almost the same for identifiers, instead of `id="identifier" we just have to write `#identifier` and it's done: > Yes, you're right! HAML uses the CSS conventions (`.` for classes and `#` for identifiers) ```erb <div class="container" id="main-container"> <div class="row mt-1"> Our content here </div> </div> ``` turns into: ```haml .container#main-container .row.mt-1 Our content here ``` > Yes, we won't have to write `div` since HAML uses the `div` tag as default tag, so `.container` will be processed as `%div.container`. We can also add nested attributes as _hash_ so we won't have to repeat ourself: ```erb <small class="badge badge-light" data-toggle="tooltip" data-active="true" data-position="top" title="Resource count"> <%= resource.total %> </small> ``` turns into: ```haml %small.badge.badge-light{ data: { toggle: 'tooltip', active: "true", position: "top" }, title: "Resource count" } = resource.total ``` > Remember: Since we are using _hash_ we have to follow its pattern (key: 'value', separated by commas) ##### Nice tricks with HAML - HAML **forces** us to keep the indentation, so our code will be easier to understand - We won't have to use the `%div` tag if we're using a _class_ or _id_ (HAML default tag is `%div`) - We can create easier nested attributes by using a _hash_ syntax (like: `{ first: { second: { third: 'value', fourth: 'another-value' } } ` turns into `first-second-third='value' first-second-third-fourth='another-value'` - You can use silent comments (no more comments on our HTML file) by using `-# comment here` - We won't need to close our tags, YEY! #### Curriculum This is my first Utopian tutorial! On the next tutorials I will be posting some CSS and SASS basics (using a Ruby on Rails project) tutorials. <br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@dpedoneze/speeding-up-your-development-using-haml-on-your-ruby-on-rails-project">Utopian.io - Rewarding Open Source Contributors</a></em><hr/>
json metadata{"community":"utopian","app":"utopian/1.0.0","format":"markdown","repository":{"id":426,"name":"haml","full_name":"haml/haml","html_url":"https://github.com/haml/haml","fork":false,"owner":{"login":"haml"}},"pullRequests":[],"platform":"github","type":"tutorials","tags":["utopian-io","rails","html","haml","frontend"],"users":["q"],"links":["https://github.com/indirect/haml-rails","https://github.com/indirect/haml-rails#converting-all-erb-views-to-haml-format"],"moderator":{"account":"portugalcoin","time":"2018-04-08T18:51:40.934Z","reviewed":true,"pending":false,"flagged":false},"questions":[{"question":"Is the project description formal?","answers":[{"value":"Yes it’s straight to the point","selected":true,"score":10},{"value":"Need more description ","selected":false,"score":5},{"value":"Not too descriptive","selected":false,"score":0}],"selected":0},{"question":"Is the language / grammar correct?","answers":[{"value":"Yes","selected":false,"score":20},{"value":"A few mistakes","selected":true,"score":10},{"value":"It's pretty bad","selected":false,"score":0}],"selected":1},{"question":"Was the template followed?","answers":[{"value":"Yes","selected":true,"score":10},{"value":"Partially","selected":false,"score":5},{"value":"No","selected":false,"score":0}],"selected":0},{"question":"Is there information about the additional frameworks?","answers":[{"value":"Yes, everything is explained","selected":true,"score":5},{"value":"Yes, but not enough","selected":false,"score":3},{"value":"No details at all","selected":false,"score":0}],"selected":0},{"question":"Is there code in the tutorial?","answers":[{"value":"Yes, and it’s well explained","selected":true,"score":5},{"value":"Yes, but no explanation","selected":false,"score":3},{"value":"No","selected":false,"score":0}],"selected":0},{"question":"Is the tutorial explains technical aspects well enough?","answers":[{"value":"Yes, it teaches how and why about technical aspects","selected":true,"score":5},{"value":"Yes, but it’s not good/enough","selected":false,"score":3},{"value":"No, it explains poorly","selected":false,"score":0}],"selected":0},{"question":"Is the tutorial general and dense enough?","answers":[{"value":"Yes, it’s general and dense","selected":true,"score":5},{"value":"Kinda, it might be more generalized","selected":false,"score":3},{"value":"No, it’s sliced unnecessarily to keep part number high","selected":false,"score":0}],"selected":0},{"question":"Is there an outline for the tutorial content at the beginning of the post","answers":[{"value":"Yes, there is a well prepared outline in “What will I learn?” or another outline section","selected":true,"score":5},{"value":"Yes, but there is no proper listing for every step of the tutorial or it’s not detailed enough","selected":false,"score":3},{"value":"No, there is no outline for the steps.","selected":false,"score":0}],"selected":0},{"question":"Is the visual content of good quality?","answers":[{"value":"Yes","selected":true,"score":5},{"value":"Yes, but bad quality","selected":false,"score":3},{"value":"No","selected":false,"score":0}],"selected":0},{"question":"Is this a tutorial series?","answers":[{"value":"Yes","selected":true,"score":5},{"value":"Yes, but first part","selected":false,"score":3},{"value":"No","selected":false,"score":0}],"selected":0},{"question":"Is the tutorial post structured?","answers":[{"value":"Yes","selected":true,"score":5},{"value":"Not so good","selected":false,"score":3},{"value":"No","selected":false,"score":0}],"selected":0}],"score":50}
Transaction InfoBlock #21394582/Trx 7a066472225ef34f57f285562361c5be93df2f7c
View Raw JSON Data
{
  "trx_id": "7a066472225ef34f57f285562361c5be93df2f7c",
  "block": 21394582,
  "trx_in_block": 32,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T18:51:45",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "utopian-io",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "title": "Speeding up your development using HAML on your Ruby on Rails project",
      "body": "#### What Will I Learn?\nIn this tutorial, you will learn the HAML  (HTML abstraction markup language) basics and how to speed up your development by using HAML instead of the regular HTML (in rails `html.erb` files).\n\n- You will learn how to use HAML on your Ruby on Rails project;\n- You will learn the basics HTML to HAML;\n- You will learn some nice tricks with HAML.\n\n#### Requirements\nIn order to follow this tutorial you will have to fill those requirements:\n\n- Basic HTML knowledge;\n- Basic Ruby on Rails knowledge;\n- A Ruby on Rails project (you can create a new one by using the `rails new haml_basics` command.\n\n#### Difficulty\n\n- Basic\n\n#### Tutorial Contents\nHAML (HTML abstraction markup language) is a templating engine for HTML, witch really speeds up your development since its uses almost 50% less code (using the HAML template)!\n\n##### How to use HAML on your Ruby on Rails project\n\nThis step is really easy, you just have to open you `Gemfile` file and add the HAML gem `gem 'haml'`. \n\nAfter doing it you will have to run `bundle install` on your root project folder to install our newest gem. (TIP: Remember to __restart__ your rails application after that - so it will load our new gem).\n\n##### Basics HTML to HAML\n\nNow the we have the HAML gem installed and running on our project we can start using our new template engine. Good for us, Rails won't force us to change all of ours `html.erb` files into `html.haml` so we can have both kinds of file on your project (TIP: would be really good if you refactor all `html.erb` files into `html.haml` files).\n\n> If you're like me and doesn't like to have a mix of this files (`html.erb` and `html.haml`), you can use the [haml-rails gem](https://github.com/indirect/haml-rails) to convert all .erb views to haml format by using a [really easy command](https://github.com/indirect/haml-rails#converting-all-erb-views-to-haml-format).\n\nI will be using a regular `index.html.erb` file and I will refactor it from HTML to HAML, after that I will explain our main refactors.\n\nThese are our current HTML files:\n\n> Main file (`index.html.erb`) \n```erb\n <div class=\"container\"  id=\"main-container\">\n  <div class=\"row mt-1\">\n    <div class=\"col-sm-9\">\n      <% resources.each do |resource| %>\n        <%= render resource %>\n      <% end %>\n    </div>\n    \n    <div class=\"col-sm-3\">\n      <%= render 'search' %>\n    </div>\n  </div>\n</div>\n```\n\n> Resource partial (`_resource.html.erb`)\n\n```erb\n<div class=\"resource mt-3\">\n  <div class=\"row\">\n    <div class=\"col-12\">\n      <%= link_to resource.value, resource.url, target: '_blank' %>\n\n      <small class=\"badge badge-light\" data-toggle=\"tooltip\"  data-active=\"true\" data-position=\"top\" title=\"Resource count\">\n        <%= resource.total %>\n      </small>\n    </div>\n  </div>\n\n  <div class=\"row\">\n    <div class=\"col-12\">\n      <small>\n        <%= resource.created_at %>\n      </small>\n      \n      <small class=\"ml-2\">\n        <%= link_to '', resource_path(resource), class: 'fa fa-trash delete', method: :delete, data: { confirm: t(\"delete_confirm\") } %>\n      </small>\n      \n      <small class=\"ml-2\">\n        <%= link_to t('edit'), edit_resource_path(resource), class: 'edit' %>\n      </small>\n    </div>\n  </div>\n</div>\n```\n\n> Search partial (`_search.html.erb`)\n```erb\n<h4 class=\"mt-1\">\n  <%= t('search_header') %>\n</h4>\n\n<%= form_for @q do |f| %>\n  <div class=\"form-group\">\n    <%= f.label :kind_eq, 'Resource kind' %>\n    <%= f.select :kind_eq, Resource.kinds, { prompt: t('select_all') }, { class: 'form-control' } %>\n  </div>\n  \n  <div class=\"form-group\">\n    <%= f.label :value_cont, 'Resource value' %>\n    <%= f.search_field :value_cont, class: 'form-control' %>\n  </div>\n\n  <%= f.submit class: 'btn btn-secondary' %>\n<% end %>\n```\n\nAnd now the newly created HAML files:\n\n> Main file (`index.html.haml`)\n```haml\n.container#main-container\n  .row.mt-1\n    .col-sm-9\n      - resources.each do |resource|\n        = render 'resource'\n\n    .col-sm-3\n      = render 'search'\n```\n\n> Resource partial (`_resource.html.haml`)\n```haml\n  .resource.mt-3\n    .row\n      .col-12\n        = link_to resource.value, resource.url, target: '_blank'\n        \n        %small.badge.badge-light{ data: { toggle: 'tooltip',  active: \"true\", position: \"top\" }, title: \"Resource count\" }\n          = resource.total\n    \n    .row\n      .col-12\n        %small\n          = resource.created_at\n\n        %small.ml-2\n          = link_to '', resource_path(resource), class: 'fa fa-trash delete', method: :delete, data: { confirm: t(\"delete_confirm\") }\n        %small.ml-2\n          = link_to t('edit'), edit_resource_path(resource), class: 'edit'\n```\n\n> Search partial (`_search.html.haml`)\n```haml\n%h4.mt-1\n  = t('search_header')\n\n= search_form_for @q do |f|\n  .form-group\n    = f.label :kind_eq, 'Resource kind'\n    = f.select :kind_eq, Resource.kinds, { prompt: t('select_all') }, { class: 'form-control' }\n\n  .form-group\n    = f.label :value_cont, 'Resource value'\n    = f.search_field :value_cont, class: 'form-control'\n\n  = f.submit class: 'btn btn-secondary'\n```\n\n##### Explaining our refactoring\n\n> First of all we have to save our files using the `.haml` extension and not `.erb`.\n\nForget the `<tag></tag>` , now we have to use `%tag` and we won't have to write `class=\"class-name\"`, we just have to wrote `.class-name` and its almost the same for identifiers, instead of `id=\"identifier\" we just have to write `#identifier` and it's done:\n\n> Yes, you're right! HAML uses the CSS conventions (`.` for classes and `#` for identifiers)\n\n```erb\n<div class=\"container\" id=\"main-container\">\n  <div class=\"row mt-1\">\n   Our content here\n  </div>\n</div>\n```\n\nturns into:\n\n```haml\n.container#main-container\n  .row.mt-1\n    Our content here\n```\n> Yes, we won't have to write `div` since HAML uses the `div` tag as default tag, so `.container` will be processed as `%div.container`.\n\nWe can also add nested attributes as _hash_ so we won't have to repeat ourself:\n\n```erb\n<small class=\"badge badge-light\" data-toggle=\"tooltip\" data-active=\"true\" data-position=\"top\" title=\"Resource count\">\n  <%= resource.total %>\n</small>\n```\n\nturns into:\n\n```haml\n%small.badge.badge-light{ data: { toggle: 'tooltip',  active: \"true\", position: \"top\" }, title: \"Resource count\" }\n  = resource.total\n```\n> Remember: Since we are using _hash_ we have to follow its pattern (key: 'value', separated by commas)\n\n##### Nice tricks with HAML\n\n- HAML **forces** us to keep the indentation, so our code will be easier to understand\n- We won't have to use the `%div` tag if we're using a _class_ or _id_ (HAML default tag is `%div`)\n- We can create easier nested attributes by using a _hash_ syntax (like: `{ first: { second: { third: 'value', fourth: 'another-value' } } ` turns into `first-second-third='value' first-second-third-fourth='another-value'` \n- You can use silent comments (no more comments on our HTML file) by using `-# comment here`\n- We won't need to close our tags, YEY!\n\n#### Curriculum\nThis is my first Utopian tutorial! On the next tutorials I will be posting some CSS and SASS basics (using a Ruby on Rails project) tutorials.\n    \n\n<br /><hr/><em>Posted on <a href=\"https://utopian.io/utopian-io/@dpedoneze/speeding-up-your-development-using-haml-on-your-ruby-on-rails-project\">Utopian.io -  Rewarding Open Source Contributors</a></em><hr/>",
      "json_metadata": "{\"community\":\"utopian\",\"app\":\"utopian/1.0.0\",\"format\":\"markdown\",\"repository\":{\"id\":426,\"name\":\"haml\",\"full_name\":\"haml/haml\",\"html_url\":\"https://github.com/haml/haml\",\"fork\":false,\"owner\":{\"login\":\"haml\"}},\"pullRequests\":[],\"platform\":\"github\",\"type\":\"tutorials\",\"tags\":[\"utopian-io\",\"rails\",\"html\",\"haml\",\"frontend\"],\"users\":[\"q\"],\"links\":[\"https://github.com/indirect/haml-rails\",\"https://github.com/indirect/haml-rails#converting-all-erb-views-to-haml-format\"],\"moderator\":{\"account\":\"portugalcoin\",\"time\":\"2018-04-08T18:51:40.934Z\",\"reviewed\":true,\"pending\":false,\"flagged\":false},\"questions\":[{\"question\":\"Is the project description formal?\",\"answers\":[{\"value\":\"Yes it’s straight to the point\",\"selected\":true,\"score\":10},{\"value\":\"Need more description \",\"selected\":false,\"score\":5},{\"value\":\"Not too descriptive\",\"selected\":false,\"score\":0}],\"selected\":0},{\"question\":\"Is the language / grammar correct?\",\"answers\":[{\"value\":\"Yes\",\"selected\":false,\"score\":20},{\"value\":\"A few mistakes\",\"selected\":true,\"score\":10},{\"value\":\"It's pretty bad\",\"selected\":false,\"score\":0}],\"selected\":1},{\"question\":\"Was the template followed?\",\"answers\":[{\"value\":\"Yes\",\"selected\":true,\"score\":10},{\"value\":\"Partially\",\"selected\":false,\"score\":5},{\"value\":\"No\",\"selected\":false,\"score\":0}],\"selected\":0},{\"question\":\"Is there information about the additional frameworks?\",\"answers\":[{\"value\":\"Yes, everything is explained\",\"selected\":true,\"score\":5},{\"value\":\"Yes, but not enough\",\"selected\":false,\"score\":3},{\"value\":\"No details at all\",\"selected\":false,\"score\":0}],\"selected\":0},{\"question\":\"Is there code in the tutorial?\",\"answers\":[{\"value\":\"Yes, and it’s well explained\",\"selected\":true,\"score\":5},{\"value\":\"Yes, but no explanation\",\"selected\":false,\"score\":3},{\"value\":\"No\",\"selected\":false,\"score\":0}],\"selected\":0},{\"question\":\"Is the tutorial explains technical aspects well enough?\",\"answers\":[{\"value\":\"Yes, it teaches how and why about technical aspects\",\"selected\":true,\"score\":5},{\"value\":\"Yes, but it’s not good/enough\",\"selected\":false,\"score\":3},{\"value\":\"No, it explains poorly\",\"selected\":false,\"score\":0}],\"selected\":0},{\"question\":\"Is the tutorial general and dense enough?\",\"answers\":[{\"value\":\"Yes, it’s general and dense\",\"selected\":true,\"score\":5},{\"value\":\"Kinda, it might be more generalized\",\"selected\":false,\"score\":3},{\"value\":\"No, it’s sliced unnecessarily to keep part number high\",\"selected\":false,\"score\":0}],\"selected\":0},{\"question\":\"Is there an outline for the tutorial content at the beginning of the post\",\"answers\":[{\"value\":\"Yes, there is a well prepared outline in “What will I learn?” or another outline section\",\"selected\":true,\"score\":5},{\"value\":\"Yes, but there is no proper listing for every step of the tutorial or it’s not detailed enough\",\"selected\":false,\"score\":3},{\"value\":\"No, there is no outline for the steps.\",\"selected\":false,\"score\":0}],\"selected\":0},{\"question\":\"Is the visual content of good quality?\",\"answers\":[{\"value\":\"Yes\",\"selected\":true,\"score\":5},{\"value\":\"Yes, but bad quality\",\"selected\":false,\"score\":3},{\"value\":\"No\",\"selected\":false,\"score\":0}],\"selected\":0},{\"question\":\"Is this a tutorial series?\",\"answers\":[{\"value\":\"Yes\",\"selected\":true,\"score\":5},{\"value\":\"Yes, but first part\",\"selected\":false,\"score\":3},{\"value\":\"No\",\"selected\":false,\"score\":0}],\"selected\":0},{\"question\":\"Is the tutorial post structured?\",\"answers\":[{\"value\":\"Yes\",\"selected\":true,\"score\":5},{\"value\":\"Not so good\",\"selected\":false,\"score\":3},{\"value\":\"No\",\"selected\":false,\"score\":0}],\"selected\":0}],\"score\":50}"
    }
  ]
}
2018/04/08 14:14:42
voterjohngreenfield
authordpedoneze
permlinkre-johngreenfield-tutorial-html-101-learn-the-basics-20180408t135539401z
weight10000 (100.00%)
Transaction InfoBlock #21389041/Trx d8d175eeee4ee0402a59666bc5a6e0691a620656
View Raw JSON Data
{
  "trx_id": "d8d175eeee4ee0402a59666bc5a6e0691a620656",
  "block": 21389041,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T14:14:42",
  "op": [
    "vote",
    {
      "voter": "johngreenfield",
      "author": "dpedoneze",
      "permlink": "re-johngreenfield-tutorial-html-101-learn-the-basics-20180408t135539401z",
      "weight": 10000
    }
  ]
}
2018/04/08 13:55:42
parent authorjohngreenfield
parent permlinktutorial-html-101-learn-the-basics
authordpedoneze
permlinkre-johngreenfield-tutorial-html-101-learn-the-basics-20180408t135539401z
title
bodyNice! I'd try to keep some indentation in your "index.html" so it's easier to read :)
json metadata{"tags":["tutorial"],"app":"steemit/0.1"}
Transaction InfoBlock #21388661/Trx aa76fe0ce2fa7c30dfefa290bb64009c12d5d0bc
View Raw JSON Data
{
  "trx_id": "aa76fe0ce2fa7c30dfefa290bb64009c12d5d0bc",
  "block": 21388661,
  "trx_in_block": 37,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T13:55:42",
  "op": [
    "comment",
    {
      "parent_author": "johngreenfield",
      "parent_permlink": "tutorial-html-101-learn-the-basics",
      "author": "dpedoneze",
      "permlink": "re-johngreenfield-tutorial-html-101-learn-the-basics-20180408t135539401z",
      "title": "",
      "body": "Nice! I'd try to keep some indentation in your \"index.html\" so it's easier to read :)",
      "json_metadata": "{\"tags\":[\"tutorial\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2018/04/08 13:53:00
voterdpedoneze
authorjohngreenfield
permlinktutorial-html-101-learn-the-basics
weight10000 (100.00%)
Transaction InfoBlock #21388607/Trx 3e384c74903f8d97443bcd1e3b3d6b999554c94f
View Raw JSON Data
{
  "trx_id": "3e384c74903f8d97443bcd1e3b3d6b999554c94f",
  "block": 21388607,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-08T13:53:00",
  "op": [
    "vote",
    {
      "voter": "dpedoneze",
      "author": "johngreenfield",
      "permlink": "tutorial-html-101-learn-the-basics",
      "weight": 10000
    }
  ]
}
2018/04/07 19:43:15
voterintroduce.bot
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
weight200 (2.00%)
Transaction InfoBlock #21366814/Trx 737d54ab51e844293c2f326fcb4f6a3cc5c4b336
View Raw JSON Data
{
  "trx_id": "737d54ab51e844293c2f326fcb4f6a3cc5c4b336",
  "block": 21366814,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-07T19:43:15",
  "op": [
    "vote",
    {
      "voter": "introduce.bot",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "weight": 200
    }
  ]
}
2018/04/07 19:15:18
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"meblogger","what":["blog"]}]
Transaction InfoBlock #21366255/Trx d93cc0946c52890ab9047a971ab394489586a4bd
View Raw JSON Data
{
  "trx_id": "d93cc0946c52890ab9047a971ab394489586a4bd",
  "block": 21366255,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-07T19:15:18",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"meblogger\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/07 19:15:15
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"yissakhar","what":["blog"]}]
Transaction InfoBlock #21366254/Trx 162fd4e7a86c1ad8fe10d7545e3abe090fdb7905
View Raw JSON Data
{
  "trx_id": "162fd4e7a86c1ad8fe10d7545e3abe090fdb7905",
  "block": 21366254,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-07T19:15:15",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"yissakhar\",\"what\":[\"blog\"]}]"
    }
  ]
}
dpedonezefollowed @amn
2018/04/07 19:14:45
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"amn","what":["blog"]}]
Transaction InfoBlock #21366244/Trx e56285137f0dd698255c65a30149aad0e92cd597
View Raw JSON Data
{
  "trx_id": "e56285137f0dd698255c65a30149aad0e92cd597",
  "block": 21366244,
  "trx_in_block": 34,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-07T19:14:45",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"amn\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/07 19:14:30
required auths[]
required posting auths["dpedoneze"]
idfollow
json["follow",{"follower":"dpedoneze","following":"iamankit","what":["blog"]}]
Transaction InfoBlock #21366239/Trx 2d8fc9c70a65fcff13658c2407df7677ee6b103e
View Raw JSON Data
{
  "trx_id": "2d8fc9c70a65fcff13658c2407df7677ee6b103e",
  "block": 21366239,
  "trx_in_block": 28,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-07T19:14:30",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "dpedoneze"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"dpedoneze\",\"following\":\"iamankit\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/04/07 19:13:06
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
max accepted payout1000000.000 SBD
percent steem dollars10000
allow votestrue
allow curation rewardstrue
extensions[[0,{"beneficiaries":[{"account":"utopian.pay","weight":2500}]}]]
Transaction InfoBlock #21366211/Trx 2374a3061d9578fae4d1fd242e18c544b3f06af0
View Raw JSON Data
{
  "trx_id": "2374a3061d9578fae4d1fd242e18c544b3f06af0",
  "block": 21366211,
  "trx_in_block": 27,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-07T19:13:06",
  "op": [
    "comment_options",
    {
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "max_accepted_payout": "1000000.000 SBD",
      "percent_steem_dollars": 10000,
      "allow_votes": true,
      "allow_curation_rewards": true,
      "extensions": [
        [
          0,
          {
            "beneficiaries": [
              {
                "account": "utopian.pay",
                "weight": 2500
              }
            ]
          }
        ]
      ]
    }
  ]
}
2018/04/07 19:13:06
parent author
parent permlinkutopian-io
authordpedoneze
permlinkspeeding-up-your-development-using-haml-on-your-ruby-on-rails-project
titleSpeeding up your development using HAML on your Ruby on Rails project
body#### What Will I Learn? In this tutorial, you will learn the HAML (HTML abstraction markup language) basics and how to speed up your development by using HAML instead of the regular HTML (in rails `html.erb` files). - You will learn how to use HAML on your Ruby on Rails project; - You will learn the basics HTML to HAML; - You will learn some nice tricks with HAML. #### Requirements In order to follow this tutorial you will have to fill those requirements: - Basic HTML knowledge; - Basic Ruby on Rails knowledge; - A Ruby on Rails project (you can create a new one by using the `rails new haml_basics` command. #### Difficulty - Basic #### Tutorial Contents HAML (HTML abstraction markup language) is a templating engine for HTML, witch really speeds up your development since its uses almost 50% less code (using the HAML template)! ##### How to use HAML on your Ruby on Rails project This step is really easy, you just have to open you `Gemfile` file and add the HAML gem `gem 'haml'`. After doing it you will have to run `bundle install` on your root project folder to install our newest gem. (TIP: Remember to __restart__ your rails application after that - so it will load our new gem). ##### Basics HTML to HAML Now the we have the HAML gem installed and running on our project we can start using our new template engine. Good for us, Rails won't force us to change all of ours `html.erb` files into `html.haml` so we can have both kinds of file on your project (TIP: would be really good if you refactor all `html.erb` files into `html.haml` files). > If you're like me and doesn't like to have a mix of this files (`html.erb` and `html.haml`), you can use the [haml-rails gem](https://github.com/indirect/haml-rails) to convert all .erb views to haml format by using a [really easy command](https://github.com/indirect/haml-rails#converting-all-erb-views-to-haml-format). I will be using a regular `index.html.erb` file and I will refactor it from HTML to HAML, after that I will explain our main refactors. These are our current HTML files: > Main file (`index.html.erb`) ```erb <div class="container" id="main-container"> <div class="row mt-1"> <div class="col-sm-9"> <% resources.each do |resource| %> <%= render resource %> <% end %> </div> <div class="col-sm-3"> <%= render 'search' %> </div> </div> </div> ``` > Resource partial (`_resource.html.erb`) ```erb <div class="resource mt-3"> <div class="row"> <div class="col-12"> <%= link_to resource.value, resource.url, target: '_blank' %> <small class="badge badge-light" data-toggle="tooltip" data-active="true" data-position="top" title="Resource count"> <%= resource.total %> </small> </div> </div> <div class="row"> <div class="col-12"> <small> <%= resource.created_at %> </small> <small class="ml-2"> <%= link_to '', resource_path(resource), class: 'fa fa-trash delete', method: :delete, data: { confirm: t("delete_confirm") } %> </small> <small class="ml-2"> <%= link_to t('edit'), edit_resource_path(resource), class: 'edit' %> </small> </div> </div> </div> ``` > Search partial (`_search.html.erb`) ```erb <h4 class="mt-1"> <%= t('search_header') %> </h4> <%= form_for @q do |f| %> <div class="form-group"> <%= f.label :kind_eq, 'Resource kind' %> <%= f.select :kind_eq, Resource.kinds, { prompt: t('select_all') }, { class: 'form-control' } %> </div> <div class="form-group"> <%= f.label :value_cont, 'Resource value' %> <%= f.search_field :value_cont, class: 'form-control' %> </div> <%= f.submit class: 'btn btn-secondary' %> <% end %> ``` And now the newly created HAML files: > Main file (`index.html.haml`) ```haml .container#main-container .row.mt-1 .col-sm-9 - resources.each do |resource| = render 'resource' .col-sm-3 = render 'search' ``` > Resource partial (`_resource.html.haml`) ```haml .resource.mt-3 .row .col-12 = link_to resource.value, resource.url, target: '_blank' %small.badge.badge-light{ data: { toggle: 'tooltip', active: "true", position: "top" }, title: "Resource count" } = resource.total .row .col-12 %small = resource.created_at %small.ml-2 = link_to '', resource_path(resource), class: 'fa fa-trash delete', method: :delete, data: { confirm: t("delete_confirm") } %small.ml-2 = link_to t('edit'), edit_resource_path(resource), class: 'edit' ``` > Search partial (`_search.html.haml`) ```haml %h4.mt-1 = t('search_header') = search_form_for @q do |f| .form-group = f.label :kind_eq, 'Resource kind' = f.select :kind_eq, Resource.kinds, { prompt: t('select_all') }, { class: 'form-control' } .form-group = f.label :value_cont, 'Resource value' = f.search_field :value_cont, class: 'form-control' = f.submit class: 'btn btn-secondary' ``` ##### Explaining our refactoring > First of all we have to save our files using the `.haml` extension and not `.erb`. Forget the `<tag></tag>` , now we have to use `%tag` and we won't have to write `class="class-name"`, we just have to wrote `.class-name` and its almost the same for identifiers, instead of `id="identifier" we just have to write `#identifier` and it's done: > Yes, you're right! HAML uses the CSS conventions (`.` for classes and `#` for identifiers) ```erb <div class="container" id="main-container"> <div class="row mt-1"> Our content here </div> </div> ``` turns into: ```haml .container#main-container .row.mt-1 Our content here ``` > Yes, we won't have to write `div` since HAML uses the `div` tag as default tag, so `.container` will be processed as `%div.container`. We can also add nested attributes as _hash_ so we won't have to repeat ourself: ```erb <small class="badge badge-light" data-toggle="tooltip" data-active="true" data-position="top" title="Resource count"> <%= resource.total %> </small> ``` turns into: ```haml %small.badge.badge-light{ data: { toggle: 'tooltip', active: "true", position: "top" }, title: "Resource count" } = resource.total ``` > Remember: Since we are using _hash_ we have to follow its pattern (key: 'value', separated by commas) ##### Nice tricks with HAML - HAML **forces** us to keep the indentation, so our code will be easier to understand - We won't have to use the `%div` tag if we're using a _class_ or _id_ (HAML default tag is `%div`) - We can create easier nested attributes by using a _hash_ syntax (like: `{ first: { second: { third: 'value', fourth: 'another-value' } } ` turns into `first-second-third='value' first-second-third-fourth='another-value'` - You can use silent comments (no more comments on our HTML file) by using `-# comment here` - We won't need to close our tags, YEY! #### Curriculum This is my first Utopian tutorial! On the next tutorials I will be posting some CSS and SASS basics (using a Ruby on Rails project) tutorials. <br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@dpedoneze/speeding-up-your-development-using-haml-on-your-ruby-on-rails-project">Utopian.io - Rewarding Open Source Contributors</a></em><hr/>
json metadata{"community":"utopian","app":"utopian/1.0.0","format":"markdown","repository":{"id":426,"name":"haml","full_name":"haml/haml","html_url":"https://github.com/haml/haml","fork":false,"owner":{"login":"haml"}},"pullRequests":[],"platform":"github","type":"tutorials","tags":["utopian-io","rails","html","haml","frontend"],"users":["q"],"links":["https://github.com/indirect/haml-rails","https://github.com/indirect/haml-rails#converting-all-erb-views-to-haml-format"]}
Transaction InfoBlock #21366211/Trx 2374a3061d9578fae4d1fd242e18c544b3f06af0
View Raw JSON Data
{
  "trx_id": "2374a3061d9578fae4d1fd242e18c544b3f06af0",
  "block": 21366211,
  "trx_in_block": 27,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-07T19:13:06",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "utopian-io",
      "author": "dpedoneze",
      "permlink": "speeding-up-your-development-using-haml-on-your-ruby-on-rails-project",
      "title": "Speeding up your development using HAML on your Ruby on Rails project",
      "body": "#### What Will I Learn?\nIn this tutorial, you will learn the HAML  (HTML abstraction markup language) basics and how to speed up your development by using HAML instead of the regular HTML (in rails `html.erb` files).\n\n- You will learn how to use HAML on your Ruby on Rails project;\n- You will learn the basics HTML to HAML;\n- You will learn some nice tricks with HAML.\n\n#### Requirements\nIn order to follow this tutorial you will have to fill those requirements:\n\n- Basic HTML knowledge;\n- Basic Ruby on Rails knowledge;\n- A Ruby on Rails project (you can create a new one by using the `rails new haml_basics` command.\n\n#### Difficulty\n\n- Basic\n\n#### Tutorial Contents\nHAML (HTML abstraction markup language) is a templating engine for HTML, witch really speeds up your development since its uses almost 50% less code (using the HAML template)!\n\n##### How to use HAML on your Ruby on Rails project\n\nThis step is really easy, you just have to open you `Gemfile` file and add the HAML gem `gem 'haml'`. \n\nAfter doing it you will have to run `bundle install` on your root project folder to install our newest gem. (TIP: Remember to __restart__ your rails application after that - so it will load our new gem).\n\n##### Basics HTML to HAML\n\nNow the we have the HAML gem installed and running on our project we can start using our new template engine. Good for us, Rails won't force us to change all of ours `html.erb` files into `html.haml` so we can have both kinds of file on your project (TIP: would be really good if you refactor all `html.erb` files into `html.haml` files).\n\n> If you're like me and doesn't like to have a mix of this files (`html.erb` and `html.haml`), you can use the [haml-rails gem](https://github.com/indirect/haml-rails) to convert all .erb views to haml format by using a [really easy command](https://github.com/indirect/haml-rails#converting-all-erb-views-to-haml-format).\n\nI will be using a regular `index.html.erb` file and I will refactor it from HTML to HAML, after that I will explain our main refactors.\n\nThese are our current HTML files:\n\n> Main file (`index.html.erb`) \n```erb\n <div class=\"container\"  id=\"main-container\">\n  <div class=\"row mt-1\">\n    <div class=\"col-sm-9\">\n      <% resources.each do |resource| %>\n        <%= render resource %>\n      <% end %>\n    </div>\n    \n    <div class=\"col-sm-3\">\n      <%= render 'search' %>\n    </div>\n  </div>\n</div>\n```\n\n> Resource partial (`_resource.html.erb`)\n\n```erb\n<div class=\"resource mt-3\">\n  <div class=\"row\">\n    <div class=\"col-12\">\n      <%= link_to resource.value, resource.url, target: '_blank' %>\n\n      <small class=\"badge badge-light\" data-toggle=\"tooltip\"  data-active=\"true\" data-position=\"top\" title=\"Resource count\">\n        <%= resource.total %>\n      </small>\n    </div>\n  </div>\n\n  <div class=\"row\">\n    <div class=\"col-12\">\n      <small>\n        <%= resource.created_at %>\n      </small>\n      \n      <small class=\"ml-2\">\n        <%= link_to '', resource_path(resource), class: 'fa fa-trash delete', method: :delete, data: { confirm: t(\"delete_confirm\") } %>\n      </small>\n      \n      <small class=\"ml-2\">\n        <%= link_to t('edit'), edit_resource_path(resource), class: 'edit' %>\n      </small>\n    </div>\n  </div>\n</div>\n```\n\n> Search partial (`_search.html.erb`)\n```erb\n<h4 class=\"mt-1\">\n  <%= t('search_header') %>\n</h4>\n\n<%= form_for @q do |f| %>\n  <div class=\"form-group\">\n    <%= f.label :kind_eq, 'Resource kind' %>\n    <%= f.select :kind_eq, Resource.kinds, { prompt: t('select_all') }, { class: 'form-control' } %>\n  </div>\n  \n  <div class=\"form-group\">\n    <%= f.label :value_cont, 'Resource value' %>\n    <%= f.search_field :value_cont, class: 'form-control' %>\n  </div>\n\n  <%= f.submit class: 'btn btn-secondary' %>\n<% end %>\n```\n\nAnd now the newly created HAML files:\n\n> Main file (`index.html.haml`)\n```haml\n.container#main-container\n  .row.mt-1\n    .col-sm-9\n      - resources.each do |resource|\n        = render 'resource'\n\n    .col-sm-3\n      = render 'search'\n```\n\n> Resource partial (`_resource.html.haml`)\n```haml\n  .resource.mt-3\n    .row\n      .col-12\n        = link_to resource.value, resource.url, target: '_blank'\n        \n        %small.badge.badge-light{ data: { toggle: 'tooltip',  active: \"true\", position: \"top\" }, title: \"Resource count\" }\n          = resource.total\n    \n    .row\n      .col-12\n        %small\n          = resource.created_at\n\n        %small.ml-2\n          = link_to '', resource_path(resource), class: 'fa fa-trash delete', method: :delete, data: { confirm: t(\"delete_confirm\") }\n        %small.ml-2\n          = link_to t('edit'), edit_resource_path(resource), class: 'edit'\n```\n\n> Search partial (`_search.html.haml`)\n```haml\n%h4.mt-1\n  = t('search_header')\n\n= search_form_for @q do |f|\n  .form-group\n    = f.label :kind_eq, 'Resource kind'\n    = f.select :kind_eq, Resource.kinds, { prompt: t('select_all') }, { class: 'form-control' }\n\n  .form-group\n    = f.label :value_cont, 'Resource value'\n    = f.search_field :value_cont, class: 'form-control'\n\n  = f.submit class: 'btn btn-secondary'\n```\n\n##### Explaining our refactoring\n\n> First of all we have to save our files using the `.haml` extension and not `.erb`.\n\nForget the `<tag></tag>` , now we have to use `%tag` and we won't have to write `class=\"class-name\"`, we just have to wrote `.class-name` and its almost the same for identifiers, instead of `id=\"identifier\" we just have to write `#identifier` and it's done:\n\n> Yes, you're right! HAML uses the CSS conventions (`.` for classes and `#` for identifiers)\n\n```erb\n<div class=\"container\" id=\"main-container\">\n  <div class=\"row mt-1\">\n   Our content here\n  </div>\n</div>\n```\n\nturns into:\n\n```haml\n.container#main-container\n  .row.mt-1\n    Our content here\n```\n> Yes, we won't have to write `div` since HAML uses the `div` tag as default tag, so `.container` will be processed as `%div.container`.\n\nWe can also add nested attributes as _hash_ so we won't have to repeat ourself:\n\n```erb\n<small class=\"badge badge-light\" data-toggle=\"tooltip\" data-active=\"true\" data-position=\"top\" title=\"Resource count\">\n  <%= resource.total %>\n</small>\n```\n\nturns into:\n\n```haml\n%small.badge.badge-light{ data: { toggle: 'tooltip',  active: \"true\", position: \"top\" }, title: \"Resource count\" }\n  = resource.total\n```\n> Remember: Since we are using _hash_ we have to follow its pattern (key: 'value', separated by commas)\n\n##### Nice tricks with HAML\n\n- HAML **forces** us to keep the indentation, so our code will be easier to understand\n- We won't have to use the `%div` tag if we're using a _class_ or _id_ (HAML default tag is `%div`)\n- We can create easier nested attributes by using a _hash_ syntax (like: `{ first: { second: { third: 'value', fourth: 'another-value' } } ` turns into `first-second-third='value' first-second-third-fourth='another-value'` \n- You can use silent comments (no more comments on our HTML file) by using `-# comment here`\n- We won't need to close our tags, YEY!\n\n#### Curriculum\nThis is my first Utopian tutorial! On the next tutorials I will be posting some CSS and SASS basics (using a Ruby on Rails project) tutorials.\n    \n\n<br /><hr/><em>Posted on <a href=\"https://utopian.io/utopian-io/@dpedoneze/speeding-up-your-development-using-haml-on-your-ruby-on-rails-project\">Utopian.io -  Rewarding Open Source Contributors</a></em><hr/>",
      "json_metadata": "{\"community\":\"utopian\",\"app\":\"utopian/1.0.0\",\"format\":\"markdown\",\"repository\":{\"id\":426,\"name\":\"haml\",\"full_name\":\"haml/haml\",\"html_url\":\"https://github.com/haml/haml\",\"fork\":false,\"owner\":{\"login\":\"haml\"}},\"pullRequests\":[],\"platform\":\"github\",\"type\":\"tutorials\",\"tags\":[\"utopian-io\",\"rails\",\"html\",\"haml\",\"frontend\"],\"users\":[\"q\"],\"links\":[\"https://github.com/indirect/haml-rails\",\"https://github.com/indirect/haml-rails#converting-all-erb-views-to-haml-format\"]}"
    }
  ]
}
dpedonezeupdated their account properties
2018/04/07 16:33:54
accountdpedoneze
memo keySTM61Z9Yc6io7Q13jUqD9yHXX9cDMMWjzVKmxGuSL27qcjXzJirbu
json metadata{"profile":{"profile_image":"https://avatars0.githubusercontent.com/u/5757502","name":"D. Pedoneze"}}
Transaction InfoBlock #21363027/Trx 7f22857939bba4d020ae021e647df82dc7630f6a
View Raw JSON Data
{
  "trx_id": "7f22857939bba4d020ae021e647df82dc7630f6a",
  "block": 21363027,
  "trx_in_block": 34,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-07T16:33:54",
  "op": [
    "account_update",
    {
      "account": "dpedoneze",
      "memo_key": "STM61Z9Yc6io7Q13jUqD9yHXX9cDMMWjzVKmxGuSL27qcjXzJirbu",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://avatars0.githubusercontent.com/u/5757502\",\"name\":\"D. Pedoneze\"}}"
    }
  ]
}
dpedonezeupdated their account properties
2018/04/07 16:29:18
accountdpedoneze
posting{"weight_threshold":1,"account_auths":[["utopian.app",1]],"key_auths":[["STM5jq6Ucb95UVG9jz4eaMw9EWG7fC2fo7jJEkTSCPSBwy1NQidsA",1]]}
memo keySTM61Z9Yc6io7Q13jUqD9yHXX9cDMMWjzVKmxGuSL27qcjXzJirbu
json metadata{}
Transaction InfoBlock #21362935/Trx 33c575f6987552842ae7a015bdd81aa3e8d52796
View Raw JSON Data
{
  "trx_id": "33c575f6987552842ae7a015bdd81aa3e8d52796",
  "block": 21362935,
  "trx_in_block": 57,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-07T16:29:18",
  "op": [
    "account_update",
    {
      "account": "dpedoneze",
      "posting": {
        "weight_threshold": 1,
        "account_auths": [
          [
            "utopian.app",
            1
          ]
        ],
        "key_auths": [
          [
            "STM5jq6Ucb95UVG9jz4eaMw9EWG7fC2fo7jJEkTSCPSBwy1NQidsA",
            1
          ]
        ]
      },
      "memo_key": "STM61Z9Yc6io7Q13jUqD9yHXX9cDMMWjzVKmxGuSL27qcjXzJirbu",
      "json_metadata": "{}"
    }
  ]
}
steemdelegated 18.685 SP to @dpedoneze
2018/04/02 13:48:21
delegatorsteem
delegateedpedoneze
vesting shares30389.157475 VESTS
Transaction InfoBlock #21215735/Trx 6087998be29dee53d3a91da0d18bd214848c38c4
View Raw JSON Data
{
  "trx_id": "6087998be29dee53d3a91da0d18bd214848c38c4",
  "block": 21215735,
  "trx_in_block": 27,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-02T13:48:21",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "dpedoneze",
      "vesting_shares": "30389.157475 VESTS"
    }
  ]
}

Account Metadata

POSTING JSON METADATA
profile{"profile_image":"https://avatars0.githubusercontent.com/u/5757502","name":"D. Pedoneze"}
JSON METADATA
profile{"profile_image":"https://avatars0.githubusercontent.com/u/5757502","name":"D. Pedoneze"}
{
  "posting_json_metadata": {
    "profile": {
      "profile_image": "https://avatars0.githubusercontent.com/u/5757502",
      "name": "D. Pedoneze"
    }
  },
  "json_metadata": {
    "profile": {
      "profile_image": "https://avatars0.githubusercontent.com/u/5757502",
      "name": "D. Pedoneze"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM6sJCxaXv49W5shDigN6Q4UYZamed2BEe15i5HwwJxuZetdsjZC1/1
Active
Single Signature
Public Keys
STM7HKYSzwLAsMwTjitnZgBavqJnpX6hYPHzNAXvh52kpEkq8LdbY1/1
Posting
Single Signature
Public Keys
STM5jq6Ucb95UVG9jz4eaMw9EWG7fC2fo7jJEkTSCPSBwy1NQidsA1/1
App Permissions
Memo
STM61Z9Yc6io7Q13jUqD9yHXX9cDMMWjzVKmxGuSL27qcjXzJirbu
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6sJCxaXv49W5shDigN6Q4UYZamed2BEe15i5HwwJxuZetdsjZC",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7HKYSzwLAsMwTjitnZgBavqJnpX6hYPHzNAXvh52kpEkq8LdbY",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [
      [
        "utopian.app",
        1
      ]
    ],
    "key_auths": [
      [
        "STM5jq6Ucb95UVG9jz4eaMw9EWG7fC2fo7jJEkTSCPSBwy1NQidsA",
        1
      ]
    ]
  },
  "memo": "STM61Z9Yc6io7Q13jUqD9yHXX9cDMMWjzVKmxGuSL27qcjXzJirbu"
}

Witness Votes

1 / 30
[
  "utopian-io"
]