The dietary recommendations of countries that rely on their health departments to formulate them, rather than their agriculture departments, more closely parallel the recommendations of academics, such as Walter Willett, the chair of Harvard's nutrition department, who, in his Essentials of Healthy Eating Guide, talks about picking the best protein packages, recognizing that food is a package deal, and so one of his top three recommendations is that we should emphasize plant sources of protein rather than animal sources. See, to the metabolic systems engaged in protein production and repair, it doesn't matter whether amino acids come from animal or plant protein. However, protein is not consumed in isolation. Instead, it is packaged with a host of other nutrients, the baggage I referred to in previous videos. The quality and amounts of fats, carbohydrates, sodium of the nutrients, and the protein package may influence long-term health. For example, results from the Harvard Nurses' Health study suggest that eating more protein from beans, nuts, seeds, and the like, while cutting back on refined carbohydrates like white flour, reduces the risk of heart disease. So the bottom line? Go with plants. Eating a plant-based diet is healthiest.


Mr. Speaker, I beg to move for second reading of Bill and Title Income Tax Amendment Act. Thank you Mr. Speaker. Mr. Speaker, this amendment to the Income Tax Act, Mr. Speaker, is actually an amendment to emphasise and to re-emphasise the philosophical position of the Government of Salvation, Mr. Speaker. A philosophical position that puts people first and a philosophical position that says that there must be opportunity for all and those who receive less are not unduly disadvantaged, Mr. Speaker. Mr. Speaker, you may know that any contractor who gets a $10,000 contract with the Government, when he goes to the Treasury Department, 10% is deducted from his earnings.  So he gets $4,500. Mr. Speaker, the margins are very small in these small $10,000 jobs.  So we decided, Mr. Speaker, that we would exempt payments of $10,000 and less from the 10% deduction, Mr. Speaker. I mean this also brings us to line, brings it to line, brings it to line with the deductions made by ordinary employees because nobody in this country who gets less than $2,000 a month, $24,000 a year pays any taxes. You pay no income taxes with that. If you get less than $24,000 a year, you don't pay any taxes. When you add your allowances, it comes to $25,400. You pay no taxes. So when a contractor who gets two contracts for $10,000 a year, he actually pays $2,000 tax and the ordinary employee who gets the same $24,000 doesn't pay any taxes, Mr. Speaker. So Mr. Speaker, we fought and these small contractors, many of them do not get more than two contracts per year for less than, for more than $10,000, they don't get it with the speaker. These contracts are small contracts, $5,000, $6,000, sometimes $2,000 and for $2,000 to take up 10% from it, we get a person $2,000, $7,000, Mr. Speaker. Before that, it was unfair and this is what the amendment is all about, Mr. Speaker. It doesn't mean that when contractors graduate, they don't have to file their taxes, Mr. Speaker. So all payments and if that is converted to the private sector, Mr. Speaker, when the private sector gives up a list of people who have been paid for the contracts that they do, Mr. Speaker, the adequate provisions would be made if from the private sector. So if the private sector follows, they must ensure that they send that list to the inner-revenue so that the appropriate contracts can be made in Sweden. For musicians, for anybody of this nature, if you pay less than $10,000, they have to take up 10% tax, income tax and then when you send the return, the appropriate adjustments are going to be made in Sweden. So we thought that was a measure to assist the ordinary person who has a little job for $5,000. You take out $5,000 and sometimes they make nothing. But that's a bigger picture. The Ministry of Infrastructure is in the process of preparing a sort of analysis to show what percentage would be labor and what percentage would be materials for jobs. Even jobs, more than $10,000, but within a particular threshold, Mr. Speaker. So this is again another move by this government, Mr. Speaker, to give people relief from income tax. So you are seeing any $10,000 below? No, I see it working. $10,000, nothing above $10,000. They have $5,000 contracts. That's the question. The $5,000 and that's a very good question. What will happen to him now is that his records are going to be in revenue. He has to file his return. He has to file. And when he files, then the appropriate adjustments are going to be made. So Mr. Speaker, this is what the amendment is all about. To assist small people who get these small contracts without paying taxes in the first instance. Thank you, Mr. Speaker.


