That's me and that's how I work for, and we're also hiring, so Jamie asked me to come and do a little introduction for 20 minutes on Facebook React. We've been using it aggressively for eight, nine months, quite young still, and we also started a React Meetup because there wasn't one, so we've had two of those and the third one's next week. So I just thought that I'd just give you like a brief overview, like 20,000 feet, we'll dive in a bit. There's actually nothing to it, so it's a really easy thing to learn. You can learn it in three hours, I think. It's not like Angular, it takes you three years and you still haven't got it. Right, so why am I here? Of course Jamie asked me, but one of my colleagues once said to me that he thought that everybody should learn a new language every year, and even if it's not the language that you end up using or programming in, it gives you a new way of looking at what you do do and you learn things from that and you can bring things from that into what you do. And it doesn't have to be language, it can be frameworks and there's lots of UI frameworks and I'm interested to learn about EMBA and I'm sure that, because EMBA is like much more sort of full stack than React React, it's just sort of like a little bit of it and so there's lots of unanswered questions that EMBA can, so I'm interested in what EMBA can do for us as well and I've heard that there's rumours of how React might help or something like React might help EMBA. So, we build our applications from lots and lots of different things, right, these days. Loads of different things like plugging bits of Lego, like Martin's slide, whole architectures, whole applications, all built from hundreds of different open source components and modules and things. So, we can mix and match, right, we can just use a bit of this and a bit of that and React is quite good at that in a way because it's very sort of non-intrusive, I mean you could just do like a little tiny bit of a web page in React or you could do the whole application in it but it doesn't, you know, and so it's all about putting things together and using the best tools for the job and working out how you're going to build it. I think there's some synergies between EMBA and React that might actually be useful in the future, I don't know where that's going but it might, but let's see after the talk because we'll see. I don't actually know anything about EMBA, I mean I did knock out for a couple of years, I did Angular for six months and I did Component.js, which isn't really a component but it's a component but it's a thing. And so we've been doing React for the last seven months but I've never done EMBA so I'm here to learn as well which is good. But if you fancy coming to the React Meetup it's next Wednesday, end of plug, right. What is it? So Facebook quite clever in the same, you know, it's a library not a framework, right, so it's supposed to be very non-intrusive and not getting away but it's a bit weird, right, it's a bit out there. So some people call it the V in MVC but I don't think it's that at all because MVC, the sorts of applications that we're building at the moment with React, MVC doesn't really play much of a part to be honest which is a bit weird, it's out there, right. Everyone in the world is doing MVC, we're kind of doing something different. There's already too many UI frameworks and, you know, why do we need another one. But this is kind of a really interesting thing so Martin's talk earlier was all about components and stuff. It absolutely is the future web development, it's component based development, right. I think we're getting to realise that and React is all about components. So it's actually quite similar to web components but it's not anything like them in the sense that it's something that's, you build your applications from component based hierarchies, exactly the same as web components. But they're not baked into the browser, they sort of float across top. One of the problems that React addresses is that we think that state is hard to manage. Applications become really complicated when you've got lots of state in your application.  You just get data and that's what it is and there's no sort of managing state across an application. And React people say that two way binding is a little bit too complicated and in big applications it can get a bit messy when you've got lots of bindings to manage. Only if you use jQuery. And then this last one, which we'll come back to actually, which has been thrown at me a few times, which is like don't mix logic and presentation. And they think that React has poor separation of concerns. But I disagree with that and we'll talk about why in a bit because there's actually quite good separation of concerns in React but it's just different. So it's like, whoa, you know, it's different. It's not like anything and they say give it five minutes. Everybody that I've seen who's given it five minutes has actually, this is different but I quite like it. It's really, really easy to learn. So I said easy then and that says simple and obviously simple is not easy. You know, anything can be easy after you've learnt it. But it is generally genuinely simple and it actually makes building your applications quite simple as well because the way you think about building your application is very much different. We'll come on to that. There, complex interactions become easy to reason about. So when we look at how it works, we'll see that you get a hierarchy of components and there's no data binding anywhere near it. And you effectively are recreating your whole application anytime the data changes, which sounds like it would be performance nightmare and absolutely horrendous in the browser because we all know that the DOM is really slow. But because all you have to think about when you're building your application is if the data looks like this, my UI looks like that. That's it. So some really, really complex problems and really, really difficult things to work out. Actually just completely disappear and it's just this data says this happens in the UI and that's it. It's actually really fast. So you would think that re-rendering your whole application every time any data changes would be horrendously slow but it's actually incredibly fast. I want to talk about how and why that's fast and what they've done to make it fast. So this is out there. This post, I'll put the slides up somewhere, but this post is actually quite cool. Why you might not need MVC with React.js. So it turns everything on its head in a way in a sense that we're building quite big applications right now without any MVC anywhere near it, which is quite interesting. So to Martin's presentation, which was excellent, I thought, what about web components? Why is React different to web components? It is a component-based thing, right? Peter Hunt, who works at Facebook, he has been involved on the React thing for quite a while. They open sourced it nine or ten minutes ago. So it's quite young, but he's been working on the team and this is what he said. There's a lot of stuff you get for free when you build like the browser doesn't exist and this is one thing that distinguishes React from web components and Polymer and that kind of thing. They're getting closer and closer and closer in with the browser and we're getting farther and farther away from the browser. I think our technique is more sustainable among them. They're quite controversial, but web components are great, right? But you have to have the support or the polyfills or you're going to struggle on really old browsers. React almost treats the browser as a rendering engine and nothing else. When you do that, you can abstract away all the browser differences. So you program with an HTML5 compliant CSS3, actually CSS doesn't really come into it, HTML5 event system, regardless of what browser you're using, even if it's IE6, React sort of kind of puts this layer over the top which gives you this consistency so you don't worry so much about differences in the browser and they can do that because it's moved away from the browser. We'll look at how that happens. It's all down to this thing, the virtual DOM. The DOM is really expensive to update. It's expensive to update because the browser has to relay out stuff, it has to work out like, can you imagine how much computation goes into CSS? I don't know, but I could just, redrawing the page, it doesn't really know what it's got to do when you change stuff and it's expensive to update. We know it is. What they've done is they built this lightweight DOM representation over the top of the real DOM. It's actually not over the top, it's completely separate. It looks like the real DOM. There are H1 components and there's Diff components. There's a full HTML5 implementation of the DOM, but in real lightweight JavaScript objects. This is the key to how it works. When you build a component, the simplest component just has one function in it which is a render function. That render function takes some data and produces some virtual DOM. It's pure in the sense that it's idempote. You can run it as many times as you want. If you throw the same data in, you'll get the same virtual DOM out. It is literally just a way of translating your model into your view. It's literally, if the data looks like this, this is what you are, what you are want. It's pure because it doesn't have any side effects and you can run it as many times as you like. You'll always get the same output if you put the same input in. If you put different data in, you get a different virtual DOM out. That data might have just changed very slightly. When I'm talking about data, it could be a whole object of a whole, it's like a model of some sort, it could be anything. If it's changed, you get a different virtual DOM output. This virtual DOM is a representation of what your UI looks like. After it's created this virtual DOM, it runs a diffing algorithm and it compares the previous virtual DOM, what your application looked like before with what it looks like now. It computates the minimum set of real DOM mutations or modifications that it needs to make. If in the model you've added an item to a list and that's an extra Li element in a UL, then it would work out that it's got to just add that or where it's got to add it. It doesn't re-render any of the rest of the DOM or we actually regenerate anything else at all. All it does is make the changes that are correct for the way the data is changed. A really interesting side effect from this, which we'll talk about in a second, is that if you do a diff between the new version and the old version, then you get undo. It's like the reverse set of changes. If you just literally swap old and new with new and old, you can go backwards in time instead of forwards in time with your UI. You get undo for free, which we'll look at because it's actually quite interesting. It's a minor point, but it is quite fun. How does the diffing work? This before and after looks exactly the same. What it does is it basically goes down each level and says there's one item there and it's this and it's got this data or it looks like this and there's one item. These are virtual DOMs, right? These are not real DOMs. It just compares them bit by bit, but if the text in this span changed, then it would just generate the DOM mutation that needed to do that. It works with these two things called state and props. Props are the things that are passed down into your component and they represent the data that your component is rendering. If you think of just like a diff tag for instance or a span or something like that, the props would be maybe its ID, its class name, any HTML attributes. Props and attributes, same word, they just call them props properties of your component. React has a component for every single HTML5, HTML element. You can interchange the word props and attributes, same thing. They're passed in by the parent component and class name is a built-in one and that sets the CSS class and is expanded might be something that you've invented to specify whether it's expanded or not. But state is internal to the component, never leaks outside the component and should be kept to an absolute minimum. It can, if necessary, be managed by a common ancestor. Imagine this is what we use state for. We almost never use state. We always pass stuff in through the props and we'll talk about that in a second. But the state is absolutely minimal. If you think of a radio button or something like that, the state could just be managing which one's selected or something. It's not really related to your model or the wider application thing. It's just quite self-contained. But if more and more component needs to work with the same state, then it would be stored in a common ancestor. And then these are the methods that you get in your component to handle state. So there's a get initial state which just returns an object that specifies what the state for that component is. There's a set state and set state is quite important because that allows you to change the state of the component. Force update will cause your component to re-render so almost never use it. It's almost unnecessary. A component render allows you to specify whether, if you know more than reactors about whether that component should render, you can return false from that and it won't actually do it. So it's a way of getting even more improvements in efficiency. So set state, if that's your component hierarchy, your sort of virtual DOM on the left-hand side, in every place that you call set state, so if you call set state here, here and here, it marks those as dirty. It's only those elements or components, children that will get rendered. So on the next render pass, only those marks as dirty or only ones that you've literally called set state on change. So this is what a react component might look like. This is the hello world example. So there's a render component method which you can render any component with and you can render that component into this DOM element. So that says render this component called h1 into this DOM element in my page. So this might be the only DOM element there is in my page. And it's an h1 that has no props. This is where the props go in the first argument. So it has no props. So we don't want to pass it a CSS class or anything like that. We don't want to give it an idea. We just want to give it a child. The second and third arguments are the children of that. And it will actually create a span for us or whatever it needs to do to. But we could have specified a span if we wanted to. But the problem with building components in JavaScript is that it can get really messy. Get out of hand really quickly. You've got lots of indenting to do and it can look a little bit messy. So they invented this thing called JSX which is like a JavaScript with some kind of XML-like syntax embedded into it. Which allows you to have a more familiar HTML-like approach to writing a component. So that is exactly the same. So JSX itself doesn't do anything. It's just a compile to JavaScript language. Just like loads of compile to JavaScript languages. And that H1 literally just becomes react.dom.h1. And it just compiles to that. So you can do either. And it depends. They think it's great. I'm not so sure. I think it looks a bit weird. And Red Badger were quite big fans of LiveScript which is sort of bare bones minimal from a look and feel. So stripped back JavaScript. Bit like CoffeeScript. A bit like what CoffeeScript should be. And that's exactly the same. So that's exactly the same code in three different ways. JavaScript, JSX and LiveScript. So you don't need comers where you don't need comers. And it's quite sort of stripped back. But what it does do is it allows you to write components that are actually really readable. So this component is a tab, two tabs on a page. This tab is active if the shopping method is delivery. And this tab is active if the shopping method is collection. And it uses React to Creator class. The display name will come onto in a bit. But that actually allows you some really good debugging tools in the browser so you can see where you are in your application. So this is effectively in web components like what goes into the tag itself. What could be called a tag name, I guess. We've got some mixins which are just going to give us this translation helper and there might be a link helper or something. And it's the simplest form of component. It only has a render method. And all it does is create a URL with class name tags and two allies in it. The first one has a class name of... So it will have a class name of left always and it will have a class name of active if the shopping method is delivery. Then it creates an anchor underneath that with an href in it, which formats the... So we're parsing a store which has got the data in it in the model and stuff like that and it's got some helper methods on it as well. So it knows how to format a URL for delivery and that becomes the href and then we've got a translation there. So these are the props and these are the children. This is the child. We'll just go in as the content of the anchor and then the same thing happens on this side. And that's it. There's no data binding or anything like that. When the data changes, it re-renders the whole thing, rebuilds the whole thing. This is another example also in life script. So also a very simple component. It renders a header element with that class name and then it pulls in another component called cookie policy which is basically just a typical cookie thing, policy, acceptance thing. But it only does that if the configuration says that it needs a cookie policy and the next creates a div. So this is quite interesting. If the children of the div here will either be... If there's a shared council there will be an anchor in there, otherwise this anchor will always be there. That's the second child. So you can see how you can create a different UI depending on what your data looks like. Life cycle of a component is a well-mounted div mount. It will receive new props. Should it update, we talked about. There's a hook before it updates and a hooker after it updates and a hook before it unmounts. Almost never need them really. So data flows from parent to child just like one-way data binding effectively. That could be considered as your one-way data binding because you just pour data in the top and it's down through your component hierarchy. Then if you want to do interactions, one of the ways of doing it is to pass callbacks down from parent to child so that the child can call that callback when something changes and they can modify the parent state. That's a bit like two-way data binding. We almost never do that though because there are better ways of doing it. For instance, there is a synthetic event system which is like a full implementation of HTML5 events. You don't have to worry about old IE event stuff. That bubbles up and it's just exactly a delegated event system that's just all right to use, quite cool. Then there's this thing called Flux which is like an architectural pattern which Facebook have put on top of React which is really a simple one-way data flow around your application. Maybe something on the server changes or some action instigates is dispatched to one or more stores. Those stores do what they want with the data update and model and stuff and then they just say, I've changed and the view will go, OK, I'll redraw and redraws and maybe the user interacts with something in the view and you can then dispatch another action to the stores and they will update their data and they will go, I've changed and the view will go, OK, I'll redraw and it just goes around and around so it's actually quite similar to game programming in a way we'll come on to that but this is typically what Flux actually looks like that's an oversimplified version so that may be some web API or whatever and they create actions when the data changes or whatever dispatches through the stores register with the dispatcher and register some callbacks or when a message is dispatched to the store the data changes it will just basically fire event that allows the view to re-render so it's the same thing and a little bit more complicated so this guy Pete Hunt, we talked about good talk at JSConf.eu and at 20 minutes and 8 seconds into that talk he talks about this how he reacts a little bit like doing three engine and the doom engine you've got your game state and you're sort of like your world and then some game logic and then there's an intermediate representation of what the scene should look like and then there's a rendering engine which spits out stuff to the graphics card so in a game right you've got every pixel on the screen you have to calculate what the colour of every pixel is every single frame and the colour is influenced by all sorts of different things happening the way the light falls on the scene how many lights there are how it reflects off different types of surfaces lots and lots of calculations but it's all done over every single frame immediate mode programming so it doesn't do anything unless you tell it to do it and React is a little bit like that in a way because if you overlay what the React parts look like on there on the F1 side you've got application state and events or whatever components which generate a virtual DOM which is like a description of what that scene should look like or what that page should look like and then it compares that with the previous one and then just fires them off to the browser and just literally treats the browser like a rendering engine so it doesn't actually it doesn't actually have to be in a browser that's quite interesting because this could be a string of HTML that comes out of here so you can do server-side rendering it could be SVG or it could be a canvas or anything it doesn't have to be HTML it doesn't have to be a DOM so it's actually just a sort of almost like a forward renderer in a game engine which is quite nice so isomorphic applications you saw a render component earlier you can render a component and slap it into somewhere in the DOM render component to string literally just because it's a virtual DOM right so you create one virtual DOM on the server which represents the state of your data and then you just say render component to string and you get a string of HTML and you send that down to the browser and the first load experience in your single page application or whatever it is you're writing and then you might want to have some client-side routes and carry on client-side for a bit and then you will press refresh and the server will the same components are running on the server that you've written so you don't have to write your application twice the same components are running on the server render component to string generate a new string of HTML down to the browser and that's the state of the application for that page so it actually doesn't matter whether the server renders the page or whether the client renders the page which is brilliant for SEO for fast start-up you know you get non-javascript for free so if you literally turn an interactive application well an isomorphic if you turn javascript off you can carry on the same user experience obviously you've got a round-trip each time but same thing yeah so this in the top of the string there's a checksum when that HTML gets to the client you then call the client-side version of render component which is just render component and then inject the same stuff into the DOM again which it doesn't actually do because what it does is it creates another virtual DOM and does a checksum on that and if the two checksums are exactly the same and it doesn't do anything at all it just attaches the event handlers and carries on but if the checksums are different it will actually make the modifications to make it right but it will give you a big warning in the browser console that says that you probably didn't intend this because the server rendered one thing and now we're rendering something different am I running out of time okay cool but the great thing is that you can refresh any root like I was just talking about so any client-side roots press refresh and the server will render it for you so you've got a non-javascript for free and fast startup for single-page applications so if you deep link into any single-page application that's written this way it will start, you get that page server renders that page for you and you don't need phantom and jess or whatever on the server to instantiate your SPA for you so that Google can index the page so for anybody that does node this is like a little express view engine that I put together it's just nothing to it really but it basically requires the view which is actually a react component and it calls render component to string so it instantiates a new instance of that component passes it the props that we were talking about which are on the local so think of this as like say it was a jade view or whatever these locals which would normally be passed into the template actually passed into the component instead and they become the data for the component you just render that basically into this locals.content and you have just one template which just injects that HTML into that the placeholder in the template that's it server side and an example of how you might use this in an express route so this, I don't know where this is from part of the application that we're building at the moment so getting products with this ID passing some context in so that we know authenticate with our API and then that's going to return a promise of a body and a status which we're not using status but the body become the props for this react component so it's very similar to how you would use templates in express or whatever so because we've got this this view engine plugged in res.render we'll just pass that into there and then create the HTML pass it down to the client right so I can't do this without talking about immutable data for just one second because I think this is where the future of React is probably going to need to go or going to go to so Dave Nolan wrote on which is a wrapper around React that is written in ClosureScript and because ClosureScript is immutable by default there's some amazing things happen because from a performance perspective I've got one more side about that which is quite interesting but he stripped out all the immutable data structures from ClosureScript and created Mori which is like a miniclosure script but for a JavaScript world but it's still quite heavy and then Facebook came out with immutable.js a month or two ago which does a similar sort of thing but it's a bit lighter sort of 10 code gzips or whatever but it turns out that if you can make certain guarantees to your React components that the data you're going to send into them is immutable then it can make all sorts of incredible optimisations about how it renders that data so um yeah so I'm wrapped by David Nolan immutable data structures they have structural sharing and stuff so it's actually really efficient so basically what any immutable data structure what a persistent data structure or immutable data structure is is that every time the data changes instead of actually changing it in place you would get a new copy of the object that looks like a complete brand new copy of the whole model underneath the cover that uses structural sharing so it's actually not creating a brand new copy it's not actually doing any copying at all it's just all pointers to to arrays and stuff so it's really efficient and really fast but it looks to you like it's a brand new copy so it's a different instance to the instance you gave it and you changed it in such and such a way and you got a brand new one out and if you pass immutable data structures into the top of a React component then or React hierarchy then it can look at your data model and it can say well actually this instance is exactly the same there's a reference equals it's exactly the same as that one so I don't have to do anything I know it hasn't changed so I don't have to re-render anything and I don't have to re-draw and I don't have to re-create anything and so from should component update you can return false from that which says don't do anything you can leave this part of the tree untouched because if I've got the same instance it can't have changed because it's immutable if I've got a different instance then it probably has changed or something underneath me has changed so I need to go at least one more level down and see which of those are equal and which ones aren't and it turns out to be a really really fast way so fast you can do it in request animation frame you can re-render your whole application in the 16 milliseconds you get so so who's using React not many people Facebook obviously GitHub I started to use it quite a lot so the atom editor is written in React now or at least the editor part of it is CircleCI that Jeremy mentioned to me today which is written in ARM and Goya which is also written in ARM is actually quite amazing I might just jump in and have a look at that because this is quite stunning this is a pixel editor which is pretty boring but and I've borrowed all this stuff from various talks but in the left hand if you can see down here it's a little preview pane and stuff so I put some hair on it and on the right hand side I'm getting so I can go back to is it not working what have we done oh that was the history so under typical demo hey I'm going to refresh that start again yes it's creating a history down the right hand side not a very good draw am I I don't know what's happened a really good demo that didn't work no mind really embarrassing that watch the video that that Dave Nolan on YouTube just it's actually quite amazing and it worked for me last time maybe there's a new version of Chrome or something anyway so that's React any questions oh maybe it might be worth maybe there is a demo of Facebook obviously React and so is Instagram and stuff but there's a really good React thing here that you can use to so this these are React components and then you can see this particular instance all the data that was passed into it and you know all the all the particular data that's on this instance there's also get DOM node as well so you can actually jump out and get the real DOM node if you want to do fancy animations or whatever you want so yeah cool any questions can we see some of the things that you've built yeah you can actually you can you can so I can't we're building a big application for a big grocery which I can't talk about until it goes live in two weeks' food time and then everybody can see it but so yeah probably not this React meter but the one after that we're going to demo all that but we did build help.sky.com with React so the team that we've got on that team so I don't know anything about this application and I'll be the worst person to demo it but but it is responsive so but these are all React components so if I so it's actually quite interesting in the sense that there are actually different components but because as you the state as it changes from one to another the state is preserved even though the whole component has been swapped out for something else because it's just reflecting the same model but if I I go into that wasn't what I wanted to do that was what I wanted to do if you go into the React tab so can anyone see this this is too small is that better so there's an index page with a tags control in it so you know very similar to web components in the sense that you get this special I've probably gone a bit big then which you can see the different parts of the application so this has got a topic group small but if I went wider probably it would become a topic group large or something it would probably just switch out we should go smaller I know maybe I didn't write this but it's what our team is guiding as you can see so there's a mixture of what looks like HTML5 and what looks like custom components and then if you selected one of these then this has got a bit of state in it is selected as true hasn't got many props I would have written that differently I had more props in this state because that's one that's one thing we've got I want to shave it I think I can't do that next time so is it true that the the virtual dime is better than the show done I don't know I don't know but it's an interesting question it's a question that's going to be asked a lot I think over the next year or so because as web components come to maturity which they will do I mean that they're always going to be because they're quite integrated because they're quite integrated into the browser they've got to wait for the browser to support them and all the old browsers to die off from them this is any browser going back and you just laser over the top you don't have to worry about so theoretically you can use it more now I think probably I think the key thing is that components are brilliant for reuse and building applications so that's the way to do it any other questions? Do you just use react or do you and obviously like close descript and almond stuff like you don't really have like M or C at all the whole structure and I guess how would you see it working with how would you actually make it work in these like because people say it could be the B and the envelope I see how you use it but now I'm not quite sure how you use it with with the envelope how would you think it would go about doing that? So the flux thing Facebook say it's not there's no software associated with flux just a pattern it's not strictly true because there are examples and you can still go from them but it's not like it's just a way of that kind of talks a little bit more about the rest of your application and how data flows through it but it doesn't doesn't really answer anything about how you structure your data or how your models or how you get data from a server or you know or it doesn't say anything about class and groups or anything so we build our applications just a little bit so everything from all over the place can I mention that sort of? Yeah exactly so I don't know I mean I can probably I can't show the application running back I can probably go into so those that's just the guilt part those are the dependencies those are the dependencies so there's all sorts of different things that we use from all over the place so I'm just going to throw them all in and React is just one of them longpoint 11.1 so it's just one of them on this and you do it mostly server side rendered so rather than client side stuff so kind of express and node and things so both so every sort of component runs the same on the client as it does on the server so the server renders it to a string send that string to the client we also send with with that all the data that it needs client side to render again and that's the key thing because when the component renders on the client it has to have access to exactly the same environment effectively when it rendered on the server because otherwise it won't produce the same output so if we had inline script and we can't so the content security process isn't out but we basically just put all the data into data attributes on the document and and then on the client side it just pulls it out and we render it using the same data and produces the same checksum and if it does it can carry on one more quick question on the other side how does the client communicate to the server? what do we use? we use super agent mostly or client side we use super agent server side sometimes they're super agent don't they? sometimes request but yeah there's no jQuery in that and it's all browser-ified up okay cool, another weekend


