This is really the fundamental issue, this word freedom, which has so many definitions, the freedom of the ancients and the modern freedom. And in reality, maybe I'm old-fashioned there, but I believe that freedom to survive, to endure, must have a content. It must be a freedom for something. It's a freedom that you define in your books. And what we have seen since 1989 is a great vacuum in that respect, including in the countries that were liberated, so to speak, from dictatorship. There has been this idea that now all of us as little free individuals, the invisible hand of the market, would save us and would give us an answer to all our issues, including the moral issues. And that is not the case.  And now, in a way, politics is coming back under different guises. When we see these horrible fundamental, I mean, extremists of the Islamic state, they are occupying the vacuum of values as are many movements around the world. And that is what is dangerous. And I think if we want to be, I mean, to get out of the dark ages to answer your question, we need to have a more positive and clear view of ourselves. Paul says we have, we don't have enough confidence. I think sometimes we have too much confidence because we don't really think about who we are. And if we are not able to define who we are, then others will do it against us and then we'll be in trouble as we are now. We have to get engaged, all of us. And particularly those of us who share these ideals of humanism and freedom, these things that we hold quite dear to ourselves, they're not going to continue, in my opinion, if we just take them for granted and just assume that things will continue, that people will have some enlightened view. And somehow it'll all work out. It'll only work out if we take active steps to do that. And I think that right now, at this stage in time, I'll speak from my own country, we have a lot of work to do. We have a huge responsibility, in my opinion, to use the leadership that we have been granted by many in the world that we have assumed. We have a responsibility to use it wisely and actively and correctly. And if we're going to do that, then we in the U.S. need to have credibility. We've lost a lot of our credibility for many reasons in the last decade or two. We need to regain it. Where is Germany going? Is Germany, will Germany stay if the conflict between the West and Western Europe and the United States is going to be heated up with Russia? Because I have the feeling that Germany is today very uncertain and very uneasy about the present development, extremely uneasy. And if you would allow me a micro perspective on the German affairs, suddenly a new party popped up in Germany, the alternative for Germany and got immediately in regional elections in Saxony and Turingia and Brandenburg, 10% even more than 10%. And that party is very much reluctant concerning European integration, especially the euro.  And this combination between being critical of European integration, especially the euro, which brought about German domination in Europe. If you would be President Obama, what would you do? What I will do, I will try to address the American nation and the world. I will try to play Pope Francis, Orbi et Orbi. And I will say something like that. First of all, I will try to create the impression that I am leading not from behind. Secondly, I will try to say to the ordinary Americans in very simple words, folks, you know what, we have reached the tipping points. I would agree with Paul, who was talking about tipping points that might be reached in the future. This was apparently a thought. I would say we are in disaster already, because the international order is unraveling and I'm very glad that Jean-Marie will try to re-energize it.  And we cannot rely upon the global governance, because it doesn't exist. The Security Council is simply blocked by the veto right. And the whole structure, the whole architecture is the left over of the Second World War. It's a long time ago. All principles have been undermined recently. Even the Westphalian state, the Yalta agreements, the Helsinki agreement and the rest. Nothing does exist. Putin was the first to cross all red lines, which I don't know where Obama had these red lines, as we know. But our well-being fellow Americans and our prosperity depends on whether we as a nation normative power with hot power, because there is another normative power, the European Union, which had no hot power, so we need to answer the challenge. And my second thought would be to reintroduce the dimension of the values into the foreign policy that everybody, especially after Iraq, I'm sorry to say, forgot about values, as a kind of, you know, some leprosy or whatever. But I will try to persuade the world who will be listening to this issue of values. When the American president says values, it looks something like regime change, something that we don't like and hate. But I would talk about humility. Because everybody understands that America is like a dark in a very small room with glass windows. And every time it wakes the tail, it breaks the windows, okay? Everybody understands it. But I would be very humble and would be addressing, you know, Americans and the world. And thirdly, I will try to formulate the idea of returning America to Europe and reviving transatlantic partnership. Without maybe words, I like the words, by the way, concept of democracies. But maybe not everybody would accept this term. And I would return to the tradition of the Marshall Plan when Americans helped the world. And without Americans, hardly, you know, the countries that were defeated Germany, Italy, Japan, hardly they would have succeeded. And in order to persuade Americans and the world, which is suspicious of the Americans, and the world does not like Americans, well, for many reasons. And I would try to do something practical. I would present the idea of giving Ukraine the status of the American LA without waiting for NATO membership. And I would find, and I can find, persuasive arguments for President Putin to agree to put the peacekeeping forces along the border of Ukraine and Russia, consisted of non-aligned nations. Essentially, the idea is that difficult things won't happen without Americans playing a leadership role. Easy things can happen. We can do certain trade rules. We can solve certain problems that are easy. But when something difficult comes along, American leadership is indispensable. It doesn't mean that America can do it all by itself. It doesn't mean that America is the policeman. But I think we've gone through a pendulum swing over the last, say, 15 years. And we reached this point where America thought, with all respect, Paul, that it could reach across the world 10,000 miles and overthrow a regime. Whether you agree that it was the right thing to do or the wrong thing to do, we did it badly. We lost respect both for the decision to do it but the fact that we did it badly. That it took years and years of slogging on the ground to end up with a time where we now have the Islamic State and we have to go back and figure out what to do. And that's 10 years after the invasion. So whatever you think of the decision to go in, whatever you think of Saddam Hussein, this was not a highly competent operation for which the United States previously had been respected. Afghanistan, Kosovo, World War II, Korean War, whatever you think, America's military power was highly respected. Deterrence was working. The Chinese, the Russians, others believed that if America threatened them in the period after Afghanistan before we invaded Iraq, Iran was rushing to make a deal with us. We lost all that and that's the terrible tragedy that has made our indispensable nation more difficult to operate. And that's the real tragedy of Iraq, is that right or wrong, it's ruined America's self-confidence and other country's confidence in America, as you mentioned. There was a time when America was able to gather together a group of democracies and deal with a mass murder in Kosovo, overthrow Milosevic, but do it by the Serbian people did it. And we prevented a genocide and we had a post-war plan and we had legitimacy. That's what indispensable nation means. It doesn't mean reaching 10,000 miles and overthrowing regime. On the other hand, and this is where the pendulum problem is, it also doesn't mean pulling out of Iraq without thinking through the consequences, putting troops into Afghanistan and pulling them out before you even finished getting them in, trying to lead from behind in Libya. I think Paul Wolfowitz was right. We didn't need to lead from behind in Libya. We didn't need to create a new theory that America, the leader of NATO, allows Britain and France to take the lead. They did a really good job in using military power to overthrow Qaddafi. But then, nothing. You needed a plan.  We need to have a peacekeeping force. We need to have a post-war plan. Then America could be the indispensable nation. Guide NATO and Libya wouldn't have been a disaster because the rationale was there. We prevented a terrible atrocity from happening but we had no plan because we were leading from behind. Britain and France were well-intentioned but they didn't have the wherewithal. So Afghanistan, Iraq, Libya and then Syria, the great abdication of American responsibility. Whatever you think of America as the indispensable nation, all those millions of refugees think we could have made a big difference in those first six months by changing the calculus of the Syrian military knowing that the United States was going to engage either through arm and train or through selected airstrikes or whatever. We had a mass murder of 200,000 people and the last time they took notes and wrote down how they tortured these people was in this continent and it was Germany that did it.  Well Assad, you know we might need him in our fight against ISIS. You know, well we might need him in this case. It could be worse, there could be chaos. It's really hard to imagine anything worse than a leader torturing and murdering and taking notes and photographing hundreds of thousands of his own citizens and the United States did nothing. So that's the other side of the pendulum and I would like to think there's something in between. I think there's something in between and that's something in between however you want to define it. That's the indispensable nation. What we see in the Middle East, the hardening of the position of Saudi Arabia, the hardening of Israel, all that points to a fundamental fact which is that there is no more the reassurance. I think it's another head of policy planning staff. I think it's Richard Haas who once coined the phrase the reluctant sheriff. When there is no sheriff, then every country in the world begins to feel it is on its own. Whether it's in Asia or whether it's in the Middle East or any other place where there's a crisis. And that's a very dangerous situation because you see that whether you want to have a successful negotiation with Iran, whether you want to have a de-escalation in the whole region of the Middle East. We need countries like Iran and Saudi Arabia to come to some accommodation because it's at the heart of the problems of the region. But it's much harder for them to come to an accommodation if they don't sense that behind them there is an enforcer who will stabilize the thing. And that I think is something that we see all around the world with the sense that the US is there but you're not sure it's there. Not only when you go to Riyadh, that's the sense you get very strongly and I think you get it sometimes in Asia. What separates me from the rest of the panel is I'm the only guy from the east and I'm the only active government official so I have to be careful otherwise... But I'm just tempted to follow up Jamie's point about the somewhere in between. First, I do hope somebody will be able to find somewhere in between because we are still relying on you and you are, in our mind, still the only superpower in the world. In a sense that from the perspective of military strength, the only superpower, from the perspective of the curiosity, getting involved in difficult conflicts, being ready to make difficult concessions and criticism and follow through to the solution. So I do still believe that the US is indispensable when it comes to the solution of difficult issues but it's only that it's no longer sufficient. I think you need cooperation with other countries. That's it. So there's not the only sheriff. We need a group of sheriffs, which is led by the United States. We are talking about 1.3 billion China, 1.2 billion India, both of which are rising. So it inevitably comes with the transition of the balance of power. It seems to me that the war in Ukraine, and this is war, this is not simply incursion of the bear into Ukrainian territory. This is the war and annexation of the territory of the European state with 45 million people. And the war already affected many lives and not only Ukrainians. Regretfully and sadly, it affected the lives of the people of Netherlands. And in Ukraine, we have not only the expansionist desire of some mediocre guy in the Kremlin, but in Ukraine we have, I don't like this clash of civilization term and I felt that Huntington was wrong, wrong, wrong. And now I'm returning back to this term clash of civilizations. In Ukraine, the Russian system, that the system of war, unfortunately, we cannot survive in a different way. We are war civilization and we liberal minority have failed to change the system. So our state still can mobilize itself on the basis of war patriotism, mobilization. It's war rhetoric, it's war tactic. And so Russia in Ukraine is fighting you folks, the West. So this is a war of the new type. And what is dangerous about everything, it's the fact that my favorite political leader of Germany and Brussels, well, by the way, who are people in Brussels? Well, I hope that Brussels does exist. People will be there. Good, we have fresh blood over there. And you know, the West pretends that nothing is happening. This is the most serious and the most dangerous thing. The West never produced the word aggression or war, pretending, you know, that, you know, the life is as usual, business as usual. And so the blurring of the border between war and peace in our time gives stimulus and triggers. Many wars like that. Because, well, if there is peace and at the same time there is war and nobody acknowledges that there is war and no punishment for crime, you can go forever. So this is the difference, you know, between our time and the previous time and our time is much more dangerous. Yeah, because this country was indeed deeply shocked by what happened on July 17. But I can assure you that just reading the newspapers, Ukraine is not part of our public discussion. I mean, what's part of the discussion is what we can do with our tomatoes and that we are not very happy with the sanctions. So it doesn't leave, you know, of course there are troubles, but there are troubles everywhere. But your troubles are not our troubles. So your idea that it's a war against the West, it's not experienced as being a war against the West. Do you think that the West needs more evidence? In favor of my argument? I'm sorry to say that. An eternal discussion, as all these degrees is about in geopolitics and international affairs, realism versus idealism. Should international affairs, geopolitics, be based on defending your own interests? Nothing more than that, which probably is now the case. Or the idealism that certain basic values are at stake and there is a kind of moral obligation to take action? Idealism is realism because ideas are fundamental. Ideas can kill and ideas can do a lot of good. And to ignore the power of ideas is extremely dangerous. And I think it is up to the idealists to integrate their ideas in the game of global politics. But the notion that there are interests that are distinct from ideas, I think every country constructs its own idea of itself. It's an imagined community to quote a famous author. And if you don't realize that, if you don't realize the power of ideas, you are not a real realist because you are looking at just a very small set of factors that influence the behavior of countries. So I don't oppose idealism and realism. Paul, I would like to ask you. The Iraq war, was that an act out of idealism or realism? I think it can underestimate the extent to which it was seen as a real danger confronting the United States after September 11th and this combination of states that were involved in supporting terrorism in Iraq was, whether it was involved, how much it was involved with al-Qaeda is a different issue, but it was clearly a state sponsor of terrorism in a rather vicious and dangerous way. And in fact, the group that now calls itself ISIS grew out of the terrorist Sarkawi who was operating in Iraq even before we went in there. I happen to agree with Jamie that an awful lot of mistakes were made when we got there. And the fact is, I think thanks to the... we finally got around to having an effective counterinsurgency strategy and therefore we got to a point where things were reasonably stable and I think it was a real mistake and a necessary mistake to leave and that's created chaos in its wake. But I would say it was much more about a sense of US national interest. The question of idealism, if you like, comes in and it comes in in Afghanistan. If you've actually gone in and removed a regime, what do you replace it with? The notion that we could have reinstalled some Sunni dictatorship in the wake of what we'd done was not a realistic alternative. So I'd say it's... even in that respect, I think what Jean-Marie said is absolutely right. Ideals are part of the real world and how people think and how they choose to govern themselves as part of the real world. Whether Iraqis could have risen to that challenge in some sense the Kurds who were almost as badly abused as everyone else rose to that challenge back in 1991 and I think when I said to some extent in Syria I think we've repeated the mistake of 1991. I don't mean that in 1991 we should have gone to Baghdad. I don't think that was ever a good idea to consider. But we allowed some 100,000, maybe 200,000, to be slaughtered by Saddam's army when we controlled everything that moved on the ground and could have stopped it. I think you might have had a sort of southern Iraq that would have been a success like northern Iraq. But I just say one other thing. It's been mentioned that a lot of here is about how countries deal with their past and when the past is as ugly and brutal as it has been in Iraq or as it now is going to be in Syria. That's an enormous challenge. South Africa is, among other things, remarkable for Mandela's wisdom and finding a way to bring the old oppressors sort of back into the tent if you like but with a form of justice. It was called Truth and Reconciliation Commissions where people, if they confessed their crimes, were more or less forgiven. That's one, South Africa is unique, each country is unique, but I think, as I said in my remarks, it's impossible to exaggerate the damage that has been done by these regimes of fear and terror. And perhaps to some extent that's an aftermath in Ukraine as well. I don't know Ukraine, but Jean-Marie is right that Ukraine, a healthy Ukraine has to be part of any solution here but frankly a healthy Ukraine is what Putin is afraid of. He didn't go into Crimea because Ukraine was failing, he went to Crimea because Ukraine had thrown out a man very much like him whom he had helped to install. And I have to disagree with you on one point. You said, we've seen the limits of military power. Unfortunately, Putin is now demonstrating the effectiveness of military power and I think that's what makes him so dangerous. I think, and I might err because I'm not so very close to, let's say, to the policymakers, but that it was the European Union that brought about the conflict in Ukraine. This kind of association and integrating the Ukraine, the Europeans were marching as if nothing happened in the 90s, they integrated the former glacis countries of the Soviet Union. Suddenly the European Union started to brass again. I just want to remind you that in the 80s if it was a dead end concerning the European integration, people spoke about the rule of sclerosis, there was no horizon of expectation anymore in the 80s and suddenly, 1989, 1990, 1991, there was a European project integrating, modernizing the former Eastern European countries. And the European Union continued with that policy concerning the Ukraine. And that made it suddenly evident that there is a problem concerning the architecture of the European Union. You are modernizing, it's a wonderful, wonderful perspective, a wonderful task, but what about policy? What about security policy? What about the consequences and your responsibility concerning Ukraine? So suddenly the Ukraine became, I would put it like that, the question of Europe. And it's a question for Russia to define itself and it is a question for Europe to define itself. And in so far it's not a problem of pragmatic policy. It's not a question of that conflict moment. It goes much, much deeper. It's a question of definition and self-definition. And in so far, while it opens again an horizon, well of expectation and, well, of fear, what is going to happen? It's not a conflict that will pass by. It is something which goes very, very deep. And in so far, well, the Ukraine might be, might be, well, the luckness teeth of the European, of European integration. And I'm returning to my first intervention, which is for me, well, the question of Germany and its relation to Russia. Lily and I were at a conference about the conference of Vienna in 2001 and 2014. There's a big difference and it's called nuclear weapons and we don't talk about it very much. But here in Europe I suspect it drives a lot of the decision-making about how far they will go in confronting the Russians because they fear what will happen. What will happen with the next step? What if they go into the Baltics? What if we respond militarily? What if they say if you respond militarily we will use nuclear weapons and we hear these conversations from Vladimir Putin dropped selectively to different people designed to scare the very politicians that you're talking about. Designed with the express purpose of generating fear on their part so that when we decide how much pressure we will place on Putin Angela Merkel decides that we can't violate the 1996 agreement with Russia in which we agreed not to put bases in Poland or the Baltics. We can't violate that agreement, okay? But that agreement has been thrown out of the water jumped on and ripped into 17 pieces by the Russians by invading Ukraine and we're worried about our part of it. And at a minimum it seems to me we could signal our determination to defend the Baltics and you may not be very happy people that we made this decision, okay? And maybe it was one of the dumbest things that NATO ever did but we did it. And our obligation now is to have clarity and make sure that the other side is sure they know what we're going to do because if we don't have that level of clarity we create the possibility of a terrible crisis. They have to know what we will do. They have to know we will defend the Baltics and by placing a base there we will show them that we will defend them and then Putin will know that's a line too far. If we don't do that, if we worry about irritating the Russians then he might misinterpret our willingness to defend the Baltics he might do something and we might have to defend the Baltics anyway. Wouldn't it be better to draw our line where we mean it and we've already signed a treaty that says we will go to war for the Baltics? And it seems to me if we won't defend that line we've got a much much bigger problem. What worries me a bit is the gap not in this panel but in general discussion between the rhetoric of universal commitments and the reality of rather limited commitments and that is a very dangerous set of positions that really makes things more dangerous. I saw it firsthand in Syria when I was working with Kofi Annan on Syria where I could see those officers from the Free Syrian Army at the time convinced that NATO was going to come save them and I was telling them this is very unlikely to happen. And so there with that kind of rhetoric you raise expectations you make any negotiation more difficult because the parties believe that they're going to be saved from the air and when this appointment comes well what happens is one of those officers was telling me if you're right Mr. Gano, someday we'll put us beside best. That's where we are now. So I would caution also for Ukraine we have to know exactly what we are prepared to do what we are not prepared to do because that rhetoric is dangerous. I'm totally convinced that it's essential to uphold the commitments of the NATO Alliance we have to do our best to stabilize Ukraine but Ukraine is not a member of NATO and we must not pretend it is in our rhetoric because if we do that at the hour of truth then things will not happen and that's really dangerous because and so I think we have to tone down a bit things. One more question. Are you ready to modernize? Are you ready for the 21st century? One number from the polls 37% of Russians would like to think that the interests of individual personality are much higher important than the interests of the state so 37% less than half but still a lot of people millions and millions of people of Russians consider that they can live in a rule law in a law state the problem is and it is a dramatic civilization of problem for Russia and not only for Russia I'm afraid that for Ukraine for all other post-soviet rabbits it would be a problem we lost the dream I have a dream we lost a dream we had a dream by the end of the 80s the dream was to join Europe Europe was a kind of you know paradise with freedoms, dignity, well-being, etc. all nice things but now when we look as all retired western I'm not sure about American politicians but European politicians definitely are standing in a queue knocking at guests from a door and offering their service not only Chancellor Schrader or Finnish Prime Minister Lipponen but so many others you know I have a list of 40 political leaders and personalities from Europe members of the Russian companies with very fuzzy biography so we lost you know our dream because we think Europe maybe in decay, maybe not this is not the ideal that we should strive for so if you practice what you preach it will be the great support for us


