Good afternoon everyone. My name is Wenlei. I'm from the MSF OCG and today I'm going to present about the fisherman study that we have done in the Nindari project. It's a pleasure for me to be able to present on behalf of the authors as mentioned on the slide. So as I did the fisherman study I would like to briefly mention about the fishermen. So as all of you are aware, fishermen is regarded as a high-risk population because of their highly mobile and professional and they are close session that work in their community and assess to cash and income and also as they walking away from their family the frequency of using commercial assess is high and that the HIV the HIV status of fishermen hasn't monitored yet closely monitor yet by the Ministry of Health and Sport and also by the INGO. In our the web project we found that 25% of our HIV co-operation are fishermen because because the Nindari is one of the most productive fishing region in Myanmar in 2010 650,000 tons of fish produced from the Nindari region. So this is just showing our coastal region our coastal line of Myanmar which is about more than 3,000 kilometer. So MSF in Myanmar MSF OCG has studied in 2000, yeah year 2000 but in 2000 studying from 2003 we have implemented the HIV project in the Nindari region.  So at the time of 2015 nearly 88% of our ART in the Nindari region are provided by the MSF clinic but right now we are sharing half by half with the Ministry of Health because we are in the transition period. Operational research was integrated in 2013 in our OCG project so we did a cross-section a retrospective analysis of routinely collated FUSHA data and this study met the exemption from the MSF ethical review because it is a retrospective analysis. So we have identified in our Go-Hong May HIV positive fisherman 1,172 a debt compared to a debt made Go-Hong 1,626 patients as a comparison group. And descriptive analysis were done to compare the clinical character-arrested and the demographic character-arrested between fishermen and the May Adel Go-Hong and also the generalized linear model was assessed to identify the odds of the rigs behavior. In addition the fisherman was disaggregated into three subgroups the local subsistence fishermen, Myanmar fishermen and the international fishermen. So local subsistence fishermen are fishermen who own their own boat and they spend some time in the sea but not longer than other two groups. Myanmar fishermen are the boat owned by the Myanmar citizen but they spend longer time than the local fishermen. International fishermen are owned by the boat are owned by the foreigner and they spend much more time in the sea compared to other two subgroups and they are walking in in the international water. So this is the patient character-arrested comparison of between fishermen and the non-fishermen. So from this slide you can see the baseline CD4-MN2 groups main times on the ART is not too much different. Lost refollower rate is not much different statistically not different but fishermen have a higher rigs of using the high rigs behavior like using a commercial sex and also the injured in drug user compared to the non-fishermen group. And we also compare the second line ARV proportion among the non-fishermen and the other sub-3 groups of the fishermen. So as you can see here the proportion of second line ARV is not different between non-fishermen and the fishermen. HEPSEA... sorry. So not all patients of our fishermen and non-fishermen haven't test with the hepatitis C but a non-screen patient we compare the proportion between the non-fishermen and the other subgroups of the fishermen. We can see that is a high proportion of HEPSEA co-infection in the fishermen group compared to the non-fishermen group especially in the international fishermen.  So international fishermen have high use of commercial sex and injured in drug practice compared to the non-fishermen group. So in summary we found that there is a high use, high odd of commercial sex and injured in drug among the fishermen population and we found that fishermen are good patients. They are successful patient in terms of their mobile nature. Their mean duration on the ART treatment is also good and lots to follow it is also low in the fishermen group. So we found that the fishermen has successful treatment compared to the non-fishermen and there is a higher risk of using commercial sex and also drug use. So counseling service is highly needed for the disfishermen group and also we found that the infusion is also high in the fishermen. So we'll be interested to advocate to the Ministry of Health or the other organization for the hemorrhagic program and as Ministry of Health is now start rolling the hepatitis C treatment program nationwide so it will be interested for them to see the result that fishermen will be a high risk group to systematically screen for the hepatitis C. So we have some limitation in the analysis because this data use the retaining collected data and the fishermen's data was at the time of the end rule in our go home so that might change over time and the type of the desegregation between the fishermen was maybe slightly different depending on the interviewer at the time of admission and risk information is self-reported so maybe and are estimated. I would like to thank all the I would like to relay the thanks message to the MSF staff on behalf of the order. Thank you. Thank you very much for your nice presentation. Now I'd like to open for questions and clarifications please. So I would like to ask a question maybe when people are thinking more. Did you also assess their knowledge about the risks factors for acquiring Hep C and any other diseases? Do they have any what is the knowledge of these populations? Is there anybody has done such type of an assessments on these people because? Not yet. This is just the rooting color data analysis but we are thinking to do in the future to find out. It would be interesting to know that even if knowingly if they still are not changing their behavior so then there needs to be other interventions that yes yes please. Hi I'm just curious to know like did you only study fishermen or this includes includes like fisher women also and was there a difference in like them having HIV and co-infection? Sorry can you repeat a question? So I'm just asking that the group that you studied fishermen did that also include women or these are just men you're talking about? It's only men or even females are in. No men because in our group because we are studying the fishermen in our HIV cohort so not all the fishermen population in the way so in our HIV cohort most of the fishermen are male. Any questions? I would like to also you know understand you said that the government is planning to start treatments for hepatitis C. I guess it's with the new directly you know this DA is right. So what is the availability and cost of these treatments in Myanmar? Do you have any idea? So Ministry of Health was that the treatment already started studying from May the target is 2000 so and so right now they are fine vending for the father increase men in the target right now for the 2000 treatment they are using the donation from the BMS. Okay they're getting a donation from the BMS. Yes please. The last question is then you move on. I'm Dr. Santosh from the Bersara Board. Yeah it's like can you actually provide that how much is how much the prevalence is from sexual sexual intercourse and how much is from intravenous drug use and if it's possible if it's like more of the patients have acquired this evidence see and also this HIV from sexual route is possible that we need to intervene on the prevention like quantum use of condoms and so on. Have we actually thought about that? Myanmar so most of the you were talking about the hepatitis C prevalence right? Yes. So in Myanmar the hep C prevalence is the highest among the injection drug user in our study we found that the international fishermen has a high prevalence of the hep C infection and they are also high risk to use the drug injecting drug and then so we found we control this injecting drug user in order to find out the risk to hep C infection as well so still the risk of getting hepatitis C is higher even after control the injection drug user so that might be interesting to find out other risks that are in addition to the injection drug user might be you are mentioning about this promoting the sexual protection would be interesting. Okay right so it's the the question and the comments have been on has there been any advocacy for using condoms to these group of people you know that would in itself prevent many of these sexually transmitted? Yes we have this kind of activity in our project because as we found that the fishermen 25% of our goal we have community testing activity targeting to the fishermen village and giving a health education as well. Thank you very much.