Hello everybody! Watch this video to learn how to move a virtual machine from virtual box to VMware, Hyper-V and back, how to convert virtual machines between virus hypervisor such as VMware, Hyper-V and VirtualBox. If you have a virtual machine created in Oracle VirtualBox, you can move it to another hypervisor, for example, to VMware or Hyper-V server, and bring it back if necessary. As to virtual box, it is quite versatile in terms of supported formats and can handle all popular virtual disk types, and it can also convert disks from one format into another. So, it's pretty easy to convert a disk from VirtualBox native format VDI to VHD or VMDK. In today's video, we'll give a detailed coverage of how to move virtual machines from one hypervisor to another. VirtualBox and VMware use different virtual machine formats, but each of them supports the common open virtualization format. When converted an existing virtual machine into OVF or OVA format, you'll be able to import it into another virtualization tool. Before you start moving a virtual machine, make sure that it is shut down in VirtualBox and not just suspended. If the machine is suspended, start it and click shutdown. After that, click File and choose Export Clients. From the list, select the virtual machine you want to move and click Next. In the new window, select the location where to save the appliance file. After that, VirtualBox will begin exporting it into an OVA file, which you will be able to import to VMware later. This is going to take some time, depending on the size of the file stored on a virtual machine disk. To import the OVA file you have just created, open VMware, click File, Open, give the pass to the recently created file and click Open. In the window that opens, specify the name of the virtual machine and the path where it should be stored. Browse, OK, Import. VirtualBox and VMware are not fully compatible, so you'll probably see an import failed warning, since the file doesn't comply with OVA specifications. However, if you click Retry, the virtual machine should be imported. When this process is over, you can boot the virtual machine in VMware. If you see this kind of error when trying to start the virtual machine and the machine won't boot, try changing some settings.  Click on CD-DVD tab and remove the disk. Now the virtual machine should boot properly and without any errors. The last step to take is to install the VMware Tools package. Hello friends! If you need to recover deleted data, view or restore removed browser history, Hetman Software products will help you. Follow the link in the description, download the necessary program for free, install it and analyze the disk. The utility will show you the data you can recover, so you will be able to view it or get it back. In our channel and blog, you will find solutions to any problem, from installing an operating system or configuring it, to fixing possible bugs and errors or optimizing mobile gadgets. Our specialists will answer any questions you ask in your comments, under the videos or articles. To move a virtual machine from VMware to VirtualBox, make sure that the virtual machine you want to import is not running or disabled. Otherwise, start the machine and shut it down. In the Programs window, select the virtual machine to be imported and click File, Export to OVF. Choose the folder where you'd like to save the configuration file and click Save. Wait until the expert process is complete. After that, open VirtualBox, click File and choose Import Appliance. Give the path to the previously created OVF file, click Open and Next. In the new window, you'll be able to change the location of the future virtual machine. Its hard disks will be imported in VDI format. Click Finish to confirm this action. When the import operation is complete, you can start this virtual machine. If the machine freezes while booting, try to change some of its options by clicking on the Settings button. If you see any notifications saying that something is not properly configured, change the settings. In my case, the graphics controller is misconfigured. To fix the problem, open Display, jump to the Screen tab and change the graphics controller to the recommended one, VM SVGA, and click OK. Now the virtual machine starts without any issues. Now, let's explore how to convert a disk from VDI format for VirtualBox into VHD format for HyperV. You can do it with the help of the command prompt and the utility called vboxmanager.exe. All right, for illustration, I'll be using a virtual machine with the Linux operating system, which is stored right here. I will save the converted file to another folder, launch the command prompt as administrator, and go to the VirtualBox directory. Type the command for conversion. This is how it looks like. The path to the VDI file and the other path where I want the VHD file to be saved. The command will create a copy of the disk in the required format and put it into the specified directory. After that, start HyperV on the server where you want to move the virtual machine, create a new one, and specify its name and folder where it should be stored. And then, at this stage where a virtual disk should be created, choose the option using existing virtual hard disk, and give the path to the file that you have converted before. After that, run the new virtual machine. As you can see, everything works fine. If you need to move a virtual machine from VMware to HyperV, this can be done with the help of special converters. I'll show you how to convert a VMDK virtual hard disk to FVHD hard disk using the program called Starwind. This is a free utility that helps users to transfer a virtual machine disk from one platform to another. You can download it from the official website. After installing and starting the program, you'll be suggested to choose location of the disk image which needs to be converted. After that, you should choose a folder, then select location of the destination image, choose the image format, and select the options for the image. Now choose where you want to save it and click convert to start the process. When it's over, click finish. After that, move the image to the VMware server. Run the program and create a new virtual machine. At the stage of adding the virtual disk, choose the option to use an existing virtual disk and give the path to the recently created VMDK file. With this method, you'll be able to convert disks of various formats to be used with HyperV, QMU, VMware, and other hypervisors. Summing up, we have just explored various ways of moving virtual machines between different platforms. As a result, we managed to move a virtual machine from VirtualBox to VMware, HyperV and back, and also from VMware to HyperV. This video tutorial can be useful if you are planning to switch to a different virtualization platform, and using this method means you will never lose your virtual machine data, so it's going to work properly on a new server as well. And that is all for now. Hopefully, this video was useful. Remember to click the like button and subscribe to our channel. Leave comments to ask questions. Thank you for watching and good luck.


