So welcome to the talk on botch, which is how I ended up, I should not walk here, how I ended up naming the software which is able to bootstrap Debian-based operating systems from scratch just by doing independence analysis. Botch is short for bootstrap or built ordering toolchain. It started as a Debian Google Summer of Code project in 2012 and was continued as my master thesis at Jacobs University, Bremen. In the end I give some links to where you can download that if you are more interested. My mentors during the Google Summer of Code as well, the time afterwards were Wookie and Pietro Abbate, where Wookie provided me with the practical side of things, how cross-building and bootstraping is actually done, and Pietro with all the theoretical academic stuff that is needed to go through all of that. So how does it work in Debian? We all know that in the common case, source packages are always natively compiled, and they are compiled with the knowledge that they have access to the full archive of binary packages, and that is not the case during bootstrapping where some core must be cross-compiled, and only a few binary packages are available initially, which means you run into dependency cycles because you need a binary package built by a source package A, which can't be built because it needs some package by a source package B, which can't be built because it needs something from A. In fact, you don't run into dependency cycles as much as you run into strongly connected components, which is the part of a graph where all vertices that are part of the strongly connected component, or SCC, are in a cycle with each other, and those things can be pretty huge, like that one, which is how it looks right now, and every time Debian is to be ported, somebody has to solve that by hand. It's called a hairball, and which makes sense because it looks pretty bad, and that one particularly has only a thousand nodes and a few 10,000 edges. Another thing we can harvest from snapshotdebian.org is this graph. On the y-axis, it shows the number of vertices in this biggest strongly connected component, which I showed before, and the x-axis shows the time in years, and we can see that the problem size, the size of the biggest SCC grows over time. Software becomes more and more complex. It depends on more and more things, and that produces more and more cycles in the base packages. Yes, like what is contained in it? Well, the structure of the dependency graph for Debian or Ubuntu for that matter, and so most Debian-based distributions throughout all this time is there's one big SCC, which is of that size, and several, like 10 or 12 smaller ones that don't go above the size of six or eight. The biggest one contains all the interesting stuff, like browsers, email clients, GTK, GNOME, everything, because some package just depends on some GNOME thing, but to build that, you need the rest of GNOME, so you end up with that. The full list is on one of the links which I show in later slides, so you can have a look and see what's all inside. There's Firefox and Thunderbirds and half of KDE and all that kind of funny things. Another funny thing is once you have that built, so once this big thing is solved, the rest is practically a linear build order, so once that is done, the rest is simple apart from those small cases like some Haskell stuff and so on, yes? It looks like it's going down again at the end. Is that real or? I don't know how to interpret that, but that's the data. So yes, it is real, so it, apparently, that's Debbie and Sid, so apparently it's going down for some reason or the other, I didn't invest time looking on why some certain jumps happen or not, but generally this seems to be an upward trend, which also seems to make sense, given the complexity argument. Right, so the current bootstrapping practice is that people use again to open embed it to avoid the cross compilation because that's not working very well right now and build a minimal system to compile on, do dependency analysis manually, so I heard from people that they were doing that kind of stuff on paper and drawing that, and then after finding those cycles or finding stuff that doesn't build or any misses things, to manually hack source packages so that they can build with less build dependencies that they would normally need and thus break dependency cycles. And that takes loads of time and the goal of the Google Summer of Code last year was to have that automated to avoid that to be done repeatedly every time a port is done. So what would happen? What could we have if bootstrapping was easier? The most obvious thing is that porting for upcoming architectures would of course be easier. You could also see more custom ports optimized for a specific CPU. So the again to argument that, well, you don't have it as optimized for that CPU as we can would go away because it would be easier to have Debian optimized for a certain thing. It would remove the need of getting to open better to make Debian more universal because it would be able to bootstrap itself without needing anything else. But there is more. You can use it to update lagging architectures, creating the build order for that, build for targets that can't build themselves once cross-building works better. You could have a Q8 tool which allows to check the archive regularly for bootstrapability. And you can also use it to order library transitions which include cycles like for Haskell or a Camel that's currently done using Ben. But Ben can't handle cycles. So for example, if you look at the Ben transition output for Haskell, it's all garbled because it includes cycles. Ah, right, that's great. Right, so the essence of this talk is that the core algorithms for the graph analysis necessarily exist and they are fast and they seem to be correct from just looking at it. But when the decisions about the new dependency syntaxes, the multi-art and cross-building to the practical plumbing and to triad on in practice which is part of what is being done in a Google sum of code project by Alkman this year. So the tools which I ended up writing are written in OCamel mainly and there are a couple of Python and shell scripts to put them all together. It's all LGPL3. It's using DOSA3 as a helper library for the parser and solver. Like it's a real solver, not like it will find the solution if there exists one unliked up. The tools follow the UNIX philosophy so there are access multiple applications each executing one algorithm and they're all connected by pipes using Debian package description format like the DEPH2 format as an exchange format. And the graphs that are generated are in graph ML so that you can easily write a tool that consumes them and does other stuff with it. And it's all in git at the URL which you see there. So more specifically, you can now create a dependency graph. You can analyze it using several different methods and you use these methods to find source packages to modify to make Debian bootstrapable. And after you've done that and you modified enough source packages, it allows you to create the build order from the then acyclic graph. An important thing to mention is that it's all theory. So at no point I am compiling packages or installing packages, it only works on the metadata. So it's only using packages and sources files and input and assumes that if dependencies are satisfied then I can build it. Which of course hides loads of things that can go wrong in practice, especially when a part for new architecture is done. But well, that's what's being done so far. So what I did in practice to make it all work is that Debian has some sort of reduced build dependencies or build profiles which we call them now and that cross compilation for at least the base packages works. The bootstrap workflow would be to first select binaries for a minimal build system and cross compile them in this. Of course again, it's its own task of breaking dependency cycles but it turned out at least for Ubuntu as far as Huki said to be rather easy and not involve much dependence analysis. If you cross-built a small base system then it's not necessary to go into full graph analysis mode exactly and then you have your base system which you can use to start compilation. So in the rest of the talk I just assumed that we are doing native compilation half magically from a box D. Minimal build system just including essential packages and build essential. So from that you create a build graph. Ah, I had to need to change that so build graph is a special term which I wanted to avoid. So you create a graph and extract strong component components and you analyze them using some heuristics to find source packages to add build profiles to. You modify them and go back to two until the graph is cycle three then the algorithm selects the source packages to be profile build makes the graph is cyclic and gives you a build order. So far so good. The hard part is to break those dependency cycles and that can be done in multiple ways and the most obvious of course to use build profiles and to use them to build source packages with less build dependencies than they would otherwise use. Another very helpful thing is build depends in depth so if your source package depends on stuff which could go to build depends in depth then that would be helpful with bootstrapping because during bootstrapping you of course don't rebuild the architecture all packages so you can ignore the build depends in depth list. Another method is to choose different installation sets for non-strong dependencies. It means to not install like package dependencies have disjunctions so you can satisfy dependencies using different sets so sometimes one set is hard to bootstrap and the other one would be easy so that means just choosing another set. Another one would be to make binary packages available through cross compilation so once you're stuck and the other things don't work cross compilation might come to the rescue and give you some binary package which solves your cycle. You can maybe use existing multi-arch foreign packages so maybe your new architecture allows you to run stuff from an architect that already exists and can help you to satisfy stuff and break cycles through that or splitting source packages in a way such that they are split in the part which others depend upon another part which depends on other things which would again break cycles, yes. Multi-arch foreign packages. Yes, I'm not sure whether that would work or if that would be useful at all just from a theoretical point of view. So you'd tell me. I'm a bit confused what this applies to for the initial cross build or for? No, for native as I said this is all native stuff so I thought if a new platform would allow technically by CPU to run an existing architecture then those packages could be satisfied and could be used to satisfy dependencies and break build dependency cycles. So that might work, might be less useful in practice but at least it's something that might be too big considered. I developed several heuristics to find those source packages to modify and heuristics are needed and cannot be replaced by an automatism because all this work can only be done by human only humans are able to code and to analyze software and machines can't yet so this is all heuristical work and it only uses mostly uses the dependency graph syntax so it's mostly ignoring the semantics of dependencies but it turns out that doing that already works surprisingly well just taking the syntax of the graph and not the meaning of the packages. I developed several kind of heuristics simple ones, component-based ones, cycle-based ones and in the end feedback arc set algorithm and we'll shortly introduce those now. This is the output of botch, it can be looked at in this URL. I generated the last one just today so this website is the output of botch showing all results of all heuristics and outputs showing all kind of dependency cycles, all heuristic results and so on and so forth in a huge HTML page which requires JavaScript to be pretty like having these page tables and stuff like that but without JavaScript you will also be able to see it and we'll just be bigger. Sure, so this table for example is a table of edges with most cycles through them. I will explain that a bit later but you see an edge defined as a source package depending on, built depending on a binary package and apparently there are 595 cycles through that which means if you would be able to build lib decrypt 11 without that already 600 cycles would be broken. That's the idea. So simple heuristics, there are ratio-based heuristics for example you say if I could build a source evolution without libmx then I would easily lose the connection to 55 other source packages or if I could build source tracker without dia then I would lose the connection to those 22. Another one just gives you the amount of missing dependencies so if you look in the graph and you see source packages which only have one build dependency missing you might just say well that's an easy one and drop that one and build it. Another thing is what we call weak dependencies which are a set of well, user-picked dependencies which are commonly used for documentation generation which is of course also only heuristic and not always true. Another thing is strong bridges. If we take this graph and a strong bridge would for example be this red edge if we remove it it would split the graph into more strongly connected components which would look like this. It's all done automatically for you so you don't need to look at this graph and search for this red thing because you get it in these HTML pages I showed before or strong articulation points which is not the edge but a vertex and once you remove this five it is split in more strongly connected components which are then easier to analyze. You can identify small cycles which is particularly useful because self-cycles have only one way to be split. For example here we see that UDEV builds depends on USB utils and of course this cycle here this two-cycle can only be broken by removing this build dependency because you can't break the binary dependency of USB utils on something that source UDEV builds. And as a matter of fact for this graph it even solves the whole graph to remove that one. So the first thing you want to do is to look at all these small cycles which leads to another thing and generate but this time for all architectures which can be accessed using that URL up there which are dependency cycles which are sometimes non-obvious self-cycles. The type two is the type which is non-obvious. Type one is all those self-cycles of source packages which build depend on packages they build so that's really easy to identify you just search through all source packages and see if any binary packages they build is in their build depends line. Type two is more hard. It uses the concept of strong dependencies you can read like it's a dependency which is non-optional even though disjunctions might be involved so it is probably not very intuitive to know that package config, the source package package config can't be built because of libglib2 minus def or that libx11 can't be built because it depends on graph which kind of even though it's in a self-cycle there's no other way to split it except for really building libx11 without graph short of of course cross-compiling things. It builds a documentation. Right, exactly, so if graph was, well as it probably is for documentation generation you would put it in build depends in-depth then hooray this cycle is solved. Yes, another thing which, well we already mentioned before is edges with most cycles through them. It is probably hard to see that for this tiny graph with only 15 vertices in contrast to the big graph with a thousand vertices for this tiny graph there is one edge of all of these 31 which if removed makes this thing acyclic. It's hard for a human to see that so the heuristic of edges with most cycles through them is used to identify that indeed this edge here has many cycles through them and removing it indeed makes the whole thing acyclic. Yes. So again, well adding yet now some meta information this is used for testing and well marking this kind of dependency as a test dependency which is not necessarily used for the build would be very useful. Again, so. What do you mean by test dependency? So, Python just built depends on XORs. Yes. To run the decay tests. Ah, right, yes. So, if that would be recorded somewhere then it could easily be solved and algorithm could then say, well we can easily split that there. That's a very good example of why humans are much better at this, right? Because you actually know what that dependency is for whereas Jonas has no idea. And as you say, if we put profiles on them then it becomes. Right, good. Yeah, so good to know that that works out easily. Yes, another thing is calculating a feedback arc set. Feedback arc set is the set of edges which if removed from the graph makes it acyclic and we want a small feedback arc set because we want to modify little. And I tested that with Debian SID as of today at, well that's from the Debian snapshot. The graph has 28,000 vertices and a quarter million edges. The biggest strongly connected component has 1,000 vertices as we saw before. And assuming everything can be broken all of Debian can be bootstrapped by just modifying 51 source packages. Which is of course a very optimistic assumption. So we used a more realistic data which I got from Gen2 by analyzing use flags and manual lists by Krossenglaser, Patrick, Mectamon, Daniel, Shetland, Wookie to get a more real list of what is actually breakable and came up with the number of 57 source packages. Might still be bigger, but it's probably in that ballpark in the end. Of the packages, right now? Yeah, sure, of course. It is also on the website. So if you go back to the website, MsMoffin.de slash bootstrap slash stats then you will also see the list of packages which this algorithm suggests. Not only packages, but also the build dependencies that would have to be dropped to achieve that. Right. Which of those is it? A managed feedback log set, only weak. It's not that one. I know, it is that one, yes. It is that one, MsMoffin.de slash bootstrap slash stats. There's a table of contents and I was wondering which of these various things was the set of 57 packages? So. Because they're all called things like strong articulation points and ratio binary heuristics. Like it's written by a mathematician. Yes. Yeah, a feedback offset, there it is. So you would just disable uncheck the other things and then you are left with only that one, if... It's bootstrap slash stats. That. Right, yeah. The website contains loads of things, which is why there are these checkboxes on the top to just disable what you don't like. And for example, look at the feedback offset. The feedback offset is calculated using, like it's not complete because, of course we can't assume that the data we got from Gen2 is correct, or the data that we provided is correct. So it's still only a suggestion. Okay, we were there. Yes, so 57, maybe a little bit more, but there is nothing more I can say right now because we only did the thing in theory and until we do them practice, we don't know how big of a difference the real number will be, at least theoretically it is in that area. Right, we also want to show that the thing is relatively fast. So the blue part here is the calculation of a subset of Debian, which is smaller, but includes the problem, like the big strong component, which we actually care about. But once you reduce Debian to that, all the algorithms of course get much faster because they have to work on less packages. So if you reduce it, then even including the reduction, you'll get to overall 62 seconds of execution time for the algorithm. And if you're a developer and initially you care about this big blob, then you only run the blue stuff once and you only run repeatedly the green and red parts which only take a few seconds together. The thing gets longer if you use full Debian and they get even longer if you calculate strong dependencies, which is again something that you have to probably, well, I can explain to you later, but it is important to generate the HTML page I showed earlier to get all the information from there. It takes a bit longer, but of course, you don't have to generate that every now and then. You don't have to generate that always. What you care about is the green and red part here as somebody who would use that tool to figure out what to modify. And that's only a few seconds. You would use this big thing probably as a daily build somehow that updates the website, which is not done yet, so there will be some time until it's updated next. But it only takes six minutes again, so even doing it for architectures will not be considerably long. Right, resources are here. First of all, these slides can be downloaded from there, so you don't need to type it all down, but just to know where to get the slides from. Yeah, and then the rest, there's my blog where I occasionally write about this kind of stuff. The mailing list, which we had, well, because also cross mailing list was missing, our IRC channel, get repositories with the software, those are three, the wiki pages. The to-do page is specifically of interest because it lists lots of things that needs to be done for this to be possible in practice. It lists all these things like build profiles and so on. My thesis for, well, a really in-depth explanation of all that, ends the threats about build profiles on Daven Devil. Right, so conclusion. We could have easier porting, more custom ports, remove the need of Gantor embedded and other stuff, but we're missing decision on build profile format and we're missing several fixes to support cross compilation better. So with this talk, I wanted to convince you that by having all these algorithms in place, we are good to go to do all the needed plumbing to actually have that working in practice at some point. Right, questions? Good, yeah. That means everybody answered everything except for Doko. Well, the thing is that well, I was involved with wiki and the bootstrap of new architecture, did continue that and it's funny to see some recommendations here, for example, to break the cycle of building ECJ, dropping GCJ. Right. And things like that. Yes, of course, you can't always do that, but that is something that somehow has to be solved by one way or the other, because it depends on each other. Right, so what I would be more interested in is we know that, well, when I always see some dependencies on tesh live, how can we make some automatic recommendations to avoid or to break these cycles in the first place in the packaging? So in that, well, you don't need the documentation for a bootstrap build and things like that. So that's nearly always build depends in depth, isn't it? It's just, no, okay, because? Because of bad packaging practices. So what I do to see, well, packages with packaging from the Stone Age to just have these build dependencies encoded for every build. And I think it is not clear or we don't have any recipes for configuring an arch only built without documentation and an arch all built with documentation. So how to propagate the configure flex from the build arch and build in depth targets down to the configure step. So it can be done, but I think it's not obvious and many maintainers are not aware of that. So for many years we proposed having a dead build options, no docs, for example, which would just knobble that throughout the build. But that would not help the dependency resolution because it would still need to build proper for that. Yes, that's right. Now we have a mechanism to do that which would be more kind of, would be exposed to the analytical tools. But yeah, it still requires package modification to actually make it work. Maybe the bright side is that those packages which are needed to be changed are core packages, more than leaf packages. So they are like the most major, like in the big 1000 vertex dependency graph which has to be solved. There are 1000 vertices as I said, but out of those 1000 only three, so there are 360 source packages in there. So in the very worst case, well you remember the number of 50 something. In the very worst case, you would have to modify 360 and it doesn't go more than that because once you modified all of them, it's all solved. And those 360 are well-known packages. So you would also, for other reasons, be interested to have them maintained and properly well done. So that's maybe a plus because we don't care there about all these leaf thingies. Yeah, well I think it's all cool. Really great work. I was kind of looking for Pearl to see Pearl there, but I suppose you're excluding the essential set or something like that, build essential. I think Pearl is part of the build essential. Yes, one assumption was to not only have SD available subset essential and build essential, but also depth helper. And I think depth helper pulls in Pearl, right? And because 73% of the archive depends on depth helper. So it would be hard to bootstrap it natively rather than cross compile a bit more and then have depth helper and some other things available. Thank you for this presentation. It's an interesting work. I have just one remark or maybe one question for you. Do you think that it's possible to have, I mean, better results or to enhance more of the heuristics using a labelled graph? For example, putting using a labelled graph for dependencies. Labelled how? I mean, the name of the dependency or like labeling the dependencies by type to know which, I mean, if there is strong dependency or... Yes, that exists. Ah, okay. The graph is labelled with several properties. For example, being strong or not strong that only we have two graph types. It only makes sense for one of them to have them labelled as strong or not strong that is used to, for example, calculate the strong self cycles which some of the tables display. What other labels would you have suggested? Well, I'm not specialized, but I thought that maybe we could classify the dependencies by types and then... I would be happy if there was more that I could rely up on dependency-wise like where I get a bit more semantics like meaning of what the dependency means. Yes. But the annotations are missing. Like, build profiles would be what would annotate dependencies as meaning something. And that's not there yet. Okay, so you think it's gonna be more helpful if you have these annotations and use the semantics with the syntactic... They are needed. And the heuristics are there to find which source packages to modify. And once this information is there and complete enough, then another algorithm can come and develop a linear build order. But of course, that needs this annotation which has to be done by a human at some point. Okay, all right. Thank you. So, presumably the set of type one cycles is the set of things that's fundamentally difficult. You know, that's compilers that build with themselves. Yeah, yes. In that case, yes. It is also the easy to find type which you could also find using something that's not complete grafting because it would just go through each package and check if the binary package builds is in the build dependency list. So it's the easy to find list, but probably hard to solve list because it's compilers depending on themselves and stuff like that. Yes. I think we care about Haskell a bit. Yeah, if there are any questions or if you have any suggestions on how to improve that, I would be very happy to hear from you because I'm only doing the theory stuff. I'm not actually bootstrapping or cross-playing anything. Yeah, so the next part of this is like if anyone wants to go around and actually fix any of this stuff, so we have a student who is endeavoring to do some work, but he's actually mostly building scripts to help the actual process of building stuff and uploading stuff. So yes, anything which is in this list and you feel like breaking connections, then that will be handy. We could make our set a bit more linear if anyone gets enthused because it's only 57 packages in theory. Yes, but a promise. 660, somewhere in between those two numbers. Yes, unfortunately, the problem is nobody can implement anything yet besides comments in their packaging because we have no decision on the syntax yet. We couldn't get yesterday. Right, so I really think you can do two things. The first one is to split out the documentation built into its own binary packages. Architecture all, so you can move the build dependencies into the independent build dependencies. The second thing is to document the test dependencies which packages are only needed to run the tests. I think you will have to do that work anyway. I already see that many or some packages at least have sorted their build dependencies into sections with comments in between, saying, well, these are needed for that subset. These are needed for the documentation. Of course, most helpful. Right, and that makes really sense to do that. Yeah, and as I said, going through that website, I think even the, yeah, also the, if I remember correctly, even the list of what source packages are included in the hard, big, strong component, the list is available, so you can always check if your package is in there and if you would like to at least comment something in your code. For the purposes of moving this forward, comments in the build-dependence thing is nearly as good as the actual build profile syntax we'll get to one day. If someone works out what it is and writes it down in comments, it's a very simple problem to come along afterwards. Whereas, and a maintainer can do that, right? Whereas a random person goes, I have no idea what this is and I don't know what any of these build dependencies is for and it'd be hard to work out. So they're writing down comments.  Comments in your build-dependence is saying what they're for is really, really useful and there will be some syntax along very shortly and some mechanism to make that all automated more lovely. Is there any plan on the build profile stuff to have information given to the rules file that says which profile is being used? I'm thinking of GCC that you'd want to bootstrap where you can do the stage one thing and if your rules file will be different if you're doing the stage one or you do different things. Well, so where a profile exists as declared by a package, then you can use it during the build to do stuff and it's kind of domain-specific knowledge. I mean, at the moment, we've basically decreed that there are three profiles, stage one, stage two and cross, because that's the only things we've thought of use and test, sorry. I think the set, sorry? We'll be variable that you query in your rules file and then do the right thing. So I mean, it will always be domain-specific that any tool that does this has to have some kind of knowledge, so we define labels for purposes and then we use them. Did that answer your question? Yeah, yeah, because the other possibility was just that like S build would be able to drop stuff if it knew you were doing a certain profile and then you'd have to figure out in the rules file what was actually installed and behave appropriately, yeah. What is really missing is a way to find these packages which support some kind of stage build. Currently, you have to look at the rules file and you don't know, well, here's something which could break a dependency cycle and yeah. So I would like to see this kind of information in the control file. So supported stage or supported profiles or something like that. Yeah, so I think we're very close to actually having all that sorted. We had a demonstration, we've argued about it a bit. I think we've pretty much agreed a syntax so we just have to do the new implementation because we've changed it slightly and start using this maybe next month. So yeah, we've got to argue with deep package people again, but it was them that said change it. So hopefully we've pretty much changed it to what they asked for. So I think that should be okay now. Yeah, right. And we're done? Great.


