Let me introduce myself. So my name is Dennis Magda, and presently I take role of product manager at GridGain company, and at the same time I am PMC chair of Apache Ignite project that belongs to Apache Software Foundation. So what's the correlation between Apache Ignite and GridGain? So Apache Ignite is open source solution, open source stuff that available for everyone for free. But at the same time, we at GridGain as a company, I provide you with the enterprise version of the product. So GridGain actually is built on top of Apache Ignite. So we add a special set of enterprise-level features, and can do professional support for you, and maintenance releases, so everything that is needed for big production use cases. But in general, a lot of people who come to us, they are fine to start with Apache Ignite. Okay, so how is this talk related to Postgres to you guys as a Postgres users, DBAs and developers? So this is what we are going to answer throughout this conversation. But in general, I just want to cover one of the use cases. So Postgres database is designed to be a database that is running on a single machine. And presently, there are a lot of companies that trying to solve so-called horizontal scalability task. So when the amount of data grows exponentially, and if your single-server machine, Postgres database can longer handle all this amount of data, you need to do something with this. You need to either scale up, purchase in more expensive machine, or you have an option to scale out. And Ignite, Apache Ignite, is one of the option you might consider for your production use cases. I'm not going to cover all the, so Apache Ignite is in memory data fabric. So in general, is a distributed key value storage, when that in general is a cluster of machines interconnected with each other, and every machine stores a specific subset of the data, or in other terms, a specific chart or partition of the data. And on top of this cluster of machines, we do support a variety of different APIs, like computations, basic key value queries, and plus what should be interesting to you as a Postgres users and developers is our Apache Ignite SQL Grid component, which is NC99 SQL distributed engine. And I want just to spend 20 minutes of our time covering the theoretical part of the SQL Grid, and then I plan to switch to the practical part. I want to show you a simple demo. I have a Postgres database, pre-installed on my laptop, and the plan is to connect with this database, import a scheme with all the data into the cluster, into the Apache Ignite cluster, and to execute SQL queries on top of these cluster of machines, which will be running locally on my laptop as well. So, later on, we will review how distributed queries are executed in Apache Ignite, how do we support distributed email operations like updates, inserts, and deletes. Also for you, it might be useful to know which management and visualization tools are available for Apache Ignite. Next, we will wrap up our discussion with demo and roadmap and plans for Apache Ignite as SQL Grid component in particular. So, let's kick off our discussion. So, this is kind of a brief overview on what Apache Ignite and memory data fabric is. As I said, it's just a combination of different building blocks. So, the first one, the initial one, is advanced clustering. So, relying on this component, your distributed machines can auto discover each other across the network and form a single cluster. Once this happens, you can leverage from our data grid component, which stays above. Data grid component, what it does, it just basically shards, spreads out all the data uniformly across all the machines that are available. And also, data grid plus advanced clustering component, they do care about each high availability and fault tolerance. So, if your cluster state changes, for instance, if one of the nodes goes down, or if the new participant node joins the cluster, data grid, along with the clustering component, will automatically accept this new participant and will rebalance the data so that all the nodes store seamlessly equal amount of data across all the machines you have. Next, on top of this data grid, you can execute computations. Our compute grid is just our own implementation of our distributed MapReduce framework. Service grid is needed if you kind of build a microservices-based architecture and you want us to take care of load balancing, lifecycle, high availability and fault tolerance of your services. So, we will just deploy them across your Apache Nite cluster and you just need to provide us with your implementation. Streaming is also that you can usually find in a variety of memory data fabrics. It's just an ability to process and ingest data in real time. Also, as for the file system, so file system is interesting for Hadoop users.  And the main topic of our talk for today is SQL grid, which is essentially a component that gives you an ability to use well-known and familiar SQL queries that will be executed across the cluster of all your machines available and this component, usually without any exception, guarantees to return consistent and valid results set. No matter where the data is, whether the cluster is stable or not. So, it's something that we do care about. You have to take a look at this picture. So, the success, so how does this SQL grid work? So, you have to take a look at the very bottom. Here is we have our cluster of machines, like a couple of servers. And every server, as I said, is responsible for a subset of the data you have. And in the same time, at the same, every server maintains indexes for this subset of the data. Next, this is kind of a data layer. This is kind of your storage. Think of it as of your Postgres database, like the place where all the data is located. Your database, so you as a Postgres database user, usually you tight a patch ignite with the database below this layer, meaning that every, if you need to persist your data to disk, to Postgres database, then when every update happens in memory, it will be automatically propagated to Postgres database so that all the data that is stored in memory and then disk is consistent. This is something that we do on our own. You just need to enable special interfaces in our implementation, that's it. And then on top of this, let's say you have the upper layer is your application. It can be Java application, the net application, Python, PHP, whatever you like to work with. And applications, how do they interact with the cluster of machines? For languages like Java.net or C++, we developed native libraries so that if to talk about SQL queries, you just need to use our jar file or .NET DLL file and execute SQL queries over the special interfaces provided over there. But let's say if you are a Python user or a Ruby or PHP user, or for instance, your existing Java application is based on GDBC driver, then you can leverage from our GDBC driver or from our GDBC driver, which is actually exciting because in general, presently, you need to do just minor modifications if you want to migrate some GDBC or GDBC-based application from, let's say from Postgres to Ignite. But in the future, we plan to even to remove and eliminate this at all. So more details, a bit more details about our SQL grid. So as I mentioned, our SQL grid engine is NC99 compliant. So every aggregation group by certain functions are supported out of the box without any exception. At the same time, we do support joints, including cross joints. We can join the data that is located across the cluster on different nodes. I will just give more details on how we do this. Plus, if to go more deeply into details, how did we achieve, how we achieved this, how we supported this NC99, how we became NC99 compliant system. In general, we internally, Apache Ignite is integrated with H2 database. And we use H2 database only for the sake of clearly execution plan generation and for other optimizations related to the execution plan. But then H2 database is a kind of single machine instance, meaning that you can't make it a distributed system. But what we do, we took H2 database and build a distributed SQL engine relying on H2 and on our own implementation internals. This is what we actually did. And having this distributed system, we do support, we can guarantee that the data, so that the queries, if you kind of execute queries, at the time your cluster is unstable, meaning that some of the nodes leave the cluster, we do guarantee that without any exception, our query will return a consistent result. At least if there is some of the nodes that still has a subset of the data that is needed for successful query execution. And for sure, it will not be useful and beneficial to use any SQL-like engine without supporting indexes. So we allow to create single column indexes, group indexes, and there are some of the ways how you can do this. Using, let's say, you can do this from Java, but netcode or you can do it from Spring XML configuration and soon in a couple of months, you will be able to do this using DDL, Data Definition Language Statements. Okay, so let's take a look at the queries execution plan. Specifically, I want to talk about how we join the data. So on this picture, you can see that our cluster consists of three different nodes. Every node is primary for a subset of the data. And at the same time, every node maintains indexes for this data set. Your application, we call it Client over here, connects to this cluster. Let's say using Java API or DBC or the DBC driver, it doesn't matter. And then it issues and SQL query. Let it be a simple query that tries to join the data located in organizations and employees table. If you want to, the most performant way to execute join like query and to get a consistent result set is to collocate the data. So there is a notion of affinity collocation, meaning that let's say that in your organization, you have a record for Apple Corporation. And using your query, you want to gather, you want to get all the employees that work for Apple Corporations, filtering them out on some specific fields. And then in the application layer, what you do, you collocate your organization with your employees with a specific organization, meaning that if you do this, then all employees that work for that work for Apple Corporation, they will reside, they will be stored on the same node where Apple Corporation record is. So let's say that Apple Corporation record is located on node one and leveraging from affinity collocation, all the Apple employees will go and be stored there as well. What gives us, what do we get from this? Using this ability, we can execute our queries which joins in so-called collocated mode. As it's shown, so when your client application issues a query, the query is sent right away without any modification to the server nodes. Then the same query is executed over the local dataset, over the dataset that is presented on this specific machine. And then every node returns to the client a partial result set. And on the client side, we reduce this result set and give it back to your application. The advantages of these collocated execution is that we do avoid data movement across nodes. At the time the nodes need to join the data. And this is the fastest way you can execute SQL queries with joins. But at the same time, based on our practice, based on our experience and according to feedback of our users, we do know, we realized that it's sometimes, it's impossible to collocate all the data if you want to execute all the queries with joins that are needed for your business use case. And this is why some point of time we decided to support non-collocated SQL queries. The only difference of these queries from the previous one is that at the time when the query with join is being executed on every participant node, at the time a node needs to join the data, it might go to the other nodes in order to preload missing records from there because every node guarantees just to provide a consistent result set and it needs to get all the data that is needed to join all the records. And this is what actually happens and what's shown in this picture. But we do, this mode is disabled by default because depending on the amount of data that might be transferred throughout during a join, it can just give you a performance hit but what you get back, what you receive in return is that you can support 100% of all the queries, SQL queries that are needed for your application that are needed to successfully execute, successfully implement your business use case in the form of your application. A couple of words about indexing. So presently you can define indexes in just using special annotations like it's shown on the slide. This is a special query, SQL field annotation which is used for Java objects. The same annotation is supported for that net library or you can define your indexes in Spring XML configuration. So the same indexes definition will be enabled for you, so will be supported as a part of our DDL commands. The data that is stored in memory can be located in Java heap region or in a heap region that is not visible to Java garbage collector. So and presently we do have several implementation for indexes. So depending on the place where your data is, so if your data for specific cache, for specific data set like for organizations is located in the heap region, then the indexes will be located and maintained in a heap region as well. And the same is true for the opposite. So if your data is on a heap region, the indexes will be located in Java heap as well. But going forward, so this is, but in the next major release of Apache Ignite we plan to discontinue on heap region itself because presently most of the use cases, most of the users that use Apache Ignite, they operate on data sets, data sets measured in hundreds of gigabytes, terabytes and petabytes of data. And for these data sets, it's kind of, it's essential to put the data to of heap region initially.  A couple of words about our distributed DML. So actually, honestly DML was, DML support was released just a couple of months ago. Before that you were able to modify the data that is stored in your cluster only using basic key value like operations. But now you can just use well-known and familiar statements like insert, update, delete and merge. And here is so when you execute, let's say all the statements are internally, when you execute all the queues, like I just want to clarify this. If to just imagine that you have a system with Apache Ignite and Postgres as a relational database that precedes the data, then all the queries we are talking about at the moment are executed over the data set that is in memory. So we don't execute SQL queries over Postgres database. Meaning that when you execute, let's say insert, update, operation, first the update happens in memory and then Apache Ignite automatically goes to Postgres and updates data here in right through mode right behind mode. It can do it transactionally depending on your configuration, whatever you defined. So you just need to create and deploy cluster in such a way that you can fit all those 20 terabytes is that you can hold all these 20 terabytes in memory. Yeah, they have to be in memory if you use Postgres as a persistence layer. So there are some kind of movements in the direction of having all distributed disk storage, but it's something that is in the future. And if you use a relational database like Postgres and you want to leverage from our SQL queries, you have to preload all the data in memory. So there is no, we don't go to Postgres if you execute SQL queries. If you issue key value queries and let's say if you want to get key for, if you want to get a value for key 10, if this key is not located in memory, then we can go to Postgres and preload it from there. But if you execute SQL queries, no, we just execute it over there. Sure, there is always a way, there is always a way, but our general recommendation is that if you have a relational database like Postgres as a persistence storage, then we do suggest to issue all the updates over the memory layer. Otherwise, you need to sync up the data that is in memory in some other way. But in general, yes, so usually you partition, right? So partition is one sort of the minimal unity we operate on, right? But when you load the data, you don't load the data for partition, you load data for an entire cache, for let's say for an entire data set like for organizations. So this is how it works. So as for the management. So today during the demonstration, I will be using Apache Ignite Web Console. It's in a nutshell, it's a configuration wizard that helps you to prepare a configuration for your Apache Ignite cluster. Next, when you are done with your configuration, you can connect to your deployed cluster and monitor different metrics like CPU usage, memory utilization, and so on so forth. And at the same time, you can manage it. Like start new caches, stop some of the nodes, restart them, and so on so forth. At the same time, one of the features that is a part of the configuration wizard is an ability to import a scheme from your database. You can connect, this feature requires you to provide a GDBC compliant driver. And using this driver, the web console connects to your database, grabs scheme and tables definitions from there and creates a similar Apache Ignite caches for you is all the indexes you had on disk. And after that, once you have this configuration using your application code, you can trigger the preloading from your database if you want to enable write through and reads through mode between your in-memory layer and your persistence layer. Actually, next, at the time when you're developing your application based on Apache Ignite, and you want just to test some queries, or when you're in production and you just also want to execute some queries together metrics, you can go to web consoles, SQL queries tab, and issue selecting the email queries from there. And at the same time, you can see execution plans. If you're struggling with some sluggish query, queries monitoring is also useful if you want to see a kind of a picture. What happened to your cluster? What sort of queries were executed in some period of time?  You can adjust, alter them in order to make them faster. Or for instance, as an IT administrator, you can go to presently running queries tab and you can spot long running queries that might utilize your memory and CPU resources significantly. And using this tab, you can stop, alter some long running queries. This web console is a kind of a part of Apache Ignite, so project, but at the same time, since Apache Ignite has its DBC and GDBC drivers, you can easily connect it, you can easily connect to it from other tools like Apache Zeppelin. For Apache Zeppelin, you just need to use Apache Ignite's GDBC driver, and you can execute a variety of SQL queries that are NC99 compliant. Also, if you purchased a data analysis tool like Tableau, just take our DBC driver and observe and analyze the data that is stored cluster-wide using Tableau. Okay, now, and we came to the point of the demo.  I just want to, for the sake of the demo, and just to save more time for the questions and answers, I'm going to deploy a single node cluster on my laptop. I have pre-installed a Postgres database that has, it's a kind of sample database that stores all the countries with all the cities worldwide and it store population for every city. Now what I want to do, so I just want to prepare a configuration for my Apache Ignite cluster. I don't want to prepare it from scratch. I want to connect to my Postgres database and import scheme from there. So here is my Apache Ignite instance. So actually this is kind of instance of Apache Ignite as it is deployed on grid-gain infrastructure, but nothing prevents you from going to Apache Ignite and compile Apache Ignite web console on your own and deploy on your own cloud or on-premise. You will be just leveraging from the deployment that grid-gain has. And this is our configuration wizard. So let's start with the definition of our cluster. So here is I want to define, I need to define the name for my cluster and if you take a look at the other parameters, the one that might be interesting to you is Discovery SPI. This is a tiny component that is used by every node that attempts to join the cluster and this component just provides, gives every single node an ability to find out IP addresses of all the nodes that might be that are in the cluster or might join the cluster in the future. So by default we use multicast IP finder, meaning that when every node joined the cluster, the node will use multicast protocol to send its own IP addresses and to get addresses of the other nodes. But for this demo, it's more than enough to use so-called static IP finder where I just predefined a list of TCP-AP addresses where my cluster nodes will be deployed. Next. The next part here is we will try to connect to my database. I want to import the data from there. So this is Postgres driver. This is my connection string to my local database. Now we are going to the next window. I want to import only public scheme. Here is we see that I have only three tables over there and for every table we will create a respective cache configuration. So every cache will be partitioned, which means that every node will store on this a subset of the data in memory. And here is you can just define additional parameters. I will skip them for now. Okay, the model is ready. And here is we see that we prepared, also we prepared kind of Java project classes for your application. If you want to deserialize your data that is stored in your cluster. Plus here is our Apache Ignite scheme. So here is we have all the fields that might be used in your SQL queries. This is one of the indexes that were defined in your Postgres database. And we define the same indexes for Apache Ignite in memory data fabric. And the same was done for other caches, for other tables. This is our scheme. Also as I said we prepared a configuration for every table we defined cache configuration. Partitioned if you want to make this cache transactional you can quickly do it by switching this parameter. Also if you want to introduce some redundancy level, if you want that by default there is only primary copy stored in your cluster. But if in addition to the primary copy you want to have a node that will store a backup copy for one of the partitions you need to increase this level, this parameter. And here is you just define what is stored, what is memory mode. And if it's a partition cache, if it's a partition cache it means that in the partition scenario a cache is split on let's say on 1,000 shards of partitions. And let's say the first node will be primary for partition 10. But it will be a backup node for partition 12. The other node will be backup for partition 10 but will be primary for partition 12. So this is how it works. It's not a full replica for partition cache. If you want to achieve full replication or for the whole data set across all the cluster machines you need to use a replicated level. And final parameter I want to use here is the history size. I want just to demonstrate. So the history size means that every query that is executed on a node will be stored for the sake of monitoring. I just want to store a hundred latest queries. And the same I want to store for country cache. It's the latest hundred queries. Okay, let's keep these two parameters and go directly to the summary tab. So here it is. So the web console prepared Apache Ignite configuration for us, some of the Java classes, Docker file, Pomex ML, so just let's go ahead and download this project. So for instance you can also download a project with some template classes. Here it is. Actually I don't know this product before, this project before, the same, absolutely the same project. Here is we have the configuration that was prepared by Apache Ignite AppCancell. The only thing that I changed is that I just defined these connections to any parameters so that Apache Ignite can connect to my Postgres database in order to preload the data from disk and then to enable write through behavior, meaning that when the data is updated in memory, the update will go to the persistence layer. So let's just start one single Apache Ignite node. So this is how it looks like. I just need to pass this configuration as a parameter. And while the node is being started, let's go to our web console for the monitoring tab. I want to see, yeah, here is my node. Single, the node, the only one node I have in the cluster. Here you can see CPU heap usage and the caches that are deployed by the caches are empty. So let's preload a web console defined a special template class for us that preloads the data from the Postgres database. Here is we will connect to the cluster and we'll trigger the preloading for all the caches we have. The database is tiny, but it should be enough for us to demonstrate kind of the capabilities, just basic capabilities of our SQL engine. So it looks like we preloaded, so we just had less than a megabyte of data, which is absolutely not a kind of a general use case, just a demonstration. And now what we can do, having the data in memory, we can go to the queries tab. Here is I just have some of the predefined queries. For instance, here I'm trying to find out the most populated countries in the world. If you execute this query, we will find out that the China, if the most populated, the United States take the third place. You can see execution plan, for instance, if you needed this, if you want to debug your query. And there are different output charts that might be supported by, for some of the queries, but here we just use aggregation, it's not, looks like we can't use other output formats. Okay, let's go below. Here is I have a kind of query with join. So I want to return, I want to get top three inhabited cities in the world, not only in the world, in the countries like United States, Russia and China. So, and we can find out that the most inhabited town is Shanghai, the Moscow goes the next, and then we have here New York. Next, the next part is, let's demonstrate the right through capabilities. Here is I have some city in memory. Somewhere I hope in New Zealand. Let's double check that I have the same city in postgres database. Here it is. The population is the same. And now what I want to do, I just want to update the population to some other value. And I want to make sure that the data will be updated both in memory and on disk. Here it is. So the update completed. Let's check that the memory part, yeah, the memory part was modified and the same should happen to postgres. Okay, so Apache Ignite just automatically went to the postgres and did and performed this update there. Aren't just the same simple and straightforward delete query. So let's just delete this record from memory. Okay, we no longer have this memory. No longer have this record. And it should have been removed from postgres. The same. And final thing, final thing is that while we were executing this queries, the queries statistic was aggregated for us. So if to go to this page, you can see a number of times this query, every query was executed. The minimum execution time, average execution time and so on so forth. And finally, at the table, yes, I think that the table is kind of tiny. It's just, what do you mean? I don't know, so it actually depends because it's a total time that take from this web console to connect to a special agent that stays in between then send the query to it. This agent transferred this query to my cluster then cluster went to the, but in general, no. If you go to our kind of benchmarks, if you take a look at them then for sure you will find out that kind of, you will not get performance heat if you switch to Apache Ignite. In general, as a postgres database user, you might want to use it for this scenario to accelerate your read operations so that all the reads will go to your Apache Ignite cluster. And when you perform writes, the writes should take approximately the same time. So the write will be updated in memory and then on disk. But if you're slower than postgres, for sure no one would use this in production. But it's just, I think that it's just a matter of my laptop. And just a number of communication channels I have between my web console. Because it's also, this is some of the, this application is deployed on some service I need to connect to it over the Wi-Fi. This is what happens. I usually, yeah, usually, yeah, so here is we had, here is we had three tables. And as you see, it took us just in a matter of seconds to import to turn the tables into the caches. So this is what you usually, you as Apache Ignite user usually do is the time you calculate, you just do capacity planning for your cluster. So you can calculate how much room you need to have in memory. If let's say if you have some data set on disk and then you know what you can afford and in terms of your hardware. For instance, we have one of the customers that has a kind of a cluster of 1,000 machines and every machine can store up to terabyte of data. Meaning that, for instance, for this customer, it might be enough to have only two or one node in Apache Ignite cluster. If you store, if you, let's say, if you can't afford buying such expensive machines, you can buy machines that have, let's say, 64 gigabytes of data for them. And then you just need to have, let's say, 10 machines in your cluster, 20 machines in your cluster, depending on your capacity planning. And we just scale out. This is how it happens. This is the bread and butter of Apache Ignite in memory data fabric. If you see, if you just realize that there is, that you no longer have room on some of your cluster machines, what you do, you just take one more additional hardware, add it to your cluster and the data will be rebalanced across this machine. For this to work, you need to have as much memory as your database size. Say it again, please. For this to work, we need to have as much memory as your database size. If you want the entire database in the cache. Yeah, yeah, yeah. Correct. Then why do we even need this? We can as well in Postgres repair, share memory buffers to have as much size as your database. And most of the database will be already in memory. The question is load balancing. The question is load balancing. So it's good if you use some, if you use some sharding technology created for Postgres, but if you still use some operating system caches on top of your disbay Postgres, all this will be located on a single machine. And when you have, let's say, millions or tens of millions in operations of in some period of time, your single machine might become a bottleneck for you. This is actually what happens with many financial institutions and banks. The people used to use, let's say Oracle Database and they had to buy expensive mainframe machines in order to scale up, in order to keep up with the growing workloads. But there is always kind of an opportunity. If you don't have enough money and you want to boost your performance and you want to buy kind of affordable commodity hardware, then in memory data grids or in memory databases, like, I don't know, MMC, QOLO, VOLTDB, there are also kind of an excellent use case for you because they allow you to scale out, just relying on commodity hardware and they do care about low balancing of your queries. Transactions, we are a seed-compliant system, so we are fully transactional, we support distributed transactions, pessimistic, optimistic, we use different modes like. To face, yeah, we do implement our, we do implement to face commit protocol. So we do support all the types that are supported by H2 database. So everything that is supported by H2, so we, as I said, we use H2 as a kind of, as a SQL engine. So this is what is supported right now. So if you can query the data using SQL, right? Or like, we also support a full-text search queries if you are talking about geospatial queries, you just need to place the data into your cluster. So basically, we do store data in our own binary format, so a special protocol, the special serialization protocol we implemented. It should remind you just some like format. And then, based on this kind of protocol, we can execute SQL queries, full-text search queries, whatever you like. What's that SQL query? NC99 queries, NC99, I mean that. So we don't support, we don't support Postgres, MySQL, or Oracle syntax. We only support kind of everything that is defined in the specification, yeah. So H2 is kind of, H2 kind of NC99 compliant database and this makes us NC99 compliant distributed engine as well, this is what we did. But it's kind of, you know, it's, I think that. It's, I do agree that it kind of depends on the use case, for sure, but a lot of our users and customers, at least for OLTP workloads, for OLTP workloads, it was not an issue for them. No one complained, so significantly complained at the time they were migrating, let's say, from Oracle-like solution to Apache Ignite solution. Usually there is kind of some, if something is missing, there is always, we can find kind of a workaround if you need this, but usually there, we will always, the customers will, usually we're able to find some standard alternative for a function, say a custom to use, let's say in Postgres or Oracle database. So we don't support stored procedures, but we do allow define your own functions, like if you want to have some function that should be executed on the server side, you can do this and trigger it, call it from your SQL query, and at the same time, if you need just, it's procedures in relational words, equivalent, in my understanding, to map reduce like frameworks in memory data grid worlds. So you just can create a special computation and send it to your cluster, this is what usually can be done. We need to, sometimes you need, sometimes you don't, it just depends on what are you doing. This is good for a subset. Yeah, some, I don't know. It depends on industry, right? Yes, for financial, maybe it's okay, but for scientific... No, no, no, this is what I was saying, so this is what I'm saying. So presently, at the moment, Apache Ignite is mostly used for OLTP workloads, and there is a kind of minor part of customers for OLAP realm, but as for OLTP workloads, we do have a lot of, most of our customers and users are from financial institutions like Sberbank, the biggest Barclays, ING, CET, all of them use us as a kind of for SQL execution and so on so forth. Plus we have customers from Telecom, so from IT, all the kind of stuff. But for sure, I'm not saying that it's kind of, we are not competing to Postgres. We just, here is what I'm talking, we just try to make it faster for some of the use cases Apache Ignite might be useful for. This is what I'm saying. Yeah, we can talk, so, yeah. Yeah, there are still, there is always, there are always different options, yeah, you're correct. So it's up to you, it's just what you like to use more, what you need at this particular moment, so. So you can just look, not only at Apache Ignite, but yeah, so actually I'm done. I just quickly can show you the kind of the final slide, just 30 seconds. Here is our roadmap that is related to SQL, so we do, presently when you define the indexes, you can define them in a static manner only, meaning that you can alter them when your cluster is up and running. This will be fixed and improved in a month. And also we will support distributed DDL soon. So present, so you will be able to create caches, alter indexes, drop indexes and caches using standard DDL commands. And also we do spend most of our efforts improving performance for, first for OLTP workloads and partially for specific OLAP workloads. Thanks for your time. If you have any questions, we can talk about it. By default we don't, but we do have several ways how you can do it on your own using your application code so that if you have some, your own compressor or you can do it.


