Hello, can someone hear me? Yeah, we can hear you Sven. Hi. So yeah, you get about five minutes. Yeah, cool.  When I'm putting these slides on full screen, I'm not able to see the chat, right? At least I didn't find a solution until now. But just to mention it, that after 50 minutes I come back, otherwise you have to talk. So don't write to me and you have to talk to me if something's wrong, okay? Yeah, you have 15 minutes. I will obviously interrupt if you drop off, but the hard part is it has been where people have, some speakers have been lost with audio and then continue to talk. So, you know, if you want to say, hey, can you hear me? I'm sure if you have any doubt, I'm sure it would be helpful. But I mean, your talk I believe is only 15 minutes.  You know, you'll have moments to check and see it first up there. Sure, sure. That's because nobody is saying anything. We're just waiting for the whole hour. But we might start. One minute is, the beginning is... It's up to you. Yeah, let's start. Let's start. Come on. And I have one minute for questions. Okay. Can you see the slide? Yeah. Okay. So it's about the Audiof Toolkit. And first to myself, as I said yesterday, it was my 21-year anniversary because on the 15th of October I started Star of December. And I'm, well, the maintainer for TDF Audiof Toolkit, meaning there's no real maintainer, but I was responsible at some for the Audiof Toolkit or the Audiof Don and I'm still clunky to it. And since a few months I'm an editor of GC, similar as Michael Stahl, and also co-chair since five months. And you might know this year from the Audiof Toolkit, we used this recently for validating the ODTs from the specification and found some errors and Michael and I fixed them. They should be online so far, I believe. And the full set of scenarios that have been covered with the Audiof Toolkit is a site of the Audiof Validator. There's a archive you can create and you can install it easily local, what I'm doing on the Tomcat, for instance. You can use the Audiof Validator as well. And you can use it like a LibreOffice in regression tests by Java, command line. And I fixed it. You can use the Y as well. So then there's some called XLT Runner. There's just, you can run XLT directly on the Audiof files without unzipping them. And the core part is the Audiof Tom, which was created in the beginning of 2000 by Sun and IBM putting the Sun started and IBM joined just to their customers working just on the server, just one of few things you don't want to use a full LibreOffice. And that was just, so it erased. It's just like, it's no rendering layout. It's just altering, editing by API. And the common use cases are data expressions like point translation when you exchange the text or data insertion. That's most often the case where you have a template and certain patterns should be exchanged for data from databases. And since 1.0, it's, which is on the master's piece, I haven't done the releases yet, is the coloration on ODT. It's, yes, it was the back end of the web office from OpenExchange, for instance, the Bayfork region. And to tell you more about the architecture, it's, the Audiof Tom is being created by a source code generator. And the Audiovalidator uses Audiof Tom, so does the XLT runner to do the trick to to access the XML to be translated. And there was a fork, a simple API from IBM that's been deprecated 1.0. It's out of the 1.0. It's deprecated now. And unfortunately, they, IBM never rejoined. I mean, yeah, they're not active and it's so much duplicated code, it's not worth it. And we have to take parts which are useful back to the Audiof Tom high layer. And so the source code generator, I mentioned yesterday, the specification is like a blueprint. And it has been to the side of the specification. The ODT document is also a grammar. And this grammar has 18,000 lines of text. And there's a lot of XML and attributes that Audiof Tom has been created of. Audiof Tom basically is a DOM tree, but it's a type DOM tree. So there's a text P element. And you have special API that belongs to a paragraph. So it should ease the usage of Audiof without knowing much about the schema. And to read this, the multi-schema validator is being used, which was once done by Sun. And yeah, I'm planning to take this over into the TDF as well, because it's been not updated. I'm still working on this. And the last thing, there's also some work in the Audiof one. It's in there to have a graph built up from the schema. And it's not completed through velocity. It's still used in the multi-schema validator and not thinkable. But that's what I'm doing. And the velocity is some open source project as a template engine where we create Java source. We generate Java source files and filling them with the data from the graph. So that's the basic trick here. What the architecture is, the package API is based on the Audiof one, part two. Currently it's still one or two, but I have to update it soon. And the XML layer is based on it's always a different ODT document, so part three, the schema. And the last thing, the schema layer is what I mentioned yesterday is missing yet. And we should do this in the audio specification to have a high level view on things, because the users know what a table is and what a paragraph is. And even more interesting, they know how to change it. It's very common that people want to insert a row or insert a column, but it's not specified. There's no interrobability on these changes. And this semantic high level view and the changes should be added. And this is like work in progress. So what's this? Oh, yeah. This is blue here, strange. But the future goal is basically that this semantic high level API, the user don't have to care about XML. He just has to care about how we implement it, but he just wants to go high level. Like, oh, I want to open a text document and take a second paragraph and make the fourth to seventh character bold. Something like this, yes. And currently it's a lot of openly content XML and many, many detailed things. It should be more high level. So the semantic is not new. When I started 99, my first job was to, for the first one bit of web office, to write a viewer from ODF. Currently it was not ODF at the time. There was Open Office XML. Yes, because Microsoft changed it, I was confused. Office Open XML, they tricked it by changing the name. And I transformed certain semantics like the table and the list and the image into HTML. And this is the same XLT that's still being used by the LibreOffice export filter and for the transformation of the ODN specifications, HTML and other things. That was the first step. And the second step a few years later was when they realized a viewer is not enough, but we have to do it both ways. So it's time, it doesn't work with the XLT, which is pretty. So we had to use Java and we transformed back and forth HTML. But still, the web editor uses full document that would be in exchange. And this is not very clever for having a web office that needs collaboration. So just to tell you about collaboration in a nutshell, the most important question is like software development or if you exchange anything of work and you collaborate something, you call the other guy up and ask, hey, what have you changed? And because you need to merge it in the end, you want to have one instance. So how we do it? And the interesting thing is there's a view on a document like it's a shock frozen document of the state, but we implemented something that transforms something being a document ODT into a list of changes like if the user would create the document from top down step by step. And this was sponsored by Prototype Fund that's being added to the route to the ODF toolkit. And it's like a black box, like a compiler where you put in one side the ODT document and get changes out. And at the same time, you can put new changes in that can be same document and with new changes or you can apply changes to the existing document and get a change document out. So this is like both ways here, yes? And you can do the same thing. You can test it pretty easily if you download the ODF.java. You can see here the link, but I linked the ODF.java. And if you have something like JDK9 or later, you can use this jar with all inclusives and put as a parameter any ODT and get it as an output on the command line, all changes. And this is something where we can find some, first of all, some naming here. The ODF change is like a user change that's coming from a user change that a user does on the GUI, like he's changing inserting a table or inserting a row. That are the common changes that any rich text editor is offering or any ODF application. You can see, as you've seen earlier, a serialized JSON API icon. And to me, this ODF semantic is equivalent to ODF feature. So we have ODF feature within the grammar and ODF spec because the ODF specification explains all the new features, all the features that ODF applications can implement and the ODF feature is then in an ODF document and it's still supported by ODF applications. Across all three layers are different silos. And now I have a proposal for the LibreOffice team where I can see synergies. That's in feature testing because I'm testing ODF DOM by itself because I put a document in and get changes out. And these changes I apply on an empty document. And I get then an ODF out document which should be the same as the ODF in document. And usually I put this ODF out again into changes and compare them to changes because it's easier. So this here is similar to in document to changes and apply them as plus meaning apply and yellow means using ODF DOM and get an ODF out document. So we might do the same thing with LibreOffice and changes on LibreOffice and an API to get an ODF document out. And we can do this as well similar to Puppeteer for Chromium to have a if there's any GUI tool to various I believe to get an ODT out. The difference is that the changes like a common language, a common interface to glue this together. And the funny thing is you see you can apply changes simply by saving them as a document and apply them. It's very easy to apply a test to GUI because the API calls are the document. So I rushed through it and what I've forgotten, I realized when I started is the slides about the releases. I worked, so wait, I come back to the chat now. Yes. So I've got four minutes, that's cool. Regarding the releases, I spent about seven weeks to finish only a one or three that's why they came in editor and the chair and because there was wrong things wrong with the HTML and the default extraction and different various things. And these seven weeks I'm somehow missing out and I planned earlier to do a release for 0.9 which is basically done but I got problems with the mark down to HTML generation. But then there should be in 1.0 very quickly afterwards which embraces all the stuff that we have funded and then very quickly afterwards it's 2.0 which embraces only one or three because unfortunately because we're generating at the moment there should be one model and this is either based on one or two or on a three and unfortunately this specification does not define something like changes between these versions which might come up in the future. So are there any questions? Yes. Thanks. That's a good question. Nice to see you. It would be better to do for science or go for science projects. Thanks. Yes. So I will get in contact on the death list as soon as I've done the releases and did this work I think this is my first priority now to do the releases aside of finishing the ODF specification one or three but this is just voting next Monday there will be vote it's being formally one or three specifications or something I'm not firming this wording yet but then I'm going to implement a release one or zero one at 0.9, one at zero and two at zero which is basically the same thing and one or three generated with a few other enhancements. Okay. And yes and then I'm looking forward to get in contact with QA team if there's any way to with the synergies between ODF done from the door to the FN leave office. Yes. I just realized that I, Michael joined the late problems here. Okay. Yes. I put the slides online and then we'll of course put some oh this is something I forgot because I've got problems with Markdown and GitHub Markdown which spent a lot of time and I fell in love with Swings which is not a science project it's yet another Markdown but it's made for Python right and I saw the MongoDB which is a wonderful front and I'm going to test this and maybe we can have synergies there as well and yes but I write this on the list I'm not done yet I guess yes if there's any question do you hear me? We can hear you, yeah. Okay. Come on. Any questions? What? What a science. I didn't understand. Okay. Okay. So no further questions I guess I give room. The next is about to start now. It's me, yeah. Bye bye. Bye Swanta and if you can stop sharing your screen. I try, I try. Where is it? Give me. There should be a button in the bottom left of the jitzy window. There we go and now hopefully all being well I can share.