Welcome everybody. Welcome to Monday, the last day of January 2022. Gosh. Who thought I'd be around in 2022? Let alone, let alone do it, but I do it now. Welcome everybody. Hey, we're going to have a great session today. If you want to sell more stuff, whatever your stuff is, whether it's e-commerce products, physical products, digital products, whatever it is, this is the session for you. Because I'm going to go through some steps that you can use. And man, I'm serious. If you use these steps, you're going to sell more. I can almost guarantee it. I don't know how you couldn't. So stick around. Make sure you use that chat box. Put in there any questions, comments, suggestions. Tell me what your weather is. Today it is super overcast. And it's like in the, I don't know, 40s? It's not beautiful today. Let's see what it is. It's 53 right now. It just changed with fog. That's the description of our weather. So what's your weather wherever you're at? I'd love to hear from you. I love your chats and the chat box. And hey, when you do that, it helps the distribution of these videos too. So I really appreciate that. Hey, thanks for the thumb up. Somebody just gave me a thumbs up. I really appreciate that. Make sure you do click that thumbs up. Don't forget to subscribe. Hit that subscribe button below there. Click it. And then turn on bell notifications. Hey, that was pretty crisp and clear. I don't always do that good. Make sure you turn on all bell notifications. You got to do that or it won't let you know when I go live. So make sure you're doing that. Make sure you're, you know, turning on your bell notifications. And even if you're not live with me here today, you can comment in that comment section. I'm going to come back and talk to you. I'm going to come in today, as a matter of fact. So any comments that are in there today, I will be hitting. So make sure you get your comments in there. I'm ready for the gym today. Got my workout shirt on. And I don't care what the weather is. I'm going over there and I'm going to exercise. So let me know who you are. Got a good group of people starting today. So let me know who you are. Put your name in there. Tell me what's going on. Do you have an e-commerce store? How's business for you? Is it going to be better 2022? It can be if you change things, right? If you do things differently. When people come to your site, man, there's so much you can do. Growth hacking wasn't a thing in the past. It is now. You can actually grow things by doing certain things to your website, certain things in the process. No one in marketing has time for these sort of false positive metrics. It's time to start generating real returns. And the following things I'm going to talk about today are true and tested. They actually work. And if they work, why wouldn't you do the same thing? Okay. And the first thing I want to talk about today is creating fear of missing out. Okay. We call this FOMO, fear of missing out. And this is something that is super, super important. If you take it one step further, and let me get my screen a little bit bigger here. I'm sorry for reaching up. I know some of you don't like that, but I got it. I got to see the whole screen. Okay. So if you take this thing one step further, there's all kinds of stuff you can do. You can show items that have recently been searched. You can find items that, or you can promote items that have recently been purchased. You can create a sense of urgency through limited offers and visual countdowns. They've been shown to convert more customers. So put those on your webpage. This is an excellent way of social proof for your website. Okay. It makes your store look like it has a thriving community, which it will if you do these things. Have you tried installing like a fear of missing out type of plug-in where every time visitors purchase something and it's made through an e-commerce site or setting a pop-up with a time limited offer code will pop up. You can do that. There's software for all this stuff, guys. Now you don't have to be technically oriented anymore. You don't need to. The next thing I'm going to tell you is use a solution-based SEO title. Now that sounds really complicated, but it's really not. The first thing that both you and your readers and search engine algorithm see with regard to your website and all pages is the title. Okay. So keeping that in mind, you're going to want to make sure that your title is really eye catching. Okay. That it describes to your potential customers what they should expect from engaging with your brands. There's all kinds of stuff you can do. Like I just recently searched men's suits. Okay. And one of the results came up with awesome men's suits with patterns for every occasion. And then it had one of those bars and then it had opposite suits. Okay. And then below that it had other titles that said suits-men Tom Ford. That's some boring stuff. Right. Men's suits and separates. Then it had a little bar there and it said Nordstroms. Boring stuff. Men's suits. And then it had a little border and it said Summer Sale 2022. And then it had the name of the company. That's boring. Okay. That's boring stuff. Rather than focusing on the brand name, opposite suits, the one that came up first, front loads its page with great benefit. And doing so, the company stands apart from other boiler prototype, boiler plate type SEO titles. So you want to do something different from what everybody else is doing. Unless your brand is a household name, this is an incredibly good practice. For example, like ours is not a household name. Okay. It's just not. Okay. Clothing company Gap can get away with a page that reads, you know, shop Gap for whatever, since customers are looking for a shop at the Gaps online store and simply type in Gap.com. However, if an individual isn't really looking for your particular brand and instead uses non branded search terms such as women's summer clothing or a solution based focus SEO title that will boost your click through rate, that's what you need to do. Okay. It is super important to do that. Next thing you can do is offer a chat functionality box. Okay. Smart insights found that visitors who use live chat convert at roughly an eight times higher rate of non chatting customers. Okay. That's pretty profound. You may be asking, aren't those live chat software is expensive? Well, it doesn't have to be expensive for a live chat. You could easily integrate something like a Facebook messenger, or there's one called must add saddlewood, and they use one you could use Zendesk chat something like that. I know on, I use a car trip and I love car trip and car trip is one that I use and it has a free chat box built into car trip. If you don't have car trip, check the description at the end of this video and you will find it in the chat or excuse me, you will find it in the description of this video so you can find out how to get car trip. You can get car trip for $1. It's not expensive. 63% of visitors are more likely to return to a website that has a live chat feature and 38% of those survey completed a purchase as a result of health they received through a live chat. Put live chats on your channel. Even if you even have an automated chat, sometimes that's better. But that's debatable. You know, I know that's debatable about, you know, whether that's going to work or not. Next thing you can do is get your customers attention with loss leaders and this is number four if you're coming. A loss leader is a product that a company sells at a loss knowing full and well that it will make up for the loss on future sales of products that have complimentary characteristics to that original product. So let me let me give you a few examples here. A video game system are sold at a loss. Okay. With the actual video games which cost pennies to mass produce, making up the bulk of the profits for gaming companies. And I had a great example of this the other day. I have simply safe alarm system and I have been paying for my moves taxes and paying for them for like five or six months and hadn't hooked it up yet. I really wanted to kind of look around and see what other systems are out there and start comparing them. So I called them up and I said I want to cancel. And they said, why? I said, well, because I've been paying for it and I'm not using it right now. And they said, what if we send you a new system? I said, what do you mean? I mean, I've got all kinds of window, you know, contacts and I've got your doorbell stuff. I got all kinds of stuff. They said, we'll send you all of that free. I said, are you serious? They said, yeah, as long as you keep paying your monthly fee, which was I think $25 something like that. And I said, well, if you send me this whole system, what am I going to like it? Can I cancel? They said, yeah. I said, well, how long do I have to stay, you know, paying you monthly? They said, you don't. I said, so in other words, I can pay you one month, $25 and you're going to send me a virtually four or $500 system. They said, yeah. Now they knew, they knew that if they send me that system and it worked well, they're going to get $25 a month for years, for years to come. Okay. So what can you do like that? What can you do to keep people in the old? How can you keep people interested in what you have to sell? That's what you need to think about. Okay. So that's what it's simply safe to me. And yeah, I've been in every sense. Now it's only been about a couple of two, three months, but I like it. And I'm going to keep paying and I'm not looking around for a different system there. The best thing I want to tell you about is turn visitors into customers via social controls. Okay. Customers need to know that others buy, love, meet your products or services. In fact, it's quite possible that social group or mine may play a larger role in converting visitors as buyers who physically see customers in your shops. Okay. So if you go to a business store and buy or something like that, you walk in there and there are tons of people buying right and left.  But let's do that with a social group. It is going to be a whole lot more important to be on top of your social group as your visitors are more and more likely to purchase an item, item, item. Yeah, yeah. They can, you know, you know, read about the, you know, I see a lot of music. I would like to work on social, social, it's easy to tell about. We see people with apple stores in Brazil and they have restaurants and bars on top. You know, we don't see that. We can't do that online. Please, please. It's, it's, um, I have, I have a problem with that. I was going to explain it more and more. It's a lot of customers who have a business to illustrate what we need to be. It's like, it's like, you know, when they see all these questions, the answer is, you know, it's a lot, a lot like, like, like, I have a problem because they don't have a question. They all, you know, as a preservation that all the world agrees with them. Um, um, so, so. It's really, really, really, really out of value. You can't say it's out of value. It doesn't. You can't say it's not as much for offer. And that don't, they don't make it so difficult, like it's, like, it's the debt for them, mind, mind information. It's they're, they're, they're, now your visitor, it's more on the community more qualified for, it's not, it's not. It's too, it's too much information of it. to give you some information on this. And I think I want to remember something right now. This is the top one, and you may, you may have to get a little help from somebody else. I have somebody helping me bring down right now. Sure, sure. So we're going to have loads and hundreds every second. So we're going to reset the number of sales, okay? Small sales websites and sales sales. We will do less business, but actually those aren't part of the real year. And if you don't know, you don't need to excuse that click. Okay, so they really, really are going to leave when your website is slow. We don't want that to happen. Okay, so one second, one second, think about this. One second to reduce conversion by 7%. That's huge. I can make about, you know, a thousand people per year website using a 70 versus a 70 sales website. We'll slow it by one second. So anything as high as three seconds will have a massive impact on your revenue, okay? If you want to increase your website loading speed in times one to three seconds, you can generate a conversion buff of 21%. Think about that, guys. 21% that is freaking huge. Number eight, include, I think you should call it comparison guys with similar products. Since you're likely to offer a number of products that are similar in many ways, but also very different than others, you want to provide a way for your visitors to easily compare and contrast each while they come across the purchasing decision. This, of course, goes along with what we just said, okay? About providing as easy way to gather information, okay? That is super, super important to do that. You see it on Amazon, what they'll do is for your own product, they'll have a bunch of products at the bottom and they'll show how they compare to the products you're looking at. It's basically the same thing. You can do that with your own products, though. You can either buy other products. Number nine, let's do number nine real quick. Steve Robach says, bad echo, don't know if this is a mine or yours. Let's me see, I appreciate you telling me that. Let me see here if I can, my volume is down there. Let me see if it's down here. Okay, there we go. It may just be my office, too, because this office is a little open right now, so it could be a little echo in the office. I apologize for that. But you want to number nine, it's focus, effort, long-generating customer reviews, case studies and testimonials. E-commerce brands need testimonials to keep that social proof strong. Whereas software companies, training and service providers need to go one step further. You have to, okay? Adding client logos alongside positive testimonials with the relevant social proof, in other words, their names, job titles, headshots, logos, all that stuff, and in-depth case studies will help convert customers immensely. Okay, so this is what you got to do. They got to know that that person giving the review is really qualified to give that review. Don't force customers or visitors to another third-party website to read your reviews. Do it on your site. To further validate, oh, he says much better. Great, I'm glad, okay. I did a couple of adjustments and I appreciate that. I really do appreciate your input in there. Matter of fact, what I should be doing and I promise to do this, I promise to do this. My thought isn't aligned with the present video. Oh, that's fine. I came across the possibility of being paid as a virtual friend and wish to know how this is done. Virtual friend. I'm not quite sure what a virtual friend is. If you want to expound on that, I will certainly answer it for you. And then, of course, he said that echo. I don't know if it was my end, but he said it's much better now, which is awesome. Keep those comments coming. Love your comments, guys. If your budget's small, focus your effort to drive reviews through free channels, such as Facebook, Google reviews, that type of thing. These will all help to curb visitor doubts and convert more buyers, so you want to do that, okay? Next thing, number 10. Number 10, we're up to 10? We're up to 10, did that in 16 months? Let me get a little bit of a sip here and keep those comments coming, guys. Really appreciate that. Number 10 is get the reviews you want by suggesting specific topics you'd like for them to address. Now, here's the problem. A lot of times we want reviews. We want people to comment and say things and all that. They don't know where to start. They don't know what to say. So for example, I own a survival food company. I could say, please tell me how the canned beef differs from the beef you would buy in the grocery store.  And I would say, tell me how you use that in different recipes, okay? So that gives them something to grab on to. They go, oh, I made a beef stew the other night with your canned beef, okay? And they can talk about that. Pretty much every entrepreneur knows the importance of generating customer reviews and testimonials. They just don't know how to do it. And this is the way you do it. You give them suggestions up front. It's easy to make the mistake of collecting a bunch of reviews that really don't say all that much, okay? For a customer who'll say, well, it's really good and it tastes great and it lasts a long time. They can say that about canned meats, but that's not that helpful. We want to be more specific. These generic reviews are problematic for a few reasons. For one thing, like I said, they don't provide real information about the product or service being offered or the provider for that matter, okay? Along with this, they're quite impersonal. Since the person reading the testimonial doesn't know all that much about the person providing the review, they have no reason to think that their opinions will align with their own personal opinions. So coupled along with this, such generic reviews are pretty easy to fudge even if such a review was actually given by real customers. They may not think they're real. A potential customer has little reason to trust what is being said. Let's see here. Hold the mic closer. You get better sound. You know what, Paul? You're so right. How's that guys? Is that much better? I'm sure it's much better. Have you ever sold products online using cash, COD, cash on demand? Absolutely not. Now everybody pays us upfront with credit card or where we're adding afterpay. So that's the next thing we're adding where they can make three separate payments. Now afterpay is kind of cool. And since you brought that up at COD thing, let's say I have a product that's a hundred bucks and that person doesn't have a hundred dollars. You could add something like afterpay to your site. And what afterpay does is it's an integrated software. And what it allows people to do is to pay in three different payments and it doesn't cost them anything more, which is pretty cool. Now you say, well, how does that work? Well, afterpay is gonna put a software on your site and this is for WordPress or Shopify or Magento, whatever you have, so that when somebody selects afterpay, they collect the payments and give you the full amount upfront, less a percentage. Now that could be anywhere from five to 8%, let's say. So you're gonna pay a percentage, but keep in mind what you've done is you've gotten a sale that people wouldn't have given you before. Open-ended questions are the key to conversations. Yes, you gotta ask a question. You can't do a yes-no question, right? No yes-no questions. We don't want yes or no. We want something that you have to describe that's definitely true, Paul. I think the frequency of your content allows you to be seen. Better sound now, brother. Thank you so much. Yeah, I had the microphone halfway across the desk. I was last-minute today.  I had so much stuff going on today. I've got like four people waiting to meet with me right now. But you know what? You guys are more important. You guys are more important. All this other business stuff is secondary to what you guys are. So at any rate, the onus is on us, okay? The e-commerce store owner. To solicit these reviews and testimonials that actually have substance to them, it is incumbent upon us. If we're not getting them, it's our fault. When reaching out to current customers, you'll want us to just specific topics. You'd like them to address the product's quality, their site experience, any interaction they may have with your customer service team. What do you think of our service? That type of thing. That way, you can provide a more focused testimonial on the applicable pages, rather than just a collection of testimonials that say, yeah, this is a great product. You ought to buy it. That's boring stuff. Now, number 11. Number 11 I think is super important. And number 11 is to set your homepage as a digital dashboard for your site. Now think about this. No matter which page a customer lands on, sooner or later, they're going to visit the homepage. That's just gonna happen. Don't overcomplicate this page, okay? Don't make it too difficult. But at the same time, don't miss anything. Keep simple things simple and help users navigate to where they wanna go. Everything on and around the homepage is gonna be super important to increasing your sales and conversions. And that does include your main menu and footer. And I'm getting ready to redo all of ours. I don't like what I have and I'm gonna change it. Avoid overloading web visitors with huge blocks of text or too many videos, especially if they are auto play.  If they wanna watch your video, they will. And if they don't want to, they shouldn't have to. I was looking at Sam the Cooking Guy's website the other day and it was so simple. It had home, recipes, and shop. I think that was it. It had three categories. And that's pretty much the three things they'd wanna do. You don't need all these other categories. They're not necessary. They're confusing. And a few things to consider when building your homepage. Clearly display your contact details. Guys, you need a phone. You need an address. You need all that stuff. You can get an address through a virtual office. That's not hard to do for $10 a month. You can get a phone number through Google Voice. It's not hard to do. Highlight what makes your company different. Why are you different? Show you unique selling points. If you've got free delivery and returns, that type of thing. Display your main categories above the fold. Gotta be above the fold, guys. 85% of people don't scroll. Avoid distracting visitors, okay? All right, let me see. I got another comment. I got to throw up on the screen and it would be Paul, my man, Paul. I funk the realization that business is a game of persistence and not get rich overnight. Oh, definitely, 100%. But that doesn't mean you won't get rich. That doesn't mean you can't make a lot of money. I love how you never gave up after phone case failure. Yeah, well, yeah, there was phone case failure and there was phone dialing failure and there was a lot of failure. And there's still failures, guys. I would say a good 80% of the route. I've downed it maybe 70%. 70% of what I do doesn't work out. It just doesn't, okay? And a lot of people can't swallow that. But keep in mind, when I was in sales, when I was managing car dealerships, our failure rate was 80% because only one out of five people would ever buy. One out of five, okay? So keep in mind that it is, selling online is a list of failures. And as you go through these failures, you're gonna get some wins. That's the way it is.  And I think I can squeeze one more in. I had so many of these things listed for you guys. Goodness gracious. Number 12, negotiate advertiser access to influencer Facebook page. Now, that sounds a little complicated. It's really not. You know how effective a strong influencer marketing campaign could be, right? So if there's an influencer out there that likes your product, it can be very helpful. Of course, if a popular figure in your industry mentions your brand organically, that is without being paid by you to do so, that's even better, okay? If you can pull that one off. Now, when an influencer mentions your brand in a post on one of their social media channels, you're gonna wanna milk every bit of value from that that you possibly can to do so. You're gonna wanna reach out to the influencer to see if they'd be interested in providing you access to their advertising account. Ooh, that would be nice. In exchange for payment, of course. Once you have advertiser access to the influencer's account, you'll be able to boost their post about your brand. So let's say somebody says something on a post, it's about your brand that's positive. They give you access and you pay for a boost of that so that more of their audience sees it. It's really a win-win partnership because when the influencer side of things, they're gonna be growing and getting more free advertising since you're gonna be paying for the ads. Okay, that's pretty nice. On your end, though you're paying for an ad behind the scenes, the ad in question will appear to consumers as social proof since it will be coming from the influencer's account and it's not really even an ad. Really, really works well. So there's like, I mean, I could go on all day long, there's so many things that you can do to make this stuff work for you guys to get more customers, more conversions. So as a speaker back in the day, what was your unique product experience? What would you do today in the same marketplace? Okay, so Paul knows that for about nine years, I was on the road as a professional speaker and I trained car dealerships. I trained the managers. I trained the salespeople and they all went through my course. It was an all day course. It was 9 a.m. to 4 p.m. and I spoke for that period of time with the exception of one hour for lunch. And the unique experience was that as I went around the country, now I ran one of the top dealerships in America. It was number three in the nation, number one in California and it was a Chrysler dealership. But we were a top dealership, but that wasn't enough. So what I did when I went to every single town, I put a call out for anybody who made six figures plus selling cars and keep in mind this was in the 90s, okay? So that's a lot of money. And I would interview these people and then I would take those little nuggets, those tidbits of things that they were doing and I would add them to the webinar seminar back then. I would add them to the seminar and then I would give the person credit for it. So I would say, you know, Charlie Frank in Pennsylvania at this dealership makes $190,000 a year and this is the thing he does for follow-up with his customers. So I would add all those. And by the time I was done, I had interviewed well over 100 people who made six figures plus in the automotive industry. So I took that information, coupled it with the information that I already knew from running a car dealership and I said, hey, if you don't think there's one thing that'll work, what about this next thing and this next thing and this next thing? All of these people are making a lot of money. And if they're all making a lot of money, then maybe it'll work for you. Is there a big influencer in the survival market space? How did you find them offline like magazines or other places? You know, it runs really hot and cold in the survival industry. It's a tough industry. I watched a lot of people go out of business when Trump went into office. Now, I'm not gonna talk about politics, but it is a known fact that if you have a Democrat in office, survival industry thrives, okay? Because they're afraid of their policies and their plans. If you have a Republican or a conservative in office, survival industry kind of falters because they're not afraid anymore.  So that is the public's perception. Whether you believe that or not, that doesn't matter. It's a fact as far as marketing. So as far as competitors out there, I don't have a lot because they come and go a lot, okay? We're very consistent and we don't try to scare anybody.  We don't do that. We never have done that. We're not a scare tactic company. So I don't really look at my competitors that much and what they're doing. Maybe I'll look at some of their ads or something like that along the way, but that's pretty much it. So I hope this stuff helped you guys out. I hope it got you going. I know you helped me out. Paul, you told me to move my mic up. I appreciate it. And I was like, oh my God, the mic is like two feet away. And these mics, they really have to be close. I mean, this thing, if I talk to it like this, it's gonna be a whole lot better than if I talk to it like this. However, this is a real pain in the butt. So this is about where I end up. That's very helpful. Let's see here, got another comment. Did you ever do a book on that selling experience after you left the market or offer a home version for those that can't make the event? I did not. I had cassette tapes that we sold at the back of the room and we always had a beautiful woman back there. And you could say what you want, but that sells a big group of men and the majority of the sales people in the automotive industry were men. So by having a beautiful model in the back of the room selling my tapes that worked really well, we usually had two models at every one of my seminars. We had one on stage that would announce me and then she would go to the back of the room with the other model and they would actually sell the products which were my cassette tapes. So we sold those, did very well, did very well with those. So that was our marketing, you know? Go see the lady at the back of the room. Now what I would also do on my breaks is I would go back and I would autograph the workbooks. I would autograph pictures. I had these headshots of me and I would autograph those. I would autograph the tapes that people seem to like that. I don't know. My handwriting's terrible, but they really seem to enjoy that a lot. So I would definitely do that. He says, have a blessed weekend. He knows I'm getting ready to leave because it's 10.31 now and that's about what I do is around 30 minutes. So if you're new to this, be true to this and hit that subscribe button down there, okay? Don't forget to ring the bell. Turn on all bell notifications so you're notified each and every time I go live. It's the most helpful. And you know what? Even if you're not live with me, even if you're watching this afterwards, even if you're watching a recording of this, you can participate by putting a comment in the comment section. I come back through, I answer those things, ask me questions, tell me about your business. Introduce yourself if you want to. I love meeting new people. A lot of the people that follow me at this point, I've known for years. We've hung out together, we've done stuff together and it's fun just to share all these ideas. Guys, thank you so much for being here. I will be back again on Wednesday. I appreciate your attendance. Love each and every one of you. I'll talk to you real soon.