Coming from Atlanta, I was always about the busy life, going downtown on the weekends, grabbing dinner with my friends, or enjoying the parks and everything that Atlanta has to offer.  When I made that trip over, I realized that Tuscaloosa has everything that I could ever want. I never find myself getting bored or trying to figure out what's next, because there's always something to do.


Aaaaa, I'm to play. I'm to please. Willow... And this is Taylor Meade, all the way up. I can see her shock. This is her shock, Sonny. That always comes through. Viyatu qini lukubaridi. Eh manze. Bling feel, kuwa ni una kuwa nga na kikuwa numba? Mti aun. Tuki samaysisk ti miwa rama tu nenda ulau. Eh we lead from the front. Mi media kwenye kichwa kabisa. Mi kwiti kwa ni waga hendu, so flexi. Nihi yae hendu hii tti webo. Ni na nansi waga si ni, n Marcha. N HBO ni ni washu. Nisha k Pero kusimelia kisha. Mi kwa ni kwa mi-mola kusimeku kwenye. Nisha k Kikinu ta waga, ni kawa kwa hendu. Kwa hendu ni kwa ni kwa kusimelia? Nisha k Kikinu ta waga kusimelia. We are expecting a beautiful story that's amazingly well-short. My idea when going into this film was to paint Eastlands in a different light. First of all, look why is Islando twika e poa. Weirdly, nime greya dandora, nime greya Islando. So for me kikumbuka Islando, kumbuka na nostalgia. So I want people to feel that. Apart from that, it's a roller coaster of emotions. Because any story abela shahipigakwa YouTube chaneli ake. So I was tasked with the job to make sure when people come to watch the film, it's not just what they had on the YouTube. We had to bring in a lot of twists and turns in the story. So Izoziko kwa wingi. Wasewa ki toka hapa. Sinema ita isha wasime. Jale jani wame piti ya. Aki. I can't wait. It sounds like a thriller for sure. It is. Absolutely. Tapatana pa aftaw niyambiye. I'll bring my feedback. Now Phil, palia kwa postanika on Michael Smalls. Wunoki. He's part of directing. By the time he's getting to this team, it means he's doing an amazing job. Why he must part of directing with you? Smalls has been in the industry for well over a decade. He's been interested in directing. We've always talked about it. The other thing is what we are doing here is building a film culture in Kenya, a film going culture in Kenya. So it means we need consistency. So every year we need to be doing a minimum of two or three films every year. At that rate, as Philip, I will burn out. So I need to build a team. So for me I always work with guys who, Smalls took a risk with me with the first film, Grand Little Lie. So it only made sense with the second one. So he's a super dope director. So very soon he will be directing his film, Akiwa Solo, without me. Oh my God, we can't wait. I know you guys have done such a great job there to Taona. Now I know of course you have a casting director, but you've definitely had a warden this. Basio Mungai, the lead actor, Kev, he has never had a lead role. This is his first one. And this is such a great thing and a big thing. What made him qualified to be the lead actor for this movie? He has this energy, this raw energy that with the film we needed to be very authentic to the story. So kunaum tatu flahani, manzea ni, it's either you have it or you don't have it. And Basio brought that to the, and then as an actor he has a wide range. Like he can do from comedy to emotional scenes to very hype and physical scenes. So I was looking for all of that. The age also made sure that he was at least a new face because we were looking for very young guys, 21 and below. So yeah, that helped as well. That sounds like such a talent for sure. We can't wait to see what he has done there. One word on how he has done, the kind of job he has done inside there. For me as a director, he shocked me. That was it. I knew when I watched his audition tape, he's good, but to the level that he took the film, I was not expecting that. So he shocked me. That's the word I'm using. So comparing GLL and Kliklik Bang on a scale of 1 to 10, how successful do you think it's going to be? This one? This one? GLL, GLL kwa trizix. So we made a lot of mistakes in terms of marketing and selling the film. So we've really, really grown. So in terms of just the numbers and how many people are going to watch, I mean today is the premiere. The hall is fully booked. It's fully packed. Yeah, so GLL had to put jazz on the premiere night. But this one, fully packed. So you see, there's already growth. It's not that GLL was not a good film, but it was our first. So we're growing quality wise, marketing wise, in every aspect we're growing. Yes. All right. Awesome, awesome. Thank you so much. It's always a pleasure. Luku me pigatik at our tazamajiwa. Naona pale. Asante sana. Asante men. Namna fanya kazi 50 sana SPM. Manzim na tumik tukai poa. Red carpet. Shukran, thank you for having us on board as well. All right guys, that was the brains behind the Kliklik Bang. He is the director of this particular film and we can't wait to see what he has done there. That was Phillip Kalranger.


