Story number 15 of Hurlboot's Story of the Bible. This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer please visit LibriVox.org. Hurlboot's Story of the Bible by Jesse Lyman Hurlboot Part 3. Absalom in the Wood. David on the Throne. Second Samuel 1724 to 2026. The land on the east of Jordan where David found a refuge was called Gilead, a word which means high because it is higher than the land opposite on the west of Jordan. There in the city of Mahaname the rulers and the people were friendly to David. They brought food of all kinds and drink for David and those who were with him, for they said the people are hungry and thirsty and very tired from their long journey through the wilderness. And at this place David's friends gathered from all the tribes of Israel until around him was an army. It was not so large as the army of Absalom but in it were more of the brave old warriors who had fought under David in other years. David divided the army into three parts and placed over the three parts Joab, his brother Abishai and Itai who had followed him so faithfully. David said to the chiefs of his army and his men I will go out with you into the battle but the man said to David no you must not go with us for if half of us should lose our lives no one will care but you are worth 10,000 of us and your life is too precious you must stay here in the city and be ready to help us if we need help. So the king stood by the gate of Mahaname while his men marched out by hundreds and by thousands and as they went past the king the men heard him say to the three chiefs Joab and Abishai and Itai for my sake deal gently with the young man Absalom. Even to the last David's loved the son who had done to him such a great wrong and David would have them spare his life. A great battle was fought on that day at a place called the wood of Ephraim though it was not in the tribe of Ephraim but of Gad on the east of the Jordan. Absalom's army was under the command of a man named Amasa who was a cousin of Joab for his mother Abigail and Joab's mother Jeruia were both sisters of David so both the armies were led by nephews of King David. Absalom himself went into the battle riding upon a mule as was the custom of kings. David's soldiers won a great victory and killed thousands of Absalom's men. The armies were scattered in the woods and many men were lost so that it was said that the woods swallowed up more men than the sword. When Absalom saw that his cause was hopeless he rode away hoping to escape but as he was riding under the branches of an oak tree his head with its great mass of long hair was caught in the boughs of the tree. He struggled to free himself but could not his mule ran away and Absalom was left hanging in the air by his head. One of David's soldiers saw him and said to Joab, I saw Absalom hanging in an oak. Why did you not kill him? asked Joab. If you had killed him I would have given you ten pieces of silver and a girdle. If you should offer me a thousand pieces of silver answered the soldier I would not touch the king's son for I heard the king charge all the generals and the men let no one harm the young man Absalom and if I had slain him you yourself would not have saved my life from the king's anger. I cannot stay to talk with you said Joab and with three darts in his hand he hastened to the place where Absalom was hanging. He thrust Absalom's heart through with the darts and after that his followers finding that Absalom was still living pierced his body until they were sure that he was dead. Then they took down his body and threw it into a deep hole in the forest and heaped a great pile of stones upon it. During his life Absalom had built for himself a monument in the valley of Kidron on the east of Jerusalem. There he had expected to be buried but though the monument stood long afterward and what's called Absalom's pillar yet Absalom's body lay not there but under a heap of stones in the wood of Ephraim. After the battle Ahimas the son of the priest Zadok came to Joab. Ahimas was one of the two young men who brought news from Jerusalem to David at the River Jordan as we read in the last story. He said to Joab, let me run to the king and take to him the news of the battle. But Joab knew that the message of Absalom's death would not be pleasing to King David and he said, some other time you shall bear news but not today because the king's son is dead. And Joab called the negro who was standing near and said to him, go and tell the king what you have seen. The negro bowed to Joab and ran but after a time Ahimas the son of Zadok again said to Joab, let me also run after the negro and take news. Why do you wish to go my son said Joab the news will not bring you any reward. Anyhow let me go said the young man and Joab gave him leave. Then Ahimas ran with all his might and by a better road over the plain though less direct than the road which the negro had taken over the mountains. Ahimas outran the negro and came first in sight to the watchmen who was standing on the wall while King David was waiting below in the little room between the outer and inner gates anxious for news of the battle but more anxious for his son Absalom. The watchmen on the wall called down to the king and said, I see a man running alone. And the king said, if he is alone he is bringing a message. He knew that if men were running away after a defeat in battle there would be a crowd together. Then the watchmen called again. I see another man running alone. And the king said he is also bringing some news. The watchmen spoke again. The first runner is coming near and he runs like Ahimas the son of Zadok. And David said he is a good man and he comes with good news. Ahimas came near and cried out as he ran. All is well. The first words which the king spoke were, is it well with the young man Absalom? Ahimas was too wise to bring to the king the word of Absalom's death. He left that to the other messenger and said, when Joab sent me there was a great noise over something that had taken place but I did not stop to learn what it was. A little later came the negro crying, news for my lord the king. This day the lord has given you victory over your enemies. And David said again, is it well with the young man Absalom? Then the negro who knew nothing of David's feelings answered. May all the enemies of my lord the king and all that try to do him harm be as that young man is. Then the king was deeply moved. His sorrow over Absalom made him forget the victory that had been won.  The word soon went forth that the king instead of rejoicing over the victory was weeping over his son. The soldiers came stealing back to the city, not his conquerors, but as if they had been defeated.  But Joab saw that such great sorrow as the king showed was not good for his cause.   You have said by your actions that your princes and your servants who have been true to you are nothing to you and that if Absalom had lived and we had all died you would have been better pleased. Now rise up and act like a man and show regard for those who have fought for you. I swear to you in the name of the Lord that unless you do this not a man will stay on your side and that will be worse for you than all the harm that has ever come upon you in your life before this day. Then David rose up and washed away his tears and put on his robes and took his seat in the gate as a king. After this he came from Manaheim to the river Jordan and there all the people met him to bring him back to his throne in Jerusalem. Among the first to come was Shime, a man who had cursed David and thrown stones at him as he was flying from Absalom. He fell on his face and confessed his crime and begged for mercy. Abashai, Job's brother said, shall not Shime be put to death because he cursed the king? The Lord's anointed? But David said, not a man shall be put to death this day in Israel for today I am king once more over Israel. You shall not be slain, Shime, I pledge you the word of a king. And Zeba, the servant of Mephibo Sheth, was there with his sons and his fathers and Mephibo Sheth was there also to meet the king. And Mephibo Sheth had not dressed his lame feet nor trimmed his beard nor washed his clothes from the day when David had left Jerusalem until the day when he returned in peace. And David said to him, Mephibo Sheth, why did you not offer to go with me? My Lord, O king, said Mephibo Sheth, my servant deceived me. He said, you are lame and cannot go, but I will go in your name with the king and will help him. And he has done me wrong with the king. But what matters at all now that the king has come again? David said, you and Zeba may divide the land and the property. And Mephibo Sheth said, let him have it all now that the king has come in peace to his own house. The army of Absalom had melted away and was scattered throughout all Israel. David was still displeased with Joab, the chief of his army, because he had slain Absalom contrary to David's orders. He sent a message to Amassa, who had been the commander of Absalom's army, and who was, like Joab and Abishai, David's own nephew. He said to Amassa, you are of my own family, of my bone and my flesh, and you shall be the general in place of Joab. Joab and his brother were strong men not willing to submit to David's rule, and David thought that he would be safer on his throne if they did not hold so much power. Also, David thought that to make Amassa general would please not only those who had been friends to Absalom, but many more of the people for many feared and hated Joab. At the river Jordan, almost the whole tribe of Judah were gathered to bring the king back to Jerusalem. But this did not please the men of the other tribes. They said to the men of Judah, you act as though you were the only friends of the king in all the land. We too have some right to David. The men of Judah said, the king is of our own tribe and is one of us. We come to meet him because we love him. But the people of the other tribes were still offended, and many of them went to their homes in anger. The tribe of Ephraim, in the middle of the land, was very jealous of the tribe of Judah and unwilling to come again under David's rule. One man in Ephraim, Sheba, the son of Bitri, began a new rebellion against David, which for a time threatened again to overthrow David's power. Amassa, the new commander of the army, called out to his men to put down Sheba's rebellion. But he was slow in gathering his army, and Joab, the old general, went forth with a band of his own followers. Joab met Amassa, pretending to be his friend, and killed him, and then took the command.  So at last every enemy was put down, and David sat again in peace upon his throne. But Joab, whom David feared and hated because of many evil deeds that he had done, was, as before, the commander of the army, and in great power. Joab was faithful to David, and was a strong helper to David's throne. Without Joab's courage and skill in David's cause, David might have failed in some of his wars, and especially in the war against Absalom's followers. But Joab was cruel and wicked, and he was so strong that David could not control him. David felt that he was not fully the king while Joab lived, but few people knew how David felt toward Joab, and in appearance the throne of David was now as strong as it had ever been, and David's last years were years of peace and power. End of section 15, recording by Sean McGahey, ducktapeguy.net Story number 16 of Hurlbut's Story of the Bible. This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org. Recording by Jesse Bell. Hurlbut's Story of the Bible by Jesse Lyman Hurlbut. Part 3. The Angel with the Drawn Sword on Mount Moriah. Second Samuel 24, 1-25. First Chronicles 21, 1-27. After the death of Absalom, David ruled in peace over Israel for many years. His kingdoms stretched from the river Euphrates to the border of Egypt, and from the great sea on the west to the great desert on the east. But again David did that which was very displeasing to God. He gave orders to Joab, who was the commander of his army, to send officers throughout all the tribes of Israel, and to count all the men who could go forth to battle. It may be that David's purpose was to gather a great army for some new war. Even Joab, the general, knew that it was not right to do this, and he said to David, May the Lord God make his people a hundred times as great as they are. But are they not all the servants of the Lord my King? Why does the King command this to be done? Surely it will bring sin upon the King and upon the people. But David was firm in his purpose, and Joab obeyed him, but not willingly. He sent men through all the twelve tribes to take the number of those in every city and town who were fit for war. They went throughout the land until they had written down the number of eight hundred thousand men in ten of the tribes, and nearly five hundred thousand men in the tribe of Judah who could be called out for war. The tribe of Levi was not counted because all its members were priests and Levites in the service of the Tabernacle, and Benjamin on the border of which stood the city of Jerusalem was not counted because the numbering was never finished. It was left unfinished because God was angry with David and with the people on account of this sin. David saw that he had done wickedly in ordering the count of the people. He prayed to the Lord and said, O Lord, I have sinned greatly in doing this. Now, O Lord, forgive this sin, for I have done very foolishly. Then the Lord sent to David a prophet, a man who heard God's voice and spoke as God's messenger. His name was Gad. Gad came to David and said to him, Thus saith the Lord, You have sinned in this thing, and now you and your land must suffer for your sin. I will give you the choice of three troubles to come upon the land. Shall I send seven years of famine in which there shall be no harvest? Or shall your enemies overcome you and win victories over you for three months? Or shall there be three days when pestilence shall fall upon the land, and the people shall die everywhere? And David said to the prophet Gad, This is a hard choice of evils to come upon the land. But let me fall into the hand of the Lord and not into the hands of men, for God's mercies are great and many. If we must suffer, let the three days of pestilence come upon the land. Then the Lord's angel of death passed through the land, and in three days seventy thousand men died. And when the angel of the Lord stretched out his hand over the city of Jerusalem, the Lord had pity upon the people, and the Lord said to him, It is enough.  Then the Lord opened David's eyes, and he saw the angel standing on Mount Moriah, with a drawn sword in his hand held out toward the city. Then David prayed to the Lord, and he said, O Lord, I alone have sinned and have done this wickedness before thee. These people are like sheep, they have done nothing. Lord, let thy hand fall on me and not on these poor people. Then the Lord sent the prophet Gad to David, and Gad said to him, Go and build an altar to the Lord upon the place where the angel was standing. Then David and the men of his court went out from Mount Zion, where the city was standing, and walked up the side of Mount Moriah. They found the man who owned the rock on the top of the mountain, threshing wheat upon it with his son, for the smooth rock was used as a threshing floor, upon which oxen walked over the heads of grain, beating out the kernels with their feet. This man was not an Israelite, but a foreigner of the race that had lived on those mountains before the Israelites came. His name was Orana. When Orana saw David and his nobles coming toward him, he bowed down with his face toward the ground and said, For what purpose does my Lord the King come to his servant? I have come, said David, to buy your threshing floor and to build upon it an altar to the Lord, that I may pray to God to stop the plague which is destroying the people. And Orana said to David, Let my Lord the King take it freely as a gift, and with it these oxen for a burnt offering, and all the threshing tools and the yokes of the oxen, for the wood on the altar, all this, O King, Orana gives to the King. No, said King David, I cannot take it as a gift, but I will pay you the price for it, for I will not make an offering to the Lord my God of that which costs me nothing. So David gave to Orana the full price for the land and for the oxen and for the wood, and there on the rock he built an altar to the Lord God, and on it he offered burnt offerings and peace offerings. The Lord heard David's prayer and took away the plague from the land, and on that rock afterwards stood the altar of the temple of the Lord on Mount Mariah. The rock is standing even to this day, and over it a building called the Dome of the Rock, those who visit the place can look upon the very spot where David built his altar and called upon the Lord. In the years of David's reign he laid up great treasure of gold and silver and brass and iron for the building of a house to the Lord on Mount Mariah. This house was to be called the temple, and it was to be made very beautiful, the most beautiful building, and the richest in all the land. David had greatly desired to build this house while he was the King of Israel, but God said to him, You have been a man of war and have fought many battles and shed much blood. My house shall be built by a man of peace. When you die your son Solomon shall reign, and he shall have peace, and shall build my house. So David made ready great store of precious things for the temple, also stone and cedar to be used in the building, and David said to Solomon his son, God has promised that there shall be rest and peace to the land while you are King, and the Lord will be with you, and you shall build a house where God shall live among his people. But David had other sons who were older than Solomon, and one of these sons, whose name was Adonija, formed a plan to make himself King. David was now very old, and he was no longer able to go out of his palace and to be seen among the people. Adonija gathered his friends, and among them were Joab, the general of the army, and Abathar, one of the two high priests. They met at a place outside the wall, and had a great feast, and were about to crown Adonija as King. One word came to David in the palace. David, though old and feeble, was still wise. He said, Let us make Solomon King at once, and thus put an end to the plans of these men. So at David's command they brought out the mule on which no one but the King was allowed to ride, and they placed Solomon upon it, with the King's guards, and the nobles, and the great men, they brought the young Solomon down to the valley of Gihon, south of the city. And Zedok the priest took from the tabernacle the horn filled with holy oil that was used for anointing or pouring oil on the head of the priests when they were set apart for their work. He poured oil from this horn on the head of Solomon, and then the priests blew the trumpets, and all the people cried aloud, God save King Solomon. All this time Adonija and Joab and their friends were not far away, almost in the same valley, feasting and making merry, intending to make Adonija King. They heard the sound of trumpets and the shouting of the people. Joab said, What is the cause of all this noise and uproar? A moment later Jonathan, the son of Abyathar, came running in. We read of him in Story 67 as one of the two young men who brought news from Jerusalem to David at the River Jordan. Jonathan said to the men who were feasting, Our Lord King David has made Solomon King, and he has just been anointed in Gihon, and all the princes and the heads of the army are with him, and the people are shouting, God save King Solomon. And David has sent from his bed a message to Solomon, saying, May the Lord make your name greater than my name has been. Blessed be the Lord, who has given me a son to sit this day on my throne. When Adonija and his friends heard this they were filled with fear. Every man went at once to his house except Adonija. He hastened to the altar of the Lord and knelt before it, and took hold of the horns that were on its corners in front. This was a holy place, and he hoped that there Solomon might have mercy on him. And Solomon said, If Adonija will do right and be true to me as the King of Israel, no harm shall come to him, but if he does wrong he shall die. Then Adonija came and bowed down before King Solomon and promised to obey him, and Solomon said, Go to your own house. Not long after this David sent for Solomon, and from his bed he gave his last advice to Solomon. And soon after that David died, an old man, having reigned in all forty years, seven years over the tribe of Judah at Hebron, and thirty-three years over all Israel and Jerusalem. He was buried in great honor on Mount Zion, and his tomb remained standing for many years. End of Story 17 Story number 18 of Hurlbut's Story of the Bible This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org. Hurlbut's Story of the Bible by Jesse Lyman Hurlbut. Part 3 The Wise Young King First Kings 3 verse 1 to 4 verse 34. Second Chronicles 1, 1 to 13. Solomon was a very young man, not more than twenty years old, when he became king, and bore the heavy care of a great land. For his kingdom was larger than the twelve tribes of Israel, from Dan to Bersheba. On the north he ruled over all Syria, from Mount Sherman, as far as the Great River Euphrates. On the east, Ammon and Moab were under his power, and in the south all the land of Edom, far down into the desert where the Israelites had wandered long before. He had no wars as David had before him, but at home and abroad his great realm was at peace as long as Solomon reigned. Soon after Solomon became king, he went to Gibeon, a few miles north of Jerusalem, where the altar of the Lord stood until the temple was built. At Gibeon Solomon made offerings and worshiped the Lord God of Israel. And that night the Lord God came to Solomon, and spoke to him. The Lord said, Ask of me whatever you choose, and I will give it to you. And Solomon said to the Lord, O Lord, Thou did show great kindness to my father David, and now Thou hast made me king in my father's place. I am only a child, O Lord, I know not how to rule this great people, which is like the dust of the earth in number. Give me, O Lord, I pray thee, wisdom and knowledge, that I may judge this people, and may know how to rule them a right. The Lord was pleased with Solomon's choice, and the Lord said to Solomon, Since you have not asked of me long life, nor great riches for yourself, nor victory over your enemies, nor great power, but have asked for wisdom and knowledge to judge this people, I have given you wisdom greater than that of any king before you, and greater than that of any king that shall come after you. And because you have asked this, I will give you not only wisdom, but also honor and riches, and if you will obey my words, as your father David obeyed, you shall have long life, and shall rule for many years. Then Solomon awoke and found that it was a dream, but it was a dream that had come true, for God gave to Solomon all that he had promised, wisdom and riches and honor and power and long life. Soon after this Solomon showed his wisdom.  Each of the two women claimed the living child as her own, and said that the dead child belonged to the other woman. One of them said, O my Lord, we two women were sleeping with our children in one bed, and this woman in her sleep lay upon her child, and it died.  In the morning I saw that it was not my child, but she says it is mine, and the living child is hers.  Then the other woman said, that is not true, the dead baby is her own, and the living one is mine, which she is trying to take from me. The young King listened to both women. Then he said, bring me a sword. They brought a sword, and then Solomon said, take this sword, and cut the living child in two, and give half of it to each one. Then one of the women cried out, and said, O my Lord, do not kill my child, let the other woman have it, but let the child live. But the other woman said, no, cut the child in two, and divide it between us. Then Solomon said, give the living child to the woman who would not have its lane, for she is its mother. And all the people wondered at the wisdom of one so young, and they saw that God had gave him understanding. Solomon chose some of the great men who had helped his father David to stand beside his throne and do his will. Among those was a man named Benaiah, the son of Jehoida. He was one of those who had come to David while he was hiding from Saul, as we read in Story 70. At that time Benaiah, while still a young man, did a very bold deed. He found a lion in a deep pit, leaped into the pit, and killed the lion. For this act, Benaiah, became famous. For few people would dare to venture so near to a lion, with the weapons in use at that time. This brave man was old in Solomon's day, but he was still strong, and Solomon gave him a high place at the head of his guards. End of Story 18 Story number 19 of Hurlbut's Story of the Bible This is a LibriVox recording. All LibriVox recordings are in the public domain. For more information or to volunteer, please visit LibriVox.org. Hurlbut's Story of the Bible by Jesse Lyman Hurlbut Part 3 The House of God on Mount Moriah First Kings 5.1 to 9.9 Second Chronicles 3.1 to 7.22 The great work of Solomon's reign was the building of the House of God, which was called the Temple. This stood on Mount Moriah, on the east of Mount Zion, and it covered the whole mountain. King David had prepared for it by gathering great stores of gold and silver and stone and cedar wood. The walls were made of stone and the roof of cedar. For the building the cedar was brought from Mount Lebanon, where there were many large cedar trees. The trees were cut down and carried to tire on the sea coast. There they were made into rafts in the great sea, and were floated down to Joppa. At Joppa they were taken ashore and were carried up to Jerusalem. All this work was done by the men of tire at the command of their king, Herum, who was a friend of Solomon, as he had been a friend of King David. All the stones for the building of the Temple were hewn into shape and fitted together before they were brought to Mount Moriah. All the beams for the roof and the pillars of cedar were carved and made to join each other, so that as the walls arose no sound of hammer or chisel was heard. The great building rose up quietly. You remember the form of the Tabernacle which was built before Mount Sinai in the wilderness, with its court, its holy place, and its holy of holies—Sea Story 27. The Temple was copied after the Tabernacle, except that it was much larger, and was a house of stone and cedar instead of a tent. The Tabernacle had one court around it where the priests only could enter, but the Temple had two courts both open to the sky, with walls of stone around them, and on the walls double rows of cedar pillars and a roof above the pillars so that the people could walk around the court upon the walls protected from the sun. The court in front was for the people, for all the men of Israel could enter it, but no people of foreign race. This was called the Four Court. Beyond the Four Court was the court of the priests, where only the priests were allowed to walk. At the east gate of this court stood the great altar of burnt offerings, built of rough, unhewn stones, for no cut stones could be used in the altar. This altar stood on the rock which had been the threshing floor of Aruna where David saw the angel of the Lord standing—Seastory 69. Near the altar in the court of the priests stood a great tank for water, so large that it was called a sea. It was made of brass and stood on the backs of twelve oxen, also made of brass. From this the water was taken for washing the offerings. Within the court of the priests stood the Holy House or the Temple Building, made of marble and of cedar. Its front was a high tower, called the porch. In this were rooms for the high priest and his sons. Back of the porch was the Holy Place. This was a long room in which stood the table for the twelve loaves of bread and golden altar of incense. In the Holy Place of the Tabernacle stood the golden lampstand. We are not sure whether it was in the Temple, for either in place of the lampstand or perhaps in addition to it Solomon placed ten lamps of gold in the Holy Place. Between the Holy Place and the Holy of Holies was a great veil as in the Tabernacle, and in the Holy of Holies the priests placed the Ark of the Covenant. This, you remember, was a box or chest of gold in which were kept the two stone tablets of the Ten Commandments. This Ark of the Covenant was all that stood in the Holy of Holies, and into this room only the high priest came, and he only on one day in the year, the great day of atonement when the scapegoat was sent away. Sea Story 30 Outside of the Temple Building were rooms for the priests. They were built on the outer wall of the house, on the rear and on the two sides, but not in front, three stories high, and were entered from the outside only. In these rooms the priests lived while they were staying at the Temple to lead in the worship. Seven years were spent in building the Temple, but at last it was finished, and a great service was held when the house was set apart to the worship of the Lord. Many offerings were burned upon the great altar. The Ark was brought from Mount Zion and placed in the Holy of Holies, and King Solomon knelt upon a platform in front of the altar and offered a prayer to the Lord before all people who filled the courts of the Temple. One night after the Temple was finished the Lord appeared to Solomon in a dream for the second time, and the Lord said to Solomon, I have heard the prayer which you have offered to me, and I have made this house holy, it shall be my house, and I will dwell there, and if you will walk before me as David your father walked, doing my will, then your throne shall stand forever, but if you turn aside from following the Lord then I will leave this house, and will turn from it, and will let the enemies of Israel come and destroy this house that was built for me. And a Story 19 Story of the Bible by Jesse Lyman Hurlbid Part 3 The Last Days of Solomon's Rain 1 Kings 10.1-11.43 Under King Solomon the land of Israel arose to greatness as never before and never afterwards. All the countries around Israel and some that were far away sent their princes to visit Solomon, and every one who saw him wondered at his wisdom and his skill to answer hard questions. It was said that King Solomon was the wisest man in all the world. He wrote many of the wise sayings in the book of Proverbs and many more that have been lost. He wrote more than a thousand songs. He spoke of trees and of animals and of birds and of fishes. From many lands people came to see Solomon's splendor in living and to listen to his wise words. In a land more than a thousand miles from Jerusalem, on the south of Arabia, in the land of Sheba the queen heard of Solomon's wisdom. She left her home with a great company of her nobles riding on camels and bearing rich gifts, and she came to visit King Solomon. The queen of Sheba brought to Solomon many hard questions, and she told him all that was in her heart. Solomon answered all her questions and showed her all the glory of his palace and his throne and his servants and the richness of his table and the steps by which he went up from his palace to the house of the Lord. And when she had heard and seen all, she said, all that I heard in my own land of your wisdom and your greatness was true, but I did not believe it until I came and saw your kingdom, and not half was told me, for your wisdom and your splendor are far beyond what I had heard. Happy are those who are always before you to hear your wisdom. Blessed be the Lord thy God who has set thee on the throne of Israel. And the queen of Sheba gave to Solomon great treasures of gold and sweet-smelling spices and perfumes, and Solomon also made to her rich presence, then she went back to her own land. Solomon's great palace where he lived in state stood on the southern slope of Mount Moriah, a little lower than the temple. Its pillars of cedar were very many so that they stood like a forest, and on that account it was called the house of the forest of Lebanon. From this palace a wide staircase of stone led up to the temple, and Solomon and his princes walked up these stairs when they went to worship. But there was a dark side as well as a bright side to the reign of Solomon. His palaces and the walled cities that he built to protect his kingdom on all sides and the splendor of his court cost much money. To pay for these he laid heavy taxes upon his people, and from all the tribes he compelled many of the men to work on buildings, to become soldiers in his army, to labor in his fields, and to serve in his household. Before the close of Solomon's reign the cry of the people rose up against Solomon and his rule on account of the heavy burdens that he had laid upon the land. Solomon was very wise in affairs of the world, but he had no feeling for the poor of the land, nor did he love God with all his heart. He chose for his queen a daughter of Pharaoh, the king of Egypt, and he built for her a splendid palace. And he married many other women who were the daughters of kings. These women had worshipped idols in their own homes, and to please them Solomon built on the Mount of Olives a temple of idols in full view of the temple of the Lord. So images of Baal and the Asherah and of Chemosh, the idol of the Moabites, and of Malik, the idol of the Ammonites, stood on the hill in front of Jerusalem, and to these images King Solomon himself offered sacrifices. How great was the shame of the good men in Israel when they saw their kings surrounded by idol priests, and bowing down upon his face before images of stone. The Lord was very angry with Solomon for all this, and the Lord said to Solomon, since you have done these wicked things and have not kept your promise to serve me, and because you have turned aside from my commands, I will surely take away the kingdom of Israel from your son, and will give it to one of your servants. But for the sake of your father David, who loved me and obeyed my commands, I will not take away from your son all the kingdom, but I will leave to him and do his children after him one tribe. The servant of King Solomon, of whom the Lord spoke, was a young man of the tribe of Ephraim, named Jeroboam. He was a very able man, and in the building of one of Solomon's castles he had charge over all the work done by the men of his tribe. One day a prophet of the Lord, named Ahaja, met the young Jeroboam as he was going out of Jerusalem. Ahaja took off his own mantle, which was a new one, and tore it into twelve pieces. Ten of these pieces he gave to Jeroboam, saying to him, Take these ten pieces, for thus saith the Lord, the God of Israel. I will tear the kingdom out of the hand of Solomon's son, and will give ten tribes to you. But Solomon's son shall have one tribe for my servant David's sake, and for the sake of Jerusalem. You shall reign over ten of the tribes of Israel, and shall have all that you desire. And if you will do my will, saith the Lord, then I will be with you, and will give to your children and your children's children to rule long over this land. When King Solomon heard what the prophet Ahaja had said and done he tried to kill Jeroboam, but Jeroboam fled into Egypt and stayed there until the end of Solomon's reign. Solomon reigned in all forty years, as David had reigned before him. He died and was buried on Mount Zion, and Rehoboam his son became king in his place. Sometimes the reign of Solomon has been called the Golden Age of Israel, because it was a time of peace and of wide rule and of great riches. But it would be better to call it the Gilded Age, because under all the show and glitter of Solomon's reign there were many evil things, a king allowing and helping the worship of idols, a court filled with idol and useless nobles, and the poor of the land heavily burdened with taxes and labor. The Empire of Solomon was ready to fall in pieces, and the fall soon came. End of Story Number 20 End of Hurlbot's Story of the Bible by Jesse Lyman Hurlbot, Part 3


