Good morning and welcome to the first lecture in our course on chemical engineering principles of CVD processes. I think many of you told me that you have taken an introductory course on manufacturing of micro-electronic devices and I am sure many of all of you know that chemical vapour deposition is an essential step of this process in order to make a thin film on a substrate. Now the reason that chemical vapour deposition is fascinating to study is because it really brings together the various disciplines of chemical engineering. It involves chemical reactions, it involves transport phenomena and it involves heterogeneous equilibria, homogeneous equilibria, nucleation phenomena. So virtually everything that you have learnt in a good undergraduate chemical engineering curriculum you will have an opportunity to apply when you study chemical vapour deposition as a process. The definition of vapour deposition is that you actually deposit a layer or a film on a surface from a vapour phase. So essentially you have a gas phase that is in contact with a solid surface and you are condensing something from this gas phase which contains trace vapours as well onto the solid surface. So vapour deposition itself is essentially a conversion of a material that is in vapour form to one that is in the solid form. When you think about it there are obviously many circumstances we encounter in daily life that involve vapour deposition phenomena. Now there are two ways in which you can classify vapour deposition that is physical vapour deposition and chemical vapour deposition. The difference between the two is really crucial to understanding how CVD or chemical vapour deposition is unique when you compare it to physical vapour deposition or PVD. In physical vapour deposition what happens is that there is a compound or a metal or an element that is suspended in a gas phase which then gets realized as a solid or liquid film on a substrate. So the material that condenses is the same as the material that is present in the vapour phase. So some real life examples of physical vapour deposition what is the simplest one you can think of? Yeah dew mist. Essentially what is happening is water vapour that is in the air is condensing onto surfaces in the form of a thin film of liquid right. So that is a classic example of physical vapour deposition. Can you think of any others that would fall into that category? Soot. What is soot or chemical form? Right but where does the carbon come from? The carbon that deposits as soot where does it come from? Is it present as carbon in the gas phase? Right it condenses as carbon and you call that soot but is it present as carbon in the gas phase? Only as carbon. No in fact soot deposition is a very good example of chemical vapour deposition. In physical vapour deposition again remember that the condensed species has to be the same as the species that is present in the gas phase. Not just one of the species but the only species in the gas phase that gives rise to this condensate on the substrate. How about things like acid rain? Is that physical vapour deposition or chemical vapour deposition? Right I mean when you get for example corrosive films on a surface like chlorides or sulphates or whatever it is not always the case that the chloride that precipitates is present as the same chloride in the gas phase as well. There are some reactions that are taking place in the gas phase which dissociate the depositing molecule into various constituent molecules which come together at the surface to then form the film on the surface. So the definition of chemical vapour deposition by extension is where the chemical composition of the condensed phase is not necessarily the same as the composition of the same condensing element that is present in the gas phase. And typically chemical vapour deposition will involve multiple gas phase species which get transported to the substrate and condensed in the form of a single film. Again it could be a solid film or a liquid film although in the context of this course we will mostly be dealing with solid films. Of course the difference between the two is that when you consider chemical vapour deposition to form a solid film the only transport process that you need to be concerned with is from the vapour phase to the substrate. You can assume that once a solid film forms on the substrate it remains in place so you do not have to worry about the flow of the condensate. However we will look at a couple of examples where chemical vapour deposition happens but the condensate itself is mobile so it is actually able to move along the surface under the action of various hydrodynamic forces and so on. So it is certainly possible in general that CVD processes can lead to mobile condensates but in most manufacturing industries where CVD is employed as a process the whole idea is to produce a film which is very stable and which is well adhered to the substrate on which you are making the film okay. So let us talk about CVD. Can we think of some examples of chemical vapour deposition? We already talked about a couple you know soot, acid rain, any others that you can think of that you encounter just about every day in your life. Although one of the examples I am going to talk about we encounter less and less in day to day life than we used to but I think we still do, I mean I do not see any here but maybe in some places. Any examples that you can come up with? How many of you still remember bulbs, incandescent bulbs, filament? They are still around right, not so many but still around. So what happens to a bulb? When do you change a bulb? How do you know when the filament breaks? It just it does not turn on but when you see the bulb what do you see? Black. So what is that black thing? Any idea? What is the chemical composition? What is the filament made of? So what is the deposit? It is actually pretty much tungsten. So is that a physical vapour deposition process or chemical vapour deposition? Yeah because bulbs are not hermetically sealed or anything so yeah the atmosphere inside does contain oxygen. See this is a case where you have a filament that is tungsten and the film or deposit that is forming on the bulb wall is also tungsten. So you would conclude that it is a physical vapour deposition process right. Is that correct? Yeah so remember the definition of physical vapour deposition is that the element that is depositing must be present in the gas phase in the same form. In other words just because the filament is tungsten and the film is tungsten does not mean it is physical vapour deposition. What you need to look at is how is that tungsten present inside the bulb in the gas phase? Is it present only as tungsten or no? Well when you think about it these bulbs do let in as we were saying some oxidizing species. In addition all these bulbs are actually filled with some inert gases and sometimes some other additives as well. The filament burns at a very high temperature right 2000 Kelvin whatever so when that happens the as the filament is burning it is emitting tungsten vapour. Tungsten is vapourizing obviously but before it can get to the bulb surface which is basically at room temperature it actually undergoes several chemical reactions. In fact the number of tungsten containing species inside a tungsten filament lamp is of the order of close to 100. So even though the filament is tungsten the film is tungsten the tungsten element is getting transported from the filament to the bulb surface through the transport of many many chemical species or compounds that contain tungsten as an element. For example it could be certainly tungsten itself is one of them but it is not the only one that is the key point to remember. The tungsten is also being transported in the form of tungsten oxide, tungsten nitride, tungsten chloride, tungsten oxy bromide I mean there is just a large number of chemical species that are present inside the bulb that are carrying the tungsten to the bulb bulb wall. So that is a classic example of chemical vapour deposition. In fact in our next lecture we will talk a little bit about how do you model that you know what is actually going on inside a bulb and how can you design a bulb to maximize its lifetime you know when the lamps were first the bulbs were first designed the lifetime was about a week. Now you know it is virtually a very very long time right 2 years, 3 years even longer. So something was done to improve the reliability of these bulbs so and it involves some very interesting CVD principles. So we will talk about that as an example of a real life situation it is not a commercial CVD application but it really illustrates the principle of CVD extremely well so we will take some time to discuss that. Another real life example which is not a commercial CVD process but one that again involves the formation of a condensate on a surface which is very different in composition from the gas phase is you know corrosion products. Combustion as you know is a crucial process for energy generation and if you look at the energy scenario today we are increasingly burning dirtier and dirtier fuels because we do not have a choice and of course in India we burn a lot of coal but even when you are burning liquid fuels all liquid fuels contain impurities. The most common impurity from a corrosion view point is actually sulfur. The liquid fuels are hydrocarbons but virtually all of them come with suspended sulfur as one of the impurities. So in a combustor you are burning the fuel so you are essentially mixing it with an oxidizer and the most common oxidizer that is used is air but air itself has impurities as well particularly in marine environments the air that you ingest into a combustor can have salts for example so you can have sodium chloride and so on. So when you take this fuel with impurities and oxidizer with impurities and you burn it again you reach very high temperatures you know the adiabatic flame temperatures can be of the order of 2000 Kelvin or so and so what happens then basically everything dissociates right. So in a typical combustor in the gas phase you have hundreds of chemical species that are present. So the sulfur which was originally in the fuel after the combustion process gets converted to many, many species that contain sulfur for example could still be present as sulfur but SO2, SO3, H2SO4 you know huge number of compounds. And similarly the air the impurities in the air such as say sodium chloride many different forms and so what happens basically all these species are present in the gas phase and they react in the gas phase but on a surface that is exposed to the flow of the combustion gases whether it is a boiler or whether it is a gas turbine whatever surface you are using to extract either energy or momentum from the combustion gases. Now receives a condensate which is very different in composition from the species that were present in the fuel and in the oxidizer and also very different from all the vapor species that were present in the combustion product gases. For example when corrosion happens it is typically due to sulphates that condense and in fact the sulphates are known as molten salts and the process by which they corrode the surface is known as hot corrosion. And if you look at the combustion industry hot corrosion corrosion in general and in particular hot corrosion due to molten salts causes losses that amounts to billions of dollars a year. So it is a very critical phenomenon again to try and understand characterize control and so on. So if you look at the process by which for example sodium sulphate liquid forms on a surface it is another classic example of a CVD process involving again many principles to do to model the combustion process you have to apply kinetic theories as well as equilibrium thermodynamics to predict the temperature that is achieved when combustion happens and to predict the composition of the combustion product gases. And then to predict how these product gases that are the product gas that is formed after the combustion you know how does the composition of the gas change as the temperature changes because the mainstream of the combustion gases is at a very high temperature but the surfaces that the gas comes in contact with is at a much lower temperature. So there is a temperature gradient that gets established. So at every location in the flow path a new equilibrium is established corresponding to the local temperature and the local pressure. So the composition of this gas that is flowing constantly changes as it flows. So again you have to consider chemical kinetic phenomena as well as equilibrium phenomena to understand how the composition of the product gas changes. And once you have done that the next phase is you have to then calculate the associated transport rates at what rate does the depositing species get transported to the surface. And that of course requires that first you have to do a momentum conservation exercise to understand the velocity distributions then you have to do you know heat transfer calculation to establish the temperature distribution and then using the velocity distribution that you have obtained through momentum conservation and the temperature distribution that you have obtained through energy conservation you establish your mass transport rates and phenomena. And this all has to be done in a very self consistent manner. So it is an iterative process where you are constantly solving the three conservation equations mass energy and momentum together with the thermodynamic constraints to obtain self consistent values for the composition distribution of the product gas as well as the associated rates of transport of the depositing species. So to do something as simple as estimating for example at any location on a turbine blade what is the thickness of this molten salt layer that is depositing you have to go through this very very complex calculation to obtain that local thickness because that local thickness of the molten salt depends on the rate at which the salt is arriving from the gas phase but in the case of particularly the rotor blades you are also constantly the condensate is also moving on the surface. So you have to establish a balance not only between the arrival rate from the gas phase but also the flow along the turbine blade and why is that important because the local corrosion rate depends on the thickness of the local molten salt layer right. So in order to do a corrosion map of a surface you have to do all these calculations up front to obtain that and then based on your corrosion mapping you can actually come up with a protection scheme you know if you can identify which areas of a surface are particularly susceptible to high rates of corrosion you can actually provide additional protection there in terms of a protective coating and so on. So this is another classic example of how chemical vapor deposition in a non-commercial process becomes a process that is very very critical for you to understand and control. So these are two examples that we will look at initially you know the bulb blackening problem and the hot corrosion problem as two examples of unconventional applications of CVD and then we will look at some more conventional applications of CVD such as you know formation of you know films which is I believe the application that you have some familiarity with. In commercial manufacturing the primary use of chemical vapor deposition is to make very very thin films on a surface which have certain characteristics that you cannot obtain through other means. For example a chemically vapor deposited film not only is very thin but it is also very uniform. It can follow contours it can even follow steps I think many of the micro electronic devices that you may be familiar with have a configuration which has fairly steep features. In a conventional coating process it is very difficult to follow these patterns and obtain a uniform film thickness. However the advantage of chemical vapor deposition is that because it is based primarily on vapor diffusion to the surface it can provide a uniform thickness pretty much on every exposed surface. There is no corner effect, there is no edge effect, there is no end effect you get a perfectly uniform film on whatever surface that you want to coat. The other advantages are that in a CVD process the film that you get the structure of the film can be controlled by controlling the vapor deposition conditions. For example if you want a highly crystalline film you can set your process conditions so that the film that you contain can even be a single crystal. It means that you have to adjust your operating conditions particularly temperature, pressure and your reacting species in order to obtain a crystalline material on the surface. On the other hand you may be interested in more of a amorphous film which has less structure to it and again with the CVD process it is fairly easy to tune the conditions so that you go from a condition of depositing crystalline materials to a condition of depositing amorphous materials without having to essentially redo the entire reactor. All it takes is a few small changes in the operating conditions. So on one end you have the crystalline film which has a very very clear structure to it and the other side you have the amorphous film which has very little structure to it and what is in between do you know the term for it plasma is the gas phase. The film itself the intermediate structure is known as polycrystalline so you go from crystalline to polycrystalline to amorphous and it is very interesting that in a CVD reactor can essentially just literally turn a knob and get whatever type of film you want and also the other advantage is if you make an amorphous film and then you decide later that you want a crystalline film you can actually do some post treatments to the amorphous film to make it into a crystalline film. So you can control not only the rate at which you are depositing the film and thereby the thickness of the film but you can also control the structure of the film because the other important aspect is the composition of the film. You want to have very tight control over the chemical composition of the film. Here again the advantage of a chemical vapor deposition process is that the whole thing occurs in a very well controlled environment. You control the reactant species that you are feeding into the reactor and you control the temperature and pressure and the velocity distribution inside the reactor. So you can predict and achieve exactly the composition that you are looking for. The possibility of impurities getting integrated into the film is considerably lower than in other deposition processes that you could think of. When you talk about physical vapor deposition for example, mostly what is done is you take a solid material which is of the same composition as the film that you are trying to achieve and then you entrain material from that solid specimen into a gas phase and then make it deposit onto the substrate. For example if you are trying to make a silicon film you will take a silicon ingot and essentially vaporize silicon from it and try to make it deposit on a surface. That is a physical vapor deposition process. The vaporization of silicon from that solid silicon can be done thermally, mostly it is done using high temperatures to get the vapor pressure up or it can be done by actually bombarding that silicon surface with some high energy materials. It could be high energy ions, it could be plasma, it could be laser, something that provides sufficient energy input to the surface to actually knock off molecules and get them entrained into the gas phase and then you deposit it onto the film. Now the problem with physical vapor deposition is that A, it requires very high energies. How do you get silicon to vaporize? You have to go to extremely high temperatures right or you have to use a substantial energy source to make it happen. So physical vapor deposition has the potential to be even purer than CVD because there is only one species that is present, the source and the final product are the same. However it is not an easy process to design, it is not an easy process to control and the deposition rates can be very slow also. And therefore chemical vapor deposition is a very elegant solution. It basically tells you that your source or your the reacting materials do not have to be of the same composition as your product material, it gives you a lot of flexibility and you can actually achieve the film using various methods. For example CVD is conventionally classified into 4 methods. The first is pyrolysis where you essentially take the species that is containing the element that you want to deposit and just thermally dissociate it. For example silane is a very widely used precursor for depositing silicon right, silane is what? SiH4. So a simple pyrolysis reaction will simply be SiH4 going to Si plus 2H2. Is that a CVD process? Yeah, because in the gas phase silicon is present as silane but in the condensed phase it is present as silicon right. So very clear and easy example of CVD and it is a very widely used process in industry as well. When people are trying to make silicon films using CVD, thermal dissociation of silane is certainly a process that is used. It is particularly suited for making crystalline silicon. So if you are trying to make pure single crystal silicon pyrolysis is widely used. The other process the second one that is widely used in CVD is reduction. For example you can take silicon tetrachloride SiCl4 and react it with hydrogen in a CVD reactor. Again you will get silicon and HCl. So this process of SiCl4 plus H2 going to Si plus 4HCl or whatever. Another example of CVD right, you are making silicon but the silicon in the gas phase is not present as silicon. The advantage of this process over pyrolysis is that you can do it at a lower temperature and the lower the temperature you use in your CVD the more polycrystalline or amorphous the film becomes. So the higher the temperature you use the more crystalline the structure and in fact the process that is used to turn an amorphous film into a crystalline film is called annealing and it is basically just you know baking it at high temperature for a long period of time and it changes the structure from a amorphous structure to a crystalline structure. So we have talked about pyrolysis and reduction. The third CVD process is oxidation. This is particularly used to make oxide films. So for example you could take silane again SiH4 and react it with let us say O2 and you will get SiO2 plus H2. So that is a CVD reactor in which you are making a silicon oxide film using oxidation as your primary reaction method and the fourth one which is used to make nitrite films is nitridation. So you can take a compound like silylene which is SiH2Cl2 reacted with NH3 and you will get Si3 and 4 plus HCl plus H2. So nitridation and also another film that is usually made using such techniques is carbides. For example if you want to make silicon carbide you can do that using a CVD reactor as well. So there are essentially these four types of CVD processes that can take place for making various types of films and as I said the lower the temperature and pressure that you can operate the reactor at the more amorphous will be the structure of the film that you make which is in some cases advantageous and in some cases is not. So depending on the type of film that you are trying to achieve you will design the reactor appropriately and choose the reactants appropriately and so on. The CVD reactor itself there is really two major types. There is what is known as a hot wall reactor and what is known as a cold wall reactor. Since we are out of time on this lecture we will start a discussion of these two reactor configurations in the next class. Any question on what we have discussed so far? Sir in the main process can the metal be reacting with the components in the reactor? And the metal should not be touched no it is it is definitely reacting. For example if you are trying to deposit silicon right the silicon in the gas phase is reacting with all the other species that are in the gas phase and getting converted to for example let us say you have introduced silicon in the form of silane SAH4. The silicon does not stay as SAH4. Silicon is the element right and SAH4 is the species or compound. Silicon element is not going to get transformed it is going to remain as silicon unless it is a nuclear reactor which you know CVD reactors are not. But it is going to change partners so the SI in SAH4 once it gets into the CVD reactor will be present not only in SAH4 it will be present in SAH2 H2Cl2 it will be present in as just SI it will be present in silicon oxide. So that silicon element can be present in dozens of species inside the chemical reactor. So that is the whole point I mean you have to separate the element from the species. The element is what is depositing but that chemical element is being transported to that surface as part of many many chemical species that are present in the reactor that is what we call multi component transport you know the transport phenomena is not restricted to a single compound that transports the element but the element is distributed among various compounds which are all getting transported to the surface. Okay now you are talking about the substrate itself on which the deposition is happening now the substrate is typically inert I mean it should be an inert surface it cannot participate in the reaction. What we are talking about is the deposit that is forming on top of the substrate that is participating in the chemical reactions also. Anything else okay so I will see you tomorrow then.