And you hear a lot of people talking about by the dip. That's a really common thing, by the dip. The problem is too many people are trying to figure out when the dip is. And therefore, if you study economics, capital flows in and kind of equalize. A good way to think about it is if you're at a grocery store, and there's two lines, and you're waiting in line, and the lines are very long, they open up a third line. The problem is everybody moves into that line pretty quick, and so it evens out and it doesn't help you that much. You still will be in a long line. So the problem in crypto is so many people know about things that by the time you move capital into them, the market's relatively efficient.


Eh, eh. Like, this thing is not falling off my head. Hi guys and welcome back to my channel, thanks so much for tuning in for yet another video. First and foremost, just excuse the hair right now because there's a reason why it's looking a fool right now, so just never mind that. In this video I'm going to be doing a product review on a new scout massager and I've been in the market for a scout massager for a while now, but just been too lazy to get a new one. So let me show you the ones that I got previously and then I'm going to show you the new one that I just purchased. So this is the very first scout massager that I got. It's, um, I'm not really sure what brand this was, but I got it off of Amazon. It has kind of like a rabbit look to it and it's got a little, and the power button is right here to turn it on. I don't know if it'll come on, battery might be dead, oh there it goes. So this one is a vibrating scout massager and when I first got it, I really liked it and I felt like I did the job, but over time it ended up in my electronic graveyard. So there went that scout massager. And this was the second massager that I got. This was a dollar at Walmart. I've seen a lot of people talk about this particular scout massager, so I just assumed it was a dollar, so let me just try it. So I got it and when I put it on my hair, to me it's more like a scratcher is what it feels like. I guess it's massaging, but for me it just scratches my scalp and that's what I kind of use it for sometimes. So wasn't really, I guess, doing what I really wanted to do, plus it kept getting tangled up in my hair. I haven't used this scout massager in a very long time. I think I just got it because it's just pretty colors for the most part.  I'm not really sure what massage is supposed to be given, but it makes my scalp feel good in terms of if I have an itchy scalp and I need to scratch, like, right now my scalp is itching. So I said, let me just find me a new scalp massager that does most of the work for me and to take the place of the other ones that apparently I'm not using. So I just went on the hunt for a new scalp massager and this is what I got. So this is the smart scalp massager. I got this product off of Amazon, I think it was like $47.99 for this item. I think I got like a little bit of a discount, not much. But this is the smart scalp massager and let me just show you what's inside of this box. So you got the scalp massager, looks like there's a USB cord, this is the base of the scalp massager and there is a little pamphlet. It talks about the scalp massager, how to use it and the benefits and all of that stuff, which I'll go over with you in just a moment. So before I get into talking about this scalp massager, let me just share with you very briefly while scalp massaging is very important and why it's very vital in your healthy hair journey and not only massaging your scalp but just massages in general just for your overall health. Scalp massages help relieve tension headaches. It can also help to include a massage for the forehead and temples while massaging to relieve a tension headache. Scalp massage also helps improve circulation of the blood to the head and face. Increased circulation of the roots of the hair can promote healthy hair growth. Those who suffer from insomnia can find relief from having a scalp massage. Many people sleep better when they have a regular massage with improvement in both falling asleep and staying asleep. In addition to increased circulation to the scalp, massaging dilates small arteries within the scalp that increase the blood flow to the follicles. In turn, this can improve the texture of your hair, make it thicker and stronger over time. Remember when using scalp massages to promote hair growth is a slow process but extremely effective. So now it's time to talk about the needs of this product and I'm just going to share with you all the features and functions and all the buttons and all that stuff right now. So the massager I have is from the brand Casitas. This is a portable electric scalp head massager. It comes with one charging base station and a USB port on the back. Right here we have the power button which is also the control button.  This icon is the speed indicator. It makes a quick flash when it's switched to a high speed mode. In the middle we have the direction indicator. It makes a quick flash when switched to a different direction. And here we have the charging indicator. It has a breathing green light while it's charging and a normal light when charging is completed. It has four heads with 84 nodes for stimulating hair growth. And it has easy to pull out and wash or replace detachable heads. The four massagers work together in clockwise and counterclockwise rotation to imitate human fingers. It's cordless and rechargeable to enjoy the perfect massage anywhere without any annoying wires. And with a full charge you can enjoy a two hour massage in your office, home, or even your car. This body massager is also made from IPX-7 waterproof material which makes it possible to enjoy head massage while taking a shower. So now that I've shown you all the features and function of the scalp massager, I'm going to shampoo my hair using the 50-50 balance hydrating clarifying shampoo. This is from Giovanni. I have a little product in my hair so I'm going to use this shampoo. Then I'm going to come back on camera and use the scalp massager and share with you my initial thoughts and reaction and also my final thoughts of the scalp massager. So without further ado, let's get started. All right, so the shampoo is, as you can see in my hair, so we're going to go ahead and start using this scalp massager and I'm excited to see how this product feels on my scalp. So let's go ahead and get started. So we're going to start on low and then I'm going to move it up to high, high speed. Feels good though. Let me make sure it's not tangling my hair. Okay, now it's not tangling. Let me give you a close-up, little hands. Okay, let me speed this up. Let me get in the middle. Oh, that feels so good. I feel like I'm getting a really good deep tissue massage on my scalp. So I'm really, really liking the feel of this. Yeah, I can definitely see using this and incorporating this in my wash day routines.  But it's like really, really working my scalp. Like my scalp is moving. It's not just scratching against the surface. Like it's moving my scalp. Definitely getting that circulation going. The way these little feet or hands or whatever you call them are designed, it really does mimic the feel of hands massaging your scalp. So I'm going to get a good five more minutes out of this scalp massage and then I'm going to jump back on camera after washing the shampoo out of my hair. Jump back on camera and then I'm just going to share with you just my final thoughts of this scalp massager. So here are my thoughts about this scalp massager. So I really, thoroughly enjoyed this massager for a couple of reasons.  I also really love the deep tissue massage that this massager gives, unlike the previous one, the first one I showed you, that was more of a vibrating massager. Yeah, I had no issues with this whatsoever. It didn't tangle my hair, which was like a bonus. So no tangling of my hair. It gave me a really deep, thorough massage on my scalp. You can use this on your body.  Oh, it feels so good. But you can use it all over. So not just for the scalp. So I like that I can get multiple uses and multiple massages, you know, for my whole body. So it's just a really great scalp massager. But yeah, that pretty much concludes this video. I just want to show you guys this gadget, this scalp massager. And if I liked it and just how well it performs on my body, on my scalp, and it's wonderful. It's a really, really great scalp massager. I do have this in my Amazon store. So if you want to check it out, if you want to purchase it, definitely do so. I'll leave the link below in the description box. I hope you enjoyed this video. If you did, don't forget to give it a big thumbs up because it does help my channel. Don't forget to subscribe. Don't forget to comment. And again, check out my Amazon store. It's just Janine. I will see you on the next video. Bye guys.