So we inherited a few clients that have Synology surveillance stations, and it wasn't a product I was already familiar with. This goes back almost two years now, and we've watched these systems get better and better with updates. We were really impressed with the way the system worked and how reliable it's been for the couple clients that we have it. We also did a lot of installs where we were contracted by someone else who was putting these in a bunch of fast-food places, and we did the physical layer, and we found these really easy to set up. So we also deployed a few to our clients, and they've worked really well for our deployments, and they're not too hard to set up. And so I wanted to do a review of both, one, using it for a little while with a few clients, and two, what you need to get started with the surveillance station. Now, the surveillance station software comes with your Synology server, or you can also buy a Synology dedicated NVR that has HDMI out, because the standard surveillance station, such as the one we have here, the DS918+, doesn't have an HD amount for video. And this is a request that comes up all the time. A lot of people like to have that TV wall mount display where they have all the TVs displayed, or all the surveillance cameras displayed on the TV, I should say. Now, the other tools we're going to be using here are currently a Reolink right here, camera, and a Amcrest camera. I'm going to do a review of these cameras separate. They're not bad. The Reolinks, I like a lot. The Amcrest is the inexpensive pan tilt camera that I think has its use case, but like I said, I want to do separate reviews of those. Not leave links where you can buy these. Neither one of these cameras are very expensive. They're both under $100. The list of cameras supported by the surveillance station is huge. We're going to cover that in a second. But let's just dive right into the hardware and some of the options before we get into the software. So this is the one we're using, the Distation DS918+. We have a few hard drives in here, you know, set it up in a RAID. And it's still using all the same features for file sharing and an MVR. It's kind of a nice multi-purpose small business device, which we really like. We've put a lot of these in small businesses and they've worked really well. They also sell, if you want, something more dedicated as the network video recorder to MVR1218. And these are kind of neat. We haven't reviewed these specifically, but I was noticing that this has the feature of up to 12 cameras, which is only a small couple drive system. It comes with a few camera licenses. We'll get to the licenses in a second. But this has the HDMI out. Now, for larger installs where or even if you want to use multiple cameras on a HDMI display, they do sell a visual station. And this is kind of a neat add-on. So you can buy this Synology NAS or even a larger one depending on how many cameras you have for an install. And then you get the visual station, which then allows you via a network connection to bring it to a TV and then actually control it from there. So you could have a monitor or a security room where all the cameras are being watched. And this is a really neat feature. Now, licenses. I know this is like a, well, it's confusion with some people and also a point of contention where they're like, I don't want to have to pay for licenses for everything. The good news and Synology to me did this right. They do have a license fee, but that license fee is one, one time to transferable. I think those are really important features. So if I license these cameras on here and then I buy a new Synology, I can transfer the licenses to the other one. I did contact Synology and this is what they told me it was done. I actually went to one of their seminars and this is, this was a point I wanted to make sure that every time we upgraded a client to a newer, bigger NVR and added more cameras that at least the license we had purchased would come with it. And you do get certain amounts of licenses based on which model you buy. The default, like with our DS918 is only two camera licenses. We have two cameras hooked up, but the license plays license pricing on Amazon. And I granted you can probably find this cheaper elsewhere. I haven't really dug around much. We have vendors that I think on bulk purchases. We've gotten them for less, but one license is 56 for licenses. 100 bring it down like $50 license. And then you get a further discount with the eight license here for 359. So not not unreasonable. And like I said, these are one time per camera that in far as I know changing out the camera, it's a count of cameras that's allowed to be on the system is what you're buying. It doesn't license the camera itself. It just license the count of cameras that are on there. Now they have a surveillance station IP camera support list and this is over 7100 IP cameras from I'm sorry 71,000 from 140 renowned brands. This is a great feature to me because they have so many on the list here. Basically anything that's OMVIF supported seems to be on the list. They have some generic options too because you can even try ones not on the list and it may work with them as well. So this is kind of nice. Now the other advantage of this is and we've seen this happen where we want to retrofit and use some existing IP cameras because they have, you know, a problem with the NVR or they don't like the way the NVR system works retrofitting a system and using different cameras. That is definitely an option here. Now I will comment because I know I've done a lot of Unify videos. Someone's going to ask to my knowledge as of right now in July of 2019 Unify still does not support OMVIF. So there may be ways to make it work, but they're not part of the official support list. Just an FYI for those wondering. And they have more information on their site about the licensing pack. There are a couple weird cameras that are both supported such as the AXIS one that I even say weird non-traditional that may have multiple lenses. And some of those are some edge cases and they do note that those, even though it's a single camera, because the camera produces more views off of a single camera, it doesn't kind of get you around it. So they're still going to charge you for the licenses for the views. That's just one of those things I wanted to mention is in here. So let's get into what this system looks like. All right, so let's start with how do you get cameras on here? It's actually pretty simple. I have these two cameras set up already. But if you want to add the cameras, they have a really simple wizard. Add camera, it'll walk you through all the setup options, finding cameras when they're on the same network interface, generic OMVIF, and then from here it can lock onto the camera, go through the settings if their camera has some special password, because it has such a broad list of camera supports, it'll actually try a lot of the defaults and go in there. So that was really easy to add cameras. It wasn't that big of a deal at all. And because these are both supported, it was really a matter of couple clicks and they were set up. Now once you have the camera set up, let's look at the settings on them. So we're going to edit and they've got to edit or edit in batch. So if you wanted to batch perform operations and send a lot of settings to all the cameras, great that they have that. But you do have the option, of course, just to edit one camera at a time. So I'm going to go back to edit and choose, we'll edit just the real link first. So device settings, video, choose the video format you like, default stage 264. There's going to be some varied options on here based on possibly what camera you get. Audio format, if the camera supports audio, you can set the stream resolution. If it has multiple stream options, this only has one stream profile. And I set it at the highest res. We set 10 frames a second. But of course, it goes up to and it's going to vary with models of camera bit rate control variables only option and we wanted the highest image quality on this. It also has some more specific options. If you want to enable the PTZ by default, this camera, it says PTZ but this specific camera only has zoom option. But it's still what you want that feature turned on. You control it there. Then we go to record settings, pre record time, post record time, keep within last days to give you, like I said, on every individual camera or edit it in batch, you can control all the details of the camera. You can set recording schedules. How you want the streams to be handled. And it's got balanced versus high quality low bandwidth. So there's different options when they're setting the streams, disable recording and rotation or mute audio recording. Those are different options as well. So you can, ticking this option will disable the recording schedule and manual recording. So just like I said, they give you, I kind of like the amount of fine grain control you have on there. Same with the live view. How you want the live view settings balanced, high performance, low bandwidth. And if you have cameras that a group too many of them, perhaps you may want to slow down the bandwidth because maybe they're viewing it remotely. So those are some of the options on there versus you may want to keep them recording at high quality directly to the NVR for later playback. Optimization. This is kind of neat because it lets you choose by the camera settings or by the surveillance station. So you can force different things on there. And this is going to vary with camera model, how you, how this works. So you still allows you to log in when you have the camera set up. You can still log into the cameras and override certain options and let the camera do it because some of the more advanced cameras may have more intelligence within the camera that does a function that you want. So you can let the Sonali station handle all the recording, but the camera still do whatever advanced functions it may have. It does have, depending on the model camera, mirror flip and rotate, which is kind of cool. You can force reboot a camera on a schedule. I think that's kind of neat. Or force restart when camera disconnected. Event detection. Once again, this is going to be dependent on cameras. Some cameras have their own built in event detection that will detect whether or not there was a motion event or you can use the surveillance station to do it. And when you use a surveillance station to do it, you get the options of the detection area and setting it. But that varies on camera when it comes to, if you want to do that inside the camera. So a lot of the cameras do offer motion event notifications like that's built in a function of the camera and you can edit inside each camera. If it supports it, the areas that you want to sense motion, but if the camera doesn't support it, you can do that inside a surveillance station. We're going to leave it actually set by surveillance station. Nope. If there's IO module supported, that is on here as well. So you can do that. Now, the other option is we have with the PTZ. So we're going to go to BTZ control. Well, I'll show you what it looks like on a camera that only has zoom. So you can set different options. You can set up a troll whether you want to do that. And I see where the camera would just assume that would be kind of boring setting just that as an option. But you can control like the PTZ speed, how fast or how slow it will in this case, this camera only zooms that we're looking at here. So you can set it there. But let's look at a camera that has more functionality. And this allows us to set different positions. And how do we add another position? Pretty easy. Test. And then we just move the camera over. Actually going to spin around and look at me. There we go. Here I am. Look at Tom. Save. And now you've got one more position. And if you were to set up the patrol, you could set it up to go to these different positions as a patrol. I'm not the hugest fan of the patrol positions. And I only bring that up because it seems like they always will miss that event. Even if you haven't sat there like, hey, that thing was about to happen. So we usually recommend for a lot of our clients put more cameras in if they want it because patrolling is kind of, you know, it's a mixed bag, you know, you've seen it in every heist movie where they time the camera because they can see it panning around and things like that. But take that for what it's worth. It's kind of it's really cool feature that it does have it. So yeah, I this camera works pretty good for this. It does not have zoom or I could set the zoom options as well. But this one just has it and this one just has a zoom in and out. So we'll cover that more in a second. All right, so let's jump forward to the live view and look at this looks like so here's the cameras. There's the real link sitting here. Now, I can go through and hit the edit button here as well and brings up that same menu so I can adjust the camera and change its settings. So it's actually kind of convenient. Oh, I'm going to turn my sound off because it's looping back because this camera has audio when you go on the live view and open the camera specifically and click on it, it will play the sound from that. But this is what's convenient. I can go right here to the Amcrest or the real link and jump to those pre-saved ones or if you notice my arrow changes right in the browser and if I need to make a minor adjustment to the camera double clicking it makes it this full screen and then the arrow just kind of moves around so we can kind of look at the, actually this is what I see. You're seeing my view when I look at the camera. There you go. Now you're seeing my studio from the other side which is kind of cool. Now this because it doesn't have Pantute Zoom, but it does have a optical zoom. So we're going to go ahead and zoom in with this camera here. There we go. I can move it over a little because like I said this doesn't have the Pantute Zoom and you notice it's out of focus so go in a little more. Here we go and then if we go into the settings there is a focus option that comes up where I can tell the camera to refocus but it looks like it already did. It generally focuses automatically to when you're zooming in and out. It kind of loses focus for a second while it zooms. All right there it stops. Yep and now it's refocused. Now the other camera it will do a digital zoom which I thought was novel but digital zoom you're trying to get more pixels where more pixels don't exist so I'm not a huge fan of digital zoom. Now even inside of here you still have all the different options and like the Amcrest only setup or this setup or you can add options and manage all your views. Build them out which is really, it makes it easy. So if you have this type of view a six channel nine channel 81 channel 100 channel view create camera groups so you can build groups of views. It's very very flexible in terms of how you want to view it and of course having those different views and we've seen a couple of our clients that have some larger installs that was really novel seeing they built one for like their kitchen area view versus another view. This this makes it really handy when you want to go. I need to see everything that happened in this area because of an event. That's really really nice the way that you that level of customization. If you have the patrol option set up you can do those as well and put the cameras on patrol to watch something as well. So I'll close this here timeline. This is a neat feature for let's see Sunday I was here and playing with the camera so here's Tom Goofen with them but we can jump to certain events when things were going on. We were recording a Sunday morning Lancer view. We've got a great view of Tony's back of Tony's head here and it lets you see all the events on a timeline so you can see what each camera viewed. I didn't have this one on at the time I only had the one camera but it kind of lets you jump back and forth between her and I think that's a a nice way to do it for the timeline. It's not hard to figure out what happened and when it happened and of course how do we export things download the complete file download the video clip I like that you can pick this instead of having to try to figure how to edit it later which is sometimes you have to do with some camera systems you can go through and just say give me the clip from this moment to this moment because that's the interesting part of the clip so this does let you export that just the clip that you want because we don't want to watch eight minutes or ten minutes of video we want the 20 seconds of what happened and how it happened and that's it it does give you that level of customization. It also lets you seek certain moments all recording modes show events only versus show all clips so lots of customization depending on how you set the camera record up so you can replay back everything we can see what it looks like with night vision with these picture cameras like I said I'll be doing a review of these later but it will record and show you what each camera is doing and you can synchronize camera groups up so when you're doing the playback that's an option. Now it does have just to review the recordings option so it just has kind of like a raw here's the recordings here's the recordings we have for this it's recording now the Amcrush recording so pretty straightforward on that export options mount options and if you didn't know add a task to mount it actually has options to move files around and archive recordings set archive options so you can say archive these videos and if you have something else to send the archival to it does have that which is really nice for people that have to figure out how to keep stuff for certain amounts of time and figure out where to store all that data so last thing I'll talk about is the app and I thought the app was really cool on surveying the station a couple things about it one it does work if you don't have any port forwarding because you can register your Synology with the Synology quick connect and then use the quick connect to log into the app I'm using it under local IP and we did find it to be faster if you do port forwarding just FYI but let's look at the app itself so the Synology app supports the same views as you have so you can see the cameras you can look at an individual camera and it's relatively fast actually which one am I moving yep I'm moving right one it's relatively faster is like a little bit of a delay between the recording by the time it gets back to my phone here but when you're on the cameras you can also hit the pan tilt zoom option so you can move the camera around and get it to that proper position that you're looking for and this is definitely really I like this a lot for especially for if you want to set up a surveillance system at your house that's really cool you can still get notifications review the recordings set up options and things like that's a lot of customization you can do in here and one more feature that is specific to the app being on your phone is home mode and what home mode does and we're going to talk about geo fencing which is showing my shop right now because that's where I'm at so we can set the radius of home mode and what this can do is you can customize the functionality of the system to say when I'm home I don't need notifications because it's going to notify me that I'm home but then as soon as you leave it automatically goes that phone that has the app is not there anymore so now we need to turn on notifications because you're not home this is it can be time to do this obviously in the customization schedule you can time it to do different things but this way allows it to do a automated system for you and once again it doesn't require Synology to do this it requires you in the phone and home mode and as I say Synology to do this I see Synology as in you're not sending all your data to them you're not doing something that requires some cloud-enabled thing the app is talking to this Synology device that is something I like about this whole surveillance system in general is some of them are too cloud-enabled for the home and I you know we've seen times and there's a couple companies got in trouble for having all of your recordings and letting too many people see them that makes you a little nervous this is all self-contained it doesn't need to go out to the internet to send a bunch of data Synology it's not sending your recordings to Synology at all it's all stored locally here but you know combine this with the app I think you got a really great tool and in terms of documentation including specifically like this home mode and how it works Synology's done a great job with documentation so you can do a little bit of searching and their Synology support center has a ton of different everything from help topics to tutorials of how to set and configure a lot of this stuff up we have found them to be very intuitive I've not really found myself going into the support at all and I do want to dig into some of the more features that this offers and maybe I'll do that in a later video because there are a few things that I want to try out like time-lapse mode and some other things it might be really cool to have so my overall impressions is we really like this device we've got clients using it I'm going to be doing some deployment follow-up videos for systems that we've got deployed and how we have them set up and what cameras we use I will be reviewing these cameras separately but I'll leave links to them they're not bad but I'm going to show you when I do the review like their overall performance in a couple different situations including their night performance, day performance and get into the details and we'll be using them here on the Subhalency State Synology Surveillance Station like I said I'll leave links below to where you can get all this fun stuff they are some affiliate links so they do help out the channel if you want to purchase them through that check out the Synology NVR Finder and camera lists to see if maybe existing cameras you have are already supported by this but it's the list like I said with 71,000 cameras on the list there's a lot of supported cameras on there so it's very likely that if you've had cameras made in the last few years that they're supported and there are ways that you can adapt like older style cameras to this with different devices that do recording such as VivoTek system and this will take those BNC style cameras and adapt them to IP but please note that if you get something like this because it's bringing in eight camera streams it does require eight licenses because there are eight cameras on there but either way it's an option if you want to retrofit existing systems we have a client that was asking about this because they have some cameras that are not bad even though they're older BNC and they don't want to rip and replace everything they'd like to get a system that can still record on some of those cameras until they get around to upgrading them and once again Sonology makes it easy to support a mix mode of cameras where you have these older cameras that are existing you get some newer nicer cameras or even some really high-end cameras and mix and mode whatever you want because well there's a lot of options out there and there's a lot of scenarios when you try to look at how you're going to plan out your surveillance system you want to make sure you have a system that supports all of it so I guess it huge thumbs up on this device the clients have been running it for a while are happy the new deployments that we've done recently our clients have been ecstatic about it it's really brought them a good visibility into some of the venues that they wanted to keep an eye on and I guess I'll be doing a video about the planning and deployment we did for a recent client all right thanks thanks for watching if you like this video give it a thumbs up if you want to subscribe to this channel to see more content hit that subscribe button and the bell icon and maybe youtube will send you a notice when we post if you want to hire us for a project that you've seen or discussed in this video head over to laurancesystems.com where we offer both business it services and consulting services and are excited to help you with whatever project you want to throw at us also if you want to carry on the discussion further head over to forums dot laurancesystems.com where we can keep the conversation going and if you want to help the channel out in other ways we offer affiliate links below which offer discounts for you and a small cut for us that does help fund this channel and once again thanks again for watching this video and see you next time


