Hey, hey, how are you? Good. Good. So please introduce yourself. Yeah, so I'm Ryan Sternlicht. I Am here at display week 2023 Yeah, and it's been a pretty fun conference so far and you just did a video together. Hi. Yeah, who are you? Hi? I'm Brad. I'm known as satellites Bradley on YouTube and Twitter and junk and just got liked by Elon Musk is today on Twitter Yeah, he liked my tweet and there was a bunch of bots forming that tweet, but it was a pretty cool Tweet from the display week. Yeah. Yeah, so let's let's let's go stand up here. We had the press room right now. Yeah, and Right down there is a exhibition Yeah, yeah, we get to look over all the people you like the master of the display world right now What what are your highlights? Oh, man. Well, my favorite thing was definitely the 1.3 inch 4k by almost 4k micro Olan at the OE Amazing I mean, I I've been doing VR stuff for seven years But that was like the closest in the best the best of the best the best when you were looking through that You knew in that moment you are experiencing pure future like I Always in like very picky. I'm always looking for the screen door effect and like the aliasing and I couldn't It was kind of perfect. Yeah, it was and it's the view the viewing the what's called angle what you call it the Field of view. It's pretty good. Pretty wide. Yeah for me I Really liked the BOE stuff as well But also over in the eye zone in the back which eye zone is always my favorite place to check out first Because that's where a lot of the hidden gems end up before they become big is a Really really large field of view pancake optic Platform Which uses four panels and you remember the company? Hyper vision. Yeah, they they're really cool as that the first time I've tried a four panel VR headset prototype since Panasonic's and at CES 2017 and this is massively better this has Because this is using pancake optics instead of Fresnel lenses. It's a much better Look for the colors better. There's much less fringing Almost no god rays and they were actually able to blend between the angles to a level I Kind of didn't think was possible For quite a while. They there's still a ever-so-slight Issue and that might be actually more the panels then the actual lenses simply But that as well as the laser Backlight Which is really cool if You if I could build that set using stuff on the floor right now, it would be get the laser backlights Put that behind BOE's 4k by 4k field sequential LCD which runs at 480 Hertz and then put that platform in the High field of view set up because that would be 8k per eye Field of view at 270 by about 90 It would be HDR as all heck And pretty eye brightness Though I am guessing the pancake optics would still get it down to probably around a thousand nits if it has a 10% transmission rate How high do we need to get to to imitate real life in VR?  So 10,000 nits. Yeah Looking at the Sun directly is like Orders of magnitude which is just the JPD booth Okay. Yeah, some of these micro displays talking about millions of nits. Yeah, right Yeah, they're so like Over at plain nitride who do quantum dot micro LED And micro led displays Their current AR one that's a hundred fifty thousand nits like they I you actually Don't look at it directly Normally with a camera they put a filter that blocks around 90% of its light Otherwise you have the sensor I'd have to buy another one or or it's more that The video it in real time without that you have to change your ISO on and frame rate on a Phone or camera so far because when you move away, everything else is pitch black but that's what you need for The brightness to come through once you put it through optics and put it near eye, but what's the resolution of the real life? Yeah, people usually say like 60 pixels per degree is where you're like actually feeling real There's so many factors like we're you know, we're getting excited about resolution for that but there's still like he was saying earlier Color, HDR color, especially, you know AR's got a lot of problems too. Like we were talking about what was the nits of that micro led? 150,000 yeah, and it's like they have a Headset and still they're like yeah if we if you shine a light on the other side of this this gone you like Yeah, it's hard. They I know plain I tried had an AR one There's a the people who do the laser backlight that's 10,000 nits, but Currently they know they're working on higher, but they have an AR one and the problem with lasers usually is it's collimated so it's That when you project it on most displays causes an issue a speckle They actually there are a few tricks though, and they actually have a really good implementation of Getting rid of the speckle. They actually have a demo a switchable demo showing Before they run their stuff and after I can't remember if it's software or hardware I think it might actually be both but Getting rid of speckle solves this you with using a collimated backlight And since it's going through optics and not directly in your eye you get rid of some of the other dangers as well because once it's reflected or goes through optics it will be not as collimated as it was I've Tried direct in eye projection, and I was I cried within three seconds of looking Gorgeous, I'd like to cry it's been a long time So how about some other highlights? So what do you think about the light fields? so I Like feels are neat. I'm more of like a VR guy like I feel like I can replicate a lot of the Light well, I have to be careful. I say because so there's a company here called cereal who does like actual light fields in VR They've been more pivoting toward AR stuff, which you know, it's it's okay This company yeah, yeah, but they did have a VR demo as well where they can actually tweak the light field I know small FOV to Solve stuff like myopia hyperopia Estigmatism and also give you virgins accommodation Conflict where if you look at things up close they can kind of tweak the light field to be able to like see your hand close and blur the background and give you different levels of death, which is a whole And that's a whole other problem. We don't have for XR like we have all these little cues that we don't have for real life That we kind of need all these things together and You know even talking about the brightness thing is people always are like well at 150,000 nits You're gonna get blinded. Well once they put that in a wave guy That's like less than 1% of all that light is just gonna be Disappeared and if you want to like move your head around you probably want to have a low-duty cycle So 10% of that 1% is like actually reaching your eyes. It's Ridiculous of all the steps that we're going but You know, so have you seen the new apple Have you put it on your YouTube yet? No, I mean, I think it's gonna be a big deal and stuff Oh, I think it will be absolutely like I people like I talked to always feel like that, you know I mean both of us have been in this industry for a while, but people feel like Up until now it's gonna be the before Apple time and the after Apple time Always wait for Apple. I don't know why it's because there's so much Amazing innovation. There's no need to wait for Apple to do stuff or I they wait until it's Ready to agree like same with ready to make money with yeah pretty much But also that it's scalable see the problem with a lot of this stuff on the floor here is you're still looking at 3 plus years before scalability the papers they talk about here That's 10 15 years like I I do a lot of research more where I need to read through a lot of papers on this stuff and The stuff in like 10 15 years is going to be widely different, but it's also getting a lot faster like the Porotech who make a direct emission Display that each LED can change its wavelength, so you don't need sub pixels They had a they were in the isone last year They had a booth that was about Two foot by four foot table this year. They have a lake 40 by 60 foot booth and they've scaled up from probably I think 20 people to probably a thousand people or something I it's absurd they've scaled up in one year what About three or four years ago. Would it take in probably a decade? This in terms of what people thought the scaling timeline was and that's because Everyone's trying to get in on all these new texts that this is the first year where I'd say probably half Or more of the booths have something XR focused That they are pushing hard like I've been to display week 2017 20 21 and 20 22 and this is the first year XR feels like it's going to Really be something a lot of them are pushing for in the future. I mean, there's still a lot of like phone screens laptops not as many TVs actually as Usual but because everybody's bought a TV. They don't want to buy any one. I'm joking How about Google that there's so Microsoft tried to do some HoloLens kind of things and Google page Facebook changed their name to VR and What's happening? Well, it's Google gonna because I'm so disappointed with Google that they had They had this awesome device after 10 years ago. Yeah, right that Google Glass and just because one Blogger in the Silicon Valley wrote that their glass holds They decided to quit the whole project. What is that? You know, I honestly like even Google Glass in my opinion It was ahead of its time but also too ahead of its time and like like the processing wasn't there to do anything interest like even today the processing you need to do Interesting immersive stuff and like a small pair of glasses. You don't see anything We literally we're just trying out a headset that called the meta to And that is like large FOV and everything it's got like a lot of like hand tracking and stuff But it has to plug to a PC even 2016 and you're not gonna see Something that good even for like probably five ten years maybe at that. So yeah for running on a mobile chip Yeah, like I I was a Google Glass beta tester and I Remember that era quite well I I brought it to display week and to a lot of conferences and the thing I found most useful about it was actually Recording POV content, but the problem is the chip in that thing overheated a lot I almost got second-degree burns because the Computer is called the Google Glass tattoo. Yeah. Yeah, the because the computer is right behind your Right on the side for Google Glass and it's right against your head, but that Was Yeah, but it The thing is is it had a few demos that people always loved that was things like The Skywatch program which used all their technology die tracker so we could see exactly which star you were looking at so it would use Know what direction you're looking then your eye would focus on something in its display It would select that star then it would use the bone conducting audio to tell you info about that star And it worked really well that device also at the best Like audio pickup I've ever used I think there's some some people doing interviews there Maybe you want to just say so you're gonna publish on your YouTube. Oh, yeah From here. Yeah, absolutely already published one video. I'll a few more actually mostly about the stuff that both of us said We have very similar favorites on the show because they're pretty wild. So, um, yeah, sadly, it's right Yeah, what are you going to do from here? Yeah, so I'm currently Working on a headset on my own Independently, I'm still that's why I usually come back here to check on how hardware is doing and then I Also write and work for a magazine called mindplex Where a subsidiary under singularity net, which is a AGI company That does a lot of different stuff They are going to be launching a lot of stuff in the next year or two that I think people will be very interested in But yeah, check out Yeah, yeah Yep, and Yep, cool. Thanks a lot. Thanks. Nice to meet you. See you Thanks very much to ZXS to be one of my sponsors here at the display week 2023 ZXS is based in Shenzhen and I will be doing a video very soon with them Featuring their transparent displays all led LCD lightbox adds machine. So thanks a lot. I did video with them Nearly 10 years ago when they were doing tablets and now they do these cool devices Thanks a lot for watching Check them out