In today's video, I'm going to be giving you 13 of the best plugins that you can use for your WordPress dropshipping website.  Sometimes it can be a bit time consuming and sometimes they're just a bit hard to figure out. But don't you worry because there's always an app or a plugin that can make certain aspects of the business a lot easier and a lot more streamlined. That's why in this video, I'm going to be giving you our top picks for the 13 best plugins to help you scale your WordPress dropshipping website. Whether you're in Ubi or you've been in the game for a while, some of these plugins are bound to give you some advantages. So just make sure to watch the video all the way to the end. Let's go ahead and run that intro and let's get started. What's going on everyone, Mara here with AutoDS. And if you haven't done so already, please make sure to hit that subscribe button as well as ring that little bell notification so you don't miss out on any future dropshipping videos. On this channel, we cover anything and everything dropshipping related starting from some of the best possible tips and tricks to help you start and scale your dropshipping business to some of the best products for you to offer for maximum profitability. So if that's something that interests you, just make sure to hit that subscribe button. Now, dropshipping on a website like WordPress can have its advantages as well as a few disadvantages. Now, some of the advantages to dropshipping on WordPress can include the fact that for one, it's free to use. You can actually sign up for WordPress for completely free. Second, WordPress is fully customizable, meaning you can literally change anything you need or anything you want on the website or on your own website. Third, they have tons of free as well as paid plugins, which we're going to cover in this video. And last but not least, number four, they have a content management system. Now, a content management system is something that is actually pretty helpful because it can help you give control to other users to be able to manage starting content on your website, such as blogs. Now, as for disadvantages, the first thing is you don't have organic traffic, but you don't really have that either on Shopify or Wix. So it's actually pretty easy to get over this. All you have to do is create your own content on something like TikTok, or you can run paid ads on Facebook, or you can go the influencer marketing route. Now, if you want more information on any of these different methods to market your brand or your business, then just check out the cheat sheet. I'm going to have a few different links in there to help you get started. Now, the second disadvantage is it has a bit of a learning curve. So if you're not really techie, then this is something that you're going to have to play around with so that way you can get used to it. It's not 100% beginner friendly, but with just a little bit of messing around a couple of tutorials and checking out this YouTube channel, then you can get started using WordPress without a problem. Now, with that being said, let's go ahead and start to count on for the 13 best plugins that you can use for your WordPress dropshipping website. Now, without a doubt, probably one of the best e-commerce platforms that you can use with WordPress is going to be WooCommerce. WooCommerce themselves actually have an extensive list of dropshipping extensions that can help you out in your business. On top of that, they have some easy to use and free themes to help you customize your website and they have flexible and secure payment options. Honestly, if you're looking to dropship on WordPress, WooCommerce is probably going to be your best option. Now, another awesome thing about using WooCommerce with your WordPress website is the fact that it's easily integratable with AutoDS. So once you integrate WooCommerce with AutoDS, you can enjoy the benefits to automating your entire store. The next plugin on this list is going to be Elementor Website Builder. This plugin provides you with different widgets as well as different tools to help you set up your website in a professional and good looking way. Elementor has over 100 different widgets and has an easy to use drag and drop editor. On top of that, they have over 300 different design templates that you can use that, again, are easily customizable. And one of the coolest things about it, in my opinion, is the fact that you have live editing. So as you're editing your website on one screen, you can see the changes being made live on the other screen. Next up, we have Royal Elementor Add-ons, which is a collection of widgets as well as different add-ons. With this, you get tons of different widgets for your dropshipping store. One widget, for example, is the team member widget, which displays images and information on different team members on a particular page on your website. There's also things like the Google Maps widget, which is pretty self-explanatory, as well as the price list widget, which is actually pretty interesting because what this does is it helps you display different pricing options in a nice and organized manner. So it's easy for your customers to read. You also have different theme builder and template kits, which again, help you customize the layout of your store. So that way it looks a bit more professional and pre-made widget blocks and extensions, which are pre-made widgets that you can display on your store for your customers to use. Next up at number four, we have an email marketing goldmine, and this is MailChimp. Now MailChimp is an awesome plugin to have because for one, it helps you automate your emails to your target audience.  You also get easy list management. So you can see all of the different people that are on your email list. So you can easily kick out some that are either inactive or just bots. And you get report analytics. So you can see who's opened your emails, who's put them to spam, and who's just flat out ignored them. MailChimp also helps you with pop-ups. So you know those pop-ups that you get as soon as you enter a certain website and it says enter your email for 10% off. More than likely, that's MailChimp. Now that's awesome because that helps you collect more emails so that way you can build your email list. So you have more people that you can target for your email marketing. Up next, you have OptinMonster, which is a marketing toolkit for WordPress. OptinMonster helps you A-B test different forms so you can see which type of form works best for your audience. You also get campaign analytics, which helps you target the right demographic for your store. At number six, we have Jetpack, which is a site security tool. Jetpack gives you 24-7 site security with real-time backups. So if anything were to ever happen to your store, let's say you were to get hacked and then deleted, Jetpack can help you recover that with its backups. Jetpack also helps you optimize the speed and performance of your website by optimizing it across different platforms and devices such as androids, iPhones, or PCs. Yoast SEO is up next. And what this does is it makes SEO friendly. So pretty much what it does is it makes SEO a lot easier for you to include it in your website. So that way you can rank higher on websites such as Google. Yoast SEO is free to use. And it also gives you title and meta description optimization. So it can help you analyze your titles as well as your meta descriptions. Monster Insights is up next. And what this does is it helps give you an in-depth analysis of your WooCommerce store's performance. With this, you get quick and easy Google Analytics setup as well as ads tracking. You also get real-time statistics on your website's traffic and your user's behavior. So you're going to be able to see what the users are doing on your website. You can see what pages are going to view and where these customers are coming from. At number nine, we have redirection. Now what redirection is is something pretty simple. So what it does is it helps redirect customers that go to one page. It helps redirect them to a different one. Next up at number 10, we have WP forms helping you make some easy to use and understand forms for your customers to submit data. Now the awesome thing about WP forms is the fact that it's super simple for you to set up your own forms. Now these forms for the most part are going to be used by your customers to submit their information or to submit a question that they have. So typically they're going to be able to put their name, their email and their question. Now WP forms makes this super easy for you because it includes an easy to use editor, which you can use to just drag and drop different parts of the form. So that way you can create one. On top of that, if you're not really good at creating different forms or if you don't really know the layout that it should go, they also have some pre-built templates that you can use. Next up, you have shop mentor, which helps you build your product pages on WooCommerce. They have an entire library of custom product pages for you to be able to customize yourself or just import to your store as is. On top of that, it also gives you the ability to build your checkout page so you can customize it to however you see fit. Now, if you're selling internationally, then this next plugin is one that you're going to need. WooMultiCurrency gives your customers the option to change the prices on your website to their currency. So let's say your store is in the US and everything is in dollars, but your customers in the UK, they can go ahead and change the currency to pounds. Now, not only that, but it actually auto-detects the country that your customer is visiting from. So it'll automatically change the currency to the appropriate one. And best of all, it has an auto update for exchange rates. So you don't have to worry about converting US dollars to pounds, euros, or whatever else it may be. This app does it all by itself. And last but not least, one of the most important things that you can do on your website is have social proof. And in order to help you that, we have customer reviews for WooCommerce. Now, of course, to get this one to work, you are going to have to have WooCommerce installed, but this can really help build trust in your customers so that way they can make a purchase once they see that a particular item has a five-star review, let's say. Now, a few other features that you get with this app are automated email reminders to your customers, quick and easy reviewing of your different reviews that have been submitted to your products pages or to your website. Your customers have the ability to submit enhanced reviews, which include a star rating, images, and text. And it easily integrates with Google Shopping. Now, those were the top 13 plugins that you can use for your WordPress store. If you enjoyed this video and you want to see more like it, please make sure to hit that subscribe button and make sure to leave a like. Thank you to everyone for watching. As always, it means a ton, especially if you made it all the way to the end. Once again, my name is Mario with AutoDS and catch you all in the next video.