The Athanasian Creed by Athanasius of Alexandria recorded for LibriVox Coffee Break Collection Volume 2. This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org. The Athanasian Creed by Athanasius of Alexandria Whoever will be saved before all things it is necessary that he hold the Catholic faith, which faith except everyone do keep whole and undefiled, without doubt he shall perish everlastingly. And the Catholic faith is this, that we worship one God in trinity and trinity in unity, neither confounding the persons nor dividing the substance. For there is one person of the Father, another of the Son, and another of the Holy Spirit. But the Godhead of the Father, of the Son, and of the Holy Spirit is all one, the glory equal, the majesty co-eternal. Such as the Father is, such as the Son, and such as the Holy Spirit. The Father uncreated, the Son uncreated, and the Holy Spirit uncreated. The Father incomprehensible, the Son incomprehensible, and the Holy Spirit incomprehensible. The Father eternal, the Son eternal, and the Holy Spirit eternal. And yet they are not three eternals, but one eternal. As also there are not three uncreated, nor three incomprehensible, but one uncreated and one incomprehensible. So likewise the Father is almighty, the Son almighty, and the Holy Spirit almighty. And yet they are not three almighties, but one almighty. So the Father is God, the Son is God, and the Holy Spirit is God, and yet they are not three gods, but one God. So likewise the Father is Lord, the Son Lord, and the Holy Spirit Lord, and yet they are not three lords, but one Lord. Lord. For like as we are compelled by the Christian verity to acknowledge every person by himself to be God and Lord, so are we forbidden by the Catholic religion to say, there are three gods or three lords. The Father is made of none, neither created nor begotten. The Son is of the Father alone, not made nor created, but begotten. The Holy Spirit is of the Father and of the Son, neither made nor created nor begotten, but proceeding. So there is one Father, not three Fathers, one Son, not three Sons, one Holy Spirit, not three Holy Spirits. And in this trinity none is a four or after another, none is greater or less than another. But the whole three persons are co-eternal and co-equal, so that in all things, as a four said, the unity in trinity and the trinity in unity is to be worshiped. He therefore that will be saved must thus think of the trinity. Furthermore it is necessary to everlasting salvation that he also believe rightly the incarnation of our Lord Jesus Christ. For the right faith is that we believe and confess that our Lord Jesus Christ, the Son of God, is God and man. God of the substance of the Father begotten before the worlds, and man of substance of his mother born in the world, perfect God and perfect man of a reasonable soul and human flesh subsisting. Equal to the Father as touching his Godhead, and inferior to the Father as touching his manhood, who, although he is God and man, yet he is not two but one Christ. One not by conversion of the Godhead into flesh, but by taking of that manhood into God. One altogether not by confusion of substance, but by unity of person. For as the reasonable soul and flesh is one man, so God and man is one Christ, who suffered for our salvation, descended into hell, rose again the third day from the dead, he ascended into heaven, he sits on the right hand of the Father, God Almighty, from thence he will come to judge the quick and the dead, at whose coming all men shall rise again with their bodies and shall give account of their own works, and they that have done good shall go into life everlasting, and they that have done evil into everlasting fire. This is the Catholic faith, which except a man believed faithfully, he cannot be saved. End of the Athanasian Creed, Recording by Tricia G. The Chinese Items by William C. Pond, from the American Missionary, August 1888, for coffee break, number two, Faith. This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org, reading by Milano Times. The Chinese Items by William C. Pond. Number one. The item of greatest importance to us is the establishment of a mission at Los Angeles. The AMA was first on this field, having a prosperous and useful mission school there, more than fourteen years ago, but early in 1876, Reverend Ira M. Condit, a missionary returned from China, well versed in the Chinese language, went with his family to that city to open a mission under the Presbyterian board, in the belief that, with such advantages, better work could be done by them than by us. We transferred our mission to them, pupils, teacher, and all. I have seen much reason sense to doubt the wisdom of this step, and to feel that I should never repeat it. But the open doors have been too numerous, and the pressure from points where there seem to be none to care for these souls has been too great for me to think of using any of our limited resources for the purpose of crowding in, where brethren of another name were working. And it is only because the city has now become so large, and the Chinese population in it covers so great an area, and their appeal for a mission so urgent, and their assurance so full that it could not now be a rival to other missions, but rather a welcome co-worker with them, that I consented to resume. The result is gratifying indeed. No less than seventy-five were enrolled as pupils the first month. An association of Christian-Chinese husband-formed, having already a large membership, and the purpose and promise of vigorous Christian work. The teacher in charge of the mission is Mrs. C. A. Sheldon, long connected with our work in San Francisco, and then whom no teacher ever employed by us endeared herself more to her pupils or wrought more successfully on their behalf. We have reason to believe that from the start the evangelistic spirit will be strong in this mission, and I look to see many turning from darkness to light, and from the power of Satan unto God too. The next item of greatest interest relates to our new mission at Tucson, Arizona. It closed its operations for this fiscal year with a month of May, not because of any decrease of interest, but for the reason that the extreme heat of the summer months at that place forbids exertion, and compels alike in things religious and things secular, a long vacation. Here too, and association, has been formed of eleven members who, in joining it, forsake idolatry and profess themselves followers of Christ. The work has been greatly furthered through the deep interest taken in it by the pastor, Reverend H. H. Cole, and many members of his church. Yong Zhen, one of her evangelists, has spent nearly two months with this mission, and I give in his own language an account of the closing exercises. Last evening we had a pleasant time, and invited all of the Sunday School teachers and some other friends to come to the school room with us. It has over forty Americans and over twenty Chinese, make the room full of people. Our brethren or scholars recite some scriptures, and I read a report on what I think. Then follows his report, from which I quote a few sentences. This school was founded on the twenty-fourth of January, 1888, and now has twenty-three scholars, but only fourteen or fifteen usual attend. Several of these scholars have improved greatly. I think that Mr. J. Kavanaugh is a very good teacher, and I hope God will give him good health when he goes to hot springs. And also they had very good and kind Sunday School teachers, who taught them how to read and sing. They sang on Wednesday evening too. You help our Chinese very much, for which we thank you, and we never will forget you or your kindness. I think Mr. Cole is a kind and faithful pastor. He called our Chinese to come to church to hear him pray and preach, and sometimes he came to the school room and talked to them, and taught them the words of the Lord Jesus. The program for the evening had no less than twenty-six different exercises, each one, of course, brief, but there was much prayer, much singing, both in English and Chinese, one or two brief addresses, much reciting of Scripture, and, to close with, refreshments abundant and toothsome, provided by the pupils for their guests. The work will be resumed when the heats of summer are passed, and I believe that the next year's work will be even more fruitful than this. Three. My items become chapters in spite of me. I must content myself with one more, a brief extract from a letter from Mrs. Carrington, our devoted and successful teacher at Sacramento. I asked you a few months ago to pray for Fong Bing through the blessing of God he has come into the light and is one of the earnest ones. Now I wish you to especially remember Li Yang, who wishes to be a Christian, but thinks he must wait till he returns from China. I hope he will not wait, but will soon be one with us in Christ. Will our readers join us in this prayer? End of The Chinese. Items by William C. Pond. Conscience from The Value of a Praying Mother by Isabelle C. Byrom. Recorded for LibriVox Coffee Break Collection, Volume 2. This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org. Conscience from The Value of a Praying Mother by Isabelle C. Byrom. One day when Bessie was about eight years old, she said, Mama, you've often told me that if I'd listened to the voice of conscience, it would keep me out of danger. What is conscience? I don't understand. My dear child, answered her mother, your happiness depends upon a pure conscience, one that is void of offense. By the Lord's help I will gladly explain. Conscience is that which causes us to feel bad when we do what we've been taught to be wrong. At first it is very tender and active. Then, no matter how enticing the temptation, the conscience will warn one not to yield.  Yes, Mama, answered Bessie. That was why I wanted to know more about it. I thought at first it was some person speaking. But when I remembered you had told me that we each have a conscience to tell us to do right, I knew it must be the voice of conscience. When it speaks, you must listen, said Mrs. Worthington. Give heed to its warnings. This little story will show you how careful we should be to heed the warning voice of conscience. Wishing to arise at an early hour each morning, a gentleman purchased an alarm clock. He took it home, and, having said it, went to bed and slept soundly. In the morning to the gentleman's great delight, the clock aroused him so that he was able to get to work on time. For a time he would spring out of bed as soon as the alarm sounded, and the clock never failed to wake him. One morning, however, on hearing the clock sound its usual alarm, he awoke, but, feeling a little sleepy, he lay back on his pillow, thinking that he would get up in a short time. In a few minutes he fell asleep, and did not awake again until very late. He dressed hastily, and, missing his breakfast, hurried away to his work. He resolved not to be so foolish again, and for a time did better, but in a few days he had again overslept. He became more and more neglectful, failing time after time to heed the alarm. At length it only partially aroused him, and he soon slumbered again. Day by day it disturbed him less, until at last it did not arouse him at all, although it sounded as loudly as ever. So will it be with your conscience. If you don't heed its voice, you'll hear it speaking less loudly each day, until its voice will at last cause you no discomfort. You'll then be in a very dangerous moral condition. No one but God can help you out. This is one reason why, Bessie, many people can do things that you cannot. Satan aimed his first blow at the conscience, for if he can silence it, then he can lead the soul deeper and deeper into sin. End of CONSCIENCE from THE VALUE OF A PRAYING MOTHER, read by Tricia G. THE CELL OF SELF KNOWLEDGE Seven English Mystical Treaties, author Various, translator Edmund G. Gardner, how the virtues of abstinence and patience rise in the sensuality by Various. Recorded for LibriVox Coffee Break Collection Volume 2. This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org. How the Virtues of Abstinence and Patience Rise in the Sensuality by Various When Leah saw that Rachel, her sister, made great joy of these two bastards born of Bilhah, her maiden, she called forth her maiden Zopa to put to her husband Jacob, having other two bastards gotten of her maiden Zopa, and thus it is seemingly a man's soul for it to be that from the time that reason hath refrained the great jangling of imagination and hath put her to be underlawed to God, and maketh her to bear some fruit in helping of her knowing that right so the affection refrained the lust and the thirst of the sensuality and make her to be underlawed to God, and so to bear some fruit in helping of her feeling. But what fruit may she bear? Ought but that she learn to live temperately in easy things and patiently in uneasy things. These are they, the children of Zopa, Gad and Asher. Gad is abstinence and Asher is patience. Gad is the sooner born child and Asher the latter. For first it needeth that we be a temper in ourselves with discrete abstinence, and after that we bear outward dis-ease in strength of patience. These are the children that Zopa brought forth in sorrow. For in abstinence and patience the sensuality is punished in the flesh. But that that is sorrow to the sensuality turneth to much comfort and bliss to the affection, and therefore it is that when Gad was born Leah cried and said happily, and therefore Gad is clept in the story happiness or silliness. And so it is well said that abstinence in the sensuality is happiness in the affection. For why ever the less that the sensuality is delighted in her lust, the more sweetness feeleth the affection in her love. Also after when Asher was born Leah said, This shall be for my bliss, and therefore was Asher called in the story blessed. And so it is well said that patience in the sensuality is bliss in the affection. For why ever the more dis-ease that the sensuality suffereth, the more blessed is the soul in the affection. And thus by abstinence and patience we shall not only understand the temperance in meat and drink, and suffering of outward retribution, but also in all manner of fleshly, kindly, and worldly delight, in all manner of dis-ease, bodily and ghostly, within or without, reasonable or unreasonable, that by any of our five wits torment or delight the sensuality. On this wise beareth the sensuality fruit in help of affection, her lady. Much peace and rest is in that soul that neither is drunken in the lust of the sensuality nor grudges in the pain thereof. The first of these is gotten by Gad and the latter by Asher. Here it is to weep what first was Rachel's maiden put to the husband, or the maiden of Leah. And this is a skill why, for truly, and if the jangling of the imagination, that is to say, the in-running of being thought be first refrained, without out the lust of the sensuality may not be a temper, and therefore whoso will refrain him from fleshly and worldly lust, in him be who with first seldom or never think any vain thought. And also never in this life may a man perfectly despise the ease of the flesh, and not dread the dis-ease. But if he have before busily beholden the meads and the torments that are to come, but here it is to weep how that, with these four sons of these two maidens, the city of our conscience, is kept wonderfully from all temptations. For all temptation, either it rises within by thought, or else without by some of our five whips. But within shall Dan deem and dam evil thoughts by sight of pain, and without shall Gad put against false delights by use of abstinence. Dan waketh within, and Gad without. And also there other two brethren helping them full much. Nephtali maketh peace within with Dan, and Asher, bideth Gad have no dread of his enemies. Dan feareth the heart with ugsomeness of hell, and Nephtali cherisheth it with be-hiting of heavenly bliss. Also Asher helpeth his brother without, so that, through them both, the wall of the city is not broken. Gad holdeth out-ease, and Asher pursueth dis-ease. Asher soon deceiveth his enemy when he bringeth to mind the patience of his father, and the be-hiting of Nephtali, and thus oft-times ever the more enemies he hath, the more matter ye hath of overcoming. And therefore it is that when he hath overcome his enemies, that is to say the adversities of this world, soon he churneth him to his brother Gad to help to destroy his enemies. And without fail from that he become, soon they turn the back and flee. The enemies of Gad are fleshly delights, but truly, from the time that a man have patience in the pain of his abstinence, false delights find no warning stead in him. And of the virtues of abstinence and patience rise in the sensuality. Recorded by Craig Campbell in Appleton, Wisconsin, in 2009, him eat sacrificial post by various authors, from Rig Veda, translated by Ralph T. H. Griffith in 1896. Recorded for LibriVox Coffee Break Collection Volume 2. This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org. Recorded by Craig Campbell, him eat sacrificial post. 1. God serving men, O sovereign of the forest, with heavenly meat at sacrifice anoint thee. Grant wealth to us when thou art standing upright, as when reposing on this mother's bosom. 2. Set up to eastward of the fire in Kindle, accepting prayer that waste not, rich in hero, driving far from us poverty and famine. Lift thyself up to bring us great fortune. 3. Lord of the forest, raise thyself up on the loftiest spot of earth. Give splendor, fixed and measured well, to him who brings the sacrifice. 4. Well-robed enveloped he is come, the youthful, springing to life his glory waxeth greater. Contemplative in mind and God adoring, sages of high intelligence upraise him. 5. Sprung up he rises in the day's fair weather, increasing in the men-frequented synod, with song the wise and skillful consecrate him, his voice the God adoring singer utters. 6. Ye whom religious men have firmly planted, thou forest sovereign whom the axe hath fashioned. Let those, the stakes divine, which here are standing, be feigned to grant us wealth with store of children. 7. O men who lift the ladles up, these hewn implanted in the ground, bringing a blessing to the field, shall bear our precious gift to gods. 8. Adityas, rudras, basas, careful leaders, earth, heaven, and protivi, and heirs mid-region. According deities shall bless our worship and make our sacrifices endsom lofty. 9. Like swans that flee in lengthened line, the pillars have come to us arrayed in brilliant color. They lifted up on high by sages eastward, go forth as gods to the gods dwelling places. 10. Those stakes upon the earth with rings that deck them seem to the eye like horns of horned creatures, or, as upraised by priests in invocation, let them assist us in the rush to battle. 11. Lord of the wood, rise with a hundred branches, with thousand branches, may we rise to greatness, thou whom this hatchet with an edge well wedded for great felicity hath brought before us. 11. Navajo Liturgy, author and translator unknown. O you who dwell in the house made of the dawn, in the home of evening twilight, in the house made of dark cloud, in the house made of the he-rains, in the house made of the dark mist, in the house made of the she-rain, in the house made of peace, where the dark mist curtains the door, the path to which is on the rainbow, where the zigzag lightning on high it stands, male deity divine. With your moccasins of dark cloud, come to us. With your headdress of dark cloud, come to us.  You, above thunder dark, high flying, come to us. With cloud having shape at your feet, high flying, come to us. With the dark cloud over your head, made of far darkness, high flying, come to us. With the far darkness, made out of the he-rain over your head, high flying, come to us. With your head over mist dark, made of far darkness, high flying, come to us. With the she-rain over your head, made of far darkness, high flying, come to us. With your head over zigzag lightning, far outflung, high flying, come to us. With your head over far hanging rainbow, high flying, come to us. With clouds dark on the ends of your wings, made of far darkness, high flying, come to us. With the far darkness, made of the he-rain on the ends of your wings, high flying, come to us. With the dark mist on the ends of your wings, made of far darkness, high flying, come to us. With the far darkness, made of the she-rain on the ends of your wings, high flying, come to us. With zigzag lightning, flung out afar on the ends of your wings, high flying, come to us. With the rainbow hanging far on the ends of your wings, high flying, come to us. With the near darkness, made of dark cloud, of he-rain, of dark mist, of she-rain, high flying, come to us. In the earth, darkness, come to us. With these also the foam to float on the flowing river over the roots of the great corn, that I wish. Your sacrifice I have made. For you the smoke have I prepared. My feet for me restore. My body for me restore. My mind for me restore. My voice for me restore. This day your spell for me take out. This day your spell for me remove. Away from me you have taken it. Far off from me it is taken. Far off you have done it. In a way of beauty I recover. Happily my eyes regain their power. Happily for me the spell is taken off. Impervious to pain I walk. Feeling light within I walk. Thus happily you accomplish your tasks. Happily the old men will regard you. Happily the children will regard you. Happily as they approach their homes they will regard you. Happily may their trails home be in the way of peace. Happily may all return. With beauty before me I walk. With beauty above me I walk. With beauty it is finished. With beauty again it is finished. For more information or to volunteer please visit LibriVox.org recorded by Craig Campbell in Appleton, Wisconsin. On the Day of Atonement 1. Both hegoats for the Day of Atonement are commanded to be alike in color, and in stature, and in price, and to be selected at the same time. And although they be not equal, yet are they lawful. If one be selected today and the other tomorrow, they are lawful. If one of them die, if he die before the lot be cast, the priest shall take a pair for the second, and if after the lot be cast he die, the priest shall fetch another pair and cast a lot over them anew. And he shall say, if that for the name die, this over which this lot comes will be a substitute for the name, and if that for a zazzle die, this over which this lot comes will be a substitute for a zazzle. And the second shall go to pastor until he become blemished, and he shall be sold, and his price must be put into the offeratory. Since the sin offering of the congregation dies not, Arjuda said, Thou shalt die. And again said Arjuda, Is his blood shed? The one to be sent forth shall die. Has the one to be sent forth died? His blood shall be shed. 2. The high priest came to the side of the goat to be sent forth, and he placed his two hands on him, and made confession, and thus he spake. I beseech thee, O name, Thy people, the house of Israel, have done perversely, have transgressed and sinned before thee. I beseech thee, O name, pardon now their perverse doings and their transgressions and their sins, which they have perversely committed and transgress, and sinned before thee. Thy people, the house of Israel, as is written in the law of Moses, Thy servant, saying, For on that day shall he make an atonement for you, to cleanse you from all your sins, before the Lord ye shall be pure. And the priests and the people who stood in the court, on hearing the name clearly pronounced by the mouth of the high priest, knelt and worshiped, and fell on their faces and said, Blessed be the name, the honor of his kingdom for ever and ever. 3. They delivered the goat to his conductor, all were eligible for conducting him, but the great priests made a rule, and they did not permit Israel to lead him forth. Sadar Joseph, it occurred that Arsela of Zippori lead him forth, and he was an Israelite. 4. And they made steps for him by reason of the Babylonians, who plucked off his hair, and said to him, Take and go, take and go. The nobles of Jerusalem escorted him to the first booth. There were ten booths, from Jerusalem to Zook, ninety stadia, seven and a half to every mile. Five. At every booth they said to him, There is food, there is water. And they escorted him from booth to booth, except the last, for they came not with him to Zook, but stood afar off and saw his ax. 6. What did he do? His conductor divided the tongue of brightness, half he twisted on the rock, and half he twisted between his horns. And he thrust him backwards, and the goat rolled, and descended. And he had not reached to the half of the mountain till his members were made members. He returned and sat under the last booth until darkness set in. And when did he render garments unclean? From his exit, from the wall of Jerusalem, our Simon said, from the time of his thrusting at Zook. 7. The high priest came beside the bullock, and he got which were to be burned. He cleft them, and brought out their entrails. He put them on a dish, and caused them to smoke upon the altar. He folded them in their skins, and caused them to be carried to the place of burning. And when did he render garments unclean? From his proceeding without the wall of the court, our Simon said, when the fire kindled on the greatest part of the sacrifice. 8. They said to the high priest, The he goat has arrived in the wilderness, and whence knew they that the he goat had arrived in the wilderness? They said, Watchmen, who waved handkerchiefs, and they knew that the he goat had arrived in the wilderness, said our Judah, and was not this a great sign to them? From Jerusalem to Beth Horan there were three miles. They went a mile and returned, and rested a time for a mile. And they knew that the he goat arrived in the desert, our Ishmael said, and was not there another sign to them? A tongue of brightness was twisted on the door of the sanctuary, and when the he goat arrived in the wilderness, the tongue blanched. As is said, though your skins be as scarlet, they shall be white as snow. End of On the Day of Atonement Psalm 23 From the Good Shepherd A Life of Christ for Children by Anonymous Recorded by Bologna Times for Coffee Break Collection Number 2, Faith This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org Psalm 23 The Lord is my shepherd, I shall not want. He maketh me to lie down in green pastures. He leadeth me beside the still waters. He restores my soul. He leadeth me in the paths of righteousness for his namesake. Yea, though I walk through the valley of the shadow of death, I will fear no evil, for thou art with me. Thy rod and thy staff, they comfort me. Thou preparest a table before me in the presence of mine enemies. Thou anointest my head with oil. My cup runneth over. Surely goodness and mercy shall follow me all the days of my life, and I will dwell in the house of the Lord forever. End of Psalm 23 Sadi Rebuked for his Fault Finding from the Bustan of Sadi by Muslehudin Masharif Ibn Abdullah Recorded for LibriVox Coffee Break Collection Volume 2 This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org Recorded by Craig Campbell Sadi Rebuked for his Fault Finding by Muslehudin Masharif Ibn Abdullah There was a certain young preacher who was learned and intelligent, a man of sanctity and a true worshiper. He was forcible in eloquence and correct in grammar, but his articulation was so faulty that he could not properly repeat the letters of the alphabet. I said to a holy man, the youth has not got his front teeth. Speak not thus, he replied, thou hast discerned his fault, but thine eyes are closed to his many virtues. Thorns and roses grow together. Why regardest thou only the thorns? He who is of bad nature sees nothing in the peacock, but its ugly feet. Expose not the faults of others, for thereby art thou forgetful of thine own failings. Whether I be good or evil, keep thou silent, for I am the bearer of my own profit and loss, and God is better acquainted with my character than thou. I seek no reward from thee for my virtues, so that I may not be afflicted by thee by reason of my sins. For every good act God will bestow not one, but ten rewards. If thou see one virtue in a man, do thou pass over the ten faults that he hath? Are not all things created the product of the art of God? Black they are, and white, handsome and deformed, not every eye and eyebrow, that thou seeest is good. Eat the kernel of the nut, and throw the husk away. End of Sadi rebuked for his fault finding. Gamshade by Zarathustra. Translated by James Darmestetter. 1. Zarathustra asked Ahura Mazda. O Ahura Mazda, most beneficent spirit, maker of the material world, thou holy one. Who was the first mortal before myself, Zarathustra, with whom thou Ahura Mazda didst converse, whom thou didst teach the law of Ahura, the law of Zarathustra? Ahura Mazda answered, The fair Yima, the great shepherd, O holy Zarathustra, he was the first mortal before thee, Zarathustra, with whom I, Ahura Mazda, did converse, whom I taught the law of Ahura, the law of Zarathustra.  And the fair Yima, O Zarathustra, replied unto me, saying, I was not born, I was not taught to be the preacher, and the bearer of thy law. Then I, Ahura Mazda, said thus unto him, O Zarathustra, since thou wantest not to be the preacher and the bearer of my law, then make thou my world's thrive, make my world's increase, undertake thou to nourish, to rule, and to watch over my world. And the fair Yima, replied unto me, O Zarathustra, saying, Yes, I will make thy world's thrive, I will make thy world's increase, yes, I will nourish and rule and watch over thy world. There shall be, while I am king, neither cold wind nor hot wind, neither disease nor death. Then I, Ahura Mazda, brought to implements unto him, a golden ring and a ponyard inlaid with gold. Behold, here Yima bears the royal sway. Thus under the sway of Yima, three hundred winters passed away, and the earth was replenished with flocks and herds, with men and dogs and birds, and with red blazing fires. And there was no more room for flocks, herds, and men. Then I warned the fair Yima, saying, O fair Yima, son of Vivancat, the earth has become full of flocks and herds, of men and dogs and birds, and of red blazing fires, and there is no more room for flocks, herds, and men. Then Yima stepped forward towards the luminous space southwards to meet the sun, and afterwards he pressed the earth with the golden ring, and bored it with the ponyard speaking thus, O spente ar-maiti, kindly open asunder and stretch thyself afar to bear flocks and herds and men. And Yima made the earth grow larger by one third than it was before, and there came flocks and herds and men at his will and wish, as many as he wished. Thus under the sway of Yima, six hundred winters passed away, and the earth was replenished with flocks and herds, with men and dogs and birds, and with red blazing fires, and there was no more room for flocks, herds, and men. And I warned the fair Yima, saying, O fair Yima, son of Vivancat, the earth has become full of flocks and herds, of men and dogs and birds, and of red blazing fires, and there is no more room for flocks, herds, and men. Then Yima stepped forward towards the luminous space southwards to meet the sun, and afterwards he pressed the earth with the golden ring, and bored it with the ponyard speaking thus, O spente ar-maiti, kindly open asunder and stretch thyself afar to bear flocks and herds and men. And Yima made the earth grow larger by two-thirds than it was before, and there came flocks and herds and men at his will and wish, as many as he wished. Thus under the sway of Yima, nine hundred winters passed away, and the earth was replenished with flocks and herds, with men and dogs and birds, and with red blazing fires, and there was no more room for flocks, herds, and men. And I warned the fair Yima, saying, O fair Yima, son of Vivancat, the earth has become full of flocks and herds, of men and dogs and birds, and of red blazing fires, and there is no more room for flocks, herds, and men. Then Yima stepped forward towards the luminous space southwards to meet the sun, and afterwards he pressed the earth with the golden ring and bored it with the ponyard speaking thus. O spenta armaiti, kindly open asunder and stretch thyself afar to bear flocks and herds and men, and Yima made the earth grow larger by three-thirds than it was before, and there came flocks and herds and men at his will and wish, as many as he wished. Two. The maker Ahura Mazda, of high renown, in the Ayurjana Vayego, by the good river Daitya, called together a meeting of the celestial gods. The fair Yima, the good shepherd of high renown, in the Ayurjana Vayego, by the good river Daitya, called together a meeting of the excellent mortals. To that meeting came Ahura Mazda, of high renown, in the Ayurjana Vayego, by the good river Daitya. He came together with the celestial gods. To that meeting came the fair Yima, the good shepherd of high renown, in the Ayurjana Vayego, by the good river Daitya. He came together with the excellent mortals. And Ahura Mazda spake unto Yima, saying, O fair Yima, son of Yivankhat, upon the material world the fatal winters are going to fall, that shall bring the fierce fowl frost, upon the material world the fatal winters are going to fall, that shall make snowflakes fall thick, even as a red bee deep on the highest tops of mountains, and all the three sorts of beasts shall perish, those that live in the wilderness, and those that live on the tops of the mountains, and those that live in the bosom of the dale, under the shelter of stables. Before that winter, those fields would bear plenty of grass for cattle. Now with floods that stream, with snows that melt, it will seem a happy land in the world, the land wherein footprints, even of sheep, may still be seen. Therefore make the Avara, long as riding ground on every side of the square, and thither bring the seeds of sheep and oxen, of men, of dogs, of birds, and of red blazing fires. Therefore make the Avara, long as a riding ground on every side of the square, to be in a boat for men. Avara, long as a riding ground on every side of the square, to be a fold for flocks. There thou shalt make waters flow in a bed of hafra long, there thou shalt settle birds by the evergreen banks that bear never-failing food, there thou shalt establish dwelling places, consisting of a house with a balcony, a courtyard, and a gallery. Thither thou shalt bring the seeds of men and women, of the greatest, best, and finest kinds on this earth. Thither thou shalt bring the seeds of every kind of cattle, of the greatest, best, and finest kinds on this earth. Thither thou shalt bring the seeds of every kind of tree, of the greatest, best, and finest kinds on this earth. Thither Thou shalt bring the seeds of every kind of fruit, The fullest of food and sweetest of odour. All those seeds shalt thou bring, Two of every kind, To be kept inexhaustible there, so long As those men shall stay in the vara. There shall be no hump-backed, None bulged forward there, No impotent, no lunatic, no poverty, No lying, no meanness, no jealousy, no decayed Tooth, no leprous to be confined, Nor any of the brands wherewith angra minu Stamps the bodies of mortals. In the largest part of that place, Thou shalt make nine streets, Six in the middle part, Three in the smallest. To the streets of the largest part, Thou shalt bring a thousand seeds of men and women. To the streets of the middle part, Six hundred. To the streets of the smallest part, Three hundred.  Then Yima said within himself, How shall I manage to make that vara, Which Ahura Mazda has commanded me to make? And Ahura Mazda said unto Yima, O fair Yima, son of Vivancut, Crush the earth with a stamp of thy heel, And then knead it with thy hands, As the potter does when kneading the potter's clay. And Yima did, as Ahura Mazda wished, He crushed the earth with a stamp of his heel, He kneaded it with his hands, As the potter does when kneading the potter's clay. And Yima made a vara, Long as a riding-ground on every side of the square, There he brought the seeds of sheep and oxen, Of men, of dogs of birds, And of red blazing fires. He made vara, Long as a riding-ground on every side of the square, To be in a boat for men, A vara, Long as a riding-ground on every side of the square, To be a fold for flocks. There he made waters flow in a bed of hathralong, There he settled birds by the evergreen banks That bear never-failing food. There he established dwelling-places, Consisting of a house with a balcony, A courtyard, and a gallery. There he brought the seeds of men and women Of the greatest, best, and finest kinds On this earth. There he brought the seeds of every kind of cattle, Of the greatest, best, and finest kinds On this earth. There he brought the seeds of every kind of tree, Of the greatest, best, and finest kinds On this earth. There he brought the seeds of every kind of fruit, the fullest of food and sweetest of odour, all those seeds he brought, two of every kind, to be kept inexhaustible there, so long as those men shall stay in the vara. And there were no humpbacked, none bulged for there, no impotent, no lunatic, no poverty, no lying, no meanness, no jealousy, no decayed tooth, no leprous to be confined, nor any of the brands were with Angra Mainu, stamps the bodies of mortals. In the largest part of the place he made nine streets six in the middle part three in the smallest, to the streets of the largest party brought a thousand seeds of men and women, to the streets of the middle part six hundred, to the streets of the smallest part three hundred, that vara he sealed up with the golden ring, and he made a door and a window self shining within. O maker of the material world, thou holy one, what lights are there to give light in the vara which Yimma made? Ahura Mazda answered, there are uncreated lights and created lights, there the stars, the moon, and the sun are only once a year seen to rise and set, and a year seems only as a day. Every fortieth year to every couple two are born, a male and a female, and thus it is for every sort of cattle, and the men in the vara which Yimma made live the happiest life. O maker of the material world, thou holy one, who is he who brought the law of Mazda into the vara which Yimma made? Ahura Mazda answered, it was the bird Karshipta, O holy Zarathustra, O maker of the material world, thou holy one, who is the lord and ruler there? Ahura Mazda answered, Orvatadnara, O Zarathustra, and thyself Zarathustra. End of Vendidad, Fagard II, Yimma Gamshed, by Zarathustra. End of Vendidad, Fagard II, Yimma Gamshed, by Zarathustra.