Welcome back to the YouTube channel. It's about Mr Ghana Baby. Yesterday I reacted to the French doctors who want to come to Africa to spread the vaccine. It's about time you and I are citizens of this great continent to stand up and tell the world that or tell the West that we don't need any vaccines in Africa. Hi. This is called plantain. Not banana. Those of you who don't know how plantain looks like. This plantain is not yet ready to be harvest. So it has to be supported. That's why I came to support with this piece to prevent it from falling down because when this plantain is ready for harvest it becomes so heavy that this whole stick cannot contain it. I mean this one cannot contain it. I don't know how you guys say it. But yesterday I was so mad to the extent that I didn't even introduce myself. My name is Wadamaya, the village boy from Ghana who travels the entire African continent to promote Africa in a positive light. Yeah, that's me, the village boy with the legendary slippers.  Congratulations. I want to commend each and every one of you who shared the video yesterday. Well, Africa is burning us. No matter what we go through guys let's just come together and be just this one big force against all the odds. We are hated because we are mighty. They hate us because we are mighty. They get when we arrive or when we just show up they are intimidated because we are strong. Congratulations to each and every one of you who expressed their opinion yesterday about the wicked people who were planning to spread vaccines in Africa. They apologized of which I think they were forced to apologize. You know why? Because the legendary Didier Droba said we are not worth guinea pigs. Samuel Ato said Africa is not laboratory. What do you guys take us for? We are waking up. If those leaders who lose the continent are not ready, we are ready. Stand up and speak for Mama Africa. My brother wake up. It's about time brothers and sisters all over the continent come together and fight for Mama Africa. Apologized of which personally I don't believe it because I saw it on what? CGTN We want you to apologize on the exact same station that you sat and said that they need to test the vaccines on Africans. And even if you go and sit on the exact TV station to apologize, my brother we won't accept in the first place we don't trust you. You know what? We will only accept when you terminate the mission of spreading the vaccines in Africa. According to the sources that I have 24 countries wanted their citizens to be tested with the vaccines but they chose only 5 and that is Burkina Faso, Kodiwa, Gabon, Mali and Senegal. This is the video that someone from Senegal sent me about people sharing the vaccine somewhere in the village in Senegal. You are doing a wonderful job. Yesterday I was watching you on YouTube so that's why I said let me send you this video so that you can see it. This is in Senegal, in village. They are giving people this medicine. So one woman because they are speaking Mandinka, Senegal we speak Mandinka and Wolofangela. So this one woman was saying if the medicine is for sale she will buy it. So another woman said that no it's not for sale. So this is very sad. They don't bring it in the capital in Dakar. Because in Dakar all people they have smart phones they know what is going on. So please hear this video so then people can get and see what is going on. Why couldn't that even made me so sad is that I saw one of my subscribers because I follow up you know you share my videos I see people who are sharing my videos I saw one guy sharing the video and said why is France want to test vaccines on Africans and I think I don't know whether the guy is French or something he responded that they need to test on animals first before humans. That was so sad man. And I don't blame all of you. I blame the people leading the continent. Because according to the results that I'm getting that the vaccines are already in Africa. Even yesterday the minister of what held in Congo came out and said that Vers le mois de juillet juillet août nous pourrons commencer déjà à avoir des essets cliniques n'est-ce pas des essets vaccins? Ici à la place. Bon nous avons été choisis aussi pour faire ces essets. Donc le vaccins sera produit soit au Canada, soit aux Etats-Unis, soit en Chine nous sommes candidat pour faire les essets ici chez nous. You see? This is the saddest thing about the continent. The people leading the continent. These old people carrying the continent only are show this. These are the people who prevent the continent from moving forward because trust me after travelling 17 countries in Africa Africa don't need the world. It's the world that needs Africa. But if these people are not ready I want all young Africans to rise up. Trust me, Africa is for Africans. Rise up, speak up, wake up Celebrate. Use your platform to speak for my Africa. Let's speak against so these people wake up from their death. They are not asleep. They should wake up from their griefs. But my Africa needs each and every one of you. We need you all alive. Please stay safe. Avoid overcrowded places. Use hand sanitizers. And most important, stay home. I'm home man. This is my backyard garden. My backyard garden needs me. You see this sugar cane? Don't follow. Now we need to wash things before it eats out. I've started eating it. Thank you so much for watching. I'm going to see you in the next one. I am Maya. Peace out.


Welcome to Toffy TV. It is the Everton News Daily. This video is sponsored by Unibet. If you want more transfer stories, get over to the Unibet blog page. There's a Toffy TV blog on there. Go over and check that out. The link is in the description. Everton are about to sell Adam O'Luckman according to reports in the press today. Stories circulating that Everton and Red Bull Leipzig are in advanced talks for a deal to take the young winger. Back to Germany, Luckman, who spent an enjoyable six months in Germany playing for Leipzig 18 months ago. Looks like he's going to get the move it seemed like he wanted last summer. Marco Silva was keen to keep him at Everton last year and have a good look at him. Luckman hasn't really been able to break into Marco Silva's long-time thinking. The interest on Leipzig has remained and it now looks like he's going to get his wish and move to the Bundesliga. Obviously we've seen the success of people like Jayden Sancho over there and Luckman probably thinking he can emulate that.  We just haven't seen enough of it and I suppose now what that'll do is it'll probably help Marco Silva go in and get a replacement for Luckman in probably as quickly as he can do. Looks like Adam Ola Luckman's event career may be about to come to an end. Cair yn dal looks set to join Darby Canty. The young Miffeel player flew out to the United States last night and had the medical Darby on their pre-season tour in America. Dowl looking like he's going to link up with Philip Cockoo for the season. Obviously Cockoo has very close ties with Marcel Brands, Everton's director of football. Huddersfield were very very interested in Dowl and Middlesbrough but it looks like he's made the choice to go to Darby Canty so good luck to him ahead of the new season. Another young Everton wide player on the move Josh Bowler is on Humber side ahead of his low move to Hull City. He was attracting three or four clubs including Middlesbrough as well Sheffield Wednesday. People like that but it looks like Hull City have won Josh Bowler for the season. We've seen him on Sunday in the draw with Carriabangi Sharks out in Kenya. Look nice and bright and lively so a good move for him getting to Hull's first team and have some regular football this season and hopefully he'll do really well over there. Another player who's apparently about to complete and move is Luke Garbert to Ipswich Town. Looks like he's moving on loan. He's got a year left. A little bit different obviously to Dowl and Bowler. Garbert's contract ends next season so an opportunity for him to maybe put some roots down at Ipswich or to impress when he's a free agent next summer after a pick of a few more clubs. Big Sam has been speaking about Everton again today. This time he said that if Everton signed Diego Costa this summer they could break into the top four. He said they've spent enough money it's where Everton want to be, it's where the fans want to be and Costa if they could get him fit in scoring goals could be the player that fires Everton into the top four. There you go. Surprised he didn't say if he could get me, we'd be in the top four anyway. Finally Everton fly out to Switzerland today ahead of their pre-season camp. They play FC Seon on Sunday. They drew 1-1 last night against Grenoble foot 38. They drew a PSV as well last week so that's Everton's first game. They also play on Saturday Seon ahead of playing Everton on Sunday. So it'll be interesting to see you as in that Everton squad who Marco Silva takes to Switzerland. That is it. Give this video a thumbs up if you want more videos. Join us on Patreon if you haven't subscribed yet. Why haven't you? Do it now. Takes a sec. Thanks for watching. See you later.