Ladies and gentlemen, what we're looking at right here is one of the most iconic movie posters full stop. This was illustrated by Bob Gleason and it continues all these years later to be a beautiful work of art. The little things that really stick out, the way the hand, the knuckles, actually ripple into the side of the pumpkin and the same with the curvature of the knife blade, how that's also reflected into the pumpkin's teeth. I think almost all of us have seen a carved pumpkin in real life at night. They play very nicely on that dark background, don't they? The way they glow, the orange color, it all really pops. And the same goes for this poster. There's also a great tagline on the side, which is all in white, easy to read. Emphasis on the he, it's an italicized font because it wants you to ask the question, who is he that the poster is referring to? The boy that grew up into a man or the man that ceases to exist because something else is taken over, something sinister. Great poster, very beautifully illustrated. We can only really go downhill from here.


Let's continue talking about performance here in this room. And this is the talk about some performance secrets, but most importantly, how to uncover them. So let me say a few words about who I am. My name is Alexander Daima, and I've been doing coding for a while, and I've been doing Ruby and Rails since 2006. And before that, I was coding in C and C++, so I got used to the best performance. So when I started writing Ruby, I immediately noticed that my code is slow, and I had to optimize, and I never stopped since then, so I have to optimize it every day, and I do that right now. I gave a lot of talks on Rails performance before at various Rails cons and other conferences, and I also have written some articles on Ruby performance, which you can find online. Some of them are less relevant, some of them are more relevant. And I am writing a book signed up with pragmatic programmers on Ruby performance, which I hope will become the first comprehensive book on Ruby performance ever, because I'm not aware of any other book right now that has all the information about performance. So by all means, go to rubyperformancebook.com and sign up for the mailing list. I'll notify you when the debate is ready, and it's going to be soon, and I hope that the book will be released next year. But this talk is not about the book. So big thanks before we start to sponsors who helped me get here. This is Ninefold, of course, which is the hosting that will give you more performance for the same money. The GitLab, the open-source GitHub alternative, and the Algae Energy, the only energy company that will not screw too much. So given my background on performance and various talks that I have given, you could have expected me to talk about performance tips and how to write well-performing Ruby and best practices, but this talk is not about it. So today, I am going to talk about how you can find these performance tips and tricks, how you can come up with the best practices yourself and how you can do that. And I will show you how I did it and hopefully you will learn how you can do it, by example. So I'll give you two examples. And the first one is a complicated and the second one is simple. Here's the first example that I have. What can go wrong with this code? It's just a loop inside the loop and there is a sum. For those who do not do Rails, sum is basically inject. So what can go wrong? I found that this code is slow and it was slow sometimes. And what I thought I have found is that that is because of the sum or inject. And I replaced sum with a while loop, but let me show you the simple example. So on the left is just one line and on the right is the ugly while loop that does the same thing without inject, but faster. How fast? For me, it was like 100, 200 milliseconds faster and sometimes. So what can go wrong if your code is slow sometimes?  So that's exactly what happened. So I wrote the simple synthetic example of the same code. So on the left is the loop which goes and calls inject 10,000 times. And on the right side is the same loop. The loop doesn't do anything. Just calls inject or while. And it has the same performance characteristic that the code that I showed you before. So the right side is faster sometimes. So if we suspect garbage collection, what can go wrong with inject?  I'm not sure that inject can create a lot, allocate a lot of memory. Like it doesn't do anything, right? So the only reasonable assumption would be that inject allocates new objects by itself. So how to check this? There is only one way to check its measure. And I used the profiler for that. So there is a way to profile memory in Ruby which some people know about, some people don't. But there is such way, but it needs patched interpreter. So by default, Ruby will not give you back the information about memory allocations and memory usage. Or it will, but not in the right places. So if you are going to use the profiler tool, which I will use, you need a patched Ruby. And for the time it was hard to install it and the patches were bad, but right now it's easy. So many people here probably use RVM and it's just one RVM reinstall way. There is a set of patches called Rails Express patches. Those are memory profiling plus more patches. And you can easily install that using RVM. The only thing is that you cannot use at this point of time 2.1. So there is a reason I crossed it out. Memory profiling does not work yet. Either I will fix it or somebody else will fix it, but it's just a matter of fixing. Right now it doesn't work, but in a month it can be. It can work. So if you're using 2.1, it's easy to go back to 2.0, profile your memory and go back to 2.1. So it's not going to be a huge problem. And of course, if you're still using 1.8, if there are such people using 1.8, there are patches for 1.8 as well. So the profiler that I use is called Ruby Prof. I know several profilers available, but I like this one. And I also like it.  One of them that I like and I personally use is called KcashGrind. It was written originally on Linux, but there is a Mac version and there is a Windows version. So you can use Ruby Prof with a patched Ruby and with a KcashGrind or QcashGrind to see what's wrong. So this is how. The command is run your Ruby program inside the Ruby Prof. Just tell which mode to use. In this case, I'm interested in the number of allocations. So I pass... Okay, it should have been dash-dash mode, but I pass allocations to it and I ask it to give me the output in the call-grind format, which is call-tree. And then I visualize it. So let's go back to this code and talk about what do we expect? How many allocations do we expect? How do I think how many are there on the left side? Like this simple loop and inside the loop, we allocate the array every time. So we have 10,000 arrays, at least. And on the right side, it's the same. We allocate 10,000 arrays. And that's it. That should be it. And of course, that's not what we see in the profiler. This is a visualization of the profile of the inject. So as you see, the whole program actually allocates 30,000 objects. 10,000 are allocated in this integer times. That's the actual array. And 20,000 objects are allocated by inject itself. So you can see that there is a column called self in the output and it shows 20,000 objects for the inject that does nothing, right? It's just an empty inject. It does nothing, but it allocates, at least in this case, it allocates two objects per call. Why? We'll see why. And look at the while loop. This is the profile of this while loop code. No extra allocations. Just 10,000 arrays and that's it. So what happens? And how can we understand what happens? That's more important. How can it be that inject is slowing down your Ruby application? And the only way to know is actually look at the source code. And in this case, the inject is implemented in C. So let's go and see what it does in C. For those of you who are not familiar with C, do not fear. You can always take a look at the C code and understand what it does, because Ruby is so cleanly written that even if you don't know any C, you can actually understand what happens. So in this case, it's easy to understand. There's an object that inject creates that is called MAMA. That's an internal storage for inject iterator. And this is exactly one of the two objects, extra objects that we create. But just by looking at the code, I couldn't tell where is the second one. So that's the first one, whereas the second one. I couldn't tell that. So I ran this inside GDP, inside debugger. And this is also quite easy to do. And if you don't understand the source, you can just run Ruby inside GDP. It's as simple as doing GDP, and then path to Ruby executable. Then you, in this case, I knew where my code is. So I knew the function name. So I used the L command, list command of the debugger to see the source listing for the function. And I used the B command to set the breakpoint on that function. And then you can run your Ruby code. In this case, I'm just passing the Ruby code as an argument. So I used the R run GDP command, and then pass minus E, minus E is usual Ruby interpreter command option, and then my code. I'm just interested in one inject. And then I step over some things. I see that inject is creating this member object, and then it goes to RB block call, which is, it's calling the block that I passed to inject using the iterator. So it goes inside RB block call. It sets up some things, and then it calls the iterator itself. And here what it does. When it calls the iterator, it converts my block into the function. Function node in this case. And this is the second object. Here we go. So this is why Ruby created two objects for me instead of zero, as I would expect it. So this is the code. This is the first one, and this is the second one. So two objects, two node objects per one inject call. It's been called, in my case, 10,000 times. I get 20,000 extra objects. So as you can easily guess, it's a lot of objects, and you can easily pass the garbage collection threshold.  So it's indeed some work for the GC. You may ask if other iterators are as bad, and the answer is yes and no, of course. So I compiled a huge list of iterators, and here's just some representation of it. So bad guys are all, each with index, surprisingly, inject, find, any, and the good guys each. If you call each, not each with index, you're just fine. You're not allocating any extra memory. If you want to see the whole list, of course, it's going to be in the book. That's shameless plug. But that's not what I am trying to urge you to do. So you see that by using a profiler and by using a debugger and by looking at the source code, I actually understood what happens. I actually understood why this is slow, and I understood that I shall not, probably, I shall not use bad iterators like Injector and all inside other loops because they will become a problem. They might become a problem, of course. So this is the tip which I can give you, but the value is not in the tip. The value is in the process. You can repeat the same process. If you see something weird happening, just run a profiler and go look at the source code, go inside debugger to see what Ruby actually does, and then you will understand what happens and why it does it. So that was one example. And I have another example which I really like. As you might know that people always tell you not to use band functions. So everything that ends up with band is good for performance, right? Even if you didn't know that, I'm telling you everything with the band at the end is good for performance. It's not supposed to allocate a new object. It's supposed to modify the object in place. So in case you don't need it, here's the 10 megabyte string and I'm doing the replacement. So in case you don't need the previous version of the string, you just use the band, or at least you're supposed to use the band, of course. Supposed. I guess what happens? I replaced G-SOP with a G-SOP band in my code and so no improvement. Then I set up to figure out why. And you know why? I don't know why. So I went back and ran a profiler on that code. So I ran the profiler on the G-SOP band to tell me what's wrong. So in this case, I was actually suspecting that G-SOP band does not save me any memory. It copies memory. So the profiler I used is the same Ruby prof, but with a memory profiling. So I'm measuring memory allocation, not object allocation. I'm measuring memory usage. So this is what I see. So the flat profile section here will have this string, multiplication that allocates 10 megabytes and you will see that the G-SOP band itself also allocates 10 megabytes. So here we go. The performance tip did not work. And actually what happened is that G-SOP band did not save me any memory at all. It copied my string in memory to do a replacement. So what I saved is just a slot for one object, which is 40 bytes. That's a great savings. And as with the iterators example, so you may ask that are all band functions are bad? No, not at all. I haven't checked them all. I just checked one. I haven't got time to do that. So I just checked down case. And then down case is just fine. As you can see, there is a string, 10 megabytes string, and down case itself allocates 0 megabytes of memory. That's what I like to see. And in this case, the performance tip worked. So again, the thing that you shall remember after this is not that G-SOP band does not save your memory, but that if something bad happens or something uses a lot of more memory that you expected to use, just use the memory profiler. It's easy to use. Remember that you do need to have a patched interpreter to do that. But profile memory and you'll know what happens. So in any case, challenge all performance tips, tricks, and best practices. Just try them for yourself. Run inside the profiler and see what you gain, what's your gain. Because in this case, I committed this crime. I always was telling people, use G-SOP band. It will save your memory, but it just doesn't. So I was wrong. So these are the two simple examples that I wanted to show you. And the conclusions for this talk are that go and profile your code. It's simple. It's not as hard as people telling you to... It's simple. You don't have to take any guesses. You just profile and see what happens. So if you don't know what's wrong with your code, you need to profile CPU. That's the default monitor for Ruby prof. If you don't specify the mode, you will go to CPU mode and you do not need patched interpreter for that. If that doesn't help and it will not help in 80% of cases, you need to profile memory. So go ahead and profile memory, profile memory allocations. Do not profile number of garbage collection calls. I've seen that Ruby prof can tell you the number of garbage collection calls. But this is what you don't want to profile. It's the derivative function of the amount of memory that you allocate. So you need to profile for the first order of things, not the second. So profile, CPU, and memory, and that's it. And if something bad is happening, just look at the source code, see what it does, and try to understand. So again, big thanks for the sponsors. And if you're interested to learn more about Ruby performance, if you are not into profiling yourself, go ahead and sign up for the book mailing list. If you want to talk to me about performance, just let me know at Twitter. And thank you for your attention.