So, as you can see, using text on needs to speed up your size, and there's a lot of performance talks out there that are a lot of basic things like installing caching plugins, things you definitely shouldn't do, but dealing with clients a lot of the time in my job, I have to do a lot of code of view, and I have to do a lot of checks because if I don't do my job properly, then either the site gets hacked or it falls over after a hundred people visit, and these tend to be newspapers that have like thousands of people visiting every second or minute, and millions and millions of page views every week, I don't mind any year. So, I'm going to have to look at things, and there's a lot of things that they do, and it would work if you're on maybe five or ten people, but even then it doesn't work especially well. He wants a page that ideally loads in under half a second according to Google, which is easier than done, especially when you get to seven things. So, one of the main focuses I'm going to talk about today is taxonomy specifically, using them for purposes other than what people usually use them for. So, I'm going to cover actually creating them, because it's a lot easier than people think, especially if people aren't necessarily technically inclined. What's the difference between public and private taxonomies? A lot of people don't even know that private taxonomies are a thing, but I'm going to talk about that. Examples of how to make your sites faster, and one particular common example, that a lot of people build a certain way, but I'm going to show you a much faster way to do it, excluding things from your homepage. How to put things in like sliders and featured pages and sections in a very fast way, and checkboxes and flags and more general covering of the topic. So, first off, if you want to create taxonomy, you don't need to write the code yourself, go to this website, fill out the form, and it'll spit out the code at the end. I don't remember last time I typed in register underscore taxonomy, or register underscore custom post type, and then looked up from the codex, which options I wanted. I just went to this website, checked a few boxes, filled in a few text boxes, telling it what it was called, do you know what is it? Box, and then boxes, the claw, and that, and they figured out the right score, and then I popped the paste at the end. So, this is what their website looked like, and as you can see, they do a lot of regenerators as well, and always worth a look going around, things like if you write the plug-in header and we want to come into the top, and you don't remember what they're called, which I can never remember myself, it'll tell you all of those, and it'll let you just write into a box, and at the end, update code, as you can see, is the top of this large chunk of code, which I'm going to copy and paste into my functions, the HBO plug-in, and I don't need to worry about any of that, and so that's probably the easiest part of this, and it's probably something that a lot of people think is very complicated, but it's not really, you don't even need to understand that we just need to know how to copy and paste into a file. So, that's not out of the way. Public versus private. So, most people, when they deal with taxonomies, they tend to think of things like product categories, or brands, or manufacturers, or anything that they would organize that post-file, and private taxonomies do the same thing, but rather than having an archive page and a nice little menu on the side that you visiting my site would see, instead, it's a private taxonomy that I might use for internal purposes behind the scenes. So, this is more used for things like when you're on Bloopeter, and you pull out something from underneath the table, and I wish I had a cake right now, but it's useful for those kind of things, or for when there's something that you want to do that is quite heavy and complex, so you want to figure things out beforehand and move things behind the scenes, but they're not the kind of groups you want to share with a customer. So, these are the options that you would set, and these are flipped around. So, by default, taxonomies, when you register them in public, unless you say otherwise, and if you say false, it will set these three other values the other way around. So, if the public is set to false, then it won't show up on the front end, it won't show up in the admin area, and you'll have this taxonomy, but you won't necessarily even know it's there just looking at using to this. And WordPress Core itself uses these internally, for example, if you have ever done anything with nav menus, you probably think there's a custom post-type behind a single load of options, but actually, the menus themselves are custom taxonomy, and the individual items that you put in, like if I had a page in, it creates a custom post-type nav menu accent, and then it figures out which goes in which menu based on the terms. So, a lot of people are completely unaware of this, and it's completely hidden behind the user interface. So, again, publics have archives and templates, they show on the front end, and categories is a currency archetypal example. This is what everybody is used to, and private nav menu, that was the name I was looking for, is very useful, and again, these are hidden, and they can speed things up by being used behind the scenes, and they can also be used for other stuff. You can also have private taxonomies that do have user interface, but are not on the front end of the site for internal purposes. For example, let's say you have things on your site, and they need somebody to go and do them, so maybe tasks that we're going to do, and then in the admin area, you might have a private taxonomy called people, and then, or you might name it, who is this assigned to, and then tag people on individual posts, but no one outside of WP admin is ever going to see that, because it's a private taxonomy which has show you why to true and everything else set to false. So, that's a practical thing that you might have rather than something to speed things up. So, one thing that I generally recommend is adding a utility taxonomy, because sometimes you have things that would be helpful to know in advance for querying purposes, but you don't want to set a whole taxonomy up for them, because you know the only values in there are going to be yes and no, and that's not particularly useful. So, you might have a taxonomy that is general purpose, that you can add random markers to. So, if I'm sorting through a load of documents, I might have a load of stickers and stuff, and I might, you know, put a red dot on top of things that need adjusting, and then a blue dot on these that need to go off to this department, and at the end of the day, before they're all sorted, all the stickers are filled off anyway, but I might use it for those kind of things, or you might need to do markers. So, I'm going to register a utility taxonomy, I'm going to call it internal markers. I have set it to not be public, but I have set show UI in menu and rest to true. So, I can use the rest API of it, I can change it in the admin interface, and it will show up as a menu, but it will not show up on the front end. So, unless you have a login, no one will ever know this is even there. And that's all I need to do. And for the most part, you can have more than one of these taxonomies, and all you need to do is copy, paste, and change the word utility to something else, or change internal markers. And if you were on Frunzenberg for a short while, you might have seen me testing this as internal markers showed up in the sidebar. So, hiding post on the homepage, I'm going to use my utility taxonomy now to speed things up. But first, I'm going to go through the way that people usually do it, and how I might have done it in the past. So, this is the slower way, but it's the more path well trolling. So, a lot of people will create a whole new query which will be the main query modified, or they'll do it the better way where they filter. So, what we have here is a post meta value, and if the post meta value is one, then hide it from the front page. That's how most people do these things. So, here we are, we're modifying, if it's the main query in its home, then add a meta query where we're looking for hide from home page, and if it is not set to true, then show it on the front end. And this is a very expensive query. Expensive because it has not in, you always want to be querying for what you want. You never want to query for what you don't want because then the database has to sort of figure out. We have all of this stuff here, and we're going to have to go through each and every single one and pick out the ones that satisfy this, and then copy it all into a brand new table, and then we're going to run the query that Tom wants on this brand new table, and then we're going to erase this table because we're done with it and go back to the original one. That takes a lot of time, and then on top of that it's a meta query. You have post meta and you have taxonomy, and there's a reason we don't just store taxonomy and post meta, because it's slow. Post meta is very fast when you already know which post you want, and you just want to fetch this particular value. It's built for that. It's amazingly fast in that. In fact, it's so fast that when you do a query for let's say five posts, WordPress decides to go and fetch all the post meta for you in advance, because it's so fast. So if you do get post meta, you don't end up with a second query to the database because it just fetched them all in bulk. Whereas if you're trying to search on that table, you're trying to figure out, you don't know the post ID, but you do know the key and the value, and you're trying to figure out the reverse. It's just everything just grinds to a halt, and it's just like snails moving along. You don't want that, but it's very easy to implement, and it's kind of the thing that immediately comes to mind for most developers when they're doing this kind of thing. So this sort of thing is very common, and you'll end up them having a meta box in the back end where you've added a little checkbox or a custom field that you add, and you put the number one or the word true or yes in, and then you have an equivalent of this somewhere. So the fast way is to use the internal markers show on home page tag in there, and at this point now we have something we can query for, and we always want to be querying for what we want, it's not what we don't want. So rather than saying show me all the things that don't have this post meta, instead now we're asking for all of the things that do have this tab, which is orders of magnitude, sometimes thousands of times faster, both because we're using a taxonomy and because we're looking for what we want not what we don't want. So it also makes the query a lot quicker because it's now to write, because now it's just the one line, we just say utility, show on home page, and we're off to the races, rather than the meta query, which a lot of people find quite intimidating because they could go to the codex and figure out which values they want. Here it is, just a single line. A lot of people use tax queries sometimes, but even if you just, if you know the name of the taxonomy and the term you want, just step one is that the taxonomy is the key and the term is the value and that works just fine. And this does exactly the same thing as the previous query, so if we go back, we've just swapped this, the slow query that might cause havoc on our database, and I've seen queries like this bring down servers when they're on the heavy load, or not even heavy load, just a lot of people visiting to this, just a single line which is quite quick and it's kind of query you would expect to be quite common in WordPress. But we've got a problem, so if we go back here, I've just added a tag there and you might be thinking, well, I don't want to have to add that to every single post that I've got, that's a lot of work, what if an editor forgets, it's just, who can be asked with that and then nobody got time for it, so why not automate the whole process. So here I have, whenever I publish a post, I set the term on that post ID so that in the utility tax on me, I have show on home page, and now whenever I create a post, it will automatically add it. And if I ever wanted to remove it, then that post would no longer show on the home page because I'm going for what I want, not what I don't want, and if I remove that term, show on home page, then clearly I don't want it to show on the home page. So you can use a very similar process for galleries and featured areas, and it's kind of simple as well in terms of if I don't want this to show on the home page, I just click that little X there, rather than having to wrap around and on top of that, I kind of forgot to mention that I didn't build that user interface, it was just handed to me on a silver platter by WordPress. So I saved myself the time of having to build a meta box and implement a check box and make sure that it was working okay and then test it and then figure out with things like the whole selected, I didn't have to do any of that WordPress just handed me this. I can add other things in there just for my own personal users like maybe I really like this post and I want to do something like something in there as well, and I have absolutely nothing to do with how my website is built, or you know maybe it's going to in the future. Who knows, I have a lot of flexibility with this. So galleries and featured areas, you see for example, this is the Verge, they tend to have a big section at the top with like a nice little mosaic section with like their six top stories that they really want to push or in this case the single story that they really like and they want everybody to read. And you might also see things like on the Guardian where they have nice sections, where they have the sports bit and then a big line and then a box underneath with international news or here at the very top. They've picked Boris Johnson and Russia World Cup to be, you know, their number one story and then they you can see they've taken other posts and put them around but they've curated that. They've figured out what's important for them on that particular day and decided okay we're going to do that rather than just showing things chronologically. So there's some sort of level of importance in curating and showing to that. And again some people might use post-meta for that. But then you have the other problem that like for example here we have Google who's buying electric for $14 million and other sections in the tech-country website.  So you might be thinking well okay I'm going to write a post-meta where it's like featured on homepage and I'm going to search for that and it'll be all great until the client comes around and says okay we have another section called acts which also means the same thing. So you go out of the second post-meta and then out of the third for gadgets and that and they're like well we want more than one and then suddenly you're ending up complimenting about 20 check boxes in this huge meta box which goes down and you're scrolling and scrolling and then they say they want this and that and you're just like and then you've got a query for them and the query is expensive because it's a post-meta query and it's so much to manage. Or even if it's just a simple thing like on the Apple website they have a few sections here but they had someone had to go through and pick these products and then pick the order and make sure that they go in the correct order and then they might have other sections maybe on the iTunes store where they have a selection of apps right at the top maybe the top 20 that they've picked for that day or the editor's choice who knows. So what I'm going to do is I'm going to register another utility tax on me and as you can see this is the same code as maybe several slides back but I've just changed utility in internal mark is to featured area and I've made no other changes but it's it's quite useful for the same reasons so I'm going to use this and the terms in this tax on me are going to be the featured areas. So I have a homepage featured area one for a slider and another example this is if you have a sliders tax on me you could have as many sliders as you want and you just add as many patterns as when you needed them and then just type post that way. So I have a top headline section and this is how I would do that and then when I'm in my back end area or I would just type top headlines in and then hey Presto they appear on the homepage in the top headline section and the query is a lot simpler than a lot of other examples and other than that it's just standard post loop at which point I can go to town on whatever slider or layout I want as a front end developer and at that point it's just you know business as usual but it's a much simpler query as well. So you also might notice that tax on me they have checkboxes versus tags so it might be that let's say I look at my top headlines section and it has subsections well that wouldn't necessarily work with that interface I showed you earlier with the little tags and cross buttons so this is where we can kind of then make use of categories versus tags in the hierarchical or non-hierarchical where you can have parents and child terms so it might be that instead I have a top level section and that is their headlines for that and that is some combination of the things that were flagged for the subcategories because I went through and I said okay I'm going to have a featured area and it's going to be the top headlines and then let's say for the morning and the afternoon I have top headlines for that and this top headlines is for the whole day I can do that by just putting things in the subcategories and then it shows up in the pair categories automatically or in this type featured areas so I can just set that by setting hierarchical to true or false and I can change this in the future or not it doesn't really make much difference once it's live so this is what that looks like using my first example of show on homepage and this is also useful if you have editors and they don't know what the areas are called if you want to use the left option it will just show them the list and if you want to use the right option it will auto-complete as they type I'm using Gutenberg as well for these examples but it works perfectly fine in the classic editor as well so as a recap I covered generating taxonomies so there's a website for that it's very handy you don't need to write a code it's just copy pasting and a few options there's a difference between public and private taxonomies a lot of people only use public and don't know about private taxonomies you can make sites faster by specifying what it is that you're looking for rather than what you don't want to look for and setting it as a tag it makes things like putting posts in a certain place or finding posts or removing things much easier especially if a hook that automatically sets a turn you can change it between categories and tags and that will give you some control over the user interface that you get and Anton know so I work at automatic and do a lot of code review per day I focus on performance and security and do a lot of community projects and I work at DAP we're hiring so have a talk to me later if you're interested and does anybody have any questions great, thank you great, thank you very much make one comment first which I kind of realized while I was sat down earlier I didn't want to edit my slides so this is all great when you have a brand new website and you're doing things but a lot of people already have websites that they're maintaining over the long term especially websites even just for my own website I might want to make that faster and I already have all this stuff stored in Postnetta for which how do I move all of this stuff over it's no good me telling you all this stuff if you already have 10,000 posts and then you do this and you're like oh well I didn't add this show on homepage term to the 10,000 posts earlier now I only have five posts in a different page there are two alternatives to that first just because you're storing it in Postnetta doesn't mean you need to move it to terms you can cock it so you can add all of this stuff and not use it and the premise that let's say in a month or two's time once you've got enough stuff to show on the homepage using that mechanism you can do that and that's good for things going forward you can also make it so that you have a WPCLI command which you run a single time which queries for all of the posts that have the Postmetta goes through maybe then goes through them and maybe batches of 50 or 100 and adds the term and then removes the Postmetta and then you just keep running it until it says there's nothing left and I know not everybody can do that on their website because they don't have the necessary access but in those situations a good way of doing that is to set it up locally pull all your data down do it on your own computer because you can do anything you want your own computer and put it back up so I could run a CLI command on my own website because it's a VPS and I have all that access but if I was dealing with a shared hosting website something that was maybe a pound a month of that and I just wanted it to run fast and I wasn't worried about traffic I just wanted everything to load in like half a second rather than 10 or 20 seconds I can download everything run it on this computer and then send it back up almost as if I was doing a migration only I'm migrating to myself so I don't need to change your route so that's another option I'm sure there's some other things you can do but I've not been told me that so questions quite literally read my mind because as I was sitting there I was thinking about something I've had in post-meta going how will I migrate it to you I don't know you've clearly just got some little link because you've just had my first question if you were doing something like that though so like you're mentioning and say running a custom CLI command would you have to would you have to configure that yourself like you could write your own function or something to actually write the migration where you query the post-meta and then insert it into your so you're still going to do that like work yourself obviously right yeah so there's no tools to migrate data that I don't think exists in the while already so you have some advantages in that these if you all went away and wrote a command to yourself they would all look about 95% similar it's basically you have a loop that goes around and off the query and inside the loop you're just like okay grab the post-meta set the term remove the post-meta next and those specifics of which post-meta that will depend on what you want to call your tags on me what you want to call the tags what you're using the tags for but it's the same kind of pattern the query itself you can probably just take straight from your front-end website because you've already written that query because you wanted to fetch those posts in the first place so if I go back and I have the original show on home page and I wanted to use that on my front-end but I needed to write CLI command well I've already written the command to fetch all the data up here and it's been running on my site for a while on all my existing data so I would take that query put it in my CLI command and then use that function there to set it so all of the building blocks are already there on the site because you built them when you built the site we're just adding a few extra bits and then there's this one throwaway command which you'll run once and then you're done with it you never need to touch it again I'm going to give it back to my questions page I think I'm throwing my questions down actually when you went back a few bits when you went to the because I was wondering how do you tell somebody you know you don't want it on you know you pre-filled in the show on home page tag which if you when you when somebody publishes you write I probably didn't want to do that so I was obviously thinking the more protective version you consciously added and so obviously you have last examples where you have check boxes about the way to do it so that makes it clear for the user interface point but at this point it's literally just a Chrome user interface on top of the data as long as the data's there you can quote on that's fine you could re-implement you could say I don't want to show that interface I want to build my own in a meta box which is what everybody's doing when they need to post meta in any way and you have that option that hasn't gone away it's just easier to use the stuff that core gives you but the other question related to that is because you have the underscores there you know that's a very technical look to can you use spaces and stuff to make it more user-friendly to that term in internal markets yeah you can do that for the purposes of just examples I just set the slogan the term name so exactly the same but you could go in and change under the settings because if I go back to I've set that to public to false but show you why it's true and one of those things it's not just going to show the little box in the sidebar it's also going to show it underneath like when you see the main categories and the main tags page on the post and you see them all listed you get the same interface unless you've turned it off but you can turn it back on to change things but you can go in and edit it and you can say okay well this is the slogan but I'm going to add a description and I'm going to add a title and you might want to add other things as well I don't know it's your website so you know however you want to use it but those are still options okay so from a client point of view because obviously you'd like to say it in a you know without it with the last logo or even it would look more professional you know to say it but okay that's good thank you so another option you could do is um so here I've got a term which says show on the homepage and then I have this hook which whenever you publish a post it adds show on homepage to all the posts and I could add another hook which says okay if show on homepage has been removed add don't show on homepage and I wouldn't want a query for those unless I wanted to show a list of the posts that you don't want to show because they might be like okay why isn't this post showing on the homepage did I remove that okay what's hidden from the homepage that would be the situation you want to do you never say show me your post that don't have this term you'd instead have either you look into as I said before you want to query for what you want so and sometimes for other reasons I can't think of right now with my mind this first plan you might want to have an A either or situation where you either have one term or the other term so that when you want this you query for this but when you don't want this you query for that and that's how you would go around that in those situations but as a rule of thumb if you ever have to write the words not in in a WEP query you'd be going down a very slippery path it's not going to end well I don't know but there are ways around it any other questions please so what kind of speed factor are we talking about in terms of let's say a few thousand posts or whatever so the problem with post meta query posts is that they are slow the way that they get slower is dependent A on the traffic and the server and B on the amount of posts you have so it's not a linear progression that if you double the number of posts it will get twice as slow instead it kind of go a bit like this because the work that the query has to do every time you query it gets exponentially larger so for example the taxonomy tables are built for finding things let's say I want all x with y anytime you have that kind of situation use the taxonomy so if I'm looking for a category it knows based on the tables where to look because it's been told in advance by core developers that their indexes we're going to be looking for these kinds of things but the post meta table doesn't have that so it has to build a new table every time if you have five posts it's slow but it's not amazingly slow because it's only five posts in the table but if I told you I'm going to copy all of your tables over and then do a calculation as I'm copying them and then copying them back and destroy it you're probably going to think that's quite a lot of work so when you see people implementing table upgrade processes they tend to be very cautious about speed whereas they realize it's happening behind the scenes with temporary tables whenever doing a post meta query so five posts it'll be a bit slow but it's not the end of the world not too much of an issue but a thousand posts it's got to go through and then it's got to do the same thing and it does the same thing if you're doing a not inquiry or if you're ordering randomly because it has to figure that out on the database and it's not very good at these things and the indexes aren't set up for that so generally avoid it whenever you can there are some situations where it's you kind of have to and that's why it's in there it's just unavoidable maybe because you're writing a CLI command and you know it's going to be expensive but it's only going to have one that's kind of why it's in there or for various other reasons that mind boggles but if you can't switch over to a tax only term but then usually it's a sign that there's a trade-off you're unaware of for example let's say you're on e-commerce website and people want to be able to fill by price let's say I only had a budget of 450 pounds and I want to buy a new computer from the moment of that so I'll go to let's say Amazon or e-buyer or in this case Tom's special PC purchasing company and okay I don't want to spend more than 450 so I don't want to be showing those products or want to filter them out so I might put between 200 because I don't want it to be an absolute terrible computer and 450 and then I realized this side's being really slow and like because behind the scenes it's going okay show me all the posts but they have to have a post meta with a number between this value and that value it has to do all the calculations whereas instead if I had at the beginning decided to set up a price tax on me and rather than putting each individual prices this is 2.99 this is 1.39 pounds or to 5 pence and instead said this is 1 to 5 pounds this is 5 to 10 this is 20 to 30 this is 30 to 50 50 to 100 and set them up in buckets and then put actual precise values in the post meta then that lets me query quickly and I have a little bit of a trade-off but I still have that position for when I need it I kind of rambled a little bit sorry so I'm presuming most of those custom field systems are probably using that aren't they yeah usually a lot of people find it quite easy especially with things like ACF it's very easy because it's by default and then once they because you know you're going through and you're saying okay this means that that that and that and the client will need this and this and this and they're all saved as meta by default and then it's usually after the fact that you've set that up you're going through the template to like okay I need to show all the things with X and all the things with Y and they're like oh well you don't realize that in pastual meta queries or you do and you realize the hard way and then you go oh yeah I've got 11 million post meta rows and you're not really pushed in the direction of tax on these items is that a conscious thing or because I'm very I was going to be the next question a lot of people aren't that aware of it or it hasn't been pushed in because if you hear about performance it's actually content performance or you know don't mind Bitcoin on every page or write content or you know don't do your thousand queries and have a hundred plugins so it is possible with ACF to use tax on these but tax teller too that's the same with a lot of frameworks that do these things so I've been told them at the time I think we've done a couple more minutes just because the next day you're not going to have to be in the quarter pass or we're okay does any more rush into time for another couple can I ask you about your query you had WP query where you did the feature of post one was that the full query because I just didn't recognize the syntax and this one is it missing something I just there's a reason you have to be patient I don't know what this is about okay so there's a few few changes here I like using just the letter Q but instead of writing the full or I use PHP 7 syntax okay okay so hence the square brackets a lot of the other options there basically pulling you from the default so I could I could speed this up a little bit further but that would be a talk about using the EP query so for example if I tell it that I'm not bothered about sticky posts it won't bother trying to figure that out if I tell it that I want posts that are published it won't try and figure out which posts are private and can I see them or not and show those it will just show me published posts which save some more if I set the author I want that saves a little bit of time as well or if I say oh what was the other one there's another one again the post type that helps as well so any kind of hints you can give to WP query about what you want even if it's set as a default usually it's best to give it error just to be sure and it saves a little bit of thinking time because you want to do as much of that kind of thinking on the PHP side and not have your database doing it because you've got a whole PHP process to that user doing that request but there's only one database server one process doing its work and you want it to do as little as possible so one of the things that I saw not long ago in the makeslack was someone who was trying to fetch stuff in the plugin repo and they were using the rest API and they wanted to be nice they wanted to be a friendly API user and only request what they needed and in theory that sounds nice because you know you're saving bandwidth but we have tons of bandwidth these days it's CPU and memory that's the problem so the difference between them fetching just the two or three fields they want and getting a standard response is with the standard response again I go and get fetched cake under here and say here you go I have I've been requested this a thousand times in the last 10 minutes I've prepared it in advance whereas the other one where they're like okay here you go oh but you don't want this icing and I'm going to take two of the candles off from here and you only want it on a small place here you go in the meantime I'll have a hundred other people are doing the same thing and I will my hands are full can you wait a little while I've got a queue so it's the same with the database you could fetch you know the entire post object or you could fetch a little bit but if you've got any kind of stuff like an object cache it's just easier to fetch the whole thing and then use something like WPList but to fetch what the PHP it's the same with stuff like random and I find that it's easier to pick a date and then pick the first post after that date more than telling it I want a random thing because it's much faster and you're doing it all the way to PHP better actually yeah and there's a lot of stuff you can do in this case by thinking a little bit in advance about how we're structuring our data because of how we want to use it we're saving ourselves a lot of time in the future so that decision about whether this post should be shown on the home page or not is happening when the editor clicks either A or B rather than every single time the home page is loaded and the MySQL server has to go away and figure all of this out and that's time that impacts our SEO and annoys the users and yeah anyway I'm going to leave it now I've got another question I think it was answered safe to say any other questions folks? speak now for 100 piece three, two, one done thank you give it up