We are moving more on to the micro-level differences and the various aspects and perspectives of corporate governance. Now, we were first talking about internal audit and we were talking about audits, then we moved out about the origins of development and also laws and today we are going to talk about something which is a very interesting topic and that is alternate corporate governance controls. Now, when we are talking about this, we have looked in the past many sessions about the different models, the different frameworks, the different mechanisms, the different dimensions of corporate governance, but now we are going to move forward and look at alternate corporate governance controls which are less classical and more innovative in its context and approach. Now, when we are looking at these, then there is a market-based outsider system which basically is typified to a dispersed ownership, a clear separation of ownership and control, lower debt equity ratios and sophisticated financial markets. Now, in the more advanced countries, we see that this market-based outsider system basically tends to exist. So, we see it in America, we see it in Europe, we see it in Japan, we see it in Australia and again, they have their own texture and also contextualization, but broadly speaking it is market-based, definitely it is external to dispersed ownership and that basically means that there could be sometimes hundreds and thousands of shareholders, a clear separation of ownership and control. So, whoever the owners are, they have nothing to do with the control of the organization. They are not even part of the board of directors and the top management is independent in totality. So, we see a lower debt equity ratio which tends to exist and we see sophisticated market mechanisms basically in control of that. Now, when we are talking about a market-based outsider system, in this system there is less incentive for outsiders to participate in the control of the corporation except through equity markets. The interest of outsider stakeholders are not formally represented. So, again, we see there is a lot of independence in the organization. Usually large corporations have this type of market or it is being done in the advanced country. So, this is characteristic of that. Investors themselves often have less interest in the strategic goals of the enterprise. Investors show interest in the short-term returns that are available in the market-based system. So, again, the investors are not for the long-term, yes some they are, but many are there just for the short-term, they are playing the stock market and based upon that they are grappling in their profits and then going into different organizations and therefore we see that there is a lot of fluidity and there is a lot of deviation, there are a lot of undulations in this market-based outsider system. Now, when we are talking about the market-based insider system, then that is typified by highly concentrated ownership, high debt equity ratios, higher rate of bank credits and representation of banks on the board of corporations. So, what we see is that this is a more limited model in its context and that's why it's the insider system. We see that the bank corporations who are lending huge amounts of money to the corporation, they are a part of the board, high debt equity ratios tend to exist and the ownership is limited in the hands of a few and there can be minority shareholders but the majority shareholders have a very, very strong equity base and thereby have this control. Highly concentrated ownership is closely connected with the managerial control of the enterprise. High rate of bank credits is due to the closer relationship with banks that are often represented on the board and what we see is that most of the members of the board are actually shareholders, the large shareholders. So, not only the banks but also the large shareholders are over there and therefore they have this direct and indirect control of the whole organization and at least giving it a strategic direction. Now, in the insider system, hostile takeovers are rare because there is such a high concentration of shares existing in a few hands that it's difficult to take over while in the outside one, hostile takeovers are possible when different organization or investors tend to vulturize upon the different shares and accumulate them and then show their majority and take control of the particular organization but not in the insider systems and there's often a dense network of supportive relationships with the related businesses. So, again what we see is that there is more connectivity, there is more individualization and we see that even the different contextualization of relationships is based upon how the network tends to exist. So, what we see is that fundamentally the insider and the outsider systems are different in texture, complexity, in their frameworks, in their outlook, in their in-look and again what happens is that in one there is a lot of control and the other one is dispersed control or there's external control and then we see that the shares are in one particular hand and the other one we see that the shares are more dispersed with lesser chances of getting that control but in that one then what we see is that there can be hostile takeovers while in this one we usually see that it is usually family-driven or bank or financial institutions driven. So, this is the difference between both of these systems and it depends upon where the organization is and the characterization and textualization depends upon which type of models are being applied but these are the broad parameters and spheres of these two systems. Thank you so much.


The English language and its peculiarities. The English language is universally derided for its difficulty and the absurd number of exceptions to every rule. To teach English effectively in an EFL setting, it is important to make note of these difficulties and teach students both the rules and the plentiful exceptions. My personal experience as a teacher, and the knowledge I've gleaned from this course illustrate the importance of incorporating games and group practice so that students feel motivated. I want my students to find learning English fun rather than frustrating. It is key, especially when teaching young learners, to pick one's battles, a pedantic mindset will only breed frustration and lead to a classroom full of anxious students. Therefore the peculiarities of the English language should be approached with an attitude of joy and curiosity rather than anxiety. The English language is a tapestry of other languages, and in many cases this means that the rules overlap and contradict one another. However, this is also one of the reasons for the rich history of the language and its potential for inspiring beauty and poetry. Vocabulary. Hominems, words that sound the same but have different meanings, homophones, a type of homonym that includes words that sound the same but have different meanings and spellings, and homographs, words that are spelled the same but have different meanings, create special challenges for EFL students. Native speakers rely heavily on contextual understanding for pronunciation cues, so imagine the embarrassment of a new learner mispronouncing a word when reading out loud in front of the class, and altering the meaning of a sentence entirely. My goal as a teacher is to emphasize the fact that such errors are not only understandable, but serve as valuable learning tools, and to let students know that many native speakers make these kinds of errors regularly. A common example of this is the word tear, which is both a verb meaning to rip apart and a noun referring to the moisture the human eye produces in moments of sadness. After tearing the letter open tears sprang to my eyes, it is easy to imagine a student feeling confused about the meaning of such a statement. Vocabulary building through memorization drills, flashcards, and stressing difficult words is a key instruction method, but I would also want for my students to stretch their knowledge by using authentic materials, that is materials that have not been created for the express purpose of EFL teaching. I think that teaching students how to piece together meaning using the words they do know, like language detectives, is one of the most important skills for students to practice to build both fluency and accuracy. Grammar. Tense is another aspect of the English language fraught with peculiarities. The many exceptions make it quite difficult for a teacher to cover every potential error. However, I think the 12 tense systems that ITTT uses should make it easier for students to apply the rules effectively. Some oddities that students are likely to struggle with include the many irregular past tense verbs. B, become, begin, catch, grow, have, the list of irregular past tense verb forms is endless, and many of these verbs are commonly used to convey meaning and express time, intent, and purpose. The end goal is for these oddities to sound natural as they do to native speakers. Future tenses are also difficult for students to comprehend. One of the most effective ways to overcome this hurdle is to practice speaking, and allow students to practice speaking with one another, so that they feel safe making errors and learning as they go. Pair and group work, enjoyable engage stage activities, and incorporating student talking time into each lesson are methods for making students feel comfortable with the astounding complexity of tenses. Plurals and roots have their share of absurdities as well. The simple adonis rule is quite limited, and developing fluency and confidence is a far more difficult task when inconsistencies abound. There are many misleading words, for instance, several does not mean seven. Ver can refer to both the Latin root truth and the Greek root spring, as in veritable and vernal, and a parable has nothing to do with a parabola, though they are both rooted in the Greek word for comparison, parable. I find the absurd nature of the English language refreshing, as there is always room for discovery. I would try to impart this joy in discovery to my students, as master of the English language is a title that very few can claim, including many native English speakers. Do you want to teach English abroad? Take a TEFL course today. The peculiarities of the English language creates the possibility for many errors, especially for EFL students and beginners who will be completely overwhelmed by the complexity of the task. However, I think the games, activities, and ESA structure of the lessons will allow me to show students how fun learning English can be, when one does not get bogged down in its absurdities. Thanks so much for watching. We are ITTT, the leading provider for TEFL and TESOL training courses. If you like this video, please subscribe by clicking that button down here, and click on any of the videos here on the left, for more interesting teaching tips for getting certified to teach English abroad and online.


Hi, we at Google have been working with NPTEL for the last six years. They've done an amazing job of bringing so much engineering education material online. These online computer sciences courses that they're offering are the next logical step. They are the best hope for providing a high quality education to hundreds of thousands of Indians. We hope to learn a lot by working together with them on this venture. Best of luck. Cognizant is very happy to participate in this initiative by the IITs. First of all, I must congratulate IITs for taking this initiative to take education and the contents that they have as part of NPTEL to all the people, particularly the student community who can benefit a great deal. Learning in a platform like this is by itself I think an extremely satisfying experience because you're learning from the best faculty, you're benchmarking yourself against your peers and lastly, you have the satisfaction of completing a necessary part of your information technology learning on one of the best ways to learn it in a 21st century model. NASCOM is interested in this effort because we have about 4,500 engineering colleges and today we have on board about 3 million individuals who are directly employed and we need to increase this in the next few years to about by 2020 by another 2.5 million added to this existing human resource. Now to enable all of this and to give this opportunity to everyone in the country with the same quality, it is essential that this information and the quality education be imparted impartially to all and this is the first experiment that we are doing across the IITs and IICs. The objective of this program is to enable anybody who wants to learn programming. They not only should join this course but aim to complete it. The rationale behind it is it will provide them a solid foundation and this will afford them the building blocks to actually analyze and understand the various aspects of domains that come up in the various job roles mentioned by NASCOM. TCS has been participating in this program at multiple levels. Firstly, as part of the original design committee for the entire program. Secondly, as part of the content review committees. And thirdly, in helping the operational planning of the platform as well as the assessment and certification sections of the program. This course is going to engage you only for 2 hours a week. It will be very tempting for many of you to enroll, try it out for couple of times and then for various reasons because you all lead very busy lives to disengage. I would urge you not to do that but to stay the course because I am sure you will find this extremely valuable if you make the effort to take the course to the very end. I commend you to this wonderful program taught by some of the best teachers in the country for these subjects. Definitely once you get hooked on to this particular process of learning you will find that you can learn at your own pace and time and you will also be benefitted with the certification which is also stamped by industry and therefore you will find it is an employment facilitator. As a way forward you will find that we will also look at the various coursewares that are going to be available relevant to the job roles and the 67 job roles are already made available on the NASCOM website and you will find that if you are job ready you will get a premium pay in the market and you will find that you are actually quite sought after. So there are some criteria for registration you register for the course you do the course and you will also be given a certificate at the end of it on completion and there are assignments, tests which are also available which can be done online. I would really urge for you to make use of this fantastic collaboration between industry and academia bringing two major brands together. NASCOM which has built its brand in the business world and branded India as India's IT and the IIT's which bring in academic excellence. MOOC is the way to learn in the future. Get as many people as your friends enrolled, complete the assessment and make yourself available for the industry. I think it will be an enjoyable learning experience. I wish you all the very best and happy learning.