Good evening everyone first of all a big thanks to Vikram and Sam for providing me this opportunity to introduce or to talk about cinema as a media where the ad-ex is just one percent and we just heard that as a AV media television has 38% ad-ex and digital as part of the video media is close to 8-9 percent and cinema is just one percent. Over the last one year we have been working tirelessly to better align ourselves with other AV media which is television and digital the way in which we research and we talk about our media and we also develop the tool to how you can actually book your campaign and maximize your ROI while booking your advertisement in media but it has never been easy to include cinema in your AV schedule. Why cinema? Why should I care? This must be the question which is there in your mind and I believe whenever my sales team go and meet the brand manager's agencies they face these questions very often but at the time where advertisers are faced with challenges around attention the brand safety and viability we believe that cinema offering has never been more powerful than today based on IRS data cinema in India delivers a massive 2.25 crore admits every week which enables advertisers to engage with the captive audiences every one of whom has actively chosen to experience the most premium content on a large screen which delivers the cultural moments. According to study done by DCM UK cinema helps to convey a compelling story to generation Z which is 16 to 19 year old and Gen Y which is 20 to 34 years old who are the first generation digital natives and are proving challenge challenging for the advertisers to reach and engage with. These young audience are more receptive to ads in cinema as compared to other medium we have seen the other two media which is television and digital they are actually a frequency media on the other hand cinema is a impact media in addition cinema provides more flexibility to advertisers with short lead times ability to target based on films theaters and time big screen provides opportunity for brands to build stories that are emotionally captivating and also native to cinema which is otherwise challenging in other media to enhance the brand associations and influence the future purchases. So in India out of 108 crore 12 plus population 37.7 crore population have access to 9,622 screens across 6,290 properties in 2,141 sub districts which means 30% of the total Indian population has access to cinema screen. Majority of the screens are in HSM market which is 5,097 while the balance 4,525 screens are in south. So we have envisaged the cinema advertising into two powerful channel so one we call it as a prime screens they are nothing but all the multiplexes plus Hollywood release centers so there are 5,851 prime screens in India and there are single screens which are standalone and which has a mass appeal and there are 3,771 single screens in India or the popular screens in India. Cinema is the primary source of entertainment for most people in our country while there are other options that may keep cropping up. Cinema still remains its own unique place in the heart of Indians and excellent example of this the sheer number of movies released each year which are more than 1700 across 22 languages on an average there are 30 plus movie premieres happening every week which makes us the highest film producing country in the world. This establishes the scale and diversity of the cinema in India. Despite this despite highest number of movies produced despite India having a vast and diverse screen network cinema being religion in India and one of the highest words footfall it gathers cinema adex is just one percent so when I looked at the cinema adex I then realized there are existing challenges vis-a-vis the cinema as a medium so there are some myths around it there are way the advertisers are looking at cinema as a medium the first myth is cinema is an expensive medium because that is what we keep hearing whenever we go for selling another myth which we I had been discussing with Vikram so there is a we I call that as a myth that cinema is has a very low reach because as per Irish data cinema is there are six six crores around six crore cinema admits every month out of 108 crore so it looks like a very small myth but we will discuss this myth why it is a myth going forward there is also a myth that audience are not seated during the ads advertisers focus on multiplexes in metros and tier one cities so that has been seen and that's where basically we are seeing there is a big missed opportunity and we have also seen a typical phenomena of the advertisers focus only during the mega releases while talking about the myth cinema is an expensive medium before making this judgment that cinema is expensive it is very important to understand the cross-media effectiveness and the ROI for any campaign so in terms of ROI can be measured in terms of what is the percentage increase in impact per person before the campaign and after the campaign there are five key brand metrics which is used to build the brand score and which drives the sales brand salience which talks about how to keep your brand in the top of awareness compared to your competitor brand love how much people love your brand brand differentiation so the campaigns which focus on differentiating bad brand from one to another in terms of its features finally the brand consideration where you actually make your viewers or your audience your customer by your product and finally the brand recommendation where basically you would like people to talk more about your brands and you start recommending you start getting recommendation from your customers worldwide there has been a cross-media effectiveness studies which has been conducted across these brand metrics and in the next few slides I will present to you the media effectiveness for each of these brand metrics and how overall brand score is affected by various AV medium based on a study which is done and published by DCM UK when you talk to brand salience the AV contribution to brand salience so the impact per person with 1.8 frequency with the exposure of 1.8 on cinema the salience the brand salience goes for soon cinema goes up by 2.6 percent whereas TV it goes up by 2.5 percent and the digital it is 0.8 percent so cinema and TV are the most valuable AV media contributors to the awareness per person reached when we talk about the brand love cinema delivers three times the impact visa is digital on brand love and delivers almost twice the contribution of TV per person reached visa is brand difference again cinema delivers two times the impact of online video and helps brand stand out highly in competitive market when you actually look for converting your audience into a customer which is brand consideration cinema delivers huge five times more impact compared to TV and on in terms of the brand consideration so depending on your campaign objective you can actually decide what is the right media mix in terms of brand recommendation cinema helps reach the right people in a engaging environment so in summary cinema as an AV medium delivers the highest impact per person which is 2% increase in impact per person at a lowest frequency of 1.8 in contrast TV delivers 1.4% impact per person after 10 frequencies while online delivers 0.7 percent impact per impact per person with a frequency of five so when cross media effectiveness and ROI is considered even at CPT of thousand rupees per 30 seconds creative cinema is 74 percent more economical than digital at CPT of 300 rupees per 30 seconds although in India there are no such cross media studies which are conducted with cinema in the AV mix we are very happy to work with brands and conduct such studies to understand the impact of various media and the role cinema plays towards the campaign objective so if you see TV and digital they are frequency media cinema is impact media actually cinema as a impact media acts a media multiplier if you are mixing you are doing a proper AV mix and if you include cinema into your AV mix so as per the study conducted by again DCM UK TV and online if you have TV and online together the impact per person goes up by 0.7 percent television alone is one person however TV cinema and online video if you club it together into your media mix the impact per person goes to 1.3 percent for the whole reach and TV and cinema the impact per person is at 1.6 percent so in summary cinema scores highest in all key brand matrix cinema delivers higher impact much more economically cinema provides multiplier effect when combined with other media so there is a second myth which we came across whenever we interact with brand managers or the agencies that based on IRS data monthly movie goers are around six crores and when compared to 108 crore population it appears to have a very very low reach however this is highly misleading and these six crores monthly movie goers need to be looked in a different perspective and should be compared to young affluent middle-class population so as per IRS new SCC classification from A1 to E3 is based on number of durable own and education level of the chief measure earner in the family as you can see we have further classified the population as per the following criteria so A1 I am classifying as elite A2 A3 are classified as upper middle B1 B2 as middle C1 C2 as lower middle and rest as lower class population and if you see based on the IRS Q2 2019 survey 108 crore is the total 12 plus population in India now out of this 108 crore 50 around 50 crore are the age between 15 to 34 years old and out of this 50 crore the focus of the advertisers is 18.5 crores so all the advertisers are trying to reach these 18.5 crores which falls under the category of elite upper middle and middle so out of this 18.5 crore 1.1 crore falls under the elite category 6.9 crore in upper middle category and 10.5 crore are the middle class population out of this 18.5 crore 4.5 crore population resides in metro and tier 1 and 14 crore resides in other markets in fact in the next few slides we will see the monthly cinema reach using this new lens of target group so before I take you to the actual reach cinema provides monthly reach cinema provides to this target group let's take a look at the movie goers snapshot so based on the IRS data so IRS has a data of various movie goers town class wise and their frequency and also the place cinema place they visit as per that data around 53.53 lakhs are the movie goers which goes for a movie once a week or more often 71 lakh is 2 to 3 times in a month 2 crore is once in a month once in 2 3 months is another 2 crores once in a month is 1.94 crore and less often than 6 months is 2.10 crores so all this translates to approximately 117 crore annual admits and 6.1 crore unique movie goers every month so cinema as a medium provides highest portion of target audience so if you consider 108 crore as a total population the TG which is 15 to 34 years old and middle upper middle and elite category so 17% falls under that category and if you look at 6 crore as a movie goer 65% of the movie goer falls in this category which is 15 to 34 year old and falls under middle upper middle and elite class so if you apply this thing the all India cinema reach is 49% to this target audience so if you see there are 108 crore was the total population of which 18.5 crore is the focus of advertisers which falls under elite upper middle middle which is age between 15 to 34 from this 18.5 crore so 8.2 crore people have access to cinema so that means when I said initially that 37.7 crore people total population have access to cinema of which 8.2 crore falls under this target group which is 15 to 34 years middle upper middle and elite class and the cinema goers out of 6 crore is 4 crore which falls under this category which is 49% of the population who have access to cinema where advertisers are interested in so out of this 4 crore 50 lakh are in elite category so that means if you see elite 6 cinema reaches 64% elite category cinema reaches 70% upper middle category and almost 30% of the middle category so overall cinema for this target group provides a reach of 49% if you talk about HSM so total population in HSM is 85 crore and the TG the focus group is 13.6 crore so and out of this 5.6 crore have access to cinema so if you consider HSM as a market cinema reaches 35% of fewer reach similarly if you take a particular state cinema gives 44% reach if you take city Mumbai as a city cinema provides close to 40% monthly reach for this target population so as we observed that cinema provides very high reach into that 15 to 34 age group for middle upper middle and elite class demographics which is the focus of advertisers the second the next part is basically advertisers focus only on major multiplexes so if you see out of total 3.97 crore unique cinema goers who are advertisers premium target group as already discussed in my research slide only 87.87 crore which is 22% visit the top three multiplex and where the fill rate is 100% the balance 3.1 crore premium audience the fill rate is only 22% and this I say is the miss opportunity for the advertisers again looking at the metros and tier one is the other cities metro tier one has 1.73 crore movie goers which falls under this category with 3838 screens and 2.23 crore of 15 to 34 again the upper middle class middle and elite category is the miss opportunity because the focus is only metro and tier one another myth is basically the very few audience are seated in cinema halls pre movie or during interval but based on the research conducted by us so the more the audience are seated they are always seated almost close to 10 minutes before the show starts and almost 70% of the audience are always in the Audi during the interval another phenomena which we saw is the focus of the advertiser during the mega releases so we have seen that so there are only few movies on which the advertisers likes to bet because they assume that mega releases brings more footfall but the other movie releases so if you see the other movie releases so there were nine mega releases in which advertisers tried to book their advertisement but on 24 titles which were the miss opportunity they have become either a blockbuster super hit or in the hit categories so if you see some of the notable names are Uri was the other release but went on to become a blockbuster and most of the advertisers missed on this opportunity so as Kabir Singh other notable titles are Chitsure, Andadun, Super 33 so this is reflecting through that the overall occupancy across all the titles is around 30-35% so where whereas in the mega releases the average occupancy is 33-34% so the average occupancy of all mega releases is higher or equivalent of mega releases so if you talk about cinema versus digital I say always say that okay cinema is similar to digital whereas cinema digital gives one impression per person whereas cinema delivers the group impression cinema is better storytelling medium with longer duration ads and unlike digital cinema advertising does not suffer from bot views where bots browse web pages to get inflated views and the impression digital is heavily depend on viewers internet connectivity or viewers having certain application installed to view ads seamlessly cinema however does not face any lag and ads are played to a captive audience to the big screen cinema ads have low ad avoidance as compared to digital medium where viewers prefer skipping the ads so if you see the means I'm now at the concluding slide so there are approximately 1.18 annual admits if you multiply it by 30 to 30 second spots per show that translate to 37.7 billion potential 32nd impression cinema can create for the advertisers which on monthly basis translate to 725 million weekly 32nd impression and if I multiply it by thousand rupees CPT it translate to a potential of 72 crore weekly ad-ex for cinema and eventually translating to 3700 and 70 crore annual ad-ex for cinema so I hope in time to come cinema will become a integral part of every media plan cinema can help brands reach respective audiences deliver impact on key brand matrix ultimately drive longer lasting sales effect and this is the best sit in media and which will eventually drive the cinema ad-ex thank you