Okay, so really excited to introduce Caitlin, she's going to give us a great talk, let's give her a round of applause. Can everybody hear me? Yeah. Yeah, okay, awesome. So I'm Caitlin, hello. What we're going to talk about is intentional deployment, so best practices for feature flag management. And I know you guys are all thinking like amazing title Caitlin, like great work, right? But what does that actually mean? Let's talk about it. So intention, let's go down to like the smallest block we can talk about. Doing what you meant to do, super important for software development. So we're usually writing code with intention. I don't know if any of you are just, you know, banging your keyboard against your standing desk and assuming perfectly syntactical pipeline just shoots right out. No, nobody's doing that, right? We are writing code, we're testing code, we're reviewing code, we're putting a lot of effort into making sure that our code does exactly what we want it to do. And then somebody had this amazing idea, which was, okay, when it comes time to, you know, throw that perfectly tested reviewed bundle of code that we wrote out into the world, maybe we should be being intentional about that too, right? So let's be intentional about our code when we deploy it out into the world. And not everybody has, you know, CI, CD canarying systems, not everybody has very fancy or automated ways to deploy their code into the world and have a lot of control over it. So what is a super easy way to have a lot of control over your code once it's out in production? Feature flags, right? So if you don't know what a feature flag is, it's basically a light switch. You can wrap your code in a feature flag and say when the feature flag is on, we're going to do something. Otherwise, we're going to do something else, right? Pretty simple. So let's look at what that process actually looks like, right? So we wrote this amazing piece of code. It solves every problem ever, it's called do something, and it's time for us to deploy that. So we wrote the code. We're going to put it behind a feature flag. We're going to say if the feature flag is on, we're going to use our amazing function. Otherwise, we're going to use what was already existing there. We deploy that, this code just as it looks right now to production, except maybe it's, you know, more syntactical. But then we put it behind a feature flag and this one is going to be a release toggle, which means that we're going to slowly roll this feature out to a number of users by turning the flag on in production. So everything goes great. We turn the flag on. We start rolling it out. We roll it out to 100% in production. And the important thing to note here is that we didn't actually have to do a code change to turn the feature flag on. So we did this externally to do any code change. We were able to just roll out the percentage of the feature to production. So this lucky user has the feature on. They were able to see your feature. Maybe something went wrong. Maybe your feature didn't work as intended. Maybe you just want to roll it back.  And then all of a sudden they don't have access to your feature anymore, right? And none of this required a code deploy. Everything is working great. So you had this amazing idea. It worked out perfectly. You're thinking, I'm doing so great. I'm going to get a promotion. Everything is working out great for me. The only issue is that everybody else in your company also had the same amazing idea, right? So when feature flag becomes feature flags, now we're starting to get into a little bit of like a hot mess situation, right? And then not only the volume of these feature flags is an issue, but also they're all different types. So they all have, you know, different purposes, different lengths that they should stay in the code base, different functions, and that's contributing to this mess. So your feature flag from before was a release toggle. It turned things on or off and, you know, slowly rolled something out into production. Maybe this feature flag over here is a kill switch, right? It's just intended to turn a feature off if something is going wrong in production. Meanwhile, this feature flag over here is an experiment. It's trying to test two different things with two different groups of people. But this one over here is an opt-in. So if people have this feature flag on, they're getting a feature. And then this flag over here is an opt-out. So if people have this one on, they're actually not getting the feature. So all of these are coming together kind of to form this mess of feature flags. You don't know what's going on. You don't know what any of these do. And they all look kind of the same. So this is a problem, right? How do we fix that? Or rather, a better question to ask is, what's the best way to do feature flags? What's the right way to do it? So this is a problem that I've been trying to look into for the past couple months. And the reason that I'm trying to look into it is because I'm a software engineer and I work at a company called Optimizly. And Optimizly has a feature flagging product, right? So I work on a feature flagging product. I use feature flags in development. I hack on feature flags. And I also talk to a lot of people who use feature flags every day or who manage feature flags every day. So just for this talk, I spoke to a lot of people, right?  So some PMs, a director of development, some people who are, you know, post-sale cycle talking to customers, so sales engineer, solutions architect, and some people on DevOps and Quality. And I learned some things about some best practices that I'm going to try to share with you today. All trying to figure out what's the best way to do feature flags, right? Answering that core question that we had before. So we talked about a couple things. We talked about feature flags and we talked about some people. What goes wrong when we compare those, when we combine those two different things, right? Because that's kind of the more fun part of it. So let's talk about, before we talk about how to do feature flags, right, let's talk about how we can do them. Really, really wrong. So let's start on, like, the lowest risk end of this spectrum. So inherently, when you're putting a feature flag into your system, you're adding tech debt and confusion into your system. We're increasing the complexity of the code and we're making it harder for engineers to understand what's going on. So if we compare these two code samples, right, the one on the left has a feature flag in it and the one on the right does not. The one on the left is inherently much harder to understand and even impossible to understand, right? Because the one, I mean, it's more lines of code, obviously it's a little bit harder to read, but you don't actually know if that feature flag is on or off. So literally not one person in this room can tell me what the code on the left is going to evaluate to. You don't know if it's going to do something or if it's going to do something else. Meanwhile, the code on the right, we're all pretty clear, it's going to do something. So we're increasing the complexity of the code. And not only that, but let's take that confusion that we felt with those two code snippets and let's apply it by the amount of feature flags that we have in our code base and the number of lines of code that they're gating. So I took like a little look into our own code base to see how many feature flags optimally has in our code base. I found over 40 instances of feature flags and they're all pretty big, so they're all gating like thousands of lines of code. We're introducing a lot of tech debt, a lot of opportunity for things to go wrong. The next thing to talk about is taking out a feature flag kind of sucks. I don't know if anybody here has tried to do it. This is from a real feature that I worked on that was gated by a feature flag. This is just the PR to take out the feature flag, right? Over a thousand lines of code, 100 comments on GitHub, and it stayed in the code base for over 60 days, right? So none of this is super great, none of this is best practice, but it just shows like taking out a feature flag, it can be a lot of work, it can be a lot of tech debt in our system. So now we've talked about things that were kind of more low risk, right?  Now let's talk about something where, you know, we're kind of impacting customers now, right? We're seeing an impact on our customers. So we can have performance impacts on our system just by using feature flags.  These are things that you have to think about and they're going to have performance impacts on your system. So we once had a feature flag that was improperly implemented. It added 48 seconds to one of our API endpoints. I don't know if anybody is like super patient in this room, but I personally don't have the patience for 48 seconds for any answer to any question, much less than API response. Okay, so now you guys are like, okay, Caitlin, how bad can this really get? It doesn't sound super risky, how bad can it get? The answer is really bad, right? So we can get into a total disaster scenario pretty quickly. Has anybody heard of Knight Capital Group? I see a few nodding heads. Okay, so if you haven't heard, they were a financial services group. The key word here is were. We'll go into why. So they were the largest trader in U.S. equities in 2012. They were trading $21 billion every day. It's a lot of money. At 9.30 a.m. on August 1st, 2012, they held $365 million in assets. Remember that time, 9.30 a.m. By 10.15 a.m., they were straight up bankrupt. So they had a $460 million loss in 45 minutes. Let's talk about why. If you might have guessed, it has something to do with an improperly managed feature flag. They had this code deployed to their servers in production that said if a feature flag is on, we're going to do this old thing. This code was eight years old. It wasn't being used because the feature flag was off, right? Now they add some brand new functionality. Uses the same feature flag. But now we're turning the feature flag on so that we have access to the new code. But the old code is still there. So when we turn the feature flag on, we're actually bringing back from the dead this eight-year-old code. What does that eight-year-old code do? So they're a trading company. The code was responsible for processing orders. So this old code that came back from the dead is responsible for processing orders. Doesn't have validation to stop processing orders. So that's a very important part of the puzzle here. And it went rampant for 45 minutes, non-stop processing orders, mounting to $460 million in losses, right? So it's a pretty big deal. If you want a good visual of that, this is their stock over that day. Definitely illustrates the risks of, you know, an improperly managed feature flagging program, right? Total disaster. So now everyone's scared, right? We're all like, oh no. We're going bankrupt 45 minutes from now by the end of this talk. No, actually we're not going to because everyone here is going to follow these practices and be really intentional about how we're deploying code using feature flags, right? So how can we mitigate these risks by being intentional about how we're using feature flags and how we're controlling them? Because if you think about it, we used a feature flag because you wanted to be intentional when you wrote the code. So why are we not being intentional about controlling these flags after they're out in production? So let's talk about some best practices, right? These are the things that we're going to follow so that we don't have any disaster scenarios. We're implementing feature flags correctly. The two things I want to talk about are visibility and accountability. These are the two things that we're going to strive for in our feature flagging systems. So let's talk about visibility first. The core concept here is I basically want you to know where your flags are and what they're doing every hour of every day of every night.  You're going to stalk your flags, right? So for every single flag you should know the state, the history, the metrics, and the expiration at any given time. So the state is pretty simple, right? We set a feature flag as like a light switch. I want to know if it's on or off. The history could be a little bit more complicated, a little bit more related to what you're actually doing with flags. So, you know, some questions you might want to answer. When did it last change? Why did it change? Who changed it? Why did they change it? And then for every single change that was made, was it turned on or off? Was the rollout percentage effective? Who was it being targeted towards? Did that change? You're going to want to know all of these things for every decision made in your feature flagging system, you know, throughout the history of the flag. The next thing you want to do is have some metrics. So the first thing you want to know is, is this flag even being used? Is it being evaluated? Are users hitting it? So you want to know how many times has it been evaluated? When was the last time it was evaluated? The next thing you want to know is, you know, what metrics are tracking this flag's success or failure? Is it properly implemented? Is it just tanking? What metrics do we have around the flag? And then the last thing you want to know is the expiration date, right? So we said before that you're adding technical debt to your system when you add feature flags in. So it's really important to know exactly when is this technical debt coming out of the system and who is responsible for taking it out. So we talked about things that, you know, you're going to want to know for every single flag. Now we want to have a bird's eye view of your entire system. So for your entire feature flagging system, how many flags are in the code base? Where are they in the code? The percentage of your flags are rolled out to X percent, right? So on any given day, how many of your flags are rolled out to 100 percent? How many of your flags are rolled out to zero percent? They're not being used. And then also which flags are expired? Which flags are expiring in X days? So which flags are going to expire in 30 days and 60 days and 90 days? These are really important questions to know the answer to for planning. The next thing you're going to want to think about is collaboration, right? So other people might be using your flag, not only in like the disastrous situation which we saw with Knight Capital Group, but also in, you know, other ways. A feature flag is really cool because it can turn what used to be a code deploy and engineering decision getting the code into production into a business decision. So now, you know, you can deploy the code and then separately you can turn the feature flag on in production. But the important thing to note here is that you might not be the one flipping the switch on your feature. So who else needs to know about these things, right? Or what else needs to be gated behind this flag? It might not only be code. You might be gating docs. You might be gating marketing material. There's other teams that might be infected by this flag. The other thing to know is who's controlling the flag, right? So is it a developer? Is it a release team? Is it a PM? And then the last thing is who needs to be notified of this change, right? So we said you're affecting other teams. You might be affecting other departments with your flag. Who needs to know about it? And the important thing is that we're going to know the answer to all of these questions before we put the feature flag into our code base. That's really the key part of being intentional. None of this has to be particularly high-tech. You know, we have a very low-tech stack here where to find your feature flags, you're just searching for them in the code. And then also to track your flags, you have a shared spreadsheet. Really easy. Note down every time somebody has a change, have a whiteboard in the middle of the room if you're a smaller team. The important part is that you're just tracking these and you're asking these questions. So here, because I work on a feature flagging product, I can have like a little bit more of an automated higher-tech solution. But the important thing to note is that we're answering the same key questions. Where is the flag? You know, up here, you can find it in GitHub. Is it being used? This one was last accessed five hours ago and 10 times overall, because it's kind of a small sample. And when does it expire? Answering the same questions, we're being thoughtful about these things. So now we follow the best practices. We have a very visible system. It doesn't really mean anything unless we do anything about it. So there's two parts of intention, which is I'm going to plan what I'm going to do and then I'm actually going to do it. I want you guys to be accountable for your feature flags. So for every single flag, we want to make sure that it's tracked in a shared place. So everybody who has a stake in this flag or the outcome of this flag has access to it. And we want to make sure that we have a learning setup on our monitoring and our metrics so that we're not just screaming into a void, nobody cares. Otherwise, there's no point in having monitoring. The other key piece of accountability is basically a lot of procedural change, right? So we want to decide as a team or as a company who owns, managing your feature flags as a whole. Somebody needs to be in charge of this. Somebody needs to be driving this. So is it a release team? Is it a PM? Is it an engineering manager? Making sure you have this visibility and accountability for every single flag. The next thing you want to think about is maybe you want to have a whip limit. So this is a work in progress limit. It means that you're limiting the number of features or feature flags in the code base. So personally, my team has a whip limit of two features in flight at any given time. Can't go over that. So because we tend to use a little bit larger feature flags, we tend to only have two feature flags in the code base at any given time. The important thing to note here is that we're considering feature flags to be work in flight, right? So it counts into the discussion of how much work in flight do you want to have at any given time. And the important thing here that you might want to do this for is that the people feeling the consequences of tech debt or of leaving these feature flags in the code base are not always the people prioritizing the work to take them out, right? So if you have a whip limit or something limiting the number of feature flags in your code base, they're going to be incentivized to take old features out before they put new features in. Another thing that you could think about as a team, as a company, is what are the list of must-dos before somebody implements a feature, right? Super easy to just have a feature flag checklist before anybody puts a feature flag in. We have to be thinking about a couple of things. So some of the questions that you might want to ask, what tracking do they need to have around the feature? What metrics do they have set up? What's the procedure they need to follow if you're using a shared spreadsheet? What do they need to enter? What do they need to be tracking? What kind of changes should not be behind a feature flag? Definitely a lot of changes that shouldn't be behind a feature flag, right? If you have destructive database changes or things that can't be rolled back or turned off, those should not be behind a feature flag and everyone should be checking that they're not making those kinds of changes before they put it behind a feature flag. And then the last thing you want to talk about is the lifespan. So for any given type of feature flag, how long can it stay in your code base, right? So for a short-lived flag, maybe for your company that means a day, maybe it means a week, maybe it means a month, do you want to have long-lived flags or do you not? The important thing here is that you want to know how long does your system take to get meaningful results, right? So maybe if you're getting a lot of traffic to the feature, you can make these decisions based on an hour, based on a day. Maybe if you're not getting a lot of traffic, it takes you longer. The important thing is to think about, you know, setting up limits for these things, and then at least if somebody has a really good reason for why they can't, you know, follow this limit, they've thought about it. They give you a limit, a reason for why they're going against the rules.  Okay, so we've talked about kind of ways to be accountable. Now let's talk about expired features. So we need to think about features as expired features as part of the work of the feature. So the feature is not completed until the feature flag has been taken out. And that's going to help us retire flags which are expired or unused, which are the flags that we want to go. How do I make sure that expired features are removed? So there's a couple of really easy ways that you can make sure that you're getting expired features out of your code base. You can have a feature stand up every week where, you know, this is where visibility comes into play because you can say pretty easily if you have a very visible system, all of these flags are either at 100% or at 0%. They need to come out. They've expired in next days. They are expiring in next days. Here's the ones that need to come out and plan for that. The other things you can do is you can ticket the flag removal when the flag is created. So if you're using, you know, JIRA or something like that, you can make the ticket to take the flag out as soon as you, you know, JIRA out the feature. You can also, even the most extreme version of this is write the PR to take the flag out as soon as you put it in. You're going to have the most context right then and if it's a pretty simple flag, you can write the PR to take it out right then. And then an important thing to think about here is that these are procedural changes. So like any procedural change at your company, it's really important that you do a couple things. You need to ensure a view of the processes that you put in place with all of the people who are stakeholders here. You need to gain buy-in from all the people that are stakeholders in this process and you need to communicate these standards widely once you decide upon them as a team or as a company. A couple other just kind of rules of thumb. They might not work if, you know, you have a very specific use case or depending on what you're using flags for, but it's good to keep flags as small as possible and as small as possible, I mean the code directly gated behind the flag. Important to keep that as small as possible if you can because it'll make removal a lot easier. Keep flags, try to keep flags as short-lived as possible so as soon as they can come out, they should because they're added tech debt, they're going to be harder to take out down the line and as top level as possible. So what I mean by that is bubbling up feature flags so the highest point they can live in in the code. If you just think about, you know, it's an if-then statement. It's kind of a branching structure. If you have one branch up here as opposed to a million little baby branches down here, it's going to be testing a lot easier if you only have, you know, two cases to test rather than a bunch of little ones. Okay, so in summary, we are all going to manage our feature flags otherwise some bad stuff can go down and we're going to do that by stalking them 24-7 and we're going to have monitoring, alerting on our flags, keep ourselves accountable and retiring our flags once they're, you know, time to go. So with that in mind, hopefully we are all going to go from this hot mess of a feature flag situation to our beautifully organized feature flags on their flag poles ready in their feature flagging system. Thank you.