Bonjour tout le monde. I am honored to be here in Lafayette, Camp Patati, with my friend Prime Minister Karinj. I'm especially grateful to be able to visit with the women and men of the Canadian Armed Forces who are doing extraordinary work leading this battle group. I arrived in Lafayette this morning and met first with President Rinkovic and then with Christianus, the Prime Minister. Thank you so much for welcoming us today, my friend, and for being such incredible hosts of the Canadian Armed Forces members here. During our meetings, we discussed the link between our countries, including the growth of trade. Relations between our two countries have always been strong, but they are today more important than ever. That is why we have grown our embassy in Riga. Our countries have strong people-to-people ties and also meaningful historical ties. Canada was the first G7 nation to ratify Latvia's accession to NATO, and 32 years ago we were the first G7 member to recognize the restoration of Latvia's independence. The sovereignty of nations, their territorial integrity, the rights of people to choose their own future is at the heart of why our two countries have come together today. In my meetings with both the President and the Prime Minister, our top priorities were support for Ukraine and action we need to continue to take to deter Russia's ongoing and unacceptable aggression. When Russia first invaded Ukraine in 2014, NATO allies mobilized and formed Operation Reassurance to establish a strong military presence in Eastern Europe. Canada stepped up to lead a battle group here in Latvia on NATO's Eastern flank, beginning in 2017. To date, hundreds of Canadian Armed Forces members have trained and served alongside soldiers from across the Alliance. Today, I am announcing that we are going to more than double our presence, deploying up to an additional 12 hundred members of the Canadian Armed Forces to serve and defend democracy and the rule of law. These additional personnel will reinforce and enhance our land, maritime, and air capabilities, and support special operations in Central and Eastern Europe. This is part of a $2.6 billion investment we are announcing today, which also includes the purchase of critical weapons systems and support for intelligence and cyber activities. Renewal and re-assurance cooperation will allow Canada to contribute in a concrete way to strengthen NATO's most important collective defence for a generation. To continue the commitment we took during the Madrid summit last year, we will work with our allies so that the tactical group of the advanced presence strengthened in Lithuania becomes a brigade. This is just one more way that Canada is stepping up to support our allies and standing up against the Kremlin's aggression. Canada has helped lead the charge in putting in place one of the toughest sanctions regimes ever. We have provided billions of dollars in military, humanitarian, and financial support to Ukrainians in their heroic defence against Russian invaders. Canada and all countries must be clear that Russia's unprovoked war on an independent country on a free and democratic Ukraine is a threat to freedom, international law, human rights, and the whole set of shared democratic values that generations of soldiers have fought to defend. I look forward to meeting with CAF members on the base here and thank them for their sacrifice and their service. This is Canada's largest overseas mission, and we are here because European security is important to Canadian security. As soldiers in Operation Reassurance, you have an important role to play in defending and deterring the very serious threats to peace and stability that we're seeing today. And you do it thousands of miles from home, away from your family and loved ones. So thank you. I have been struck by the courage and solidarity of the members of this tactical group that you are leading here in Latvia. Canadians are proud to serve on the side of men and women originally from a third of NATO member countries, such as Albania, Czechia, Iceland, Italy, Montenegro, Macedonia, Poland, Slovakia, Slovenia, Spain, and soon Denmark. And now that Finland is part of NATO and that Sweden will be there soon, we hope that new friends will join the member of this incredibly solid and diverse tactical group. This enhanced forward presence is the most multinational in all of NATO, and this is a testament to the incredible support of all these nations and Canada's belief in strength through multilateralism. As Christian has pointed out, this is the way forward in modern defence. Almost a dozen countries from across NATO are cooperating, training and working alongside each other and learning valuable lessons from each other that make our collective defence stronger. One thing we always say in Canada is that diversity is a source of strength. Well, this battle group here in Kampadaj is proof of that and the work we're doing together is incredibly valuable to NATO's future. To all the troops, I want to say your service together in this mission is a great symbol for all to see that democratic nations are as strong and united as ever. NATO unity is more important than it ever has been, as we're faced with a foe that still believes that might should make right and that wants to destroy everything that we've built. As Allies, we draw our strength from our belief in peace, stability, and the rights of people to be free to choose their own future. And I know that this is what we will focus on at the NATO Leaders Summit this week. These beliefs are what we stand for and what the troops here at Kampadaj tirelessly defend. The Canadians and our allies and partners are incredibly grateful for all that you've done. Thank you for your service. Thank you all for being here today.