Hi, I am Jenny Grotsky, and I am one of the peer review coordinators on the R&D team. I am here today at the home of Superman to present this award to our very own platform superhero, Chris Bauer. If you have ever in need, you can call on Chris to come to the rescue. He pre-screens papers faster than a speeding bullet, more efficiently than Amazon, and with more accuracy than Pi. Here are some of his award-winning superpowers. His superhuman abilities, his stamina, his super speed, he senses danger and enhanced sight. As Superman stated, with great power comes great responsibility. Chris uses his keen scanning powers to look for unsightly ethical concerns, missing conflicts of interest, and pesky file automation issues. His superhero powers are out of this world. Thank you, Chris, for leading the platform pre-screening process and rescuing us from the evil pre-print villains.


An unsuitable marriage by Collette Dartford. Narrated by Sarah Borges. Prologue. It was Olivia who found the boy. She only went to the changing room because she thought that was where she had dropped her keys, and there he was, suspended from a coat hook, a black leather belt round his neck. At that moment she knew why people claimed not to believe their eyes. It seemed an odd expression, implying one's eyes had the capacity for deceit. But now she understood it completely. His face was ashen, a grayish sort of white, his lips tinged with blue.  She wanted to call the boy's name, but she was too shocked to remember it. Instead she lunged forward, grabbed his legs in a kind of bear hug, and took the weight of his body in her arms. The obvious thing was to shout for help, but the changing rooms were out of bounds after supper, so nobody would hear her. She released her right arm, taking all his weight in the left, reached up to the metal buckle, and pulled it undone with a hard tug. The boy slumped forward over her shoulder. Freddie Burton. Of course. Olivia laid him on the bench that ran under the row of hooks, and felt his vividly bruised neck for a pulse. Newhouse parents had to take the first aid course, otherwise she wouldn't have known that the carotid pulse can be felt on either side of the windpipe, just below the jaw. It was weak and faint, barely there. Freddie, she said, her voice artificially calm. Freddie, it's Mrs. Perry. You're going to be fine. She didn't know if that was true, but it seemed the right thing to say. As gently as she could, she maneuvered him into a sitting position, and from there managed to roll him over her shoulder. His build was as stocky as hers was slight, and he felt awkward and heavy as she carried him, firemen-like, along the dimly-lit corridor and out into the deserted quad. His bony shoulder pressed painfully into hers. She breathed through the pain, the way she had when Edward was born. A biting wind whipped fallen leaves into a frenzy. Its ghostly howls drowned Olivia's pleas for help, and she braced herself to scream. From the pit of her stomach, she released a shrill, desperate sound, bringing Leo Sheridan, Freddie and Edward's