Really quick one for me. I'm in the middle of watering my garden and my dog will pester me to throw his toy in a moment but I just wanted to reflect briefly on something I was considering today as many of our colleagues returned to the classroom for the first time in a long time back to the chalk face it's been a while and many people have contacted me saying how uncertain they felt like imposter syndrome was high and yeah there's a great deal of uncertainty and worry about getting this right for our children being the adults that they need and I was thinking how do I help today and I'm really lucky because I have a great network of people around me and people who listen and care what I have to say I suffer imposter syndrome with that too why why do you care what I have to say it puzzles me every day but you do and so I thought well what words of wisdom could I send my people off with to work today because I wanted to help in a little way and what could I do I could tweet and I thought what do people need to carry with them they need to feel empowered what do they need to do how do we help our children and I decided that the most helpful thing I think we can do right now for our children is to love them to listen to them and to laugh with them so love them we do this all the time we are in the profession because we care but care out loud love them unconditionally let your children let their families know that they're loved that you care that you've held them in mind while you've been apart and that you are worried about them and their future in just the same way that they are and that you care you might not have the answers but you care and you're there and you're alongside them and you're on this journey together so love them love them out loud care out loud for your children and their families the next thing is to listen everyone is going to be coming back from lockdown and their experiences with a shared common experience so we've been talking a bit about community trauma and how we bounce back from that so there's a kind of shared experience that we all have but actually everyone will have experience locked down differently every single person will have had a different experience and some people will have experienced joy and reflection and a chance to stop and think and there'll be some great stuff there and some people will have experienced real challenge perhaps in a way they never have before there will be stories of abuse stories of neglect stories of poverty stories of death stories of separation many difficult stories too and some people will have a mixture and some people will have just had a kind of okay time so there'll be good stuff there'll be bad stuff there'll be stuff in between some people have a mixture but everyone's going to have a story and everybody needs a space to share that story to come to a common understanding of what's happened to us all and to come to an individual understanding of what's happened to them and what this means for them and what's next and lots of our kids will need a bit of space right now to kind of reflect on what they're learning in the last few weeks means for them moving forwards because they've had the carpet ripped out from right under their feet and the things they were working towards that were the most important things in their lives maybe suddenly we're gone and they're coming back now and they need to find themselves again and some of them will have had a complete change of heart about what's next for them and what matters to them and what they want and we need to provide space for that too so basically there's a lot of listening to be done one moment so yeah listen listen listen with an open heart um you don't need to know the answers just walk with allow children a safe space in which to explore how they're feeling and what's next for them listen to the families too if you can families have also been through a tough time many of them working from home whilst trying to support the education of their children often in really challenging circumstances so families have got stories to tell too and providing space for that is also really important and then finally laugh wow laughter is going to be like the most important medicine right now alongside loving and listening but laughing play fun being able to relax and take time away from the worries of right now because there's still a lot of worries still a lot of uncertainty a lot of a kind of unsafety so laughing matters finding ways to have fun to just relax and enjoy each other and to rebuild those relationships and begin to repair and connect is going to matter and laughter is one of the things that binds us most quickly with others and will help you to rekindle those relationships which might feel a bit strange a bit off and we don't know how to react to each other but laughing will always bring us closer so find ways to laugh and enjoy with the children that you care about in it doesn't matter how you do it there's not a right way there's not a wrong way but find something to laugh about find ways to have fun find ways to play even with big kids even with adults find ways to play and enjoy and do those things for yourself too so there you go my rambling thoughts on the return and the things that we need to do for ourselves the children that we care about so we're feeling massive imposter syndrome it's a challenge but do these three things love them listen to them and laugh with them and I promise you will make a difference I really hope that those of you who have just returned had a great first day and those of you who are thinking about returning soon are able to look forward to that even just a little bit get a little bit excited about some of the positives there good luck and as always thank you so much to all of you for everything that you're doing every day okay it's incredible and I'm constantly blown away by the stories that I hear of care and kindness and support that you all provide for the children in your care so thank you for that and please keep doing what you're doing but remember to look after yourselves okay until next time