Thank you for joining in today's webinar on the topic of breaches and entry in a general tenancy. We have a large volume of attendees in today's session and that's over 800 attendees. So I understand your knowledge on this topic will vary from being quite advanced to order to be quite limited. My name is Lynne Smith. I'm a Senior Community Education Officer with the RTA. I've got over 30 years experience dealing with tenancy laws and situations between landlords and tenants. Welcome to today's webinar. In today's session we will be covering the rules around entering a rental property, the time frames for notices, compliance in relation to entry, the breach process including common breaches and time frames. We'll also have a look at what to do next options when a breach is not rectified and at the end I will answer the questions that you have submitted during the session. You can submit questions by writing in the question box and sending them through. Just depending on the time I will answer what I can answer at the end of the session. However, if I do not address your question or your matter is urgent, please contact our call centre on the 1300 36311 number after the webinar is over. So just a reminder that the call business of the RTA is to administer the act which is the residential tenancies and rooming accommodation act 2008. We provide tenancy information, manage bonds, offer a free dispute resolution service, investigate breaches of the penalty provisions of the act and also have a policy and education service. Our role is to provide information and services to all people involved in a tenancy across Queensland whether you're the landlord, agent or a tenant. So the first part of today's webinar is going to be talking about the rules of entry. And just a quick reminder that all our RTA forms can be downloaded or ordered on the RTA's website. The form 9's purpose is to inform the tenant of the entry by the lesser or agent or another authorised person. The form requires details of the person who is issuing the notice and also the person or people who are entering their name and their contact phone number. Item 6 states the date and time of the entry. If it is the owner or manager that's entering say for a routine inspection you can nominate an actual time or you can nominate a two-hour period of which the entry will occur. Note that the two-hour window doesn't apply for tradespeople. The lesser agent can enter only between 8am and 6pm but cannot enter on a Sunday or public holiday unless the tenant agrees. When it comes time to serving the notice or issuing the notice if the general tenancy agreement states that there's an agreement to serve by email then you can do so but otherwise you're going to need to be the posting or hand delivering to the rental property. Remember notices must be cleared days so for example if you're issuing a notice for a routine inspection by post you're going to have to allow the post or time as well as the seven days required in the act. Remember to keep a copy of the notices that you've served and any documentation of any phone conversations or diary notes that may have taken place between yourself and the tenant particularly if there is an agreed entry. So where do you find out more information about the rules of entry? Under the acts sections 192 to 201 outlines the rules for entry including reasons for entry what notices is to be served and the minimum timeframe for issuing of notices and to when the entry can occur. I'm going to just pause for a moment and I'm going to launch a poll just to gauge the experience in today's session so just bear with me. Today's poll is what is your level of knowledge on the entry rules? A. Limited knowledge. B. Know the times and reasons as listed in the entry notice. C. Your reasonable level of most areas of the legislation or D. Strong knowledge of the legislation. I'll just allow just a moment for everyone just to complete that poll. Great thanks everyone I'll just give you the outcome of today's poll just to let everyone know the experience that we have. 9% said that they have got limited knowledge. 20% say that they know the times and the reasons listed on the entry notice only. 49% they said that they've got reasonable level of most areas of the legislation and 15% of strong knowledge of the legislation. So thanks everybody for participating in that. So let's have a look at the reasons why you would want to enter a property and the notice period required to be given to a tenant. To inspect on a routine inspection you need to give a minimum of seven days notice. You can enter at a specific time or enter within the two hour period. Just to give you the example if I sent an entry notice and state that I'm entering between nine and eleven the entry has to occur during this time. It doesn't state how long I can stay in the property. I could enter at nine o'clock I could still enter at five to eleven but I could not enter before nine or after eleven. For repairs and maintenance or to check if a repair has been done or to enter to comply with the smoke alarm and safety switch legislation that requires a minimum of 24 hours notice. If you are showing a prospective purchaser or a tenant through the property if it's up for sale or up for re-letting then a minimum of 24 hours notice is required and if evaluation is to be done again 24 hours notice is required. If you have reasons to believe the property has been abandoned then you can issue a notice with 24 hours notice to enter and check if it has been abandoned. If there has been a significant breach and you're going back to check that the breach has been rectified that requires a minimum of 24 hours notice as well. While we'll be talking about a significant breach process shortly so I'll leave that one a little bit longer. If the tenant agrees then you can enter it's done at a time that has been agreed between you and the tenant. We would recommend keeping some evidence that it was an agreed entry. If there's an emergency or you believe on reasonable grounds that you need to enter to protect the premises then you can enter and you do not require to give a minimum notice. As an example of this this would be like a storm damage or to secure the premises. It could be a burst pipe causing flooding to a lower floor apartment that needs to be addressed urgently. If that's the case obviously communicate with the tenant let them know what's going on but there's no minimum requirement you can actually enter. As a significant breach process contains entry and the breach process I will outline the steps to follow for this process and what a significant breach is. So under section 192, section 2 outlines what a significant breach is. It is exceeding the number of occupants using the premises for an illegal purpose, keeping a pet where pets were not allowed or any other matter that if the reasonable cost to rectify it exceeds one week's rent. So can I just note that if you are doing an inspection and someone hasn't done the laundry or the dishes are not done and there's a bit of a mess there it's not deemed to be a significant breach. So as an example if you have issued your entry notice for routine inspection you've provided the minimum of seven days notice plus any applicable serving time. When you do the inspection if you find something that is that significant breach as I've mentioned earlier you can issue a form 11 breach notice requiring the tenant to rectify the situation within a minimum of period of seven days. If within the two weeks the expiry of the date of the breach notice you can actually enter by giving a minimum of 24 hours notice to see if the breach has been rectified. As I said that notice period must be done within the two weeks of the expiry of the breach notice. If the rental property is to be sold the tenant needs to be informed this in writing and that's on a form 10 no less or intention to sell. The form will also inform the tenant of the sales strategy and must be given to the tenant before any entry can occur to show a prospective purchaser. If the for an entry to occur to show prospective purchases the tenant must be also issued a form nine. If the renting agent and the selling agent are different then it's a requirement for the selling agent to provide a copy of form nine for each inspection for the renting agent unless it's been otherwise agreed. So the less or agent must not allow a prospective purchaser to enter the premises without being accompanied by the less or all the agent and again unless the tenant agrees. The tenant must agree to an in writing for an open house. An open house cannot occur if they have not agreed. So section 203 has penalty provisions attached and that's 20 penalty units. I am going to talk about compliance shortly so I will provide some cases on that as well. The tenant must agree in writing to use photos to advertise where it contains the tenant's possessions or belongings and again this particular section has penalty provisions as well. On a side note that if a property does go on the market for sale that is the property is advertised and also the less or agent shows prospective purchases through. If this process occurs within two months of a tenant moving in on a fixed term the tenant can give two weeks notice and vacate without any penalty. This is under section 307. This does not apply if the tenant was advised prior to moving in or signing the agreement that the property was for sale. So I'm just going to have a look at some what if scenarios and questions we are quite often asked including some that's actually been submitted today. So I think one of the main ones that's come through has been in relation to if the tenant's not home and if the tenant refuses. So let's just have a look at those options. So the first one if the tenant's not at home the answer is if you have followed the rules in accordance to the act and you've issued the required notice in the correct time frame then you can enter even if the tenant's not there. If the tenant has changed locks under the legislation sections 210 to 213 talk about keys and locks and more stuff the locks have changed the other party must be given a copy of the key. So I'd refer you to these particular sections where the locks have been changed. If the tenant refuses and this is sometimes it actually happens even through our dispute area communication and negotiation is going to be the key to resolving the situation firstly finding out why. So asking questions as to why you know you've been refused you know there may be the tenant may actually have a valid reason or a reasonable excuse so for example they might be having a family member that's ill or it's best that the tenant's home due to a pet being on the property then if that would be the case then negotiating another day or time probably would be suitable. However if you have someone flatly refusing constantly and you have shown them the act and the reasons why you can enter and you have correctly issued the notice if you cannot communicate and negotiate another date or time you can apply to the RTA's free dispute resolution service for assistance if it's not resolved again then after that you could also apply to the tribunal to gain entry. If you arrive and find other people living there that are not tenants that are not the actual tenant on the agreement firstly you're going to probably again ask questions to ascertain the situation it could be that there is more than the approved occupants on the agreement then this would be a breach if it is the tenant has left without any notice and changed over to someone else you would contact the tenant named on the agreement and confirm if they have left and end the agreement before you can actually start a new one. You can also see whether or not it's a sublet situation and there are rules around subletting. If you've arrived at the property and it is abandoned and you have no doubt that there is evidence that they have gone then you have two options you can issue a form 15 and abandonment notice to the property giving seven days notice to end the tenancy or you could apply for an urgent application to the tribunal on the grounds of abandonment but I would say best idea is to take photos as evidence and maybe speak with the neighbors. There are rules around abandonment and also more so in particular with any goods or documents that's left behind. It's really important that all parties involved in a tenancy to build and maintain the tenancy relationship to avoid disputes and keep those lines of communication open. Just like to take the opportunity just to bring attention to our compliance and investigations section of the RTA section 202 is unlawful entry of the premises. This states that the less or lesser agent must not enter the premises that must not enter the premises in contravention of the rules of entry and if the rules have been changed by the tribunal that's also one of the other parts of the sections as outlined under 192 to 199. This section has penalty units attached and also can be taken quite serious as an offence of the act. I'll just share a couple of recent court cases with you where we have taken agents to the courts then because they have breached this section of the act. So there is a lot of it there is information about these particular cases on the RTA's website and I would welcome you to view those particular stories. One agent was a Brisbane agent was fined in court for unlawful entry and one count of unlawful special terms in agreement. The penalty was $10,000 and a criminal conviction was recorded. There was a North Queensland agency was fined $2,500 for unlawful entry plus a further $6,000 for unlawful special terms. So both of those stories as I said are available on the RTA's website under the newsroom section and I'll welcome you to actually read those particular articles. With our investigations if a complaint is substantiated by an RTA investigator then we can either A provide education, an issue a warning letter and just monitor the situation. We could also issue a penalty infringement notice known as a PIN. I guess this could be seen as similar to like a speeding ticket it's usually a smaller amount compared to a prosecution or we could commence a prosecution. With a prosecution if you have breached the penalty provisions of the act and there are around 125 sections that have penalty provisions the RTA can prosecute and this matter is a criminal matter it's taken before the magistrates court it's not a QCAT matter. So for real estate agents or companies the director must be advised and the representative must have authority to bind the company and the RTA would recommend that you seek your own independent legal advice so whether that's being a penalty infringement notice that's been issued or if it is a prosecution and you've been notified. So I just wanted to talk about the second part of today's webinar which is dealing with the remedy breach notice process. So just before I do continue I will actually launch another poll just bear with me. So this poll what we're looking at is what is the main reason you issue or receive breach notices? So the first one is rent arrears, noise complaints, unauthorized occupants or pets, repairs not being carried out or other. So just give you a moment just to go through that poll. Great thanks everybody and just to give you an idea of the percentages so we have today's 87 percent for rent arrears, three for noise, four percent for unauthorized occupants or pets, one percent for repairs not done and four percent for other. Thanks everybody well we'll just keep going with the webinar on the remedy breach sign things. So what is a breach? A breach is a term of the standard or special term of a tenancy agreement and the breach can be done by either the tenant or by the less or the agent. I briefly outline key sections of legislation regarding breaches. So section 280 states that the less or agent believes on reasonable grounds the tenant has breach and the section 301 states that the tenant believes on reasonable grounds the less or agent has breach. The breach must be in the approved form and must allow for the period of time to rectify the breach which in most situations in general tenancies will be seven days. The common types of breaches that we do see are rent arrears, noise issues, the breach by the tenant in interfering with reasonable peace, comfort and private of neighbors and that's outlined under section 184. Unauthorized pets, unauthorized occupants, damage to rental premises and the less or agent not carrying out repairs and maintenance. With this topic I would refer to the less or general obligations as outlined under section 185 of the Act where it states that the less or must ensure the premises and inclusions are clean, fit for the tenant to live in and good repair and not in breach of any health or safety laws. This section then continues to say that while the tenancy continues the less or must maintain the premises and inclusions in good repair. So when the breach has occurred you can issue a form 11, a notice to remedy breach. For this example I've chosen a rent arrears process so if the tenant has fallen seven days behind in rent on the eighth day you can issue a breach given the tenant a minimum of seven days to rectify the breach. In the slide you'll see in item five it's important that you complete this as to the date the rent is paid to, the number of days rent is overdue and this is as of the day the serving of the notice and the amount due. This amount is the amount that is due at the time of serving the notice not rent that's going to be due during the period of the breach. On this notice you'll also see the method of issue so whether that's by email, post or in person remember notices are clear days and if you're posting a notice refer to Australia Post website for their posting times relevant to the type of posting and the area because you will need to add that time frame to the notice. So when posting you may find that again depending on the type of posting you are adding you may need to add an extra two to six business days. If you are serving notices by email ensure that you have an agreement on the tenancy agreement and that the box is ticked along with the email address for serving. We have been asked can I send it by a scan text message by phone text messaging is not an approved method of serving you must serve by an approved method which is your email, post or in person we know some people send a reminder by text that they've served a notice but that is not the original source of service and that probably answers quite a few questions that's come in today's session as well. Section 299 and 315 outline the repeated breach process so section 299 if the tenant has breach and 315 for the less or if they have breached. If two breach notices have been issued and a third breach occurs within 12 months then you can apply for an urgent application direct to QCAT the tribunal to terminate the tenancy on the grounds of repeated breaches. It must be for the same breach and on each occasion the breach the previous breaches have to be rectified in full and it is recommended to read these sections and look at the seriousness of the breaches as well. To provide you with an example so if a tenant did not pay rent and the rent breach process was followed where the tenant rectified the payment required within the time frame this has occurred twice and then on the third occasion the tenant falls behind in rent you can apply directly to the tribunal no notices are actually issued. If a tenant had a party one weekend and caused neighborhood disturbances the breach is issued they don't party within that seven-day time frame that means that the breach has been rectified. If this happens twice and as said both times have been rectified on the third occasion again you could apply directly to the tribunal no notices have been issued directly to the tenant on that third time. Again the RTA recommends communication between lessor agents and tenants and making sure that everybody understands their rights and responsibilities under the legislation. So if the breach is rectified obviously that no further action is required nor no further action is going to be taken if it's not rectified there's options available so what to do next. Communication as said before with the tenant and discuss options or if it's a lessor's breach a tenant to communicate with them if the outcome is in relation to a payment plan or any other agreement say a compensation amount then put that agreement in writing and everyone has to sign it. It could also be that there's an agreement for something to be fixed by due date again put that in writing and everyone signs it. It is also known that there's some community organizations out there that will offer assistance to help tenants sustain their tenancy and get involved financially. These organizations vary and also depends on the locations. So tenants could also refer to their local rent connect officer which is through the Department of Housing and Public Works for assistance. If the next step is to end the agreement you may issue a notice to leave or a notice of intention to leave. I've listed the sections to follow. As an example if I if it is that you fail to rectify a remedy breach and then it is seven it is then seven days noes to leave. If it is for any other breach it's the 14 days noes to leave. So if the tenant does not leave then you would then be applying to QCAT the Tribunal for Termination Order and a Warrant of Possession. There are rules in how a tenancy can end and must be in compliance with the legislation. So for that I'm going to refer to section 353 which states ways of recovering possession of the premises. If you take back possession other than a way that's authorized in the Act there is penalty provisions attached to that section. If you cannot resolve the matter you can also apply for assistance through the RTA's free dispute resolution service. As said there are some options that are available depending on the situation and the type and the seriousness of the breach what action you may require to take. So when it comes to dispute resolving disputes the RTA recommends three steps to resolving tenancy matters. Self resolution, communicating and trying to resolve the matter yourself directly with the other person. Applying to the RTA's free dispute resolution service by completing and signing a form 16 dispute resolution request. The RTA will then view the dispute and see if parties will participate in a conciliation process. It is a voluntary process so we cannot force parties to participate however we will encourage it. We then can organize a telephone conference with the other party involved and try and resolve the matter. The role of the conciliator is impartial and they're not there to take sides. The decision of the outcome belongs to the parties who are actually involved in the dispute. If it's not resolved then it can progress to the tribunal for an outcome. If the matter is an urgent matter as outlined under section 415 you can go straight off to QCAP the tribunal. All other matters deemed non-urgent as outlined under section 416 must go through our dispute resolution process first and keep in mind that if it's not resolved through the dispute process some of the notices when applying to the tribunal may be time sensitive with their application. Just one comment I will add is what is when it comes to serving any notices to remember to ensure that you have followed the correct rules and time frames. If matters proceed to a tribunal the areas that you need to be mindful of is that if you have allowed the right amount of notice particularly with breaches and any notices issued that you have allowed clear days and you can demonstrate how that notice was served. So if you are hand delivering to the letterbox then you would want to put down the date and time of delivering the notice and maybe even consider a photo of delivery as evidence or a stat deck. Only served by email if the tense agreement is ticked to agree to have the notices served that way and list the email address for service on the agreement. If you're issuing by mail that you have followed the correct mail time remember to refer to the Australia Post website and look at whether you're sending it by express priority or normal mail. Remember you cannot issue another notice or take action until the expiry of the date of the notice and that time is actually going to be midnight. So if a notice to remedy breach expires on the 1st of June you cannot issue a notice to leave or take action until the 2nd of June. For any other tense information contact the RTA our 1300 36311 number and talk to our client service team or you can go to the RTA's website. We have a lot of information there resources videos publications and all our forms are available as well. You can order the entry and the breach notices from the RTA's website or give us a call and we can send them out to you. Look we've got a lot of questions that's come through today and I'm just going to take some time now just to quickly answer some of those questions and I'm just a bit conscious of the time as well. So we have covered a lot in today's topic and I know that some of the questions that have come through I have actually addressed that with some of the content. So one of the questions is just clarification on giving notice to a tenant when a property is sold and it's coming to the end of the fixed term. Is four weeks still okay? The quick answer is actually no. Two months no without grounds to end a fixed term. The four weeks notice period is only applicable on a periodic tenancy. So the tenant has to be on a periodic tenancy to issue because on the grounds that the property has been sold. If the tenant is on a fixed term it's come to the end of the fixed term it's going to be two months no without grounds. If the as I said when property has been sold the four weeks only apply when it's a periodic tenancy. If you issue a breach with seven days rectified damage and you know it's going to take them longer do you just add more time? Look the legislation outlines seven days is the minimum. This does not stop you from giving a tenant more time on the breach notice. So you may choose 10 days or 20 days the legislation only outlines the minimum time frames. Just another question here. Is there a time frame that you have to issue a notice to leave after a breach expires? In the legislation there's actually not it's not listed. There is no time frame in between the two notices however it would need to be issued within a reasonable time. What would that be? Could it be the next day or within a week? Possibly yes. If it's in a month's time or longer then that possibly may not be reasonable. It really comes down to the seriousness of the breach however I will point out that there's a time frame however from when you issue a notice to leave when that's expired to when you have to apply to the tribunal then that's a two week time frame. So that's really important to understand that. If you intend to apply to the tribunal you need to ensure that that's done within that two week time frame otherwise the tribunal may choose to dismiss your case and you'll have to start again. Thanks everyone for your questions. As I said if I haven't had a chance to answer them please again contact our 1300 number and those I will try and see if I can address them personally after the session. Quick three question surveys now just going to pop up and if you could just stay online and answer those quick questions. We're looking to know what sort of topics you're interested to know about you know which will actually help us tailor some future webinars. Thank you again everybody for your attendance and thank you again for completing those polls for us. The webinar will now end.


