So, let us continue the discussion of two dimensional NMR spectroscopy and this slide here is a summary of the previous few lectures which we have heard. Essentially it is giving you a concept the so called selection of coherence transfer for pathways. It considers we discussed three experiments here the COSY, double quantum filtered COSY and also the NOZY which is not listed here but we discussed it in the last class. In the COSY we had magnetization transfer in the following way we started with a single quantum coherence of a particular spin let us say K spin and the K spin magnetization is transferred directly to single quantum L spin magnetization and similarly for the L spin magnetization is also transferred to the K spin. So, in the two spin system the K L spin system same thing was applicable to more spins a three spin system or multiple spin systems the same principle will apply. I will discuss the various features of this spectrum we said the diagonal peak has dispersed your line shapes and all the components have in phase character the cross peaks have anti-phase character and they are absorbed to a line shapes. The dispersive line shapes was a disadvantage for the COSY spin because it reduces the resolution in the spectra peaks which are close to the diagonal become masked and will not be observed. To circumvent this problem we developed this double quantum filtered COSY and here the pulse sequence is slightly modified instead of the two pulse experiment here this becomes a three pulse experiment we start with initial single quantum K spin magnetization as before and this is now converted into double quantum coherence it is not that the double quantum coherence is not created here it is created after the first two pulses but we actually ignored that one saying that is not observable and therefore that is we do not need to consider that and here we actually want to select that we do not want to select the single quantum coherence as was selected here here we want to select the double quantum coherence which is created between the two spins by the application of the first two pulses and we use a strategy called as phase cycling where the phase of the pulses is cycle as X Y minus X minus Y for the same T 1 increment and the receiver phase is appropriately adjusted so that the other components which are created here the single quantum is eliminated the Z magnetization which is also created is eliminated and only the double quantum coherence is preserved but the double quantum signal is not observable as we have seen before discussed it and therefore it has to be converted into observable magnetization and that is done by the third pulse which we apply in the double quantum coherence. And then we observe the magnetization the result of this is that the diagonal peak also gets in phase character and it has absorptive line shapes the cross peaks remain in phase and as anti phase character and also remain absorptive line shape therefore the diagonal and the cross peaks have both anti phase magnetization and they have absorptive line shapes this substantially improves the resolution in the spectrum and therefore peaks which were lying very close to the diagonal could be observed in the double quantum spectroscopy. In the third experiment which we considered that was the nosy experiment where the Z magnetization is selected we throw away the single quantum coherence that is created after the first two pulses and the double quantum coherence is also thrown away and zero quantum coherence which remains actually decays because of the long mixing time which is used in the nosy pulse sequence and by suitable adjustment of the mixing time one could also eliminate the zero quantum coherence which was created in the three pulse experiment this the nosy was also three pulse experiment and that only the Z magnetization is retained at the end of the mixing time and this is then converted into single quantum coherence for observation. So here again the phase cycling is used but the phase cycling that is used is different from the phase cycling that is used here and that is how we achieve the selection of different pathways of magnetization transfer through the pulse sequence that was an important concept which we developed and this is basically what I said so far is a summary of all of that in words. Now we go forward to explore other two dimensional experiments and in that the one thing which comes most important which is used in many many different kinds of multi-dimensional experiments and that is called as the constant time cozy and the pulse sequence for that is indicated here. So you start with a 90 degree X pulse it could be 90 Y it does not matter so we just chosen here 90 X pulse and this you have 180 X pulse here and a 90 X pulse here. So we have here the first a 90 degree pulse then you have a time period which is tau and this is also tau and now you notice that this is a spin echo. So 90 tau 180 tau is a spin echo and this period is then followed by T1 and the total from here to here is constant. Total time from here to here is constant that is delta and therefore tau will become equal to delta minus T1 divided by 2. This is an interesting experiment. You see the time from here to here is kept constant total time from here to here is kept constant and here is a component which is T1 which is incremented from experiment to experiment and which also means that the tau also changes with T1. This also is changing which means this 180 degree pulse keeps moving. At time T1 is equal to 0 there is a very first experiment you will see that this time is 0 and this 180 pulse will be in the middle of this delta period because at time T1 is equal to 0 tau is equal to delta by 2 and this will be in the middle of this whole period delta period. Now as T1 starts increasing say this tau starts decreasing which means this 180 degree pulse keeps moving towards the left from the middle which was it was it starts moving towards the left. So from experiment to experiment this 180 degree pulse keeps moving. Now how many increments then you can have here? See that is limited then by the delta period. So once you reach a certain value of T1 which is almost equal to delta then this 180 pulse will be almost adjacent to this first initial 90 degree pulse. You cannot increase T1 beyond that. Therefore the number of T1 increments you can do here is limited by what delta you choose. And how do you choose this delta? We choose this delta depending upon how much signal you will have. So depending upon the relaxation times of this spin system what you might have the k spin or the l spin or whatever of the system what you might have the shortest T2 and it will be dictated by that shortest T2. So the signal will decay the transverse magnetization will decay from here to here. We actually select the single quantum coherence here. In this experiment we select the single quantum coherence. This is very similar to the Cauchy experiment except that we have 180 degree pulse here and that creates what is called the spin echo part from here to here. So it is the single quantum magnetization as in the case of the Cauchy. But the period from here to here is constant that is delta and that limits how many increments you can have. The maximum value of T1 is limited by the total delta period what you might have. When T1 max is such that this tau becomes equal to 0 delta minus T1 max divided by 2 that is what the tau value if that becomes equal to 0 you cannot have T1's incrementing after that. So that certainly will have an implication for the resolution along the F1 axis in your experiment because the resolution in the X1 axis will depend upon what is the acquisition time in the T1 dimension. But what are the advantages why do we do it? And this we will see as you start looking at the explicit product operator calculation. This is the spin echo period here. The spin echo means is actually refocuses the chemical shifts. Therefore the chemical shift evolution happens only for this period here T1. Whereas the coupling evolution for the homonuclear system when you are considering the homonuclear system the coupling evolution happens all the way from here to here because that is not dependent on the spin echo and for homonuclear system this 180 pulse is applied to both the spins or all the spins and therefore the coupling evolution continues to happen here and it will happen during the T1 period as well. So you will have the coupling evolution happening for the entire delta period which means the coupling evolution time is not dependent on the T1 because it is constant for every T1 incremented is the same whereas the chemical shift evolution happens only for the particular T1 period. So let us look at the product operator calculations for a two spin system as we have done before for the other pulse sequences. For illustration we consider a two spin system the initial density operator at rho1 is z magnetization of the two spins ikz plus ilz and once you apply the first 90 x pulse you create the y magnetizations of the two spins minus iky plus ily. Since these two are independent spins they evolve independently during the next evolution periods and to demonstrate the evolution we will consider the k spin evolution and the same thing can be applied to the l spin as well. Let us look at this iky, iky is the y magnetization of the k spin. Now during the next delta period which is constant the following evolution takes place. Evolution under j coupling occurs for the entire period delta as I mentioned to you the spin echo does not have any influence on that because it continues to evolve except it will have some implications for the line weights. The 180 degree pulse in the middle of the delta minus T1 period the chemical shift gets refocused thus evolution under chemical shift happens only for the time period T1. Thus the evolutions need to be calculated as per these time evolutions. Let us look at that explicitly consider the iky and we will first evolve j coupling evolution. It does as I said we have seen before that it does not matter which one you consider first and which you consider later let us consider here the j evolution first. The Hamiltonian for j is hj and which is 2 pi ikz ilz and the k magnetization evolves like this. So it is iky cosine pi jkl delta minus 2 ikx ilz sin pi jkl delta. So clearly the j evolution does not depend on T1 and it is the same for all the increments in the 2D experiment. So now let us consider the shift evolution of these 2 terms. The first term here which is iky cosine pi jkl delta if I consider the evolution under chemical shift this is the Ziemann Hamiltonian hz cosine pi jkl delta I keep it out here and inside the bracket I keep the chemical shift evolution of the k spin. So I get here iky cosine omega kT1 minus ikx sin omega kT1. The second term which is here this is minus 2 ikx ilz sin pi jkl delta under the shift evolution. So I keep this 2lz sin pi jkl delta outside and inside the ikx term is evolving under chemical shift as ikx cosine omega kT1 plus iky sin omega kT1. Now to simplify the symbols or the equations we use let us use some abbreviations here. So let ckl delta when I write it like this it means cosine pi jkl delta and similarly I write skl delta for sin pi jkl delta and I write ckT1 to represent cosine omega kT1 and skT1 is sin omega kT1. So with this notation so what happens now we consider the evolution at rho 3 density operator at time 0.3 in the pulse sequence. What is the time 0.3 in the pulse sequence that we have seen here this is the time 0.3 in the pulse sequence. We consider it up till now the evolution under j until here and we also consider the chemical shift evolution during this period here and therefore we consider the density operator at rho 3 and the rho 3 now is using that simplified notation we have ckl delta iky ckT1 minus ikx skT1 and this part the second term is minus 2 ilz skl delta and inside the bracket we have the shift evolution terms ikx ckT1 plus iky skT1. Now this is the z magnetization. Now at this point we have this z magnetization here and this one is actually double quantum and zero quantum coherence because they have this term 2 ily ikx term. So these ones are not directly observable. So what happens here I mean this is the rho 4 this is the rho 4 density operator. The rho 4 density operator is obtained after applying the 90x pulse to this rho 3 density operator and when we do 90x pulse iky goes to ikz and ikx remains as ikx and here ilz goes to ily and this ikx remains ikx and this iky goes to ikz. Now here you see this is z magnetization which is not observable because we are not doing any more pulses after that we are directly detecting the signal this term is not observable this term is single quantum coherence of the k spin this is observable and this is double quantum and zero quantum mixture which we do not observe which is not observable therefore we do not consider this for further treatment and this is the ily ikz this is l magnetization anti phase 2 k spin and this also is as such it is not observable when it evolves in the T2 period it becomes observable and therefore we retain this. So keeping these observable parts we write this observable part of rho 4 is ikx skt1 ckl delta that is this here and this one is 2 ily ikz then I have skl delta skt1. So this will evolve during the T2 period with the frequency of k spin and this will evolve during the T2 period with the frequency of l and therefore this will produce me in the end a cross peak whereas this will produce me a diagonal peak fine. So let us look at these evolutions individually let us look at the first term which is the diagonal peak so minus ikx skt1 ckl delta so this will evolve under the coupling now we first consider once again the coupling evolution here skt1 ckl delta and the operator part is the ikx which is evolving in T2 gives me ikx ckl T2 plus 2 iky ilz sklt2. So this has now generated therefore a term which is 2 iky ilz this is after j evolution the shift evolution is not going to make any difference in this with regard to whether it is anti phase it will not convert a anti phase term in phase term therefore we can safely ignore this saying okay this is not observable in the T2 period but this term is observable. So this diagonal peak term keeps this ikx here this is observable and this term is not observable so therefore we can ignore this. Now let us consider the shift evolution of this after that so I have the same here skt1 ckl delta and ckl T2 comes from here and the ikx operator part evolves under the chemical shift as ikx ckl T2 plus iky skt2 using this abbreviation which we indicated there. So this is cosine omega k T2 and this is sine omega k T2. Now if you assume without losing any generality we assume y detection in which case the diagonal peak signal is given by this term we only keep this and we ignore this and therefore I will have here minus skt1 ckl delta ckl T2 and skt2 okay. So now we notice that during the T1 period I only have the chemical shift part right the sk and there is no coupling because of the coupling part is evolving for a constant time and therefore there is no modulation of the signal due to coupling evolution during the delta period. Therefore this will only appear as amplitude modulation of the signal detected whereas T1 dependent term results in a frequency. When a Fourier transform it the T1 dependence produces a frequency and this constant time evolution will not produce a frequency it appears only as the amplitude modulation of this detected signal during the T1 period. Along the T2 period of course you have both the chemical shift evolution here and the coupling evolution and both are modulating the detected signal as a function of T2. Therefore when a Fourier transform along the T2 dimension then I will have both the chemical shift and the coupling information and both ones these have the sine terms okay let us expand this. So I have here the same expression diagonal signal is I will remove this iky because when you take the trace with iky suppose that iky square goes to 1 therefore the signal is only dependent on this coefficients. So the skt1 ckl delta ckl T2 skt2 now if I expand this I have here ckl delta keep out this constant part which is the kind of an amplitude modulation as I said and this will be sine omega k T1 explicitly writing now sine omega k T1 and sine omega k T2 cosine pi jkl T2 that is this one here. From this we see that j splitting will occur only along the F2 dimension and F1 dimension will only have the chemical shift. After expanding this as before we have considered that I am writing here the final frequency distribution in the 2 dimensional plane. So how many peaks I will get here along the F1 dimension I will get 2 peaks because this one is a sine omega k T1 and I will get at the frequency of omega k so single frequency at the frequency of omega k. Along the F2 dimension I will have 2 peaks because when I expand this there will be 2 terms therefore I will get 2 peaks and this will be therefore F1 F2 will have the frequencies like this the nu k here and this is the F1 dimension and this is nu k plus jkl by 2 and the second peak will be nu k along the F1 dimension and F2 dimension will be nu k minus jkl by 2 therefore there is a splitting here and the separation between them is the coupling constant. And notice these both will be positive peaks and they will have the sine peak shape. Since they are sine modulation they will have dispersive line shapes here. So both of them will have dispersive line shapes along the F2 and the F1 dimension. Just now let us keep it that way and we will see that this actually can be changed by phase correction. We do a phase correction of course this can go to the absorbed line shape but let us do it afterwards after we see the cross peak as well. Now what happens to the cross peak? The cross peak is we have written the same function here as it evolves in the T2. This is the initial term at the end of the T1 period and after applying the 90 degree pulse and this is at the beginning of the detection period and we do the j coupling evolution here first along the T2. So this will give me I take the 2 ily ikz evolution here. So skl delta and skt1 as here I keep it here and this operator part evolves under the coupling as 2 ily ikz ckl T2 minus ilx skl T2. Once again we notice after the j evolution this is the anti phase term which is not observable. It does not have a non-zero trace and therefore this will be non-observable and only this term will be observable. Fine, let us take that one here. So skl delta skt1 skl T2 of course we have the minus into minus of course this gives you the plus sign here I keep this plus sign and now consider the chemical shift evolution. This gives me skl delta skt1 skl T2 operator part ilx. Now this will evolve with the frequency of L. So therefore right here skl T2 and ily skl T2. The ilx term is evolving as ilx cl T2 plus ily skl T2. Once again assuming y detection because we have to be consistent always the same as to y detection in one case it cannot have x detection in the other case. So assume y detection there use to y detection here as well. So this cross signal will now be skl delta skt1 skl T2 sl T2. So therefore this will produce amplitude modulation because of the coupling evolution during time delta and along the f1 dimension when you Fourier transform you will only have the frequency skt1 and this will produce me peaks along the f2 dimension. So now this one f1 f2 if I expand it I will get here like this nu k along the f1 dimension and nu l plus jkl by 2 along the f2 at the frequency of this and nu k and nu l minus jkl by 2 along the f2 dimension. So we will have two peaks here but this because of the sign there will these two will have opposite phases. So if this is positive this will be negative but both are cosine terms and therefore this will produce me an absorptive peak along the f2 dimension. And notice this is absorptive along f2 but this will be dispersive along f1 because it was a sin term sin omega k T1 it was and because along the f1 dimension I will have this omega k frequency. This is the cross peak you will have this omega k frequency is dispersive line shape because that was the sin term and it is absorptive line shape along f2 absorptive line shape along f2 for both of these peaks. And what was in the previous case for the diagonal peak I had here the dispersive line shape along both f2 and f1 dimension. They were both positive here and the dispersive line shape along both and f1 dimension also it was dispersive. So therefore since there is a dispersive line shape along f1 dimension for both the diagonal and the cross peak I can apply the same phase correction for the f1 dimension. So apply a 90 degrees phase shift along f1 this will convert this dispersive line shape into absorptive line shape same true for the diagonal peak but we focus on the cross peak here we are interested in looking at the cross peak. So if I do that then what I will have I will have absorptive line shape along f1 and absorptive line shape along f2. I do not do any phase correction along the f2 dimension therefore I will have absorptive line shape here and absorptive line shape along the f1 dimension here. Now look what is the consequence of that you look at a comparison this is an experimental spectrum a particular cross peak region the cross peak region this is the cosy spectrum and this is the constant time cosy spectrum and you see here these peaks are completely overlapping you cannot separate these and here of course there is a splitting here along the f1 dimension as well and that has gone because we have removed the coupling along the f1 dimension so this multiplicity along the f2 dimension remains so the same 4 peaks are present but they peak up here at the centre here of course that chemical shift is remaining and the coupling is removed along the f2 and here there are 2 peaks which are overlapping and those got separated in this constant time cosy. Therefore this one is called as omega 1 decoupled cosy you may call it as constant time cosy but sometimes you can also call it as omega 1 decoupled cosy and this improves the resolution along the f1 dimension in the cross peak area because we want to look at the cross peak fine structure and wherever we can measure this we can actually measure the coupling constants very well that is the advantage of the constant time cosy and therefore this component has been used in many many multidimensional experiments this is used as an entity which is inserted at various places to obtain higher resolution along the indirect dimension and this becomes important even though I have limited t1 max because I have removed the coupling information here this becomes quite beneficial and improve the resolution in the spectra and measure the chemical shift positions precisely and the coupling constants you can measure along the f2 dimension. So with that we will stop here and we continue with the other experimental sequences in the next class.