Hey everybody, this is Brian and welcome back. It's been seven months since I've done a video? Wow, has it been seven months? No, it's been longer than that. Wow, seven months. It's been a while. It's been a busy seven months. I get a lot of email and I do still try to read and reply to all my email but sometimes it's just impossible. So for those of you that have been wondering why I haven't published in seven months, Void Realms has not changed one bit because I've been busy. Anyways, I really need to redo this website. I didn't lose any code. It's been on the same host for years now. It's still 100% funded by your donations and it is still non-profit. I'm very happy about that. See, went through a nasty breakup, moved not once but twice, changed jobs not once but twice, bought a house, actually just bought a house. I'm still in the process of unpacking. Met someone very special to me and that's about all of my personal life. I'm going to share with you animals but you guys have been asking. So in short, life's been just crazy. Things are calming down now. Plug in botnet. You've heard me kind of talk about this and I've released some code and stuff. I'm actually going to stop developing this altogether. The project has not retained my interest at all and I did a similar program called laptoplocator.nut years ago which would track laptops and the problem it had is the software had to be installed before someone lost or got their laptop stolen or whatever. The problem is everybody who contacted me was like, hey dude, I lost my laptop six years ago in a foreign country. I'll give you a dollar if you can track it down and it just was not worth my time. I could see how for big businesses this would be worth it. It's just you got to be interested in what you're working on so I'm just not interested in it anymore. I may delete the source code or I may just give it away. I'm not sure but plug in botnet is going to sit there until its subscription runs out and then the hosting plan is just going to kill it. So what have I been working on? I'm glad you asked. SocietyQuestClub.com, side project me and a buddy of mine have been working on. As you can see, three people like this. So it's really gotten popular. It's not gained a whole lot of popularity at all. We've decided to completely redo it from the ground up. It's no longer going to be a web portal and admittedly the web portal wasn't that great. It's going to be a mobile app. The problem with developing a mobile app is well compounded by the fact that A, I've never really built a mobile app before. Shocker, I know, 2017 and I've never built a mobile app. So I had to learn mobile development. So that's really what I've been doing for the last seven months. The problem with mobile development is once you release for one platform, the other platform wants it. So my buddy is a sales guy. I'm a programmer. I use Android. He uses Apple. That's not true. I actually have both devices but don't ask me why I have two cell phones. I actually have four cell phones. Let me count them. Five cell phones. Don't ask why. Point being, let's say you make this a really awesome program and you release it for Android. Well, then sales guy comes in and goes, what about iOS? So now you got to start all over again. You make it for iOS. You want it for Android. Now you're juggling multiple code bases. So if you find a bug in Apple, you don't have that in Android because they are not compatible. They use two different frameworks. For example, this uses Android Studio. This uses either Objective-C or Swift. Not compatible in the least at all. So I started looking at cross-platform frameworks, if you will. I looked at a lot of them. I actually looked at all of them that were out there and cute being near and dear to my heart. At the time, I didn't think QML. Whoa, I almost switched that to that little icon there. That would have been bad. Anyways, point being QML at the time, I didn't think was really mature enough to do what I wanted it to do.  If you read the forums, they said, well, it's not really designed to do that. Really? Come on, guys. That functionality may have existed at that time. I just was not easily finding it and having a job and kid and family and all that and friends.  So I looked at Zimera and I looked at a bunch of others. I got really hooked into React Native. React Native, really, I got to admit, just hooked me for about four months straight. I made a couple of personal programs with this. In theory, I loved React Native. I absolutely loved it. What I hated about it was that it's JavaScript. I cannot stand JavaScript. Do not ask me why. Maybe it's years and years of C-Sharp and C++, but JavaScript is this abomination that needs to die.  Don't play around with scope is all I'm saying. Anyways, point being, I left React Native not due to JavaScript. JavaScript gives me a migraine. But React Native is a Facebook framework. See how it's Facebook? And I went to integrate. I started doing serious development here for Society Quest Club said, all right, let's do this. I went to integrate just a simple Facebook login with the Facebook React Native and it would not work. You would think that a framework coming from Facebook would have Facebook baked right into it, but no. So I spent literally two weeks of my life scouring through forums, user groups, asking questions, stack overflow, you name it. No one could figure out my exact error message. And no, I'm not going to exhaustively post it again because at this point, I just do not care. Point being, the error messages it kicked out made no sense. And then people said, oh, well, don't use, you know, don't use this, use that, try this, try it. Everything I tried, nothing worked. Somebody even suggested wiping the whole thing and starting from scratch. And I'm like, starting from scratch. This is from scratch. I literally made the program, tried doing the Facebook SDK and then poof, didn't work. Then one shining ray of hope I got it to work. I actually brought up the app. I saw the Facebook login button. I clicked it. Everything worked. It made no sense why it didn't work. So I saved all my work, table check, triple checked everything. I was all excited, went and had a beer and the next day came back, woke my computer up from sleep. And it still didn't work. It was kicking out just a different error message. I said, you know, I'm done. I'm so completely done with this. I shouldn't have to spend two weeks just trying to get a Facebook login on a Facebook platform. Anyways, rant over. Point being, I went and I tried a lot of these different frameworks. The only one that I really haven't tried is Flutter, simply because I'm sorry, Google, I didn't want to learn yet another programming language because it uses Dart. I may do that in the future, but right now I'm really trying to just get things done. So I want to use things that are familiar to me. So going back to what I've been doing is I've really been growing the Voidrums Facebook group. And as you can see, we have, holy crap, we have 1,706 members in there. It just seems to be growing every day and it's growing way, way, way out of what I can control. We have several admins. I want to give a big shout out to everybody in there who's been very helpful and listened to me rant and rave about React data with JavaScript and Xamarin and all these other things. See like here that have you tried Flutter. You know, we just toss out ideas and it's not just me and one of the people. I mean, there's thousands of people in here that are talking about things and getting feedback. So I've really been trying to grow the community and just give back. And on this, there was a discussion that happened and I'm sorry, on the spot I was going to actually say your name, but I forget the gentleman's name who said, hey, have you tried vplay, which leads me to what I've been doing now. Been looking at vplay.net. And vplay, I gotta admit, I wasn't really liking the idea of something you have to pay for until I really looked at it. Now, don't hit the stop button. You don't actually have to pay for it. Let me explain a little bit. You need to choose games or apps. What vplay is doing is acts as a layer on top of Qt and QML. So all of the fun powerful features you have in Qt and QML, you have in vplay. And the beauty of it is you don't have to be an expert in JavaScript.  Of course, now that I'm on the spot, I can't think of like Redux and MobX and all the state management nonsense that just drove me crazy. You don't have to learn any of that nonsense.  You can actually use JavaScript in QML. And you have the full power of the Q framework. Now, apps and games. So I'm just going to pick one. I'll just pick apps. And it's got some really cool stuff to it. You can, it's got a lot of coding in it. And it's got really, let me close this just so I can show you why I'm interested in this. If you look at vplay, what is it? Let me take a minute. My internet's been kind of crazy here. You can use the best of Qt. And I know this is going to sound like a sales pitch. And it goes even further. It's got so much features in it. The code wants to play anywhere, native performance, component base. It's got the best parts of all of the other things that I have been trying. And it runs on the platform that I love. Cute. So why not? This is the only thing I didn't really care for was pricing. You see, personal's free. So you're like, what is wrong with this? Why are you not liking free? Well, my project, this society quest club, is going to be Facebook based, meaning you have a Facebook login. And I want to use something called Google Firebase as a backend, which is a real time database, very powerful database. The problem is, if you scroll down Google Firebase, not in the free version. Of course, now that I'm on the spot here, there it is, social network like Facebook, not in the free version. So you got to pay for that, which makes sense. Now they have a 30% off sale. It's 49 bucks a month. That's about $600, which, you know, that's really not bad if you think about it, because I remember plucking down $400 for Delphi 4 way back in 2000. So yeah, that's really not bad. And considering if you have, you make a game that takes off and you make a dollar or something per user and you get 100 users, it's already paid for itself. And you don't have to write any of this code. So then I started thinking, okay, great. They probably handicap it. They have indie versus enterprise. Well, actually, if you scroll down, they have the same thing except for a customer success manager and turnover and support hours. So from a technical standpoint, they have the exact same things, price difference being level of support you get. Okay, that makes sense. So anyways, long story short, I downloaded the plan. I just started playing around with it. And I actually, you know what? I got optimistic again. I started liking it. I tried playing with some of the features and it wasn't quite clicking. So I had to read some of the documentation. And then I actually talked with the CEO and co-founder Chris and said, Hey, do you mind if I just check this out and make some tutorials on it? Actually, to be honest, he emailed me because when you download it, blah, blah, blah, you enter your email address. Really great guy. And I'm not going to say it because I don't know if I'm allowed to, but they have got some features coming that are just going to blow the pants off of everything else out there. So I think what I'm going to start doing is I'm going to really learn vplay, not just from the app side, but from the game side to because vplay is really designed to be a game engine. It's just I was blown away when I looked at the stuff and some of the sample games, some of the sample games in this thing that are free and come with source code are better than the actual games out in, you know, Google Player or the iStore. I was kind of surprised. And when you look at them, they make sense. The way QML and vplay come together, I know this sounds like a sales pitch and I swear I am not getting paid by these guys at all. I'm actually thinking about giving them money to buy this thing. But the way it comes together, it's just very fluid and it's kind of in the spirit of Qt. And that's what I'm looking for here. I haven't really played with Qt a whole lot because I've been messing around with other frameworks. So I'm hoping that my beloved Qt will forgive me and be nice to me and that I won't lose all the knowledge that I gained throughout the years. So that is a lot of talking. But in short, I'm going to continue working on the mobile version of Society Quest Club. And at the same time, I'm going to start making tutorials on how vplay here. And we'll see what happens. Well, that's it. Give me feedback. I'm really interested to know what you guys think about vplay and what successes and what stories you have with it. I want to say I know I sound negative, like I'm bashing other frameworks like React Native. I'm sure they're great frameworks. I'm just saying I did not have great experiences with them. No, I have not tried every single framework out there and I do not intend to. I just don't have that kind of time. Every framework is different. Use the right tool for the job and I'm kind of leaning towards QML, Qt, and vplay. So yeah, just drop a comment and let me know what you think.


