in the call. Yay! I think the video magic has worked. We even hear it. I had to run it off my LTE. No kidding. Are you in like an Airbnb type thing? Yeah, yeah. They've got time-warner and it's just terribly slow. Wow. Like we wouldn't even let you join. Okay, we still don't see video. Is that on purpose though? Which is fine. No, I think it's just not doing it. I'm not sure why. Okay. If it's my favorite phone, it doesn't have to be the same with it won't do it. Yeah, sometimes it won't. That's all right. If you get it working great, if not, we have a lovely picture of you. Yeah, we're just seeing a black screen when you talk, so. Yeah. Sorry. The little icon, don't we get that? If you turn video off, you get the icon. If you have video on and it's just not working, you get a black screen. Okay. Well, I can turn it off so you get the icon. All right. There we go. Is that cool? Ready? Yeah. Yeah. All right. Let's rock and roll. Here we go. That's not going to work. How about if I do that? This is the Daily Tech News for Wednesday, June 15th, 2016. I'm Tom Merritt joining me today. Scott Johnson as he does most Wednesdays back on a Wednesday this week. How's it going, Scott? I'm good. I feel like I was just here. It was Friday when you last had a little change. No. I was in your seat and you were in the hallway. Thanks for letting me crush it.  You looked nice and warm. Everything's good. I'm really glad to be back. It's been a whirlwind week with all this E3 coverage. I'm just excited to be here so we can talk about some of the more technical aspects of what's been going on this week. Absolutely. Raj, do you is joining us as well? Not from Australia this time, so he's up at a reasonable hour. You are in E3 land. You've been covering E3, you're downtown LA. I am in downtown LA. The internet gods have not been very kind to me though. No video for me today, but hopefully you can hear me nice and it's coming through okay, so that'll work. Your audio is coming in well. Let's just blame E3 for sucking up all the bandwidth. Definitely. We're going to talk a little bit, not so much about the details of E3, which we've all covered in various places fairly thoroughly, but we're going to talk a little bit about is E3 necessary? Raj has been on the floor, so I know he's got a perspective on that. Scott and I have got our own perspectives on that, but we must get to the top stories first. Mark Zuckerberg confirms he is not a lizard. Here are the rest of the top stories. Safari 10 will disable Flash, Java, Silverlight, and QuickTime plugins by default. In Mac OS Sierra, the browser will default to HTML5 when available. Otherwise, users will have to authorize the plugin to run. Users can whitelist plugins to run on specific sites in the browser's settings. So ladies and gentlemen, should we pour a little out for Flash finally? Yeah, or pour a little out for all the stuff that tends to sometimes bog us down, and maybe pour a little out for Apple for finally getting on the ball and implementing things that have been plugins for other browsers for a long time. That's really all this is and it's nice to have it baked in, so I think it's good. Yeah, Raj, do you agree with Flash? No, none at all. I don't have Flash. Well, I have Flash installed in a VM for testing a few things when I'm doing web development stuff, but I have no need for Flash, don't want Flash, nor Silverlight or Java or any of those things, so this is fine. This is push forward, get rid of them all and stop the plug-bow security holes in the process. I agree. Well, if you're in the mood to retweet yourself, you can now do that on Twitter. Retweeting yourself is available. It's the way they put a tweet in front of people who may have missed it the first time around without having to do the I-C-Y-M-I. I saw this in effect yesterday with Data Tech News Show's own Patrick Beja from France as he was testing it, and he was going pretty deep. It was like tweet inception about five tweets deep on retweeting himself. When I first started by this, I thought, well, I think I can do that now, but it's more like quoting a tweet from somebody else but doing it for yourself, and this is useful to me because I may put up some content on a Monday and think, well, most people got it, but on Tuesday, people that hadn't checked Twitter or flew by their feed, here's a chance for them to see it, so a great way to pull that stuff up without having to retype it all. I suppose I'm looking for this. Raj, does this help you at all in communicating with your base? Yeah, it does a lot, especially for, it already happens now. You see programs in websites and especially WordPress plugins that will retweet on a schedule based on content that you push out, so I know a lot of news outlets that are sort of, the story comes out, they push out a tweet, and then three hours later or six hours later, they send out another tweet with pretty much the exact same content or slightly worded differently just in case people didn't see it the first time around, so at least this way you sort of, if you're quoting or you're using the retweet function, you're probably getting analytical data with that as well, so you're not splitting it across, even though it is a new tweet, you can link it back to the origin, so you're not tracking two separate lines as such if you tweet out a whole new one, so I could say it being useful in that regard. Do you think that, so there's been a lot of stuff on the internet about how this is just a narcissistic tool for people, this is like, well, okay, yeah, let's look at that because on the one hand, people were doing this already, they just had to cut and paste, so this allows those people to do it easier by pressing one button, and as Raj very astutely points out, it helps with the analytics. On the other hand, I find this annoying, it is the hit radio problem, right? If you listen to top 40 radio, more than 20 minutes, you're going to keep hearing the same songs because it's not designed for people who listen to the radio for more than 20 minutes at a time, so if you're in the audience of people who read Twitter regularly, you're going to keep seeing these retweets and you're going to be like, ah, it's so annoying. On the other hand, I probably won't ever notice it because I don't read Twitter that religiously, so my objections, I think, are purely academic, but I just don't like repeating the same thing over and over again. Well, and even if this takes off and gets huge, and everyone loves retweeting themselves, the problem that I see with it is that if you are a user of TweetDeck like me, you're not going to get the feature anyway because they seem to be not updating this off or any new features passed. I don't know, Likes got hard so well back in that one. Yeah, what's up with that? I had to go open Twitter in a browser tab instead of using TweetDeck to try out this feature. Yeah, so it's frustrating as a TweetDeck user and knowing that Twitter owns TweetDeck and they're not keeping it in parity with the regular Twitter, or the regular Twitter mobile and desktop browser updates, and it's frustrating. So don't look for this any time soon is my estimation on TweetDeck. Oh, good. All my TweetDeck friends won't be retweeting themselves. Not that there's anything wrong with that. Here's some news on the iOS app store. Craig Federighi told John Gruber the default apps are still baked into the operating system and deleting them only removes them from the home screen and deletes associated user data. So it just removes the hooks. The binary is still tied to the operating system. So then when you redownload them from the app store, it's unclear what that really means since the binaries were never removed. Also Apple will require all apps in the app store to enable app transport security by January 1, 2017. That forces HTTPS connections for the app using an encrypted TLSV 1.2 connection. So you will get encryption of all the things within apps no more allowing app developers to turn that off and give straight up HTTP connections. You think a lot of people were worried about how much room that apps were taking and less about what they were cosmetically doing to their home pages and things. I think this kind of still solves the problem for most people. There's got to be somebody out there who's like, man that calendar apps probably taking up a couple of gigabytes I could use. It's both right? Most people probably just want to get it off the home screen so they don't have to look at it anymore. But yeah, if you're getting tied on space, it would be nice to get rid of the tips app and free up a little space. Raj, what do you think? Yeah, it'd be good. I think myself like a lot of people have a folder that they hide away on a second or third screen that just has a bunch of these apps that you can't remove. Whether they're deleted from the phone, yeah, it would make a lot more sense I think for everyone if they actually did have the binaries removed. So you did have that space other than just hiding it. But that's essentially what we've been doing by tucking them away. But Apple are going to do what Apple are going to do, right? And some of those functionality is baked into the OS like your notification widget screens with stock information. Perhaps that ties into the binary for the app. I'm not sure. And that's the reason why they want to keep it there because perhaps you want to have the notification widget, but you don't want to have the actual app itself. I'm not an iOS engineer so I couldn't tell you if that's true or not. But the TLS stuff, well, I mean PayPal are going through the throws of that to advising everyone they need to update and get on board with the latest sort of encryption stuff which is just common sense and something that needed to be done. Yeah. And the other thing about the deletion of the apps too, I was excited that if I could get them from the App Store, that would mean they would get updated out of cycle. You don't have to wait for an operating system update to update the app. But apparently that wouldn't be possible. Or would it? I'm a little confused on that now. Yeah, they haven't been real clear. Well, Netflix is being clear about a changed iOS, which I'm actually excited about as a pro owner. Viewers with compatible iPads running iOS 9.3.2 are now going to be able to use picture in picture to keep watching Netflix video while doing other things on the tablet. Thank freaking goodness. This is totally me. Other video apps like Hulu have been doing this previously. HBO now does this as well. It will be really nice to see Netflix do this. This is actually a way for me to sometimes open a video app and be watching something and I'll forget what service I'm using. And so I'll go out thinking, oh, this is just going to stay up in the corner for me while I'm checking Twitter, while I send this message to Tom or whatever. And then away it goes. I'm like, oh, I must have been watching that movie on Netflix. It's super frustrating not to be sort of on par with any other app.  It's a great example of the problem with the app ecosystem though. Like running video in a windowing operating system that we've had since the 80s means it's always there in a corner. You can put it there. You can leave it there. You can put it wherever you want. Suddenly in mobile operating systems, it becomes a feature that has to be added per app.  I don't know. Raj, does it make any difference to you? That's all right. Your Internet doesn't want you to answer that question anyway. Quartz reports that Facebook's head of Europe, Middle East, and Africa, Nicola Mendelson told a conference in London yesterday that in five years Facebook will probably be all video. Mendelson said video conveys more information quickly anyway and the company is seeing year on year declines in text. She also predicted virtual reality will grow and 360 video will be commonplace soon. All right. I have issues with this. Issue number one. Fine. I agree. Video will not leave us. Video is going to be here forever and it will just evolve with platforms and I get it. However, I don't want, if there is a long form subject on Facebook or anywhere else that I would like to read and I want to skip around, I don't know how to do that in the videos. I don't know what the video is made of unless they start giving us like chapter skipping type stuff or some other controls that let us have real-time control over that information like we do a written article. I can look at a glossary. I can jump to page five. I can do those sorts of things. You can scan. You can scan written text. There you go. You're looking for key words. You're looking for a paragraph that jumps out at you. All that kind of stuff. And I promise you this is not coming from Scott's getting old kind of place because I could see that argument. But I'm all about video and I think it's great. But until they give me ways to browse in a similar way, let me scan in a similar way. There's got to be some way to do it. I'm not saying it's impossible. But as it stands today, the way video works on Facebook, freaking forget it. It's going to have to change if this is going to come true. Yeah, man. I was looking for information on how to extract a stripped screw the other day with a screwdriver. And everything was video. And I'm like, well, at a certain point, I might want a video to show me exactly how they're doing it. But I want to read the descriptions first. I want to read lists of tools and I want to scan through that before I have to sit there and spend time waiting until they get in the video to the part where I'm like, okay, that's how they're doing it. Nope, that's not going to work for me. And then move on. It's not scannable. Right.  A guy's going to go hard. Thanks. Like and subscribe to my channel. And then you're going to have to listen to whatever that is on whatever bad mic he's got. And you're not sure if you've got a good quality one or not. Or for you, it's right. There's no like vetting of this stuff. Google, maybe I guess you could make the same argument about text. Some people don't write things very scannably or well. But yeah, good. But I would argue the video is not quite where we are with with text or Google. You have to invest more time to get into the video to find that out. You can see that in text pretty quickly. In some videos, they can go in and make, you know, bookmarks. They can say, All right, well, click here to jump ahead to whatever and that's working. That's functioning part of what YouTube lets people do. But it's completely up to the person making it. There's no quality standards. It's just kind of all over the map. So I maybe I agree with this, but it's in a future where video is much more malleable and much less. My house. What's the word? It's just it just can't be all over the place. The reason text works is because it's generally formatted in a way that we all see it and go for it. Not to mention Facebook is pushing video. So it's in their best interest to make it sound like that's the way the world's going. Of course, they're seeing more video uptake because they didn't have any video on the platform a few years ago. And it is certainly something that could happen in places with plentiful bandwidth. But you know, as Raj is experiencing right now, even here in the United States, we don't always have a bandwidth. Like, Raj, do you think Facebook being all video sounds like a good idea to you? Really. But then I'm not Facebook's target market, I don't think. I generally don't go in there unless I absolutely have to these days. And when I do, it's just a sea of what you see on America's Got Talent, or someone's latest hairstyling technique, or things that it's a vast way. The way it originally was with updates with LimeSync, it makes no sense for me to be in there. And when it was useful when I was a kid, being friends and family updated photos and things like that, that stuff is just lost in this sea of Buzzfeed, pretty much. And now you can get Buzzfeed videos, right, Scott? That's totally right. Well, now operating systems always mean new lists of old devices. Oh, sorry. New operating systems always means new lists of old devices that can't be upgraded. Apple's iOS 10 will no longer work with the following devices. Well, those with A5 chips, mainly. That means no new OS for iPads 1 through 3 and mini, that'd be the mini one, iPod Touch 5th Gen and older, and iPod 4S and older. iPhone 4S. What did I say? Oh, iPod, a minute, iPhone. iPhone 4S and older. And then, of course, Mac OS Sierra will not work on Macs from 2009 and before. Finally, there is a Mac in my house that will no longer take an upgrade. But I'm kind of sad about that. But hey, my wife uses it. She doesn't care. It doesn't matter. But yeah, this is the end of life for a few of these things, which have come up a lot lately. These end of life reports about who's going to support what and for how long. Yeah, I guess, you know, some people are saying, well, for mobile devices, four years isn't isn't too bad, which is also, again, a very sad thought, considering that, you know, people can still use Windows XP and run software on it, even if it's not supported, which I guess is true for this, you're just not going to be able to get the new operating system. So there's a certain point where it's like, well, you know, older operating system older laptops can't take Windows 8 or Windows 10 either. So at what point do we we cut it off? But yeah, this is the first time where I actually have an iPad that I still use as a prompter on a video camera that will not be able to get iOS 10. This will be the first operating system that that it can't get. So I feel like we're starting to use these devices a little longer than we used to. And yet these these cycles are not changing. Right. And they're not they're not it's not really that short of a amount of time, like iPads one through three, you're talking about 2010 to 2012, early 2012 or whatever it is. iPod touch stuff, all the all these things are indicating that, you know, we've got a good five, six years of use out of these things before you had to put them on that list. And that's true across the board. It can't all I mean, I'd love it if my Commodore 64 still got updates. But that's not going to happen, is it? And the open source, maybe. On the other hand, I'm speaking specifically about iOS when I'm complaining. Mac OS Sierra, seven years, that seems okay, especially because you'll still be able to use Mavericks on those 2009 laptops with security updates, just fine. Yeah, I remember when my PC was lucky to get me through two or three years. So I think seven is not bad. And you're still using it if it works. Music service Rhapsody is rebranding itself as Napster. Huh? Yes, Rhapsody acquired the name to Rhapsody when in Rhapsody, that's what they should have called it, acquired the name to Napster when Rhapsody acquired what was left of the company in 2011. The Verge notes that Rhapsody began using the Napster name and logo in Canada back in November. Maybe that was a test for this CEO Mike Davis confirmed that yes, layoffs are coming to Rhapsody, but he also said the service saw 35% growth and paid subscribers last year, finishing with three and a half million customers. Now Rhapsody was one of the first to the digital music market long before we had a chance to actually get a fair number of songs on platforms and DRM was still heavy long before Spotify stole the show for streaming music and they've just barely hung in there. But is digging up a name circa 1999, really the thing that's going to turn things around? I hope they listen to this show because as far as I'm concerned, Tom, you coined the better name. I would use a service called Rhapsody. That'd be far would you say Rhapsody? That's what I'd call it. Yeah, the service is called, was called Rhapsody. Yeah, I would use a service called Rhapsody and I would hope that it's filled but no, it's a weird thing. It is a weird thing with branding. I don't know that the cache is there still. Nobody thinks of in fact, in my own head, somebody who saw the coming of Napster, the height of it and then the going away of it. I still think of it as kind of a weird washed up brand because they did try to go legit shortly after things got ugly and illegal way. And when they did, nobody cared anymore. It's like it lost its edge. It's cool factor went away. So it's never had any real weight since it was this underground weirdness. And without that, I don't know what you've got here. Maybe Rhapsody is that desperate and they've just got to figure something out and maybe the test in Canada went well. I don't know. Yeah, maybe it did. Maybe I'm absolutely wrong. I mean, the opposite can be true too. The company that bought the Commodore name has struggled for years to recapture the belovedness of that name and translate it into sales. They've put out PCs that are in the original form factor and everything. They haven't got out of business, I guess. So maybe it's worked to a certain extent, but it's not like everybody's embracing Commodore again. And that is a name that everyone loved. I'm not sure that people loved the name Napster. It was sort of a brief moment in time. It would be like somebody starting up a new Instacart or DoorDash and calling it Cosmo and just being like, hey, remember the dot-com boom? Remember Cosmo? We're bringing it back. Or of Amazon called their grocery delivery service Webvan. Yeah, or of Squarespace renamed themselves GeoCities. Yeah, exactly. So I can't say it's a wrong thing. And it's certainly a nice logo. That's a recognizable name. And maybe that's all there after is, hey, when people are out there looking at services, Rhapsody just falls off the radar. People don't know about it, but boy, everybody knows that name Napster and maybe it's just got better SEO still. I don't know. Yeah, or enough time has gone by that maybe they can bring it back. Who knows? But good luck, guys. I think this is going to be a weird uphill battle and sad about those layoffs. Well, thanks to everyone who submits things on our subreddit. Submit your stories and vote on them at dailytechnewshow.reddit.com. Jason Phil, SP Sheridan, Loki Robert, Boba Fetish, 13 was in there today. Lots of folks letting us know cool tech stories we could talk about and bringing them to you. So even if you just get into the subreddit and follow it, maybe vote on a few stories you think are worth us talking about. That helps dailytechnewshow.reddit.com. That's a look at the top stories. All right. So E3 is winding down, which means I think we're day two of three or something like that. It's like all conferences, all the press conferences happen before the show even opens and everybody leaves before the show actually gets going. But this is not the first time that it has been preceded by questions of its relevancy. And I dug up a story from June 2012 on the LA Times by Alex Fam and place it in your mind, Scott. This was the same week that Knights of Amalur was released. Oh, man. So that's where it is at your pantheon of gaming history. Alex Fam wrote, E3, is it still relevant in a changing market? He noted that packaged video games were in decline and that mobile games and low-budget games are on the rise and people like Apple don't attend E3. And the question was, does anybody care anymore? Well, four years later, we can say that, sure, mobile games are still hot and companies like the Fallout are going to make a Fallout mobile game and that helps. And mobile games have not undermined E3. The decline of package sales is well documented by now, but downloadable content, digital sales still make it worth coming to E3. Now, May 17th of this year, Matthew Hayes writing for Cheek Code Central points out, well, companies can make their own announcements now. They can go direct to fans. Nintendo does that all the time. Sony has done it. Microsoft does it. Infinity Ward and DICE both revealed their biggest games of 2016 a month before E3. And so he's like, maybe the fact that you can go to direct to fans on Twitch now and go direct to fans on YouTube Live and Facebook Live means we don't need these press conferences. Raj, we've got you back. We've got video. We can see you. The internet is finally cooperating. What do you think? Like you've been in the midst of E3. Is it still relevant? I think it is, but I think it's relevant to different people for different reasons. For international media, such as myself, E3 is a huge opportunity for us to get all the developers of all the games in one place and have a chat to as many of them as we possibly can. That just isn't available all the time. Yes, there's things like Skype and Google Hangouts when they work and they can be useful for those international sort of interviews, but it's not the same as being in a room one-on-one with people who have spent the years of their lives putting together these massive titles that you want to go back and share with people all around the world. And without an event like E3, that just isn't really possible. That said, this year in particular with the removal of Activision and EA from the show, things seem quieter. On the show floor the last two days, to be honest, I spend a lot of time in sort of meeting rooms away from the show floor, but as I've been running through it, getting from meeting to meeting, it actually seemed a little bit easier. And if air conditioning is anything to go by, they completely miscaded for the number of people that were in the show yesterday because it was freezing cold. Really? It was, I don't know, a Fahrenheit, but I wanted a jacket over the top of my sweater. It was icy. And places like Comic-Con, it's usually the opposite. You're sweating when you're in a show floor. Exactly. I mean, you can't really put it down for that, exactly. But I think if the air conditioning was on track for an X amount of people, they definitely got that wrong. So today it was a lot more busy, but generally the second day is one of the busiest. And tomorrow things wind down a bit earlier, so I expect a lot of people in the morning. Here's a question. How do you account? Well, okay. So part of what makes me agree with the most recent article about relevancy, dealing with these companies being able to reach out directly, part of this is a money issue. Companies like EA, companies like Activision and in the past others have looked at this event and said, all right, well, we're spending whatever millions of dollars on booth space, on presentations on stage, like all of this all these costs have to be added up. These are huge companies, lots of deep pockets, so they can afford these things. But as things start to swing the other direction, where digital sales combine with the fact that they can interface with their users directly in a way that they couldn't in 10 years ago, isn't that just arguing for the value proposition and saying, well, is it even worth us spending $5 million on booth space plus another $3 million on our production on stage? Wouldn't it be better if we put that into direct interfacing with our fans or with whoever we need to interface with? That to me seems like at least one of the reasons why we're both seeing the exodus, but also wondering whether things are quote unquote relevant anymore. Do you agree with that? I think that we are tipping point where it becomes fiscally viable not to have a standard E3. And you can see what EA have done this year where they've shifted next door. They've literally gone from the LA Convention Center to LA Live right next door at the Staples Center. A couple of days earlier, they closed down after two days of being open to the general public, which is also different from E3. And it'll be interesting to see if that worked out for them or not, and I mean only the EA sex will know, but they have still especially bundled it with E3. They haven't moved it away to its own time of year or moved it to another location entirely. They've situated themselves right next to the conference, leading up to the conference when they know that they're going to have all the international media there as well. If they were to completely shut down and not have an event at all, that I think is an extremely telling sign. Activision have essentially pulled out, but EA and Activision are still at E3, they're just behind closed doors. So if they're not on the show floor, they've removed that cost from the budget sheets for the year. But EA, I would argue, probably spend more on what they've done this year. And then Activision, well, they're the ones laughing all the way to the bank. They did announce one of the biggest titles of the year called the Judy, months before E3. And we saw a lot of announcements leading up to E3 that we would probably normally would normally be reserved for those big ticket items during media briefings. And I think that was sort of a domino effect of people wanting to be first to the punch. They really wanted to be out and about and not be lost in the noise that is E3 a lot of the time. Most of the stuff that got announced ahead of time, our third parties is significant to me because when the third parties start to feel like they need to get the word out before, that usually means they're not sure what kind of stage time they're going to get. We don't know what they're going to show of Call of Duty during the Sony press conference or whichever conference they're going to be in. So since they're sort of beholden as third parties to these platform holders, if they're not doing their own stage show like Bethesda or EA, they I think they get more mileage by not leaking it early, but putting it out early and then letting some additional hype happen at E3, playables at E3, behind closed doors at E3, but you never hardly ever see these early leaks and or releases from the big platform holders themselves. So I think that's why the Sony conference seemed to be the most surprising. They weren't lifting the lid on any of that until showtime and that was mostly their first party stuff. And I think that really showed up ahead of time for third party. So it's just an interesting thing to see. You can kind of see patterns as to how people are dancing around this event and spending more time at more grassroots events like PACS and spending more money there and then pulling away from this larger quote unquote industry event. It's just it must be really interesting on the ground to kind of see that happen physically around you as you go over the next year. It's just a sort of change over the last four years and that's really made a difference to how I've approached E3 and how you start to see like last year was the first time they actually had a day where the public were involved and that to me says that industry so much isn't being drawn and they needed to bolster things to make it still relevant and now you see these party EA, the third party is moving away from the event. You know, I wouldn't be ringing a death knell for it but I think that the event itself does need to change and evolve and move with the times because the media and the attendees around it are shifting as is all media, moving the video, you know, these long form articles that a lot of people were at E3 to write previews and things like that are relevant in a lot of ways because of YouTubers and, you know, leaks and the video world that we live in like we were just talking about Facebook. We could take this whole conversation and you could just replace the words E3 with CES and everything would still apply except maybe, you know, some of the company names but remember that all these trade shows are just shows that are meant for people to strike business deals whether it's with retail or whether it's with developers, manufacturing, it's a way for everyone to get together and have meetings face to face and get some business done that even in the days of Hangouts in Skype is harder to do over the internet. It's just nicer to have everybody all in one place and all of these other things we're talking about are repurposing the conference like well since we're there there'll be a lot of media of attention so let's do an announcement. Let's catch some fan attention and that's what's getting changed when companies are starting to realize because of Apple in the mid-2000s saying well wait a minute a lot of times we can just do our direct to the fan announcement and we'll get more attention because we're not competing with everything else coming out of the conference. And E3 just thought of tried this a few years ago with the hotel jump thing which didn't really go down overly well. I think I don't know if that was, I wasn't in attendance that year but I don't know how it felt from a media perspective whether people really enjoyed that or not or if it was just because it was such a smaller show that the public has gotten used to these big announcements, these big press conferences and Sony literally did that this week. They put on a show for the media briefing, they had a full orchestra there, they had trailers, they weren't sitting there talking about financial earnings and things like they've done in years gone by and it's turned into entertainment for the sale of entertainment and it's interesting you mentioned like buyers before Tom because that's literally the majority of people that I've met this year are retail buyers, people coming out to make sure that they're buying the right thing for the business back home, not so much the media, they're still around and not so much the developers but the people around the sale and facilitating of this industry. I think that's something that a lot of these companies are struggling with. I think Sony's approach is really interesting which is to have a big spectacle but focus on games, just show games. They'll do a PlayStation VR announcement as a small element of that to give it a little spice and get a little news attention but they do most of their product announcements on their own outside of these conferences and Microsoft has taken to doing that a little bit too although this year they had a couple of major hardware announcements. So let us know what you think are these conferences, not just E3, Photokina, CBit, any of these conferences that you're interested in, should they just all go back to being trade shows or is that inevitable that there will always be enough immediate attention on them that somebody's going to want to take advantage of that. Let's get to our pick of the day. Jamie in Are You Sure It's Not August in British Columbia said, I wanted to recommend a game I heard on an old episode of TMS. It's probably a few years old now but it's an incredible game called Oceanhorn, essentially a Zelda link to the past clone with updated graphics. Visually the game is stunning and the gameplay mimics that of Zelda almost to a tee, for instance calling dungeons, collecting heart pieces, upgrading your gear. It's not cheap, $13 in Canada for iOS but it is all encompassing and doesn't serve any ads or in-app purchases and all updates are free. It's a really fun game for those who love the Zelda series. He is absolutely right, unless Jamie's a girl then she's also right. That's a really really great game and it's an homage to Zelda in a way that doesn't make it feel like a rip-off. It feels like a really really well made game that was inspired by many of the mechanics and many of the things that Zelda series has always done pretty well. So here here and also just a side note, more powerful tablets both on the Android and Apple side will, with like the metal technology they have in the later chips, that stuff makes water effects and environmental effects look incredible in that game. It looks as good as any console platformer you buy. So yeah, well done, great recommendation and it works with controllers, Bluetooth controllers so worth messing with. Send your picks to us folks, feedback at DailyTechNewShow.com. You can find more picks at DailyTechNewShow.com slash picks. In response to Jeremy's email yesterday about driverless car racing, several people including Mike from It's a Long Way from Everywhere, Perth, Western Australia wrote in to say, hey Formula E, the folks who do the electric car racing have supported a category for autonomous cars under the name Robo Race and the first race is planned for some time in the 2016 to 2017 Formula E season. So there you go Jeremy, wish granted, Formula E is already on top of it. That's awesome, I didn't know there was even such a thing. That's super cool. We had the story yesterday about Amazon being fined by the FAA for improper shipment of some corrosive, I think it was called liquid fire. It was like a drain-o type thing. Joe the pilot points out that the good news is the FAA rules allow the company to take half of their fine and devote it to training and bring people up to current certificate regulations. So let's say the FAA has a $350,000 fine, let's say Amazon bargains that down to $150,000, they could use $75,000 of that to fund Hazmat DG certification programs. Marlin wrote in and said he is a Hazmat material shipper with UPS and to become one they require a very complex two-day training that they must take every three years. He points out that if they're discovered not to comply with the regulations their Hazmat shipping privileges are suspended for a certain period of time. He said we've never had it happen but I think it's six months. He says I suppose Amazon has enough poll to maybe get those rules relaxed. I don't know. Finally though, Big Jim pointed out he has a theory as to maybe why this happened. It could have been a package going on to the wrong vehicle. Hey Tom, it's Big Jim. Regarding yesterday's show in Amazon with regard to Hazmat shipments, a couple quick points. Usually those penalties are based upon the weight of the item and the type of item it was. Obviously if you're shipping something of a nuclear material item the penalty goes up quite a bit. If you are shipping something flammable it's a different rate. So there's some factors that go into that. My guess is that this was just not placarded correctly and that this was probably originally supposed to go out of Amazon's facility via truck because we don't see any DOT penalties. My guess is if there was a true issue here with the Department of Transportation they would have also levied fines in addition to the FAA but that's just a guess. So again I think this was probably just a box that went out. It wasn't placarded correctly. Somebody put an airway bill on it when it should have had a truck bill on it and it went via air. Interesting. That's just my two cents. Thank you Big Jim. From Dayton, Ohio. I'm Big Jim. Your two cents as always. So there you go. Lots of people from different angles here bringing the expertise. I love that. Keep it coming folks. Feedback at DailyTechnewshow.com. Share your expertise with us. Well that is it for this episode. Raj, to you. Thank you for your persistence against the internet. We got there in the air. Yeah, yeah. That was great. I don't even know how you did it but you came back with flying colors there. That was fantastic. Thanks for having me. Always great once I'm here in LA to be on the show. It's nice to be half-awake and jet lagged versus 4am instead of a third of a week. Although I've got Pete now. I did Pete's the other day. Hey, where can people find more? What you're doing online? You can find most of it over at reconner.com.au or you can follow me on Twitter, RajDUTE or Instagram is where a lot of photos from the E3 are going up and video as well. So check it all out. Scott Johnson, of course. You can find once a week right here on DailyTechnewshow and all over the place at frogpants.com. What do you got going on? Probably, if you're not sick of me saying things about E3 today, then I got good news for you because I've got a lot of content where I talk a lot about E3. I have this little show called Boop B-O-O-P. It's over on the Frogpants Network at frogpants.com. And if you go there, you'll get live commentary, podcast files on the feed and play it on SoundCloud or however you want to get it, of myself, Patrick Beja, John Jagger, all watching live conferences and commentating as we were told about those announcements, tons and tons of those. And then after that, today, right after this show, I'll be posting a brand new episode where Patrick and I sum up the big stuff of the week. So if you want more E3 coverage, man, have I got you covered. So wherever you get your podcasts, it's the Boop Show, B-O-O-P, or just head on over to frogpants.com. Check it out there for everything else. Follow me at Scott Johnson on Twitter. We'd love to hear from you. Let us know what you want out of the show because you are our boss.  If you're willing to support the show, go ahead to dailytechnewshow.com.com slash support. We are entirely funded by our listeners. So if you're supporting us already, thank you very much, patreon.com slash DTNS as well. Programming note, if you watch in live tomorrow, we're doing the show a little early, 2 p.m. Eastern, 11 a.m. Pacific, 1800 UTC because I have to hit the road to head to our Hack 5 special. We're doing DTNS from the Hack 5 warehouse in San Francisco on Friday. So all of that is coming up. Our email address is feedback at dailytechnewshow.com. You can give us a call 51259Daily. Catch the show live Monday through Friday, 4.30 p.m. Eastern at alphageekradio.com and diamondclub.tv. Visit our website at dailytechnewshow.com. Back tomorrow early with Veronica Belmont. I'll do that. This show is part of the Frog Pants Network. Get more at frogpants.com. Silverblade says, what's that central time? I don't give central time because people in the central time zone are smart enough to do the conversion themselves. Some of those other time zones though. Raj, thanks again, man. It was like magic when you came back that last time. I reset the cable modem again and apparently a new network popped up that was 5G. It seemed to do the job. Something worked, at least. It was perfect timing too because the thing we needed you for the most was the e3 conversation and that was awesome. Yeah, no, no problems. It's really interesting down there this year. It's definitely changed. So, Roger, what do we got for names? Well, you're Tom, that's Scott, that's Raj. Oh, and Raj, I don't know what your schedule is like. If you need to head out of here, head out whenever you need to. Yeah, I've got like 10 minutes, so that's cool. Okay, yeah. Jump off whenever. Can you hear me? Yes, I can hear you, Roger. Can you hear me? Yes, I heard you. I got a bolt. I didn't realize it was almost time for our delayed hotline. Oh, right. Go Hotline Mondays on Wednesdays. I'm going to go with it. It will end the longest podcast day of my life. All right. Good work, man. There's Schrodinger's app. It's both deleted and not. Rapster, blame e3, gone in the flash. Zuckerberg's own. I don't want to do the list. I like Rapster. Let's do that. Rapster, okay. Yeah, with the h2. I didn't even think about the h. That's great. e3, Electronic Expo Exodus. That's funny. You know what? That's funny. e3 is one of those, you know, everything has an ebb and flow. Yeah, it's true. Eventually, it won't be an issue. I've always wondered why they never grouped it with other forms of Electronic Entertainment, like let's move in music and video and to a broader setting. Well, that's interesting because CES came out of the music show. e3 came out of CES. It would be like the circle is complete if music moved back into e3. Like, it could be the three e's would be video games, music and video movies, TV shows, movies. Well, they've got Samsung and T-Mobile there this year as well. Oh, that's interesting. For VR with Samsung? No, it's got a big Galaxy sign over it. I haven't been in there yet. I know Wayne was at the booth this morning. Yeah, in a way, they're going to have to do what Comic-Con has done, which is move away from strictly being about comics and moving more into a general pop culture. If you want to grow, that's what happens, which is why we get MTV with no music and sci-fi doing wrestling.  Oh, is that one? On sci-fi? Yeah, remember they had that show? He was like a... Oh, the Ghost Finder people? It was like, he would pick people out of the crowd and ask you questions. Oh, no, I never saw that. Did you have a family member that recently died? Oh, I'm trying to remember the name of that show, and I don't remember it. John is one or other. I'm hitting a J.  Let me ask you this, Raj. Was E3, at least on the floor, still male-heavy? Like, it was like 70% male? I've definitely noticed more women around, like attendees. It's just... It's a deluge of selfie sticks with cameras at the moment. Those are annoying. It's just... It's like every PR company's invited 100 YouTubers to do one media outlet. It probably was. Yeah, it's really interesting. But, you know, you see the old Star Wars there, like I bumped into Jeff Baccala the other day, Kanada, he did some video stuff with me the other day. So, yeah, it's just evolving. It's changing. So, and a lot of those YouTubers are women, so that could explain the numbers increased, I'd say. Yeah, I think the last E3 I went to was in 2010, but the last, like, old-style E3, or not the old style, but the one that everyone remembers with the booth beds and stuff was 2005, and I was at that one. It was crazy. Crazy. I did... I almost went deaf because everyone cranks everything so loud. Yeah, it's pretty loud. I don't think that's changed. It's pretty ridiculous. Yeah, and some impressive stands. So, like, 2K this year have a whole... this huge stand, which is the game set in like a Louisiana sort of style, New Orleans sort of thing. Yeah, I saw Derek Chen's Snapchats kind of touring around. It looked like a movie set. Yeah, it's incredible. And then they've got like a band playing, and you sort of go through it inside, and then they've got multiple theaters set up in... Oh, Mafia 3? Mafia 3, yeah. So, they've taken over EA's old spot, which was a gigantic sort of area. They've definitely lived up to that one. All right. Well, we're going to shut down the streams here. Thanks, everybody, for watching again. If you're watching live earlier tomorrow, 11 a.m. Pacific, 2 p.m. Eastern time, 1800 UTC. Talk to you tomorrow.


