Hi, I'm Denchie, and today I'm going to be discussing my favorite tech or operating system, Linux, just tech enthusiast websites and wikis, so the kind of stuff that I would go on and look for recommendations for software to use, hardware to look at, and all this kind of stuff. So I'm going to try to cut straight to the chase, but I just want to give a little bit of a preload to this. If you're out there and you want to learn how to use a piece of software, do not do this. Go into your terminal and type in man ffmpeg or something and expect to learn a lot from this. Now yes, I quite like the man command because it's highly useful if I want to learn about let's say the LS software, which is a very simple piece of software, it's a Unix software and it has options which are easy to understand. It has a purpose that is relatively simple, it's a minimalist piece of software. But when it comes to large software like ffmpeg for example, these are a little bit harder to learn, they're a little bit more complicated. And something like a manual page may not work for everybody and I don't think it works for most people really. So today I'm going to be discussing the Wikis I find the best for learning about you know, software, choosing the software you actually want, finding good software and hardware and just generally the best websites. So the first one I'd say to consult is the install gen 2 wiki. I'm pretty sure if you watch this channel you probably already know what the install gen 2 wiki is, but just as a refresher, it's the G technology image boards real wiki. It's essentially the G image board condensed into a wiki with all the information that would be probably shared in an angry reply to a post from somebody who doesn't really know any better. And the answers are always going to be here most of the time. In fact its name in of itself is an answer or at least a hysterical one. Install gen 2 is a common reply that you would find on the image board because it's funny to tell somebody who is having like an error in windows to install gen 2. It's a difficult to install distribution. It's funny and not just ruin the joke by explaining it. Let's begin by looking at the most basic things you can find on this. So there's hardware and software is the split in the popular topic. There's a lot of stuff you could find on here like the baby's first Linux guide or things like guides on how to choose a programming language or something. Let's take a look at I don't know windows racing. That's something a little bit obscured relatively and not a lot. Not a lot of people rice windows now do that. So you'll see that it has a lot of a lot of information about what to use to rice windows to get it looking good. The kind of tools that you would need. I don't really recommend using windows. So I guess we could always take a look at new Linux racing. And there's a quite a lot of interesting things here like for example, the desktop environments to choose the window managers list of window managers you can choose. So software you could be using. There's a lot of interesting things you can find here. I don't know.  Laptop buying guide right here explains the basics of what you should try to get. The gaming computers, Chromebooks, Macbooks. It's pretty funny, but all this kind of stuff that you could find. And it's got, you know, reading through this. It's very, very well written. But it's not as well written as the next wiki I want to talk about because the install gen 2 wiki is really general when it comes to tips. It's not very how would I say it's more theory than it actually is practice. It's the software you could use and things like that. I recommend the arch wiki for practical advice. Regardless of what distribution you're using, the arch wiki probably has the answer. Let's say I'm using a tiling window manager or let's say I'm using a program like tint to for a bar or whatever. It's essentially a program that opens up a little sort of task bar on your computer. Now chances are if that piece of software exists and enough people use it, there's going to be an arch wiki, you know, article about it. So tend to right here in the search, press enter and boom, it's already redirected me to the tint to page. And it's got information about how to install it. Well, this is for Arch Linux, specifically how to configure it, what you can do to change it, all the various key bindings that there are by default, the application menus and open box. So that's how to set things up in open box because tint to is commonly used there. Things as simple as, oh, how to set up in different desktop environments, how to have like auto starts in I3 or whatever. And the thing about the arch wiki is that a lot of people say it's really well written. The truth is it's not well written. It's actually just written by people who are having the issues. If you're going something like the Debian wiki, it's very relatively antiquated like Debian itself. The reason is because people using Debian aren't mostly actively contributing. If you're an arch Linux user, you're probably an enthusiast about Linux and you're going to want to contribute to the project any way you can, whether it be through contributing to the wiki articles or contributing packages that are AUR or even the community repositories, something like that. You're going to want to contribute because it's an active community. And art itself is a rolling release distribution. So the packages that come out on Arch Linux are always the latest. And to be the latest, they actually have to be checked and approved.  Then they're sent off or even automatically done, which isn't exactly the best practice that doesn't work out perfectly. Most of the time, most of the time, it's perfectly fine. But that's the basic idea. Arch wiki is fast. It's more updated. And most importantly, it's well written, quote, unquote. Basically, it means that people are having the errors that they want to have and want to have. But they're having people are having the errors that they're having and they're explaining the reasons they had them. And people are having the errors that they have. People are having the errors that they have. And they'll write exactly how to set up the software in a way that will ensure these errors don't happen. That's why the Arch installation guide is so minimalist, yet still so effective. If you don't do one of the things in the Arch installation guide, you're probably going to mess up your system.  Anyway, moving on to another documentation I quite do like. The suckless.org website. Now, suckless makes pretty good pieces of software. I don't use a huge amount of their stuff, but some of it is really good. And, you know, they only make like a couple of things, really DWM, SD, and surf. That's the main things they do. However, they have a great page on their website called Rocks. Not about actual rocks, but about software that rocks. So software they think is cool. And this is full of some of the best software you could be using, minimalist stuff that is free and open source. So for example, these are libc implementations, like things like this is more like developer things, cproc, G-B-E-S-A-C, compilers, first the C programming language, compression programs, cryptography, so Libre SSL, which is just an alternative to OpenSSL, because OpenSSL had a vulnerability, things called heart-lead vulnerability. Miscellaneous programs, I think these are like something, I don't really know what most of these are. However, there are some pretty cool things down here in the programs section. There's audio players, like the C Muse. C Muse is an excellent audio player. Open up my terminal, and then type in C Muse. Got all the music right here. Look at that. Pretty good. There's also programs like SXIV, which is a simple X image viewer. I think it is somewhere here down. I think it's image viewer is here. So SXIV, it's a great, simple X image viewer, and it's super minimalist. It just works really, really well. There's things like IRC clients to recommend. There's Go For Clients, so that's if you're using the Go For Web protocol for some reason. There's File Managers they like, Noise, Ranger, all these kind of things. There's Image Viewers, like I said before, Instant Messaging Clients, Mail Clients they like, Media Players they enjoy, MPV is quite good. And Notification, Demons, and Password Managers, and all this kind of stuff. PDF viewers like to throw a PDF. All these things are relatively minimalist and free and open source pieces of software. They're really, really good, and I recommend most of them if you need that kind of software. So if you're out there looking for a compiler, if you need a really good image viewer or a really good video player for your Linux machine, you're stuck with something bloated from your desktop environment or something, consult the SucList.org website because it will likely have the great alternatives you're looking for. The final page I want to talk about is the Kernel.org page. What this is is it contains different pieces of information for all the various components of the kernel. This is more useful if you're a kernel programmer or someone who has to look at things that are very, very kernel level. So something like, let's say, Linux Wireless. Open this up, it will open up the wireless section of the wiki. So as you can see, it's a wiki about Linux Wireless. And the thing is, this is for much more advanced users, people who are looking to do Linux from scratch or complicated Gen2 stuff and that kind of thing. But it still is an excellent piece of documentation to go to Kernel.org. So I've been Denshi. These are my favorite websites for learning about everything to do with GNU Linux and technology just tech enthusiast websites. I'll have all these linked in the description. Goodbye.