So the question is who should want to attend this talk and it's really all about packaging rust projects for fedora and So it's people everything I'm going to talk about is sort of how to manage upstream rust projects So they behave well when you're packaging for fedora and in general So it's just generally people who have that on their minds. You should be interested in this talk and And Who am I my name that what you should call me as moherne if you want to I'm the stratus team tech lead and I do a lot of the fedora updates for the rust packages That are part of the stratus project, although I don't think I actually originated the fedora package of any one of them And I do a lot of the upstream packaging of the rust packages too So that's my experience. So I thought about it and And that's what I'm talking about it today so ask questions as Much as you feel like But obviously we've already had technical difficulties. So we'll see if there are any more that cause problems But I'll try to keep a bit of an eye on the chat chat okay so My goal is just to manage the dependency requirements for all the Packages in the project so that they can be packaged correctly upstream so that they're correct and so they're safe for fedora And so of course, you might wonder what those vague words mean and I'm going to define those Immediately so before though I have to say something about versions and version requirements Because they get muddled when we talk about them all the time because they're sort of similar looking and so Aversion is just that thing a version of a single concrete entity sort of a snapshot of your project But the version requirement is a way of specifying a whole range of versions that you consider acceptable and for those who aren't familiar with rust Rust cargo files uses the special carrot syntax, but that's just sugar for a compound Specification indicating greater than or equal to something and less than that other thing Okay, so here's the complicated picture of fedora packaging And the things that influence it and you have to imagine that those greenish yellow slabs are some versions of a package on crates.io and We need to have at least some version in order to compile because we use say some methods that aren't defined until this version 2.1.0 and For whatever reason maybe there was a bug fix that we wanted we specify using this carrot syntax that anything 2.1.1 or above up to 3.0 is good and so When we compile our package on in RCI, it's kind of a toss-up which Version of the create will actually use so there are five possible versions of the create create. We might be running our tests on and Then the highest one package in fedora in this picture is 2.2.1 and We'll also mention that there's a CVE against 2.2.0 for some reason and that's why 2.2.1 was created no doubt, but in this picture everything is good So that's the point we specify this carrot 2.1.1, but that works with fedora And it's high enough so that everything will compile. So this picture is a reasonably happy situation And so now I'm going to go on to Where problems arise? Okay, so what we don't want to do is Specify this would be unsafe specify in our cargo.toml file a Dependency version or rather requirements such that it can't be sped can't be satisfied in fedora now So the way fedora works Fedora packaging works is that every package that you're the package depends on is required to also be packaged in fedora and And so for those who are used to using in their rust Packages cargo.lock. I'll just say the fedora packaging process throws away the cargo.lock file entirely and then has its own way of trying to find fedora packages that satisfy those version requirements specifications and if These are not satisfied Fedora packaging fails and then you have a problem So this is a picture of a bad situation for whatever reason this project is specifying the carrot 2.2.2 Specification that's higher than what is packaged in fedora And so even though upstream is fine and everything's cool when we go to package in fedora We'll have a problem. Packaging will simply fail and And so some people might say that's not a big problem because you can always just patch Your cargo.toml file before you do the packaging and so forth and so on and in a sense That isn't but we'll see I'll discuss sort of in more depth What this is all about here So So you can deal with this problem that I just showed you a picture of In a bunch of ways I Agree with that thing. It's exactly what happens in Rust 2 great actually Let me I can talk about that in more detail. I think but anyway, so here we are in fedora And we don't want to get into this bad situation. There's a couple ways. There's a few ways we can do it One way is to be the packager So if you're the packager of the dependency if you're the upstream developer and the fedora packager of the dependency You don't have a problem. So I was gonna mention that there's gonna be a talk tomorrow But in that you can discuss how to Put things inside tags maybe and since you have total control over the The fedora package and upstream you can manage how those all go in together and you're good So it's not something I want to even bother to talk about here because the problem is covered But it's also not like a scalable solution. You can't be responsible for every package in fedora So another way To make sure that you don't get this problem is to explicitly coordinate with the fedora packagers of all your dependencies But that's a pretty high friction thing to do and it's not it's more It's sort of trouble that you don't want to take on unless it's something you actually want to do So what we do is we automate checks of the fedora repos so that our direct dependencies Lag what's available in the fedora releases? We have a script. It's a python script. We run the script in our CI So that we will immediately find out if in cargo commo We have a spec that can't be satisfied in fedora If it is necessary for our direct dependency version to exceed what is available in fedora If we really really need that then we fall back on either of the two Options above that I crossed out We also run the script nightly and it tells us if there's a new Semantically incompatible release of some dependency in fedora and then whenever is convenient. We move up to it So that's the whole story of that one and so I'm just going to sum up how this works So because we do this we're put putting an upper limit or a downward pressure on our dependency requirements and What we would encourage people to do is to put this Infrastructure in Ross is sorry in their upstream Packages and not in fedora If they're concerned about making packaging easy in fedora, okay, so to go back that's the safety for Dora as I define it but Correctness for upstream is a different idea entirely and This correctness as in the picture that I showed you earlier puts a lower limit it pushes things up And its place is is also an upstream development and re-sleasing But it's not actually really so fedora specific although it was motivated by some of our fedora packaging concerns Okay, so this is a picture of a mistake So here we specify the carrot 2.1.0 dependency in cargo.tomo But we really need the 2.2.3 Version in order for our code to compile We don't find that out doing CI Because the 2.1.0 specification allows all six of these possible Versions of the crate and by the time we added the dependency on the method or the feature that was in 2.2 .3 We were already running against that version in all our CI So we never knew it and we packaged everything up happily and Then it turned out that it wouldn't that our mistake would be caught by fedora packaging Because in this picture again in the diagram fedora packaging only goes up to 2.2.1 So fedora packaging satisfies correctly What we say is true But then our program can't compile and then we have a problem an unpleasant surprise Okay, so how do we address this? Well one way is to aggressively boost our direct event dependency requirements whenever a New version comes out and that way what we say we need is never going to be lower Than what we're using that's kind of aggressive and One way of course is to be slightly less aggressive, but only to boost to the highest that fedora supports But we're actually interested in being Correct for a For for a broader set of downstream users But not not really just fedora, but all these people who might be packaging and so what we want to do is specify The lowest specification That actually works with our code So what we do in this case is we run a script. It's another python script that runs cargo update until every direct dependence until The dependency that we're actually running and running against is the lowest one that is compatible With the version specification that we have then we build the project now that every all these values are actually down and If the build if it fails to compile then Clearly the dependency that we specify is too low and The compiler error will helpfully tell us which of these dependencies are too low With a little insight Okay So this approach has been working actually fairly well for us for For a year or so, but when I was writing up this talk I noticed the Flaws in it and so I'll just mention those one of the flaws of the approach is that our scripts are written in Python not in rust and they actually says not just rust boosters and they actually should be written in rust because then they would take advantage of the appropriate parsing and Data structures in the cargo metadata and semper crates which match how cargo actually understands stuff Let's see So the other thing is They don't act there aren't any actually general in the way that they calculate the lowest version that satisfies the requirements and I've actually had some ideas on that problem that I was coming up with but The reason I only thought about it recently while I was working on this talk is it's never been a problem for us in the whole last year Because we use those carrot specifications and we assume they're there and because if there's an audit failure, which might Encourage us to have a not equals Part of the specification like skip this thing Then we actually don't use it. We just go usually we have always just bumped our requirement above The version that has the CDE so That concludes my talk and barely in time So I'm actually going to respond to Fabio's one remark cargo minimal versions was tried and failed already So this is what I you know, I hope this would solve the problem a long time ago But the problem is it tries to force everything every transitive dependency down to the lowest possible and In order to solve our problem. We only wanted to tweak the ones that are package Specifically Directly requested So yeah, cargo minimal versions was tried and would not yeah would not solve our problem Okay, so that there's a question in a QA, which is just a Very basic question really where should I start if I want to package a rust app in Fedora Linux? And I would say a good place to start is if you can go to the workshop that's being held tomorrow that Fabio is is going to give because that's gonna My understanding is that's going to start from the beginning and should answer a lot of questions Bye everybody