Hello everybody, welcome back here to the channel. I'm EvilRabbit. Grid Legends is here on the channel with Grid Legends coming out So we're gonna be doing a first impression here in the beginning rookie season circuit or rookie Season circuit race and we're just gonna be getting our feet wet trying to see how the wheel feels without any tuning or anything like that So make sure you have something on social media all the time, so here's box below. Let's get to it Definitely like the fact that I see some GTIs and some outies looks like we are in TCR race Looks like we get to drive it in Audi So first time to place in front of Vega He's been having some good races recently So first impressions is it's actually kind of Interesting feedback off the rip Especially some you expect from a arcade-ish style game. I feel like I need to be in a different view. Oh We got a little bit further view like I lost it. Oh, come on. I'll try to change views So first-person view is definitely how I love Racing of course. Oh, but the wheel doesn't turn. It's like forza There might be some we can change in settings except this is just no change no settings Just kind of right into a race And I feel like Outside camera is probably going to be the funnest camera to drive So first impressions of the wheel it does feel oh feel pretty good Definitely a lot stiffer than they expected to be we aren't a brand new setting So 100% feedback. Oh, we lost a little bit that I can feel it Phillip the brake of traction actually What we doing to get rid of this racing line and everything like that see if you can do that real quick options gameplay Visual only or full damage. We do visual only right now a difficulty hard We'll leave it hard on for right now manual, okay sequential with clutch Manual sequential. That's what this one is clutch override enabled Racing line off That's what we want Leave all that stuff right now traction control and stability control and everything just to kind of get our feet wet in this game Now we should have manual trans with a clutch override and Of course no racing line because racing line is for New people So I believe When I heard you have to pay pretty much damage in this game So we definitely don't want to wreck our car too too bad if we have it on full As I say that we just smack into the back of this guy. All right one left. Keep your position ahead of Vega That guy just died So we just got to keep ahead of who we're already ahead of Definitely had a lot of fun on the other grid games Definitely did a lot of fun with drifting and stuff like that and this game seems to be It's going to be a lot of fun as well Trying to use the course map to Tell myself war a mat may have to go in there by to the force feedback But overall the wheel does feel pretty good Off the rip it definitely does not feel super arcading trying to take this past Take a second place I'll take a second place in the first race. I will take a second place in that.  I wish I would have been in that GTI But we did take second. So my name is rookie Driver 22 Today, I'll be shocked if it didn't catch out. Oh, yeah Event unlocked earn grace Driver difficulty experience, okay, okay getting a lot of experience there Finish ahead. Okay finish at a bigger. That's all we need to do to complete that challenge. All right, I'll take it so Back in the original grids I had a lot of fun doing Drifting and stuff like that in the games and the racing was just super fun It's definitely a way to throw back and have a little fun. Now. Are we bumped into open wheel? I Mean finish eighth or higher. All right, we're just going full send into this right now a little open wheel at night Try not wreck our car too bad Right And not to lose except an entire car That was a bit rough So I do notice a difference from being in that touring car to this car So there is a different feel of the wheel Try and roll way up. We've got to finish eighth or higher Three laps should not be too hard. You have to bump this AI difficulty up a little bit Cockpit just a little bump Oh, I was lost that.  You would play in third person For right now, I do like the graphics look amazing the sounds are great. I Don't know why I just bumped him open if I had dammed on full I probably would snap my wheel already We may have to try the next one in damage full and see how this works not knowing these courses is definitely a feel a hindrance but try crossover So overall first impressions of this it's definitely a feels very Very stiff and very nice on my fan attack I could probably turn the feedback that out probably turn the feedback down on the wheel a little bit But I want to get into some other race cars and see how it really feels for us fully Mind-tuned my feedback Is there a rewind button? Oh I pulled the Forza Horizon rewinds. I can't believe that guy just died in the front Yep, we did it. We pulled the rewind and we're pulling the whole Forza passing like I'm playing Forza Horizon right now But we're gonna take the win there So I mean I'll take it. I mean, I'm still just a player. I'm nobody Like named right now we may have to go back and redo this but actually put our name in So definitely Interested to see all the different cars and all the different types of racing and things like that here in this game I think this is just the beginning. What is this? Seneca continue to have trouble during testing with multiple drivers involved in on-track incidents Um no mistakes this time. See shift locking Run it again, but with less throttle. I feel like he was shift locking Okay Feel like I could do I could do just that I think So while you're getting data for a cheat just get a feel for the car I mean the car is grippy tell you that already off racing line though touch of handbrake. I'd like to see you control the slide. Oh He told me to drift so we're doing it Nope a little clutch kick. We're trying to drift the race car. I Don't think that's the right idea gear shift points So if we get a perfect gear shift Faster Over dead Well, duh Though for first impressions of the game definitely gonna have a lot of fun playing this game So you guys want to keep seeing good legend here on the channel Let me know down in the comment section down below you guys are playing it. Let me know what you find Okay, it's the best settings for you because right now. Oh, I'm not paying attention to the track One thing having to get used to me would be all the different tracks. Why'd you break it try not go off course on the final lap?  I'm trying to run apex on these turns I can't really I don't want to practice power slides in a race car. I mean I do but don't really work that well So I think that's good doing here for this episode here on red legends definitely Fun to have another game On the roster of things to bring out to you guys So make sure you guys follow me on social media on the description box below As always, I think as we come back and watching I mean we'll have it. I'll see you guys on the track