عوذ بالله من الشيطان الرجيم بسم الله الرحمن الرحيم والصلاة والسلام على أشرف الأنبياء والمرسلين حبيبي إله العالمين بالقاسم للمستفى محمد وعلى لبيتي الطيبين الطاهرين الذين أذهب عنهم الرجسة وطهرهم تطهيرا واللعن الدائم الأمدي والسرمدي وعلى عدائهم أجمعين مدل آن إلى قيام يوم الدين أمين رب العالمين نبدأ نام الله the most beneficent the most merciful all praises be to him everlasting and omniscient he is and we send our peace and blessings upon محمد and his holy household and our everlasting damnation and curses upon their enemies أمين رب العالمين and once again we congratulate صاحب العصر والزمان الإمام المهدي المنتظر on the special occasion that marks the birth of فاطمة الزهراء عليها أفضل الصلاة وأتم السلام and insha'Allah we will be continuing from our last two episodes in which we were discussing the importance of seeking the most appropriate and most pleasant and beautiful name for one's children and once again before we continue and expand upon the last narrations that we discussed the disclaimer that when I am speaking about the names of children I am speaking about those who are naming their children their newborn children so the new parents and new mothers in no way am I discriminating those who for example came into the ردون of Islam later on into their life for those people who sought Islam after or who became Muslim after who are either reverse or converts in their religion I actually say for them to keep their names because their names have a very big effect on the community that they are in and they are able to influence people more but our focus today and in these last episodes and these narrations as well is that for those people who decide to give their children un-Islamic names for no apparent reason or because they are scared of what they call Islamophobia or they are scared that their children not fit in the West well as we can see from the narrations that we had in hand that the names of Al-Muhammad and of course we haven't really discussed that yet but the Prophet and the Imams have told us to choose the appropriate name for one's children and the last narration that we did look at was the narration of Yaqub Al-Sarraj when he spoke to the young Imam Al-Kadim when Imam Al-Kadim was still in his crib and he told Yaqub Al-Sarraj to go change the name of his daughter that was recently born and he had called his daughter Humaira and we know that Humaira is a name that Allah SWT is angered with and then he went of course and changed the name of his daughter and from that narration we concluded or we're concluding right now the importance of choosing that correct name for one's child because we noticed that that name is a name of course why is that name Humaira in the first place a name that Allah SWT does not like because of course it's one of the names of those who are considered an enemy of Al-Muhammad especially the name Humaira who was the name of that individual who had a hand in murdering Allah SWT now like I said we're going to continue we have a couple more narrations actually one more narration in terms of instructions from the Prophet صلى الله عليه وسلم of choosing an appropriate name for one's child then after that we will go to the narrations I think we have here yes the narrations from the imams that inform us of which is or what are the best names to choose for one's children so the last of these reports is a report from Masool Allah صلى الله عليه وسلم and this report is very important it says قادر صلى الله عليه وسلم وآله كان يغير لأسماء القبيحة في الرجال والبلدان so he says that the مام الباقر عليه السلام sorry yeah مام الباقر عليه السلام from his forefathers says that صلى الله عليه وسلم used to change الأسماء القبيحة the filthy names given to the individuals around him when he would hear a name that is considered filthy considered unpleasant he would tell them no change your name to فلان as well notice here that even the البلدان so the cities because even cities and locations were given filthy names and unpleasant names and the Rasool الله عليه وسلم would also change these names now we are entering the second portion of our discussion now which is then now what are the best names for us to choose and we did of course claim that the names of أحمد عليهم أفضل الصلاة وتم السلام are considered the best and most appropriate names and for that of course we have a couple of narrations and we'll start with this narration which is a narration narrated by مام الباقر عليه السلام مام الباقر عليه السلام says أصدق الأسماء ما سمي بالعبودية وأفضلها أسماء الأنبياء مام الباقر عليه السلام says and the best of names is the names that remind oneself or reminds others and oneself of the Lord, of God then he said the preferred name to the name of the prophets what does it mean though that reminds someone of God in another narration one of the companions of the Imam responds to the Imam and he says to him يا أبا جعفر الباقر well what do you mean by الأسماء التي مرتبط بالعبودية what are those names that are connected to the Lord to God سبحانه وتعالى he says to him name like عبد الرحمن name like عبد الرحمن for example name like عبد الله any name that once hearing it a you feel some sort of connection that okay this name عبد الرحمن a slave of the رحمن who is the رحمن رحمن is one of the names of Allah سبحانه وتعالى عبد الجبار for example another example and all these other names that we see there are common names so basically a name like that that when the individual especially if he the individual lives somewhere in the west and he hears and a non-Muslim for example here's the name عبد الرحمن and then the non-Muslim says to the Muslim well what does عبد الرحمن mean and then a conversation begins and then he begins to explain well عبد الرحمن means slave of the رحمن رحمن is one of the names of Allah which means the merciful and as you can see you have began a chain reaction from just a single name you are able to open an entire discussion see that's one of the important that's one of those important characteristics that a Muslim has that his name alone is able to open an entire conversation now for example imagine if you begin using the names of عالمحمد you begin using the name for example of حسن and حسين and somebody asks you well what is who is حسين who is حسن a conversation begins well for example let's say somebody is named محسن and then a conversation begins as well well your name means محسن what does محسن mean he goes and he researches what محسن means when he researches in the Arabic meaning of محسن as well who is محسن in terms of history or محسن is the unborn child of فاوت الزراء عليه السلام this unborn child who was killed unjustly and so on and so forth you have opened an entire door of discussion you have just given your friend or colleague at work or at school an entire history lesson by just pronouncing your name some people are intrigued especially here in the west you'll find that our fellow colleagues and our friends either at work at the workplace or in the university they are sometimes interested in these names as they call them exotic names because they are not names that they are familiar with even though if you were to look at the statistics that we have today one of the most common name in the world I think either the second most common or the first most common name in the world right now is محمد اللهم صلى على محمد وعلي محمد محمد is one of the most common names in the world imagine how many things but of course other than محمد we have to start expanding on the other names of the other names of the other names of the other names and we'll see of course how important these names are now this narration here besides the best of names or the preferred names or the names of the Prophet or the names that have some sort of connection to Allah Now that is true but we have other narrations so you can say نقول إذا نضع هذا العمل في هذه العمل و نضع هذه العمل و نضعهم معاً نجد أن نجد بأسيحة و بسيحة سوف يذهب إلى المملكين التي تذكروا أنها سيصبح الله و تعالى سيكون يوجد كمية المملكين من ألم محمد ثم سيجد المملكين من المملكين والذين سوف يرى هذا مثل when somebody mentions the name Ali right away Ali is a symbol and a sign that makes us reflect upon who Ali was نحن نقول علي يكون one who used to spend his nights in prayer and the days and fasting and so on and so forth and then we start asking the question well who is he fasting for who is he praying to and soon like again we've begun we've begun a chain reaction until we have gotten to الله سبحانه وتعالى because we know that the imams عليهم السلام are the door in order for us to reach Allah سبحانه وتعالى so that means in essence that their names as well are the door for us to reach Allah سبحانه وتعالى we read in زيارة الجامع الكبيرة for example in زيارة الجامع الكبيرة we read in one of the فقرات in one of the excerpts of the زيارة it says وما أحلى أسمائكم and how beautiful are your names and it's true the names of حسن and حسين and فاطم one just hearing the name حسن hearing the name حسين hearing the name فاطم brings forth something to the heart some of that emotion that might be brought to the heart either maybe sad emotion that has come forth upon the مسلم or even happiness at the same time it's a mixed emotion so these beautiful names serve a higher you can say reason there's this there's a there's a higher reason behind one calling them their children by the names of المحمد other than the blessings that are attained because like we said it could have an influence on the kind of person you are it can shape the person who that you are because once once you begin knowing okay علي was this حسن was like this and i wish to learn to be like my masters that will have an effect on your life it will change the way you think it will affect your morality and your ethics and make you a better person as well as the external factors which is the community around you the community will begin to ask questions especially the non-muslim community now that was another narration another i have another one another narration that that's also very just for the sake of blessing will narrate this narration it's a narration that is narrated by الأسبق ابن نباته عن علينا عليه السلام so i narrate from علي ابن أبي طالب عليه السلام it says that the messenger of god صلى الله عليه و آله قال ما من أهل بيت فيهم اسم نبي إلا بعث الله عز وجل إليهم ملكا يقد سهما بالغدات والعشية so this narration here by the messenger of Allah look how beautiful it says that there is not a household that in it is a name of a prophet so imagine in a household there is one person and his name is Adam or his name is Noah or Solomon or any of these names any of the names of the prophets it says there is not a household that in it is a name of a prophet except that god sends his angels to accompany them during the day and during the night see as you can see there are unseen forces at play just by the just by having these names in the household it's not about the internal spiritual uplift that an individual acquires but there are external factors out there that have a great effect on just the people living in that household so imagine you live in a household with the names of Muhammad and Hassan and Hussein and Fatima and Adam and Abraham and so on and so forth imagine just having in your room the name Hussein for example the name Muhammad on a tablet somewhere in the room hanging that alone is a blessing and from this narration that house that has such beautiful names the names of Ali Muhammad and the names of the prophets I tell you for now there are unseen angels that are visiting this house day and night now that's for that specific genre that is concerning the names that are the best to be chosen but now I want to narrate the names that are best to be chosen from the names of Ali Muhammad this one is very important especially to the new fathers and new mothers and those who have children especially who have sons in their houses this is the word of Imam Al-Sadaq عليه السلام and here Imam Al-Sadaq عليه السلام is telling you what they do when they are given a newborn son the hadith says we are not blessed with a son except that we name him Muhammad so as soon as that son enters this world we give him the name Muhammad then the Imam عليه السلام says and when seven days pass we either keep his name as Muhammad or we change his name just giving your son the title the name Muhammad when he is born is more than enough of a blessing and according to this hadith that we have after seven days the Imam says we either change it or we either keep it or sometimes you can see that the Imam's for example even in some cultures today you find that people give what they are called names that are connected for example they would call them they'll call their children Muhammad Ali or Fatima Zahra or Noor Fatima and so on and so forth in order to have that extra blessing in the name that is one narration another narration which is a very important narration and it's very it's it's a difficult to take to heart and it says that whoever is granted four sons and he does not call one of them by my name has deserted me has pushed me away this is the words of the prophet so be very careful that if you are given four sons by الله سبحانه وتعالى four blessed sons make sure that at least one of them is Muhammad or call them all Muhammad and Ali and you'll see why call them all Muhammad and Ali because of this narration right here it says جابر بن يديل جعفي narrates from أبي جعفر الباقر عليه السلام أبي جعفر الباقر says to a man named ابن صغير he says to him what is your son's name the man responds and he says his name is محمد then he says to him what is his كنية what is his title that you gave him he said Ali that means this man gave his child the name Muhammad Ali Abu جعفر عليه السلام when he heard this he said you have safeguarded yourself from satan and pushed him far away whenever listen whenever satan here's a caller call out oh Muhammad or Ali satan dissolves like black lead and when he hears someone call the name of our enemies he dances and struts with pride so this is what i mean by choosing the appropriate name when you choose the choose the name which is a name that is connected to Muhammad محمد it makes satan dissolve and makes satan weak you push satan away whereas when you choose that name that is connected to the enemies of Ali Muhammad you are just making satan happy why would you want to please satan when you're pleasing Ali Muhammad in fact you are pleasing الله سبحانه وتعالى correct or no correct now this is what we have right now and i wish want to see what we have left for you we have a couple more narrations in this in this chapter and which is the chapter of the naming of the children by the names of Muhammad and Ali and so on and so forth there's a lot of narrations in this in this chapter but our time is limited so what we will do inshallah is we will go on and in our next episode we will expand a little more we have a couple more narrations with you and depending on time we will either have one more episode after this or two more episodes after this depending on the narration and how lengthy the narration is because i do want to discuss the name of Fatima عليه السلام which is الزهراء as we first mentioned in the beginning of our introduction so i leave you with this and i say السلام عليكم ورحمة الله وبركاته