Horses going in the toughest steeple chase of them all and it's typical Grand National weather. A chilly gray mist hangs over the famous course at Aintree England. He jumps to go. First jump claims its victims. Irish horse that plund last year and is 11 to 2 favorite to repeat. But the Grand National hasn't seen two successive victories by the same horse since Rattlestown one is in 35 and 36. Now surprised pack in a 101 shot takes the lead for a while. Field is now in quickly. Study of misfortune. The dreaded jumps named Beecher's Brook and Valentine's Brook take a toll of 16 mounts between them. At the canal turn some of the horses don't clue the barrier but their jockeys do. Or will Miss Gibson find her game? With the match standing a set of peace, Althea shows her famed title winning form. The match and title. It's Australia's Mal Anderson and Ashley Cooper. Mal serves in the near court and you're seeing the two top world tennis stars. Battle it out for the American title. Anderson serves and for sensational tennis. Watch this rally. Cooper has taken a lead in the fifth and final set. Then with victory within his reach, the Australian and Wimbledon champs brings his ankle. It looks for a moment as though he will be forced to forfeit the match just when he's gained a slim lead. But he comes back gamely to win the next two games. Here's match point. 1958. Here's from seven countries gather at the top of the in-run for an international meet on the Olympic slide at Garmish Park and Kitchen in the Bavarian Alps. How's to try to ward off a spell? Monocazzi of Russia who takes second place.