Medell recommends cleaning Samba 2 weekly for hygienic reasons. Only clean the outside of the device. Do not clean Samba 2 in or under water. Use a damp cloth to gently clean your audio processor. If necessary, use non-abrasive household soap together with a damp cloth. Prevent water from running into Samba 2 via the microphone openings or the battery compartment. Do not use aggressive cleaning agents. When not in use, Samba 2 should be kept in the case provided. To extend the battery life, you can remove the battery from Samba 2 or simply open the battery compartment when not in use. Please store the Samba 2 in a dry place and protect it from direct sunlight. If you live in a humid climate or perspire heavily, the audio processor should be placed in a drying kit instead of in the daily case when it is not worn.


So last time it did not demonstrate the easy graphics programs, particularly the execution. Some of you would have had an opportunity to do your labs on Monday and Tuesday, and you would have thought if you looked at the sample programs and their execution. But most of us wouldn't have it. So I will very quickly demonstrate the execution of the sample programs that we have seen. And additionally, we will look at a feature which does not naturally exist in these windows, namely blocking points. We will use this feature to plot a graph of silence, just one arbitrary function I have chosen. We will then discuss some additional features. Continue to discuss in every lecture that I mentioned last time, a few important aspects of CC class-class programming, which we have not specifically discussed in the class. You will of course discover many more as you proceed with your projects. Some important ones will help you in the CC class. In this context, we will be discussing a simplified way of array initialization when you declare arrays. We will be discussing a new type, an abstract type called enumerated type. So an enumerated type is important wherever you want to give names to values rather than just integer values, ordinary integer to be used. And then finally, we will discuss the free process of macros which are very useful. In fact, we have been using them implicitly without perhaps putting understanding. And finally, we will discuss a new class, an abstract class called strings. We have been handling strings so far in our course using arrays which are non-terminated. So you put characters in an array and at the end of those characters, you put a backslash 0 and that case designated as a character string. Now, ordinarily we could have used any convention that we wanted, backslash 0 is not necessary. But if backslash 0 is used, then see-in, see-out statements can be used in convention with such arrays and they are able to extract strings from an input string automatically inside the backslash 0 or alternatively a non-terminated string that we output directly by saying see-out or non-arranged. Now that's the feature which we will write in the loop. Additionally, all building functions of the C type string I believe involve arrays which are non-terminated strings and that is what we will be using so far. However, as we try to use the object-oriented features of string class class, we discover that we could describe additional data types in terms of abstract classes and we could build class library. We have seen this in our introductory explanation to object-oriented program. Very specifically, we will be discussing the string class. In the coming Friday lectures, we will look at how we can define our own class, our own operations, our own member functions, our own member data types, etc., which possibly can be used very effectively in the approach. So, first of all, the ease and retouch, if you recall, I have discussed programs such as sample 1, sample 2, etc. But we had not seen the demonstration because we could not connect this machine to the projector. I have got another projector today. It's a small one but I think you will be able to see what happens when we execute these programs. So first, at this small window is the graphic window. So if I institute a program such as sample 2 for example, you will recall that it was drawing a window. We just said, hello, ease and retouch. And put a string inside, we said namaste CS, one of our students. So when you execute it, this is what will happen. The terminal will sort of hand because the control goes to the ease and retouch window that has been drawn. So you have to get the cursor back onto this monitor with this terminal and press control C to end it. If you see the other program, this asks for the height and width of the window.  And let's say I want to generate some random point. So we call this program was generating random points. But the point was being approximated by a rectangle, a small rectangle as a point. And we were drawing these rectangles wherever the points were generated. So if say five points can be generated randomly. So if I say generate five points for example. So you will see these five points generated. I have added the label along with each point. I put this label. So this label says zero at nine comma two, one at so and so, two at this, three at this. So you will notice these small dots which are actually small rectangles are equal at the points. So that was one way of drawing points. Namely you draw a rectangle of a very small size. Yet we know for sure that this rectangle occupies much more than one pixel. In fact the number of pixels occupied on the screen will be equal to the number of pixels that come inside of it. This small dimension of height and width of that rectangle. So what else? There could be eight pixels, there could be sixteen pixels. What else? There will be spare number obviously. Which we want to figure out how to draw a point. Here is another program which was drawing lines of various types. So there are some black lines, there are some red lines. And the starting point and the end point of these lines. These are such that all the end points of the line, all the lines actually take some sort of a dot. So this is a kind of pattern or any kind of pattern that you can generate by drawing in number of lines. But what if you want to draw only this curve, not these lines. The curve is being given a shape because the lines that are drawn. Ideally when you plot a graph you just like to plot points. And that is what we need to see now. How do we do that? It is just double or more programs. This program draws various shapes. So again this program, the listing is there. We have greatly seen it. What this one does is it uses additional classes which have been defined in my view. So there was an internal shape class using which we drew the rectangle. There was a rendering line function. We could draw a line. But additionally we can draw squares, we can draw circles. And these are the possible features which will permit you to use ease and because to display whatever you wish to display. Now what we want to discuss is how do we draw a point in a better fashion. We saw that drawing a rectangle does give you a feeling of a point. It is not exactly a point. You would like to draw a point which is exactly one pixel wide. So let us look at this method. We try it once for the rectangle. We know how to render a line. Suppose we do a line from one point to itself. What do we draw? There is usually for a line there is a start point and an end point. And what the internal algorithm does is that it draws a series of points between the start point and end point. Such that it gives an inflation of a straight line. Now we know that the straight line is drawn by drawing a set of points. Therefore suppose we restrict this line to begin and end at the same point. We expect that one point should be drawn at that particular point. So this is an approximation that we can use. I have tried to use this for a graph. We draw this graph. We have to decide on the window size. We have to decide on x and y, x's. So let us say we stick to our 10-part rectangle as a circle. We would like to draw a diagonal window. Now we want to plot a graph of sin x. Any graph plotting should have usually x, x's and y-axis. Now we know the sign there. How it looks like. Sine x usually has positive values and negative values. And therefore it does not make sense to put our x, x's either at the top or at the bottom. We would like it somewhere in the center. Since it's a 10-part rectangle. So observe that this is 0 comma 0 and this is 10 comma 0 and this is 0 comma 10. This is the format of the endpoint of this window. We would like to draw an x, x's somewhere here. So let's say I have to draw an x, x's like this. Now what would be this? This can be done by drawing a line. And this line is to be drawn between each point. 0 comma 5 and 10 comma. So we got the x's like format for the x, x's if we draw. There should be draw y-axis. If we draw a graph with the left hand side border of the window itself, then x's may not be visible. So we might decide for example that we will remove a small distance, say a point bar or something and we would like to draw the y-axis like this. So this distance we will assume is let us say 0.1. All distances are in centimeters as depicted here. We still do not know what is the height and width of a pixel or what is the radius of a pixel. It is unknown. We in fact do not know what is the shape of a pixel. We know that this L by 10 window is directly made up as many pixels as that can be accommodated inside that thing. At this stage I would like to distinguish between what is known as vector graphics and what is known as raster graphics. I have indicated to you earlier the literals. Let me elaborate a bit further. Whenever we draw lines or rectangles or shapes of any kind, there we have some sort of a mathematical description of the shape. And we try to implement that mathematical description as an abstract class. Then such drawing is said to be vector drawing. Or raster drawing on the other hand plots individual pixels at designated positions. Now since there will be millions of pixels in whatever space that you have, plotting that is a time consuming effort. And that is why that kind of plotting is resorted to only when you are displaying a full color of a gray scale or a monochrome image which fits the entire screen and for which there is no functional description of where the points will be. The points come as pixel values from a digitizing. Observe that we had a sample program which took up an x3 f5 and displayed that image as it is. And that was called a bitmap. So there is a provision to display a bitmap. A bitmap essentially is a set of image pixel values stored in some kind of an array pressures. And in the low level graphic routine you just say here is an array containing pixel values. All pixels are covered in that window. Just display this entirely. In that case what the internal graphic routines do is that they pick up the pixels from the first row, the top row and keep plotting points than the next row and so on. They usually do not go plotting points arbitrarily. One here, one there, one there. So bitmap graphics which is closest to the last row graphics is titled as unit but is capable of plotting points at any place and to the left. Such bitmap graphics they cannot occupy the entire screen. As you shall see is a bitmap. The bitmap these two properties which are available can permit you to display small bitmaps. So you could create your own rectangular bitmaps say for example the face of a playing card or a face of a dice or any kind of shape that you want. You could draw it separately, digitize it and keep the pixels as you want with that bitmap. And then using these same windows last two graphics as a bitmap display, you could display that. However, the geometry in the graphics in the world is done using bitmap graphics. If you see all animations, modern animations against you will generally have some bitmaps which say represent some characters or features or something. Rest of it will be vectors.  In fact the animation goes to the extent of saying that if a ball is thrown and then it goes, hits the floor, jumps up, goes further etc. since that motion is dictated clearly by some physical laws and formulae. It is possible to incorporate those formulae in your model of graphics. And you can actually drive the motion of the ball exactly as per the physics does. That is the next high level things that you can do. Of course all these things are considered in a larger semester long course of graphics. What we are trying to do here is to understand just the basics of the graphics. So to conclude, you can have a last two graphics and a vector graphics. Most of the drawings that we do are vector graphics. But wherever we are putting bitmap images we typically use the last graphic feature in time. Coming back to this issue of plotting a sin x curve we have identified a window that we would like to draw. We have identified x axis and y axis dimensions. But this is not putting up. We still have to decide how the values of sin x will be plotted on this x and y axis. So let us do some more. This by the way is all paper work. And this is exactly what I meant when I said that whenever the problem is presented to you please don't start writing a program you say. A minimal paper work done here will almost always ensure that you get the program right in the first time without any thought. So we know for example our algorithm in our mind is now very clear. We first define a window which is deadlighted. Then we draw two lines. One vertical and one horizontal. We know the start point and end point of these lines. We call them x axis and y axis. So this much algorithm here was. Let us go further and say that now in this window I want to plot sin x. Now sin x as we know we have positive and negative values culminating into minus 1 and plus 1 respectively and we may match. How many sin values we would like to accommodate here? The best display would be available if we just restrict ourselves to display one cycle of cycle. Multiple cycles don't add any information to us because they are all limited to you. One particular cycle if you want to represent you will look something like this. Well this point will coincide with the end point. But effectively this is what we want to draw. Now we come back and examine how can we calculate sin of x given x. Suppose our formula is y is equal to sin x. What will be the values of x? The x will vary from let's say 0 over here I mean 0.1 but let me say 0 here and 10 here because it is 10. 10 units right whatever it is. Observe that I am still not counting in terms of pixels I don't care yet but the total distance over which I have to map x into sin x varies from 0 to 10. If I want to display one cycle of sin x in that 10 distance what should be the value of x here in terms of radians or angle? The angle is 360 degrees. This is 0 degrees, this is 90 degrees, this is 180 degrees, this is 360 degrees. The sin theta function which is part of the mathematics library will calculate sin theta if theta is given in radians So what it means is that 10 units for us is actually equivalent to 2 pi radians. So we say 2 pi radians is equal to 10. So we can calculate from this 1 radian will be equal to 10 divided by 2 pi and this will therefore be equal to 2 pi by 2. Oh sorry, this is the other way. How 10 units is equal to 2 pi? So 1 unit is equal to 2 pi by 10 or is equal to pi by pi. You will notice that when you write this and if two of you are discussing if I make a mistake you get corrected. But when you start writing a program directly at that time if you translate a formula in your mind this likelihood of error is greater. That is why as I said a whole lot of people will have to start writing before. Having done this now I will exactly what I have to do. I have to vary x from 0 to 10 in some steps. I may arbitrarily decide 0.001 in just a second. After all what any value of x I can calculate and at x I have to plot a point. I already know how to plot a point. I plot a point by saying just draw a line from that point to itself. I still need to take one more decision. This y will be an absolute value. So why will it be between what? Between minus 1 and plus 1. This is the range of values that y will have. But I want this plus 1 to coincide with what quality value minus 1 to coincide with what quality value. Well I am quoting you to a 10 by 10 term. I will obviously not like to get this side go all the way up here. Leaving some space around is what I don't like. Since this line is plotted at 5 minutes this is 0.5 in here. What I like to do is take 3 units on the top and you will set the bottom as the boundary range. So let us say I arbitrarily decide that I want to box the sine curve inside these two boundaries. And that means the ideal value that should be represented should be 2 units here. And the lowest value of minus 1 represented should be 8 units. So that means I want to translate this sine x curve which is between minus 1 and plus 1. I can multiply that value of y by 3 let us say. Then I will get the value between minus 3 and plus 2. And if I add 2 to 8, sorry 5 to 8 then I will get between 2 and 8. So this is roughly what I must do in that much. That means given x I have calculated x correctly because whatever is the value of x is between 0 and 10. I am deciding with myself. Whatever is the value of y I will map it between 2 and 8 so that I get a sine curve problem. So the sample 4 which was drawn in lines I have modified it to call it sample 4 dot, sample 4, 8 or something. Here I use e-sentimental type C as a standard radius for e-sentimental. Additionally I say C map because I need to calculate sine theta, sine. I define a 10 by 10 window. The title I give it is graph for sine x. I can give any title. Then I open that window. Check whether the window is properly opened or not. Define 14 point variables x and y to represent the two values that I have calculated. And let us say that to convert the value of theta into e-s. I have to plot y axis and x axis. So observe what I am doing. I am plotting it from a position 0.1, 0.1 to 0.1, 10 and 0.1, 5 to 10, 5. So basically I am leaving something aside on the left-hand side of the border of that window. Now I calculate the value of radius which is 5 by 5 because 2 pi should be equal to 10. So therefore I have put it like this. Now observe the iterative way in which I am going to generate the y. I am changing x from 0 to less than 10. Instead of 0.001, how many distinct values x will have in this process? 100,000, 10,000. 10,000. So basically in that small n-centimeter by n-centimeter window I am asking it to generate 10,000 points. I think points will come about because I do not know the distinct number of pixels. But there is no harm in trying. At the most what will happen is some pixel will get superimposed on some previous pixel. Why value will be calculated differently? And the y coordinate of the pixel may line it up into a new pixel rather than old pixel. We have no clue on the dimension, physical dimension at this point. The point is I do not care. As now there are points which are close together. Ultimately I know that when I translate this x, not this x into sin x, I should get a function given inside. So I have this iteration and for each value of x, I calculate sin of x for which I convert x into radians as appropriate between minus 1 and plus 1. So I scale it up to make it between minus c and plus 3 as we discussed. And now I do this famous plotting a point by doing a line. So I am saying the position that has been given. The x position is displaced by point 1 because really my x axis is starting from point 1. If I wanted I could have started this in that old new pixel or I could have modified it there. It is my choice here. The y position is displaced by point 1. Why? Because I want the entire sin x from minus c to plus 3 to come between plus 2 and plus 8. And that is why I displaced it by point. So when I render this line from this position to this position in let's say blue color, I expect to get a sin x plot. So we have just seen the indicator coming quite close. And you can see that the result is as expected. Why is it happening like that? Why is it possible? This is a sin x curve but unfortunately it starts at 180 degrees and now 0 degrees. It is going to the negative side. So the positive side is coming at the bottom just because of the graphic part. Anyway what I would like to do is I will circle 4 right out CPP also I will put it on the border. Now you can do the following as a trial exercise. The x axis and y axis has no neighbor. It doesn't say this is x this is y. Secondly it is bound to a 10 by 10 mechanism. Why should I do that? Depending upon the size of the window, I should be able to determine the start point and end point for my x. Similarly I should be able to determine that just getting that I require. Suppose it was a 15 by 15 mechanism or a 20 by 20 mechanism. Then my sin x curve unfortunately will be still not like that because it is written in absolute terms. And that is another reason I am trying to carry that whenever you are solving a problem, don't try to think that the specifications given in the problem in terms of values alone try to generalize them as much as possible so that the same program can work for multiple or different data points that you have. A larger problem which I believe some batches have been created as a project is a general graph plot where I want to plot not only sin x. I will say I want to plot cos x. I will say I want to plot something else. I should be able to take that function. And if I have a function definition myself, I will generate it. But there the harder problem is determine the bounds, determine the portion that you want to display and to ensure that the displayed portion occurs within the window that you have. Ok, next we look at certain features which were complicated from expressive discussion in the class but these are important features. We have been declaring arrays and generally the array initialization has been done to either include statement that you provide to calculus of the initialization of the values of the array elements or we assign them in an iterative fashion typically we don't want to assign them, let's say zero or any fixed class. In general it is a painful process to initialize arrays. C++ provides a simpler mechanism that when you define an array you could declare its initials in a way. And for example the first declaration here where I am trying to put the evaluation process called let's say C++. So we have five marks for business, five marks for assignment, twenty marks for mid state, thirty-five marks for project and thirty-five marks for it. So let's say I want to put this maximum marks for different evaluation and I could initialize an array. I could declare a car array initializing let's say model. I could declare a float array. If I don't define the size of an array which is ordinarily candidate but if I initializing it, the C++ compiler automatically takes the size to be equal to the number of elements that you provide. So if I define one, two and three elements that has size will be taken as if in all marks I give only three values that are not fine although I declare the size to be fine. Then if it's an integral type the value zero will be automatically put into the remaining value. And that feature we can do if we wish to initialize an array to all zero elements I can simply say opening, coming back, closing them in there. Without giving in there. The implication is that I don't give any value. All values are initialized to zero. Unspecified value. Value will be given in all. It is not possible to specify a value of 304 elements and let others be zero. In this case you have to express it which says he was zero for first and second elements and also otherwise that will not. So this is a simplification. You can use the same process for initializing two dimensional arrays, three dimensional arrays and you can put either turning values within one turning value to define individual dimensions or you can specify the values as a continuous sequence in a row major order. If you have multi-dimensional arrays the first row is specified with the second row and the third row is set. Here you can do abstract type which is quite useful for making your program meaningfully readable. It has no other value. Suppose I want to associate names with values and then define an enumeration type with general formatting. I use a tag which is the name. Some identifiers that I choose. These are followed by name, name, name, name, et cetera. List of names. The entire list of names which is explicitly listed that is why it is called enumeration. Enumeration is counting each one explicitly. So when I use this these names become the values for that type. For example I declare a type one month type and let us say I need values like jant, bar, apr, et cetera in a short form or I can give general order. Now these names are the values for the type one month. Obviously internally these names do not mean anything. Some value will have to be associated. So C++ chooses a convention that the first value will be considered to be equal to 0 the second equal to 1 or equal to 2 et cetera. In short, I am actually revaming constant 0, 1, 2, 3, 4, 5, 6 in one particular way for one type. I can define another type in which 0, 1, 2, 3 will get associated with a different name. Since I am using names, each of these names must be unique in the entire program. What it means is I cannot use these names as variable names elsewhere. Now can I use the type definition name month itself as a variable name. Now just as int is a type, root is a type, any of month is a type. And I can declare later any of month says date of birth month. I have date of birth in which I have date, month and year in terms of numbers. I will have to convert them to names which are being put and therefore I can say dop month is equal to Oc or October. Now October is one of the values. Please remember that all these names that I enumerate have a numerical value associated with it and therefore essentially they have integer type value. I do not use them for see in and see out in a normal cell. I will not get Oc to print out if I say see out dop month. It is interesting to see what happens when you say see out dop month. Can you do see in experiment and find out? In general input and output has to be in terms of integer now. But we know what are the integer values associated with these names and therefore we can do it out. It is not necessary that only sequential integer value 0, 1, 2, 3, 4 be associated with these names. You can associate values in a different order. You can associate a specified value or a particular name inside at least that you get. In which case the subsequent names get one value higher than what was prescribed last. Here is an example of that kind of usage. Suppose I define colors. I want to give names not colors. Notice that this is not very understanding. In the case of windows we already see that colors are human names. So when we saw the silenced plotting or drawing lines, drawings, listing, etc. We used to say blue, red, black. What are these? These are names which are defined as an enumerated type or colors. These are symbols as a very specific set of things for seven colors and those seven colors is what you can do in the drawing. Similarly, if I wanted I could define an enumerated set of colors as red, blue, black, yellow, etc. But I can say red equal to 3. If I say red equal to 3, the value associated with the name red will be 3. The next value associated with blue will be 4. The next value associated with black will be 5. Till I redefine something. I can redefine this value for example yellow equal to 0. In which case yellow will be set to 0. The next one pink will be 1. Green will be ordinary 2. But if I say green equal to 4, 4 will be associated with 3. It is permitted to associate the same numerical value with different names. That is your choice.  This is the first name. In exactly which way you use it is your choice or style of color. Just remember it does not add to any computational operations of any type. The names only restrict you that you cannot use these names as variable names or error names or engineers later in your program. However, the programs may become more unique. Consider this. If I was drawing a rectangle with a color 4, I would not know what that color is. Or the color 7. Alternatively, if I decide to draw a rectangle with red color, I will have to know what that value already is. And that is why both for writing programs and for reading and understanding programs, it becomes far more meaningful if I use an appropriate and enumerated type and use the enumerated names wherever those values are given. So, consequently the parameters which are past food, later light or shapes like rectangle, etc. are actually the same sort of colors. But what gets passed internally and new is the corresponding value. Everything that we write at the beginning of our program which starts with a hash sign. So, hash into or hash defined. These are direct keys for the pre-processing. To recapitulate, ordinarily when I say c++, my cloud dot cpt, my program is compiled. But before compilation even begins, c++ still does what is known as pre-processing. Effectively it takes all the text files that you have written in your cloud dot cpt file and rearranges them as per the direct keys given by you. These direct keys usually cause some portions of some of your lines to be replaced by something else or something here. The hash into pre-processing command we have already seen, it will take a source code from some other file in your name and include it physically inside your code. So it is effectively a massive editor is working de facto on the program that you submit to c++ and that editor will replace lines, change lines, insert lines, etc. and create another source file which actually gets compiled. That is what is pre-processing. The pre-processing ordinarily says input this file, input that file, etc. in which case the text from those files gets included and the portion that comes in hash input. But there is an additional facility called pre-processing macro or dialectical macro. These are defined symbolic constants. I can choose a particular macro name and write a sequence of tokens. A token is any simple or set of symbols. So whatever I write here is one sequence. The effective meaning is that in my program if anywhere I use this macro name, then this macro name will be replaced completely lock-stopped by the list of tokens that I have used. So here is an example. And I have said Maxify and my MaxSize is 45,000. In field data MaxSize is a statement that I made in my program. Before this program is compiled, the c++ pre-processing will look at that macro and will replace the text before the compilation starts to make this field data 45,000. So this MaxData word is physically replaced by whatever string you have written. So that becomes 45,000. I will use this for example. Suppose I have five arrays to be declared. All of which have a size related to my problem size. And let's say the problem that is given to me is 45,000 size problem. So I will declare all those five arrays with 45,000. Now, if let me want to exchange this problem to say 50,000 lock. And let's say critical of memory. So 50,000 can be solved. But I will declare all my arrays with 45,000. In such a case what I will do is I will simply replace one defined statement with the top and MaxSize 45,000 and simply recompile my macro. It is not uncommon to have such a macro included or in a separately edited file. Call it some dot edge file. You have my header dot edge. And in my header dot edge you can define MaxSize 1, MaxSize 2, MaxSize 3, etc. And in your main program you declare all other dimensions, etc. using those size names. So when you say have improved my whatever dot edge. All these sizes will get included. Then the macro will recursively work on those definitions and edit your entire program again to replace those macros with appropriate statement. So this simplifies generalization of your program. This is not the only thing. Actually you are familiar with function definitions. I could write a single line function. There is also a motion of an inline function. Those of you who are interested can read that up. But essentially we know the function definition. A function definition called absolute value will calculate the absolute value of a variable. Whether it is negative it will calculate because minus of that value this positive will return that value. That's how we calculate absolute value. Suppose I don't want to use the mathematical function. Then I can calculate this absolute value by the statement. If x is positive the value is x. If x is negative the value is minus x. It is as simple as that. But suppose I have to do this absolute calculation really time. Now either I use a function or I can use a macro which is a parameter. So I can have parameter like that. Here I define a macro name. Then immediately followed by a motion bracket and write the same of parameters. And then I write the list of tokens as you saw. The list of tokens obviously will have some place one of the parameters appear. Now what the pre-processor does is it scans your entire text. And wherever this macro name appears followed by a bracket of actual parameters. It will take those actual parameters and it will replace that entire line by this token string. But replacing every occurrence of that parameter inside this list by the actual parameter that we have. This makes easy for you to write your own simple code which gets expanded automatically without having to write anything. For example suppose I have defined absolute x as x greater than or equal to 0 question mark. I am using a question mark. If the value of x is positive x is assigned as a result. If the value of x is negative minus x is assigned as a result. If I write this macro and they go in my program. I said there is equal to absolute y or n is equal to absolute x. Anyway in macro. Then automatically the pre-processor before giving the program some confirmation will replace this entire line. There is equal to y greater than or equal to 0 question mark y to less minus. Notice that this kind of writing will permit you to find out an absolute value of either an integer or a floating point number. Because that actual type of variables etc. don't enter into picture. It's a pure editor. So if y and z they are floating point this will be done as the floating point. If they were integers it will be done as the floating point. And it will not be an absolute. This is an example. You can write any complex formula like that. But please note that this replacement is replacement that the text will have. There is no semantic analysis being done. There is no validity for operations etc. being checked. That will be done by the compiler. So if you get a compiler killer saying that there is some problem with compiler by greater than or equal to 0. You should not feel worried whereas this comes from. Because I am not using this statement in my program. I use this statement. But effectively whenever you use this statement. It is as if you are using this statement with the parametrization. It's an extremely useful facility. I have many professional programmers who do that to define macro. So in shorter macros can be defined both with fixed token set which will be replaced in whatever text you have written. Or it will be parametrized in this way. You have to remember one thing. The bracket must come immediately after the macro. Suppose I give a space in between macro and the bracket. What could happen? Suppose I said define absolute brand. Open bracket x something something. You know what will happen? It will take the pre-processor. It will take the macro name to be absolute without any parameter. And it will take opening bracket x closing bracket as the first over. So independent of what you write. The moment you write z is equal to absolute in bracket y. Actually its expansion will be z is equal to in bracket x this this this. And then finally in bracket y. x does not exist in your program. You have to be very careful when you give parameterized macros. The beginning of the parameter bracket will be bracket. Must not have any brand between it and the bracket. Otherwise that bracket should be treated as a token. You discuss the string class and some simple operations. That happens with the string class. As I said the traditional handling of strings in C++ has been that I artificially create a baxar as 0 at the end of the set of characters which are stored in an array. And I take that as a string. And all my operations are centered around using that thing. However, then I have a full fledged object oriented parameter at my disposal. It is possible for me to define additional classes. Additional functionality for those classes. I define them in terms of additional data types or exact data types. One example of what has been provided by the C++ library is called the string library. So when it is library it uses its own representational string. It may use an array of baxar as 0 etc. But we are not privy to how the string is internally driven. However, it permits us to define a string of characters and it permits us to define several operations on strings as objects. So here is an example. I have to say include string. Please note this is different from saying include C string. The name C string is what we were including so far to use functions like string length etc etc.  What is known as the classic C style character string represented by arrays with baxar as 0 here. Whereas string library is pure nature string. It is this string library which permits us to use strings as objects and perform operations on those objects using operations that have been defined in this class which is different from the native operations or the C string library objects. So here are the definitions of string variable. I can simply say string is equal to str1, str. When I say str1 is equal to computer I am assigning a string to this variable. Note that this is not an array of character. This is a variable of type string. In another variable of type string I can simply say str2 is equal to program. Since these are type variables of the appropriate type the operators including the string operators C in and C out are coordinated to operate upon this. It is part of the string library. So when I say C out string1, black string2 I will get some people black programming which is written out of the C out. What is the most crucial operation that I would like to do on these strings? I will like to concatenate these strings. So I have first string last string. I will prepare a single string which includes first string and last string more. How do I do this concatenation in C type of strings? The way I do it is I will say the first string from the first string array when I say 1 by 1 then I reach the tax line signal of the first string. I stop there and I start the second string till I reach the tax line signal of the second string. So this is what I will be able to do. Deploying two different follow-ups copying these things, maintaining index for the third array, simply etc. However, in an object-oriented paradigm if I have a class of strings and the class has also defined certain operations called concatenation. I can do that all. The standard C++ string class library uses the plus symbol as a concatenation of it. It is added to value. Here the interpretation is I am actually adding second string to first string. It is not in terms of mathematical addition but tax-tap was in the second string in front of the first string. And therefore the plus symbol you say is just defined by the design itself. I can define this symbol to be in this object. They have used the first object. Whenever you are doing something additional to whatever the symbol much only means then that is probably str1 str2 and a first string str3. I assigned str1 as to say in my book str3 is equal to str1 plus str3. So now the automatic addition is in there. The plus symbol is used as an overloaded object. That is why the title says overloaded class. But this will probably concatenate these two strings in a variable called str3. I can actually output that variable. And so clearly when I output that variable the output that I will get will have a low bar, low blank say str3 equal to this str3 is equal to str1 plus a string containing 100 plus s because I can concatenate a string constant so I know the string there is. So a string constant in short is anything that appears on the table top. It will come from a single guide number. It's a string. Some of the things that we can do the richness of these things some of these actions we proceed further. But we will see how we ourselves in general is expected to extensively use the system piece that we have done in the program in terms of classes. In fact, let's say we are modeling that we are modeling that we are modeling the entity class in the modeling paradigm and in the program we actually neglect a class. In the entity model we describe only the attributes of the class in C plus class we go one step forward. The model we describe are actually groups which are known as data elements or member elements of the class but you additionally describe the functions which will operate and the functions which can be able to do some passive processing between class. We should study that in a class in class.