3 Ezra Chapter 1 Verse 1 to Chapter 3 Verse 7 We have seen in the story of the Kingdom of Israel, or the Ten Tribes, how the great Empire of Assyria arose from the city of Nineveh on the Tigris River, how it ruled all the lands and carried away the Ten Tribes of Israel into captivity, from which they never came back to their own land. Story 91 We saw, too, how the Empire of Assyria went down, and the Empire of Babylon or Chaldea arose in its place under Nebuchadnezzar, Story 97. As soon as Nebuchadnezzar died, the Empire of Babylon began to fall, and in its place arose the Empire of Persia, under Cyrus, who is called Cyrus the Great, because of his many victories and his wide rule. His Empire was much greater than either the Assyrian or the Chaldean Empire, for it held in its rule the land of Egypt, all the lands known as Asia Minor, and also many lands in the Far East. Cyrus the Great King was a friend to the Jews, who at this time were still living in the land of Chaldea, between the Tigris and Euphrates River. It was now seventy years since the first company of captives had been taken away from the land of Judah by Nebuchadnezzar, Sea Story 97, and fifty years since the city of Jerusalem had been burned. By that time the Jews were no longer looked upon as captives in the land of Chaldea. They lived in their own houses, and tilled their own farms, and were in peace. Many of them were rich, and some of them, like Daniel and his three friends, were in high places at the court of the king. You remember that in the early days of the captivity Jeremiah the Prophet wrote a letter to those who had been carried away to Babylon, telling them that after seventy years they would come back to their own land. Story 97 The seventy years were now ended. The older men and women who had been taken away had died in the land of Chaldea, but their children and their children's children still loved the land of Judah as their own land, although it was so far away. The Lord put into the heart of Cyrus the king of Persia, very early in his reign, to send word among the Jews that they might now go back to their own land. This was the word as it was written and sent out. Thus saith Cyrus, the king of Persia, the Lord, the God of Heaven, has given me all the kingdoms of the earth, and he has commanded me to build him a house in Jerusalem in the land of Judah. Or let those of the people of God who are among you go up to Jerusalem and help to build the house of the Lord, and those who do not go to Jerusalem but stay in the places where they are living. Let them give to those who go back to their own land gifts of gold and silver, and beasts to carry them, and goods, and also a free gift toward the building of the house of the Lord in Jerusalem. At this the Jews in the land of Chaldea were very glad for they loved their own land, and longed to see it. One of them wrote a song at this time. It is Psalm 126. When the Lord turned again the captivity of Zion, we were likened to them that dream. Then was our mouth filled with laughter, and our tongue with singing. Then said they among the nations, The Lord hath done great things for them. The Lord hath done great things for us, whereof we are glad. Then again our captivity, O Lord, as the streams in the south, they that sow in tears shall reap in joy. Though he goeth on his way weeping, bearing forth the seed, he shall come again with joy, bringing his sheaves with him. So the Jewish people began to make ready for going back to their own land. Those who were rich and noble in rank stayed in the land of Chaldea and in other lands of the Persian Empire. But though they did not go back to the land from which their fathers had come, they gave large gifts of gold and silver to help those who did go. And Cyrus, the king, took from the treasure house in Babylon all the vessels of the temple that had been taken away by Nebuchadnezzar, and gave them to the Jews, to be used in the new temple which they were soon to build. These were plates and dishes and bowls and cups of gold and silver, more than four thousand in all. So with the gifts of the king and the gifts of their own people, and what was owned by those who went to the land of Judah, the company took away a vast treasure of gold and silver. It was a happy company of people that met together for the journey, back to the land which they still called their own, though very few of them had seen it. There were forty-two thousand of them, besides their servants to help them in the journey. They traveled slowly up the Euphrates River, singing songs of joy, until they reached the northern end of the great desert. Then they turned toward the southwest and journeyed beside the Lebanon mountains, past Damascus and through Syria, until at last they came to the land of their fathers, the land of Judah. With all their joy they must have felt sad when they saw the city of Jerusalem all in ruins, its walls broken down, its houses heaps of blackened stone, its once-beautiful temple burned into a heap of ashes. As soon as they came they found the rock where the altar of the Lord had stood, the same rock where David had long before offered a sacrifice—see Story 69—and the same rock upon which travelers look even in our time under the dome of the rock. From the smooth face of this rock they gathered up the stones and swept away the ashes and the dust. Then they built upon it the altar of the Lord. And Joshua, the High Priest, began to offer the sacrifices which for fifty years had not been placed upon the altar. Every morning and every afternoon they laid on the altar the burnt offering and thus gave themselves to the Lord and asked God's help. From this time there were two branches of the Jewish race. Those who came back to the land of Judah, which was also called the land of Israel, were called Hebrews, which was an old name of the Israelites. Those who stayed in the lands abroad, in Chaldea and throughout the empire of Persia, were called the Jews of the dispersion. There were far more of the Jews abroad than in their own land, and they were the richer and the greater people. Many of them went up to Jerusalem to visit and to worship, and many others sent rich gifts, so that between the two great branches of the Jewish people, in their own land and in other lands, there was a close friendship, and they all felt, wherever the Jews were, they were still one people. The Jews who had been captives in the land of Babylon were now free to go wherever they chose, and besides those who went back to the land of their fathers, there were many who chose to visit other lands, wherever they could find work and get gang. It was not many years before Jews were found in many cities of the Persian Empire. They went also to Africa and also to Europe, choosing the cities for their home, rather than the country. Everywhere in all the great cities, the Jews of the dispersion were found, besides those who were living in their own land of Israel. When the Jews came back to their land, their leader was named Zerubbabel, a word which means one born in Babylon. He belonged to the family of David, and was called the prince, but he ruled under the commands of Cyrus, the great king. Prejuda, which now began to be spoken of as Judea, was a small part, or province, as it was called, in the great empire of Persia. End of Story 13 Story number 14 of Halbert'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. Halbert's Story of the Bible by Jesse Lyman Halbert, part 5. The New Temple on Mount Moriah. Ezra chapter 3 from verse 8 to chapter 6 of verse 22. Hagar chapter 1 from verse 1 to verse 23 of chapter 2. Zechariah chapter 4 from verse 6 to 10. After the Jews came back to their own land, they first built the altar upon Mount Moriah, as we read in the last story. Then they built some houses for themselves, for the winter was coming on. And early in the next year, they began to build again the temple of the Lord. Zerubabel the prince and Joshua the priest led in the walk. And the priests and Levites helped in it. They gave money to masons and carpenters. And they paid men of Tyre and Sidon on the shore of the Great Sea to float down cedar trees from Mount Lebanon to Joppa. And from Joppa, they carried them up the mountains to Jerusalem for the building of the house. When they laid the first stones in the new building, the priests in their robes stood ready with trumpets. And the Levites were symbols to praise the Lord for his goodness in bringing them once again to their own land. The singers sang, praise the Lord for he is good. His mercy endured forever toward Ezra of his people. And all the people shouted with a great shout as the first stones were laid. But some of the priests and Levites and Jews were old men who had seen the first temple while it was still standing, more than 50 years before. These old men wept as they thought of the house that had been burned and of their friends who had been slain in the destruction of the city. Some wept and some shouted. But the sound was heard together. And those who heard at a distance could not tell the weeping from the shouting. But these builders soon found enemies and were hindered in their work. In the middle of the land, near the cities of Shechem and Samaria, were living the Samaritan people, some of whom from the old ten tribes and others from the people that had been brought into the land by the Assyrians many years before. See story 91. These worshipped the Lord, but with the Lord they worshipped other gods. These people came to Prince Zerubbabel and said, let us join with you in building this house, for we seek the Lord as you do, and we offer sacrifices to him. But Zerubbabel and the rulers said to them, you are not with us, and you do not worship as we worship. You have nothing to do with us in building the Lord's house. We will build up ourselves to our God, the God of Israel, as Cyrus the king of Persia has told us to build. This made the people of Samaria very angry. They tried to stop the Jews from building and frightened them and wrote letters to the king, urging him to stop the walk. Cyrus the king was a friend to the Jews, but he was in a land far away in the east, carrying on war, so that he could not help them. And soon after this he died. His son, who took his great kingdom, did not care for the Jews, and he too died in a few years. Then a noble man of another family seized Petrion and held it nearly a year before he was slain. His name was Smedis, but he is called in the Bible but another name, Atazaxis. While this king was running, his American rulers wrote to him a letter saying, let it be known to the king that the Jews have come back to Jerusalem. They are building again the city which was always bad and would not obey the kings when he was standing before. If that city be built and its walls finished, then the Jews will not serve the king, nor pay to him their taxes. We are true to the king, and we do not wish to see him come to his rule. Of old time, this city was rebellious, and for that course it was laid waste. If it is built again, soon the king will have no power anywhere on the side of the river Euphrates. The king Smedis, or Atazaxis, wrote an answer to the chief man of Samaria Thoth. The letter which he sent has been read to me. I have cost such to be made in the records, and I find that the city of Jerusalem has been in old time a strong city, with great kings ruling in it, and ruling also the lands around it. I find too that this city did rise up and make war against the kings of empires in the past. Command the men who are building the city of Jerusalem to stop the war, and let it not go on until an order is given from the king. The Samaritans and other enemies of the Jews were glad to have this letter come from the great king of Persia. They went to Jerusalem and made the work of building the temple and the city stop. So the foundations of the temple lay unfinished through several years. But after a time, two prophets arose in the land of Judea. They were Hagar and Zechariah, and they spoke the word of the Lord to the people, telling them to go forward with the building. Hagar said, is it a time for you to dwell in richly furnished houses of your own, while the Lord's house lies waste?  The glory of this house shall be greater than the glory of the other house. And in this place, I will give peace, said the Lord of hosts. And Zechariah, the other prophet, said, it shall not be by might, not by power, but by my spirit, said the Lord. The hands of Zerubbabel have laid the foundation of this house, and his hands shall finish it. He shall lay the headstone with shoutings of grace, grace, unto it. Then Zerubbabel and Joshua and the rest of Jews began again and went on with the work. Soon after this, a new king began to reign in Pasha. He was a wise man and a great ruler, whose name was Darius. King Darius looked in the records of Pasha and found it written that Cyrus the king had commanded the temple to be built. He wrote a letter to the rulers in all the lands around Judea, no longer to hinder the walk, but to help it and to give what was needed for it. Then the Jews went on with the building in great joy, and he was finished at last, 21 years after it had been begun. While Zerubbabel, the prince and Joshua the priest, were still ruling over the people. The temple, which was thus built for the second time, was like the one built by Solomon, nearly 500 years before, since 272. But though larger, it was not so beautiful nor costly. In front of it was an open court with a wall around it where the people could go to worship. Next to the people's court on higher ground was the priest's court, where stood the altar and the lever for washing. Within the court rose the house of God with the holy place and the holy of holies, separated by a great veil. In the holy place as before, stood the table for bread, the golden lamp stand, and the golden altar for incense. But in the holy of holies, there was no ark of the covenant, for this had been lost and was never brought back to Jerusalem. In place of the ark, stood a marble block, upon which the high priest sprinkled the blood. When he went into the holy of holies, on the great day of atonement, once each year, see the account of the tabernacle and its worship in story 28. This is the end of story 14. Story number 15 of Hurlbut's story of the Bible. This is the 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 5. The Beautiful Queen of Persia, Esther 1 verse 1 to 10 verse 3. When Darius the Great King died, his son Xerxes, who was called in the Bible, Asherus, took his place upon the throne of Persia. A Asherus was not like his father Darius, a wise man. He was hasty in his temper and did many foolish acts. At that time the palace where the king of Persia lived was no longer at Babylon, but at a city named Shushan, among the mountains of a region, called Elam. King Ahasuerus held at Shushan a great feast with his nobles. When the king and his company were all drunken with wine, he sent for his queen, Vashti, that he might let all the nobles see how beautiful she was. Among the Persians it was held to be very wrong for a woman ever to allow her face to be seen by any man except her husband. Queen Vashti refused to come to the feast that these drunken men might stare at her. This made the king very angry. He said that because Vashti would not obey him she should not be queen any longer, and he put her away from him and from his house. After this King Ahasuerus thought to choose another woman to be his queen instead of Vashti. He sent commands throughout all the kingdom that in every land and province they should find the most beautiful young women and bring them to the royal city of Shushan. There the king would see them all, and among them he would choose the one that pleased him best, and would take her as his queen. So from every land in the great empire of Persia the loveliest young women were brought to Shushan, and there they were left in the care of Hegei, the chief of the king's palace. At that time many Jews were living in the cities of Persia, for we have seen that only a small part of the Jews went back to the land of Israel when King Cyrus allowed them to return. See Story 104. There was a Jew living in Shushan named Mordechai. He belonged to the tribe of Benjamin, and came from the same family and line with Saul, the first of the kings of Israel. At the house of Mordechai lived his cousin, a young girl named Hadassah, or Esther, a name which means star.  Esther was very beautiful, and was as lovely in her heart as she was in her face. Among the other beautiful young women she was taken to the palace as one of those who were to be brought before the king. When King Ahazurus saw Esther, the Jewish girl he loved her, and chose her out of all the young women to be his queen, and set upon her head the royal crown of Persia. Esther was taken into the king's palace, rooms and servants were given to her, and she lived in the state of a queen. When the king wished to see her, he sent for her, and she came to his room. No one could go to the king, or could see him unless sent for. And if any one man or woman came before the king without being called, that person was seized by the guards, and was led away to death, unless the king held out toward him his golden scepter, the rod which he held. In the palace Mordechai could no longer meet his cousin Esther, for no man except the king could enter the rooms set apart for the woman. But Esther from her window could see Mordechai as he walked by, and by her servants she could send word to him, and in the same way could hear word from him. Mordechai loved the lovely young queen, who was to him as a daughter, and every day sat at the gate of the palace to hear from her. When Mordechai was sitting by the gate he saw two men who were keepers of the gate, often whispering together. He watched them closely, and found that they had made a plan to kill King Ahazurus. He sent word of this to Queen Esther, and Esther told the king of it. The men were taken, and as Mordechai's words was found to be true, they were both slain by being hanged on a tree, and an account or story of all their plan of how they were found out by Mordechai the Jew, and how they were punished by death was written in the book of records of the kingdom. After this a man named Haman rose to great power in the kingdom. The king gave him a seat above all the other princes, and asked his advice in all matters, and allowed Haman to do whatever he pleased. Of course everybody in the palace showed great respect to Haman, the man who stood next to the king. When he came near all the men in the palace and in the city bowed down before him, and many fell on their faces, even in the very dust. But Mordechai was a worshipper of God, and he would not fall upon his face before any man. Haman noticed that there was one man who did not bow down, as did the others around him. He said to his servants, Who is that man sitting by the gate who does not bow down when I pass by? They answered Haman, that is Mordechai the Jew. But they did not tell Haman, for they did not know that Mordechai was the cousin of Queen Esther, and that the Queen of Persia herself was a Jewish. When Haman found that Mordechai was a Jew he became very angry, not only at Mordechai, but at all his people. He hated the Jews, and he resolved to have revenge on Mordechai, and on his account to make all Mordechai's people suffer. Haman went in to the king and said to him, O king Ahazurus, there is a certain people scattered abroad throughout your kingdom, and apart from all other peoples. Their laws are different from those of every other nation, and they do not keep the king's laws. It is not well to allow such a people to live. If it is pleasing to the king, let a law be made that this strange people be destroyed. I will myself pay all the costs of putting them to death, and will place the money in the king's treasury. The king, living in his palace, and never going out among his people, knew nothing of the Jews, and believed Haman's words. He took from his hand the ring on which was the royal seal, and gave it to Haman saying, Do as you please, write whatever law you wish, and stamp it with the king's seal. The money is yours, and I give this strange people to you. You can do with them, as you please. Then by Haman's command a law was written and sealed with the king's ring, that on a certain day, which was the thirtieth day of the twelfth month, all the Jews in every part of Persia might be slain. Anyone who chose to kill them might do so, and those who killed them might take for their own all their money, the gold and silver, and garments which they might find in the houses of the Jews. The copies of this law were sent to every city of the empire of Persia to be read everywhere, so that all might know that the Jews were to be destroyed. Everyone who heard of it was filled with wonder, for no one knew of any evil against the king that the Jews had done to deserve death. They could not understand why the law had been made, but everywhere the enemies of the Jews made ready to destroy them that they might have the Jews' riches, for in those times, even as now, there was great wealth among the Jews. The news of this terrible law came to Mordecai, as it came to all the Jews in Shushan. Mordecai tore his clothes, as was the manner of those in deep grief.  Queen Esther saw him and heard his voice. She sent one of her servants, named Hattash to Mordecai, to find out why he was in such deep trouble. Hattash came to Mordecai, and Mordecai told him of the law for killing the Jews on a certain day, the thirteenth day of the twelfth month, and gave him a copy of it to show to Queen Esther. And he told Hattash to ask the queen in his name to go in to King Ahazurus and beg him to spare the lives of her people. Queen Esther heard Hattash's words, and sent this message to Mordecai. It is the rule of the palace that if any man or woman shall go into the king in his own room without being sent for by the king, he shall be slain unless the king holds out to him the golden scepter. But I have not been called to meet the king for thirty days. When Mordecai heard this message, he sent word again by Hattash to Queen Esther. Do not think that in the king's palace you are safe, and shall escape the fate of your people. If you keep still and do nothing to save your people, God will surely save them in some other way, and you and your father's family shall be destroyed. Who can tell whether God has not raised you up and given you your royal place for such a time as this? Then Esther sent this answer to Mordecai, go and bring together all the Jews in Shushan, and let them all pray for me, eating and drinking nothing for three days. I and my maids in the palace will pray in fast also at the same time, and then I will go to the king, even though it is against the law, and if it be God's will that I should die in trying to save my people, then I will die. When Mordecai heard those words he was glad, for he felt sure that God would save his people through Queen Esther. For three days all the Jews in Shushan met together, praying, and in the palace Esther and her servants were praying at the same time. The third day came, and Esther dressed herself in all her robes as queen. She went out of her rooms and across the open court, and entered the door in the front of the throne where the king was sitting. The king saw her standing before him in all her beauty, and his heart was touched with love for her. He held out toward her the golden rod or scepter that was in his hand. Esther came near, and touched the top of the scepter. The king said to her, What do you wish, Queen Esther? It shall be given to you, even to the half of my kingdom. But Esther did not at once ask for all that was in her heart. She was very wise, and she said, If it pleases the king, I have come to ask that the king and Haman the prince shall come this day to a dinner that I have made ready for them. The king said, Send word to Haman that he haste, and come to dine with the king and queen. Till that day King Ahazurus and Haman sat at the table with the queen. She was covered with a veil, for even Haman was not allowed to look upon her face. While they were sitting together, the king said, Queen Esther, is there anything that you wish, it shall be given to you, whatever it is, even to half of the kingdom. My wish, answered the queen, is that the king and Haman shall come again to dinner with me to-morrow. Haman walked out of the palace that day, happy at the honour that had come to him. But when he saw Mordecai sitting by the gate, and not rising up to bow before him, all his gladness passed away, and he was angry in his heart. When he came to his own house, he told his wife, Zeresh and his friends, how the king and the queen had honoured him, and then he said, But all this is as nothing to me when I see that man Mordecai the Jew, sitting at the king's gate. But his wife said to him, That is nothing, before you go to the feast to-morrow, have a gallows made, and then ask the king to command that Mordecai be hanged upon it. The king will do whatever you wish, and then when you have sent Mordecai to death, you can be happy at your feast with the king and the queen. This was very pleasing to Haman, and on that very day he caused the gallows to be set up, ready for hanging Mordecai on the next day. It so happened that on that night the king could not sleep. He told them to read in the book of records of the kingdom, hoping that the reading might put him to sleep. They read in the book how Mordecai had told of the two men who had sought to murder the king. The king stopped the reading and said, What reward has been given to Mordecai for saving the life of the king from these men? O king! they answered, Nothing has been done for Mordecai. Then the king said, Is any one of the princes standing outside in the court? Yes, O king! was answered, The noble Haman is in the court. Haman had come in at that very moment to ask the king that Mordecai might be put to death. The king sent word to Haman to come in, and as soon as he entered said to him, What shall be done to any man whom the king wishes especially to honour? Now Haman thought within himself, There is no man whom the king will wish to honour more than myself, Then he said, The man whom the king wishes especially to honour, Let him be dressed in the garments of the king, And let him sit on the horse that the king rides upon, And let the royal crown be set upon his head. Let him ride through the main street of the city, And let one of the nobles call out before him. This is the man whom the king delights to honour. Then the king said to Haman, Make haste and do all this that you have said, To Mordecai the Jew, who sits in the king's gate, See that nothing is left out of what you have spoken. Haman was astonished, and was cut to the heart, But he did not dare speak as he felt. He obeyed the king's command, Sent for the king's horses, his robes, and his crown, Dressed Mordecai like a king, Mounted him on the horse, and went before him through the streets of Shushan calling aloud, This is the man whom the king delights to honour. And after that, Haman hid his anger and his sorrow of heart, and sat down to the feast in the queen's palace. He had not said a word to the king of having Mordecai hanged upon the gallows, which he had set up the day before. King Ahazurus knew very well that his queen had still some favour to ask, and at the feast he said to her, What do you wish, Queen Esther? Tell me, and I will give it to you, Even though it be half of my kingdom. Then Esther saw that her time had come. She said to the king, If I have found favour in your sight, O king, and if it please you, let my life be given me, and the lives of my people, for we have been sold, I, and all my people, to be destroyed, to be slain, and to perish. If only we had been sold as slaves, I would have said nothing, but we are to be slain, in order to please our enemy. Then the king said, Who is this man, and where is he, that dared to do this thing? The enemy, said Queen Esther, Is this wicked Haman? As the king heard this he was so angry that he rose up from the table and walked out into the garden. In a moment he came back and saw Haman fallen down upon his face begging the queen to spare his life. The king looked at him in anger, and the servants at once covered Haman's face, as one doomed to death. One of the officers standing near said, There stands the gallows seventy-five feet high which Haman set up yesterday for Mordecai to be hanged upon it. Hang Haman himself on it commanded the king, so Haman died upon the very gallows that he had made for Mordecai. And on that day the king gave Haman's place to Mordecai, and set him over the princes. He gave to Mordecai his own ring, with its seal, and all the family of Haman his sons were put to death for their father's evil doing, according to the cruel usage of those times. The law for the killing of the Jews on the thirteenth day of the twelfth month had been made and sent abroad, and no law of the Persians could be changed. But though this law could not be taken back, another law was made that the Jews could defend themselves against any who might try to do them harm. When the day came most of their enemies feared to harm the Jews, for now they were under the care of the king, and Mordecai, a Jew, stood next to the king, and such of their enemies as tried to kill them on that day, were soon destroyed. So everywhere, instead of sorrow and death, on the thirteenth day of the twelfth month, the Jews had joy and gladness. And on the day following the thirteenth day of the twelfth month, the Jews kept a feast of thanksgiving to God for his mercy in saving them from their enemies. The same feast was kept on that day every year after, and is still kept among the Jews in all lands, and is called the feast of Purim. On that feast, the story of Esther, the beautiful queen, is read by all the Jewish people. End of Story 15 Story 16 of Herobot'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. Herobot's Story of the Bible by Jesse Lyman Herobot, Part 5. The Scribe Who Wrote the Old Testament, Ezra 7.1-10.44 From the court of the great king, Eshushan, we turn once more to the Jews at Jerusalem and in Judea. For a long time after the first company came to the land under Zerobabel, C. Story 104, very few Jews from other countries joined them. The Jews in Judea were poor and discouraged. Many of them had borrowed money which they could not pay and had been sold as slaves to richer Jews. Around them on every side were their enemies, the idle worshiping people in the land and the Samaritans on the north. These enemies robbed them of their crops in the field, and they also constantly sent evil and false reports of them to the Persian governors. Many of the men of Israel had married women of the land, not of the Israelite race, and their children were growing up half-heathen and half-Jewish, unable to talk in the language of their fathers and knowing nothing of the true God. Ninety years after the Jews had come back to the land, Jerusalem was still a small town, with many of its old houses still in ruins and no wall around it. In those times no city could be safe from its enemies without a wall, so that Jerusalem lay helpless against bands of robbers who came up from the desert and carried away nearly all that the people could earn. Just at the time when the land was in the deepest need, God raised up two men to help his people. These two men were Ezra and Nehemiah. Through Ezra the people of Judah were led back to their God, to worship him, to serve him, and especially to love God's book as they had never loved it before. And about the same time Nehemiah gave new hope and courage and strength to the people by helping them to build a wall around Jerusalem. The work of these two men brought to Judea peace and plenty and led many Jews from other lands to their own country. Ezra was a priest living in the city of Babylon, though he had sprung from the family of Aaron, the first priest. He was also a prophet through whom God spoke to his people. But above all, Ezra was a lover of God's book in a time when the book of the Lord was almost forgotten. See all the books of what we call the Old Testament had been written for a long time. But in those days there were no printed books. Each copy was written separately with a pen. And as the labor was great, there were very few copies of the different books of the Bible. And these copies were in different places. One book of the Bible was in one place, another book was in another place. No one man in those times before Ezra had ever owned or had ever seen the whole of the Old Testament in one book or set of books. Ezra began to seek everywhere among the Jews for copies of these different books. Whenever he found one he wrote it out and kept the copy and also led other men to copy the books as they found them. At last Ezra had copies written of all the books in the Old Testament except the very latest books. They were written very nearly as we have them now except that his copies were all in Hebrew, the language spoken by the men who wrote most of the Old Testament. Ezra put all these different books together making one book out of many books. This great book was written on parchment or sheepskin in long rolls as in old times all books were written. When the book was finished it was called the Book of the Law because it contained God's law for his people as given through Moses and Samuel and David and Isaiah and all the other prophets. When Ezra had finished writing this Book of the Law he went on a long journey through Babylon to Judea taking with him the rolls of the book. With Ezra went a company of men whom he had taught to love the law, to write copies of it, to read it, and to teach it to others. These men who gave their lives to studying and copying and teaching the law were called scribes, a word which means writers. Ezra was the first and the greatest of these scribes but from his time there were many scribes among the Jews, both in Judea and in all other lands. For wherever the Jews lived they began to read the Bible and to love it. The time came, soon after Ezra's day, when in every place where the Jews met to worship at least one copy of all the books in the Old Testament was kept, so that there was no more danger that the Bible or any part of it would be lost. You remember that there was only one temple for all the Jews in the world and only one altar. Upon this one altar and there alone was offered the sacrifice every day. But the Jews in distant places needed to meet together for worship and there grew up among the Jews everywhere what was called the synagogue, a word which means coming together. At first they met in a room but afterward they built houses for the synagogues much like our churches. Some of these synagogues were large and beautiful and in them the people met every week to worship God, to sing the psalms, to hear the law and the prophets read, and to talk together about what they had heard. It was something like a prayer meeting for any Jew who wished to speak in the meeting could do so. The men sat on mats laid on the floor. The rulers of the synagogue were on seats raised up above the rest. The women were in a gallery on one side covered with a lattice work so that they could see and hear but could not be seen. And on the end of the room nearest to Jerusalem there was a large box or chest called the Ark, within which were kept the copies of the books of the Old Testament. Thus through the synagogue all Jews in the world listened to the reading of the Old Testament until very many of them knew every word of it by heart. All this came to pass from Ezra's work in copying and teaching the word of the Lord. And Ezra wrought another work almost as great as that of giving the Bible to the world. He taught the Jewish people first in Israel and then in other lands that they were the people of God and that they must live apart from other nations. If they had gone on marrying women of other races who worshiped other gods after a time there would have been no Jews and no worshipers of God. Ezra made some of them give up their wives of other nations and he taught the Jews to be a people by themselves, keeping away from those who worshiped idols even though they lived among them. Thus Ezra led the Jews to look upon themselves as a holy people given up to the service of God and he taught them to live apart from other nations with their own customs and ways of living and very exact in obeying the law of God in the books given by Moses, even in some things that would seem small and not important. They were to be trained age after age in the service and worship of God. It was God's will that the Jews should be separate from other peoples and very strict in keeping their law until the time should come for them to go out and preach the gospel to all the world. The Jews even now in our time continued to keep many of the rules that were given to their fathers long ago by Ezra. Though next to Moses, Ezra had greater power over the Jews than any other prophet or teacher. End of Story 16. Story number 17 of Halbot'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. Halbot's Story of the Bible by Jesse Lyman Halbot, Part 5. The Noble Man Who Built the Wall of Jerusalem. Nehemiah Chapter 1, Verse 1 to Verse 73 of Chapter 7. While the good scribe Ezra was at work finding the books of the Bible and copying them and teaching them, another great man was helping God's people in another way. This man was Nehemiah. He was a noble man of high rank at the court of the Great King Atazaxis. Atazaxis reigned after Ahasuerus, of whom we read in the Story of the Beautiful Queen Esther. Story 106. Nehemiah was a cup bearer to the king of Pasha, Ashushan. It was his office to take charge of all the wine that was used at the king's table. To pour it out and hand the cup to the king. This was an important office, for he saw the king every day at his meals, and could speak with him as very few of even the highest princes could speak. Then, too, the life of the king was in his hands. For if he were an enemy, he could have allowed poison to be put into the wine to kill the king. So the cup bearer was always a man whom the king could trust as his friend. Nehemiah was a Jew, and like all the Jews, felt a great love for Jerusalem. At one time, a Jew named Hanani, and certain of his friends, who had come from Jerusalem, visited Nehemiah. Nehemiah asked them, how are the Jews in Jerusalem doing? How does the city look? And they answered, the people who are living in the land of Judea are very poor, and are looked down upon by all around them. The wall of Jerusalem is broken down, and its gates have been burned with fire. When Nehemiah heard this, he was filled with sorrow for his city and his people. After the Jews left him, he sat down for days and would eat nothing. He fasted and wept and prayed. He said, O Lord God of heaven, the great God who keeps his promises to those who love him and do his will. Here, O Lord, my prayer for the people of Israel, thy silence, we have done very wickedly, O Lord, and because of our sins, thou hast scattered us among the nations. Now, O Lord, give me grace this day in the sight of this man, the king of Persia, and may the king help me to do good and to help my people in the land of Israel. A few days after this, Nehemiah was standing beside the king's table, while the king and queen were seated at their meal. As he poured out the wine, the king saw that his face was sad, which was not usual, for Nehemiah was of cheerful spirits and generally showed a happy face. The king said to him, Nehemiah, why do you look so sad? You do not seem to be sick. I am sure that there is something that gives you trouble. What is it? Tell me. Then Nehemiah was afraid that the king might be displeased with him. What he said, let the king live forever. Why should not my face be sad? When the city where my fathers are buried lies waste, with its walls broken down and its gates burned with fire. The king said, do you wish to ask of me any favor? Tell me what I can do to help you. Then Nehemiah lifted up a silent prayer to God and said, may it please the king. I would be glad if you would send me to Jerusalem in the land of Judah, with an order to build the walls. The king said, how long will the journey be, and when will you come back? Nehemiah fixed upon a time and told the king how long it would be, and he asked also that he might have letters to the men who ruled the different provinces through which he would pass, for them to give him a safe journey, and also a letter to the keeper of the king's forest, to give him wood for the beams of a house which he wished to build, and for repairing the temple and for building the wall. The king was kind to Nehemiah, and he gave him all that he asked. Nehemiah, with a company of horsemen and many friends, made the long journey of almost a thousand miles to Jerusalem. All the people were glad to have a visit from a man of such high rank, and the whole city rejoiced at his coming. But Nehemiah was distressed as she saw how poor and mean and helpless the city lay. One night, without telling any of the men in the city, his purpose, he rose up with a few of his friends, and by the light of the moon rode on his horse around the city. There he saw in how many places the walls were mere heaps of rints, and gates were broken down and burned. He found great heaps of ashes and parts of stone, so that in some places his horse could not walk over them. The next day he called together the rulers of the city and the chief priests, and he said to them, You see how poor and helpless the city lies, without walls or gates, and open to all its enemies. Come, let us build the wall of Jerusalem, so that no longer other people may look upon us with contempt. Then he told them how God had heard his prayer and had made the king friendly, and had sent gifts to help them. Then the people and the rulers said, Let us rise up and build the wall. So at once they began the work. Each family in Jerusalem agreed to build a part of the wall. The high priests said that he would build one of the gates, and the wall beside it to a certain tower. Some of the rich men built a long space, and others did very little, and some would do nothing.  One man and his daughters hired workers to build. The goldsmiths built some, and so did the apothecaries, the men who sold medicines, and the merchants built a part. Almost all the men of the city and some of the women took part in the building, for the people had a mind to work. Soon the news went abroad through Judea and the lands around, that the walls of Jerusalem were rising from their ruins. There were many who were far from pleased as they had this, for they hated the Jews and their God, and they did not wish to see Jerusalem strong as it had been of old. The leader of these enemies was a man named Sanbalat, who came from Samaria, where all the people were jealous of the Jews. What are these Fibu Jews doing, said Sanbalat? Do they intend to make their city strong? Will they pile up stones out of the rubbish of the burned city? And his servant Tobiah was with him saying, why, if a fork should go up, he could break down their little wall. The Arabians from the desert, and the Philistines from Ashdod on the plain, and the Ammonites from the east of Jordan, saw that if the wall should be built, they could no more rub and plunder the city. They tried to form an army to come against the city and stop building. But Nehemiah prayed to God for help, and he chose what men who should go around the wall and look out for the coming of the enemies. Half of Nehemiah's men walked on the wall, and the other half held the bulls and spears and armor of the workers. And in some places, a man would hold a spear in one hand, while he spread mortar with the other. At other places, men walked with their swords hanging at one side, ready for the fight any moment. Nehemiah rode on his horse around the wall, and his servant walked beside him with a trumpet. He said, the walk is large, and you are apart from each other. Whenever you hear the sound of the trumpet, leave your walk, take your arms, and go to the place where it sounds, and there the Lord will fight for us. But the enemies were not strong enough to fight the Jews. So Sandballat and Tobiah, and another of their leaders named Geshem, sent a letter to Nehemiah saying, come and meet us in one of the villages on the plain near the Great Sea, and let us talk over this matter. Now Nehemiah knew that to go to this place, and then come back again to Jerusalem would take more than a week. And he sent Ansathos, I am doing a great work, and I cannot come down. Why should the work stop while I leave it to come down and talk with you? Over and over again they sent for Nehemiah, but he refused to come. Finally, Sandballat set a letter with this message. It is told among all the people, and Geshem says it's a fact, that you are building this city to rebel against the king of Persia, and to set up a kingdom of your own. Come now and let us talk with you, or trouble may come to you. Nehemiah wrote back, you know very well, that there is no truth in all the stories. You have made them up yourselves. Some of the Jews in the city were friendly to these enemies outside, and these men tried to frighten Nehemiah. One of them made believe that he was a prophet, and set in Nehemiah.  Should such a man as I am run away and hide himself, said Nehemiah, no, I will not go. So, earnestly, did the men of Judah work, that in 52 days, after the work was begun, it was finished, and the gates were hung, and guards were placed with them, so that no enemies might enter. Thus Jerusalem began to rise from its weakness and helplessness, and once more, to be a strong city. End of story number 17. Chapter 8, verse 1 to chapter 13, verse 31. Malachi, chapter 1, verse 1 to chapter 4, verse 6. When the wall of Jerusalem was finished, Nehemiah called together all the Jews from the villages and cities in the land to meet in Jerusalem. They met a great company with their wives and children in an open place before the temple. Ezra, the good priest and scribe who had wrote so great a work in bringing together and writing the books of the Old Testament, was in the city at that time. They asked Ezra to bring the book and to read the law of the Lord to the people. He came, carrying with him the great roles upon which the law was written, and stood upon a pulpit which they had built where all the people could see him. And with Ezra were men whom he had taught in the law so that they could teach it to others. When Ezra stood up in the pulpit, above the heads of the people, and unrolled the scroll, all the people who had been sitting upon the ground rose up while Ezra gave thanks to the Lord, who had given to them his law. Then the people said, ah, men, with a loud voice, and they bowed until their heads touched the ground and worshiped. Then Ezra began to read in the book aloud so that as many people as possible could hear. But as the people did not all understand the Old Hebrew tongue in which the book was written, men were chosen to stand by Ezra, and as he read each sentence, these men explained it to the people while all the people stood listening. So, as Ezra read, these men told its meaning so that the people could understand the word of the Lord. Many of the people had never heard God's law read before, and they wept as they listened to it. But Nehemiah, who was there as the ruler, said to them, this day is holy to the Lord. Do not mourn, nor weep, but rather be glad and eat and drink and send gifts of food to those who are in need, for you are strong in the Lord and should be joyful. And the Levites quieted the people, saying, hold your peace for the day is holy. Do not weep, but be glad in the Lord. And all the people went home to feast and to be glad because they could hear and understand the words of God's law. After this another great meeting was held, and the people confessed their sins before God, and the sins of their fathers in forsaking God's law and in not doing His will. And all the people made a solemn promise that they would keep God's law and would do His will, that they would be God's people and no more give their sons to marry women who did not worship the Lord, that they would keep holy God's day, the Sabbath, and they would give to the Lord's house for all the offerings. And they wrote the promise on a rule, and all the princes and rulers and priests signed it and placed their seals upon it. Nehemiah had now finished the work for which he had made the long journey to Jerusalem. He went back to Shushan and stood once more in his place, pouring the wine at the king's table. But after some years he came again to Jerusalem. He found that not all the people had fulfilled their promises to serve the Lord, and especially that the Sabbath day was not kept as it should be. People were treading wine presses and bringing into the city loads of grain and selling wine and grapes and figs on the Sabbath day. And men from the city of Tyre, beside the Great Sea, who were not worshippers of the Lord, brought in fish and sold them on the Sabbath. When Nehemiah saw all these evils, he was greatly displaced and said to the rulers of the city, Why do you allow these evil things to be done and the Sabbath day to be broken? Were not these the very things that made God angry with our fathers so that he let this city be destroyed?  Then Nehemiah gave orders that before the sunset, on the evening before the Sabbath, the gates of the city should be shut and not opened until the morning after the Sabbath was over. The men came with their things to be sold and waited outside for the gates to be opened. Nehemiah looked over the wall and saw them and said to them, What are you doing here? If you come here again on the Sabbath, I will put you in prison. Then they went away and came no more upon the holy day. By such strong acts as these, Nehemiah led the people to a more faithful service of the Lord. And after this, Jerusalem grew large and strong and was full of people. And Jews from other lands began to come to live in the land until it was once more filled with cities and towns and the hills over all the land were covered with vineyards and the plains were waving with fields of grain. A little after the time of Ezra and Nehemiah, Malachi arose as the last of the prophets of the Old Testament. Thus saved the Lord. Behold, I will send my messenger and he shall prepare the way before me. And the Lord shall suddenly come to his temple. Behold, he cometh, saith the Lord. Behold, I will send you Elijah, the prophet, before the great day of the Lord shall come. And he shall turn the heart of the fathers to the children and the heart of the children to their fathers. And with these words, the Old Testament ends.