Hey, Bolo buddies. Thanks for watching. In this video, I'm gonna tell you how I turned $28 into over $500 selling easy to find items that are cheap on eBay I'm gonna tell you where I got the item what it paid for it and what it sold for all of these items sold on eBay for $35 or less. I call these my bread and butter Bolo's items to be on the lookout for Items that I buy low and sell for a profit. Thanks for being here and let's get started Hey, Bolo buddies. Thanks for watching Amazing, right? All right, let's get started So the first item I sold are these magnets This is a huge lot of refrigerator or whatever magnets and it's just a hodge podge of magnets I got these at the Goodwill bins and I just I think they were already in a bag and I just grabbed them all so I may have had like Three four dollars in this and I ended up selling these for a best offer of thirty one dollars plus shipping So do these magnets sell? Yes. Most of these were vintage. Definitely. Definitely look these up if you see them Alright, this one right here is a replacement train track from 1996 This is the Tyco Sesame Street almost radio control railroad. This is something that I parted out I actually had two of these they came in a thrift store mystery box and it was incomplete and I said, you know what? I can make money on this and It is more of a long tail item the first one sold quicker than the second one But I still have quite a few pieces that are just sitting in my store So when you do replacement parts, they are long tail typically unless you get lucky and somebody's just looking for that part Cost of goods was probably less than a dollar and I sold this for a best offer of ten dollars plus shipping These are the grocery gang their moose toys and I think they're like those surprise mystery blind bag things Twelve of them here. This is what they look like. They're like little monsters I got these out of the Goodwill bins and I sold these for sixteen dollars and twenty five cents plus shipping now I will tell you sometimes certain ones are rare and harder to find and people will pay up for them individually I did not look each one of these up individually. I'm sorry, but I just did not have the time So I just put them in a lot This here is a vintage antique baby photograph black and white photo large oval no frame It does have like some condition issues and it's pretty big I got this at a garage sale with another photo and I paid about four dollars for both So two dollars in this took a best offer of thirty two dollars and fifty cents The next item are these safety pin Their quilters pins and that most of them are brass and some of them are steel I almost just donated these and I'm like, you know what I need to try to list these and I will tell you They flew out of my store now. I sold them pretty cheap I sold them for a best offer of eleven dollars plus shipping, but my cost of goods was next to nothing for those These are the Fisher price little people know as arc figures and there's thirty one of them here check it out now these are in played with condition and There's three turtles and only one elephant. So it's not like perfect, but they are definitely replacements I got these at a thrift store for six dollars and I sold them for best offer of thirty plus shipping This right here came out of the Goodwill Benz And I didn't know it was a dog toy when I got it, but I got it home and I squeezed it and it squeaked and I'm like it's a dog toy and I couldn't find another one like it. So I priced it kind of high. I felt like because it's not very big I mean this guy is like Not it's it's small So it's for a smaller dog and this sold really quick for fourteen dollars and thirty cents plus shipping So that one was kind of a surprise. I Always pick these up. These are pbc international. It's a bunny and They sing and I don't know if this one actually has I don't think it's mouth moves No, the mouth does not move on this one but a lot of times the mouth will move and sometimes the head will move but they play music and This one I got at a garage sale for fifty cents took a best offer of thirty dollars plus shipping and Usually I put a video, but because it didn't work. I didn't and it's got I Just I showed the tag, you know, it's got nineteen ninety nine on it That's okay. You can still sell it for more than what the tag says Thirty bucks on that The next item are these Thomas the train and friends talking and light up die cast What I did is I made sure that I showed that they worked and all of the ones that lit up I put in a lot and these will demand a little more extra money I can't remember where I got these I buy these at garage sales And I just pick them up and I usually get them really cheap, but I sold these for twenty five dollars plus shipping The next item was not a good buy I got these at a thrift store and I paid a dollar twenty five for it So that's paying up for me, but it did say a dollar twenty five And I did a video showing how I got the marker off of this It had black marker that said a dollar twenty five if you take a black dry erase marker and go over it And then wipe it that will take that right off.  I would usually pay fifty cents for This is a Jack Dempsey stamped white nursery quilt blocks. I got a whole bunch of these listed This one sold pretty quickly They haven't been up too long So I do have quite a few left probably got a dollar or less in this sold it for thirteen dollars plus shipping This is a vintage not vintage. I'm sorry.  I call it a toy box. I Ended up taking a best offer of thirty five dollars on this plus shipping It's hard for me to do this because I like to part things out But sometimes I just get overwhelmed and I'm like forget it. I'm just throwing it in a lot This here sold really quick.  I probably could have sold this for more But I got it at the Goodwill Benz It was super cheap and I sold it for eighteen dollars plus shipping my Goodwill Benz is a dollar eighty nine a pound If you want to see me digging for items like this at the Goodwill Benz I have a whole bunch of videos where I take you into the store and I let you guys watch me dig And you can tell me everything I missed in the video I love it when you guys do that But that was from the Benz. This is a Heartland Valley village deluxe porcelain carriage Christmas sleigh horse ride I got this out of a thrift store mystery box and I sold it for a best offer of eight dollars plus shipping This is a willow tree a single baby Susan Lordy 2007 by dim dim Dimda I can never say that word dim daco dim kato dim. I don't know whatever that is but all that information is written on the item and This sold really fast and I sold it for I'm sorry I bought it for 50 cents and I sold it for 16 dollars and 25 cents plus shipping This came out of a thrift store mystery box I almost just donated it and I'm like, you know what somebody might want this It's a math trekker edition subtraction by educational insights handheld game I did pop it up to show that it worked Just with different photos of doing different actions and I sold this for seven dollars plus shipping So that one was a nice surprise This came out of my free plush a viewer reached out to me needed plush gone She needed it gone the next day said if I could come get it the next day. It was mine for free So I went and got it and I sold this for 19 dollars and 50 cents plus shipping It's a pineapple yellow plush stuffed animal by fiesta with original tag and that sold really quick And I will link her eBay store down in the description for you guys to check out This is a hallmark 2011 music ornament rocking around the Christmas tree guitar I got this out of a thrift store mystery box and I sold this for 18 dollars plus shipping This here is a vintage Snoopy from 1958 made in Japan and it says it on the bottom here I got this at the Goodwill for one dollar took a best offer of 20 or no I'm sorry this sold for my sale price of $23 and 56 cents plus shipping you can see it does have condition issues or I would have been able to get more money for that Buyer was all in for 31 57 on that This next item is a Disney tinkerbell removable charm bracelet I got this out of the bulk by 300 and I think 44 pounds of jewelry that I bought on eBay. There's a whole story behind that It was a couple years ago, but you can go back into my old videos if you want to see a bunch of jewelry unboxings A lot of fun just an amazing story, but you can see the video where I actually weigh how much I got Oh my goodness. It was crazy. I still have a bunch. I haven't even gone through $12 and 40 cents is what I sold this for plus shipping This here came out of a thrift store mystery box It's Toby the turtle and it's an it holds a bottle and it's like an insulator I guess I don't know but it was new with tags. So I decided to list it I sold it for $9 and 30 cents plus shipping and Probably a dollar less than that. This is a vintage Garfield that my husband picked up at a Garage sale over the summer. He's like they had so much vintage plush and he gave it all to me And I'm like, all right. I'll list it for you. So he sold this for $12 and 40 cents plus shipping And it's Garfield from 1981 and he's not in great shape This is a shlike mid-evil night war horse and anything that is shlike this brand right here. I pick it up and These do range but they are usually realistic looking animals that are made of hard plastic and They do really well. I sold this one for $10 on best offer and the buyer was all in for 1780 for this horse And let me see here's the brand you can see right here This is what it looks like. This one's from 2003 and I got this at the Goodwill Benz This is from a Ninja Turtles secret sewer layer replacement part.  I'm gonna sell this for big Money, I got it for five bucks and I got it built. I had to use YouTube to build it So I'm watching a YouTube video. I'm pausing it and starting it building this play set and I Ended up having to take it apart and part it out Which is kind of hilarious and this is the second one. I've done this with I can't remember if I built the second one or just the first one But I would pick these up again It does take some time to part it out, but I just I I've sold so many pieces out of it and it adds up so quickly. I just sold another piece tonight but this right here is from 2012 it is the binoculars and they sold for Actually, they bought three pieces from me They bought this one the binoculars the tire swing this piece right here, whatever it is of the platform and This right here the sliding door and they were all in for 35 68 plus shipping for those items. So definitely adds up quickly. I made more parting it out. I think This one sold super fast, it's from the Broadway musical wicked. It's a flying monkey and it was even The wings were supposed to be attached and they weren't attached So I just disclosed that and it still sold super fast Got it at the Goodwill Benz took a best offer of ten dollars plus shipping This is a Lego Bionicle it's eight five six three I used Google lens to figure that out It is incomplete for replacement parts sold as is sold it for seven dollars and forty four cents plus shipping The next item are these Betsy Johnson. Oh my goodness. Sorry Betsy Johnson Frenchie stud earrings And they're in the original box. I got this at a garage sale for one dollar took a best offer of I'm sorry sold it for sale price of twelve dollars and forty cents plus shipping Um, I had it listed at 20 and I had a 38 percent sale going at the time And the buyer paid shipping on that this is a Disney store Winnie the Pooh Eeyore mini bean bag and This one came from a viewer and I am completely drawing a blank on her store Um She sent me a box. I'm gonna do an unboxing it will be linked there and I will also link it down below But it's one of those hard ones to remember. It's like three letters Um, I think it's in something treasures or something like that But anyway, I will link it down in the description But she sent me a nice little box of plush as a gift and I will have an unboxing on that This is one of the items that was in there and I sold this for seventy Seven dollars and forty four cents plus shipping the buyer was all in for thirteen seventy It is a Disney store Winnie the Pooh Eeyore mini plush bean bag The next item is this susan bishop village green sampler country stitching cross stitch kit And I got this at a estate clean out and I sold this for Twenty one dollars and seventy cents plus shipping This is a mega blocks nine three zero one is the set it is a harder to find set it is a plant oids Repzillion battleship and this is just the instructions and some of the stickers are missing so you can see here This is what's left And I Put the instructions with it and the stickers and sold those separately I parted it out. So the figures I sold separate and then the blocks I sold separately also I sold this for eighteen dollars and sixty cents plus shipping All right, you guys, thank you so much for being here. Thank you for watching. Um If you're new here, let me know how you found the channel if you've been here a wow Let me know how you found the channel. Thanks for being here Be sure to subscribe like comment and if you want to share it out, that would be awesome also And thanks for watching