Hi everybody, we're going to talk about cut flowers now and it's nice to take some flowers out of your garden and bring them inside and put them in a vase and enjoy them indoors. And here to talk to us about some of her favorite cut flowers and how to grow and cut them is Barb Lashkowitz. She's a research specialist here at NDSU. Barb, welcome to the forums. Thank you very much, Tom. Welcome everybody to the last night of spring favorite garden forums and hopefully the snow will be disappearing soon and we can actually get out and grow some flowers for our homes. So what I want to talk about is, like Tom said, growing your own cut flowers. Some ones that work well, some ones that I'm not necessarily going to mention, ones that don't. But certainly you can ask me about specific ones that I don't mention and just take a look at how we can harvest them and then bring them in and keep them alive as long as possible in our homes. So first of all I just want to talk about the criteria for a good cut flower and one of the main criteria is that it has a long stem length so it will go into a vase. So something like a lissum that's very low to the ground is probably not considered a real good cut flower. Another good thing is that they last up to a week or 10 days in a vase. They should produce lots of flowers but certainly when we talk about perennials there's a limited quantity to harvest from and they should be easy to grow. I'm all about low maintenance and the easier the better. Some other things you might think about is fragrance and certainly in the spring with the lilacs blooming they're very short-lived but that nice fragrance they give off is wonderful as well as some lilies that we can grow and then if you do have allergies you might want that in mind too. You don't want to be sneezing with all the flowers in your house. So let's just talk a minute about the site where you would grow cut flowers and you know everybody out there is already a gardener so you know there's some important things to think about for blooming plants so I don't want to spend a lot of time here but usually the plants that bloom the best are going to need six or more hours of sun a day. You want to protect them from the wind and maybe that's not something you think about with regular flower gardens but some of the cut flowers once they get taller the wind tends to blow them over so if you do have a windy spot you might need to stake them over the course of the summer. For your water sources you don't want to be dragging water if some of these might require a little more water to keep up the good bloom and then you also want good drainage so you don't have them waterlogged and with any other type of gardening if you have an issue with your soil and if you want to know if it needs nutrients or if it's lacking in something you might want to have it tested and that's the website for the NDSU soil testing and you can get all the details of how to do that there so two different ways you can also grow cut flowers specifically with annuals you can make rows of cut flowers and making them accessible so when you pick you can just walk along rows and pick but you might have an existing landscape and again more often with perennials we see this and then you might be harvesting plants within the landscape and that works perfectly well also just depending on what kind of gardener you are okay so let's talk about harvesting in particular best time to get out and harvest is usually right away in the morning earlier the better when it's still cool out the plants aren't going to be water stressed from the heat of the day you're not going to get hot out there cutting should have the sharpest knife or shears that you have to cut the stems and there's two ways you can do it you can either carry a bucket of water with you so that as soon as you harvest some you can put them right into water that might get a little cumbersome though so you can there are a few exceptions but you can harvest them without the water bring them back to where you have water and then just recut the stems maybe cut an inch or two off the bottom before putting them into water one exception that I can think about the top of my head are hydrangeas which are really they love water so you might want to have water for those as you harvest them but most other things they'll do okay being cut for a little bit before you get them into water so stage of development is also important and those of you that already cut flowers and bring them into your house probably just intuitively know this as you cut but there's three main stages and it's very important with some that you cut them at the proper stage or you won't get as much enjoyment out of them so the first is the bud stage these are solitary type flowers that will continue to open after you harvest them so things like peonies and iris which hopefully will be seeing shortly roses and the lilies you can cut those when they're just hardly opening and they will continue to grow and mature so you can have them around for quite a while then we have spike type flowers and some examples here the laksber, blad, snapdragons and then plumes out of our ornamental grasses I love working with grass plumes but you want to get these when one or two flowers are starting to open and color is showing on the other buds and they will continue to open then as the blossoms die you just pluck them off and the other ones will keep blooming. Grass plumes in particular you want to get them early if you harvest them when they're too mature they shatter and it has a mess all over and the last stage are the fully open flower head types so these are the composite type flowers usually sunflowers marigolds the zinnias and the asters they do not like to be cut in the bud stage they will not well they may open a little bit more but usually once they're fully open that's when we want to get them at so what about the bugs because we all know in the summer there's lots of bugs everywhere and we don't necessarily want to be bringing them into our home and certainly thrips are a big issue especially with things like snapdrake ends of spider mites might be a problem flies are everywhere so they might come in regardless that sometimes ants on the peonies are making an announce to parents so I guess what I try to do after I harvest them I might take my garden hose and rinse them off really good and kind of give them a shake and then I'll arrange them in my kitchen sink wash them off again see what falls off and then just put them out and if I if I get something creepy crawly then I do I'm not I'm not a big I don't have a problem with it certainly if you really don't want any critters in your house you might not want to be bringing flowers in from your garden so let's take a quick look at arranging the flowers and really the easiest thing to do is to just get some fresh water in a vase and pop them in there mason jars that we see here on the bottom right they're really trendy right now I like to dress them up with a little bit of raffia or a bow to kind of finish them off most flowers will just do really good with nice clear water now there is a trick with bases if that big thing frustrates you because you put your flowers in and they flap all over a really quick easy thing you can do is make a grid over those and I've got three tapes here that for sure you might have scotch tape or masking tape at your home the one on the left is the florist tape that they use I just make a grid it makes smaller holes and then you put your flowers in once there's enough stems in there they'll support each other and at that point what I like to do is pull the tape off so you don't see it certainly if you're using something like a scotch tape or a clear tape you can leave it on but sometimes the tape starts getting in the way and then you would want to remove it as well another fun thing to do with the clear bases is to fill them like halfway up with pebbles or marbles and that will also give you a nice base to support your flower stems florist foam is also a possibility although most people normally don't have this sitting around their house it's like a sponge that soaks up the water and you can get it in a craft store you soak it up you put it in your container and then you insert the stems into the foam and then you want to make sure that container stays full of water so the foam retains that moisture as well so your flowers can live as long as possible but I guess most people are more likely to just have bases hanging around than blocks of floral foam so how do we make sure flowers last as long as possible and this is whether you're bringing them in from your garden or if you get a bouquet from a florist these are all good tips to get them to last as long as possible and the key with flowers and they've done some studies on this is the cooler you can keep your flowers the longer they're going to last so you want to keep them out of any direct sunny even if you have a nice bright sunny bay window and flowers would look gorgeous there you don't want to necessarily put them there because the heat of the sun really dry them out and and shorten their base light keep them out of any drafts from a furnace or an air conditioner and the way this spring is going our furnace might be running more than our air conditioner but that air also will dry the flowers out and shorten their lives and they keep them away from any appliances that might give up heat you want to pull up any foliage that's going to be under the water because that will decay in the water and that bacteria that grows from that decay will clog your stems up check the water change it every two or three days especially if it's starting to look cloudy and as you do that you also might want to re-cut your stem and so many blockages that might inhibit the uptake of the water and then you can also use flower food in the water again there've been many studies done that show that commercial flower food does extend the base life of flowers it provides a source of food it lowers the pH of the water which makes it more drinkable for the flowers and it also keeps the water clean which you know keeps the bacterial and the fungal growth down so you can check with your local florist and they may have this available for purchase or whenever you do buy flowers from a florist you should get a little packet of food that goes usually in a quart or a liter of water some other tips before we get into some specific flowers with the annuals the more you harvest the more they will produce so you want to get out and harvest early and often so that they keep growing and producing with perennials of course that's not going to be the cake because typically they have a set number of buds but then you just have to plant more of the perennials to get more of the flowers and then if you really want to get a different diverse selection I might suggest starting your own seeds of course that's a whole another talk about starting flowers and all that stuff but there are a lot of fun things these are three catalogs I ordered out of Johnny's in particular it seems to be a little weird toward the farmers market and they're not the commercial but the growers were not only cut flowers but also produce but they all have a good selection of stuff so let's talk about some specific annuals and there's many I haven't included and I guess it's just for you guys to go experiment or your own and see see what works well so the first few slides some specific bases I put together and the flowers I use and then I have just specific flowers but the first one is a base that has Lizzie and this and skate yosa basal basil foliage and purple thong grass and Lizzie and this is probably one of my favorite cut flowers because it just that flower it's got a long stem it's got a long base life the double blossom ones resemble roses the colors are lavender pink white and then some mixtures of them so they just work really well there are some shorter Lizzie and this that don't work as well so if you're going to grow my would try to get the taller ones skatey osa this is the annual skatey osa also cushion flower also very nice with a long stem and I found it very easy to grow the basil foliage might be something that you wouldn't think of to use but it's just got a really nice texture and color to it then you get that nice fragrance makes you hungry once the pasta and it just it's a nice filler and then the purple thong grass leaves leaves would work the flower heads work well also but again with thick heads you want to make sure you harvest them when they're really young so they don't shatter okay here's a real simple base with zinnias and Malina's which is pink paintbrush grass and this is a really nice annual grasses while my photo doesn't do it justice the flower heads do look like pink paint bushes just a really pretty vibrant pink and again my zinnias photos nothing but it paired really well with a pink zinnias you know simple easy not a lot of thought just pop minnabase and again the zinnias you want to harvest them when they're fully open and then on the top left is dahlia's again with the base one kind of late getting on the dahlia bandwagon but they also are wonderful cut flower and last up to a week in a base the right fountain grass you can kind of see with the dahlia's there and then if you look closely at that base that clear glass base I took a variegated leaf and wrapped it around the outside which is another fun thing to do with the bases that gives a unique texture and color to it in the bottom shot is choreopsis again with the nasal and fountain grass very simple and fun to do all right just some straight flowers now snapdragons glades very common spiky flowers the thrips do like these flowers though you don't like thrips in your house want to stir clear of these and then the egg is stacky that's also hissup it's a member of the mint family and so it's one that when you harvest you're going to get a licorice scent or a bubblegum scent some fun things there status and gamfrina are two typically dried flowers but you can also work with them fresh or you can harvest them and dry them and keep them around later gamfrina again I just love the texture the look doesn't have super easy to grow doesn't have a lot of insect problems the one on the right is called fireworks and it looks like little explosions of fireworks in your garden okay a ridge Iran it's the purple pineappley one on the left and that's another one that the whole plant is that purplish blue color and I have actually picked these and put them in a vase with no water and they just they're like dried flowers already and then they last you have them in a vase all winter long and they do start to fade eventually but you've got that nice texture amaranth on the top right it's very trendy now with that you know hanging pendulous flower and love lice bleeding is its common name and then helichrism or straw flower another dried type flower that you can harvest it and it will dry you can use it all year long again the grasses I love working with the grasses annual fountain grass on the top left we see quite often sweet potato vines if you grow those you know and if they're really growing wild everywhere you can chop them up give them a good haircut put them in water they'll root you can get more plants and then the cypress the papyrus king tut and baby tuts also give a unique texture and look into the flower designs okay some perennials and woody plants to take a look at and I'm going to go from spring down to fall with these because we all know they have certain bloom times and bloom frames tulips and daffodils are starting to come up right now even though the snow I mean daffodils are probably one of the first things to start poking their heads up and they are nice for cut flowers but they really don't last very long then you really need to keep these cool don't expect them to give you that week of color unfortunately and then lilacs as well they're incredibly short lived in a vase but it's so nice to bring them in and have that fragrance in your home and don't forget about branches before they leave out willow dogwood for city are fun accents and then if you get them late enough in the winter they should break but in your home and you've got another accent as well so going late spring early summer of course the irises with their nice fragrance and the peonies and then baptism I don't know any if you grow that but that has a real pretty flower and a nice foliage as well alliums and there's so many different sizes of alliums they're great as a perennial and a cut flower delphinium's and they spike they're a little more temperamental to grow in your garden than they probably are gonna need staking but another nice spike flower and you know echinacea it's a very coarse-looking flower I don't know people think of it as a cut flower but it's certainly I've worked with it before and it's very tough hustle foliage I saw in somebody's office once just a low base with a single big hustle leaf in it it was just so striking and simple and there's so many different kinds of variegated and chartreuse and dark colored foliage is that that's an option I would think and then the flowers people don't like the flowers but they smell good and they they will last in a base as well roses of course kind of everybody loves a nice fragrant rose and then hydrangeas are nice not only cut fresh you can leave them on the plant till fall let them dry and then cut them and spray paint them and have some fun Halloween or Christmas looks with those also okay getting into later summer leatris of course is a typical florist flower it does attract monarchs though so if you don't want to discourage the monarchs you might want to leave them out there many types of lilies the orientals have the nice fragrance there's asiatics as well and then perennial this is feathery grass calamagrostis again those heads are nice to work with and finishing up in the fall asters are nice and asters are great because they will look at like a 30-32 degree temperature and their color just gets deeper and better mums of course are also a nice one and then solid a go the golden rods are a really nice cut flower they don't cause your hay fever so feel free to bring them in and enjoy them in your home as well all right so I just again there's a lot of left out but just you know don't be afraid to experiment and you know gardeners should always take notes on everything so you know what works and what doesn't so just do that and it will be fine and that's it it's great


Notice if you're looking at a balance sheet and you're trying to say what reports am I going to be giving to say a client or supervisor? Now you've got all these reports that you can think about just with the balance sheet, right? Do I want the balance sheet as of a point in time? I might have balance sheet that compares the prior month possibly the prior three months the Months to date and stuff like that as starts to get a lot of different reports


