{
  "comments": [
    {
      "abs_rshares": 0,
      "active": "2016-08-31T17:00:21",
      "allow_curation_rewards": true,
      "allow_replies": true,
      "allow_votes": true,
      "author": "gtg",
      "author_rewards": 324640,
      "beneficiaries": [],
      "body": "Hello, World!\n\nMy intention is not to make it into top 19. I could name many  other candidates (clearly more than 19) with greater commitment to steem(it) who are a lot more appropriate as witnesses, but I'm sure I can be useful as a backup witness.\n\nI introduced myself here:\nhttps://steemit.com/introduceyourself/@gtg/hello-world\nThose of you who use https://steemit.chat know me as **Gandalf**.\nFor some time, I\u2019ve been using my magic powers (mostly those related to security and infrastructure) to improve steemit. For example, I\u2019ve improved our \"Perfect\" Forward Secrecy and made our communication with site more secure.\n\nMy **seed node** (EU based):\n`seed-node = gtg.steem.house:2001`\nYou can also use it to rsync data dir\n`rsync -Pa rsync://gtg.steem.house/witness_node_data_dir .`\n\nMy **witness node** is on a separate data center (an EU-based one as well).\nIf you believe I can be of value to steemit, please vote for me:\n`vote_for_witness YOURACCOUNT gtg true true`\n\n![witness](https://grey.house/img/witness.jpg)",
      "cashout_time": "1969-12-31T23:59:59",
      "category": "witness-category",
      "children": 7,
      "children_abs_rshares": 0,
      "created": "2016-08-05T14:02:24",
      "curator_payout_value": {
        "amount": "231879",
        "nai": "@@000000013",
        "precision": 3
      },
      "depth": 0,
      "id": 624896,
      "json_metadata": "{\"tags\":[\"witness-category\"],\"links\":[\"https://steemit.com/introduceyourself/@gtg/hello-world\"]}",
      "last_payout": "2016-09-05T05:17:57",
      "last_update": "2016-08-05T14:02:24",
      "max_accepted_payout": {
        "amount": "1000000000",
        "nai": "@@000000013",
        "precision": 3
      },
      "max_cashout_time": "1969-12-31T23:59:59",
      "net_rshares": 0,
      "net_votes": 87,
      "parent_author": "",
      "parent_permlink": "witness-category",
      "percent_hbd": 10000,
      "permlink": "witness-gtg",
      "reward_weight": 10000,
      "root_author": "gtg",
      "root_permlink": "witness-gtg",
      "title": "Witness \"gtg\"",
      "total_payout_value": {
        "amount": "703088",
        "nai": "@@000000013",
        "precision": 3
      },
      "total_vote_weight": 0,
      "vote_rshares": 0
    },
    {
      "abs_rshares": 0,
      "active": "2016-07-13T16:16:33",
      "allow_curation_rewards": true,
      "allow_replies": true,
      "allow_votes": true,
      "author": "guaamarals",
      "author_rewards": 0,
      "beneficiaries": [],
      "body": "You know, it's like yesterday\nPerhaps, who knows, today ...\n\nRead this text listening to this song:\nhttps://www.youtube.com/watch?v=eDJf0p4yQek\n\n... I remember as if it were happening\nin this exact moment\nthat smile makes me a tremendous lack\nahh, his embrace,\nhow can I forget?\nI just wanted before going to work\ngive you a kiss and tell\nI love you\nbut one I LOVE the mood\nreally,\nas I have never said before,\nbut things are no longer so.\nI was wrong, and I regret every second of it\nI regret the links that I did not\nnot to spend the weekend with you\nnot to say I love you when I hung up the phone\nAhh, it's so much\nI just wish I could start again\nbut life is not a video game\nand I learned it too late\nNow ?\nI no longer know what to do,\nno longer know what to say\nperhaps not opportunity I have more\nbut hey, it is not as it should be\nYou know I want you so much\nyou know so much like you\nGive me one more chance\nthat's all, ONLY THAT!\nThe last and only thing I ask you,\nI just need one more chance\nto show how much I was stupid\nhow I was, hamm\nridiculous is ridiculous perhaps\nis the most appropriate word\nbut leaves, will leave\nplease\nI just want to show you\nthe when we can be happy together.\nHow much I love you, forever!\n\n\nPS: Sorry, I'm using google translator",
      "cashout_time": "1969-12-31T23:59:59",
      "category": "only",
      "children": 0,
      "children_abs_rshares": 0,
      "created": "2016-07-13T16:16:33",
      "curator_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "depth": 0,
      "id": 96924,
      "json_metadata": "{\"tags\":[\"only\",\"love\",\"boyfriend\",\"girlfriend\"],\"links\":[\"https://www.youtube.com/watch?v=eDJf0p4yQek\"]}",
      "last_payout": "2016-08-13T16:17:36",
      "last_update": "2016-07-13T16:16:33",
      "max_accepted_payout": {
        "amount": "1000000000",
        "nai": "@@000000013",
        "precision": 3
      },
      "max_cashout_time": "1969-12-31T23:59:59",
      "net_rshares": 0,
      "net_votes": 4,
      "parent_author": "",
      "parent_permlink": "only",
      "percent_hbd": 10000,
      "permlink": "that-s-all-only-that",
      "reward_weight": 10000,
      "root_author": "guaamarals",
      "root_permlink": "that-s-all-only-that",
      "title": "that's all, ONLY THAT!",
      "total_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "total_vote_weight": 0,
      "vote_rshares": 0
    },
    {
      "abs_rshares": 0,
      "active": "2016-07-13T16:31:03",
      "allow_curation_rewards": true,
      "allow_replies": true,
      "allow_votes": true,
      "author": "guaamarals",
      "author_rewards": 0,
      "beneficiaries": [],
      "body": "Text in english:\nYesterday I got that letter\nThat first letter that you sent me\nIt was the first smile you got me ...\n\nRead this text listening to music:\nhttps://www.youtube.com/watch?v=60ItHLz5WEA&list=RDeDJf0p4yQek&index=2\n\n... Came in a white envelope\nwith a heart sticker\nand was written\nto my love\n\"I feel it is more than friendship\nI like you very much\"\nIt was written,\nI cried, and\nbut one longing for crying\nYou know when you press on the chest\nand makes you suffer?\nBut a good pain\nwhen the time we spent together was good\nand can not be like today?\nTo be honest\nI do not get it right\nwhy we are separated\nwhy his arm is not in my arms.\nIt's like a part of me\nI was not living.\nIt's hard to know\nI even try to hide\nonly lie on the pillow\nand then you come\nto be honest\nI can not even hear your name\nThey say it's with someone else\nI do not know who\nand I do not know\nI just want you to know\nI feel a lot, but a lot\nI miss you.\n\nPS: Sorry, I'm using google translator\n\n________________________________________________________________________________________\n\n\nTexto em portugu\u00eas:\nOntem eu peguei aquela carta\nAquela primeira carta que tu me mandou\nFoi o primeiro sorriso que tu me tirou ...\n\nLeia este texto escutando esta musica:\nhttps://www.youtube.com/watch?v=60ItHLz5WEA&list=RDeDJf0p4yQek&index=2\n\n... veio em um envelope branco\ncom um adesivo de cora\u00e7\u00e3o\ne por fora escrito\npara meu amor\n\"Eu sinto que \u00e9 mais que amizade\neu gosto muito de voc\u00ea\"\nEstava escrito, \neu chorei, e muito\nmas um choro de saudade\nsabe quando aperta no peito \ne te faz sofrer ? \nMas uma dor boa\nde quando o tempo que passamos juntos foi bom\ne n\u00e3o pode ser assim hoje ?\nPra ser sincero\nn\u00e3o entendi direito\no porque estamos separados\no porque seu bra\u00e7o n\u00e3o est\u00e1 nos meus abra\u00e7os.\n\u00c9 como se uma parte de mim\nn\u00e3o estivesse vivendo.\n\u00c9 dif\u00edcil sabe\neu at\u00e9 tento esconder\ns\u00f3 que deito a cabe\u00e7a no travesseiro\ne logo vem voc\u00ea\npra ser sincero\nn\u00e3o consigo nem ouvir seu nome\nDizem que est\u00e1 com outro algu\u00e9m\neu n\u00e3o sei quem\ne n\u00e3o quero saber\nEu s\u00f3 quero que saiba\nque eu sinto muita, mas muita\nfalta de voc\u00ea.\n\nPS: Desculpe, eu estou usando google tradutor",
      "cashout_time": "1969-12-31T23:59:59",
      "category": "you",
      "children": 0,
      "children_abs_rshares": 0,
      "created": "2016-07-13T16:31:03",
      "curator_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "depth": 0,
      "id": 97120,
      "json_metadata": "{\"tags\":[\"you\",\"love\",\"letter\",\"boyfriend\",\"girlfriend\",\"\"],\"links\":[\"https://www.youtube.com/watch?v=60ItHLz5WEA&list=RDeDJf0p4yQek&index=2\"]}",
      "last_payout": "2016-08-13T16:32:51",
      "last_update": "2016-07-13T16:31:03",
      "max_accepted_payout": {
        "amount": "1000000000",
        "nai": "@@000000013",
        "precision": 3
      },
      "max_cashout_time": "1969-12-31T23:59:59",
      "net_rshares": 0,
      "net_votes": 9,
      "parent_author": "",
      "parent_permlink": "you",
      "percent_hbd": 10000,
      "permlink": "the-first-letter",
      "reward_weight": 10000,
      "root_author": "guaamarals",
      "root_permlink": "the-first-letter",
      "title": "The first letter",
      "total_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "total_vote_weight": 0,
      "vote_rshares": 0
    },
    {
      "abs_rshares": 0,
      "active": "2016-08-08T23:05:00",
      "allow_curation_rewards": true,
      "allow_replies": true,
      "allow_votes": true,
      "author": "guadalupe100",
      "author_rewards": 0,
      "beneficiaries": [],
      "body": "Here in steemit where you can post things to get paid then  buy your weed by talking how you're going to buy  your weed.",
      "cashout_time": "1969-12-31T23:59:59",
      "category": "steemit",
      "children": 0,
      "children_abs_rshares": 0,
      "created": "2016-08-08T23:05:00",
      "curator_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "depth": 0,
      "id": 692558,
      "json_metadata": "{\"tags\":[\"steemit\",\"weed\",\"nsfw\"]}",
      "last_payout": "2016-09-08T11:05:45",
      "last_update": "2016-08-08T23:05:00",
      "max_accepted_payout": {
        "amount": "1000000000",
        "nai": "@@000000013",
        "precision": 3
      },
      "max_cashout_time": "1969-12-31T23:59:59",
      "net_rshares": 0,
      "net_votes": 0,
      "parent_author": "",
      "parent_permlink": "steemit",
      "percent_hbd": 10000,
      "permlink": "a-place-you-can-buy-weed-and-pay-with-steemit-money",
      "reward_weight": 10000,
      "root_author": "guadalupe100",
      "root_permlink": "a-place-you-can-buy-weed-and-pay-with-steemit-money",
      "title": "a place you can buy weed and pay with steemit money",
      "total_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "total_vote_weight": 0,
      "vote_rshares": 0
    },
    {
      "abs_rshares": 0,
      "active": "2016-08-08T22:04:06",
      "allow_curation_rewards": true,
      "allow_replies": true,
      "allow_votes": true,
      "author": "guadalupe100",
      "author_rewards": 0,
      "beneficiaries": [],
      "body": "Retail Arbitrage is buying goods from retail stores then selling them on online like ebay or amazon\n    First it make the buyers mad once they look on retail stores having a lower price. Then they send their products back to ebay or amazon. This make amazon or ebay look bad and people are less likely to buy from them.\n     Second If you sell on amazon, the  categories are always changing. so one day you could be making  5k a mouth then boom like out of no where your category is restricted. Now you dont have money  to live up  to your life style. This is what happen to people after Retail Arbitrage got Ban. \n      Third  Costumer warranty.  What happens if the costumer product brakes. and wants to another  of the same product. You are the one who  is going to pay out of pocket.\n   If you get caught in ebay you will be ban from posting products and also getting your PayPal ban too. If this happens on amazon you will be ban and will not be allow to sell your products on amazon.",
      "cashout_time": "1969-12-31T23:59:59",
      "category": "money",
      "children": 0,
      "children_abs_rshares": 0,
      "created": "2016-08-08T22:04:06",
      "curator_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "depth": 0,
      "id": 691535,
      "json_metadata": "{\"tags\":[\"money\",\"finance\",\"retail\",\"blogs\",\"\"]}",
      "last_payout": "2016-09-08T17:58:51",
      "last_update": "2016-08-08T22:04:06",
      "max_accepted_payout": {
        "amount": "1000000000",
        "nai": "@@000000013",
        "precision": 3
      },
      "max_cashout_time": "1969-12-31T23:59:59",
      "net_rshares": 0,
      "net_votes": 2,
      "parent_author": "",
      "parent_permlink": "money",
      "percent_hbd": 10000,
      "permlink": "some-reasons-why-retail-arbitrage-is-dead",
      "reward_weight": 10000,
      "root_author": "guadalupe100",
      "root_permlink": "some-reasons-why-retail-arbitrage-is-dead",
      "title": "Some Reasons why Retail Arbitrage is Dead",
      "total_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "total_vote_weight": 0,
      "vote_rshares": 0
    },
    {
      "abs_rshares": 0,
      "active": "2016-07-13T01:06:00",
      "allow_curation_rewards": true,
      "allow_replies": true,
      "allow_votes": true,
      "author": "guardian",
      "author_rewards": 0,
      "beneficiaries": [],
      "body": "is here",
      "cashout_time": "1969-12-31T23:59:59",
      "category": "news",
      "children": 0,
      "children_abs_rshares": 0,
      "created": "2016-07-13T01:06:00",
      "curator_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "depth": 0,
      "id": 89526,
      "json_metadata": "{\"tags\":[\"news\"]}",
      "last_payout": "2016-08-13T01:33:45",
      "last_update": "2016-07-13T01:06:00",
      "max_accepted_payout": {
        "amount": "1000000000",
        "nai": "@@000000013",
        "precision": 3
      },
      "max_cashout_time": "1969-12-31T23:59:59",
      "net_rshares": 0,
      "net_votes": 3,
      "parent_author": "",
      "parent_permlink": "news",
      "percent_hbd": 10000,
      "permlink": "news",
      "reward_weight": 10000,
      "root_author": "guardian",
      "root_permlink": "news",
      "title": "news",
      "total_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "total_vote_weight": 0,
      "vote_rshares": 0
    },
    {
      "abs_rshares": 0,
      "active": "2016-07-27T16:07:39",
      "allow_curation_rewards": true,
      "allow_replies": true,
      "allow_votes": true,
      "author": "guascha",
      "author_rewards": 0,
      "beneficiaries": [],
      "body": "SkyWay - \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u0435\u043a\u0430!!! \u0442\u0430\u043a\u0438\u0435 \u0440\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437 \u0432 100 \u043b\u0435\u0442! \u0445\u043e\u0447\u0443 \u0441\u043a\u043e\u0440\u0435\u0435 \u043f\u043e\u0435\u0445\u0430\u0442\u044c \u043f\u043e \u0442\u0430\u043a\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0435!",
      "cashout_time": "1969-12-31T23:59:59",
      "category": "steem",
      "children": 1,
      "children_abs_rshares": 0,
      "created": "2016-07-27T15:35:18",
      "curator_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "depth": 1,
      "id": 407245,
      "json_metadata": "{\"tags\":[\"steem\"]}",
      "last_payout": "2016-08-25T13:51:15",
      "last_update": "2016-07-27T15:35:18",
      "max_accepted_payout": {
        "amount": "1000000000",
        "nai": "@@000000013",
        "precision": 3
      },
      "max_cashout_time": "1969-12-31T23:59:59",
      "net_rshares": 0,
      "net_votes": 1,
      "parent_author": "bloggersclub",
      "parent_permlink": "projects-corner-session-1-25-7-16-steem-your-way-to-crowdfunding-or-make-money-trying-upvoting-is-steem",
      "percent_hbd": 10000,
      "permlink": "re-bloggersclub-projects-corner-session-1-25-7-16-steem-your-way-to-crowdfunding-or-make-money-trying-upvoting-is-steem-20160727t153508922z",
      "reward_weight": 10000,
      "root_author": "bloggersclub",
      "root_permlink": "projects-corner-session-1-25-7-16-steem-your-way-to-crowdfunding-or-make-money-trying-upvoting-is-steem",
      "title": "",
      "total_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "total_vote_weight": 0,
      "vote_rshares": 0
    },
    {
      "abs_rshares": 0,
      "active": "2016-07-13T16:51:03",
      "allow_curation_rewards": true,
      "allow_replies": true,
      "allow_votes": true,
      "author": "gubatron",
      "author_rewards": 0,
      "beneficiaries": [],
      "body": "<html>\n<h2>Are you still playing music with Vinyl records and CDs?</h2>\n<p><img src=\"https://cdn-images-1.medium.com/max/2000/1*-CMFRHdpRFZVHihuZWs3sQ.jpeg\" width=\"1388\" height=\"827\"/></p>\n<p><br></p>\n<p><br></p>\n<p><em>Written in July 2013, I still shake my head when I see people with paper books.</em><br>\n</p>\n<p>So I\u2019m tired of evangelizing eBooks/<a href=\"http://www.amazon.com/dp/B007HCCNJU/ref=as_li_ss_til?tag=httpwwwwedoic-20&amp;camp=0&amp;creative=0&amp;linkCode=as4&amp;creativeASIN=B007HCCNJU&amp;adid=0MKWD6KRDJMDYHXGR9M3\">eReaders</a> in person and I guess I\u2019ll do a lot more good by writing this so that you can share it next time you want to convince a friend to live in the year 2013 and stop the mad romanticism about the handicapped physical books, it\u2019s just ludacris reading a book on paper unless it has no digital form.</p>\n<p><strong>Here is an ever growing list of why I prefer eBooks to physical books</strong><br>\n(got more reasons, leave a comment below)</p>\n<p>1. They are cheaper.</p>\n<p>2. They are available immediately, no need to order, wait, or move physically to get them.</p>\n<p>3. They never get lost.</p>\n<p>4. They don\u2019t take any space, or weight, this brings many added benefits to the world:</p>\n<p>4.1. You can have a library of thousands of books with you wherever you are, on different devices (since they can be stored in the cloud)</p>\n<p>4.2. You will free a lot of shelve space at home/office, which also means less dust being created at home.</p>\n<p>4.3. If all students were forced to use eBooks they wouldn\u2019t have to carry such heavy backpacks which can deform their spines.</p>\n<p>4.4. If all students used eBooks exclusively, there would be CO2 emission reductions since that\u2019s a lot of weight that doesn\u2019t have to be transported by cars/buses/trains.</p>\n<p>5. You can read them on different devices: e-readers, computers, smartphones.</p>\n<p>6. You can copy and paste.</p>\n<p>7. If you lend them you never have to beg your friend to give the book back, it comes back to you automatically.</p>\n<p>8. You can search inside them.</p>\n<p>9. If you don\u2019t know the meaning of a word, a dictionary is always there for you, just touch/click the word in question.</p>\n<p>10. The same book may come in different languages.</p>\n<p>11. You can change font types, font sizes, color of the screen, margins, line spacing.</p>\n<p>12. You can have lots of bookmarks, you can navigate your bookmarks.</p>\n<p>13. You can read them with the light turned off.</p>\n<p>14. You can read them with one hand, turning pages is effortlessly. Awesome when you go out for a walk and you have only one hand available.</p>\n<p>15. No more wrinkled, stained, or broken pages.</p>\n<p>16. You can share your highlights on social networks.</p>\n<p>17. You can open a web browser right from the book if there\u2019s a web reference.</p>\n<p>18. There\u2019s no such thing as \u201cout of print\u201d</p>\n<p>19. It learns your reading speed and tells you how much time left you have on the current chapter or the whole book.</p>\n<p><br>\n\u2026need more reasons?<br>\nor you will keep reading books because you like the smell of paper, even though there\u2019s really a lot of stinky books out there.are you still using cassette tapes, vinyl discs, hell are you still using CDs?</p>\n</html>",
      "cashout_time": "1969-12-31T23:59:59",
      "category": "ereaders",
      "children": 0,
      "children_abs_rshares": 0,
      "created": "2016-07-13T16:51:03",
      "curator_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "depth": 0,
      "id": 97377,
      "json_metadata": "{\"tags\":[\"ereaders\",\"ebooks\",\"kindle\",\"reading\",\"tips\"],\"image\":[\"https://cdn-images-1.medium.com/max/2000/1*-CMFRHdpRFZVHihuZWs3sQ.jpeg\"],\"links\":[\"http://www.amazon.com/dp/B007HCCNJU/ref=as_li_ss_til?tag=httpwwwwedoic-20&camp=0&creative=0&linkCode=as4&creativeASIN=B007HCCNJU&adid=0MKWD6KRDJMDYHXGR9M3\"]}",
      "last_payout": "2016-08-13T16:53:48",
      "last_update": "2016-07-13T16:51:03",
      "max_accepted_payout": {
        "amount": "1000000000",
        "nai": "@@000000013",
        "precision": 3
      },
      "max_cashout_time": "1969-12-31T23:59:59",
      "net_rshares": 0,
      "net_votes": 4,
      "parent_author": "",
      "parent_permlink": "ereaders",
      "percent_hbd": 10000,
      "permlink": "19-reasons-to-switch-to-ebooks-ereaders",
      "reward_weight": 10000,
      "root_author": "gubatron",
      "root_permlink": "19-reasons-to-switch-to-ebooks-ereaders",
      "title": "19 reasons to switch to eBooks/eReaders",
      "total_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "total_vote_weight": 0,
      "vote_rshares": 0
    },
    {
      "abs_rshares": 0,
      "active": "2016-07-13T17:57:27",
      "allow_curation_rewards": true,
      "allow_replies": true,
      "allow_votes": true,
      "author": "gubatron",
      "author_rewards": 2473,
      "beneficiaries": [],
      "body": "<html>\n<p><img src=\"https://cdn-images-1.medium.com/max/2000/0*ntdV02nv-dPV9pWj.jpeg\" width=\"1280\" height=\"960\"/></p>\n<p>It was about 15 years ago when I first created my first class.<br>\n</p>\n<p>I went from thinking of Object Oriented programming as this awesome paradigm I should know about, I remember having all these mental models of what objects where and learning all this new vocabulary that I really didn\u2019t fully grasp until years later when I was designing and implementing bigger more complex systems.</p>\n<p>At first I remember looking at objects as a collection of functions that kept a common reference to keep internal states and missing out on all the great features of inheritance and abstract classes. Looking at \u201cinterfaces\u201d and using them like a recipe without really knowing their true power, I look at the past and I was so limited, hopefully I\u2019ll look at this post 15 years from now and think the same.</p>\n<p>There\u2019s lots of books out there on best programming practices you should follow, on this short post I\u2019ll share with you 5 principles that I follow that I promise you will make your code behave really well, less bug prone, simple and elegant when it comes to Object Oriented design. This advice will probably apply better if you code in a language like Java or C#, I\u2019m not sure if you can say these principles will apply 100% to other OO languages (for instance those that allow multiple inheritance)</p>\n<p><strong>1. DRY principle.</strong><br>\nThis is one of the most preached ones, and I will also preach it. DO NOT REPEAT YOURSELF. Really, don\u2019t. It ALWAYS comes to bite you in the ass if you have repeated code. Only repeat yourself if it\u2019s too hard to not do so or if you\u2019re absolutely sure that you won\u2019t repeat yourself a third time, but I promise you that third time will come if it\u2019s not for you for the next guy maintaining that code.</p>\n<p>The obvious benefit of not repeating yourself is that you get to maintain code only in one place, the added benefit will be that your code will almost start being written by itself like a perfect equation as it grows. DRY code will be reusable, maintainable and the other principles I\u2019ll talk about are related to the DRY principle in one way or another.<br>\n</p>\n<p><strong>2. Keep the scope at the minimum, be as private as possible.</strong></p>\n<p>Keep your variables as close to your local scope as possible. This will save you many headaches, will protect you from bugs in logic because you did something to a variable in place where it shouldn\u2019t have been in the first place, and it will keep things simpler.</p>\n<p>This also tells you that your classes should expose as little as possible. Keep your variables local, if they can\u2019t be local, try to keep them as private members, if they have to be used by extending classes keep them private, only use public when you really know it\u2019s ok to make something public and that nobody is going to break the behavior of your object if they play with things at any point in time.</p>\n<p>Keeping scope at a minimum can also prevent issues on longer lived objects like singletons that might be accessed by different objects. If you abuse the use of object properties you could have one object changing the internal state of the object while another tries to do something and you\u2019ll get unexpected behavior, this tends to happen a lot in multithreaded environments where programmers are not careful and forget objects might be accessed by different threads/clients at the same time, tight scopes will protect you.</p>\n<p><strong>3. Be functional</strong></p>\n<p>Sometimes you\u2019ll be tempted to be lazy and not pass parameters on a method and think that you\u2019re so clever by changing an internal property of an object so that another function in the object will then get it. Big mistake buddy. This can be equivalent to that advice from functional programming languages where you\u2019re told that using global variables are a bad idea.<br>\nYes, we have object properties for several reasons, but if the logic of a method depends on the state of a variable, you might as well be explicit and pass it in the method.</p>\n<p>This is in a way related to keeping scope at the minimum, and to some extend related to the advice some give of keeping your objects as immutable as possible.</p>\n<p><strong>4. Only abstract classes are worth extending.</strong><br>\nIf you have control over the class you are about to extend (if it\u2019s in your codebase) before you extend that class take a look and make sure that it\u2019s an abstract class. Abstract classes are MEANT to be extended, so you can be safe that you\u2019re doing the right thing here.</p>\n<p>If you\u2019re extending a non abstract class, you should probably be composing it instead. If you don\u2019t have access to the code of the class you are extending, things could not behave as expected when you extend, not all programmers are as thoughtful as you are.</p>\n<p><strong>5. Keep Object lifetime as short as possible.</strong><br>\nThis goes back to keeping scopes tight and trying to avoid singletons as much as possible (as convenient as they might be), in the case of java the JRE has a better time collecting garbage and will save you from memory leak headaches. Put those factories to work.</p>\n<p>Feel free to disent and share your favorite principles, If you\u2019ve coded long enough I\u2019m sure you tend to think about these things too and I\u2019d love to learn from your experiences.</p>\n</html>",
      "cashout_time": "1969-12-31T23:59:59",
      "category": "coding",
      "children": 2,
      "children_abs_rshares": 0,
      "created": "2016-07-13T17:20:39",
      "curator_payout_value": {
        "amount": "417",
        "nai": "@@000000013",
        "precision": 3
      },
      "depth": 0,
      "id": 97784,
      "json_metadata": "{\"tags\":[\"coding\",\"programming\"],\"image\":[\"https://cdn-images-1.medium.com/max/2000/0*ntdV02nv-dPV9pWj.jpeg\"]}",
      "last_payout": "2016-08-15T18:08:12",
      "last_update": "2016-07-13T17:20:39",
      "max_accepted_payout": {
        "amount": "1000000000",
        "nai": "@@000000013",
        "precision": 3
      },
      "max_cashout_time": "1969-12-31T23:59:59",
      "net_rshares": 0,
      "net_votes": 7,
      "parent_author": "",
      "parent_permlink": "coding",
      "percent_hbd": 10000,
      "permlink": "5-object-oriented-programming-principles-learned-during-the-last-15-years",
      "reward_weight": 10000,
      "root_author": "gubatron",
      "root_permlink": "5-object-oriented-programming-principles-learned-during-the-last-15-years",
      "title": "5 Object Oriented Programming Principles learned during the last 15 years",
      "total_payout_value": {
        "amount": "2708",
        "nai": "@@000000013",
        "precision": 3
      },
      "total_vote_weight": 0,
      "vote_rshares": 0
    },
    {
      "abs_rshares": 0,
      "active": "2016-07-16T00:47:24",
      "allow_curation_rewards": true,
      "allow_replies": true,
      "allow_votes": true,
      "author": "gubatron",
      "author_rewards": 0,
      "beneficiaries": [],
      "body": "He looks up to heaven and says \"God, could you answer a question for me?\"\n\"Of course, my son,\" says God, \"what would you like to know?\"\n\"God, what is a million years to you?\"\n\"Well,\" says God, \"a million years to me is as a second.\"\n\"Hmm,\" says the man. \"I guess I understand. So what is a million dollars to you then?\"\n\"My son,\" God says, \"a million dollars to me is as a penny.\"\n\"Hmm,\" says the man. He goes back to praying, but after a little while he looks up again.\n\"God,\" he asks, \"can I have a penny?\"\n\"Sure,\" God says. \"Just a second.\"",
      "cashout_time": "1969-12-31T23:59:59",
      "category": "jokes",
      "children": 0,
      "children_abs_rshares": 0,
      "created": "2016-07-16T00:47:24",
      "curator_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "depth": 0,
      "id": 128339,
      "json_metadata": "{\"tags\":[\"jokes\"]}",
      "last_payout": "2016-08-26T03:00:03",
      "last_update": "2016-07-16T00:47:24",
      "max_accepted_payout": {
        "amount": "1000000000",
        "nai": "@@000000013",
        "precision": 3
      },
      "max_cashout_time": "1969-12-31T23:59:59",
      "net_rshares": 0,
      "net_votes": 0,
      "parent_author": "",
      "parent_permlink": "jokes",
      "percent_hbd": 10000,
      "permlink": "a-man-is-praying-in-church",
      "reward_weight": 10000,
      "root_author": "gubatron",
      "root_permlink": "a-man-is-praying-in-church",
      "title": "A MAN IS PRAYING IN CHURCH...",
      "total_payout_value": {
        "amount": "0",
        "nai": "@@000000013",
        "precision": 3
      },
      "total_vote_weight": 0,
      "vote_rshares": 0
    }
  ]
}