Despite the availability of prophylactic vaccines against hepatitis B for over three decades, there are still more than 2 billion people have been infected and 240 million of them were chronic. Antiviral therapies currently used in the treatment of CHB, chronic hepatitis B, infection include PEG interferon, standard interferon and nucleus-tide analogs, NARS, but none of them can provide sustained control of viral replication. As an alternative strategy, therapeutic vaccines for CHB patients have been widely studied and showed some promising efficacies in dozens of pre-clinical and clinical trials. In this article, we review current research progress in several types of therapeutic vaccines for CHB treatment, including protein-based vaccines, DNA-based vaccines, live vector-based vaccines, peptid-based vaccines and cell-based therapies. These researches may provide some clues for developing new treatments in CHB infection. This article was offered by Jin Xiangli, Mingru Bao, Jun G.E., and others. We are article.tv, links in the description below.


Our son of the eighth brought to you from out the pages of Edgar Rice borrows fascinating book The entire tribe seems to be assembled I have no fear of death not even this When the time comes I'll drink without hesitation. We refuse to drink. We'll be tortured if we drink we die Can we is it possible that we could impose our superior magic upon these pagans and perhaps postpone this poison cup ceremony perhaps as I suggested before Some ritual from the book of the dead or double the raising of Isis by Osiris rather Fantastic and besides that we have no mummy to read and I seriously doubt our ability to raise it if we had it Yes, I know I have been talking to not lead all he says drink and have no fear by Joe. What cheerful advice What else did he say down? No thing he was being watched, but I trust him. I shall drink Oh, yes, so will we all if we have to miss you if have you another plan I support from Flandra to attempt something which I do not think they quite know I say Do you know I completely forgotten till now the rocket rocket? What do you mean the rockets we brought from the ship couldn't you substitute one or even two for the money and the Right you spoke out clean. I really believe you hit the power solution. Yeah, make your preparations and keep the native's attention away from me I shall get the rocket. Here comes the chief postpone the poison drinking competition if you can or don't No, don't worry. Wimby. He don't go candy. I know Whatever you said it worked out as long we miss you I told him that as soon as the great priest has performed is magic. We would all think well We perform this ceremony professor and can I do anything that suppose we perform the right just where we are You please play the part of the hawk headed one take a short stick and the rocket went down. No brings Yes, what then you have a scene of picture I suppose or perhaps a statue of a mummy. Yes, of course Then pull your arms across your breast in that manner look straight ahead neither to write knowledge You can trust me and I suppose professor. I had better draw the sacred symbols on the ground Yes, Melinda and be sure to cover Clayton's movements when he places the rocket on the ground What do you miss here is the rocket? I do not think I will see ah Now then Clayton Place the rock and be sure to place it pointing to the blacks not for us The cannibals watch professor Porter as he walks solemnly toward the council fire Dono's sailors stand with their arms outstretched as Philander inscribed before them the mystic symbols If hands folded across his breath Professor Porter stands before the fire in toning the chant of the ancient Egyptian Sun worshippers The natives lean forward the professor's in toning wakes in their breath to corresponding court of religious sympathy The witch doctor morose and sullen squats in the shadow a half sneer on his hideously painted face Professor Porter raises his arms above his head closes his eyes His body sways from side to side Hey Clayton hidden behind Philander lights the rocket Like a living thing of fire the green rocket shoots towards the blacks as they start to run the rocket leaps into the air It turns and flashes a gleaming darting snake a vivid green fire towards the sacrificial order The rocket passes him it turns again Hit the stone sword into the air and streaks over the chiefs house leaving a trail of sparks behind it loses itself in the jungle The natives throw themselves on the ground Haces in the dust before Professor Porter as the early morning sun floods the clearing where Lord Grace Oak built his hut It shines upon Jane Porter and Tarzan as they drop visually branch by branch from the upper jungle terrace to the soft green moss below Thanks white skin, but I don't believe that I'll ever get quite used to traveling through the tree top at breakneck speed Speed speed. Yes speed. Save as quick Tarzan sits down at the foot of a giant tree as Jane crosses the clearing and goes to the hut. No Jane go hut fight skin. Look almost as dusty and unused looking as when we first discovered it Thank goodness the black didn't take me. Now I wonder if there are any more cartridges in the spot. Cecil said that I would always find them. Here they are. Two packages of them. Now I'll feel much safer. I suppose I've got to try this gun again. It seems to be all right. Jane runs through the door there on the edge of the clearing are several great apes. She clutters the gun in the hand and shoots to Tarzan. She stops as she sees the expression on Tarzan's face. The ape man almost smiles as he watches the great roots make their way across the clearing toward him. Jane frighten. Yes, yes I skin. Jane frighten. No, no sticker. Jane. Tarzan rises and places his bronze arm about Jane's slender shoulders as the apes approach. They chatter excitedly among themselves as they watch this hairless sheath. Gezan, Tika's belu, comes forward eagerly unafraid. The baby ape dances up and down in sheer delight at hearing Jane speak its name. And do a full of Santo Tec, Harman Gany, Jane. Tarzan tells the ape that they must protect Jane from the other beasts of the jungle. He explains that she, Jane, is to be accepted as one of the tribe. Little Gezan, paying no attention to the warnings of Tika, his mother comes forward and takes Jane by the hand. Tika gathers courage, moves closer, and stretches out a huge paw to Jane. Jane shrinks back. Jane, no frighten. Tika, no tec, Jane. Tika, Targ, mongo, sea. Targ, tell Jane, say more. Luma, come. Yes, my skin. I think I understand. You mean that the apes will look out for me. Guard me against Luma and say more. Yes, yes, yes. Tarzan nods his head vigorously as he realizes that Jane has understood. The apes turn away. Little Gezan leaps and dances after his mother. Tarzan and Jane follow. And as the great apes take through the trees, Tarzan lifts Jane in his arms and strives into the jungle trail. Back in the cannibal village, Professor Porto, Philander, Clayton, Darlo, and the sailors await anxiously the results of their magic. I don't like to look on that witch doctor's face, Darlo. You may know, Monsieur, in the first place, he sees that we have affected the natives and he is liable to lose his life if they decide to believe in us. It is an undignified effort to get out of the way of the rocket. He evidently tells that very keenly. I suppose in order to live up to what is expected of us, we should do very little talking. No one is paying very much attention to us now. They're all watching the witch doctor trying to convince the chief of something. Very earnest talk, too, that he's making. I wonder... I do not wonder. I know that he is trying to convince the chief that no matter what our medicine magic may be, we still should drink the poison. I'm very much afraid that you are right, Darlo, that there is nothing to do but drink. So it would seem. Rather a ghastly way to go out, I'd much rather put up a scrap. But we must not forget what Tachito said, that we should drink and not fear. Yes, but can we trust Tachito? Yes, yes, yes, Darlo. I'll admit that he has on several occasions tried to help us. But great Scott, the drink an unknown poison. Hush, hush! Here comes the chief. And that is the ceremonial procession of the test by poison. Oh well. What of it? Let's drink. The black stand motionless as the chief advances with the poison. With steady hands, Professor Porter takes the gourd, raises it slowly to his lips, and pour in.