Every journey has a beginning. For Dynavap, it began with a goal. A goal to provide a simple thermal extraction device that fits in your pocket and a promise of freedom and quality. Now, years later, we continue to deliver to our diverse community every day. Each and every one of you is on a journey of your own. We love being part of it through our line of products. At Dynavap, we began with a promise of freedom, of quality, of providing a thermal extraction device durable enough for an entire lifetime of stories and experiences. Welcome to the Dynavap community. Whatever your destination, the journey starts here. Whoever you are, wherever you're at, the journey starts here with Dynavap.


Stand right over it like this. Yeah, hi. That intro's sort of covered it. My name is Zach Green. There's my Twitter handle, zgreen underscore. You can find me on GitHub at zgreen. And I am a senior ex-dev at Ali Interactive. We work with, we're a digital media, or digital agency, and we work with large publishers, large media companies, that sort of thing, and we're a remote team. And we use Webpack for all kinds of things. And Webpack is a really powerful tool. You can do a lot with it. And today I'm gonna try and hone in as best I can on how we use CSS in Webpack together. So we're gonna talk about a few things. One thing we're gonna talk about is obviously the build process. If you don't know, Webpack is sort of a build tool. You can use it to compile and transpile and do all kinds of crazy stuff to your files. We're also gonna talk a little bit about community and ecosystem. When I say community, I'm sort of talking about like, I feel like there are some technologies that reach kind of a critical mass of adoption and also have a really good, you know, sort of, they're kind of lucky timing and they become really useful because of those things. And Webpack is one of those tools. It sort of rose as React was rising and now it's like developed into this, there's a really, really large ecosystem of plugins and loaders and docs and tutorials for kind of covering all manner of use cases, which is very cool. We're also gonna talk about Webpack kind of as a gateway to other front-end technologies. This isn't really a talk just about Webpack. It's sort of about the modern front-end stack in the context of Webpack. And I was trying to think of an apt metaphor and I couldn't, but I sort of thought of like if front-end web development is like one of those kind of shitty carnival funhouse rides that you go on. Webpack is like the car that you're stuck in that takes you through it. It sort of works because front-end development sort of feels like it was built up by carnies and gets shut down every six weeks and moved to another place, right? So, whatever. We're gonna talk a little bit about performance too and some ways that Webpack might be able to help you solve some common performance problems. And we're gonna talk about workflow. I'm actually sort of glad the timing of this presentation worked out well because a few folks have touched on this and a few other aspects of my presentation but they didn't go too far in the direction that I'm gonna go. So, I'm hoping this will be a good compliment. Sarah Drasner touched on this yesterday, this idea of flow, right? Where flow is kind of that feeling that you're just in the zone, you're enjoying what you're doing and you're having fun while you're coding, right? There's a really good talk by Bruce Howman who is a very talented closure script developer called Literate Interactive Coding with Dev Cards. I stole a lot of the ideas for this presentation from this talk, everyone should check it out. You don't need to know closure script at all to dig what he's doing but I highly recommend that talk in his work in general.  That's it, that's your job. Like you just tweak things forever and ever and ever and I feel like this maybe is no more true than in CSS, right? Where you're kind of constantly updating and changing values and checking how they look. So we're gonna talk a little bit about how Webpack can kind of grease the gears of this workflow a little bit and maybe make it better for you. This is from the Webpack docs. What is Webpack? Webpack takes modules with dependencies and generates static assets representing those modules. That's like one of the first things you see when you go on the website. I don't know about everyone else here. I find this description to be kind of opaque and hard to understand. I still, I've been preparing for this presentation for a few days, I'm still not 100% sure what it's really saying. And this is a criticism that a lot of people level at Webpack which is that it's kind of hard to grok the docs are kind of dense and hard to understand. There's some truth to that.  And I know the Webpack team is always looking for help with updating their docs, so definitely check that out. But I thought maybe instead of trying to parse this statement we could do a little walkthrough of Webpack and see if we can understand it a little bit better. So basically, Webpack can be used as a CLI and it looks for this file, this webpack.config.js. You run it from the command line. The config.js might be really long, it might be kind of short, there's a lot of stuff that goes on in there. We're not gonna look at all of it because it would take all day. But we're gonna look at a couple things specifically. Mostly we're gonna be down here in the object that's getting exported, right? The entry point here is what's getting bundled, in this case just a single file, app.js. And then more specifically, we're gonna look at the plugins array that gets passed and also this loaders array that gets passed to the module object in the Webpack.config. Don't worry if this doesn't make sense yet, we're gonna kind of walk through it. So a quick crash course in plugins, in loaders, in Webpack. Loaders basically pre-process files. That's kind of the idea. They use the require or import statement to work. They're very similar to tasks in other build tools. So if you're coming from grunt or gulp or who knows, there's all kinds of cool stuff out there. Loaders are kind of like tasks, right? And I sort of always think about them as, it's code that ingests files that you give it and just applies a series of transformations. So here we are, that's kind of stretched. Can you see this? Yeah? Cool, I don't wanna stand in the way. This is the, just an example of a require and import statement, right? There's nothing going on here. There's a native JavaScript. Webpack isn't doing anything in this case. But what Webpack does is it kind of hijacks or rides along on top of the import. So if I wanted to apply, for example, a Babbel loader to a JS file, I would do it with this kind of syntax here. Or just Babbel, bang, and then the file. Babbel might do all kinds of crazy stuff to my JavaScript if I wanted it to. So that's how that would work. The cool thing about this approach is that now you can import file types other than JavaScript. You can ingest in JavaScript syntax file types like CSS or HTML or Markdown. Really, there are loaders for almost anything and then Webpack can be made to understand them. So in this case, everyone can totally see this. I can't see it at all. Is that, yeah. Yeah, is that better? Cool, right on. Yeah, so we're doing a couple of things here on these CSS files. We're just applying two loaders. The CSS loader and the style loader. You see them chained here and they're separated by bang. You can also pass query parameters to your loaders using this syntax here. So in this case, we're just, we're passing the minimize parameter to the CSS loader to make it minimize some CSS that I'm feeding it. This gets a little hairy if we do this everywhere all over our code base. You can kind of imagine if you had to keep tracking your head of all the loaders that you're using on all the files that you're importing and maybe some of them use different loaders, that's kind of no fun. So most of the time, you're gonna set this up in, doing that, let me do a reload here. See if that works. Most of, anyway, most of the time, you're gonna set this up in your webpack.config.js. And this is a slow load, but I'll get to that in a second. And just to wait, we're reloading the bundle, it's doing something. I'm probably not on the right thing. I'm not, cool. Yeah, internet woes, sorry. Doot, doot, doot, doot. So I will, there we go. Well, okay, that kind of stinks that it's doing that. I don't know why it's so cut off. Can you see? Cool. So here we are in webpack.config.js. And in this case, we're doing a regex test for a file type, CSS, down here. And we're running a pair of loaders on that file type, CSS loader and style loader. That way we don't have to pass that to every import that we run. You can also tweak these and apply loaders on demand so you can disable the default from the config by using a double bang at the start of your import and then applying the ones that you want, like this. So if like I just wanted to use CSS and style here, I could do that. If I wanted to enable some other features here, I could do that. I'm not gonna talk a ton about plugins. Plugins basically inject custom build script, custom build steps into your build. And we're gonna look at one plugin specifically that makes that work. And that is the extract text webpack plugin. If you've ever used webpack and you've used it to compile CSS to a style sheet, you've probably used this plugin before. You use it basically like this, where you're just requiring it here at the top and now we're gonna pass it into the plugins array that we discussed earlier. And then down here in our loader, we're gonna call extract on extract text plugin and run the loaders that we want. And what this is gonna do is it's going to extract the CSS that's getting compiled into a style sheet, main.css that we can then use. Just a quick difference here. This is webpack one syntax and webpack two. Webpack two is either full release or beta, but very, very close. It's been a little bit since I checked, but keep an eye out for that. And here's how that works. So here we are in app.css. This is the gradient that's being applied, burlywood and corn silk. We import it here in app.js. We import the CSS file and it compiles and then we load it here. We link to it in the head, right? And we can change that if we want. So if I wanna go in here and maybe update that to like a value that's a little bit brighter, I can save it. We can go back over here. It will update for us and then we're gonna reload and then we're gonna wait and wait and wait. We just made a CSS change. Okay, there it's back, cool. So that's how that works. It's pretty easy to switch on SCSS too. You can use the sassloader to do that. You see down here we're passing sassloader into our loader chain and here we are in app.scss, the other change here is that we're updating our regex config so that it looks for both CSS files and SCSS files. And if we go into that file, which is extract.scss and we save a new gradient, I'll get updated and then we'll reload and we'll wait and wait. Made a CSS change, just waiting for it to load. Cool, a little brighter, nice. It's pretty easy to do, you just need sassloader and node sass, those are the two requirements for this. Let's look at the next thing in the loader chain, which is CSS loader. CSS loader does some things that you would expect a transformation tool on CSS to do, like minification and source maps and it does some things that you wouldn't expect it to do like enabling CSS modules, which I'll touch on a little bit later. The minification piece is powered by CSS Nano, which is a really powerful tool for minifying CSS. Definitely check that out, it's got a great CLI, it's post-CSS plugin, all kinds of cool stuff. So let's look at an example. Here we have a CSS file, it's got six, five selectors, there's some zindexes getting set, we're setting up a counter, pretty simple. And when we run CSS loader with minification, it's gonna come out like this. This is what webpack deems like a safe transformation, which means it basically just minifies everything. You'll see it's changed the counter to just a single character because that doesn't matter. So it shortens fewer bytes that way. But this is a safe transformation because we're not gonna break anything doing this. You can enable unsafe transformations in CSS Nano by passing additional query parameters here to CSS loader. So in this case we're passing minimize and the zindex reducer to the CSS loader, and that's going to actually run a reduce on our zindexes, so 1,000 becomes one, 2,000 becomes two and 1,500, no, 2,000 becomes three and 1,500 becomes, I'm doing that wrong, but you get the idea. Sub, sub, sub, sub, sub, middle, middle. That makes sense? Sort of? Cool. So that might be all that you need if you wanna start using webpack to compile some CSS. This is how I started using it. If you just wanna try it out and get it to write some CSS files for you and see how it feels, that's that you can do that just with extract text plugin. There's a but here though, and the but is that what we're doing is sort of moving against the grain of what webpack is meant to do and how it's supposed to work. Extract text plugin is kind of a bummer. It's a useful bummer, it's writing CSS files for us, but webpack really understands styles as data and wants to manipulate them and handle them that way. You might have noticed that there's one real problem here which is that every time we make a CSS change, we have to reload our page and it's really slow. It takes forever. It's taking a particularly long time because I'm actually throttling the request for demo purposes, but this is an interruption to your flow to change one line of CSS and then wait for a reload. It's kind of a drag. You can automate this a little bit using the live reload plugin.  But even then, you gotta download everything again. You might have a bunch of app code that runs. You might be on a local server that's got a bunch of other stuff coming into it and to iterate on a user interface with this kind of a flow is pretty bad. It's not fun and it really breaks up your flow as you're trying to work. There's another problem too which is that we're render blocking. We've got this style sheet in the head and we have to wait for it to download before we can see the page. So that's not cool. Webpacking fix this. And we fix it actually by just taking things away. We just stop using extract text plugin altogether and we just use style loader. So let's take a look at how that works. If I go into my file and I update a value and I save it, you'll see it just update, right? Now, this bundle is a little large so that update will take some time depending on how big or small your bundle is but we've like eliminated the reload just by no longer using extract text, right? And this is a small example but once you start using it to write all of your CSS, you'll find it like so much nicer and all of these kind of roadblocks go away. You stay in the zone a lot better and it's actually just more fun to write it this way I think. This is what the webpack config looks like in this case. Pretty simple, right? And this is how it works. It's a two-step process basically. We are loading a JavaScript bundle asynchronously at the bottom of the page. When it loads, it injects in style tags the styles that you've authored just like that which is pretty cool. This is a quote from Jed Schmidt who is a talented JavaScript developer. He said the worst things about CSS are cascading and sheets. I'm not arguing in favor or against that statement. I just wanted to put it up here to kind of give context to what we're looking at. But what we've done here obviously is we've removed the sheet, right? There's no sheet anymore. Putting in style tags. So we've solved a couple problems. We're not render blocking anymore which is really nice. You probably want to pair this with like a critical CSS solution, something like that so you could get some styling at the top of your page. We're hot reloading which is really nice and I want to emphasize like, you don't just use this for CSS, use it for everything, use it for JavaScript, use it for HTML. You can hot reload all your code if you want to. And the other thing that's really cool about this is there isn't, you don't need a framework to make this work. You don't need to be writing React or Angular. You don't need to be in a single page application. You can just use this on a plain HTML page or like Ali where I work, we work in WordPress a lot and this is a solution we often use for loading styles. So I think when a lot of people think about webpack they think about it in the context of React and single page applications. It's powerful enough and flexible enough to kind of let you work outside of those environments. We're also kind of keeping it simple now which is cool. We've removed the extract text plugin from our config. We removed our style sheet. Everything is still working and our flow has improved. So anytime you're kind of like deleting things and everything still works and you're actually working faster those are like kind of good code smells, right? This feels good. In that vein, we should talk a little bit about Post-CSS which I think can kind of help you move in the same kind of direction. Post-CSS you enable with a loader just like other things in webpack. Turn it on here, see? We're just chaining it in the loader here. Post-CSS then CSS then style loader. And now in addition, we're gonna pass a method into the exported object here, Post-CSS. Which returns an array of the plugins that we wanna use to transform our styles. And what I've pasted here is kind of like a boilerplate set of plugins that I often find myself using when I'm writing Post-CSS. When I'm writing CSS and using Post-CSS to transform it. So let's take a quick look at how that might work. If we're here in app.css This isn't an SCSS file, we're just in a CSS file but we can import other CSS like you might in SAS. We can set custom properties. These are not real custom properties. These are actually just variables in the context of Post-CSS so they don't function like a real CSS custom property will. I'll show you how the transform looks in a second. We can set custom media queries. We can nest styles if we want to and we can actually do some basic math too down here. And here's what the transformation looked like. Again, this is gonna get inlined in the document head, a style tag. Here's the styles or the CSS file that we imported. You'll see everything got nested properly. Our custom property got transformed into a static value. Our math was performed, that's kind of a cool thing. It's like a calc reduction here. It's just dividing 10 by 16 to get an M value. And we're also getting some auto-prefixer action going on there. It's kind of cool. This is kind of like a little aha moment for me when I hit it, I was like, oh, this is like, kind of like SAS but I'm not using SAS anymore. That's neat. You can use them together if you want to and a lot of people do. If anyone uses SAS and uses auto-prefixer, you're already doing that because auto-prefixer is a post-CSS plugin. So you can chain the loaders in Webpack if you want to. You might not need to though, which is cool. There's a few reasons. Post-CSS can be faster than SAS. Your mileage will totally vary. It depends on the size of the string that you're transforming and the nature of the transformations that you're making. But you may find it to be significantly faster when you build. I certainly have. Another thing that's cool about post-CSS is that the same transformations as SAS are possible along with many, many more because post-CSS has a plugin-based architecture. You can write any transformation that you want. It raises the question, if you're already using post-CSS for something like auto-prefixer, why not go the extra mile and simplify your build by removing SAS altogether? And then the last point is something I've thought more about recently in the last year is that this idea that maybe a tool like SAS was giving me more than I need. I don't like to use, for example, Mixins or Extends in my code. Miriam talked a little bit about how opinions come from Mixins, and I think that's totally true. And so we were writing SAS and we were ending up with a lot of custom shorthands for things with all this Mixin logic that was really a bummer. And I wrote a lot of that code, so I learned from my own mistakes. But with post-CSS, you can explicitly define the transformations that are possible on your code through Webpack, right? So if I only want to use a certain amount of transformations, I can explicitly define those. And then any other dev that jumps into my project bumps into those same directions. And this is sort of the idea that some restrictions, especially when you're working with a large team, have a project that a restriction can actually be a helpful opinion and can help kind of keep your code base behaving in an expected way. So let's take a look at some fun stuff, too. CSS modules. A few people touched on this. I wanted to just take a quick look at it. CSS modules comes along with CSS loader. You enable it as a query param right here. And it kind of works like this. In our app.css, we have a selector. You can import that in your JS file. And this is a ES2015 template literal where I'm just adding the class here. And then when you compile it, it's going to turn your class name, my class, into this crazy hashed class, which is just this gobbledygook of characters. And you would then get the same thing in your template literal. That might look super weird, but it's actually kind of awesome because what's happened here is we've locally scoped our selector. This is guaranteed to be unique. And we are not going to have any naming collisions. We don't have to rely on a naming convention to guarantee that our selectors are unique. We're moving our CSS out of the global scope entirely. That example wasn't super readable, which is kind of a bummer. But you can enable that with a separate query param like this. I'm not going to go into what all of those key keywords are, but this comes from the web pack docs. And then instead of that long hash string that's really, really hard to read, you're going to get a selector that still is readable and has the context that you gave it, but is also still guaranteed to be unique and localized. So now when you kind of inspect your styles, you'll still be able to see where they're coming from. I'm fairly certain there's a way to enable source maps with this too. I find often that source maps are more trouble than they're worth just because they slow down the build. But that's sort of a personal preference. That's really cool. Local scoping in CSS is so nice. Yeah, it sort of changes the way that I've started to think about CSS. I'm going to bring us back to that Judge Schmitt quote, where he talked about really not liking the cascade and style sheets. The CSS modules kind of eliminates the cascade because if you don't use any descendant selectors and all of your class names are unique, the cascade doesn't matter anymore. I know people have different opinions on whether that's a good thing or not.  So far, I've only showed you examples in JavaScript, which is cool, but maybe it doesn't have a ton of real-world application. So we should look at post-CSS modules too, enabled in Webpack. And this is going to let us use CSS modules on the server, which is also really cool. So instead of passing the modules query param to the CSS loader here in our Webpack config, we're instead going to enable this post-CSS modules plug-in and pass the scoped name down here. And that's going to do all of the same things that CSS modules did in the last example. But in addition, it's going to output a JSON file, where the keys and values are the class names that you defined and the hashed class names that come from CSS modules. And you'll see here in a super contrived example that I just threw together, imagine if you were in a PHP template or something, and you wanted to read that JSON and then output the hashed class in the template file, you could do that. That's just PHP, but really if you're writing in a language other than JavaScript that can understand JSON, you can use CSS modules server side. I haven't used this in a production environment. I just think it's kind of a cool technology, the server side piece, specifically, I mean. And so we're sort of experimenting a little bit here. I want to look at one more thing, which is post-HTML. Post-HTML is a pretty new technology. It's principally similar to post-CSS, but the idea is that you take an HTML or an HTML-like file and you apply a set of transformations onto that file through plugins. So in this case, we're using the post-CSS loader here in Webpack, along with some other loaders. And down here, we're using this post-HTML CSS modules plugin and passing in that JSON file that you saw here. And that means that we can do cool stuff like this, where in our input HTML, we can define a CSS module here and we can perform a transformation on it and get the hash class name on the output HTML. Kind of cool. Yeah, so that's sort of the spiel of Webpack and CSS and like dev-ing on the front end with Webpack. If anyone has any questions, please come and get me. Afterward or up here. And thank you. Appreciate it. Come to Inside the Dev Studio. Thank you. Yeah, it's cool. Cool, we'll just keep this thing up. Sweet, so a couple of questions for you. How are you using Webpack with HV2 and bundling? I tried to do it on a project recently and actually got bit by another problem all together which is that the project that we were building it for wasn't going to be running HTTPS. And you can't use HTTPS without HTTPS, so it was a non-issue. I've still yet to actually hit a large client project that I can use HTTPS on. I'm waiting for it to happen. I'm sure it will, but I still feel like the technology hasn't caught up with it, especially if you're working with clients that serve ads. A lot of ad code is not secure and doesn't even let you run HTTPS, so it won't even be possible. There's been some really cool things written by Khan Academy about HTTP2 and Webpack, so check out what they've written. Are you doing any type of bundling in your JS where you're splitting it out and making use of Webpack's features that allow you to create smaller bundles? Yeah, for sure. That's one of the best parts about it. I wanted to talk about it here, but it was going to take me too long, so I left it out. But code splitting is huge. You can essentially break up your JavaScript bundle so that you have one common bundle that's getting loaded everywhere, and then based on routing or other sort of conditionals, you can load asynchronous bundles on the fly, which will really help improve performance and cut down on the build time, too. It's a really neat technique for performance, getting over that. How are you deciding how to split your bundles? That was a question that I had. Yeah, it depends. You can kind of manually do it if you want to just play around with, OK, here's a condition where I bundle once and here's a condition where I bundle again. More often than not, the simplest way to do it is just split out your vendor files. So if you're loading libraries or something, split those into a commons chunk or something like that and then load that. That's what we're doing more often than not. If you're really building a large SPA, you're going to want to do something more involved. Are you using this type of bundling in conjunction with any other techniques, like preload, where you might load one of your bundles on your home page, and then start preloading and pre-fetching for the other ones? Yeah, that's a good question. I'm not. No. I think it's a cool idea. I haven't really had a chance to play with that, but I'm super excited about it. I am too. I haven't had a chance to play with it. I'm just going to see if you knew. Oh, yeah. Another, I've actually been chatting a lot with folks about Webpack. We're using JSPM, and I want to move us over potentially. But are you using Webpack in conjunction with any other build tools? So when we use it, we run the tasks in NPM. So you just set up the commands that you want to run in NPM and run it that way. Because you can do a lot of your steps in Webpack, a lot of it ends up getting contained there. So we're linting. We're doing that in the Webpack build. And obviously, like any transpilation is going to happen in there, too. So for the most part, no. Webpack is going to handle it all. You might have some custom node scripts that we might write for specific things. But mostly, yeah, it's happening in Webpack and just running the tasks with NPM. Cool. So you've gotten rid of Gulp or Grunt. Were you using those before? Yeah, totally. And those are great tools. Yeah, no, I remember the first time I used Grunt. I was like, oh my god, this is so fun and great. And Webpack feels kind of like an evolution of that for me. Yeah, I think the thing that I've let slightly reticent about is Webpack is all the configuration, which I think if you're coming from Grunt, you're just like, OK, I get it, configuration. But when Gulp for me was like, great, Stream's so nice. Yeah, it's like the one part. No, I agree. Yeah, the config is the most hated thing about Webpack. And there's some justification for that. But I also want to emphasize it doesn't have to be super complex. There are some good boiler plates up there. I've got one on my repo, on my GitHub that I use for personal projects. So it doesn't need to be this big thing that everyone has to know about and manage. It can be a pretty lightweight thing. And the docs, while they are sometimes difficult to parse, are super, super thorough. So do check that out. Yeah, I've definitely found the docs a little like, whoa, what's going on here? So you had a slide up about community and Webpack. And community is something that I think is so valuable around open source tools. I'm a big ensass. And to me, it's like a badge of a community and a sign of what we believe in even more than a technology.  Can you talk a little bit about the Webpack community? Yeah, I mean, I don't want to speak specifically for the repo maintainers and stuff. I'll just say like, I'll talk about it in the context that I kind of have encountered it, which is like, as someone who wanted to try out these tools and then started using them and then started using them on client projects, I found that there was just such a wealth of information out there. And that information comes from official sites, like the doc site. But it also comes from people just posting tutorials and writing a blog post about how they started using Webpack to do X or Y. And I feel like those technologies that can kind of reach people that way and get them to offer those things up online, open source, that makes a really big difference to someone like me who is just trying to kind of find my way through something in the dark, because mostly that's how I learned how to do things, right? It's just like, change this. What works? What breaks? Help me, sort of like that. That's the best part about coding, right? Always have to break it. I mean, it's not really broken. It's just like, in the moment in time, it's a little broken. So do you have any thoughts on how Webpack will revise itself as some more of these tools come into the browser? And I know Systemloader is one for ES6. Yeah. Some. There's been some written recently about how Webpack's bundling logic may be kind of making the bundle size larger than it needs to be. So specifically, if you imagine you're importing the same module multiple times throughout your code, Webpack may not be optimizing that in the way that it should. Webpack 2, I think, adds tree shaking, which is this idea that if a bundle gets imported twice, it shakes the tree and then drops the reference to one of the modules, because it doesn't need to be there, which should dramatically cut that size. There's a sort of alternative out there right now called rollup that people are using, which looks really, really awesome. And I actually know there's been some discussion in the Webpack repo about trying to merge aspects of rollup into Webpack 2. They definitely seem to take the performance implications of that seriously. Yeah, we use rollup. It's great. Definitely a tool to check out for folks for reducing the size of your bundles. It was kind of crazy talking about weight, like the size of our repos and our bundles and our NPM node modules folder, like all of these things that make our lives easier. And then in some ways, you're just like, whoa, look at all this stuff now. Yeah, it's true.  And that's kind of a problem, I think. I feel like people are sort of starting to think about that a little bit more. But yeah, I don't know. Like I was sort of saying, the carnival funhouse ride, I feel like Webpack contains the madness a little bit for me and kind of lets me take advantage of the parts that I like and that seem helpful and not have to fight with my tools, which I don't like to do. On that, is the only way to get hot reloading with style loader? And if that's the case, does that mean that one has to go this route of basically injecting your styles on the page? I think that it's impossible to get hot reloading with extract text plugin. I tried for a while and failed. There's a different loader called extract loader, which is slightly simpler. So maybe it's possible with that. But I don't think that's as good at compiling as the extract text plugin is. So my answer in my experience is no. There's no way to write a sheet and hot reload that. But there are smarter people out there than I am, so maybe they've solved that problem too. So how does that affect performance at all of the pages? Is it because JavaScript is loading async? So by then, you've got your complete DOM document, so it's just inserting it and it's not really going to affect it? Yeah, that's exactly right. As long as you're loading it asynchronously and you're letting the DOM download, you really should pair it with a critical CSS solution for sure, because otherwise you just kind of get totally unstyled content for a while. But at least your content's there, right? At least it's loaded and you haven't blocked the render with your CSS, which is silly. And then how does this work? Because I think one of the good things about having the sheet is the sheet is cacheable. So are you also caching your HTML pages or not because of dynamic content? No, no, that's a really valid criticism. I've found on the projects that I've worked on, the benefit that I get from going the style loader route kind of outweighs that potential problem, but I think it depends, yeah. It always depends, right? The flow chart of making decisions in web, which is like, well, there's some option and then there's the it depends option. Yeah, and I sort of feel like, to a certain extent, like if you're making, you have to be allowed to make bad decisions with this stuff, so that's the only way that I can learn, so. So what bad decisions have you made with webpack and this stuff that you're like, oh my gosh, I'm never gonna do that again? Because it's like, you can set up the config to do all kinds of crazy things and it can have all these separate entry points and you can import your node scripts and it can be just a disaster for someone who's coming in to look at it and try and use it. And that's a problem that I've bumped into in the last year or so, where it's just too complex, right? So I'm constantly trying to make that better for people and make sure it's simple and easy to reason about when you jump into it. Great, all right, well thank you so much. Really enjoyed your talk.