Hey, what's going on everybody? My name is Alex Friedberg and in today's video we're going to be going over the group buy and the order buy statements. In previous videos we created tables, we went over the select, the from and the where and now we are at the very end of our SQL basic series. If you stayed with us for the whole time, hopefully you have learned a lot and learned the basics of SQL. In future videos we're going to be going over intermediate and even more advanced concepts and even going through portfolio projects that you can use to put on your resume. If you like this type of content be sure to subscribe below but let's get into it for today. The group buy statement is similar to the distinct in the select statement in that it's going to show the unique values in a column. The difference is if we say distinct gender, what's going to be returned is the very first unique value of female and the very first unique value of male. But if we say gender and we say group buy gender, it's only going to return two values. But in these two values we actually have all the males rolled up into this one row and all the females rolled up into this one row. Now let me further show you what that means. If I say count of gender, now you can see that this whole time there were six males in this one row and there were three females in this one row. So with the distinct it really is only showing us what value is in there that's unique. But with the group buy it's showing us what the unique value is but it's also rolling them all up into one column so that we can use it for other things. Now real quick I want to be able to see both of these at the same time. So let's just put this up here and let's run this so we can actually see both. Now let's add age to this statement down here or this query and let's only run this one. I want to show you what happens and why it happens. We're now looking at gender, age, and then the count of gender. So if we look down here we only have one male who is 29, we have one male who is female that's age 30, and so on and so forth. So none of these people are both the same gender and the same age. If for example we had two or three people who were male and who were 30 years old then we would have a two or a three over here. So this count is actually being counted at each row that's being returned. So for our data that we have today this isn't a fantastic example because it really split it out. There were any that were the same but as you can see you can put multiple columns as long as you put multiple down here. Now why did we not have to put this count gender down here in this group by? That's because this count gender is actually a derived field or a derived column. It's derived based off the gender column. So it's technically not a real column that's in the table. It's one that we're creating that's fictional per se. So the age and the gender are actual fields or actual columns that are in our tables they have to be down here. And like I said before it's the comparison to that distinct in the select statement because we're looking at the distinct of gender and age. So we're saying distinct across multiple columns both gender and age. And as we had before we were only looking at gender it's going to roll all of those up into just male and female. But if we want to add more we can easily add more. In this group by statement we can still do things like where age is greater than 31. We can still do those things. So let's execute this and our numbers are going to change. So we're doing it based off gender and we're looking at the count of people whose age is greater than 31 which is smaller than before. Now let's look at order by. I'll do it down here really quick for demonstration but I am eventually going to come up here and use it because I think it'll be a little bit better. To completely round out this query down here let me give this a name. Let's do count of gender. And then let's come down here and let's order by. Let's order by count gender. And when we run that it's going to do 1, 3. And that's because as a default SQL has an ascending feature which is going to be smallest to largest going down. If we want to change that we can change it to descending. That's going to be largest to smallest. So now I have 3, 1. And if we want to do it based off gender and we do it descending. Now we have Z to A. And so that's going to be male, female. And if we get rid of that it's going to do the default ascending. And let's see what that brings. Female, male. Now for what we're trying to do let's look at this large table. So I think it's going to be a little bit more descriptive or a little bit better visually. Let's do order by and let's do age. Let's run this and it's going to order smallest to largest. If we do descending it's going to do largest to smallest. Now you don't only have to do just one thing. You can do multiple columns. So if I wanted to do age and then gender I can do that as well. So let's do gender and let's run that. So now we have the age but under the age we also have it ordered by female and that's in ascending order. So A, B, C, D, F, so females first. So it's going to be female first and then it's going to be male. And again female and male. Now we don't have to just let it be ascending for each one. If I wanted to do it reverse in this column I can do descending. Now let's run that. And when we have 30 now male is first and female second. And if I wanted to do that over here I can do descending. And now we have them both descending. So it's going to go top to bottom and when we have 32 it's going to be male, 32 female. So you can specify lots of different things in here and we don't actually have to use column names. We could just use numbers. So if I wanted to do 1, 2, 3, 4, 5 I could. But let's try to replicate the exact same thing before. This would be column 1, 2, 3, 4. So let's do where 4 descending and then let's do 5 descending. And if we execute that it's going to give us the exact same result as if we had actually put in the column name. And I do use this a lot. Oftentimes I don't use the column name. I just, if it's a small table I'll just use the number. So in my actual queries I do this a lot where I just use the number instead of the column name. So that is the group by and the order by statement. And if you have watched through my previous videos you should be completely done with the basics of SQL. So congratulations. The next thing to do is really just practice the basics. Because the basics are what you're going to be using day in, day out. And so what I would recommend is create a few more tables, query those tables, try to think of use cases and what you would actually want to know from that information. After that I would move on to my intermediate videos if those are already out and then I would move on to my advanced videos. Those are going to go over some more challenging topics but things that would be very useful for anybody to know. In my next video I'm going to be going over intermediate SQL topics. Things like joins and subqueries and a ton more. So if I already have posted those be sure to go check those out on my page. And if I haven't I hope to have those up soon. Thank you guys so much for watching. I really appreciate it. If you learned anything in this basics of SQL series be sure to subscribe below and I'll see you in the next video.