worked well, kind of from an internal standpoint, from a reporting standpoint, external reporting, we would typically would need to do an adjusting entry basically to make it correct as of the end of the period. So that's going to be it. Now I'm going to make this a little bit smaller so I can see the record button at the bottom. So there's the record button. I'm going to save it and I'm going to close it is everything at all ways that change the date. You're so lucky you fixed that because you can't really so this is going to be from 060127 cash. Okay, everything else is good. Let's save it and close it. The payment date should be on or before the sales order date. Well, what was the sales order date on for crying out loud? Let me close this out. Let me let me let me close this. Something has gone horribly horribly wrong. I'm going to clear this and then close it. So the sales order date says, okay, it's on 6227. Okay, so let me let me say I'm going to say receive payment. You won't be able to. Okay, I know that and then it's going to be 50 and let's say this happened on 060327. Is that okay with you? QuickBooks? Is that okay with you? All right, so $50. Let's do it. All right, let's put this back up to 150. And then we have it so we can close this back out. Okay, so let's so here we have the internal documents look good. There's our payment. We expect later that we can go and order the surf board and then enter the invoice that we can apply to the payment. If we go to the balance sheet, what happened over here? We went into undeposited funds instead of into our checking account, but it's still kind of like cash. I'm not going to get into the undeposited funds thing right now. But the other side did not go to a decrease of the of the accounts receivable, which it did before because the sub ledger dealt with the customer instead going down here to a liability account that we set up where to go customer deposit. There it is. So that's great that because now it basically posts it down here properly reporting it from an accounting standpoint. However, it is still a little bit more confusing because now we have to have two sub ledgers to deal with the customers. In other words, if I go to my reports up top, and I go to my company and financials, no, my customers and receivables, and I look at my what is it customer balance detail report customer balance and detail, then I don't have anything in here for that customer yet because I haven't entered an invoice I entered a payment only. So that's kind of fine because you would think well it shouldn't be there because we don't it's not an AR yet. It's not an accounts receivable related thing, but look at the last customer we have this for where we have this payment happen first, and then we apply the invoices to it. The negative AR is wrong. But from just an understanding what's going on side of things, a bookkeeping side of things, this is pretty clear, right? It's kind of so that's kind of nice. Whereas, when you look at this, when you have this other liability account, then there's going to be another sub ledger related to the liability accounts not it's not going to be in one place, right? So so now I've got the customer deposit is also going to have a sub ledger. Although this is a liability, it's tied to the customers, whereas usually liability accounts have sub ledgers that are tied to vendors, right? So now we're going to go into the customers and say this is going to be the where is it? There's open prepayments somewhere around here. There it is. Open prepayments. So there's our $50 there. So that looks so that looks good. But it's basically that added step. So if we compare this to the last process, if I go back to my customer center and think of it from an internal perspective, what's the difference between these two processes? Well internally in here, it looks much the same when I'm trying to finalize my transaction. I can see what's happening, right? I made an estimate. I made a sales order. I've got the payment. The payment looks like a prepayment. When I make the invoice, I should be able to apply the payment to it in a similar way as when we have that negative receivable, which we often like call a credit, right? That we're going to apply to the invoice. You can see that over here, where the other method internally looked very nice as well. Same kind of concept estimate. We've got the sales order. And then we have this $50 payment. It's just that this payment was marked as a negative receivable instead of a instead of a positive liability. But from this side of things, the bookkeeping is pretty similar because then when I make the invoice, I could apply the payment out to it. So from this internal screen perspective, just facilitating the transactions, both of these work pretty well. So I like that. So if you can do that, so I kind of like the new thing that works quite well. However, it does also still lead areas for confusion for people to do funny things. So for example, if I go to the balance sheet over here, like you'll if you have any experience with this undeposited funds, you'll note that that's a clearing account. It has its use. It has its functions. It's useful. But a lot of people will mess things up because of it. It has another step which will mess people up sometimes. So anytime you have an added step, it could mess people up, right? The same thing is kind of true with this accounts receivable being broken out now between accounts receivable and then this this other account down here for for the deposits, the liability account. Now I can't find it the liability account for the deposits right there. This the fact that we have this other account that's kind of related to receivables as another level of kind of complexity because now somebody could post something to that account without actually going through the normal kind of process and that would may mess it up, right? And the sub ledger would could possibly get messed up. And when people are trying to figure out what is happening from a reports standpoint related to a customer, usually they're going to be looking at things that are related to the accounts receivable. So people have to understand that this is a liability account that is still tied to a customer. Also, when we move it, when we actually make the payment and enter the invoice, QuickBooks is going to create a clearing account to facilitate that transaction, which will which will create which will college cause a journal entry to be put in place. So again, we'll have another clearing account, which is another area where people could could cause havoc, right? They could post something to that clearing account, not as big a problem as this undeposited funds because the clearing account that they're going to put in there is just used for this one purpose. But again, it creates another transaction just which adds one more kind of complexity into the system adds a journal entry and it adds this other clearing account that they could add more to the complexity as well. So I'm just trying to point out the pros and cons between the two system. It works quite well. We don't have to do an adjusting entry at the end of the month this way because you should have the liabilities properly recorded. It looks very nice internally in order to facilitate the transactions from a bookkeeping standpoint. But you know, the downside is of course that we have these two accounts, we've got some clearing accounts, we haven't added journal entry, which could add some complexity and leave, you know, room for people to mess something up possibly that's so but we'll continue with this transaction finish it up next time.