Welcome back everybody. I'm Peter Clausi with Investor Intel. In a couple of weeks it's the world-famous mining show PDAC 2021. I haven't seen a lot of my friends since that show last year in Barrington. You're one in that group. Barrington Miller from the Canadian Securities Exchange. How are you? I'm doing well Peter. Thanks for having me. So mining show is going to be virtual this year. I've been through the platform. It's going to be a little weird. What's the CSE planning? Well we're planning a couple things. We're going to still have our investor booth which is the the mainstay as far as the front-facing portion for the Canadian Securities Exchange. But we are also designated as a media partner with PDAC. As is Investor Intel. Well done. Hours came about through the Mining Over Canada initiative which we did in the fall of 2020. Right. It was a six-week odyssey across the country. During that time we had the privilege. But it was a virtual odyssey.  Virtual odyssey. But we had the pleasure of of interviewing Felix Lee, the current president of PDAC. And the response was overwhelming. And I mean you can not to do a plug but you can check us check it out on CSETV on YouTube. I like Felix. Mining Over Canada. Yeah Felix was actually the whole PDAC team in getting that going. So we're doing we're covering two fronts. We will have our our media portion and then we'll have our investor portion. With the media portion I believe we'll have footage and everything related to Mining Over Canada as well as interviews with mining companies are valued mining issuers on the CSE. What are you doing? Is it live streaming? 150. Some of it will be live. Some of it will be pre-recorded. Okay what about in the investor portion? The investor portion again where we're sort of in the same boat as you. We'll have our virtual booth set up. Actually right now we're going through booth duty and booth assignments. Which makes it pretty easy when you have a national company. People on the east coast they're gonna have the morning shift. People on the west coast they'll have the evening shift. What a lot of our listeners may or may not know is that even though PDAC runs from March I think third to the eighth or fifth to the ninth. First Sunday of March to the Wednesday. Yeah the the housing platform will be available for I believe three months. So the event will take place but then if you missed it you'll have an opportunity to to to visit. So are you proactively reaching out to listed companies to set up interviews or do they have to contact you? You know what it's a it's a sweet mixture of both. There's a there's a few companies staple companies that have reached out as soon as January hits. We have our annual we call it our the speed pitch. So it'll be at our investor luncheon. Companies will get up there. You have two minutes. After the you know one second after you literally get the hook and that's either done by Rob Cook who will you know start start clapping. We've had a we've had a NHL goal light go off the this year. We're doing it a little different. It will be part of a bigger celebration which I don't want to give too many details away but you'll have to stay tuned. So companies have reached out. They've started in January. There's at least three or four. And I knew these emails were coming like hey I want to be second speaking. Hey I want to be third. I want to be first which is great. And for the other companies because we're doing it virtually this year or because PDAC is doing it virtually there's more of an opportunity for companies that wouldn't be able to join or travel or whatever PDAC is expensive. By the time you do the show your accommodation the inevitable food beverages perhaps it can be a $10,000 a week fairly easily. Oh for sure. And when we were talking with Felix he said that they were exploring doing this anyways like it's you know the time frame just got moved up a little bit because obviously of the pandemic but it wasn't completely new or foreign to them. So this is a chance really for the world to see PDAC and for PDAC to get to every corner of the planet because we are doing it virtually. And I'm looking forward to that. The dates are March 7th to the 10th. Oh March 7th to the 10th. Awesome. Sunday to the Wednesday. What are the odds we can get Rob Cook playing guitar and singing because he's pretty good. Rob is really good. You know if we're trying to get him to to post this on YouTube but he has a he has a pandemic song which you wrote which is really really clever. Yeah to lock down again. He said to me. Oh awesome good. So we're trying to get that get that going. I think he might be we could coerce him. I do believe it. I will buy him a virtual whiskey if he does that. Make that too. Barrington it's always good to see you. You're one of the faces of the CSC and do a good job for that organization. Well thank you Peter and thank you for not only your support but more importantly your friendship to me and to the Canadian Securities Exchange. Thanks buddy. You have yourself a good day. Thank you. Peter Clausi signing off from Investor Intel.