We're gonna get started. The unenviable job of speaking last today, which means you're tired. You want to go to sleep.  So, and I'm nervous. So let's do this. Turn to the person next to you and say, I promise you I will stay awake for this entire talk. I'll wait. Okay, that's a lot more conversation than I was expecting. Now, turn to your second choice, the guy that you didn't want to talk to, and say, did you know the guy on stage is homeless? It's not true. I don't know why you'd say that about me, but we'll get to that in a second. Hi, my name is John McCarty. I work at Heroku. I help people fix things there. And I'm not homeless. What kind of I am? This is my house. All right, the link is bit.lybit.ly. Slash Rails comp 16. There it is, it's on the screen. Go ahead. Thank you. All right. All right, so where was I? Homeless, joke, no. That's my house. All right, so, and there's a reason I'm telling you this. So yeah, I actually, last year, about a year ago, a little year in change, I sold my house and I moved into a 180-square-foot trailer. And I've been living on the road for about a year now. It's, that sounds kind of scary to a lot of people.  And a hundred, yeah, that's what everybody goes, oh. So yeah, that's my family. It's really cool, we get to travel around. I work remote for Heroku. We're about 50% remote. 60% of engineering is remote. 50% of the entire company. We get to go to some really cool places. It's up in Washington State last summer. This is my home office. There's my desk chair there, right by my solar panels. It's my roof. And I tell you all this because I love traveling, which is gonna set us up for what we're gonna see here. I'm so tempted to hit play. Do I dare? Okay, all right, I don't know what slides come in next because I'm mirrored, but we're gonna work with it. I'll tell you all that because I love to travel and in the light of today's, my talk today is basically we're gonna cover some really common things that we see at Heroku Support. All of these issues that we're gonna talk about, they're face palm moments, yeah. No, it's fine, I'm good, I'm good, we'll roll with it. They're face palm moments, they're these moments where you think, my app is so slow, what's going on? It's probably Heroku's fault. And you, hi, I'm totally, I'm good, yeah, I'm good. Oh, don't unplug it, it was okay. So they're face palm moments. No, it's supposed to be that. That's cool, it's cool. But I can't tell you who made these mistakes. Some of them are me, that I made early on, riding rails, but a lot of these are really common customer issues that they ride in and things are going right. And then you just kinda start to poke around, you ask some questions. And a lot of times they're like, oh yeah, it's this really simple thing. So, but I can't tell you who they are, so we're gonna tell this entire story using a made-up company. And I like travel, so we're gonna go with a travel theme. I think Airbnb is a fantastic site to use it all the time. But they haven't really looked beyond the horizon, literally, into space for space rentals. So we're gonna take an advantage of that and today I'm launching Airless B&B. Okay, it's my new startup. If you are a VC, some talk to me afterwards, you're also not a very good VC. So there's our logo. We are launching now, thank you very much. And things are going okay. In the last 10 seconds, we launched. And just poking around, seeing how things are going. And it looks like my Rails app is doing about 40 requests per second, or is capable of, if you wanna play around with AB, that's fun, people send us AB results all the time. 40 isn't that great. And so I start to poke around and I'm wondering what's going on. And, well, let's go ahead and boot up. Let's see the server when it boots up. This is what's going on here. Anybody knows what, when I just do that in previous to Rails 5, what I'm doing? Yeah, I'm doing this right there. Shocking, shocking amount of people running Webberkin production. Hopefully that's not you. If it is, if you don't know what web server you're running, it's you, you're running Webberkin. It's a face bomb, okay? Don't do this. Let's talk about Puma real quick. Puma is the web server that we recommended at Heroku. We used to recommend Unicorn. Unicorn is great for a long time. It's susceptible to slow request attacks, so we kinda stay away from that. And there's a lot of other great things that Puma will do. You can look at the benchmarks on their website, they're fantastic. And we'll talk a little bit about to the, kind of the ping that Puma gets is that it's threaded and if you're using MRI, which doesn't really handle threads, what's the point? But in reality, most Rails apps are IO bound. And so while your app is outgoing to the database, it can take advantage of threads, even in MRI. So Puma is fantastic, really easy to get started and throw it in your gem file, boot it up, really simple. And this is, so this is just a home controller. I'm not doing any kind of context switching. And immediately I get double the throughput, okay? So if you're wondering why you shouldn't do this, it's mainly because WebRick has zero concurrency. Technically does, but in Rails it has no concurrency. What that means is, is it can only handle one request at a time, which is really terrible. Because while one request is coming in and getting processed, if another one comes in, it has to wait and it's blocking, with Unicorn or Puma, you're able to fire up multiple workers and handle multiple requests at a time. So that is a fantastic thing. We're done, great, it's a great talk, run Puma. Yeah, thank you, thank you so much. Or is it? You're gonna see a theme through all of these and a lot of our questions that we get at Heroku actually start with, my app is running really slow. And that is one of the hardest places to start helping someone debug what's going on because almost every single thing I talk about for the rest of the talk starts with, this is really slow and you have to start poking around and figuring out what the reasoning is. In this case, I started poking around and I saw this, this is actually a splunk graph. The red shows me how much memory I've used and the blue shows me something that I don't wanna see which is my app using Swap. Now Swap, the first time I learned about Swap, somebody gave me a Linux book about this thick and I'm not gonna cover that. So let me give you a really quick explanation if you don't know what Swap is. I didn't when I started. So your operating system is going to have a certain amount of RAM and then after that once that fills up, it's gonna start saving stuff to disk. Your disk is way slower than in memory so when your app starts going to Swap, you're gonna see a big performance hit, okay? There's a couple different, right, sorry, thanks. Card. Memory enemies, there's two main things that we usually see. The first one is, I'm just gonna give you two links and I'll give you the slides after. Memory leaks are kinda nasty and are gonna take a much longer time to talk about. Go visit these two links. The first one is a library by Richard Steeman, one of the guys I work with at Heroku. It's a fantastic little thing to run against your app and you can actually see if you do have a memory leak. So if you are concerned about that, look at that. He also wrote a fantastic blog post over at CodeChip on debugging a memory leak. The second thing, hopefully number one doesn't apply to you, the more common thing that we see actually is really simple fix. People are running too many of those workers so they've got Unicorn, they've got Puma and they just, how many workers should I run? I don't know, five is a cool number, has a little hat on the top, but they don't think about what does that number actually mean, especially when it applies to memory. So if you look at a Rails app, a typical Rails app is gonna run out of the box right around 180 to 200 megs. Okay, so if you've got a gig of RAM, you go, oh, 1,024 divided by two, I'll run five workers. The problem is, now you're right up against that limit, you have no headroom. So if your app needs to actually use, allocate more objects, let's say you're doing any kind of image processing, that's gonna balloon up and all of a sudden you're gonna start going to swap. So the better way to look at that is to just cut back on your web process, and see how your memory looks after that, and then start to adjust from there. But when you start going into swap, you're gonna have a bad day. Really easy to check this out actually, is go on to your server, type freedashm, you're gonna get that number, which is your total amount of memory, so we got eight gigs. Your operating system has allocated, so it's basically saving 511 megs for swap, and right now I'm only using seven, so just ignore the other stuff. These are the numbers you care about. When that number, that seven, starts getting really deep, you need to be concerned about it. Obviously there's a lot of other tools that will help you visualize this stuff, but first place to look when your app is growing slow, check your memory usage, and adjust accordingly. All right, moving on. I've got people who wanna pay me, which is awesome, found a great place on Mars. One bedroom. The problem is, we've got a bad guy, and he discovered a unprotected part of my website, and has taken the money, and now shit's on fire. This is why. Again, more common than you think. So we put up an SSL cert, and everybody goes to it, all the links that we post have the little S at the end. Why are people going here? Because they did, and you didn't tell them otherwise. And so therefore they're going to this checkout page, and it's completely unprotected. Really, really, really, really easy to fix this in Rails, actually, and we'll talk about how to do that in Rails and Nginx. The first one is this. This is it, this is all you have to do. I don't know why this isn't on to by default. Go into production.rb, go to force SSL, and flip it to true, and you're done. Chip it. This will take any request that comes in on port 80 and immediately redirect the entire thing to HTTPS. Now the problem with this, though, is that it's going all the way into your app. It was kind of a lot of overhead for just doing a redirect. So you can do this a little bit higher up in Nginx. Listen on port 80. If somebody comes into 80, send them to 443. You can do this a lot higher up. Nginx is a much better place to do this, and we're moving on. We got a few more to cover, we got 25 minutes. All right, we are going to change our logo. The rocket ship didn't test well. We're going to change it to a comet. Super easy to do, so we change it, and we push it, and our logo's gone. Nobody knows where it went. Is that an image? That should be IMG. I have, I'm a developer. Designer probably did that. Why did this happen? Our friend, the asset pipeline, yay. It gets a bad rap, and it's unfortunate, because I love the asset pipeline. If you ever had to deal with asset caching in like before the asset pipeline with the question mark crap, it's so much better. So this image, my logo here that I put in is actually going to turn into this MD5, MD5 digested, file name, which is going to let us do cache busting a lot easier. If you don't know what's going on here, basically what the asset pipeline will do is it looks inside of your image, and if it has changed, it will generate a new file name, which is how we do cache busting. The problem is, is that somebody did IMG, and they just direct linked to the logo. Instead, again really easy fix, use the image tag helper. This one isn't actually as common as the CSS version. This is way more common. I see this a lot more. So when you've got your CSS, stop using the URL and linking to assets because this will not use the asset pipeline at all. Very few people actually seem to know this, but there is a bunch of CSS helpers inside of CSS, STSS that Rails provides. Image URL will actually do all of that handling for you. There's also, if you've got a fonts folder, it'll do font URL, there's actually just a base asset URL as well, but make sure that you're using this wherever you can. Teach the rest of your team to always use designers too. Like, on my old team, this is kind of what we would work with our designers whenever they were doing any kind of front end stuff. It's just to make sure that they use this because it's really tempting just to plop in the old URL. Oh yeah, one more thing, the pre-compile list. Thankfully Rails, I think, forget which version it is, where it'll actually warn you if it's not in the pre-compile list. Actually, it was like 4.1. Rails will warn you if you try to render another JS or CSS file and it's not in this list, but be aware of this list. So if you're trying to, by default, it'll render application.js and application.css. If you want another one, make sure to add it to this list so it gets pre-compiled. That's another thing we see people run into sometimes, is it works locally and then they'll push to production. It hasn't been pre-compiled and it'll throw an error. All right, we get a bug. And somebody asked me, is it happening a lot? I don't know, it happened once or twice. Well, let's check the logs, right? Check the logs, what's what we do? We've got a production.log. The problem is we have multiple application servers. This is a problem because now I have multiple production.logs. And I've got really, really big production.logs. So we've got a little problem here. If you've never read about 12-factor apps, I highly encourage you to visit this URL. Let's take a look at what it says about logging in a 12-factor app. A 12-factor app never concerns itself with routing or storage of its output stream. It should not attempt to write to or manage log files. Instead, each running process writes its event stream unbuffered to standard out. What this means is your app should not be sending stuff to production.log. It's really easy. I've seen a lot of apps where, usually not on Heroku, that will just by default, it's like we're only gonna be running one server forever and who cares, we're never gonna scale. And so they just, we'll get to it later and just dump everything into production.log. Lots of times they don't even do log rotation so this thing just starts growing out of control. In your Rails app and your Ruby app, use standard out, okay?  This allows you to consume standard out in a much better way. Hadoop, Hive, Splunk, you can use an add-on like log entries or paper trail to consume those logs and have a much better understanding of what's going on inside of your app. All right, we're moving. We're shipping. Ship, ship, ship, ship. Everybody wants to ship. This is our deployment script. Go ahead, find it. Sleep for. So, this is an actual restart script somebody gave me. I took over a little, a friend's project and the former engineer said this is our restart script. What do you think happens when a user comes and we are sleeping? What do you think they see? An Nginx 503 error. It's terrible. The argument was we shouldn't do restarts because you could have two different versions of your app running based on a unicorn restart. That's a whole other conversation, but this is bad. What we need is an actual legitimate way to deploy our app that doesn't involve me SSH-ing into a server and running this. So, you may have heard of Capistrano and I hope you've heard of Mina. If you have not, I'm gonna tell you about Mina. It is my favorite, sorry, my second favorite way to deploy a Rails app. I'll tell you about my first one in a second here. Mina is fantastic. I started deploying with Capistrano a couple years ago and then I found Mina. Mina is really similar to Capistrano if you're used to using Capistrano. Take a look at this. There's a great plugin architecture for restarting things like Unicorn and Puma and Sidekick and there's great plugins for this. But what's great about Mina is it's really, really, really fast. It does the same kind of idea where it will do a shallow clone out of Git, make a new version folder and then do the sim linking and all that and bundling and db migrate, all that stuff for you. But what it kinda does even cooler is versus Capistrano, which fires off every single command in its own SSH tunnel. Mina will look at the entire thing, bundle up the entire script, open one SSH connection to all of your servers, individual, and run the whole thing on the server. So, it's way faster. If you've never seen it, take a look at it. This is what it looks like when you deploy. Oddly similar to something else, I'm gonna show you. It will make the path, clone the Git repo, do all of the business and then right at the end, it'll sim link and restart the server. There's another way. This is what it looks like on Heroku. Create your app, Git push Heroku Master. Whether it's this or whether it's using Mina, you need to have a good way to deploy if you want to ship frequently. The teams that are usually unable to deploy quickly are teams that struggle with these deployment practices. They think they'll get to them at some point and they never do and they get stuck because everybody's too busy doing something else and then by the time they need it, it's almost too late and they can't deploy quickly. So, have a way to deploy quickly so you can ship. Next problem, somebody got into all of our S3 images and swapped them out. Someone nefarious has taken all my beautiful Cosmos pictures and put in something less than appealing. How could this have happened? A long time ago, someone decided to put our S3 creds into the Git repo.  There was a couple years ago where you could actually, I think you can still do this sadly, there's a search command, be good, but there's a search command that will let you go through all of GitHub and look for S3 creds and they're still out there. People have S3 creds all over the place. Shneems did it one time, right? Yeah, that guy right there. How big was your S3 bill in the morning? Three grand, yeah. So, don't do this. There are so much better ways of doing this. There is something called secrets.yaml inside of Rails now. This one works pretty good, I have a better way, but if you like this version, you can go this route. Throw your keys inside of secrets.yaml, please get ignore this file. And then you can use it inside of Rails by calling it thusly. Personally, I much prefer Envars. This is where all of your keys need to be in Envars. You don't commit them, they are different per environment that you're running on. Really easy to do in development, you can use this gem called .envrails. You make a .env file, get ignore it. You've got your key values and then on Heroku, it's really easy, Heroku config add with your key value. And then in your app, you just call Env and whatever the name is, okay? Really easy to do and this is the right way of storing credentials. Please do, it's really tempting, especially when you're going really fast at the beginning of an app.  Start the correct way by using Envars way up front. All right, 15 minutes, so I gotta hurry up because I wanna do questions. Okay, I'm gonna hurry up. This is my database graph, or this is my app graph in New Relic. The orange chunk right there is my database, this is no good. What on earth could be causing this? When we are yet a small little app and I was looking up users by their username, this call took 2.3 milliseconds. But now, the last 20 minutes of us being up and running, we have jumped to 231,000 users and suddenly that call is 51 milliseconds. Who would like to tell me what's wrong? Indexing, thank you. So that little thing is now this big thing and that's only gonna get worse because we do not have an index on username. This is one of my own. I bit this one really hard early on and this is really, really easy to do. So database indexes basically tell your database, this column is something that's important to me. I want you to index it because I'm gonna make calls against this column frequently. It's so easy to do in Rails. You basically just create a migration, add the index on the table and the column that you want and all of a sudden this 51 milliseconds, actually it's faster than the original one, it's down to one millisecond with the same table load. One asterisk here is composite indexes. I didn't know about this one either. Suddenly I wanna look up by the one thing and then something else. That original index that you made no longer applies. You need to create a composite index. Again, really easy to do in Rails, pass an array of column names and you may now have a composite index. All right, two more. I'm gonna blow through these, awesome. We're so close to a billion dollar valuation. It's gonna be great. My first problem that I have here starts seeing again, the app is a little slow and I've got this controller here iterating over photos and then in my view I am spinning out the photo in the username. Except this is what my log looks like. So I'm getting all the images and then I've got all of these user loads. What's going on? It is a N plus one. Didn't know about this one either. These are really easy to ignore while you're writing an app because again, your development environment isn't taking on the load that your production environment will. So all of a sudden what works locally is getting thrashed by the amount of users that you have. An N plus one basically is what happens is when you call one object that has a relationship you start iterating over this and calling the associated object. It's really easy to fix in Rails. All you have to do is instead of going just photos.all or photo.paginate or whatever you wanna do includes, it kind of messes with you because it include is actually a standard library. Method includes will tell ActiveRecord that this is an association that I want you to load and what happens is Rails is this really smart thing where it goes from this to this. So now it will make only two calls. Get all your photos and then do an N and find all of the user IDs on those photos and grab them all in one shot which is way better. In development use a gem called bullet. This will show you when you've got N plus ones. It looks like this in your logs and it will actually tell you add this on your finder. So if you've got photo go it says right here there's an association called users add this to your finder include users and life will be magical. Last one.  And if you look around you'll actually find plenty of cases where you can see where milliseconds will actually affect users' happiness. People will bail on websites because things are just a little bit too slow. So this is actually pretty important to us. Now I take a look in New Relic and I see my app's pretty snappy except this one thing called photos controller. It's taking almost five seconds so I dig into it and I see this. I'm spending almost 60%, 66.1% of my time dealing with S3. So what's going on here? This is what's going on. So a request is coming in it's hitting the controller. Now it's creating this photo it's going out to S3 and waiting for S3 which means the user is waiting for us to do something that user doesn't really care about yet it wants to upload the photo and get on with what it was doing. So it's now got to wait for S3 before it returns a response. So we're gonna talk about background workers here just a second. Let's talk about another use case let's just do SMS. SMS is a little simpler we don't have to deal with image magic if you follow that one. So let's talk about SMS. So let's do we got this we have a user object we're gonna send them a message with an SMS provider. So the request comes in hits the controller we got to wait for SMS provider before we return a response. This is a great example for when you want to use a background worker actually an even better one. It's a little bit simpler to talk about is mailers. If you go on to the Rails guides you actually can see I think they use in the active job explanation they use mailers I'm gonna talk about SMS here but mailers is a great example anything where you have to wait for an external service to return a response for something that's non-critical sending an email sending an SMS if it can wait a second send it off to a background worker don't make your users wait for it. So instead of user dot send an SMS in our controller it's actually gonna do the job we're gonna call perform later which is the active job method you can use sidekick whatever else you want the active job is uses perform later and you pass it your arguments. And now instead of this it's this. So we go to the controller it goes and fires off or adds the job to the queue in Redis which is super fast and gets the user back to what they're doing. Now the SMS job can do whatever it wants. This is what a basic job looks like. So it's inheriting from active job base you just need a perform method and the arguments and then you can do whatever was costly before uploading a photo sending an SMS job sending an email whatever it is this is really really small bite size code and saves you a ton of time and what's even better on the app provisioning servers Heroku side you don't need as many app servers now because they're not all waiting around and consuming resources they can actually get the user back and go let a worker take care of that which means you actually need less servers so this is a great thing for the bottom line as well. That's it we sold we made a billion dollars off of a terrible idea but mostly because we fixed all the problems that we talked about in this talk we're actually pivoting we're gonna be building a Tinder app for cats it's gonna be good I don't steal that so the bottom line here is if you are new or if you've been around for a long time when you are running a Rails app in production you will break things the important part is when you do fail on something when something does break learn quickly and continue to learn there's so many things that are changing in Rails there's so many things that are changing in the state of the art of the servers that you're running don't get discouraged keep learning and you're gonna be great thank you very very very very much.