Titanium nitride, TIN, is one of the most well-established engineering materials nowadays. TIN can overcome most of the drawbacks of Paul's monic metals due to its high electron conductivity and mobility, high melting point and due to the compatibility of its growth with complementary metal oxide semiconductor, CMOS, technology. In this work, we review the dielectric function spectra of TIN and we evaluate the plasmonic performance of TIN by calculating i, the surface plasmon polariton, SPP, dispersion relations and, 2, the localized surface plasmon resonance, LSPR, band of TIN nanoparticles, and we demonstrate a significant plasmonic performance of TIN. This article was authored by Panos Patsalis, Nikolaos Kalfejianis, and Spiros Kosovetis.


Okay, migrating Flex to FlexJS. Okay. All right. Who am I? I kind of fell into programming by mistake. I had a print shop and had some problems with InDesign, didn't do what I wanted it to do, so I figured out how to make it do what I wanted it to do. So that led me into developing different solutions around InDesign. I started marketing them. I fell into Flex when I needed to extend the design with panels. That was about nine years ago. Adobe has since disabled flash panels, which was what I was doing there. So FlexJS kind of became pretty central about things that I've been doing lately, along with my UI application, which has also had to be migrated from Flex to FlexJS. So I've had lots of reasons to migrate from Flex to FlexJS, and that's basically what I've been doing for the last year. Okay. What kind of name is Harb's? Harb's is my nickname I've held since I was a teenager. My given name is Gabriel Harbiter. If you attend my family gatherings, you try to call Harb's, lots of people turn around. But that's kind of what I go by. How easy is migration? Well, I guess it depends on what you're trying to migrate. If basically the better separation you have between view and model and things like that, the easier it's going to be. The more it's all mixed together, the more the flash APIs are kind of integral to what you're doing, and the harder it's going to be. Okay. So why did I pick FlexJS rather than just using a normal JavaScript framework? The answer is I tried, actually. I spent a year creating a JavaScript quote-unquote version of our web application for modifying and designing documents using Angular. Very basic in terms of functionality, very slow in terms of performance, really big pain to maintain. So we spent a good solid year on it and had very little to show for it. That kind of cemented into my mind that I definitely don't want Angular and a kind of disinterested me in pursuing most of the standard JavaScript frameworks. So FlexJS kind of became the natural next step. Okay, so how do I know migrating to FlexJS is actually possible when it works and something that you want to do? Okay, so far to date I've done basically three major migrations from Flex application to FlexJS. We have a large scale of application which is basically InDesign Online, which is basically a design application for manipulating text and images and objects and producing output of JPEGs, BDS, things like that. We've migrated the vast majority of the application to FlexJS already. We still have some less than five major features that still need to be migrated. We still need to be completed before we're going to call the first version and feature complete, but it's been working very well. We've been doing this together with Yeshai, and I think we both think that it's gone pretty well. I have a number of flash panels in InDesign that need to be migrated. I've done the first one, and I've migrated the TLF framework, which is partially functional right now. It does compile, it does work on a basic level. It needs a text engine. I've created one, I created a half of one which I donated to Flex, another one, three quarters of one, which I'm probably not donating at least for now to Flex. It's sort of working now, not completely. Hopefully by the time we're done, it'll be better shape. How long does it actually take to migrate? The web app, which has been working on it for about a year, is still working on it. I'll go into a little bit more about how the different stages of the migration and how long each part took, and I'll go into that a little bit more later. The InDesign panel took about two months. Most of that was related to problems specific to InDesign. The flash panels allowed synchronous communication between the InDesign scripting model, basically using external object. This very flash allows for very transparent communication with outside scripting. The Chromium embedded framework that InDesign uses does not basically, there's a V8 version of JavaScript that's running in its own world, and there's an event model, basically, which communicates between the two different worlds. So it's all asynchronous. Most of the work that was involved in migrating the InDesign panel was due to this migrating synchronous code to asynchronous code, which was a big mess. The migration of TLF took about a month. Most of that time was due to compiler issues, which are mostly fixed at this point. Okay, what were our challenges? What were the things that we needed to get done before the migration was possible? So first of all, the application does determine this amount of reading and writing XML. So for me, XML and E4X was a very big one. I didn't even bother trying to do the conversion before FluxJS supported XML and E4X. That was what I was working on about a year ago. I was working on the Flux side. Alex was doing most of the compiler work on that. So that's working pretty well at this point. There's a lot of transformations. We need to cross-browser rendering in terms of that. We had to figure out whether we wanted to do Canvas or SVG. We settled on SVG. I hope it was the right decision. We needed TLF, which I've been working on recently. We needed to write a new text engine from scratch. That's been fun. And FluxJS is still not completely mature, just touched on some of the issues that he came across. So we had a lot of work in the actual FluxJS framework, fixing things, adding components, and improving things. So what works and what doesn't? What should you try to migrate as is? What should you try to rebuild? So basically business logic, from what we've seen, basically you could just bring it in 100%, take your logic, copy it over, and 99% of the time it just works. That's been great. Abstract UI logic. So different pieces that are connected to each other. Things that are not specific to the way components are implemented. That stuff generally migrates pretty well also. Some of the interaction, so there are differences in the components and the way the components are composed and the way the components are built, the way the components are connected to each other. So certain things work. There's lots of similarities between it to the frameworks and in places where it's similar, you can copy that logic over. What doesn't work? Don't try to just take your existing UI components and just bring them over, because it's going to create more work than if they're building it from scratch. The differences in the paradigms of classic Flux and FluxJS is just too different. You have to get used to the new concepts with strands and beads and things that did certain things in the old Flux don't necessarily do the same things in the new Flux.  If you're migrating, you probably have a lot of cruft in your old code, so it's a good time to clean it out anyway, so not the end of the world. What do you have to actually do it? I tried to break it down into steps. As far as I can tell, there's basically eight steps. Number one, using the IDE. Try to do this without an IDE. You're going to be here. Don't bother. The first thing you want to do is, the most errors you're going to get isn't going to mean your view. So if you can, you want to try to disconnect your view. Concentrate on first making the code compile. Don't worry whether it actually works. Just try to make it compile. Create dummy classes. I'll get more into that later. Then reattach the view. Create dummy classes for the view. Rebuild your components. And then fill in your dummies. ID. So I started with the Flash Builder. It works when it doesn't crash. I've used FDT as well. Most of the conversion, most of what I did with TLF when I was converting TLF was in FDT. I fixed all compiler components there. If you liked IntelliJ, wonderful. I haven't managed to really get it to work for me yet. Probably because I didn't invest enough time in it. Apparently Flash Develop works for Windows. Again, I haven't tried that. Moonshine is something else I haven't tried.  So VS Code is what I'm basically pretty much using now. For migration, I haven't tried since the newest features in VS Code, but you're going to have a lot of import cleanups to do. You're going to have a lot of find and replaces and reporting bug errors and whatever. You probably can use VS Code at this point. When I was doing my configuration, VS Code wasn't mature enough at that point. But if the next migration I was doing, I would probably just try to do it in VS Code and see how that goes. Okay. So as far as disconnecting the view, the original application was built using PureView MVC. So that was really actually worked out very well because in bootstrapping the application, so PureMVC have commands that basically adds all the views. So all we needed to do to disconnect the entire view from the application was to just comment out the command which creates the view. And that took away the entire dependency list on anything in our view. So we were able to compile the application with just the business logic, and though the view was just commenting out a few lines of code. So that was really, really, really good. Obviously, if the view is more intricately connected, so then it's going to be a little more difficult. But as much as you can disconnect the view at first, it's going to be easier because you can have to be building that view anyway. Okay. Concentrating on making code compile, okay? You're going to get lots of errors. When we first just ported it over and disconnected the view, we had like 3,000 errors, something like that. But fixing these compilation errors, as overwhelming as I might see, it allows you to focus on, okay, you just go through the errors and take this error away, take that error away, take that error away. You'll find that a lot of the errors are just repeating ones as soon as you create a dummy class, which is basically an empty class which just gives the compiler a reference. So as soon as you add these classes and you add these methods, it makes lots of errors go at the same time. Very often it causes new errors because there's dependencies on each other. But generally the number of errors goes down. And it's also not quite as bad as it might seem at first. It's really mindless work. You know, just find this error, okay, this error, creating the thing. But it's strangely satisfying. It's kind of like angry birds, you know. Just squash those things. Okay, creating dummy classes. So basically it's two-step process. Each time you encounter a class, generally it's going to be either flash or flex for the most part. You take the import statement, create a new class, and search and replace all your imports to import this new one. So some import statements are going to kind of smart the dummy classes. Others, FlexJS has equivalence. So mouse events, events, matrix, point, rectangle, all these things basically. You're going to transfer the flash ones to the FlexJS ones. Things that FlexJS does not have equivalence to, then you're going to have to create new dummy classes for those. So initially the dummy classes should be empty with no methods, no properties. And then basically each time you find a property or a method that you used in that class, just add a stub for that. That'll make the compiler error go away, okay? Why do it like this? There's basically three advantages. It's really, really quick to be able to get the compiler, the code to compile. I was able to get the application from the point of the initial, this is an application with literally hundreds of classes. I was able to get lots of very deep integration into flash drawing commands, TLF, it was nuts. So I was able to get it from the point of the initial migration to be able to compile, in about two weeks. I was surprised by how fast we were able to do it. So let's get it to the point where it compiles so you can start actually making it functional. It gives you a list of what you actually used. So trying to get an audit of what your problems are in your application is a very difficult thing to do. So by creating these dummy classes, first of all you have a list of classes which you used and what kind of functionality you're going to have to fill in. And then it also gives you a list of actual functionality within those classes that you actually used. So you don't necessarily have to reimplement an entire flash class with 75 APIs when you only use two or three of them. Next step is reattaching the view. You're going to create a whole new class of errors. You're probably going to want to create dummy classes for everything that's in an MXML file because you're going to want to rebuild those. Again, that will give you a very clear idea of what your external APIs are on that. Create a dummy class for you and then you're going to rebuild the components. So you're going to want to create new files for that, new XML files, new AS files if you want. So what we did, which worked well, was we kept the old files. We just dumped them all into an external folder just to have them as a reference. We used it as a loose template, but basically looked over trying to figure out exactly what we need from them. And then most of the functions in the script block we were able to just copy over with caveats. And that worked pretty well. Right. So if you keep your old app in your environment where you can actually run it and debug it and see what it was supposed to do and then make sure that the new implementation does the same thing, that's also helpful. So the last step basically is you need to replace the missing classes. Very often you can find FlexJS classes which do the same thing, sometimes in a slightly different way.  What was the hardest part? Number one, FlexJS was missing lots of things. We had a very heavy dependency on SVG. SVG was kind of shaky. Still not what I'd call dirty but it's less shaking than it was. So we had to implement a lot of that. I had to implement a lot of things that should have worked, that didn't work, could have worked. So that was a big, big part of the effort because FlexJS is young. The component set is not quite complete so we had to fill things in as we went along. The other part which was nice about Flash was there's very few browser dependent issues. There are just no end to them. Things that are supposed to work and just don't. One of the things that just boggle my mind is just transformed SVG don't get mouse events on most browsers. Which browsers do you have the most problems? Probably Internet Explorer. I think it should be supporting I-10. I think so for the most part. I'm not sure. We haven't tested I-10 well enough. After we test I-10 we're going to decide exactly which version we should support. That might help determine because we are using MDL. MDL was actually very timely for us when MDL was developed when we needed it. Thanks guys. There's still issues. Just one small one. This is an actual application that we're working on. This is all SVG stuff images. This is text rendered by my new text renderer. These are MDL components over here on the side. This is in Chrome. Works great. The application is centered the way it should be using the component that we were using. In Safari, you just kind of bring it over there. But instead of it being centered, the left side is centered. You have all these kinds of issues. This is something we're going to have to figure out why the layout is doing this. But it's just the way it is. I don't see this as a FlexJS problem. I think this is just a general browser development problem. There's just so many inconsistencies across browsers. If anything, FlexJS makes it easy because a lot of these things are kind of done on the framework level. Okay, gotcha. What are things to look out for when you're doing a migration from Flex to FlexJS? Probably number one is circulars. Google Compiler is very finicky about circular dependencies. In Flash, you were able to do almost anything in terms of circulars. It was really very intelligent about the way it compiled things. You can have class A relying on class B, relying back on class A. It can make spaghetti code without a problem. As long as you didn't have true circular of class A, which inherits class B, which inherits class A, you're fine. Google doesn't allow any classes to rely on any classes and back again. Sometimes you can live with that. Very often you can't. Just off the top of my head, two cases. In FlexJS, we support XML and E4X. In E4X, XML knows about XML lists and XML knows about XML. That's a circular. There's really no way to resolve TLF. All over the place, you have circulars. Paragraph elements know about span elements, which know about paragraph elements, which know about text flows, which know about paragraphs, which they just all know about each other. It's one big happy family. Google Compiler doesn't like that. There's a compiler option called removeCircular. Circular, I think there's a missing asset there. Which basically causes the Flex compiler to remove these circulars. Basically what it does is puts in a certain, only in one place. It tells the Google compiler that the class A is dependent on class B and it lies about the fact that class B is dependent on class A. It doesn't tell the Google compiler about that. As long as the classes are loaded in the correct order, that works fine. I ran into lots of problems around this. I think they're basically all fixed at this point. Back and forth with Alex about a month or two ago when I was working on TLF to get this all straightened out. There are certain limitations with the way it's done, but for the most part it works. Related to that, you can check constants and initialize variables. Don't. Actually you can, but as long as you limit yourself to native JavaScript classes, then it's okay. You can do const, name, string, equals whatever it is. That's fine. If you try to do const, you know, my thingy of type thingy, then your application is going to blow up because in JavaScript, any constants or variables that are initialized when they're declared is run as soon as the JavaScript file is loaded. Because of the way the circulars are resolved in the compiler, you have no guarantee which file is loaded before which one. You can be trying to instantiate a class before that class is actually declared. So very simply don't do it. Instead of using constness, use getters. If you're worried about performance, you can cache the getter the first time you run it. And for static variables, use lazy instantiation. It's basically the first time you need it. You should instantiate it. That's pretty much what you need to know in terms of statics. If you stick to those two rules, you should be all right. Be aware of as.  And if you don't do anything, it will call language.as, which basically checks whether, which calls language.is, which checks what class is. And if it's not that object, it will return an all. You probably do not want to do this in JavaScript, for the most part, because that adds a lot of overhead at runtime. Every single time you're casting something, you're running this check, which has, I don't know, 20 steps or something in certain cases, to check whether or not it is that object and then returning null based on that. So 99% of the time, you don't want to do that in JavaScript. For most uses of as, is just to make the compiler happy. So the way to get clean JavaScript code is to use the compiler option of js output optimizations equals skip as convergence. If you don't want to use that, you can disable the as calls in specific places by putting a comment at the beginning of your function flex js ignore coercion with the name of the class that you want to ignore the coercion for. Alternatively, you can use the compiler option of skip as coercions and in specific cases, what you might want to use as to return a null, if it's not that object, you can use flex js emit coercion to force the compiler to actually add in the and language that as call. Int isn't. Basically, in Flash, you declare something as an int and you do mathematics, which you do four divided by three, or ten divided by three or something. Ten divided by three will give you three. JavaScript, if you do ten divided by three, that'll give you 3.3. Even declaring an int doesn't solve a problem. This is probably something that should be fixed in the compiler if you have a mathematical equation which could return a floating point number. The compiler should probably add in a floor to convert it to an int, but it currently doesn't. Basically, in cases where this is important, you're going to want to floor your result. A very common example of this is a binary search function where you try, you know, in an index in an array of one and a half is not going to get you a result. Yes, I bumped into this in a few places, actually. I fixed it by flooring it, but it's just something that should be fixed. I haven't put in a genre yet for that. Internal classes generally work. Basically, internal class means that if you declare a class at the bottom of your action-script file, it's available to that file. So if it's a simple class, it shouldn't have any problems. If it's a class that inherits some other class, so the compiler doesn't always realize that there's dependencies over there and you could have things blow up. So be aware of that if necessary. You might want to pull them out in separate files. You should also be aware that it might work and then stop working because the order of the files that are loaded might change. Even though the dependency wasn't declared, it might initially work and not work later. XML, in general, is working pretty well. We're using it pretty extensively. The compiler needs to be aware that your XML is XML or eForce X statements will not work. So always declare your XML types. I tried to make XML evaluate to string intelligently, but sometimes you might end up with situations where you're trying to do a comparative or rather an XML list to equals a string and you're going to answer it in JavaScript, it might be no. So there might be occasions where you need to manually do to string. If something doesn't work, let me know. Copying assets, one of the issues we've had is we have had dependency on external JavaScript libraries, so we needed the JS files. Part of it doesn't copy those. I added SVG. It's probably a better way to have copying of files done in the compiler. I think Chris touched on that earlier. So that's probably something that could be improved. Automatic copying of assets. Alright, minification issues. We had lots of those. I don't know if any of you know it's like an Angular dealing with minification, but they have like a really weird... Any time you declare you have a controller, you have to do this funny bracket notation to make the minifier realize that it shouldn't minify that. FlexJS is really smart about how it does it. It tells the compiler to keep what it's supposed to keep, and you don't have to worry about it. So in general, it's really good. Where you've had issues is integration in external libraries. So if you can go ahead and make type defs for your external libraries, then that works pretty well too. It's a pain. In general, we didn't want to do that. That could probably be improved and make it easier to create those type defs. But... So we've had issues with that. Generally, when you do have issues, you just need to, instead of doing dot, whatever, you can do a bracketed... coded bracket call, whatever you call that thing. And then it doesn't get minified, and that'll work. In object literals, you always want to use quotes. So basically, if you have an object... So you don't want to do it like this. You want to quote the property names like that. Because if you don't, they will get minified, passed around to something else, and what it's being passed into is not going to know what it's minified into. So always quote your object property names. So I had a case where I was using a typed object in an external library, which had various properties. So I got this object from external library, and I needed to use it internally. I wanted it to be typed, but I was getting it from this external library. So basically, after a lot of head scratching, and what I ended up doing was the constructor of my object took the external object, and using bracketed notation, I initialized all my local variables with the results of that, and that ended up working. So again, bracketed notation is the way to go when you don't know what you're dealing with. I don't know how much of this can be fixed on the compiler level. There might be ways to tell the Google compiler to improve this, but these are the general issues that you're going to run into. Basically, you're probably going to compile your application. It's going to work in the debug. You can try in the release, and something weird happens. And it's generally because something was renamed that you weren't expecting it to. So these are the things to look out for. It's been fun. That's all I got.


Hello there, this is Gabe Gossett with the Hackerel Research and Writing Studio in Western Libraries and today I'm going to be presenting this video that gives you an overview of what Zotero is and why should you be interested in Zotero in the first place and at starting out it's a tool that allows you to collect and organize sources and then this is the part that most people really like about it it allows you to export formatted citations because a lot of Citations are a form of technical information. They're able to be formatted automatically using this type of software And then it also allows you to connect content between multiple devices So the content that you collect on one computer you're going to be able to get it synchronized to other computers That in turn allows you to collaborate with others using Zotero at the same time as well So what is Zotero? It's something that comes from the Roy Royzenzweig Center for History and New Media And that's something that's supported by George Mason University and the National Endowment for the Humanities And so one of the things about Zotero that is worth keeping in mind is that it is Grounded in academia and it's a tool that's developed for academics by other academics as well And so the software that's been developed it works with your browser So it has an add-on to your browser that allows you to do that collecting process where you start to bring in the content And then it lets you to build basically a personal database of sources They are going to be yours to keep down the road So you get those journal articles those books those videos and Even online webpages and you can collect and build them into a database that makes sense to you And is organized in a way that works for you