My name is Sam Vaknin. I'm a professor of finance in the outreach program of the CS Consortium of Universities, CIAPS Center for International Advanced and Professional Studies. Thank you for having me. We know two things about each and every pandemic that had ever happened in history. Number one, pandemics are always self-limiting. Even without medications, even without vaccines, pandemics stop. They end. The Black Death has ended, had ended after two years in continental Europe. The Spanish flu had ended after two years globally and there was no vaccine, no medication, nothing. So pandemics are self-limiting. Number two, in the wake of each and every pandemic, we have an identical pattern. The aftermath of each pandemic in the 14th century as well as in the 20th century, the aftermath looks the same and it is comprised of several elements. There's a social rebound and there is an economic rebound. Let's talk about the social rebound first. During the pandemic, people are locked down. They are quarantined. They're isolated. They're afraid to meet each other. They know that something is in the air in the 14th century. They knew that something is in the air in the 20th century, bacteria or viruses and so they were afraid to meet each other. And the social rebound simply means that after the pandemic, people socialize much more. There is an explosion of extraversion. Introversion is out of fashion. People go out. People travel. People socialize. People party. One example is of course the roaring 1920s after the Spanish flu in the United States. And so we should expect this. Instead of staying at home, people will go out much more in certain industries like the tourism industry, the entertainment industry, the hospitality industry. These industries will benefit bars, restaurants, hotels, airlines. These industries will benefit from the social rebound. There's another type of rebound that that's the economic rebound. Pandemics invariably have devastating and shattering effects on economies. Trade collapses. Investment disappears. Jobs evaporate. People become much poorer. They are in a state of uncertainty. They are afraid to consume. They are afraid to invest. And so everything slows down and grinds to a halt. When the pandemic is over, there's an economic rebound and every economic rebound in history had again the same features. The social rebound and the economic rebound have the same features because human nature is the same. And so the economic rebound is the result of rebuilding the economies. When the pandemic is over, people begin to invest again. They begin to over consume, to compensate themselves for a period of slow consumption. As they over consume, factories and manufacturing revive. People travel, various sectors of the economy revive, et cetera, et cetera. So there's a period of rebuilding and reconstruction. And it is coupled with wealth distribution. After each and every pandemic, there is a period of prosperity and what Ellen Greenspan had called irrational exuberance, asset bubbles, stocks, real estates, real estate, other types of assets, bonds, increase in value, increase in price to unrealistic levels. So we should expect this to happen as well. Period of prosperity, asset bubbles, happiness, investment, trade, consumption, the world is going to look very good economically. But this is going to lead to income inequality. Now, when we say income inequality, we usually think about money going from the poor to the rich. But this critically depends on the nature of the pandemic. For example, in the 14th century, after the black death, after the plague, the bubonic plague had ceased after it ended, there was actually a transfer of wealth from the rich to the poor. Because so many of the poor working class people had died, there was a shortage of workers, wages escalated, and rich people had to pay much more to hire laborers. And so the result was the formation of a middle class or proto middle class, the poor got richer, the rich got poorer. Today, we are witnessing the opposite effect. The rich are getting richer, and the poor are getting even poorer. During this pandemic, something like 60 new billionaires were created. And the existing billionaires have increased their wealth by close to $2 trillion. Today, the 100 richest people in the United States have more money than all the African Americans, all the blacks, all the Hispanics in the United States, and 15 million poorest white people. That's 100 individuals. Income inequality is here to stay and will be severely exacerbated by the pandemic. The pandemic had exposed the gulf, the schism between high skilled, highly educated workforce and the low skilled, low educated workforce. We'll come to that in a bit. During this pandemic, we have transitioned from physical workplaces to remote work, remote work and automation. These trends have started long before the pandemic, but the pandemic served as a catalyst. It hastened these processes. It made them faster and much more all pervasive. Already, most of the tech giants like Twitter, Google, Facebook have announced that after the pandemic, most of their workforce will work from home, and they have given up their office space. This is going to have a huge impact on commercial construction and commercial real estate. Office space will become obsolete, and about half the workforce will work from home. Of course, this will tend to minimize social interactions, increase atomization in society, and people will try to compensate by socializing after work and by increasing the leisure time. Work will become flex time. In other words, people will work throughout the day, even into the night, but will take breaks in which they will tend to interact via digital platforms or socialize face to face. Work will no longer be continuous. As automation increases, as remote work increases, so will globalization, because electronic means allow us to outsource and farm out work to workers anywhere in the world. They don't have to be in the same country. So employers, big multinationals, and even small and medium enterprises will be able to hire people via remote channels anywhere in the world. Globalization will become a daily feature of each part of the experience of each and every one of us. And as workers, we will be competing with workers in the same profession in dozens of other countries. We better be good. It will force all of us to invest in lifespan risk-killing, in studying, increasing our knowledge, investing in our acumen, enhancing our profession. We need to get better if we are to compete with this global pool of workers. One thing that will happen after the pandemic, because people will become much poorer, the vast majority of humanity following the pandemic will become much poorer. Additionally, life expectancy will collapse, is already collapsing. Life expectancy has gone down by three years in the United States in this in the last 12 months. So life expectancy is down. Income is down. Savings have been abolished, demolished by this pandemic. No one has savings anymore. So people will be, especially young people, will be very hesitant to form families. They will not get married. They will not have children. Some industries will be very badly affected by this demographic development. People will stay single well into the 30s and 40s. People are going to live with their parents much longer. Until the 30s and 40s, these are known as boomerang kids because they return home. People will not travel far away from their base, from their home, for example, to study. So this will have a very, very negative impact on education and especially higher education. It also will have severe negative impact on residential construction. Generally, construction in real estate will suffer mightily after the pandemic. And so will higher education. The university, as we know it today, will have to change dramatically in order to survive. We'll have to go online. We'll have to fire a lot of faculty, and we'll have to collaborate with students who will teach other students. So we will see a much more stratified and equitable and egalitarian, non hierarchical structure of higher education, which is not so much based on expertise, based more on what I would call higher education crowdsourcing, similar to Wikipedia, let's say. Health care, on the other hand, will skyrocket. We'll skyrocket because in the aftermath of the pandemic, about 10% of pandemic sufferers, people who had, who got sick with COVID-19, 10% of them are what is called long haulers. These are people who have symptoms many, many months and up to a year after the pandemic. That's one thing. Nursing homes have been decimated. Many, many old people have died. Other conditions such as cancer, heart diseases have not been treated. There was a neglect of other conditions, other medical conditions, because the hospitals were busy with COVID patients. The ICUs, the critical care units were totally full with COVID patients. Stroke patients heart attack patients didn't get the treatment day. So we're going to have a population that is much sicker, much sicker than before. And health care is going to become by far the biggest industry in the world. So health care, but health care pays very low wages, with the exception of some type of doctors, mostly private doctors. And so vast majority of workers in health care from the level of of a doctor to the level of the cleaning, the cleaning woman in the hospital, janitors, they don't get paid well. It's a low paying, it's a low paying industry. And this leads me to the next observation. Following this pandemic, the impact on the middle class and on the working classes will be horrendous. A process called hollowing out. The it's like the middle class will become poor. And the poor will become destitute will become homeless will become will need food assistance. The generally huge chunk of the population will deteriorate into poverty. And work will no longer provide a solution, a viable, sustainable survival solution. There will be a golf, the golf between Main Street, Main Street and Wall Street will will become an abyss, unbridgeable. Most people will live in Main Street in poverty and destitution, homelessness, unable to afford health care, unable to afford education and so on. That's a vast majority of people in a tiny elite will live like kings. And this is going to be the picture of the future. The thing is that the workforce will be comprised of two segments. About 90% of all workers will be low income unskilled. And they will be working in dead end jobs. What is known as Mac jobs, like a job in McDonald's. This will be the typical job of the future. Automation, computers, and the elites will take over jobs that require brain power, intellect. What will be left to all others are dead end jobs, which pay almost nothing, minimal wage, unlivable wage, wage that a salary that that you can't you can't live on. And this, there will be no investment in education and no investment in skills. And this will be the major landscape of the workforce in the future. And there will be a tiny, tiny minority. They will be making huge salaries. They will they will have university degrees of the there, they will have higher education. And they will be in reinvesting and investing in new skills throughout the lifespan. So they will be constantly reskilling. They will also be much more entrepreneurial. They're likely to form companies or form corporate entities, and then leverage, for example, intellectual property and make huge profits. Income will gravitate towards this tiny group. Wealth will accumulate with this tiny group. And these people are going to invest their money in financial assets. We will find this, the members of this elite in several specific industries, in retail, in high tech technologies, and in finance. In these industries, there will be very rich people with very high salaries, with very high education. These will be the elites and they're going to invest their money in the capital markets, which will create bubbles. Now we have seen this happen during the pandemic. As the economy was collapsing, as tens of millions of people found themselves out of a job, as tens of millions of people moved into the ranks of the poor, as poverty increased exponentially, as millions of people were dying, as whole industries disappeared, like the retail industry, the airline industry, hospitality industry, as all this devastation, the apocalyptic scenario was unfolding. Stock exchanges went up to record levels, the prices and stock exchanges increased. And stock exchanges broke records day after day after day. Why? Because the money of the elite, the money of the economic elite is invested in the stock exchange. Stock exchanges no longer reflect reality, no longer reflect manufacturing, or agriculture, or the working classes, or the middle classes, or even pension funds. So stock exchanges now are the exclusive reserve, the exclusive playground of multi-billionaires and very rich people. And so it is there that we see the divergence, the breakdown of the global economy into two mutually exclusive non-interacting parts. There is the economy of the very rich, and there is the economy of the rest of us. There's the economy of the one percent, and the economy of the 99%. And if we want the barometer, the barometer for the economy of the one percent, that's a stock exchange. And all the rest are too poor to eat. And many of them are becoming homeless, sick, and dying. It's a dystopian world. And it probably will lead to severe bouts of social unrest. By all economic and social parameters, we are today in a period that is equal equivalent to the 1760s in France, just before the French Revolution. Thomas Piketty had written a book about it, comparing the two periods. And it's very true. We are on the way to such a tsunami of social unrest that it could easily be described as a revolution. And in this revolution, the masses, the working classes, the middle classes, probably will try to overthrow the elites and install instead another elite. It's a typical cycle in human history. Will it succeed? It's an open question. It's an open question because today, as opposed to the 18th century, the masses have access to power via democracy, via democratic processes. So they can put Donald Trump in the White House, Bolsonaro in Brazil, put in Russia or ban in Hungary, Duterte in the Philippines, they can put their own people everywhere, the masses. And the second thing is that the masses are bright. They are they're exposed to the drug of consumption. So they buy things. And there is cheap entertainment via television channels, cable TV, internet. So in the 18th century, the masses didn't have any political say. And they could not consume French Revolution started because the price of bread went up dramatically. Today, that's not the case. So I think the social revolution, which is forthcoming for sure, the antagonism between the masses and the elites will fizzle out. I don't see any meaningful change occurring. I think the revolution will fail. And it will fail because the masses are too heavily invested in the very same system that the elite elites benefit from. We are all colluding in this conspiracy. We are all collaborating in enabling the rich to become richer and keeping the poor as poor as possible. And yet giving the poor the delusion and illusion of participation and well being via consumer goods, materialism and capitalism, when they are combined, they are an irresistible force philosophically and in reality. Thank you.