So if I select the plus button up top, we have the bill that is entered and then the pay bills form. So if I go into the pay bills data input form, it's a little bit different than other forms because it'll basically again have a list of the bills that we can pay and then I can select multiple bills if I want to pay them at one time, which will create not just one form, but multiple forms. So remember the pay bill form is like a check form. It could be a check or an expense kind of form, but it's going to show up in the transaction detail as a pay bill form, which gives us a little bit more detail about the transaction just by the name, meaning it's going to decrease the checking account because it's basically a check type form. But the other side we know is going to decrease accounts payable as opposed to paying off the telephone or something like that just by the name of the transaction type. So it's going to be coming out of the checking account. And I'm going to say the date, let's say is the, I'm going to say the 28th, let's say 28. And then I'm going to say the check number, we should be on 11. I'm sorry, I'm apologizing to the mic, stop apologizing to the microphone. So we've got the 1111. The reason it was wrong before is because I changed the check numbers because they were out of order before. So it was taken the next one after the last one I changed. Otherwise it would automatically be populating at the right check number. We're not going to print them. If we were going to be printing them, we'd put checks into the printer to print them. And this is a nice tool to be printing checks. If you're using that method, you would have to buy the checks preprint, you know, preprinted checks, but then print this information on them, meaning the checks already have a check number on them. And you want to match up the check numbers here to your check numbers. And then you can print them. The reason this is nice is you could, you could check off multiple checks in here that are to be printed and basically print them, you know, at one time and so on. And so then you're going to select the items you've got, you've got your filtering items, if we had any need for some filtering options, the due date and the payee and then or the overdue only. And we only have one item in here. So clearly that's not a problem. We could sort this way with the triangle this way. We could sort by these items as well within the triangle. And then when we pay them off, we can select the whole thing. It'll then put the dollar amount here. If we're paying less than that amount, we could just populate less than that amount and we'll still have a balance then outstanding. Okay, so let's do it. What's this going to do? It's going to decrease the check and account. The other side is going to decrease the accounts payable and the sub ledger for the vendor of Epiphone will decrease as well. And so down below we have the option of save, save and print or save and close. We're just going to do the save and close. Let's do it. And then if I go to the middle tab for the balance sheet, I think this is all we need. I'm going to scroll up the checking account should have a decrease now should have gone down. There it is. Notice it's decreasing with a check type form because that's the form the form that the generic form you should think of for a decrease the checking account is a check form. And then the expense form is kind of a variant of the check form. It's a check form with no number. And then the bill payment form is once again a variant of the check form, which could have a number if I if it was a electronic transfer, then I could just delete, you know, the number and it would be like like an expense form in essence, right? Without a check number on it, but it would still be decreasing the checking account. But it's special because and just by me knowing it's a bill payment form, I know the other side is going to accounts payable and not to an expense account or like a fixed asset account or something like that. Now there's pros and cons to that by the way, because remember before we talked about the idea that having everything as a deposit being an increase could be nice because then when I filter, I can filter by just my increases. When I have these other forms, they give me more information. But now when I filter by something that decreases by transaction type, I've got to pick up expenses, checks and bill payment, these special forms as well. So in other words, there's often a lot of transactions in the checking account. And it's often the case where I might have a situation where I want to customize and filter the forms and look for those things that are decreases to the checking account. If I want to look at all decreases now, I've got to do the check form. And we've got now I have to also include the bill payment check in order to pick them all up. And I have to pick up the expense form rather than rather than, and there's going to be more than that when we pay off the sales tax and whatnot, rather than all the decreases just being like one kind of form. So not so there's pros and cons to having that more detail on the transaction types having more different variants in the transaction type, because I can always see that that added information here too, that it's going to accounts payable and the split. But in the case if I go up and the other side's going to the A to the P, there it is A to the P movie B to the N. And so there it is. So we started here, we decreased it. And now it's down to zero. If you go into that, it'll take you to the form, bill payment form, boom, closing that out, scrolling back up. And then the sub ledger to the right is now down to zero. If I run it again, nothing's there because we don't have any AP at the point. We'll do more AP in month two, back to the first tab. If I open up the buggy and go to the expenses and the vendors, then if I'm tracking my vendors, I'm going to undo this, go down to epiphone. So if I go to epiphone, close up the buggy. So now we've got the bills that have been entered. Here's the bill. So if I go into that bill, I can see that it's been paid. The amount has been paid. So you got kind of that link of it having been paid. Hold on a sec. This isn't the bill. This is the bill payment. There's the bill. Here's the bill payment linking to the bill. And then the actual bill is down here. And the bill has been paid. That's what I was looking for. And there's the, there's the link to the payment. So that linkage is kind of nice because, and if you, if you learned accounting in a textbook, you probably haven't learned that these linkages from the internal bookkeeping side, which is useful, the forms kind of being tied together. This isn't having an impact on the financial statements, but it's important if I was to talk to a vendor to be able to easily kind of look into that bill and say, okay, yeah, the bill has been paid and when it has been paid. Now note, if I went into the, the bill payment, whenever you see the bill payments, you're always going to be thinking, okay, it's a bill payment. That means the other side went to accounts payable, which means I don't know what was actually purchased in terms of like expense category. So to get to the expense category, I've got to go to the actual bill because that's where the actual income statement was hit. This went to other miscellaneous because it was the beginning balance. So, so that's going to be that. And then so that is that no impact on the income statement because the income statement was impacted when you entered the bill, which was in the prior period in this case, because it was a beginning balance.