Hey folks, I'm Dupay here and today we're going to be looking at ponables.kr, the random challenge. So this will be a walkthrough of this. So jumping right in, random says, Daddy, teach me how to use random value in programming. So it's good that it's not literally random in the sense that the challenge could be about who knows what, but it actually gives us a focus and something to look for. So it's saying teach me how to use a random value when programming. So we have, this is one of those SSH type challenges, so we'll SSH into random at ponable.kr on that port, which I've already done, looking around. We can see we have our standard flag, random and random.c. Now this time random underscore PWN control has set UID, so the user will execute as and the flag is readable by that user. So looking at, so great, looking at the code again, so this is very short, and if we look back, we can see that this is a one point challenge. This would be just as easy as the file descriptor challenge. Let's see if that's the case. So here we have including standard IO.h, random and unsigned int gets a random value and unsigned int key. So passes in, and this is interesting compared to the BOF challenge, it passes in the address of key, so that's the good way to use scanf, and then it says if the key xord with random is equal to dead beef, then good, then cap the flag, otherwise it's telling you maybe you should try two to the 32 cases. So hopefully this will not require two to the 32 cases because that is a lot of cases. So first thing we gotta do is figure out what the heck is this RAND function if you've never seen this. So we look at this, we see that RAND is a pseudo random number generator, it returns an int, takes nothing in, and it says the RAND function returns a pseudo random integer in the range of zero to RAND max. The SRAND function sets its argument as the seed for a new sequence of pseudo random numbers to be returned by RAND. These sequences are repeatable by calling SRAND with the same seed value. So SRAND is to seed the random number generator, so basically a pseudo random number generator will create a sequence of numbers that should not repeat for a long time. I'm not a crypto expert, but I do know how these things work. SRAND does not stand for secure, it stands for seed, so you're seeding the pseudo random number generator, and basically if you give it a specific seed, it will start generating random numbers, essentially using that as you can think of as the seed. So this way if you needed the random number generators to be exactly the same, you'd seed them with the same number, and they would both generate the same string of numbers. It says if no seed value is provided, and since RAND is the first thing that is called, we can see that there's no seed numbers provided, it's saying if no seed value is provided the RAND function is automatically seeded with a value of one. That is interesting and seems bad. So now the question is what is that value? So we can actually write a quick function. We are in random exploit.c, and we want to include all the stuff that it does, standard io.h, int main, we don't care about any of our arguments, and actually because I have a personal weirdness, I like it like this. So unsigned int random, random is equal to RAND, and printf percent d random, return zero. So we can take this and again I'll use the, so we can run this on our local machine and let's do that now. So we can do gcc w all exploit.c, and we can run it, we can see, so let's do a new line here just because that's nicer. So we can see that it executes some value, and just because I don't fully trust just in case there's some weirdness in the pseudo random number generator that's used in this version of Linux versus the system on the remote machine. Because I have the ability to run code on that machine, I'm just going to use, I'm going to use there, so let's make dirt temp atom d dash random, and the, okay, so cat exploit.c, there we go, gcc w all exploit, run a.out, and so it actually is the same, so that's nice. So we know, so now going back to the code, now we know exactly what, so even though it's a quote quote random number, because the seed is fixed, the first call to RAND will always be the same. And in fact, if we know the seed, we actually know the first call, the second call, every single call to RAND. So now that we have this, we know that it's going to ask us for our input, and it's going to exhort our input with that random number to get it to be dead beef. So we can take this number, turn it into, we can take this number, so essentially we will have this number, and we want dead beef, and clear it, turn it into a number, and we're going to exhort these two numbers together. So that number, exhort with, and you could use your terminal, you could use Python, you could use whatever fancy thing you want to do. That should give us this beef five, you know, let's make it a little nice XOR, or, so this is going to be the value that we should want to type in. So let's see if that's the case, and what does it do when it's correct? I believe it will cat out flag. So since we're in this directory, again, we'll do our little trick of doing home, random, flag, flag, and we can call home random, random, input this, boom, and there we go, mommy, I thought libcrandom is unpredictable. And assuming you don't know the seed, it is, it should be unpredictable or difficult to predict. So we can put this in here, and now we get that we already authenticated that flag. So there we go. We just broke the random challenge of Pornables.kr. So thanks, folks. Talk to you later.