Okay, so the next talk will be tour the PostgreSQL data types by Andreas Chabon, and he will introduce himself, I guess. So, can you hear me? Does that work? Okay, welcome. Yeah, let's talk about some of the Postgres data types we have. Short note about myself, my name is Andreas. I work for a company called Pivotal, before that I worked for EMC, and Pivotal is actually a subsidiary of EMC, so I moved between EMC and Pivotal and so on. And I work on Green Plum and Postgres projects. Okay, how many of you are using Postgres? Okay, other way around, how many of you have never used Postgres? That's good. Anyone knows more than like 10 data types in Postgres? Okay, that's like 10 hands, that's good. This talk is for you. Anyone who is here to get a seat for Simon's talk? Unfortunately, this talk is cancelled, I'm sorry. Okay, first question, how many data types do we have in Postgres? I take answers, 40, 63, any more? Only one. Only one. That must be Vatsha. Yeah, if I look into PG type, in my database I get 361 right now. Unfortunately, this also includes any table types we have, because they go into the same table. And it includes any references to another type here, so if I include this one, I get 82 data types in my database. Still a lot. That's a long list. We don't want to look at all of them, because about half of them we don't care like what's the TS range or what's the SQL identifier and so on. But we have some very interesting data types here, we want to have a look. Luckily, the Postgres documentation, which by the way is very good, provides a list of data types we want to use. And this table in Postgres 9.6 comes with 41 data types. Okay, well, we asked this question, how many data types are you using? Most of you are not even using 10. Let's see what we have for you. So we have text types in Postgres, we have numeric types, dates and so on. We even have some special types handling JSON or Boolean binary data. And we start with text types. How many do we have? Any idea? Two, which is? Well, in the end, we have varchar, we have charm, we have text, but internally they are all the same. It's one data type internally, it's just external representation. And by the way, unlike some other databases, all text types in Postgres are case-sensitive. So if you do like and you want to have a case-sensitive complication, a comparison you need to use, I like, not like. If you use varchar or text, you can store strings up to roughly one gigabyte of text. If you specify a char without any length specification, it's actually just one byte. Probably not what you want to do. So with char, you want to specify your length. With varchar, it's optional and it does not include any white spaces at the end. The other interesting case, if you look at the white spaces at all, I have five white spaces here and I cast them to varchar and char five and ten and one. And you see the lengths here, if I have my varchar five and my varchar ten, they all end up with five white spaces here. If I have casted it to char, I end up having ten char's because in char, if I specify a length, Postgres will actually fill up white spaces under the specified length. Okay, how does Postgres store any text type or by that any variable length type? Back in the good old days, we only could store any string up to eight kilobyte roughly. We have so-called pages and every page is eight kilobyte size and Postgres aims to store about four rows minimum in every page. So it's roughly 2k we can have in the tables. Also define some many columns we can have in a table. It's one and a half thousand columns per table because every row has to fit in a page. So how can we store a gigabyte of text in eight kilobyte? Well, we can try to compress it. We can increase block size to a gigabyte. Or we can just go and have text be a pointer into yet another table, maybe just store multiple rows for every text. That's what Postgres is doing. It's totally transparent for you, but it means you have two tables now. If you do a vacuum in a database, occasionally you see it's not only vacuuming your table, but it's also vacuum so-called toast tables. You see them flowing by if you want to vacuum them both. Because then you have to increase the page size to one gigabyte. Here you have a pointer into yet another table which is also using eight kilobyte pages, but it's using multiple rows until you have your gigabyte or whatever data you want to store. Which also means you can have viable lengths for Java, Java, or Numeric and so on. And Postgres is handling this for us. So what about this VATSHA or CHAR 255? Whoever run into such a table definition having a VATSHA 255, about 20, why? Any ideas? I haven't heard ORC before. I have heard Informix before. I have heard SQL Server before, because back in the 90s they only could store 255 bytes in one column. So this problem doesn't apply to Postgres. If you run into a table with CHAR or VATSHA 255, go and ask the question why someone defined a table this way. It probably doesn't make sense. It might come from that 255 is actually 2 to the power of 8 minus 1, or 8 bits. And MySQL has an interesting limit. So if you have an index key, it can be 3 times 255 bytes. Not more. Not like in Postgres where you can have a gigabyte for index. They can only store 3 bytes with EF8 and this limits them to 765 bytes. Yet another reason why they have 255 here. Okay, let's move on to Numeric types. How many do we have here? So we have integers, we have floating points and we have numeric. This can be kind of confusing because if you come from ORC, most people on ORC use numeric to store any kind of integers and such, but you don't want to do this in Postgres, most likely you want to have an integer, not a numeric type. On the other hand, I've seen customers storing any kind of money data in a floating point. Which is kind of funny if you wanted an auditing later on because floating point is always rounded up or down. It's never exact. Okay, we have small end which can store 2 bytes, which requires 2 bytes and can go from minus 32k to plus 32k. Most likely you have an integer which is minus 2 billion up to 2 plus billion, so it's always a signed integer.  If you have tables which makes a small end and you have multiple small end columns, you want to look how you align the table. Like if you have small end integer, small end integer, you would expect it's 12 bytes, it's actually 16 bytes, because it's always aligned to 4. You can start an integer on 2 bytes. So Postgres is actually losing 2 bytes here and losing 2 bytes here.  If you have a million rows, okay, it's a few megabytes. If you have a billion rows, we're talking gigabytes here. Then we have floating point numbers. So we have wheel, it's 4 bytes, which has a precision up to 6 digits. And we have double precision which goes up to 15 digits. It always means it's a rounded number. It can store almost everything as you can see here. So we have 6 digits here. And, okay, it shows us the correct number here. Once I add one more digit here, you see it's rounded. This will really hurt you, so I have 7 digits here, and it gives me back a totally different number. If you try to store any kind of money or such in a floating point number, your sides will be worn. Don't do this. The same for double precision here, so 15 digits, it's okay. It gives me back the same number. Once I go to 16 digits, it starts rounding my number. And same problem, I have 60 digits here. It starts giving me back another number. It's rounded up here. So what can I do if I have to store something like money or such? I have to use numeric. Numeric has a precision up to... Oh, let me go back, sorry. We also have a money type in Postgres. You don't want to use this one at all. There are like two users in the world who use this in total. I think it's two or three times that it was called deprecated. It was resurrected, patched again. It uses 8 bytes of storage, and it can store up to 92 quadrillion. In comparization, it's still 4 digits less than we have the current US debt. So you still have a way to go. If you want to store money, you really want to use numeric. Numeric data type, you specify your precision by saying, okay, that's my total number of digits I have, and that's my number of digits I have after the decimal point. So I have 10 here. You can see 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. It's a bit confusing, but you get around it. On the other hand, numeric is handled in software, so there's no hardware support like if you have integers. Integer can be handled in a CPU or just done. It's not the same for numeric, so it will be slower. But you get your precision. Okay, anyone knows this guy? No? Not in person? Yeah, I think so. It's been a while, anyone knows this puzzle? How many, or how much is it? Minus 1. Yes, so if you try this with the double precision here, 2 to the power of 64 minus 1, double precision gives us this very inaccurate number. If you try the same one with numeric, 2 to the power of 64 using numeric, we get a very exact number here, and it's still only using 20 digits. We have 980 left. So if you ever find a use case for all of the thousand digits here, please let me know. Okay, let's move on. We also have sequences. In other databases, you might tell about it. It's called auto increment or so on. If you define a column in Postgres as here, Postgres will automatically create a sequence for you and set it as a default value for this column. It will also attach this sequence to the tables. If you drop a table, it will also drop a sequence for you. It doesn't have to be, it can be. Sequences by default start with 1 and increase by 1, but you can change this. So you can have a sequence which does steps of 5 or goes backwards or starts with a thousand, whatever. Some people use this if they want to count values in a query. They just create a sequence in the query in a transaction, count something and then drop it. Works this way. A sequence is not transactional. So anytime you receive a value from a sequence, it's gone. It's never rolled back. So you will have gaps. Like if you roll back a query and you received 50 or 100 sequence values, they are gone. There are a few functions for sequences like you can use current wall to get a current value, but it will only work if you already used or consumed the value in your current session. If not, this will return an error. You cannot custom the next value of a sequence. So this will just increase by 1 and give you back the value. And then you can use current wall to retrieve the same value over and over again. So you can set a sequence to a new value by just using set wall. And some people like to get rid of the gaps they have in their tables on the sequence, like when they had to roll back a huge transaction and they have a huge big gap. You can easily do this by saying, okay, set wall and get my maximum value from my sequence. Never relay on a sequence name. Usually it's sequence, table, ID, and a prefix of sequence, but it doesn't have to be. There's a function which you can use to get a sequence. You specify a table name and a column name and Postgres will return the sequence name to you. And then you can go and say, select star for my sequence, because it acts like a table. And it gives you all kind of information like what's my current value, can my sequence actually cycle over, like if I have a small serial number, I can go up to 32K. What happens if I go over this? By default, Postgres will just reject it. You can change it and say, okay, I want to go over and start from the beginning. All right, any point if you have questions, please just ask. Where's my mic? Can you please repeat the question? Yes, I will do. PG gets a sequence, gets you the old sequence. The old sequence, yeah. If you want to see which sequence is used, you have to look at the default value for this column. So you have two things. You have a sequence, you need a sequence name, and you have a default value. And in Postgres, if you actually specify something for this ID column here, it will not use the sequence. So if you want to see which sequence is used in a column, you have to look at a default value. You can also go and have a sequence used in several tables, like a global counter. This works as well. So it's not limited to one table. Okay, what's this? Any ideas? How did you figure out this one? 90 degrees south latitude. It's south pole. Okay, what's the time there? Right now. That's a valid answer, yes. All of them. Actually, that's warm. UTC is warm. Okay, let's find out. We have several date and date times and interval data types in Postgres. So we have a time stamp with and without time zone. Usually people use the shortcuts here, time stamp and time stamp, TZ. We have a time with and without time zone. Obviously without date. And we have a date, obviously without time zone because it's just a date. Never go and use a watcher or a chart to store a time stamp. Please don't. If you use a time zone, a time stamp with a time zone, Postgres will actually handle any kind of summer time, winter time changes for you. I'll show you a few examples. It will not handle any leap seconds for you because the operating system has no idea about leap seconds. It's not stored anywhere. It happens occasionally like last New Year's Eve, but it's not stored anywhere. Okay, here we have a simple time stamp. Actually I use a date here and cast it to a time stamp so you see I get back my midnight value for the same day. I even can use this silly format they used in the United States by having a month's first and then my day, Postgres can do it. Now I use time stamp TZ here with a time zone. I specify a time zone UTC and you see there's difference. First of all I use PM here and I specified it's V25PM and it ends up giving me back 525. That's because my time is always returned in the time zone I have on my database server. Not where your client is, but the time zone your database server is running in. So if you want to have less trouble, set all of your database servers to the same time zone. If not, it might be confusing. Right here, it's two hours difference. You can see it's August, it's summer time. I get two hours difference here. Here I use the date in winter, in December. You see it's one hour difference so Postgres gets the daytime saving right. This works with any time zone name we have in our operating system database. I can just specify a time zone here by name and it knows how to handle any daytime saving for this time zone including all the changes they have like Russia a few years went to summer time and never went back and ever since then they just stay on summer time all year which is nice except they have no summer. If you just specify a number for a time zone obviously there cannot be any daylight saving time handling. So if I want to return a date in a specific time zone like this here it's always returned in my own time zone where my server is running I can also set my new time zone here by just saying set time zone then it's returned in a time zone I specified here. Postgres is doing all the math for us we don't have to do it. It's very handy. But it's quite complicated to set a time zone every time so I can just say give me a date back in this specific time zone this can be part of the query it couldn't be any easier. I can also do math with dates and times like here I have two timestamps and I get back the difference which is an interval now I have four days difference between these two timestamps or like here I just turn them around I get minus three days because this one is smaller than this one. Works with times as well so it's not only days but it works with times I can have my difference in days and times between two timestamps. If you want to know how long back someone inserted something in the database just do a timestamp minus now now minus timestamp and you get back time, science, when this happened. Okay another interesting use case here I have February 28 and I want to know if the date was a leap if the year was a leap year or not. I just add an interval of one day if it's a leap year I get back February 29 if it's not a leap year I get back first of March it was it was you can divide it by 400 it was Are you questioning Postgres? Get out Okay we have 2001 1st of January minus 1st of January so I get back 360 days which means 2000's a leap year again I use 2002 1st of January minus 2001 1st of January I get back 365 so 2001 is not a leap year Okay coming back to this question what time at South Pole? South Pole is Scott Ammons station actually belongs to the US but it's supplied from New Zealand so for easiness they just use the same time zone as New Zealand which is NZ so by now we learn how to carry time for New Zealand so we select now at time zone New Zealand but this is well it's not good enough at least for us because South Pole got its own time zone so we can actually query select now at time zone Antarctica South Pole and if you look into the operating system database you see that we have like 9 or 10 different time zones defined under Antarctica so every station down there got its own time zone usually aligned to which country is operating this station there was a question the question was if I can use this construct a table creation time to show a date always in the time zone no I'm not sure but I don't think so because Postgres is storing times in UTC it's always a question of transformation once you retrieve a value but feel free to try it out okay let's move on to some hipster stuff here well XML is no longer a hipster we have chosen for this now so it's actually something from the 90s where you could define a document and describe a document in a certain structure and Postgres allows you if you have compiled in an XML library to store XML native in your database and validate if it's a valid structure or not it will validate a syntax like if you're opening and closing text are correct it will not validate any schema definition DDT you can store a whole document or you can just store fragments of an XML document it works both ways I'll show you in a moment unlike in the standard Postgres is always assuming the encoding you specified in your client encoding these days most people use UTF-8 not all, not everyone so it's always assuming that the document you transfer is encoded in the same client encoding you have specified for your database except if your client encoding is actually SQL ASCII then it's using whatever specified in the XML document and you cannot search in XML data types you can just retrieve some but not search in them I have a few examples for you we use XML path to store a document here we have a full document using XML and you see it returns my full document here I can also store just a part of the XML document and if I want to retrieve it and use it somewhere else I can use XML serialize have my XML content here and I get back a string which I can use in my application but now for the real hipster stuff we have JSON in Postgres as well it's used in many web frameworks these days I think in the end of things you have which transfers data it's using JSON all of this is no SQL database like Cassandra and MongoDB and so on is JSON native and Postgres can do it as well, why not we have two different data types here we have JSON B which will decompress whatever you store in it and use the path structure and we have the order JSON data type which will store whatever you write into it and will decompress and validate it once you retrieve it and unlike no SQL databases everything you do with JSON and JSON B in Postgres is transactional so if you roll it back it's gone very simple example here so I have my string here because I have JSON I need to quote it here for JSON and just cast it to my JSON type so I get my data type back here I can also have arrays so I specify my array here the number of values full array back with all of my types I can also use key value pairs which is what JSON databases or no SQL databases do usually key value, key value, key value and I get my result back as a key value pair here okay that's easy but I can also look into my structure so I can select let's say my key number two no it's not number two my key two which belongs to the string number two so I only retrieve this element out of my JSON data type or I want to compare whatever I have in my database is this value in my JSON string I have in my database of course I can use this operator and just look this is here yes it returns true or I can see if this value or this key is in my data somewhere df yes it's included here I get my true back I can also look up a key if a key is in my data or not because we know JSON is all about not having a structure of my data so I don't really know what is in my data if I want to figure out if there's something if there's a specific key or a specific value in my data I have to look it up I have to verify it if I have a structure database like Postgres I know what columns I have in my table it doesn't work this way in no secret good one of the more advanced features we have we can actually use an index on JSON b types I can actually take some on a picture and send it to get hash please so we have a gin index which is generalized inverted index in Postgres but it only works on JSON b not on JSON what I can do can create an index on my table specify my values I want to index here usually I just access this name column here using gin and then whenever I query my table here my name field in it it will use this index to speed up my query which other database, no secret database can use an index on JSON good let's move on we have a few more so we have a real boolean type in Postgres if you have anything which is supposed to store two faults please use a boolean not a small end I've seen this before a few times so we have a so called boolean in a table and we want to migrate it and we end up with values like 257 what does it mean for a boolean you can use values like 30 or yes or no to store the values but Postgres will always return either true or false one of these two and of course now if you have it so one of the more interesting use cases here I can have a partial index on a boolean column well I can have a partial index on any column but here it makes sense so let's say I have a lock table hundreds of millions of entries occasionally there is an error I have a boolean flag here so most likely I am not interested in 99% where there is no error but I really want to find all my errors very quickly so I define myself an index on I forgot my index definition Microsoft Power Point has encountered a problem I'm sorry company I'm sorry ok I just generate my data here I have like 2% error values in my table and if I have a conditional index on my column I can use this index to find out here is my index where error is true I can use this index to find all the values where my error is true and in comparison let's look at the size of this index my full index on this table is roughly 3000 pages and my conditional index is 57 pages and out of this roughly 3000 pages 2700 I will never ever use because it's my 98% of non errors I can use this one good we also have a bit data type it makes sense if you want to store config values like 2 folds and don't want to spend 1 boolean per column so you can have multiple bits in one field so we have bit which is a fixed length and we have bit varying which is a up to this length you specify here if you don't specify your length it's always a bit 1 it's like a boolean and you can use all the logical operators we have like and or and so on on this values so I have a table with my bit field here and I can actually use a bit operator in Postgres to specify bits so I don't have to do the math and use my decimal value I can have Postgres storing this for me like here I have my data and I use an end obviously I only get back the bits where in both values in my data in my question here bits are set if I have an or bits are set in data or set in my query I can have XOR I can do all the bit operations we know from C like I shift to left here which basically means it's multiplication by 2 you see it's 21 here I shifted it by 1 so I get 42 as result everything in a database I don't even have to pull out my data for this and I can search for specific bits in my field because that's what we do with databases we search in it so I want to find this bit and I get back my data where this bit is set obviously I get all the other ones as well but I don't care about them okay do you ever store binary data in Postgres or any databases for that matter? why are you storing binary data? images? I have to do this Postgres has a binary data type for this it's called byte A and if you just want to store binary data in text there's a problem Postgres is written in C in C a string ends with a binary 0 no bit set if you try to send this to the database you get a pass error at some point because there are string ends here all the programming languages we have like Python, Perl, Java, whatsoever they all have functions to handle binary data why not show in any samples here how you can transfer binary data in a database please look up the documentation for the programming language you have there are functions how to store and retrieve binary data from a byte A column please don't try to write your own parser I have seen this but Postgres has two different types how to present binary data the old format is escape if you set byte A output to escape you see we get escaped here but it's very hard to pass because this can be anything from 1 to 3 or no escaped values so a while ago they changed it to hex format every value is a 2 byte hex value here actually it's a 1 byte so they all have 2 digits that's very easy to pass and it's quicker by the way we also have network address bytes 3 of them so we have INET which stores any kind of host and optional network we have CIDR which only stores a network definition and we have a MAC address field which can store in 6 bytes a MAC address so we don't want to go and use like a char or watch or anything to store IP addresses because then you have to deal with IPv4 and IPv6 addresses Postgres can do it for you we have the right data types any kind of log parsing you do any kind of network data you want to store please use one of these types or like here I store an IP address in INET or I just store an IP address without a network definition so I get back my slash 32 and here I just store part of a network and Postgres will make an assumption what kind of network I'm looking for so it's a 24 8 bit for the network and again if you do log parsing or such I can use an index on such a column so I have my INET table here I can create an index on it and I store a number of values here and just want to find out which of these values belong to a certain range or I can say where IDR is in my range here and you see I only get 2 out of the 3 values back I had here and the square we are supported by an index so it should be very fast that's my index thing good, last but not least we have arrays an array is not really a data type but it's a combination of types so we can store multiple different types in an array it can have any dimension it can be multi-dimensional it's very flexible, think about it like it's jason in one column before we had jason in Postgres people used array to handle this sorry so here we have a 2-dimension array my first dimension my second dimension here and if I select this as an array using the array constructor here you see I get my 2 values and in my second dimension here I can also ask Postgres how many dimensions I have so it tells me this is 2 here I can ask for any element in my area which makes it very easy to access whatever I have I just want to have this one first element here or I want to have my element 2 up to 3 so it will return these two it tells me how many dimensions I have it tells me what is my length so in this case I ask for my total length here for the first element it's 2 so I have 2 values in my array I can really loop over whatever I have in my array I can search in my array or I can say okay if this element is deaf it returns 2 because it's in my array I can prepend and append to an array there are many more operations please look up in documentation but these are the more interesting ones it's a bit confusing because prepend actually has this parameter before the array and append has it afterwards if you think about it makes sense if you think about which one it is you can create a string out of an array so if you want to use this one in your application just use array to string or you can create a table or a number of rows out of your array by just using unnest good last but not least ever created your own data type well I did we have a few options here we have a composite type we have a composition of different types we have an enum type and of course you can write your very own data type but you have to write some C code for it and you can use a few extensions we have or a few more like postures and so on let's quickly look into this one so I create my own composite type here you can see it's a type I actually store four different different data types in my type I create another type in my table it's a very simple example here so I have two different currencies I have a date and a value and I just go and store my conversation rate between euro and US dollar and for every day I can have one row in my table holding all the data together and of course I can select it it returns a row I can also just pick what I want to have out of my composite type and last but not least enum enumeration is really a list of values and you should consider if you need an enum or not because this list should never change give you a good example how many different gender values you know how many? 17? anymore? well Facebook defines if I wanted to create a gender type think again you can create a type like here as an enum I have my four different values here then again I can use this type as a data type in my table I can insert by using the values into my color column here I can also select by using the color so it really does one to end look up for me in a background good that's it for here we have a few more you've seen we have like 40 more data types we did not look into all of them but it's the overview of the most common used you will find in Postgres thank you okay so we have time for one or two quick questions please speak in the mic thank you right at the beginning you said you can lose space to alignment requirements of the columns in a table now I seem to remember that years ago the physical layout of a table was decoupled from the logical order of the columns so I thought this problem was solved wasn't it? no you have this in databases which have columnar storage but in Postgres it's just aligned the way you have it created it's all in one page one more question hi thank you for the great talk one question will it ever be possible to use indexes on arrays or use other people's primary keys as forging keys in arrays in the same way as it would be in normal database fields I think many people just moved on to JSON over arrays because it's much functionally better than in arrays and you can use all the fancy index stuff in JSON which you can in arrays well we are out of time basically anyway so thanks Andreas again thanks