Good afternoon. Good afternoon. My name is Deborah Rogers. I'm the executive director of Falmouth Community Television and the chair of the National Board of Directors of the Alliance for Community Media. We're pleased to be joined today by Commissioner Michael J. Cops. Commissioner Cops joined the Federal Communications Commission in May 2001 and was sworn in for a second term in December 2005. He served until January 2001 as assistant secretary of commerce for trade development at the U.S. Department of Commerce where he was previously deputy assistant secretary of commerce for basic industries. Commissioner Cops came to Washington in 1970, joining the staff of Senator Ernest Hollings and serving for over a dozen years as chief of staff. He has also held positions at a Fortune 500 company and at a major trade association. Before coming to Washington, he was a professor of U.S. history at Loyola University of the South. Commissioner Cops received a B.A. from Wilford College and earned a Ph.D. from the University of North Carolina at Chapel Hill. On behalf of the members of the Alliance for Community Media, I want to thank Commissioner Cops for his support of local community media and the services we provide. Local news and programming and outlet for diverse voices, youth training, workforce development skills, public safety and information that is critical to a civil and informed society. During his tenure on the FCC, Commissioner Cops has stood his ground to protect localism and diversity. With the understanding that democracy's premise is a well-informed citizenry, he understands and publicly states what few in Washington are willing to acknowledge, that the support of local community media is absolutely necessary for democracy to flourish. We thank Commissioner Cops for his work and his service. His strong voice will be sorely missed when he leaves the FCC. Please join me in welcoming Commissioner Michael J. Cops. Good afternoon and thank you, Deborah, very, very much for the very warm and very generous introduction. I'm the one that should be thanking you instead of you thanking me because it's always so nice to be with folks who do so many good and wonderful things to bring local information and news and music and just plain diversity, really, to the communities they serve. And that's a wonderful word, communities, because it's where we live and work and raise our kids and try to be good citizens. It's the immediate world that surrounds us and we need to know about it and understand it and be a part of it and help improve it, and that's what you folks are indeed doing. And yet many of the major trends in media over the past 40 years now have pushed community aside, pushed diversity aside, local culture aside. It has not been good for citizens, it has not been good for media, and it has not been good for America. So being here this afternoon with folks who are working hard to provide platforms for diverse and unique perspectives, that's exactly where I want to be and I'm glad to be here and I'm always pleased to come over to the Straight Thinking New America Foundation, which always does such a stellar job in bringing issues and intelligence and civic-mindedness to our national dialogue. These are challenging times for our media. I spent the last 10 years on the FCC working to ensure that every citizen in the land has available the news and information that they need to be informed, to be contributing participants in the affairs of the nation. We made some progress on a few fronts. We've stopped some bad things from happening and I'm happy about that. But overall our public policy has not come close to matching the media needs of our people. I want to stress one critical aspect of that, my remarks today, my particular emphasis is going to be on the news and information America gets and doesn't get. And right now it's not getting enough, not enough to inform us as citizens and not enough to provide us with the information we need to make good decisions for the future of our country. We have to be a news literate society, understanding and engaged with the substance of public issues if we're going to keep this experiment and self-governing democracy afloat. Unfortunately, as this audience understands better than most, too often real substantive news has been replaced by fluff. Democracy is not well-served by fluff. Democracy cannot be sustained by fluff. What we need to do as citizens is some hard thinking about how to better inform ourselves in the digital age, how to provide the news and information infrastructure to make sure that this happens. In the same way that Washington and Jefferson and Madison built the information infrastructure of their time, so we must build a new in our time. The founders knew they were embarked on a risky experiment preserving that fragile young democracy that they had fought so hard for and finally won. They knew how important the spread of information was to the success of this experiment. They wrote a First Amendment to ensure that the American people would be informed and they went on to build postal roads and to subsidize the cost of distributing newspapers, all kinds of newspapers so that citizens everywhere in the land would have the news and information they needed in order to make good decisions for the future of the country. And to keep that democratic experiment going. So they built the information infrastructure of early America and now it's our time to be information infrastructure builders just like the founders were back then to provide ourselves with the tools and the resources that we need to sustain self-government and to safeguard and prosper our nation. It's a time of new tools and new technologies, of course, compared to two centuries ago, but it's the same enduring democratic challenge across all those years that has not changed. And we are not meeting that challenge very well today. More and more we see the perils of a hyper-consolidated commercial media and the damage that that has wreaked on our civic dialogue. And on top of that came some bad public policy choices with successive federal communications commissions not only first blessing all that mega-media consolidation, actually encouraging it, but then going on to pull the props out from under almost all of the public interest oversight that it had previously performed. As newly consolidated companies tried to pay off the huge debts that they had incurred in order to combine and as they strove to satisfy the ever-escalating expectations of all street for those bottom-line quarterly reports, the news media was the first to feel the pain, first to feel the axe, actually. So newsrooms were shuttered and journalists were fired and investigative journalism was put on the endangered species list. The inevitable result has been to be blunt about it, a too often dumbed down national dialogue on issues that are vitally important to our country's future. The result has been ever more glitzy infotainment masquerading as real news. It's been thousands of journalists walking the street in search of a job instead of walking the beat in search of a story. It's been shouted opinion replacing solid fact and as the late Senator Daniel Patrick Moynihan once reminded us everyone is entitled to their own opinion, everyone is not entitled to their own set of facts. Meanwhile the challenges we face as a nation are so deadly serious. Our economy founders, our global competitiveness, has clearly lost its edge. Nearly a fifth of the workforce is unemployed or underemployed. Our education lags with teachers suffering almost as much as the kids. 50 million Americans have no health insurance and our children enter a world more challenging by far than the one where you and I grew up. If we don't have a media that can dig for facts and tell the stories and cover all the beats and separate fact from opinion and hold the powerful accountable then tell me please how in the world are we going to meet and master all of these challenges. How are we going to overcome? To me getting our journalism and our media right is step number one in getting our democracy right. The information needs of communities report that the FCC staff released last summer, I'm sure many of you are familiar with that identified some enormous gaps that exist in our media environment particularly the fact that there's a serious dearth of local accountability journalism. But I was disappointed that the report didn't put forward a more robust set of recommendations for action particularly actions that the FCC could take by itself under the authority it already has you know we suggested Congress do this the IRS do that Philanthropies do this we didn't suggest all that many things that we could be doing it's kind of like a doctor identifying patient's symptoms but then prescribing no medicine. But there are plenty of worrisome symptoms that the report did do a good job of illuminating for instance one-third of local TV broadcast stations do little to no news one-third or this institutions paying stations for favorable coverage including that report of a hospital out west and paid a TV TV broadcaster I think a hundred thousand dollars for a series of good and favorable and positive stories. And this although it's a revelation that was no surprise to anyone working on media reform the FCC is doing very little enforcement of broadcaster licenses during the renewal process. I think we all knew that the last time we took a license away on public interest grounds hasn't happened since I've been there that was 10 years didn't happen for 20 years before that's over 30 years ago that that happened. So what can we do about all this? Well here's one ill that the commission could fix right now instead of that current FCC rubber stamp license renewal process we're in every eight years a broadcaster sends in his application and we grant it without doing any serious review about that station's public service performance. How about a policy that demands licensees to come in every three years and we take a good hard look at the licensees records and match them up with some guidelines like we used to have to demonstrate that they are providing your communities and the citizens of your communities with real local news and information that they are reflecting all the wondrous diversity that exists in every one of your communities that they are open to the expression of diverse viewpoints and that they're actually going out and talking with people in the community about the kinds of programs that they want to see and hear. Is that asking too much? I don't think so and if we find that a station is not serving its community of license in a significant way then I'm for taking that license and giving it to someone who will. And with that kind of approach I don't think it would take very long for the word to go forth that the FCC after many years in the wilderness is back in the business of enforcing the public interest. Here's another action we can take saying no to some of these mega media mergers that have done so much to eviscerate localism by allowing a few big medium ogles to gobble up more and more of our broadcast outlets. In mega media the bottom line so often trumps the public interest. Or how about this in positive steps to strengthen community media? Why can't the commission make that a priority? Why can't we understand its huge potential to both enhance the media and to empower communities? How about dealing properly with the issues and petitions that you bring us? How about finally determining that carriage of peg channels on the basic tier is a public interest obligation that cable companies need to live up to? We need to ensure that this obligation is being met and if a company insists on all the benefits of cable without being called so we should insist that if they walk like a duck and talk like a duck they ought to be called a duck too. The cable duck is still a duck. This has been sitting for way too long at the commission while peg channels get moved to digital Siberia. Let's talk about new media for a minute or two. I know you folks are community media now and not community radio or community traditional media and that's exactly as it should be and if it works as it should the internet can provide us with a wonderful new town square of democracy paved with beautiful broadband bricks. Bear used to entry on the internet are low the links are ubiquitous and there's an opportunity for all of us to be participants. Interesting innovation and entrepreneurship are obviously taking place out there so the future holds tremendous digital promise but let's be candid the promise of new media is far from fulfilled. Nothing is guaranteed and in truth to my mind what has been lost in traditional media has not yet been filled in by new media now by long shot. Just stop and realize this the overwhelming bulk of the news that we get well over 90 percent continues to originate from where from the newspaper newsroom and the broadcast television newsroom. The problem is there is so much less of it because of the factors that I enumerated before. So if our goal is that every American should possess the skills to discern real news from infotainment and trustworthy sources from untrustworthy and fact from opinion then we've got a lot of work to do. If kids and seniors like me too are going to harvest the awesome potential of our media tools and technologies then we have some serious educating to do. And it's tough lying it's hard work figuring out how to make media work for all of our citizens. I see a huge role for community media centers pigs and others to play here and already you're helping to provide the skills the country needs in the new literacies. Call them digital literacies or media literacy or news literacy or whatever you want they're all kind of grouped together under new literacies I guess. And I know that for several decades your members have been out in the neighborhoods providing a platform for programming that would otherwise not have been seen reaching out to citizens that the mega broadcasters never even see and I know the great work you're already doing to provide critical training to fill the many literacy voids that exist and to work with schools and anchor institutions and all sorts of other community organizations. Now I think the time is ripe for us all to pull together to strengthen our partnerships with media outlets and communities across the land including public media I think there's wonderful opportunities there and I think there's a great opportunity for your organizations to be hubs of a new media revolution. The FCC shows signs of being a willing partner to take some forward-looking steps on the digital literacy ramifications of broadband adoption and you and your members can do a lot to make this a reality and to help ensure that our initiatives have some real clarity of focus on local communities and specifically on the kind of news and media literacy that I talked about today. It's easy to dedicate ourselves to digital literacy but you know you've got to make progress and you have to start somewhere and you have to identify where it is to begin and what are some of the interim steps that you can take if we're really talking about digital and media literacy across the land in this country of ours you're talking about long-term prospect and retraining teachers and redoing a lot in the educational system that doesn't mean we have to wait for 25 years there are things we can do right now there are down payments that we can make I would love to see a k-12 media literacy program up on online within the next year 18 months something like that I don't see why we can't do it there's a lot of groups out there you probably know many more than I do that are really doing interesting innovative things on digital literacy and media literacy the problem is there's so many of them group 8 doesn't know what B is doing B and C and so on so you know the FCC would be a wonderful place to convene a dialogue find out who's doing what have that dialogue take place among public and private sector participants make it a partnership that's how we always meet the great challenges that face this country of ours maybe try to get a little seed money from a department of education or government is as broke as they tell us it is maybe from some of the philanthropic institutions just to put that program up online it's a down payment put that k-12 program up in the line if the school jurisdiction wants to use it fine if they don't or they say oh you're trying to force some federal program down our throat they don't have to take it but at least let's give them the opportunity to do that our future is so tightly interwoven with the new media all media that if we can't feel something like that k-12 program in the next i say 12 18 months two years whatever then we are really hobbling the ability of the next generation and of all of us in in this room to to really take advantage of all of the new tools out there to understand how to use them to appreciate how they can misuse us if they are wrongly used and to just inform and better our communities i've heard some thinking about calling a youth media symposium this fall or winter to bring together the disparate groups who are working on literacy programs and to actually get a coordinated effort up and running that strikes me as eminently sensible eminently worthwhile and i believe that community media folks can be at the epicenter of getting this moving and keeping it moving and as i said developing some clarity of focus attracting participants developing a program leading to early action again there's a huge role i think you folks can play so the kind of things i mentioned and they surely don't exhaust the list of my concerns would go a far piece down the road and bring the public interest back to life the FCC should be and must be in the vanguard of this many problems call out for commission action i know that but none call out more urgently than these and after all we have a statutory obligation to serve the public interest to foster localism diversity and competition which are the three pillars of the public interest and to encourage that information infrastructure that i talked about earlier and that our democracy requires so there's lots to talk about there's lots to do i just want you to know that i intend to keep working on these challenges in the months and years ahead as was noted i will be leaving the FCC later this year but i am not leaving these issues that we have discussed here and that you and i have worked on for so long i could never do that so i will still be out there trying to do my part maybe stopping by some of your communities uh to visit and to see what we can get moving i know you'll be doing your part and i know how instrumental community media can be in confronting and helping us overcome all of these many challenges you know we we can get all this done it's a big job but we can get this done if we have the commitment if we have a strategy if we can get some down payments now and then strive for some long-term solutions there's no reason we can't get it done as my late great friend walter crown kite said this is a quote america is the most prosperous and powerful nation and perhaps the history of the world we can certainly afford to sustain a media system of which we can be proud end of quote and all i can add to that is say amen so i thank you very much i'll be happy to entertain some comments here take a question if we have some time to do that all right we get the ball rolling here thank you commissioner crops you um you mentioned youth media and many of our members do in fact offer some incredible youth media programs in their communities for for children but also specifically middle school high school and college and part of this is a comment but also a question we would i think be thrilled to be working with more organizations not for profit and for profit in order to grow our programs and expand their reaches within the community do you any thoughts or suggestions just off the top as to where we might go from here well i yeah i think there's lots of places we could go i think number one you could try to be something of a convener or maybe work with the FCC or some department of government there is an interagency for example media literacy or a digital literacy program that could be focused on things like this but i think it's just understanding the possibility of those public private partnerships and emphasizing this is how we always face up to the great challenges that that face this country of ours i think there are a lot of philanthropies out there that are uh potentially interested i know there's they're hard times right now but this is a priority and i do detect some interest out there there are these literacy programs going on in disparate places so those so some of the resources we know are there because they're being expended and it's just how do you put them in a in a hole that has some sense of strategy and purpose and and near-term outcome and and down the road outcome to them so i think it's just kind of right now is kind of networking but in and pushing i think in kind of an insistent fashion that the responsible agencies of government really bring some focus and clarity and leadership to this i mean the government has to pay for the whole thing doesn't mean it's necessarily going to be all that expensive to get that down payment up there so i think uh possibility is limited by our own sense of of creativity i think there's lots of things we could be doing other folks in the room may have some other ideas how to do this but political action is always a result of a game of addition and getting lots of players involved pushing for the for the same thing and i think that's where you need to to be thinking which are the commercial broadcasters out there that might be willing to sign on about the public broadcasters and we just met with them up in Minneapolis the other day so i think there's lots of folks lots of folks out there mr. copso erick mulvur in forway in indiana is there can you give us some kind of an idea of when the commission might come forward with some rulemaking in regards to the petition that the alliance has had before the fcc for a while nor what we might do to assist you in moving forward with a ruling on that petition uh no i don't i mean that's under the prerogative of the chairman's office and uh not mine as i said in my remarks i think it's important that the commission be responsive and react to petitions uh sometimes things get settled by themselves and that's good but if it leads to the idea that everything is going to get settled by itself then some things go unintended uh i think in the particular case that i think you're referencing uh it's an important decision i think it's one that's past time that is is made and we get on with the job but exactly when that is going to happen i cannot tell you richard turner from the maryland area um thanks again for your continued work and vision in this area of public interest and communications and particularly i wanted to reflect and get your reaction 30 years ago um the a case was made that the funding for public interest provisions and cable should be tied specifically to the franchising process and so there it gave a funding base in order to create these public interest opportunities within communities do you see such opportunities as we look into the future does that same kind of opportunity exist today and where should we be focused to ensure that the funding mechanisms can be in place to create sustainable options for these public interest obligations well it's a tough one right now both in the uh economic and the political environment in which we live uh so i think what we really have to be focusing on is kind of designing incentives that really give people reason to do these things or some reward or recognition for for doing them it's not a favorable landscape out there i mentioned the private sector depredations that have taken place the public interest public sector uh uh refusal of up to its responsibilities over the years so everybody's kind of had a hand in it we met the enemy as Pogba said and uh and it's us but i guess number one maybe number one is just making people aware of uh of the challenge and understanding the importance of the media challenge and i think going around the country for the better part of 10 years now that people understand something is wrong with the media and that something is missing in the media and something in the way of community coverage and local news and covering local minorities and diversity groups is missing and it's not that they necessarily understand all the details of that because the media hasn't done its responsibility in explaining these issues sometimes it's their own ox that's going to get gored like in the media ownership movements that we saw but even when media didn't cover that when my friend Jonathan Adelstein and i went around the country holding media ownership hearings sponsored by members of congress and public interest groups one or two by the FCC but that's all we could ever get out of the FCC we saw that people were concerned we saw that they'd stay until 12 one o'clock in the morning nine-hour town hall meetings and we saw the three million of them were sufficiently interested to write to the FCC and congress and say we don't want those new rules that the commission just passed and eventually there was political and judicial action against them they're back at the commission many years later still waiting for resolution as we all breathlessly wait for a new 2010 quadrennial review to to help these issues further so i think number one is understanding the problem and and the community lacks and number two and understanding that these problems although they're serious and far-reaching can be resolved there are solvable problems we can kind of put the brakes on some of this ongoing consolidation the FCC without having to go to congress or asking for any more authority can do all the public interest stuff i just talked about in the way of licensing terms and having some public interest guidelines so that's that's resolvable too but i'm not trying to underestimate the problem you're talking about and i know what's happened with the franchising authorities and the other calls on money and all that and it's it's a serious problem but it's one that ought to not cause us to despair but really to redouble our efforts and double our action and double our commitment to trying to get it done just realizing how important it is if you really buy any of what i said i mean i think this is this is probably reform of all reforms that would do the country some good right now commissioner if i could following up on on eric's earlier question the alliance for community media is now waited 32 months for the commission to rule on whether or not a channel is a channel or can be a web stream whether or not a channel's got to have the same capabilities as a broadcast channel or it can simply be a web stream and and for 32 months we've tried to be polite we've tried to go over and and build our case based on facts and we're just we've gotten no response and we you know the response that we've gotten from our friends at the commission has been you really don't want this answered because we feel that would probably be answered against you and by doing nothing we're in fact helping you and i think where we come out today is we'd rather have no continue to wait and and i guess commissioner our our question to you is how do we politely say enough's enough it's been 32 months we've had hundreds of peg centers closed we've had hundreds of channels either be lost de facto or de jure because people can't find them they don't want to find them i mean you know at the same time we're fighting for things like lpfm and other community outlets we already have community television stations that are disappearing how do how do we express that frustration doing it respectfully because that's always been the knock against us that we're militant and we're not professional in our presentations how do we do it professionally but nonetheless do it forcefully enough that maybe we get an answer well i feel your pain i've been waiting for 10 years to get the commission to call telecommunications telecommunications and all that without much success and i've tried most of the time to be polite maybe not always and not in everybody's eyes hasn't worked i don't like that council you're you're getting of i don't push this you might get the wrong answer because that's just a council to further inactions and you need to be a part of the process decisions without you or in decisions against you and decisions that are denied just things that don't ever get done so i don't know some folks maybe think i'm an agitator maybe i'm not an agitator enough in some ways i don't know there people are getting more attention now on television and the nightly news by doing some things that aren't necessarily polite to to every viewer so i think every citizen has to make up his own mind and decide what road he's going to go down from my standpoint you know as i said i intend to keep talking about these issues and might even be a little bit more obstreperous about them after i leave the commission than i have been thus far we'll have to have to wait and see but i think you need to push and urge your friends or whatever they may be to push toward a resolution of this and then try to mobilize your friends or your communities to express to decision makers how important this is in terms of local media and the ongoing experiment of democracy it's maybe not a prescription from action when that's about the best answer i can give you right off the top of my head commissioner jeff wheeler from the town of york town in new york thanks very much for your remarks today i'm heartened to hear your support of of journalism um and i i'm wondering you talked about the mega media mergers uh do you have any hairs on the back of your neck standing up over mega unified communications companies mergers we're getting to a point now where um if more and more people are getting their their news from from the internet um they're only going to be a handful of recognized outlets for that i don't think it's any question about it and i've said uh a more than one occasion that there are very worrisome signs out there that new media which is the product of this most freewheeling opportunity creating technology and perhaps the history of mankind could be hitting down and show signs of hitting down that very same road i mean if you go to the top 20 news sites on the internet who runs those news sites the same folks basically that are running the other media too so you know that would be a disaster of a tragedy of historical proportions to have a technology like that that's capable of so much in building a new democracy in a form for people to speak and and hopefully to be heard too to let that go down the same road of consolidation so no i'm i have not been a friend to consolidation in telecommunications and traditional media or or a new media either it's a serious problem and don't believe those you know for a couple years we heard oh we've the media's learned this lesson we've learned a lesson no more consolidation but then you stop and think about it and just this year in media we've had comcast mbcu we had cumulus citadel we've got some claire coming in buying more stations now and i'm convinced that as soon as the economy gets off the downside starts going like that you're going to see many more people looking to make a buck and do deals and then combine so i think this consolidation across the media and communications platform is alive well well but not good it's alive and well and needs to be dealt with and will require some courageous policy decisions in order to to put the brakes on but we've gone way too far way too far down that road thank you i enjoyed it thank you for having me over


Hi there everyone, Matthew Burgess here from Vue Legal, sitting again in the Redback Studios in Sydney and very grateful to be here. Redback for those of you that don't know, specialise in hosting a whole range of visual and audio and live presentations. And it's just always such a pleasure to be here. Always, I think, treated as though we're basically the only client that Redback have when in reality you know that behind that wall there's probably over 100 clients being looked after at any one point in time. If you haven't tried out the studio's in Redback and you're looking for just A-grade service solutions and support, I really encourage you to have a look at what they do here. Take care everyone.


I was actually blown away by Turk estrone. I found it to be very, very potent, very, very strong. Every time I took this, I had extra strength. Visually, just my muscles looked better, more bigger and more stronger. The more that I would consistently take it, the more that I could see it. I would get in the gym, I would go put my normal weight on, and then I would feel like, ah, I kind of want to go a little heavier, kind of want to go a little heavier. You look at the the chemical structure, it's very, very similar to testosterone. So if it does build muscle, if it does do all these things, it's pretty much going to act a little bit like a steroid in your body. And so you might have a little bit of testosterone depletion.