2017 contradictory any people anti farmer anti labour policies. In this special segment of reprotest we will bring you round up of these protests that have taken place in 2017. 2017 saw one year of the Ona lynching. To mark anniversary of the Ona lynching team led by Djignesh Mewani took out a Yatra throughout Shravanab. There was just one demand of the Yatra. गाई की पुच तुम रख हो, हमें हमारी जमीं दू, which means that keep the tail of the cow and give us our land. तो गवचर, गवर्वेट, वेस्लें, सारी जमीं अदानी, आम्मानी, एस्सार, वेदान ता पुसको, आम्बुजा, निर्भा, लार्सनन, तुबरो, सारी कम्प्ने कोस जमीं कावंटन हुजाता है. लेकिन दली तो को एक इच नहीं जमीं कावंटन नहीं हो रहा है. इक वो यह थी आब में था, वेकिन लेकिन् रहा है, आप वाई अगर, बरना तुप्दीन उन्गाँँँँँँँँँ, वेनद्गुँँँँँँँँँँ, वस सेच देखान भी संगी अगर्वा को वीगी नहीं तुब, at the Parliament Street in November. More than 3 lakh workers marched to Delhi raising various demands which included minimum wage which is Rs 18,000 per month, pension for all and put an end to all these anti-labour policies. The agrarian crisis has been deepening year by year. There have been various farmer suicides in 2017. The presentry is in crisis. Thousands of farmers marched to Delhi raising their concerns on the same issues. They had just two demands. One is the minimum support price and complete loan waiver. The massive Kisan jatha marched to the Parliament Street in Delhi for two days in November. 2017 saw 10 years of the pride parade. On one hand, when article 377 is being discussed in the Supreme Court, government is bringing a bill which will marginalise a major section of the transgender community. To protest against this, many of the activists, civil society groups and people from transgender community organised a protest march in Delhi. Which was also extensively covered by newspaper. Apart from these protests, there were many which took place in different parts of the country. One was against murder of Gauri Lankesh in Bangalore. Municipal workers protest in Andhra Pradesh. Women's convention in Delhi. The same is happening in the Zahreela district. The same is happening in the Ansari district. The same is happening in Dabholkar district. Many are attacking the district. The same is happening in Gauri district. So if we catch the murderers of those women, then we will be able to find out what the people had ordered in the past. Because there is one power in this country which makes the situation better. But when the situation becomes better, it never takes its responsibility. These movements in 2017 give us a hope that injustice can be fought. In 2018, these struggles might intensify and news click will be continuously covering these movements. To know more about them, visit our website newsclick.in and our Facebook page. And please feel free to join any of these movements that you can relate to. That's all the time for this week. Hope to see you in the new year. Thank you.