Hello everyone. My name is Mohamed Ali and I'm a professor at Athabasca University in Canada. Today we will be discussing the benefits of mobile learning. You know, many people ask me, why should I get into mobile learning? What are the benefits of mobile learning? Well, today we're going to discuss what are the benefits and you will learn about the benefits of mobile learning. So first, students can learn when they are alert, very very important. Students should learn at their peak times. So with mobile learning, students can access the learning materials from anywhere and anytime. And in education we have something called the learnable moment. Some students learn better in the morning, some students learn better in the evening, some students learn better late at night. So with mobile learning with the technology, they can access mobile learning materials anytime of the day depending on their peak time. And I call it the learnable moment. So we each have learnable moment. And the young kids, the young students today, they tend to learn better in the evening. So they can access learning materials in the evening. Students can learn from anywhere, anytime. As they move around, they can learn with their mobile devices. Encourage lifelong learning, very very important for the older generations. They can use the mobile devices to learn in their own communities or in their workplace so that they better themselves and they improve their quality of lives. And in some cultures, the older generations are very shy. They tend not to go to a formal school to learn. But with the mobile technology, they can actually access the learning materials from anywhere and they can learn at their own pace anytime that they want. Many students live in remote locations. And with the mobile technology, with the connectivity in the remote locations, the students can actually access the learning materials using their mobile devices. With mobile technology, learning is learner-centered. So the learner is in control of the learning. They can actually access information from the internet. If they see the learning outcome and they want to find more information, they can do their own research rather than depending on the teacher. So it's more learner-centered. It caters for different learning preferences. Students have different learning styles, different preferences. So they can access different types of materials based on their preferences. So for example, if a student like to look at video, they're very visual, they can actually access the visual materials. If they like to read text, they can access the text materials. Student learn in context so that they can apply what they learn right away. Very, very important. This is very important for a higher level learning. So the more you learn in context, the more you apply right away, the better you remember it and the better you can apply it. Very important, educate the special needs, the disabled. Some students can't move around. They can't travel. With the mobile technology, they can get educated in their home, in their own community without having to leave the community. So very, very important for the special needs, the disabled people so that they can access learning materials. They remove barriers to learning so people who do not have access to learning materials, to library, to schools, etc. And there are millions of students in development countries, there are no schools to go to. Why not give them the mobile technology to access learning materials? Very important to educate the females. In some countries, females are not allowed to go to schools. Why not allow them to use mobile technology to access the learning materials from wherever they are located. And one of the major benefits we are seeing today is we have a lot of youths today in the community who are lost. They are school dropout, they're not interested in school, but yet they have mobile technology. So why not design learning for access and mobile technology for these lost youth who have the technology that they use to play games and to interact with each other, get them to learn so that they can get employment and they can improve themselves. Also educate the displaced due to natural and human disasters. We have natural disasters around the world, earthquake, tsunami, etc. And schools are destroyed and people need to know what to do when these disasters happen. So why not send information on mobile devices? They all have mobile devices, provide learning materials and the mobile devices. And we also have human disasters, wars, which are human disasters. People get displaced, but they have to learn. A young generation have to learn. Allow them to access learning materials from mobile devices. So yes, they are many, many benefits of why we should use mobile learning and we should design learning materials for delivery and mobile technology. So why is access to education important? Education is a human right according to the United Nations. Everyone should have access to basic education, reduce illiteracy, especially in developing countries, so people can improve themselves. Productive society, if you have an educated society, educated country, people are more productive, which means that they improve their quality of life. So they will get meaningful jobs, they will know how to interact with each other, they will know how to get along so that they can improve their life. Education also raises people's self-esteem. So if you get people to access learning materials to better themselves, their self-esteem will improve. And if their self-esteem improved, they will have a positive outlook of life, which means you will have a better society. So we will change the world for the better if we educate people. And mobile technology, mobile learning has a major role to play in education. So why use mobile technology to improve access to education? We have the new generation of students who are very comfortable using mobile technology. They use it to interact, etc. So why not deliver the learning on the mobile technology for the new generation of students? We have information explosion and they say information is changing every five years. And in the future, it may change in months or in days. So people need the technology to access the current information so that they can apply it right away. And if someone has a mobile device, they can actually access the information from the internet so that they can get the current information. We have globalization where we have to design for different cultures. So whatever we design on mobile learning, we have to make sure that it applies to different cultures. So we have to follow standards, international standards such as the UNESCO standards, very, very important. So whenever as teachers educate us when we design mobile learning materials, we have to think globally. So we have to make sure we take into consider the different cultures, their values, etc. Increasing use of open education resources, we are seeing more and more open education resources available, which are electronic. The existing electronic repository. So it's very important for students to actually use mobile devices to access the electronic materials, open education resources. Many initiatives around the world to deliver education for all because the students in developing countries have mobile devices. So we have to design courses for delivery and mobile devices. We are seeing a trend now of user generated content and a good example is Wikis. And that's where actually people are coming together to design their own content and other people are validated in the content. So in the future, we may see the student actually generating their own content and the teacher validating the content. More to more peer tutoring with mobile devices, whereas the students will actually help each other. And this is one area that we're missing in education peer to peer tutoring. We have to get students to help each other so that they can tutor each other. They can teach each other and they say the best way to learn something is to teach others. So why not get students to use the technology to to tutor each other to interact with each other and to help each other. Digitization of learning materials information in the future. We are seeing more e textbook, more electronic materials. And who knows eventually all information learning materials will be electronic. Which means the students have to have a device to access the electronic materials. With mobile device, they can actually access the electronic materials from anywhere anytime. We also look in a cloud tutoring where the tutor will exist anywhere in the world. So for example, a student will have a question on a course or some content, they will enter the question. And someone, a tutor or teacher from anywhere in the world will actually answer the student question. So the teacher is somewhere in the cloud. So for a student to interact with the teacher, he or she will have to use a technology, the mobile technology, so that they can actually connect to the teacher or the tutor. Efficient learning, learning will be much more efficient because the students can access information from anywhere anytime. They can learn anywhere anytime. And we are talking about smart learning, where in the technology the system will detect the learning style of the learner and will actually prescribe the appropriate learning materials. So there are some intelligence in the system, in the content, to actually prescribe the appropriate learning materials to the student. So these are some very important reasons why we need to use mobile technology to improve access to education. So we, I mentioned education for all. And it means that all citizens of the world achieve at least a basic education level to function in society, so that they have a better life, so that they're protective in society. There are many projects that actually work in towards the United Nations Millennium Development Goals. And according to United Nations, education is a human right. Everyone should have access to basic education level. But the only way to give everyone access to education around the world is to deliver on mobile devices, mobile technology, because people have the mobile phones. And the fastest growing rate of mobile adoption is in developing countries. So we need to make sure we design learning materials for delivery in these developing countries. So UNESCO Education for All Goals, by 2015, all children, particular girls, those in difficult circumstances and those belong to ethnic minorities, have access to and complete free compulsory primary education of good quality. So as teachers, educators, we need to design learning materials, electronic learning materials, high quality, so that students can access on their mobile devices around the world, so we can achieve education for all. And people can access learning materials to improve themselves, their life skills on their job, so that they perform better in the job. So here's a list of the United Nations Millennium Development Goals. And I will just highlight a few. The second one, Achieve Universal Primary Education, which says that all children around the world have at least a primary education. Again, mobile technology has a major role to play, so that when you design courses, you have to design for delivery on mobile devices. In terms of health care and child mortality, you can actually provide information to people around the world, so that they can access the information right away, so that they can improve their health, or they can have a prevent diseases, etc. So yes, the mobile technology has a major role to play to achieve the United Nations Millennium Development Goals, especially in education. So mobile learning and access to open education resources will help achieve the goal of education for all. So as teachers, educators, we have a responsibility to design our courses for delivery on mobile technology and make sure that the courses are available as open education resources. Thank you.