And it's video so your so your legs that just stop talking I'm not messing around remembering yesterday's story. Oh my toe Broken sprained broken sprained. I don't know. I don't know. Here's the thing I just went for a short little jog and it felt good. It actually felt great I didn't hurt at all. It's still black and blue. So I'm thinking I just sprained it I don't think I broke it if I broke it. I don't think I'd be able to go jog Anyway, I'm packing up gonna give it a go. I'm a jean pass. This is a pass that connects Your ray and tell you right.  I'm a jean pass My dad like I already said used to do this run as a you know in the 70s in the 80s It's a race. So 17 miles up and over these mountains Oh So anyway, here we go.  I'm excited I'm just gonna say something else, but I forget what it was hmm Well, I'll think of it on the run. All right, putting you away probably for a while I'll probably pull you out toward the top. I think it's 10 miles to the top and then seven miles back down to tell you right Let's do this By the way The tow feels good. The tow feels good We are breaking again And Harrison's doing stuff vlog for the day get ready for a boring ride The Rocky Mountains are Part of a Diabetes of glacier melts that formed them 4,000 years ago. Yes quite young If you see up there, there is a green basin Just gorgeous and you often see flamingos flocking With the bill goats. Oh, you see I think we'll get back to you in our next episode nature rocks with Tucker Cold isn't it? Man, I'm feeling good By this is beastly. Oh, man I get some nutrition in me some water. I'm at one hour and ten minutes to this road. I Don't think it's much further to the top. I think I'm at about seven miles Roughly, so I think it's about another three miles up. That's good No other options Here we go. You got sandals. You're smart Oh Crispy baby crispy Just chilling here above the clouds Not too shabby. Oh, I can see tell you ride. That is cool. It's right down there I'm at 12 miles exactly five to go to 17 mile run and In case anyone wants to Send me a letter to PO box 17 79 Englewood, Colorado. It won't end up here Well, who knows you never know All right. I love you all. I'm not gonna chill up here too long. Remember my rule of thumb Three thunders below tree line turn around one thunder above tree line soak it in baby


Hi my name is Sean Cassidy and I'm voting yes to marriage equality and I hope you vote me too. I'm voting yes because I believe in equality, I believe in fairness, I want an Ireland where everyone is treated equal, I want an Ireland where my gay friends, my straight friends are equal.