So the first presentation is by Aaron Levin and he's going to talk about dual booting Yeah, okay So I'm gonna make this very fast because I have to go look at the couch But then I'll be back to join you all for drinks and dinner later, but so my name is Aaron I have you can read this but I Living here from Canada now What I want to talk about was the state events of dual booting a brand new MacBook Pro with Nix OS So right now this MacBook you don't have to believe me because all you see is a browser, but it's running Nix OS I guess I can do like you name Dash a so it has a Nix on there. So Because you couldn't I don't have to believe me for that either But yeah, so I want to talk about that and what some of the issues are and there is one major bug that may or may not be a kernel bug and I Will show it to you and then also I have a promise that if any of you wants to try to fix it I will donate 50 euro to the Nix OS foundation and I'm like a very Cash-conscious person. So that's like in my mind like thousands of dollars. Okay, but because I'm Consider my oh my god. It's not what I want at all. Ah, okay, so But I also have a meta presentation, which is a new presentation technique that I invented called tab driven presentations so It's really good. I'm doing it right now. I made my presentation two seconds ago. So That's why I'm a thought leader Okay, so the first thing I want to talk about is the level of support in the Nix community This is a issue. I had when I was installing Mac OS, I don't know what I'm doing in the world of computers And so I had this big issue where I just cut and paste it as much as I could and then these really kind people just Wouldn't leave me alone and they kept helping me and then I was like up like so late and You know, let's see what happens. There's no luck. It was like four in the morning I wish there was some kind of weight like it just goes on. I sorry Just really goes on and on and on that they were helping me with this issue and The good thing is is it hasn't see there's a green light here. So it had a good ending So I just want to commend the Nix OS community for being so supportive. Thank you Yeah, but so what is the the the current State of the Union if you want to dual boot a Mac OS with Nix you can do it it will work And it's a fine system and you get the good hardware and you can look really cool in the cafes but There is one really big problem and that's there's this Nasty bug here that says unreliable suspend and wait on the MacBook Pro This is 12 one, but if you scroll and scroll and scroll almost as much scrolling as my Nix OS support You will find many people are having this problem. And so I promise I would demo the problem This is a different screen, but also on the same computer and if I close this it probably actually might not break because of this business and So then you go into your work meeting and your boss is showing me the new deployment system on Nix OS and you open it and Nothing will show up And so you will panic because your boss is now thinking twice about all the new deployments that up you have and Then it'll start getting really hot. So now you're like sweating in the room with your boss because the computer is overheating and eventually it'll shut down which is good And then you'll reboot and your system will back up again, but I Mean you don't want that. So that's the the current state And if anybody really wants to like dig very deep into this bug I will lend this computer and we can hack away at it and try to figure it out and and I will also commit to sharing the learnings of how we debugged it online as well but otherwise Yeah, you can install it. It will work the suspend resume bug remains and Thank for the thank Nix OS community for the great support and that is the end of my talk. I Won't be offended if you don't ask questions. So don't feel that you need to but I will like leave this room and feel sad I'm only kidding help So this bug the screen does turn off but the system works Well, it's different. It's so I tried to like cat Two files and mash buttons and do as much as I could to figure it out. It's if you look at the logs System D registers asleep, but it doesn't register awake But when I open the the screen Like something's running, but like a few things. I noticed is like I have one of these Keys that the security people at SoundCloud made me use Ubex or something. I'm not a security person But the light won't like the USB is no longer gets detected anymore So like it'll be it'll detect it when it's shut or something, but I open it and then it shuts off So it's much beyond my understanding of systems. So likely something else But sometimes I get similar. I don't even make book But it I don't get the screen is black and if I switch to virtual Terminals and back to ex then it it's gets back. Yeah, otherwise. I'm unable to work around it Yeah, Matt.  I Mean like it was like literally I would be like is this thing even on like I can't hear anything and then like people are parting out because I'm doing it at Burghine all the time so I can't hear anything and The haptic feedback trick was a very helpful for figuring out what's happening Okay, thank you Next up it's going to be Matthias Bayer who is going to talk about a Collection of tools he's built called Nick's scripts. Hi So when I started with Nick's I had this one problem. I I added my configuration that Nick's and Re-edited and rebuild the system and it worked and then I want to go on and edit it again and again and again and No, I don't have don't have a device Don't have things to show So and I wanted to have the possibility to go back in my configuration.nix to a point where my system builds, but I Wasn't able to find it in the git reverse in the git history because there were so many comments So I started to write a script which Generates a Tag in my repository every time my system rebuilds So and this was the first step and then I continued writing scripts and scripts and I put them together into a collection of scripts and there are tools available for updating package definitions in a next package repository by pulling the patch from the monitor.nix.s.org tool Applying the patch trying to build a package and if it works push it to github and I just have to push the pull request button and everything is fine and I have exactly one step in my command line to update a package. I edited other tools to update my channels in one step so I can update my channels and If I can rebuild my system with this channel, I can go into my configuration.nix repository And I see I build generation 42 from this commit and from this channel at that time So I can go into my configuration Set my channel generation to this specific point and rebuild the system exactly how it was with this one configuration.nix Yeah, and there are some other tools available and you can find all the scripts on github and Matthias Bayer slash nix as my dash scripts Yeah, and suggestions are welcome So that's all Thanks Can you say for one question or two? One reaction or two? Jan? Hey, I suggest you tweet the link because your name is difficult to spell for some people Okay Yeah, I can Yeah, I can put it on your mailing list or whatever Yeah Okay, very practical suggestion very good next next question I went to your scripts because I wanted to do a difference between my two generations and just remember What's the change between generation two and three for example? And I also made a pull request to your repo so you saw that but we are very limited in We cannot do difference between generations because most of the information is lost So you do not know what are the difference between the nix scripts that were used to generate the two generations You know what I mean? Not really no if you compare to generations You can you can see what are the different different package that have been installed and you can look at the different ash So there is a package with the same name, but the different ash you can assume that is There was a change somewhere, but it's very difficult to know the root of the change Okay, so I know maybe you should talk about that. Yeah, someone has an idea of how can we retrieve the difference Between the two nix expressions that were used to generate the two different systems. That would be interesting Okay, you really should talk Have you thought about contributing any of this back to nix itself I'm wondering if maybe there's like you could have a hooks system or something in nix that would maybe hook into your scripts Rather than having to call your scripts directly would be a nice idea. Yes I think the purpose of nix and and my scripts are not really the same nix is like For me as a end user package management and so on and my scripts are like the surrounding parts But yeah, would be a nice idea. Yes One more time for one more. I can show you GitHub Not really a question just wanted to report that I'm a very happy user and what to say. Thank you for writing it. Thank you Okay, that's it Okay, so while we are setting up the laptop I'll introduce the third lightning Which is going to be by Emory Hemingway Who will be talking about what happens when you point nix to? G-node So I don't know what G-node is so I'm really curious about what he's going to say Okay, hopefully it works. Yeah, so I've been spending the last few months porting Nix to G-node Which is a microcordel operating system? It this is all experimental and requires features that aren't in the master G-node branch, so it's not really reproducible right now The goals for the port were I had to do everything natively I didn't want to sort of Do some do you next emulation? I didn't want to like just sort of try and fix system calls. I Wanted to be pure at least as pure as the Unix implementation. It's actually more pure and I'll get to that I have to have a lockless store because our file system doesn't have locks No database either That's something that may not work long term, but And it has to be invisible to Applications and that does work and I want it to be recursive, but that's that's theoretical and I don't see why it shouldn't be but that's not known So just I got to talk about Unix first. It's really old. It's only made for development It's it has a file system as intrinsic feature. It's provided by the kernel the file systems everywhere It's for multiple users policy is administrative by the root And you have users in groups Geno, on the other hand is released outside of the University at Dresden in 2008 It's designed to be low complexity high security Which makes things kind of complicated even though it's this little complexity It's kernel agnostic. So It runs on micro kernels separation kernels and monolithic kernels and I'm running a l4 family hypervisor right now and If it's going to count for anything we have to have legacy software support. So we have a libc We have SDL Qt and we have virtual box running so What we don't support natively you can virtualize we have distributed policy. This is we don't have a root user. So You can you can subdivide the system and then make meaningful policy decisions at different points and Then we had different services and all the services are addressed by capabilities and we have you know We can share memory using capabilities and threads and stuff like this But the file system is optional and that's where it gets tricky So everything in G note is done with the parent-child relationship Like and then you have services routed between these components sometimes it crosses this parent-child barrier And I said low complexity and this looks bad But each component only only communicates with the parent component. So you have a simple interface from the from each component but You can have multiple file system servers which would seem to make this really complicated But when we run Unix programs in our Unix emulator, we have this nukes process This is a confusing name but And so nukes sort of acts as the kernel And there's this VFS virtual file system layer in the nukes runtime, which is just like the kernel and We broke the VFS live we vote we broke the VFS layer into a library so You can use the VFS to communicate over an FS session With a block server And you could I don't have the MP implemented yet 9p implemented yet, but you can go over network So where do you put Nix? So When you configure a VFS either in the the nukes runtime or in a Program that has the VFS lab or LinkedIn Up here you see VFS root label That is a connection to a file system server and the root argument says change root as soon as I connect and the label is provided as a For the parent to decide where to route which file system server you're wanting and so I have nukes package written up here because These two these two top connections presumably I want them to go to the same place But my for my home directory. I want that to be a different server Um, so the trick is if you can rewrite these arguments at the parent So up above say we have this VFS configuration. I Don't send the session request to a to a file system server. I send it to this Nix server and So whenever this sees nukes package it looks in this file nukes package slash default nix Which can be a really simple function that takes the root argument and So here I'm just taking this root argument out of a set Which presumably I'm rewriting the root argument to be a Store root and you can see here the store root doesn't have a leading slash on it, which is it seems odd But then once once I have a connection if I carry through the Nix server I'm just going to pass a capability back up and then you have a direct connection, but I have a true root so I've rewritten the the the the true root I'm using this and so What you can do is you can have the VFS in a server that serves FS sessions And then you just make one evaluation of the VFS server then all clients would use that that Nix evaluation And I'd like to talk about how it works underneath, but I don't have time for that So I can give you a quick demo This is well, maybe I won't show you that but just for brevity Okay, so I'll start bash and the the runtime and you can see up here I'm not building the packages because I don't have all the expressions ready for that but I'm using connections to a Nix store and so Well, there's probably a lot of garbage in here, but like I have this I have I Can look inside and see I have some store paths, but I mean bash bash is not a similar bash is a real it's a real file and This this launcher I have isn't doesn't have any sort of Nix support built into it. This is just a okay I've just sort of done this FS Stuff and so I have a really stupid example here that I came up with All right, so I have this folder Nix So what I'm fired I There's nothing here, but if I try and run a non-existent Script generating foobar.sh. That's the wrong extension Okay, yeah, you're using DOS box, but you can generate files next and so over here you can see I don't know why it requests the file over and over. I don't know that much about DOS, but If I if I have lib z I can sort of access Nix solely using the file system by abstracting different parts of the file system And there's a lot of other details. I could go into I don't think I've time, but yeah, that's it We got time for one question When should we expect like a full-blown talk because that's pretty interesting. Um, I was afraid the wheels would fall off So I didn't want to request a time slot The full slot but Again, I need to sort of clean things up and get things finalized, but yeah, hello, it's loading It's my time already like counting because I Thought I'll have a laptop and I'm I'm booting Manjaro Linux throw tomatoes at me It's like this not Nix OS thing. I Have an excuse though like I have to build stuff for our slinox So this is sort of my development machine. So then Okay, does anybody know how to use extra under Yeah Yeah, right Okay Okay, yep What I want I wanted I wanted to okay Let me look I didn't even take time to change the desktop background. That's how they like care Okay, let's just now wait for chromium to boot up. Well, cool Yeah, right There's that thing. Yeah, I think so. Yeah. Oh Serum one. Oops. Oops. Oops. Oops. It didn't say anything. We'll go full screen Okay, cool. Yeah, I understand Yeah, that's that's that's a nice idea. Yeah, I mean it doesn't have text Oh How did how did that happen? Anyway, I Opened the terminal and then everything worked cool. So started timer the topic of The topic of this talk is quest for distributed Hydra and you might wonder like what What do I even mean with with distributed hydro? We already have built farms, right? so companies we build a lot of stuff and You know, we sometimes want to add some servers to our built cluster through Amazon EC for instance and Not do any configuration. Just you know, just have a built cluster like an Erlang and forget about it Also in ideal world we would laugh for You know people in next community to be able to contribute their computation power to actually You know offload the load from the main Hydra instance to build binary caches for the people and and here's the problem of trust Right. So we want so we we have two goals with this quest. We're on first goal is zero Configuration Hydra clusters and the second goal is zero trust Hydra clusters Okay So We we we do not want to you know go full-on and redo Hydra or something We want to take things very slow one step at a time and begin with figuring out how to actually use, you know distributed build PL script, I think it's called to to to implement some strategy of You know distributing the bills because some some strategy of distributing the bills other Than fanning out the tasks with really smart locking right basically now. We're as far as I understand. We're fanning out the tasks You know across the the machines that are in our Knicks dot build machines and Be and being really careful about how we lock stuff so What we want to do to begin with as to do to use consistent hashing To say okay, like we have this set of like in our company. We have this set of packages we're building and We will build, you know that packages on This like we will hash Package packages and we will figure out that at this state of cluster these machines are building that packages this way all our clients that want to get binary You know binary outputs will know from you know from consistent hashing algorithm from where they should obtain the binary the binary caches and Of course we we Have no idea how to solve the The trust problem. So this is why my colleague as Has chosen this as his master's thesis. So you have have if you have any like Guidance and your trust system systems then and if if you want to join us on this quest then you should drop us a line That's about it Okay, thank you Okay, I'm sure there must be questions about this Oh, so you you actually talked about two things. So Distributed hydra and then you were mentioning the binary caches, which is about the storage. Yes. Yes, I Maybe wasn't clear about it. So basically we want to experiment first with you know distributed build PL script Sort of in sort of integrate a consistent hashing there Right and see how it plays with the entire process of of of building stuff using the feature of nicks We should we just call distributed builds and then sort of taking it from there with the with the experience We got and like with the pitfalls we fell into Do the proper thing with hydra? But that's our vision of how we should do and we like by the way We don't have like any prototypes. I can't show any demos. It's just it's just that we think that eventually I Mean for for the community. I mean for companies we can write workarounds and whatever but for community It's extremely important to figure out this trust thing Right so that I can that so that I can in like one click donate my computational power to the community so that you know, we can we can build Packages for we can build binaries for the people that's that's our like and go Pete has a question I guess I'm curious about what you really mean by zero trust so because There are different levels of trust right you can say I have public keys of people Configured and then I trust those or do you have this web of trust kind of thing you have this Why I'm not not quite sure how to interpret this requirement. The thing is that we don't have You know any Vision of how it should be done But we have some ideas. For instance, we can implement something like notary systems when the In in our cluster and this is where consistent hashing and if you have noticed like this is basically a slide from Basha guys, right? So So we have we have more than one server building the same thing and then notaries are saying What is your output? What is your output? What is your if there is a consensus of outputs then we Sort of trusted and of course we have to make sure that in our hashing function Somehow we know that these three, you know servers are owned by different parties Right that are not that they didn't don't have a conspiracy So this is this is sort of like what we're thinking about when we when we're talking about zero trust Hydrofarms and some hints you might want into spoofing and civil attacks I'm sure civil attacks s y b i l attacks and spoofing Okay, what what what what what do we spoof? Hmm like What is the the threat because you may because you said you you have to make sure that there's not an alliance because spoofing is essentially When when more than one agent collaborates on Abusing the system the trust system So just some just some hints where you might want to look which which keywords you might I mean we can talk about it, but I mean I'm just stupid to see To see how it's immediately relevant like if we have good enough notary system then We just speak like random no, I'm sorry We pick notaries with trust I guess and I mean we'll talk about it later I'm just stupid to to answer that or think about it right now anything else So the next Presentation will be by Jack Cummings who will be talking about Hydro in more practical terms I would say I think so I wrote this Five slides during one of the presentations this morning. Someone was I was noting that Hydra is a very very useful tool if you're doing internal next deployments and It's actually kind of a bit of a work to get going This is my experience of setting up Hydra. So things have probably changed since then I think I tried repeating this with the Latest pull of Hydra and it didn't merge well with some changes I made one of the Problems I have is my builds can take hundreds of hours So it's really annoying when a bill takes 99 hours and the time out is 100 hours that you lose 101 hours of the work My Hydra server doesn't run on Nick sauce it runs on a SUSE server It's the next I'm using as a multi-user and it's installed that doesn't use Nick store as a Nick's path And it's all internal to the company work for so This is kind of a one of the less traveled paths than Nick's I think So the first thing you do is you need to grab Hydra That's kind of a good way to get it Then you build Hydra. It actually uses Nick's to build Hydra One of the less known facts is you can actually use Nick's as a replacement for make And more You also need Postgres there was a time that Hydra worked with SQLite But it does not work so anymore that one took me about two hours to figure out Then you make your Hydra database Create a user for it pick a password throw it into PG pass so that I see tech ate my tilde, but Then you can use locals authentication Static disclaimer when you're using by these things If you start up a postgres server on the big bad internet it might actually only yeah, who knows what that happens So the next step is run Hydra in it and that sets up all of the Loads the schema into the database sets up. I don't know a few other things that Hydra needs to get going and This is all stuff you run once the first time you set up Hydra and then every time you run Hydra I have just a little script to do this I do need to wrap in this in a script because I have a different store and state directory So a lot of the next stuff has Nick's store hard-coded into it, which I tend to discover on a regular basis Then once you've got The variable setup there are four parts that you need to run currently There is the postgres server which can contains all this state the state about all the builds and all the evaluations the qrunner which dispatches everything the evaluator which periodic the evaluates all of the Expressions you tell you can figure Hydra to deal with and then a server, which is actually the web front end Once again, I've never had an internet-facing Hydra server So who knows what kind of happens to it when you put in the internet? so Then as far as this goes, I believe the default is port 3000. I'm not sure that may have been semi-configured somewhere I can't remember This is actually the easy part once you the hard part I had with Hydra was Getting all the dependencies and get it running and once it's running the web interface is actually really easy to use just setting up inputs to a job set and Pointing it at the derivation you want to run It is worth noting it's worth backing up the Hydra database quite often because in the application we use it for which I'll talk more about tomorrow I Tend to use it for doing the reverse mapping of what derivations mapped back to what source sources, which is something that I Kind of miss a bit about next is being able to say oh, I have this derivation in a star now How did I build that or what did I what sources did I build that from? so Yeah, that was kind of a quick World round tour of the guts of setting up Hydra Anyone anyone Could you tell a bit more about that reverse mapping that sounds? How do you actually do that sounds interesting? Okay, so I Have Hydra set up to evaluate like every 60 seconds because I don't really mind burning up a bit of pure resources So when Hydra evaluates a branch and one of the inputs changes, it'll reevaluate it So what happens is in the input tab of Hydra? It'll keep track of what? revisions that used from what SCM repositories to build the derivation so that That turns to be the more and more useful features I use in Hydra is being able to look at the big table of what jobs succeeded at point find the green check marks in the mess there and find out what revisions that was and be able to Track it backwards from the derivations what changed in all the inputs. This is since I find it very useful because my jobs can some takes time to take hundreds of hours, so you have 10 or 15 in the pipeline and The figuring out when stage 13 the pipeline failed what version that mapped back to you and be able to figure out What you change to break everything So that's how I use that Okay, so for the final talk for today Will be by Bob long as you can already see on the slide and it's going to be about a Haskell web framework As far as I know Yeah Hey, everyone. My name is Bob. I'm from Dublin, Ireland. I'm over in Berlin for the week or so I just wanted to quickly talk about something that we've built a work using you so and we're building it with Nick's and deploying it with Nick's So I work at intercom What we do or kind of mission is to try and make web and mobile Business a little bit more the communications involved a little bit more personal So we've ever had a bad experience with a help desk which I tend to do multiple times a week We're trying to kind of solve that problem So we build a couple of products around customer communication But we also have a fairly good API and webhooks offering so you can build your own kind of software to do some of this stuff One of those kind of things that we offer webhooks so When we built webhooks first, we thought this was a cool feature and then a couple of months later We realized that people were building real businesses on it and we were not giving it the respect that it's deserved You we we obviously tested and monitored every single part of our webhook delivery pipeline But what we weren't doing was in an end-to-end way doing some sort of continuous quality assurance Which is difficult to do because if you think about what webhooks are webhooks are something that are fired Sometimes seconds are more after they are triggered and there's no request response model So this isn't like a typical web development testing tasks. There's a there's an asynchronous nature there The other problem is that often you're investigating or want to investigate an issue on a production system But you're on your laptop on the bus or something But in order to receive webhooks you need to have a web server running and if it's on a if you're subscribing to a public Production system, then you need a public IP or DNS to to subscribe to So we've been working on this tool called Shelduck. It's called Shelduck because the team I'm on an intercom Names all of our products after birds and we've been doing a lot of products and now the birds are getting weird, but We're on Shelduck right now And this lets you write simple API request webhook Expectations and then Shelduck just does all of the machinery behind it So this is what it looks like each of these blocks is an event that Shelduck has observed related to the webhooks pipeline So if you're trying to investigate an issue, this is where we go now And this tells us what's up. It's also got integrations with Slack So if you configure Slack, it will send Notifications on test failures and your colleagues will know you're writing Haskell because the F is in capital letters It's also got Keen.io support So we do analytics based on failures and it just sprays all of this stuff into these different services So it's got a lot of concurrent components. It's got a test runner or a quest engine is hitting the API It runs a separate webhook web server to receive those webhooks And then it runs an optional SSH tunnel so that you can test this on the bus And it runs the ASOD web server, which you just saw You saw it's cool If you like web development and you like Haskell and you like DSL's that's the Venn diagram Then you saw it is for you in Haskell. We have the notion of quasi quotes Well in GHC, we have the notion of quasi quotes where we can kind of embed these DSLs into Haskell You saw it itself is kind of I think they build it as kind of a traditional MVC framework with Haskell's type system used To go to fact it rules out a lot of the types of errors that web programs Web programmers are pretty used to it's got a bit of a reputation of being difficult Which I think is slightly unfounded if you look at the core Simple ESOD web app is about 20 lines to get a hello world thing going But if you're if you want to do web development in Haskell You should just pick a framework because if you don't like something generally things compose pretty well So you can just rip out parts and replace them with other parts So it's not a big decision you have to make which is nice. You can't do that with rails and Sinatra They don't compose at all So I feel a little bit embarrassed about the slide after listening to a day of cool stuff about NYX deployments But I thought I was really smart using NYX copyclosure to do this But my needs are pretty simple. We just have a fixed EC2 instance and we use NYX copyclosure to send this Closure over. I will probably be doing NYX ops in as a result Intercom is pretty crazy about deployments if any of you've read any of our blog posts We do like a hundred deployments a day about without any downtime And we've got a great ops team who care a lot about this stuff one advantage of NYX copyclosure is that it's so kind of Small it requires very little of an investment with a From your infrastructure team if you have one So if you're looking for a way to kind of sneak NYX in initially, maybe this is a good approach as opposed to a full NYX ops thing. So that's all I have Thank you Sorry Sure So when you're doing these builds to do NYX copyclosure is that do you have a Pre-configured machine that knows about how to run NYX or do you have all of your colleagues having to have them in store? Nick so they can do deployment. Yeah, so the way we we Do this is that we use virtual machines to develop it and It's like a vanilla NYX OS box that I think we install using vagrant or something because that's what everyone uses in work And so it's pretty easy to get up and running in about 20 minutes or so Just by following a cell list of commands and then you can start deploying to our fixed instance So you have multiple people doing that. Yeah a couple Are you using a servant? Oh? No, no, no, we we so what's interesting about? Servant is Kind of build as a very type safe DSL and Haskell for generating RESTful APIs, is that fair? Yeah, just Didn't pick it, but it does run as I said two web servers one is in your so for the main UI And then another one is just for receiving Webhooks so maybe that would be a good good pick there because I can swap that out pretty easily


PayPal, Dan Schulman, is remarkable. People wrote him off repeatedly against Visa, MasterCard, against Wells, against Google, against JP Morgan, and of course against Apple. Now Apple is letting PayPal into the ecosystem. That's a huge win. PayPal could go up substantially from here, even though it has already had a very big move.