Hi everybody. My name is Dwayne O'Brien and I'm the Director of Open Source at Indeed. I've been working in open source programs for about eight years and I get really excited when we start talking about topics of open source sustainability. I want to disclaim at the beginning of this presentation that some of the opinions that I'm going to share in this talk are really my own and not necessarily those of my employer. Now in the open source program at Indeed, we do a lot of different kinds of work. We craft policies about how to use and contribute to open source. We support open source contributors and maintainers who work at Indeed and we sponsor foundations like the open source initiative and events like FossAsia. But another thing that we do is we sponsor a lot of open source individual projects, open source contributors, events and other foundations as well. We're pretty involved in the sponsorship space. A lot of this we drive through a framework we developed at Indeed called the Foss Contributor Fund and this is a blueprint that your organization can use to identify projects that you might want to sponsor directly and you can get the report that we developed with O'Reilly over at opensource.indeed.com. So by the end of 2020 we will have sponsored about half a million dollars worth of open source projects using just the Foss Contributor Fund. But that's not the only way that we get involved in sponsorship. We also sponsor a lot of individual developers who make contributions to open source dependencies that we use. Right now we're sponsoring 118 of those developers through GitHub sponsors. That number goes up and down as we look at it on a quarter by quarter basis. Supporting open source projects on behalf of an organization is complicated. This is something that we've learned as we've done experiments and we've been involved in a lot of the open source sponsorship space. And I want to spend some time explaining this process from my perspective as someone who sponsors projects with an eye toward giving you some tips that you can use to help make it more likely that other organizations will show up and get involved and sponsor your project or contribute to your project or advocate for your project internally. Before we do that there are some things that I need you to understand about the nature of my role. And I'm going to talk about my work but you can assume that many of these things are also true of other people who make sponsorship or open source decisions on behalf of their respective employers. The first thing is that decisions are made by people. An organization doesn't decide that they want to suddenly show up as a sponsor for your project or to get involved in your project. Some person at that organization makes that decision and it's an important nuance and it's important to understand because the person making that decision they have to make those decisions that are governed by policy. There might be local laws that are in play. There might be company policy that is in play. There are just rules that we have to follow when we're deciding which projects we're going to support and which projects that we aren't going to support. The next thing that I want you to understand is that I already want to support your project. You have friends in companies who want to advocate and support your project. You already have adopters who are looking to get involved in the project. People want to support your project but it's not always easy for them to do so and one of those reasons is because your project is one of thousands and it can be difficult to remember this or view this from the perspective of someone who's making decisions on behalf of an organization because as a maintainer or as the owner of an open source project you're used to being the person talking to a lot of people. You might have a lot of users that you're communicating with or a lot of adopters and you may feel like you're having this conversation with a large group of people. It's exactly the opposite problem if you are in an organization trying to make decisions. There are thousands of projects all trying to have conversations at the same time and remembering that can be important and help you on this path to generating more support. The last thing I want you to understand is that there are just limits to philanthropy. There is only so much that an organization will do for your project in the name of goodwill or because it's the right thing to do or because they want to be a good citizen. If you want to push past those limits of philanthropy you have to be able to articulate your value to an organization. We'll talk about that a little bit later. There's really about five reasons that I want to talk about that are reasons why I wouldn't decide not to support your project or reasons that I can't support your project or reasons, things that might get in the way of supporting a project. Reason number one is that I just can't find you. If you look at this blog post by GitHub they said that the average open source project has about 203 dependencies. They might be direct dependencies or transitive dependencies. So just for one project you're already competing with 202 other dependencies within that project who all might be looking for some kind of support. And within an organization you might have dozens, hundreds, thousands of individual software projects that you're using and building and maintaining so the number of dependencies can very, very quickly escalate. If you look at the size of the overall ecosystem two years ago there were already a 1.3 million MPM packages and that's just within one language ecosystem. If you look across multiple language ecosystems and you start to factor in things that aren't package level dependencies, something infrastructure dependencies, the number of open source projects that need to be supported is very vast and it can be very difficult when you're looking at them altogether to figure out who in the crowd is asking for support or looking for support. So my guidance for you here is be easy to find and there are a lot of different ways that you can do that. To keep in mind there are automated tools and there are automated processes that will make it easier for you to find your project. By way of example backyourstack.com will help you identify projects that have signed up for GitHub sponsors or who have otherwise signed up for an open collective. People who are making sponsorship decisions might use a tool like this to go find your dependencies or go looking for dependencies that they want to support. So making sure that tools like this can find you is a good first step. One of the great byproducts of GitHub sponsors is this creation of a machine readable file that describes funding mechanisms for packages. If you sign up for GitHub sponsors, you end up with this funding.yaml file and it describes different ways to fund your project and now I can write tooling or other people can write tools to go look for these funding files and amplify those projects who are asking for funding and that can make it easier to find you. There are other machine readable or common ways that will make it easier for projects to find you. A good example here would be to use the well understood issue tags for people that you want to get involved in your project. So this website here, Good First Issue, just looks at that default issue tag on GitHub for Good First Issue and it aggregates them all in one place so that somebody can go and find them. If your project is using custom tags to identify beginner friendly issues that are different from the rest of the ecosystem, those beginner friendly issues aren't going to show up in places like this and so it's going to be very difficult for people to find ways to support your project just because there's so many projects asking for help. So that's my first piece of guidance, be easy to find. The second reason that I might not support your project is that I just don't know you and I don't mean here that I don't know you personally. I mean that when I go to see who's involved in this project and who might be responsible or who I could go talk to, I don't have enough information to make good decisions.  There's this default image instead of a personal profile image, sometimes called the space invader image. There's no information here about who this person is or who they work for or what they do. We don't see any contribution activity. If this looks anything like your GitHub profile or if this looks anything like the information that's available for you as a maintainer and as the person who owns the project, it's unlikely that companies or organizations are going to want to get involved in your project because you don't look like a real person. So identify yourself as my second tip. Make it clear who you are, make it clear how you can be found, contacted, where you can be reached for support. By comparison, let's look at the profile here for one of the chief maintainers and creators of ESLint. Now if you are a maintainer or a software engineer or otherwise an open source contributor, you might have immediately drawn your attention down to the contributor graph and seen that this person is very active over a large number of days. And that's useful information. But as a sponsor, I tend to pay attention to these other pieces of information. Do they have a picture that looks like they're a real person? Is there a little bit of biographical information? Are there different ways that I can go and contact them? Do they have a publicly verifiable identity? If you have a publicly identifiable, if you have a publicly verifiable identity, it's easier for an organization to support you because we know who we're talking to. So that's my second tip. Be easy to identify. Third reason, I might not support your project because I don't feel like I trust the project or I don't feel like I can trust you. And this is about being predictable in your communications and being predictable in what your project does. When you look at a large number of projects, the more investigation you have to do to figure out if the project is active or if there are really people there or if it can be depended on, the more investigation you have to do, the less likely the organization or the person is to decide they want to use it. By way of example, it's very difficult to know just by landing on a project. If this is a project that is updated on a slow basis, maybe it's sort of a slow burning project that is under active development but isn't updated very frequently, and a project that appears to be clearly abandoned where pull requests are piling up and issues are piling up and no one appears to be paying attention to the project. One of the ways that you can help distinguish your project against other projects is to communicate frequently. And there are many ways that you can do that that send good signals to organizations that you can be depended on and trusted as a project. Publishing good change logs every time you push out a new release that describe what the new features are. Even if there's not much information in there, publishing this information sends good signal to the organizations that you are a professionalized project and you can be depended on used and should be supported. Publishing blog posts whenever you release a new release is another good example. The more you talk about your releases and your process, and the more you talk about them in ways that are easy to find. If you're having conversations in a private discourse channel or in a discussion mechanism that I'm not already able to go in and read, I'm unlikely to be able to have the time to go do the investigation for these projects. So communicate often, communicate frequently, push out predictable releases, do it on a regular cadence even if the changes aren't very big. The more predictable you are as a project, the easier it is for an organization to depend on you. And constant communication and effective communication is a good indicator of predictability and trust. All right. So the fourth reason is that I just don't know what you need. And here I want to spend a little bit of time talking about the difference between helpful requests and unhelpful requests because we see many times within the open source community requests for help that just aren't very helpful. So what are some unhelpful requests? Help. I don't know if this means you're trapped under a bookcase or if your car is on fire or if your open source project needs money or if you're trying to push a release and your build is broken. It's a help is not a very helpful request because we don't know what kind of help the person needs or how urgent it is. We need more contributors. This is a better request than help, but it doesn't tell us what kind of contributors it doesn't tell us what they'll be working on. It doesn't tell us what the intention is or what will happen if more contributors come to the project. Please sponsor my project. I don't know how much money this project is asking for. I don't know what I get as a sponsor. I don't know what the project hopes to do with the funds. I know that you're looking for some kind of sponsorship, but I need more information than this before I can make a good decision. I can't keep up with issues. This isn't really a request. This is more of a complaint, but it can be translated as a request. You need some kind of help with issues, but I don't know if this is because they're coming in too frequently or if you've just had a baby and you have less time or if suddenly you're in this massive adoption phase and issues are coming in quicker than you can triage them. By comparison, here are what I think more helpful requests. They're not perfect, but they're more helpful than the last set. I need help organizing. Even though this is a very simple short request, I immediately know from looking at this, sending in someone with project management skills would be very beneficial for this person. They don't need help with code. They need help getting the project in order and getting different pieces in place so that they can understand what they need to do next. I already know the kinds of people that I can go ask and see if they're available. We need more tests. I think this is a useful request and a helpful request because we know that this isn't just about making code contributions. It is about having good testing expertise on the project, and it tells us the kind of developer or the kind of contributor that we might go looking for to write some tests. We need $5,000 to host a hackathon next month. This is extremely useful as a request for me because I know how much is being asked for. I know how it's going to be used. I know how soon they need it. As someone who sponsors a lot of projects, I almost certainly know immediately if I have that much money in my budget and if I can get this through procurement and time to be useful, and if either one of those things are false, I can immediately say no, and we save a whole lot of discussion about the nature of sponsorship. We need two to four hours a week helping triage issues. This is a very specific focused request. We know that the need is triage. We know that issue triage is something that can be done with an hour here or an hour there, and we know the time commitment from somebody. If you ask for help or a maintainer or a new contributor, that feels like an open-ended time commitment. When you're asking for a specific fixed scope of time, it empowers people from the other side to be able to say, okay, I have that much time in the week. I think I can contribute to this. So the more specific you can be about your needs, the more likely it is that an organization is going to be able to support your project. Some good examples of this that I've seen in the past. One is this fundable packaging improvements repository hosted by the Python Software Foundation. This is a list of improvements that could be made to the packaging ecosystem if someone wants to pony up the money, if someone wants to provide funding for that improvement. This is great because it tells me what the scope of the engagement is, and it tells me approximately what it would cost to engage with the project on that. This project here, NEJSON, has used one of the GitHub native tags for their project to say maintainer wanted. They know that they don't have time to maintain this project anymore. They're open to bringing in a different maintainer or maybe handing this off to another maintainer. This is a useful tag. And if you go to GitHub, you can search for projects that have maintained or maintained or wanted and find projects that are looking for help or for a new maintainer. Now, if you're signed up for GitHub sponsors, you have the ability to define these levels of sponsorship for your project. And within these levels, here's a good example of someone being very clear about what you get as a sponsor. And this takes us into a slightly different kind of relationship. There are sponsorship perks that have to be managed here. You know, you get access to their cash flow sheet so that you can see how funding is going for the project. And you also see that they will take some of those funds and pass it on down to their own dependencies. What's important here is that the maintainer has spelled out for potential sponsors what they will get as part of the sponsorship engagement. So the more specific you can be about your needs and how you're going to use the funds, the more likely it is that an organization will be able to sponsor your project. The last reason we discussed today that I might not support your project is that I just can't pay you. Now, I've encountered a number of projects over the course of our sponsorship engagements that have very peculiar or very unique needs when it comes to sponsorship by comparison to other projects. Here's an example. If we wanted to support this project, and if these were the only payment mechanisms they had, it's bank transfer to someone in Europe or in the UK, PayPal to some person or some cryptocurrency transactions. If I go to my procurement department and ask them to transfer some funds via wire transfer to a person somewhere on the other side of the world, my procurement department, the ones who are responsible for making sure that we pay people, they're going to say no. And this is because decisions are governed by policy. The procurement department has rules they have to follow and those rules are there for a good reason. They enforce international law, they enforce local law, they help protect the organization from fraud. So be easy to pay. And there are several ways that you can be easy to pay for an organization. The first is to sign up for a program that's well understood like GitHub sponsors. If you've signed up for sponsors, then my organization doesn't pay you directly, they have a financial relationship with GitHub. And that makes it easier for the procurement department to understand who they're paying and how they're paying them and they can engage in a contractual relationship with GitHub. You can also set up an open collective. This is a fairly well understood platform for raising funds for your open source project or for your collective project and having transparent finances. And open collective again gives our procurement department someone specific to deal with. They don't have to process 100 PayPal transactions or some wire transfers and there's not a whole bunch of things that they have to do. They can just deal with open collective and that simplifies the procurement process. You can also get a fiscal host, a nonprofit organization who is there to receive funds on your behalf, provide legal assistance or other kinds of assistance for your project and give the organization's procurement department an entity, a nonprofit entity that they can deal with and again engage in a contractual relationship. So being easy to pay and not relying on a PayPal button for your project or a wire transfer to some person somewhere, that will make it much more likely for an organization to support your project because it fits within the policies that govern procurement in different organizations. So those five tips, be easy to find, identify yourself, communicate frequently, be specific about your needs and be easy to pay. If you do these things and none of them are very complicated but they require some intention and some thought, if you do these things for your project you will significantly raise the likelihood that you will be able to get support from other organizations, that you will get code, that you will get sponsorship, that you will get advocacy within those organizations. Thank you everyone. Enjoy the rest of FossAsia.