We all want to win and, yeah, you're very individual and we're all colleagues but we all want to win with each other. Guys that we don't spend a lot of time with so we only see my tracks and obviously I guess they have the same dream as us to be world champion and obviously race B-way and we really love it. All of these names we can say legends in this sport so I'm very happy I can fight on the track with these boys and try to beat them. What I have in common with these guys, I would say nothing, I don't know, they're very different to me I would say. The national stadium in Poland, normally a packed stadium, great atmosphere, I really enjoy racing here and love every minute of it. Here we go, he's 18 and they're charging towards the first corner. Oh, here comes Leon Mattson, he's going to be trying, going into turn 3. Here we go then. That's Chef Doyle just stopping him there. Literally disappointing moments for Leon Mattson and Antigua because there might not be enough for him. Normally I contain myself but when you keep struggling it bothers you and you irritate it and frustrate it. Seviphano in the Aradovi, here we go. What a run to the corner from Doyle. Here we go, Freddy Lindgren getting in the action. Oh Lindgren out of shape. Oh my goodness that was chaos.  He wins the first Seviphano and Lindgren through as well. Jack Holder was leading the final. He really had it in the bag and the race was stopped. There was an incident with Smarchlik and Doyle. This is tough for Jack Holder, he was comfortable out front. Drama in the extreme. What a decision, I wouldn't want to be a referee right now. That's a big goal. And a controversial decision here in the Aradovi. That's a big goal. Wow, Jason Doyle's going to be absolutely fuming about that. Our motions are high at that point. You've got Polish fans screaming. They obviously want Bartek to be in the final still. I've done the right thing and walked past and the problem is you've got a camera following you all the way to the pits. I'd love to grab the camera and pull it to the ground but I've done the right decision and went back to my van and let off steam there away from the public. Second time of asking in the big final. Way we go. Freddy's made a great start. Holder's just missed it. Lindgren hits the front. Smalsik round the outside. Lindgren's away. Smalsik coming on strong round the outside. Smalsik. He's coming on strong round the outside. One last blast. What a conclusion to the night. I can't remember. I was having a pretty good lead in the final early on but then I kind of chose the wrong line on the last lap and they came very close behind me. Almost three riders abreast over the finish line so I didn't win by much but I won. Good evening everybody and welcome to Prague. We are in the marketer's stadium tonight. Martin Bachelet winner here last time around last season. The beginning of the meeting was so-so. A little bit up and down and we were struggling with the setup and we were not really sure with the direction we should go but after a couple of hits with my team we just changed completely setup and we take the different bike and this was the game changer that day. Very tight indeed. Martin Bachelet also with a chance here is on six points. A race win will see him through. On a start when he really needed it. Martin Bachelet didn't make any mistakes at all. Sweet victory for Martin Bachelet last year's winner into the semi-finals on nine points. To be honest I don't really know how many points I need because in every single hit I am completely in the present moment like here and now and everything else like future and past I just forget. Here we go. One last blast down the back straight. What a stunning race once again. Grave final in the marketer. Here we go. Away they go. Martin Bachelet has made a superb start. Leo Madsen tucks into second place. Wow what a moment this could be. Leo Madsen just coming on strong but the nine is going to be looked at. Martin Bachelet. What a victory that is. That really is stunning stuff for Martin Bachelet. Everything turns for me big time and I won a Grand Prix Prague second time in a row so it was nice. It's a big relief obviously but there's still a long work ahead of us. We cannot just relax. We still have to work very hard like rest of the boys are doing so to keep it up there and that's what we aim to do. I could feel better. I just came back from a heavy crash in the Danish Championship Wednesday. Hit my head pretty bad and my neck got a whiplash so it's very sore and I need some strength in my neck. Got a lot of treatment coming into today and hopefully it helps me a little bit. Semi-final number two. Freddie Lingard. There's just no holding him back. He's in another final. Super ride from Fast Freddy. Riders making their way round for the restart of the Grand Final here. Greenlight is on. Doyle! Doyle comes charging across out of gate number three. What a stunning club. Oh, a clash again. Freddie Lingard just collecting Jason Doyle on the way through. Red lights are on once again. Frustration once again for the rider who sits in third in the world. I've had some funny calls this year. Obviously a lot of the results haven't been the way I wanted them but this is the speed way you move on and like I've just done that, I forgot about the past and you're only thinking about the future. Grand Final in Gorjof. Roaring to the first corner. Smart second Lingard. Lingard's got there. Leon Mattson. Keep your eyes on Mattson. He's going to roll around the outside. Mattson fires himself to the front. Leon Mattson has ridden a storm around in front. One last charge up the inside. He's down there. Just coming back from that crash, I didn't want to shut the door on him and maybe so I was maybe avoiding another crash by leaving the space open for him and I think that was the best choice at that moment. I didn't even knew if I would be able to race so end up on second place and pretty good result I would see. Amazing. When he passed Leon there on that final turn it really went all in and made it happen so he's a fantastic speedo rider. Here we go then. Smashing move from Lingard. This is super stuff from the home hero. No doubt about that. Fast Freddy Lingard riding out of his skin. Rock solid tonight. Fast Freddy. Green light is on. Here we go. We're underway. Smashing start from Vashalik out of two. He gets to the first corner in front. Great start for Vashalik. Get some southbound front. Look at Mattson. Vashalik, how about that?  Round the outside then one final blast from Red Lever Dexford. Martin Vashalik is so ready. Martin Vashalik. Three rides, three wins. What a night of speedway so far for him. Here tonight in Malilla. Healthy crowd, perfect weather. Obviously I wanted to win very much in my home country of course but this time I made a huge mistake. Night's on. Tapes are off and Vashalik's made a sweet start on the inside. Lingard now having to go wide. Oh, Freddy Lingard read that. Oh, that was a hard crash. Lingard's gone down hard on the collar bone there. It was a very strange situation to be fair because he came in so deep. I think he lifted a little bit coming into the corner and went very wide and then kind of turned back to the inside and I was coming to the inside and up to the dirt. So we kind of met like the apex of the corner in a very bad spot. You don't expect that, yeah?  He was leading the race and he got wiped out so of course he was going to be angry so I want to apologize and I didn't intend to do that move. I mean, I didn't intend it to be like that. Here we go then. Final time of the night. Tapes are off and Vashalik's got to wait pretty well on the inside. Oh, finish in the front! More to move from down, beauty from nowhere! I nearly win but I did a mistake in the restart of the final. It just got a little bit too white and don't really just take a chance and win. Semi-final number two. Tennis moment, here we go. Tapes are up, Smalsik has a fade in but Vashalik has... Semi-final! Charging round the outside! And he's in the final and so is Vashalik. I was like, completely without any pressure or something. I just want to go to the final and enjoy it as I remember also. I had no choice to pick up the position from the gate because I was the fourth guy. I take what was left and sometimes this is better. I actually thought before the final I had a really, really good chance to win it but Martin Vashalik made a such a good start from gate three which had not been working so far on the evening. Here we go then, last time, Tapes are up. Vashalik's made a good start. What a start from gate number three! What a first turn, Holder and Smalsik! Oh my goodness!  Particularly when you consider he's come to the worst gate, Martin Vashalik wins in Lepritsa penalty in Cardiff in 23! What a dive for him! It was a very long final hit for me because I was so stiff and thinking about a thousand things what can happen and I was asking, please, you know, everything you know, keep like it is and no any bike broken or something. Because really Cardiff is special and everybody wants to win so if you are first, you win. Congratulations to that man! He is going to get a medal this year, isn't he? He is going along great guns! I haven't given up. I'm really in a position right now where I've got nothing to lose at all. I have a pretty big gap to number three so for me I'm just going to try and win and if I can win I can put some pressure on so for me I've got nothing to lose at the moment.