Coming up on DTNS has Stadia saved cyberpunk 2077 Facebook wants to read your mind, summarize news and stop Apple with full page ads. This is the Daily Tech News for Wednesday, December 16th, 2020 in Los Angeles. I'm Tom Merritt and from Studio Redwood. I'm Sarah Lane saw Lake City. I'm Scott Johnson and I'm Roger Chang. The show's producer and we were just having a deep conversation about the effect of the internet and the passage of time on music styles and and how the 80s and the 50s and now are different. If you want that wider conversation, get our expanded show. Good day, internet. Become a member of patreon.com slash DTNS. Let's start with a few tech things you should know. Native apps for Apple's M one based Macs continue to roll out. Microsoft has released Outlook, Word, Excel, PowerPoint and one note as Universal apps. Mozilla released Firefox 84 for M one based Macs, though it will still require Rosetta for streaming content from DRM video services. Amazon's Luna game streaming service is now available through the Chrome browser on some phones running Android 9 or newer flagship phones from Google. One plus and Samsung are supported with more phones expected to get supported as time goes on. You'll also still need a Luna invitation before you can start an account if you don't already have one. Samsung's president of mobile T.M. Ro said that Samsung plans to bring the S Pen support to more phones and make foldable phones accessible to more buyers, which a lot of people read as meaning more affordable and unnamed Samsung official also told news agency Yonhap that Samsung is preparing to release the Galaxy Note series next year. And that quote rose message does not mean that the Galaxy Note series will be discontinued. That was a rumor previously. Samsung will hold its next announcements in January. German Chancellor Angela Merkel's cabinet approved a bill to let Huawei's presence continue in Germany, though it still requires parliamentary approval. The US administration has lobbied its European allies to reject Huawei's technology, claiming China can use it to spy on and steal sensitive information. Huawei denies the allegations. Texas Attorney General Ken Paxton announced on Twitter that the state will file a multi state lawsuit against Google alleging anti competitive conduct, exclusionary practices and deceptive misrepresentations. Paxton referred to Google controlling pricing and engaging in market collusion. Texas is already part of a suit against Google regarding an abuse of monopoly power in search and search related ads. And breaking news just coming across the wire. Roku and Warner Media have reached an agreement for distribution of HBO Max. It'll show up on Roku tomorrow. In our time. All right, let's talk a little more about these full page ads. Facebook took out ads in the New York Times, Washington Post and Wall Street Journal saying, quote, we're standing up to Apple for small businesses everywhere. This is all because of a change to Apple's third party ad policy that's coming early next year. The policy centers around something called the IDFA, the ID for advertisers. This is a number that can be linked to your device and Facebook and others use this number and data like it to target ads based on what they know about the user behind that number. This allows them to personalize the ads. Now, Apple's going to continue to let developers use that number. They can use it for analytics just like they are now. But if a developer wants to combine it with other data to track a user, the user must grant permission so they can they can actually use it to track the user within their own apps. It's just if they want to bring in another company. And that's important for understanding things later. An example of the notification that Apple will provide is like this. Facebook would like to permission to track you across apps and websites owned by other companies. And then you'll have an option to allow it or don't allow it. Companies are prohibited by Apple from using incentives to get people to agree or reducing functionality if they don't agree. So this just has to be a clean and fair agreement. Very similar to how the GDPR writes the law. If a developer is found to be using data without permission, they can be removed from the app stores or Apple intends to enforce it. Now, everyone agrees this is going to reduce the number of users whose data can be used for personalized ads. Personalized ads use data known about you to show you relevant ads. That means the ads are more effective and therefore can be sold for a higher rate. So if you have fewer personalized ads, the advertising platforms like Facebook make less money. But it also means small businesses can actually spend less money counterintuitively because they can target people. They have a better chance of turning into customers instead of a massive radio campaign where it's going to hit a bunch of people that aren't going to turn into customers, they can say, oh, we have a good chance that everybody sees this ad might buy something from us. Facebook says in a test last summer, it saw more than a 50 percent drop in publisher revenue through its audience network when personalization was removed. There's no doubt that this is going to affect advertising. When Apple implemented anti-trafficking in Safari, for example, ad prices fell by around 60 percent, according to the information. Now, that has since recovered because they figured out other ways to do advertising on the web. The other thing that's getting Facebook all upset is Apple doesn't apply this rule to its own apps. Apple does personalize its own ads in the App Store and on Apple News based on what you do in Apple's own apps. Apple notes that it is not stopping developers from doing the same thing using IDFA within their own apps. The new policy only applies to moving user data between companies and combining it with other data sets. And Apple doesn't do either one of those things. And I also pretty sure they ask your permission for this at setup. Facebook is leading the charge because Facebook is one of the largest advertising networks in the world. And if users opt out of tracking, it stands to make less money on targeted ads. It argues that it provides tools on Facebook.com for people to control how their data from Facebook is used. So Apple doesn't need to do this. But of course, that only applies to Facebook. Whereas the in-app controls on Apple apply to whatever service the developer uses, whether it's from Facebook or not. Now, advertisers are always are already working on a lot of workarounds. One called contextual targeting would use the environment you're in to determine what ad to show. For instance, players of a particular game tend to like dating apps so they could get dating apps to advertise and it should work pretty well. Other avenues would be targets based on freely available data like battery level or strength of network connection. Again, to identify the type of user rather than the user themselves. Like, oh, if this person is often with 50% battery life, they're this kind of person. You can make machine learning to identify that kind of stuff. So I kind of phrased this in an earlier discussion today as effects and practicality, which is what the advertising industry is concerned about versus principle, which is what privacy advocates in Apple are concerned about. Interesting. Yeah, the whole Facebook taking, you know, full pages out is sure. They get a lot of attention that way. We're going after Apple because we're the voice of the small business owner.  You know, Facebook taking Facebook's other issues that we talk about on the show all the time, just completely putting them aside. This seems so disingenuous to me. And it's not really because I think, oh, Apple's, you know, totally on the right. I mean, they're a big company that they're concerned about making money above all else the way that Facebook is as well. But for two different reasons, Apple has drawn a line in the sand and said, we are going to make privacy a thing that will make people come to our platform because we're taking it seriously and here are the ways that we're going to do this.  You're going to really screw up a lot of things for us. And Apple's like, well, but we're not saying that you can't still have this data. We're just saying Sarah Lane as a person who may be signing up for the first time. Do you want to do this or do you not want to do this? And in the past, I just didn't have a choice. Now I might say no, I don't want to. And then Facebook and a company of any size who wants to sell ads based on location or past history or any of the data points that are used up until this point, they need to get on with the times because things are changing. My very fast take at the end of this is maybe controversial, but part of me thinks this is going to get rebuttal from Tom, but I'm going to say it. Part of me thinks that Facebook knows because of data they have, just how callable people who like Facebook might be when you feed them a message spun in this direction and therefore they're confident and that their little spin on this is that people will believe them that it's bad for them somehow and bad for small business owners. And I think they're wrong. They're certainly wrong from my view, but I think they're wrong on the whole. I think this comes off as really flat and weird and disingenuous to say the least. You know what? I'm not going to rebut the idea that Facebook looked at their own data to construct this message.  And it's if there is a message that gets Facebook, the company that no one wants to give a break on privacy, a chance of being heard, it's it's not about us. It's about small businesses will be fine. We can weather this storm. But the the mom and pops think of the child, not children, small businesses. I mean, it's that kind of appeal. Yeah, we'll see if it works. You know, well, I'm next. Look at this, guys, Google Stadia in the news video games. It has arrived on iOS as a mobile web beta after being announced last month and over a year after Stadia's initial launch. So it's been a long time coming. Any existing Stadia user on the free tier or paid Stadia Pro subscription can now access their library of Stadia games. Remember the service you have to buy the games within the service to use them on iPhones and iPads. Google is using mobile Safari to circumvent Apple's restrictions on cloud gaming apps in the app store like Microsoft to be doing this soon as well. You can access Stadia through its mobile site or by creating a home screen icon that becomes a progressive web app. According to the Verges, Nick Statt, Statt, even Cyberpunk 2077 works on the iOS version of Stadia. Stadia offers a two or sorry, offers two free to play games right now. Those being Destiny 2 and Super Bomberman are. I wanted to throw out real early on this, the reason that Stadia is getting such great marks for how well it's running Cyberpunk 77 or 2077 is because it's being compared to all the bugs they've been having on platforms that aren't streaming platforms, particularly the PlayStation 4 and the Xbox One. It runs very poorly on those platforms and there's controversy surrounding it. You guys have talked about it on the show before and everybody's sort of talking about it right now. The new gen consoles seem to run it fine, but they're not technically next gen versions, but the PC versions, least amount of bugs. Also, the highest percentage of sales so far have been on PC. They're known to be a proficient PC developer and have for years. So it doesn't surprise me that people are not only having better luck there, but with high end video cards, right tracing, that sort of stuff, they're getting really great results there. The reason I say all of that is Stadia and other things like Nvidia's GeForce now and services like that are playing Cyberpunk really well because they are in effect connecting you to a remote high end PC where things are kind of running the best. So as long as the service is working well and your ISP is handling it, you might as well be getting the best PC version of the game you can, but you're playing it on your TV with your with your Stadia or a browser in this case. So that's good for them. That's good for Stadia. They needed a win, but it's funny that they're kind of getting a win on the loss of CD Projekt Red's somewhat failure at launch. So save your conspiracy theories about CD Projekt Red making Cyberpunk 2077 buggy on purpose to help Stadia. I don't think that probably washes, but yeah, it is it is unusual. Yeah. And the fact that that's I cannot state enough, like just to just to pull the camera out a bit again on streaming tech and where it has gotten to even today and where it's headed. It's nothing short of amazing that a game with that level of fidelity and complexity of visuals, a truly a next gen experience on the right hardware is coming to somebody's phone in a way that's playable, usable, sinkable to a controller. Like we are so far from where we were, say, 10 years ago on even dreaming about this sort of thing. So it's a huge, huge deal. I still say there's big questions for consumers about whether Stadia is the way to go. You're basically renting and or using a free tier of a platform that you still have to buy games for. Whereas Luna and GeForce and other stuff, they're they're taking different approaches where you can get lots of games included with your smaller note prescriptions. So I'm still on the fence on all that. But from the macro view, this is all super cool every time I hear about it. Yeah. And and this is the big event of progressive web apps. We heard about Luna coming to Android as a progressive web app. It's also already on iOS as a progressive web app. You mentioned Microsoft's going to be. I mean, I know we use the word circumvent, but that sort of implies that that you're getting around Apple, whereas Apple encourages this. They're like, yeah, we don't want to allow you to do this in the App Store. But if you want to make a progressive web app, we'll we'll help, you know, we'll pitch in and make this possible. And it's me to me. It's no different than saying, hey, these cool services work on a browser on your desktop. We're just talking about a handheld computing form and nobody complains about browser access there. I don't think they should hear. I think it's just it's easy to see the juxtaposition of the Android method versus this method. And so people want to get all tied up in that. But I think it's cool that it's just a browser. And I kind of prefer it there. I don't want more apps. I want to work really well. That's the thing about PWAs that people don't realize is they are. Getting to be indistinguishable from apps in a lot of ways. Yeah. Well, speaking of companies working together like cats and dogs, Apple's Apple TV app will arrive on Google platforms like Android TV and Google TV, you know, cats and dogs can get along just fine. Starting with the Chromecast early next year, it will be available to stream in 4K HDR with Dolby Vision at Atmos and you'll be able to see Apple TV content in voice search results as well with Google Assistant. Google also added support for Apple Music on Google Assistant smart speakers earlier this month. So we're, we're on a trend and people are playing nice. And boy, it makes me want to buy a Google piece of hardware that much more because I love Google Assistant. And this is what Apple is aiming for, is to get their app available in every place that Netflix did this in the earliest days and it really helped where anything you bought had Netflix on it and it helped them build out their audience. Apple wants to do that. They're like, even if you don't have Apple stuff, it's easy for us to get the people who buy Apple stuff to pay for Apple TV Plus. Let's get anybody who has a Chromecast to do this too. And Google was touting like this makes Android TV and its derivatives one of the only places where you can get everything now that we have Apple TV. And then of course we heard at the beginning of the show HBO Max coming to Roku tomorrow. So that now Roku pretty much has everything as well. Fire TV and Peacock just need to work it out. And then everybody will pretty much have all the majors. Anyway, one tiny note to add. I was concerned about how this would go because I haven't been in the Xbox ecosystem for a while, but picking up an Xbox Series X and messing with the media apps on it. Um, day one, there was an Apple TV app on there and I that surprised me. I was like, whoa, wait a minute, really? This is happening today and doing this to an Xbox. I mean, what kind of world am I living in? And it's great. It works great. All my subscriptions were there. My synced spaces like where I was watching a show or whatever. That was all there and started where I had left off. Like all the things I expected out of the app had this been a native Apple, you know, device like Apple TV. Where they aren't functioning. And that was a huge surprise. And it's been really, that thing's been great in terms of bringing me everything I subscribed to and then some that I don't need. Um, so yeah, Series X, Series S might, might also be the, the place to get all this stuff and make sure you have it all. If you're trying to make sense of all of the apps and services and devices and platforms out there, uh, you might want to chat with some other folks who are figuring it out as well in our Discord. You can join that by linking to a Patreon account at Patreon.com slash D T N S. Well, SolarWinds still dealing with the fallout from the malware that was injected in its Orion network management platform, uh, which caused intrusions at multiple government and corporate networks worldwide, but it has not yet revealed how the attackers injected the malware into its updates. You may have seen a headline that implies that maybe you figured it out, but you have it. Here's why. Security researcher, Vinith Kumar told Reuters that he alerted SolarWinds last year. Okay. 2019. Remember the malware was injected into Orion in March of this year. So well before the injection, and that's important. Uh, Kumar alerted SolarWinds that their updates server was protected by the password SolarWinds one, two, three. Oh, yeah. Now they changed it. So this is not Kumar says the most likely source of the malware intrusion because it looks like the malware didn't show up until much later, but it does imply that maybe SolarWinds wasn't quite as on the ball with security as it should have been. And there might be other examples of them falling down on the job that did cause the malware injection. Uh, for example, three weeks ago, SolarWinds posted a job ad seeking a new vice president for security and that position is still listed as open. So, uh, more to come on that. We don't know anything else, but this, this is just sort of us keeping up to date on what's happening with the SolarWinds story. And if you see this password thing, don't jump to the conclusion like, oh, well, that's how they got in. It doesn't seem to be, but it also seems to be that maybe there was something else just as bad. Yeah. I mean, when you see something like that and you go, how was that really a password that a security researcher found and then said, Hey, company probably want to change this, which they did, but like, we're like, were there other things that maybe had been overlooked that seem obvious to somebody who knows what they're doing? Yeah, that's, I saw that. Tom talked about on the morning show segment this morning and a little bit anyway. And I just thought, this is like my mom's level of password or worse actually, because my mom at least puts capitalizations and some characters in there. She'd have an exclamation point in it, right?  It uses a lot of exclamation points. Don't use an exclamation point as your special character. It's the most common special character and a lot of brute force attacks will include it because they know that it's likely to be there. Yeah. So get a password manager. It's funny that this is a, you know, this is a broad, huge story that affects major institutions and all of that. But one of the takeaways is, yeah, give do good passwords. Like it says, did someone place a post it with it on their monitor? That would have been more secure. Honestly, I'm just having that as their password. That's right. That camera can't see that. Post a note. Anyway, Facebook CEO, Mark Zuckerberg, you might be familiar with him and other company executives told employees at an end of year company-wide meeting on Tuesday that the company is developing an AI assistant tool called TLDR, which can summarize news articles and bullet points so that a user would be able to, or be able to see it at a glance and not have to read the full piece. So think longer form content and they're, you know, shortening it. Really hate this idea. Anyway, Facebook also told its employees that it's developing a neural sensor to turn thoughts into actions. Facebook acquired neural interface startup control labs at CTRL labs like your key on your keyboard in 2019. And at the meeting, Chief Technology Officer Mike Schofler demonstrated a sensor that takes neural signals coming from the brain to the wrist and then translates them into action. That's pretty rad. Schofler said this could be helpful for virtual typing, holding a virtual object or controlling a character in a video game. Oh, so yeah, going back to the let's let's us Facebook give you just the the cliff notes of the news. So you don't have to read the entire article.  And that may be true. I see where Facebook's going. There are definitely certain, I mean, there's newsreaders, there's tech meme. There are just hovering over certain article links, depending on, you know, what platform I'm in, where I get the gist of an article and I kind of go like, OK, I understand what this news article is about, but for details, you know, and to get, you know, a wider conversation, then I'll go into the article itself.  But again, Facebook is in a battle in many big global entities right now about the idea of not being able, you know, sort of stealing clicks from news organizations and people who are doing really, really good work and being circumvented in that way. So I don't know. I don't. I, Scott, you said you hate this idea. I hate this idea too, even though I'd like to see it in practice in order to sort of understand that maybe it's not as evil as it sounds. Yeah, Facebook is in everybody's minds. Facebook is guilty until proven innocent. That's the reaction to this story. If this isn't Facebook, this is a great tool. If someone says, hey, we've come up with an RSS reader and instead of that kind of useless snippet you get there, we're going to use some machine learning so you get the bullet points and see what the story is about before you click through. Everybody loves this. It's only that it's coming from Facebook and everybody's jumping to conclusions about how it's going to be used, how it's going to undermine publishers. If Facebook took this and said, hey, guess what? When we when we come to an agreement about snippets, we'll give you this tool that will be an assistant for you to create the summaries for your stories that will drive people into your sites. That'd be great. Now I already hear everybody scoffing out there like Facebook will never do that. They'll make this the worst, but this is good technology. This is great technology and it doesn't need to be used. In fact, it's most likely not to be used for evil. It's just that it's coming out of Facebook, so nobody's going to trust it. Yeah, I have all I would add to that is the reason I don't like it is and you pretty much laid it out, but I just don't like this idea that Facebook is already a place where someone sees a fat meme headline in the Impact font and decides their entire social political or otherwise belief system based on that that flash of information. And so I'm sure that their data suggests that people are cool with shorter stuff and they jump to conclusions from that. But you already have shorter stuff, right? Right. And you know what? I like it. Everybody I don't want Facebook summarizing the story for me also looks at headlines and decides what the story is about. This is going to be an improvement on that because it's likely to give you a better sense of what's in the story than just a headline and a useless snippet, which is what you get now. I mean, I don't I don't disagree with that. I guess what I would say is I'm bummed that I'm bummed that people don't want to get the full story regardless. And none of this would matter if we did. It's not Facebook. I know this is likely to make you want to get the full story more than what we have now. Maybe. But but I guess what I'm saying is they're having to do workarounds for our poor behavior and that bums me out just a little bit. I don't know. I there are definitely bullet point CNBC and Axios come to mind, you know, where it's sort of like, you know, what what's what's the heart of the story? Let's give it to you. Want more? Keep reading. Great. If that was what Facebook was rolling out, great, won't care. Yeah. And like you said, Tom, to put it in the algorithmic minds of Facebook, freaks people out and there are a lot of more new sources that you might say, well, I wouldn't have trust that news source anyway, whether or not it was condensed or the full article. So kind of a larger conversation. This isn't don't read the story. This is, hey, here's a better way to understand what's in the story so you can decide whether you want to read the whole thing or not. That's the way I'm looking at it. It might be crappy at it too. It might be really bad and not work that way. That's the other thing we don't know. Well, moving on, Amazon unveiled the designs for antennas that consumer could use to access Project Kuiper. That's a planned satellite constellation to deliver broadband Internet. Yeah, everybody likes that, right? The phased array antenna underwent development and testing this fall. It has a 12 inch diameter that can deliver maximum throughput of 400 megabits per second. It's capable of streaming 4K video from geostationary satellites up to 22,000 miles above Earth. The project Kuiper satellites will be much lower than that. Amazon hasn't announced prices yet for the project. But they're small, tiny little antennas, 12 inch diameter. I mean, that might sound big to you, but yeah, you get 4K video. You know, this is this is a good stuff. Probably not next year, but within five years, we're going to have a bunch of these because SpaceX is doing one. There's a bunch of other companies doing it. And there's going to be a lot of rural coverage of broadband Internet. There'll probably be some people even not in rural areas wanting to take advantage of this. This is an interesting thing to watch. Indeed, it is. All right, shall we check out the mailbag? I think we shall. Adam from he says soon to be buried in snow Boston. Yes, we heard you guys are going to have a nor Easter. As they say on the news, he wanted to share a company that we mentioned briefly. The other day when we were talking about the company Gorillas, and this is a company called Gopuff that is working in the Northeast where he lives. He lives in Boston. He says they offer a bunch of convenience food and small grocery items. The only ship from their central locations. They have a number of them though through the out the city in the region. They don't promise 10 minute shiptimes in my experience, but they've all been within an hour. They don't allow people to go shopping directly on their stores or warehouses. So they're the dark stores that we talked about before. Adam says when clicking a job link, one of the benefits they tell you if you were interested in working there is using their specific location and not having to go store for store or run all around town to pick up things or use your personal money like a go for some other gig shoppers would have to do. Now Gorillas employs their drivers. I did sounds like from what Adams writing here that go puff doesn't but it's not nice to get a boots on the ground report on this. Thank you for that, Adam. Appreciate it. Yeah, thanks, Adam. Also shout out to patrons at our master and grandmaster levels today. Who will they be? Spin the wheel. They include Paul Reese, Ragnar Barmodal and Jeff Wilkes. Also thanks to Scott Johnson for being with us today. Scott, I know you've been drawn up a storm among other things. What's new? Well, a couple things your your Friday or sorry, your Thursday guest, Justin Robert Young had me on his PX3 podcast yesterday. I suggest people go check that out if you want to know how I felt about the last four years in real raw detail. But also check out my comic. It's called Fred and can at Fred and can dot com. Great Christmas episode this week for those hoping we'd get some of that before the end of the year. So it's there. So go enjoy this thing that I make because it makes me feel better in the weirdest year we've ever had. That's at bread and can dot com. I'm going to double down on this. I listened to your interview with with Justin yesterday. And I know a lot of people out there probably think they know what that interview sounds like based on you saying that. And they do not know it was a really enlightening and deep and philosophical discussion that is going to surprise you. And Scott, thank you for doing that. You know, a little bit there and I definitely went places and credit to Justin. He has a way of bringing that out of me. But I think I feel pretty good about it, even though it was, you know, like I said, it's a little bit of a raw look at the more emotional side of things. And and I think I think people get a kick out of it. So check it out. And then once you've gone to politics, politics, politics.com and listen to that, go get a friend cam.com chaser. It'll make you feel better about the world. Yeah, there you go. Hey, folks, we love patrons that stick with us. That's why we're happy to offer Patreon loyalty rewards. Anybody can get them if you're like, man, I've been meaning to become a patron. Now is the time you can get a unique sticker, mug, t-shirt or hoodie, depending on what level you back at every three months, as long as you stay a patron. Each one has unique art from Len Peralta. The first one you get would be the DTNS seven year anniversary logo. Then there's one with Roger in it, one with Sarah in it, one with me in it. Every three months, get the details at patreon.com slash DTNS. Hey, have you heard the good word? We're live Monday through Friday, 4 30 p.m. Eastern 21 30 UTC. And you can find out more at daily technewshow.com slash live. We will be back tomorrow with Justin Robert Young. Talk to you then. This show is part of the Frog Pants Network. Get more at frogpants.com. Bob hopes you have enjoyed this program.