The last couple of years have been really generous for the mobile gamer. While laptops may never be as powerful as their desktop relatives, the competition in the hardware industry has made them a really good option for gaming. ASUS seems to be really on it as they pushed one of its best-selling gaming notebooks to the shelves really early on. And although the ROG Strix G17 G713R doesn't look particularly different on the outside, there's a real beast hiding inside. Yes, we're talking about the RTX 3080 Ti with 150 watts of TGP. But before checking out the performance, let's take a quick look at the construction. Depending on the configuration, the laptop weighs 2.5 or 2.8 kilos. This is because of the extra heat pipes inside the more powerful setups. The G17's keyboard can be paired with a per-key RGB backlight, controllable through the Aura app. The unit is good for gaming and features a set of dedicated buttons for media control, as well as an Armory crate shortcut. Regarding the ports, the left side houses two full-sized USB ports and an audio jack. The majority of the I.O. is located on the back. There you can see the charging plug, a 2.5 gigabit LAN port, HDMI 2.0B supporting 4K at 60Hz plus HDR, and two USB Type-C 3.2 Gen2 ports. One of them supports power delivery, DisplayPort output, and G-Sync. The ROG Strix G17 comes with two DDR5 RAM slots, which are 50% faster in writing data compared to the DDR4 RAM in last year's model. As for the storage, there are two M.2 PCIe X4 slots, which support the super-fast Gen4 SSDs. This laptop can be bought with a 144Hz 1080p panel, a 360Hz one, or a 240Hz 1440p IPS display. Since we chose to test the 1440p variant in the G15 review, now we've got the 360Hz variant. Needless to say, it has crazy quick pixel response times, as well as a good contrast ratio and comfortable viewing angles. It covers 96% of sRGB, resulting in attractive visuals, especially for gaming. The battery life of this laptop is outstanding. We got about 12 hours of web browsing, or nearly 10 hours of video playback on a single charge from the 90Wh battery pack. Here the top tier configuration includes a Ryzen 9 6900HX and an RTX 3080 Ti with 16GB of memory and 150W of TGP. Yes, ASUS has managed to bump the TGP by 20W compared with the G713 2021 model. We'll show you how in a minute. Only 2 per 100 people watching this video are subscribers. If you decide to just start following us, we'll be able to reinvest more in our laboratory, thus making even more helpful videos for you. Thank you, you're awesome. No, because by eating rotting corpses they prevent epidemics. Our device is equipped with a 140W version of the RTX 3060. While being relatively affordable, it still manages to run the Witcher 3 at around 100FPS at ultra settings. Battlefield V, on the other hand, runs comfortably at max settings with about 150FPS at 1080p. Thankfully, the keyboard is well insulated and only reaches 39 degrees after more than 30 minutes of gameplay. This is thanks to the upgraded ArcFlow fans with 84 blades, and of course, not without the help of the liquid metal compound used for cooling the CPU. Yes, the ROG Strix G17 might not have a camera above its display, but we trade it for the MUX switch any day. The latter allows your graphics card to communicate directly with the screen, resulting in higher FPS and full performance extraction from the hardware. And you won't find it in many gaming notebooks. After all, performance is the most important thing you need as a gamer. Oh yeah, and you can watch that performance on a 360Hz display, which is so fast that your eyes can't keep up. Of course, we've done a lot more tests, and you can check out all the results in our in-depth review on laptopmedia.com. You'll find the link in the description below the video.