All right, so good morning, everybody. As we're in our introduction, my name is Patrick Peake. I'm the Chief Technology Officer for Browser Media. And with me today is Paul Berry, who is one of our senior engineers. So today, we're going to be talking a little bit about who we are, what we did with our product transition. And as by way of background, Browser Media, we are sort of an interactive agency based in Bethesda, Maryland. The sort of Cliff Notes version of my talk today is we build websites for clients. We built a commercial Java content management system to sort of assist this process. But over time, the market changes, different forces. So we're rebuilding it as an open source Rails project. So some of the questions I hope to answer for you by the end of this talk is, why bother building a content management system in the first place? More importantly, why rebuild it in Rails? What do you even use a content management system for? What purpose is there? And then sort of what problems does Rails as a platform solve for our CMS? So I want to start out with a story. So this is the story of your client. He wants a website that looks good, doesn't cost him a bundle of money. He's not up to date necessarily, so we asked for it in Fortran. But he'll settle for Rails, right? He's a businessman. He's not particularly technical. But he has a reasonably clear idea about how to make a buck on the web. So you sit down with him, you identify the requirements, you deploy the site, it looks great, it launches fine, everything is good with the world, right? So that's the end of the story, sure. Well, not really. As we know, launching a site is not the end of the story.  So the moral of the story here is simplicity doesn't last, right? You know how, we all know how this goes. You build an application and you add features at the request of the client. And over time, slowly but surely, it gets more and more complex. Your simple site is no longer simple. You have to add a new UI for your client so that his editor can change the homepage. Then you have to add a permissions management system so that when the sales guy goes in and makes changes, the sales guy doesn't break like the marketing guy's pages. Then you need to train that, you need to train a new intern to use the UI to start and get a little more complicated. Then said intern goes in and deletes half the homepage. So you have to go in and restore from tape backups. You've lost 24 hours worth of work so the client says, hey, build me some sort of versioning system so that this doesn't happen again. So kind of at the end of the day, you've basically spent a lot of billable client hours to build what is essentially a custom content management system. And then at the end of the day, the client asks for documentation, right? And you don't have any because it's all custom. So this is kind of a problem that a lot of web shops face is you need these tools to allow you to build websites for your clients that look professional and get the job done, right? And so browser media, we're not, unlike a lot of the other companies, we're not 37 signals and we're not trying to do services to become a product company. We're trying to make the product, we're trying to make the services thing work, right? We're not in business of selling licenses necessarily. But we do need a content management system to allow our users to manage their own sites once we're done with them and we turn them over to them. So the real goal here is targeting it on the sort of non-technical users, right? Like the folks that aren't necessarily programmers themselves, but they need to be able to do stuff on a daily basis. So the real goal is the sort of separation of concerns, right? We have the sort of complete soup to nuts web design process. We've got information architects who are doing the wireframes and the site maps. You know, we have graphic designers are doing layouts and Photoshop comps. We have the developers who are doing the sort of HTML and CSS stuff. And finally we have programmers to do the sort of interactive widgets that go onto these sites. But at the end of the day, you kind of have to get this out and the client has to actually run the site themselves. So I'll kind of roll back to like 2003 when we were starting to face sort of an increased demand for content management systems. You know, our clients in a lot of cases that come to us with a need for very heavy content, very heavy content sites, right? Think of like 5,000 to 10,000 documents that they just have to keep organized in some way, shape, or form. And in a lot of cases, these are folks that are in the market for commercial CMS, right?  And at the time when we started, there really wasn't a lot of open source choices, right? They were fairly unusable. They were pretty baffling and just overwhelming to end clients when you put it in front of them. So what we decided to do was build our own Java solution. And you know, this allowed us to design the CMS around the sort of processes that we have.  And over time, the clients that we've deployed it for have been pretty happy, right? We have probably maybe 50, 60 clients that have been using it. You know, it's pretty easy to work with. And more importantly, us as an organization, we've kind of learned a lot about how content management works, how clients use it, what they ask for. And more importantly, how to support them when they have questions. So we built our own. Well, then you have other kinds of projects, right? Sometimes a client comes to you and they just want a Rails application, you know? And we tend to build these custom applications on Rails more lately, just mainly for the productivity benefits that a lot of people in this room are probably very familiar with. You know, Rails really helps with the quick starts. You've got a small project, you need to get it up and running fast and out the door. But inevitably over time, clients ask for these sort of content management-like features. And really honestly, rebuilding a CMS from scratch is a very expensive endeavor. You know, projects end up with their own set of bugs, their own training and support costs, and adding that polish that each client really wants is really almost too expensive to do for each client. They just, you know, they end up paying to refine the UI. Plus it's a little bit difficult to reuse code between projects because everything's just a little bit different. So the next thing I want to do is talk a little bit about the CMS marketplace. So overwhelming is a really good word for both this picture and for the marketplace. There is probably in the neighborhood of around 2,000 to 3,000 content management systems out there. And the market evolves pretty rapidly and it could be about the most fragmented ever. There's really no dominant player. Even a company like Microsoft has had like three different content management systems in the last five years. They don't even know what they're doing really there. One thing's for sure though is it certainly keeps consultants employed, just purely making sense for a client of what they pick, how they do it. There's a lot of money to be made there, just even sifting through it. And for a long time, commercial tools really dominated the space pretty well, even especially in the sort of mid-market range between like 25,000 to $50,000 for a license. But really they focused very much on the traditional content heavy sites. But over time, what's happened is the open source projects have really matured. Names like Drupal and Joomla and WordPress are probably familiar to a lot of folks in the audience here. But these particular systems weren't even on like the professional CMS watch radar screen in like circa 2006. So just a few years ago, these products weren't even marrying an invention for large-scale commercial products or large-scale websites. But they've sort of come along recently. And increasingly, clients that come to us are looking for more sort of web 2.0 or social sites that don't really fit well with the traditional sort of static CMS type of content. And that's something that Rails as a framework does better. So, Roz Media, we're a small company. We've got this proprietary commercial CMS. And so we're kind of getting it from both ends, right? We've got growing interest in our clients for open source solutions. But at the same time, we have this commercial CMS and we've got more established commercial players at the other side. And it's really hard to compete with free, obviously, especially when you're sort of at the low price point. So where does that leave us as a company? And I'll give you a hint in this picture, we are not the Venus Flytrap. So we have a couple of options, right? We could sort of turn ourselves into a traditional CMS vendor. We could, to all partner networks, focus on the license revenue. Or we could kind of just scrap it, go back to our roots as a peer service company and get another product. But the bottom line is we really needed to respond to the marketplace and what it was telling us. So if you can't beat them, join them, right? We decided that it's probably useful to move to an open source model. And that solves a lot of problems for us. It gives us the ability to do sort of our traditional sort of soup to nuts web design. And it also gives us the opportunity, when we're doing Rails custom development, where we need CMS injected. And we're still gonna get clients that are gonna come to us and say, I need a CMS, right? Just put one out there, you need to implement it for me. And the way a lot of web shops do this is they kind of follow one of two strategies. First one is they pick a specific CMS and sort of focus in on it and that's what they do. And you might say, you might find Drupal shops, for example, that that's all they do. The other way they do it is they come at it from sort of a product agnostic approach, where they'll sort of work with a client to pick the best CMS for them. And really what that means is they know three CMSs and they pick the one most likely to get the sale. So obviously if we're gonna go into the open source realm, it's worth looking at what the other products in that category are. So the first one I'll talk about is Drupal. So who here is not familiar with Drupal? Has not heard of Drupal? Okay, so pretty much most people are familiar with this. So in any case, Drupal is a very popular PHP-based content management system with I think at last count like 11.5 million modules. So why not just use Drupal as a shop? Well, the first one, the obvious answer is it's not Rails. I think most people here in the audience are here because we like Rails, we think it's productive and it gets the job done. So if you wanna be a Rails shop saying, okay, well we're just gonna do websites and Drupal is probably not a productive answer. But it is worth looking at why Drupal is popular as a project, right? And the best analogy I can come up with is really, Drupal is kind of like Rails for PHP. It's this combination of an actual web framework at one sense that gives structure to how developers write their code, but it also layers on top of it sort of the CMS or UI framework that you get. And it's pretty powerful to developers to do stuff with, right? It's easy to develop a module, get a quick win, see it up and running on your website in sort of that same way that Rails developers get excited about deploying their code really quickly. Add in the fact that PHP is really approachable as a language for new developers and it runs on like every single six dollar a month web host out there and you have the making of a pretty popular project that is Drupal. So some other issues with Drupal and again I don't wanna dump on other open source projects because that's not what we're here and what we're about, but it does have a little bit of complexity and a UI issue with regard, especially with regard to non-technical clients. Last year Drupal commissioned some usability studies with the University of Baltimore in Maryland and they basically sat really like web experts, people who are web masters down in front of Drupal having never used it before and said, okay, here's some basic tasks, just try to do these. And a lot of cases they sort of failed fairly miserably. And one thing that came out of that was sort of a sample is it just lacks a WYSIWYG as sort of part of its core thing that's sort of what you see is what you get editor. And for non-technical users that are used to sitting down in Microsoft Word and that's sort of how they think about content, a WYSIWYG is essential to get content into their site. And it's completely understandable how this kind of complexity happens. Open source in general is code and programs, by programmers, for programmers. It's very hard for members of other disciplines, especially folks like UI experts and designers to contribute to an open source product. But to Drupal's credit it seems like they're really focusing on usability for the next release for Drupal 7. In particular, Acquia, which is the support, the Drupal support company run by the founder of Drupal is actually paying for and hiring usability designers to redesign Drupal 7 and then paying the programmers to implement it. So it certainly is possible to get those factors into open source software, but generally it takes a little bit of commercial pay for because again, designers just can't sit down and contribute code. So the next question is well, what about the Rails content management systems? And there are some out there, not nearly as many as PHP. It's hard to find a week that goes by that there's not a new PHP content management system released, but probably the most popular one within the Rails community is Radiant. So there's really nothing wrong with Radiant, right? It's just kind of a different product for a different target audience than what we're looking for. It's pretty simple. It's really suitable for programmers that wanna run their own sites or for small teams that wanna manage a site. So it's fine, no problems there. The really the issue is it kind of just lacks a lot of the features that we get asked for a lot of times for our clients. We very frequently see these like 20 page RFPs for content management system selections that have little tiny check boxes that say, do you have this feature? Do you have this feature? And really just kind of checking no a lot with a system like Radiant just doesn't have the bulk of modules that something like Drupal has. So what kind of features am I talking about? Those are things like permissions so that you can have like members only areas of your front page so the guests can't get into them. Things like content versioning and then just editors that help support sort of a large contributing contribution team. So the next kind of thing I wanna talk about is some of the design aspects of what we're doing with the product and why we think these are important. And the first one is excellent software is really more than just a pile of features, right? As much as I talk about those check box things you can't just add up all those check boxes and say, okay, this is the right tool. One of the reasons we built our own content management system twice now is that we want to have some control over the user experience that our users get. And so we try to bake these design principles right into the content management system. One of the things that I like one of the ideas that I like is something that Jeff Atwood from Stack Overflow Center to paraphrase him is, a feature doesn't exist until a user finds it, right? Like you can write the greatest feature in the world but if your user can't find it it's like it doesn't even exist, right? So you have to make sure that you're really thinking about that. For content management, one of those things that does really factor into that is when you're editing content the more user has to guess what that content is going to look like when it goes live the harder it is and the longer it's gonna take and the worst the end result is gonna be. And that's more than just sort of a WYSIWYG editor. That's really all about matching the mental model of how a user thinks about a site not necessarily understanding things like databases and stuff like that and matching it to how the CMS interface actually works. And the goal there is to really force not force your users to think like a computer. So this is where I sort of plead for the plight of your poor user, right?  And the best way I think to think about this is programmers are a different breed than sort of the average user, right?  Users on the other hand, they don't want to understand how it works. They just want it to work and they want it to not make them feel stupid. They want control, but they don't want to be overwhelmed. And I give a number of examples, but the biggest one that's sort of most obvious for web management, web content management systems, users don't understand HTML and don't force them to do that because it will fail. They expect a WYSIWYG even if they can't spell it. You know, they understand Excel and the concept of a single table but as soon as you need to introduce a database and there's two tables and there's a join there, you've lost them. You know, so really it's all about having user be able to accomplish their tasks and get their job done. Otherwise the system's kind of a failure. So one of the things that some usability folks like Alan Cooper talks a lot about is the idea of ejector seats. And that's kind of what this highlights here. You know, some functions in your program are really necessary, but they're also kind of dangerous. For example, if you're an F-16 pilot, you really need an ejector seat because sometimes stuff just goes really wrong and you need to use it. However, when you're changing radio frequencies to talk to a different pilot, you don't want to accidentally trigger the ejector seat when you're doing that, right? So the ejector seat's in a little locked thing over here that you can't accidentally get to. You know, so you don't want to be able to casually trigger your very powerful features. And that's kind of what this really, really terribly designed keyboard kind of illustrates. You know, don't put your power button right next to the probably the most hit key on your keyboard, right?  You know, so the bottom line is don't design interfaces that let your users hang themselves. And the other thing to understand too about humans and the relationship with computers is it's not based on logic, right? These overly complex UIs that lead to bad user experiences really kind of comes down to users will treat software like it's a person. However illogical that sounds. You know, they trust it until it gives them a reason not to. You know, when it gives them very correct but highly technical and not helpful answers they think it's rude and they're gonna get mad at it and then they're gonna stop using your software. So the next thing I want to kind of do is run through what the stack of a CMS is, you know, kind of some of the architectures that come along with that. So really what is a CMS except it's the UI you probably needed to build for your client anyway. You know, you have frameworks like Rails and they're very opinionated about some things like ORM, MVC, you know, web services but they don't really provide any opinions on the user interface at all. And that's totally cool when you're using Rails to build your own site for yourself or for one specific client. But when you're in the business of client web design you end up doing the same thing over and over and over again, right? If I built 10 Rails sites last year I probably built 10 CRUD interfaces to edit stories or articles and probably 10 more user admin interfaces. So the goal of a content management system is to provide sort of a standardized UI for all those common cases. And creating reusable interfaces is pretty hard but if you've got a common architecture it's very easy for Paul to build an events module and because it kind of shares some of the same UI architecture it's more likely that I can just plug it into my project. So we're gonna talk first about kind of the two architectures that govern content management systems in general and this is kind of the market, the CMS marketplace is its own little beast and it kind of classifies these things this way. So the first one is static websites, right? Traditionally, think of like a new site, right? In a lot of cases the goal of a new site is to produce quick content very quickly, keep it organized, but once it's sort of out there in the wild it's essentially static, right? It's not changing over time. And in the CMS world they call this the baking model. The idea is that it takes a while to bake the content but once it's out there it's completely good to go. You know, the idea is that you have an interface that takes the content dynamically, stores it in a database and then it pushes like static HTML files out so that some other server can handle them. That might be Apache. And why do they do this, right? Well, the most obvious reason is performance. You know, nothing scales faster than static HTML. And it's almost more important nowadays when you've got these services like Amazon S3 and other cloud computing where you can buy like infinite scaling for static resources. So that architecture is really important. The trouble is there's a downside to it and that's doing dynamic or social websites are really hard with a content management system like this. So the second architecture is what they call frying, right? And this is where you have content that's stored in a database, a request comes in, the CMS sort of dynamically assembles the HTML and sends it off to the client and it's personalized right for them, right? And this should sound pretty familiar because this is just Rails, right? This is how Rails and every other web framework tends to work. And the good part of this is you have sort of complete unlimited freedom to do whatever custom stuff you want, right? The bad side is if you want your site to scale you probably need some form of caching to go along with it. And caching is really a pretty complex problem to get right. You know, and ideally you want a content management system that can support both models depending on what the site's construction is, right? If I have a very static site it'd be nice to be able to use the same interface to administer that so I'm not learning two different systems. So some of the features that like, you know, what makes a content management system different than just, you know, sort of a database-backed website built on top of Rails? Well, you know, one thing they do share is the idea that really it's all about organizing the content, right? At all life cycles, you know, even when it's on its way out to the dump. Really, and there's two pieces to that. One is there's the UI that the user see to actually add, edit and delete their content and then there's this sort of, there's also typically a programmatic API that's kind of layered over that to, you know, to let programmers interact with the repository. And so the way we handle that in browser CMS is we've got a layer of this active record and there's kind of a layer over that which provides the sort of essential services and then there's, you know, a UI. And that's actually pretty common for some other web frameworks like Django has sort of a built-in, you know, crud interface so you don't have to necessarily build your own. So then the next thing is sort of these services that you wrap around the content repository, right? And that includes a lot of things, especially search, you know, the ability to find content that you wanna edit as well as publishing. And that publishing gets really much more important when you deal with larger websites and publishing teams. You know, you need to be able to review the content before it's live. Content needs to kind of just hang out in unfinished state and then go live when someone says it's ready to go. So if you can read the top up there, design is coloring in my wireframes. This is kind of a joke because my designers would kill me for this because this is absolutely not an understatement of what design is, right? But for the idea of how it works with content management systems it's actually fairly appropriate, right? We have very smart designers that wanna do high impact designs and they wanna put their design out there and let users work within that.  And giving them access to one giant HTML file with lots of intricate HTML is a good way to do that. So the approach we take is sort of like a coloring book or wireframe model where there's certain areas of the template that are off limits to be edited and others that they can. And the idea really here is to separate the content itself from the presentation. So this is sorry, this is the obligatory LOL cap photo. But I should kind of talk about permissions, you know, really what it comes down to it. Permissions are essential to any web application as most people are probably familiar with. As soon as you build a feature the next feature that client asked for is, hey, can you prevent user X in my organization from actually using that feature? So you need to build a permissions model. And with a content management you have kind of two classifications of users. You've got your front end public users and these include like your members or your clients, stuff like that. And then the general public, you need to be able to say, okay, members can do these things, the public can do these things, as well as the staff. And this is the very traditional idea of editors and you might have publishers and you might have administrators. And the CMS needs a way in the UI to allow clients to configure all those things. And then that adds an idea of workflow or task management which is, you know, if I'm editing a page, you know, Paul maybe needs to review it. So I need to like pass it over him and then that sort of workflow is there. In a lot of cases, workflow is really overbought in the content management arena, but you can keep it pretty simple and get the job done. So users, you know, sometimes users just need their old school content, right? And this is where we get into the idea of versioning where, you know, you need to see the history of, what is the history of this content all the way back to its inception, right? What did this look like two updates ago? You know, who changed what and when and then, oh, I need to revert this page, you know, to this version here because something was made, even if the content on that page is kind of shared across three separate pages. And then finally we get to like these, the very advanced features that come along with a CMS, right? And this is the stuff that, the really highly polished stuff that you don't necessarily get a chance to do for every client. And these include things like dynamic form builders that let clients that, again, don't know HTML build their own forms that interact with databases and email, sending emails. My personal favorite is the idea of in-context editing where to find content on your site to edit, you can kind of browse around, find the content exactly where it is, click on it, make the edit all without kind of leaving that paradigm, right? And that's a big step over, big step up over having to sort of an admin interface that, you know, is sort of abstracted from the actual content itself. And then you have the very standard things like URL management, you know, being able to change the URL of a particular page to exactly what you want. And that's important for a couple of reasons. SEO is one, obviously, but sometimes just having a human readable URL that your marketing guy can send out turns out to be pretty important. And then you have things like locking, which is, you know, both optimistic locking, which is sort of how SVN or other CMS or other source control systems work where, you know, changes are merged. So if two people are working on a page, it kind of handles the updates of one person commits before the other. Or the other alternative model is the sort of check-in or check-out process, which is familiar to anybody that's probably used like Microsoft Word on a shared drive. So that's it for me. I'm gonna turn it over to Paul now who's going to talk about why we decided to go with Rails over Java. Okay. Yeah, so now that Patrick started giving you the background as to why we wanted to build our own CMS and what features we'd like to support in our own CMS, I'm gonna cover what it is about, what there is in the Rails framework that we can take advantage of in building this. So first off is compared to Java, what one thing that Ruby has is a very clear, expressive, and powerful syntax. And this is just an example of some random bits of Ruby code that you probably can decipher. And there's lots of things going on in here. You see that some of the things like everything is an object, you have blocks, you have literal syntax for hashes and for arrays and regular expressions. And for anyone who's programmed in Java and then programmed in Ruby, you sort of appreciate all these little things as they add up. You can't say, oh, I can put a method on an integer and that makes my whole application so much better, but if you have thousands of those little things, they really just end up adding up. The other thing is that when you look at not having these things in the Java world, you end up with a lot of problems that you have to solve. And these are some of the things that if you, for anyone who is a Java developer and has done any of this stuff, you recognize some of these things and I won't really go into all the details of what they all are, but what I can say is after you've built things in Ruby and then you look back at some of the stuff that you've done in Java, you realize we didn't do any of this in Ruby on Rails. There aren't equivalents of these things, but they were really necessary when you were doing it in Java. And I think the reason you look at is what I just showed in the previous slide is that Ruby just as a language itself sort of solves a lot of these problems for you. And the list is bigger than this, just these few if you really take the time to go through it. So just to categorize what we're doing with browser CMS a little bit to set up my next point of how Rails can help you out, I just wanna show the layers of things that you have when you're talking about building a end product of a web application. You start at the lowest layer with the language which is obviously like Java or Ruby or PHP. And then above that you have libraries which all languages have for interfacing with databases and things like that. And then you usually have some sort of framework which Rails fills that role. And there are lots of frameworks in the Java world that also fill that role. And then above that you have a platform. Now you might not have that. If you're just building a website, you're not really gonna have a platform.  But sometimes you do want a platform which is giving you all these sort of higher level features that Patrick just described. Some things that I would consider to be a platform would be something like Drupal, something like Plone if you're familiar with that. A lot of content management systems really are a platform. But most of them are built on frameworks that you will use as a developer when you're working on that platform. So what framework that's built on is important. And so one of the problems we have in the Java world when we talk about frameworks and then you talk about building platforms on frameworks is there are a lot of frameworks in Java. The biggest reason why this is a disadvantage for what we're doing for trying to build a platform is you have two choices of how you can deal with this problem in the Java world. And one choice is you can pick one or a few of them to put together and say this is gonna be our framework for our app and this is what we're gonna use. That's not the greatest choice because that really limits the size of the community that you're able to attract. If you pick web work, you're gonna have somebody in the Java world who's gonna be like, I wanna build it on tapestry or I wanna use JSF instead and hibernate versus iBash. And the list just goes on and on. There's an infinite set of possibilities. So really, a lot of people will say, oh, we built our website in Java but what does that really mean? You may or may not be familiar with the underlying framework that you're talking about. Whereas when someone says we built a website in Rails, if you're a Ruby programmer, you get it. It's Rails and there really is a lot of adoption of Rails as a framework within our community. The other idea that you could do is say, well, what we'll do is we'll just support all of them or the ones that are important and we'll have it be configurable to be like, oh yeah, you can go ahead and use tapestry or Wicked or Stripes or Web Work or whatever underneath it. And what that leads to is something like this. And for Java developers who might be familiar with this, this comes from the AppFuse project, which is a project that sort of tries to give you a baseline to get started with an app. Pretty much, it's pretty similar to what Rails would do and gives you all these options for picking and choosing all the card of what frameworks you wanna put together. And what you see on the right is actually the command that you run to fire that up, to start your projects. What that is, is that. So you can see there's a lot of complexity that leads to, and that's just the hello world of getting started. If we tried to do that with a whole complex content management system, it would just be so much overhead of trying to support all these frameworks. So having a consensus in the community around frameworks is a big deal when you're trying to build a platform. Won't this same thing happen to Ruby? Like just over time we'll get more of these frameworks and then we'll have a whole bunch of them to choose from. And I think the answer is no for two reasons. One is there just is more collaboration between these frameworks. And I think this is obvious most recently with the idea of the Rails merger to the biggest web frameworks within the community. Just decided we're gonna bring those together. And as you heard DHH and you heard to talk about, the reason why is you realize that we're doing a lot of the things the same way. And that's part of the, what you get out of Ruby is that there really isn't, there aren't a lot of different ways to solve the problem. There are some, there are some different architectures that you could use, but when you go back to Java, again you're trying to solve problems that the language sort of puts in front of you, so that's why you have this multitude. So I just don't think we'll see this need to have to branch out into more and more web frameworks. Bottom line is in the Ruby community you can build a web app on Rails and your developers in the community are gonna be familiar with that and want to use Rails and be familiar with the conventions that are in Rails. And so one of those conventions obviously is convention over configuration. This was talked a lot about when Rails was first hitting the scene, you don't hear people talk about it too much anymore, but it's still there and it's still a big part of what we do almost inherently as Rails developers on a daily basis. So this is something we can leverage when building the content management system as we build things that use the concept of convention over configuration, it'll be familiar to you as a Rails developer. You're like, this makes sense to me. This is how I figured this would have worked. You can try this in Java, but since it's not as much of a convention obviously, you're going to have, your developers will be less familiar with that. So convention over configuration is a feature that we can take advantage of. Another one is static code generation. You could do in any programming language and it's just the concept of having some program or script or something that you can run that will generate boilerplate code for you. This is very useful in certain situations. We use it in Rails, we use it to start up the project. We use it to build components within the project. And here's just an example of a couple generate commands that I haven't even explained what these generators do, but you get probably as a Rails developer sort of guess what they'll do and I'll explain it a little more as we go on. But the idea is that this concept of using static code generation in this way, you are familiar with. Again, we can leverage that in building browser CMS. We give you these generators and you will know what to do with them. Closely related to that is the concept of dynamic code generation, which normally goes under the name of metaprogramming. But I like to think of it as dynamic code generation because that's really what you're doing. It's very similar to static code generation. The only difference is you're generating it at runtime. So here we are again, a little snippet of code. I haven't really explained what it does, but because you're Rails developers, you can sort of guess in general what's going on here. Static code generation you can do in almost any language, including Java, although it's just not done to the degree that it is in Rails as conventionally, but dynamic code generation is harder in languages like that. Ruby gives you better tools for doing dynamic code generation, so it makes it easier to do and makes it commonly used and familiar. So there's another feature that we're able to leverage. Just to sort of cover some of the things that I want to rehearse, you have a clear expressive and powerful syntax. You have a framework consensus within the community. You have convention over configuration as a feature that we can leverage that you're familiar with, as well as static code generation and dynamic code generation. And so now I'd like to just give you a quick demo of sort of how you would use, how these features get used in browser CMS so you can see how we're able to use Rails to make that happen. So we're gonna get started with our project and our project is actually gonna be a website that you're all probably pretty familiar with. And this is pretty standard, right? We're just gonna create a Rails app. All we're gonna tell it is you need the browser CMS gem. You're gonna add the routes in there. Then you're gonna run a generator, which brings in some static assets and things like that. Run your migrations and start your server and you're ready to go. So with browser CMS, again, we're trying to leverage the underlying framework here so this is as familiar as possible. There's no extra weird fanciness. It's things you're already used to to get started. So once you get started, you get a website like this. So this is a website that you've all seen and this is what the public users see when they go to this website. What you wanna be able to do with the content management system though is edit the content within this application. So in order to do that, we'll log in to browser CMS. And now what we see once you log in is that same homepage of our website, but it's wrapped with the tools that browser CMS gives you. At the top of the page, you have a toolbar. I know it's hard to read all of the little bits, but I'll just cover some of it. And what it is basically telling you is that you're looking at a page and this page is using the main template. A template is just a Rails layout. We have done very little layering on top of that. The only thing that we have added is that what you see in the main body of the page is where you would normally just have a yield statement in a Rails layout, we have just what we call a container, which is when the page is being viewed to the end user is nothing but a yield statement. It just yields whatever goes in that container. But when we're editing the page, it gives us a chance to sort of wrap that area up and let the user know that the designer of this template has told you this is a place where you can put stuff. So what we have on this page is just, if we scroll down a little, a couple of HTML blocks. And what we do is we put content blocks in the containers in browser CMS. That's the terminology we use for it. An HTML block is just a type of content block. A content block is really just a model that knows how to render itself when it's put onto a page. And there are ways to edit the data that goes in those models. So a HTML block is sort of the simplest block. All it really has is a name and a WYSIWYG editor. And so if you go to edit one of those blocks, you'd see something like this, which just says, hey, you're editing the homepage intro and here's a WYSIWYG editor to edit that. And that's all I really need to build the homepage of the AccessConf website. But then when you go to look at some of the other pages, maybe like the speakers page, for example, you start to see like patterns in the content. And if we just gave you HTML blocks in a WYSIWYG editor, we're really not doing a whole lot for you. You could do that with other tools and it would be pretty permanent. But what we want to be able to do is have structured content so that users can just say, I just want to add a speaker. They don't really want to even, even though the WYSIWYG is a high level thing, they don't want to go in and say, I want to underline the title and I'm going to put the image on the right. They don't want to even deal with all of that. They just want to say, I want to add a speaker. And so that's where the concept of these structured content blocks come in. And you can create your own, just like an HTML block comes with browser CMS.  And so here's where static code generation comes in. We have a content block generator. The content block that we're creating is going to be called a speaker. It's going to have a name field that's a string and it has two more fields, an image and a bio. And we just added a little bit on top of the way the generators work to give the CMS more information about what you want the admin interface to look like once it gets built. So the data type of an attachment in HTML look odd in this generator, but all that's doing is letting the generator know when I generate the form for you for this thing, you want this to be an attachment, meaning like a file upload and bio, you want to have a WYSIWYG editor for it. And so once you run that, you get the part of the system that will let you list those. And so we're looking at our content library, which is where you can look at all the content blocks in the system. And here's a list of them. If we select one of them, we get that form and it lets us change the name and image in the bio for each speaker. So once we have that set up, we can just drop those speaker blocks right onto the page. So the headers we're just doing with HTML blocks in this example, and then we're just dropping speakers in in the exact word we want them in on this page. And that's how you could build a page like that. So look at all the code I'm not writing. So that we were able to leverage these generators to give you that whole nice looking form and interface. And there are a lot of features wrapped around that like versioning and all kinds of stuff that you get for free. Obviously you don't have to use the generators, but it really is a good way to get you started and you can get their content set up in the system with very little effort. So the last page I want to show you an example of is the schedule page. Now we could take the same approach that we took on the last page with this and say, I'll make a talk content block for each date, time, and I'll put them on the page where they go. But that gets really tedious really quickly. In this case, not only do you want to just be able to enter in a talk and say, hey, it's at this time and here's the title of it, you also want to be able to say, I just want to add it and not even have to go update the pages. And when we want to do that, we have one more special content block that we call a portlet, which is just a content block that instead of really being there for data is really there just so you can render other data on the screen. And so we have generators for that as well. And you just tell it, you want a portlet, the schedule portlet. It's going to spit out code like this, which is just basically a standard model, although we just put it in the portlets directory. And it just has one method that we call in context, which this ends up being what gets passed as the locals into the partial. Because you can think of a portlet, it's sort of like a partial and actually it's really more like a mer part is exactly almost what it is because you have this little bit of code that runs to sort of set up the data and then it's just going to render some template. Obviously the content, what's in the content method you had to write, that doesn't get generated. So sort of like insert your code here kind of a thing. And then using convention over configuration, we just say, okay, we're going to render this template, which obviously you could override, but that's just where they go. And then you have some template like this, which is just ERB and there's nothing really extra fancy in here. And so the idea is again, this is stuff you're already familiar with, you're able to build out a page that does what you want. And so when you drop this portlet on a page, what you get is our schedule and you can see now it's just one big block. So this kind of content, if you were to go into the system and just add more talks or change the times or whatever, it just automatically gets updated. So that's pretty much it for browser CMS and how we're able to sort of leverage some of the features in Rails to build that. Next up for us with browser CMS we're actually getting to the point where we can actually release the code. Like we did say it's going to be open source, we're going to have it up on GitHub. We're still finishing some stuff up, we're not ready to do that yet. We'd hope to have it ready for this weekend, but we're almost there. So it should be soon, probably March. And everyone here will be able to check out browser CMS, use it on your own projects, contribute back to the community. Right now you can go to browsercms.org and we just have a simple link to a Google group so you can sign up and just get information about browser CMS if you're interested and obviously you'll see more info there as the code is released to the public. So that's it. Do we have any questions? What's it gonna be on GitHub? We don't have a date for sure yet, but as soon as we're ready to release it to the public it will be, we're still working out like what the licensing will be and finishing some things up, but it's pretty close. It's very functional right now. So soon is the best answer I can give for now. In there, question? Will it include tests? Yes, lots of tests. And they all pass, which is even better. And you'll get to see them. Any other questions? Java related, Rails related, browser CMS? Okay, thanks a lot.


Hey, all so This hair is crazy. I wanted to just test out YouTube's live streaming functionality Because I think this year we might be doing some live streaming via YouTube Generally, it won't be at 2 50 a.m. But again, I just wanted to kind of test out the water see how live streaming on YouTube works In the future, I think what we would do is schedule our live streams at a certain time And then I would go live at that same time every week and maybe respond to questions or stuff like that But yeah, I wanted to test out the live streaming functionality I'm gonna leave this video up for a while. I think But yeah Yeah, hey there Evan. Yeah 3 a.m Very cool. Okay. Well, I Few people on here Yeah, I think I'm gonna schedule a live stream Sometimes this weekend, but the hair is a bit much right now. So I think that's it for tonight But yeah, hope to see everyone soon


Ladies and gentlemen here is the video all right you guys have been asking live 19 gameplay done dropped a few days ago And I haven't talked about it And I've kind of just been waiting for some more gameplay to drop just so we can get different perspectives I'm gonna talk about my opinions on the improvements made and some of the massive problems also that still exists that are at this point generational issues with NBA live 19 gameplay this video is not sugar coated right and if you're a live 19 fanboy And you just can't take criticism you got to go now Trust me you're gonna lose your mind by the end of this video because I'm just gonna be pointing out facts when we criticize 2k on The channel we understand is coming from a good spot We want the game to improve but there's a subset small subset of people when I criticize NBA live 19 or any NBA live game They just like they get all like emotional like they have some sort of attachment to this game. It's a video game It's EA. They don't really care about you unless you can make him money. All right Don't get so connected to these companies. All right. That's besides the point We're looking at iPod King Carter right now He dropped a nice little 10 minute gameplay session here I'm gonna leave a link in the description if you guys didn't cast the entire video But I'm gonna be going through certain points of interest Let's let's just get into it. How about that first off first live 19? I didn't know if NBA live would ever even make progress when it came to reducing the stiffness in their animations Which is the biggest downfall with the game a lot of people say looks stiff looks weird. It's not realistic Here we go and be alive 19 They said it was one of the biggest focuses and they did it in terms of dribbling the stiffness looks to have been gone Now keep in mind I'm gonna reserve some of my opinion and judgment because I haven't played the game I haven't played the final version of the game sometimes you see a game and then when you play it It's like a totally different experience and so know that some of my opinion is reserved But this is just based off what we're seeing right now. They reduced the stiffness Dramatically now there's still cases where you're dribbling and it definitely looks stiff and you think yourself like damn It's still there but it looks massively improved and I didn't know how to ever see a day where I can say something like that Because this has been such a massive generational problem for the NBA live franchise for the reason why it fell off back in NBA live 10 no matter which side you were on because I was a live fanboy back in the day when I was a little kid playing on my PSP and ps2 you came to the realization real quick that like yo 2k gameplay was just better and part of the reason Why was because of some of these generational issues that now they're finally putting a focus on and fixing now I don't know what it is. Maybe they don't have the talent in the company Maybe they don't have the specific technology Maybe there's limitations with the specific engine that they're using the ignite engine But it seems like they've made marginal improvements in this category. All right. Let's get into example number one Here we have Kyrie Irving is right there with the ball. Do we see Kyrie right here defending him is Dario Sarich and Uh It should be illegal for windows to update my pc illegal without my permission They updated my laptop or they're trying to take control of my pc. I'm not gonna let it happen Ladies and gentlemen, if I hear one comment about how I'm sweating, I'ma fight you You know, I record in the sun room. You know, there's no ventilation to ac is why I got the towel I don't want to hear it. Hi. Yeah, Ben Simmons right here defending Dario Sarich right here This is coming in and this is also in B. So a lot of talented defenders on the 76ers to say the least Kyrie Irving in my opinion the best dribbler in NBA history easily the best dribble in the league right now So we got that in context. How is Kyrie Irving gonna finesse his way out of this specific situation? In which Ben Simmons is on him and Dario Sarich seems to have some considerable help defense play Kyrie in and out. Okay before we move anywhere pay attention to Dario Sarich's feet Look at his feet. He's slid out of the way. This reminds me a lot of mba 2k 13 gameplay It's what drove me crazy is you could just slide players out the way canned animations with posterizers But let's not jump to any conclusions bro. He was slid out the way now Ben Simmons is there Ben Simmons elite defender Kyrie looks like he's doing it in and out right now And he puts the ball through Ben Simmons legs Not only that but in bead even though he was right there gets no sort of bump back animation Kyrie the legend himself has finessed his way out of this situation and got himself an easy layup If I'm the person user in the 76ers right now, I'm losing my mind. I'm chucking controllers You have to sit there and contemplate the fact that you you have to shell out another 60 dollars for another controller Because that should have never happened Now, I don't know maybe this is a very outlier case But these flashy plays that mba live seems to be promoting like check out this in and out Check out this behind the back through the opponent's legs to me is more worrying than it is cool in mba street Hey, listen bro roll on the floor Do triple alley-oops like it's all in good fun But when you're trying to build a simulation basketball game and you see something like that I'm just thinking to myself how easy it is to do that because if I can trigger that every single time That's what I'm doing and that's what every game would look like now Considering Kyrie Irving is dribbling the ball. He is easily the best ball handler in the league right now So there's a good possibility that only a few players in the league will be able to do this But I assume that if you create like a ball handling Player in the one game mode then you should be able to once you match such a player do similar moves I don't know this is a point of worry for me because I don't I don't know if this is going to be easily abusable I know slashers were op in the last mba live and the sliders in mba live If you hate 2k sliders, you will lose your mind when people hate contested shots on you in this game So you can see some obvious clipping here. Kyrie Irving is destroying Ben Simmons and probably the most embarrassing way possible This is looking like a Globetrotter match at this point and there's obvious clipping his chest is inside his elbow But that happens. It's a video game and there's going to be situations in which there's clipping I just hope that it's limited and that it doesn't happen often. All right, so here we go example number two Kyrie Irving is looking to sauce once again the target once again is ben Simmons He's looking to dribble on this side of him And then get the ball back now. There's a lot of things about this that's like That's not a good look right there one Come on, bro Ben Simmons wingspan is too long to not have been able to just reach out and get that ball But I get it sometimes, you know, you don't want stealing to be overpowered You don't want real ball physics in a basketball game. It might make playing offense impossible But the part that's crazy to me is how when Kyrie gets the ball back it like magnetically connects back into his hand It's like a canned animation And although the play is supposed to look flashy and cool when you look at it like this It just kind of looks cheesy like just It looked like the animation they're like, I don't know how to make this work So let's just put a magnet in Kyrie's hand another magnet in the ball and then have him just you know work things out together All right, I get it. It looks flashy another example I'm gonna be pissed off if this happens to me in a game. I'm just saying if I'm playing good defense I really don't want the ball to go through me now in that situation And I don't know because you can't see the input it looked like ben Simmons might have been going for a steal In this in that case it might make sense to punish the guy for going for a steal if he didn't hit the ball and That might be an interesting way to introduce some sort of skills gap to the game and make the game more competitive It looks like that was what he was doing if that wasn't what he was doing Then uh, ben Simmons got sauce once again while he was playing good defense even on rookie difficulty We got to talk about clip number four Even if this is rookie difficulty, this play should never happen. All right Let's take a look at clip number four kairi ervin calls the isolation play It looks like they're playing some three out two in offense. Maybe this the run is some error Whatever erin veins is doing inside. I don't know. It looks like he called the isolation Maybe he's trying to get the out the way ben Simmons is gonna run up to defend kairi ervin Once again, ben Simmons looks like he wants to get embarrassed So kairi ervin calls the iso Does the be through the legs move that we just seen that a really incredibly overpowered move and check this out So there's two options here and beat is likely gonna drag over on the rotation here and play some good defense And uh, ben Simmons might try to return to his guy or pick up and beads guy who seems to be erin veins So we set the tone. Uh, this might be a problem Let's just move forward. This is kairi does a euro step and let's just take a look at this play now The player in the corner that was defending the waste man Gordon hayward here came to the inside not only that but we have ben Simmons who tracked down Who is incredibly lengthy and is behind kairi erving and oh, we also have a bead Who's obviously a fantastic defensive player ready to contest this And it went in I get it kairi erving this crazy in real life all the time But if that hits consistently even on rookie difficulty, I'm losing my mind Now if this wasn't rookie difficulty and that still dropped like this was pro also I don't know what they call it. I'd be alive right is that that play should not happen in any competitive game All right, that being said those are just a few issues Some of the flashy plays got me worried on top of that the jump shots in the game still look weird So I literally took out a lot of the stiffness in the dribbling and it looks a lot better in terms of jump shots Sometimes you'll see players like james hardens jump shot something's just off about it Like there's there's no real momentum between the players and their environment And it also shows by the way when the ball is reacting to the rim The ball when it hits the rim almost feels like the rim is elastic like an elastic band that bends backwards It just sends the ball flying It doesn't feel like there's real momentum to not only the players in their environment But the ball in their environment in many instances So the stiffness is gone and to me that's not entirely gone But I think that's the biggest point and I'm glad that that was a focus But there's some other issues that are easily remind you that this is an mba live game I get it. It's like yearly releases, right? And what could you do like just you only have one year to make improvements In my opinion, I think gameplay is the biggest thing you could focus on when you're looking at a basketball product And so it seems like that's what they've done and they've made good improvements So what more could you ask for mba live 19 in my opinion seems to be a big improvement from 18? There's some people saying it's 18.5. This one's exactly like mba. It doesn't look like 18 This looks like an entirely new game And I think that's what they were trying to show off in a lot of these flashy clips in the gameplay That they sent out to some of the creators and I get it. I get the point of those clips They want to show that mba live 19 is a fun game. It's flashy game You're gonna want to play it. You can make some exciting plays happen I guess that's how they're trying to convert people that otherwise played 2k mba live Let me tell you right now man You can do one thing for yourself and it could drastically change the landscape of this franchise Drop it free to play. Oh my how are they gonna? EA? EA doesn't even know what free means agent I can hear it in the comments already. I get it. This is EA. EA is not known for doing things very philanthropic All they really want is your wallet. I get I get the the general consensus around EA, but mba live 19 with their improvements made right now I don't think is enough to rival 2k And I think that a lot of people who are fed up with 2k are looking for an alternative If you make it free to play they will have no option But to at least try out your game And so while the game might look a certain way to the people that are judging him I judged for tonight. I thought I wasn't gonna like for tonight, but it was free So I tried it. I got addicted because it was a good game mba live I'm telling you this right now if you believe in your product If you believe that the game you put out deserved to be played by millions of people across the world If you want your game to blow up and you have faith in it Then you're gonna drop it free to play two things happen when you drop the game free to play There's a huge surge in the user base now Whether the fans continue to go up or whether that goes down It all depends on the quality of your product But I'm telling you right now 2k is angered so many people that there's an opportunity And the fact that mba live 19 is not taking advantage of it to me is crazy So again, we heard the announcement that they will not be converting to the frostbite engine They'll stay on the ignite engine And if you guys remember when they announced the ignite engine The whole promise was when madden makes an improvement when fifa makes an improvement when mba live UFC make an improvement to the engine mba live benefits from those improvements because they all use the same engine So I know fifa is no longer using the ignite engine now. They're of course using frostbite I don't remember what ufc is using. I believe madden is using ignite still and of course mba live is still on ignite We of course heard the new announcement that halo 5 invested in and created their own engine specifically for that game So that it can flourish. I don't know what the case is and I don't know what their limitations are But i'm just saying if they believe in their game Then you know what you have to do. Yo shout out to my guy broski. He uploads all kinds of mba live 19 gameplay You know, although he has like a I know he uploaded a video of like Clear a gameplay. It seems to have some sort of color correction on it for whatever reason But uh, I think the gameplay he uploaded at ea play recording the screens gives a better variety an example of what i'm talking about When it comes to jump shots elasticity with the rim You can easily see a lot of the stiffness is gone You could see some weird animations when it comes to passing sometimes and it kind of forces people in certain directions But that even happens in mba 2k and that's not a problem that you're ever going to be able to fix in a basketball game But the game does look improved without a doubt. It is not a small improvement It seems to be the first time in a while where I could sit here and say it's a massive improvement But the question is is the improvement enough? So if you want to watch the full thing I think it gives you a better impression than the ipod video that we were watching earlier But it's it's not as clear to see so I couldn't really sit here and point out different areas Cameras like low quality and it's chucked all over the place throughout the time I'm gonna leave it on that you guys wanted to know what my live 19 thoughts were that's what it is I'm not I don't have any certain agenda. I don't care about like I don't have any affiliation with any organization We won great basketball games We all have different preferences and beliefs when it comes to what you want in a basketball game We understand but mba live 18 we can agree made some improvements Whether that is enough to warrant a 60 dollar purchase is up to you I think they should drop it for you to play it, but that's just me I'm gonna catch you guys in the next one. If you guys enjoyed drop a like subscribe to the channel put on post notifications Uh, and yeah, I'm gonna catch y'all later. I'm out peace


Why some people want you to fail, there's more than enough to go around for everyone. Isn't that what they say? Then why do some people still want you to fail? Despite knowing this, for instance, M. Farooq Radwin, a blogger at toknowmyself.com, said he was scrolling through the comments on a YouTube page when he found two interesting comments. According to him, two people said something very similar to, when someone asks for a thumbs up, I always give them a thumbs down. One would wonder, why they'll even say such a thing? I mean, if a YouTuber asks for a thumbs up on their video, if you aren't interested or willing to do that, you can at least walk away. In this case, however, they weren't willing to like it, neither were they willing to just walk away. Instead, they went ahead to give a thumbs down and still commented on their reason for doing that, so much negativity and hatred. Guess what? There are so many people like that around you. People that do not want you to succeed. The question, however, is, why? In this video, I'll share with you why some people want you to fail. This, I believe, will help you become a successful person. If you're new here, consider subscribing so that you won't miss other interesting videos like this. 1. They Envy Your Abilities and Talents Remember the YouTube video example from above? Rather than use the YouTuber as a source of inspiration to become better? They were enviers of her talents and her abilities, which is why they wanted to see her video fail. We are all talented in different areas and for some, their talents may be related to their success in life. In the cases of people who want you to fail, instead of finding out what they are good at and ensuring that they develop themselves till they become masters in their fields and succeed, they focus on what you have. They focus on your talent and your ability to do stuff that they cannot do. As a result, they become jealous and wish that you fail. 2. They Don't Want You To Steal All The Lamelight The truth is that everyone likes to be the center of attention. We all want a situation where we will be seen and heard by all. We want our voices to become so important amid a group of people, a community or organization. Some of you, however, show more tendency of being successful much more than others. Not because you are special, but because you are hardworking and persistent. So others who are not willing to put in the hard work required to succeed become envious and hope that you will fail, after all, so that you don't become the center of attention and take the limelight off them. 3. When You Fail It Takes The Pressure Of Them People will delight in your failure because when you fail, it will take the attention of their shortcomings and failures. It's like this. When you fail, it takes the negative spotlight off them and they can easily hide in the dark. Each people are aware of their faults and use any opportunity to cover them. So they are happy when your weaknesses are exposed in place of theirs. For instance, say you used to top your class all the time in science while they struggle so hard to get a pass mark. In a situation where you fail, they'll be happy because they know that the lecturous focus will be shifted from them to you. Even though it's temporal and they know this, they'll still rejoice at the situation because as far as the time is concerned, they feel better and, for once, they do not have to talk about their failure because yours is there to cover up theirs. 4. They Want To Be Financially Superior So That They Can Feel Better Another reason people want you to fail is so that they can be financially superior to you. We all know how income affects status in a social setting. So people who want you to fail secretly hope that they remain one of the top earners among the group of friends. They don't want you to be richer than them, have the best houses or cars because how much money a person makes plays a major role in the dynamics of how friends in a social group interact with each other. When you fail, it automatically puts them above you, placing them in the number one position amid a social group. 5. They Want To Transfer Their Insecurities Onto You Sometimes, people who want you to fail do so because of themselves, not because of you. They want to transfer their insecurities onto you. For instance, some people are scared of failure, some others are scared of making mistakes. Instead of finding a way to deal with those insecurities so that they can achieve their goals and live dreams, they'd rather draw more people to their side. They prefer other people to be like them so that together, you all would not leave the level where they are on. They think that if you fail, they won't feel so bad after all. So they secretly hope that you'll mess things up so that you can be like them and they will no longer have to feel alone. 6. They Don't Want You To Be Living A Happy Life When They're Stuck In Their Boring and Poor Lifestyle When you succeed, certain things change. You'll now have enough money to do some of the fun things you've always been willing to do, such as travel the world, go on multiple vacations, afford some of the best meals in the world and also enjoy good skin and body treatment, among other things. This can send jealousy running through their spine because they, on the other hand, are stuck to their boring, old routine. So instead of coming up with ways they can succeed, they'll rather wish that you fail. Do you know what? No matter how good you are, you can never get rid of people who wish that you fail, even if they don't know you before. So why not spend time focusing on how to succeed instead of worrying about them? Thank you very much for watching our videos. We'll like to give you another interesting video for you to enjoy next. But before then, our team will be very happy if you can like this video and share it with your friends on social media. If you're new here, don't forget to subscribe so you won't miss other interesting videos like this. Look at your screen now to see two other videos we handpicked for you to enjoy next. We love you.


That's what I've been diagnosed with. That's my mission. And that's how I want to support others as well, is being able to be happy now, not waiting till treatment's over or waiting for cancer to be over, waiting for whatever thing to work out. It's like, it's possible now.  And like, it's true, I generally am a positive person, but that doesn't mean I'm positive and happy all the time. I lose my sh***. Like I get lots of fear. I go downhill. I get scared.


When I heard about the idea of the Game Boy Advance back in the day, it was described as a portable Super Nintendo. Instantly the thought crossed my mind of playing some of my favorite Super Nintendo games on the go, but with some games they won up that and re-did some aspects and even added some new features. That's exactly what's been done with Final Fight 1. Stylistically, it's still a lot more like the Super Nintendo port than the original arcade game. The enemies and backgrounds are all the same, but with a little more polish, Poison and Roxy from the arcade game remain missing, sadly. It's still Billy and Sid, but the first two bosses, Damned and Sodom, kept their original names over Thrasher and Katana. Guy is a playable character here, along with Cody and Hagar. He is by far the most fun character to use in my opinion because he's so fast. And the game also has multiplayer functionality with the Game Lake. They were, however, able to include the industrial area level from the arcade game, so that's pretty cool, although that level is hard as hell. In fact, the entire game is much harder than the Super Nintendo port, and that's because there's five enemies at the screen at once now, instead of just three. That really makes for some enjoyable chaos, but it can be frustrating. My favorite addition to the game are the hilariously goofy cutscenes before every boss battle that contain dialogue that sounds like something out of a Steven Seagal movie.  Another change that made me laugh was changing the voice of the poor guy sobbing over his car being demolished. So they gave him a northeastern accent? I don't know, I just thought that was funny. One really nice thing I like about playing this game, and the functionality of the Game Boy Advance in general, is that it has a resume feature.  Granted, it doesn't save exactly where you are in the level, but at least you're allowed to resume your game. No need to go to a menu to save or anything like that. It's all automatic. Hey, that was high tech stuff 12 years ago. The one con about this game is that the music and the sound both suck.  See, it's just not as satisfying. Anyway, other than that, there's not much else I can say here, the game is pretty straightforward. Did you like Final Fight for Super Nintendo? Then you should check out Final Fight 1 for Game Boy Advance. It's a more beefed up version of the original Super Nintendo port.


This 2018 Chevy Silverado 3500 Crew Cab Short Box Single Rear Wheel is stock number 11891Z. We are here at Summit Automotive in Fond du Lac, Wisconsin. You're new and used heavy-duty truck headquarters. This 2018 Chevy Silverado 3500 has the 6.6 liter Duramax diesel with the L5P motor pumps out at 445 horsepower. This truck has been fully-safetyed and inspected by our service shop, has a fresh oil and filter change, all the fluids have been checked and topped off. And this truck is 100% ready to go. Graphite Metallic is the color. We shoot all of our videos in 1080p, 60 frames per second, so if you have HD capabilities on your computer, tablet, smartphone, or television, turn them on right now because it is definitely your best way to check out the quality and condition, looks, and styling of the truck before seeing it in person. If you like the video and want to subscribe to our YouTube channel, the lower right hand part of the screen is a gold subscribe button. Click that and then click the bell notifications to get updates on the videos we do each and every day here at Summit Auto of our amazing inventory. It comes with the 18-inch chromed alloy rims and it has Goodyear Wrangler Dura track tires. These are LT27570R18s and they have right around 60 to 70% of the tread left, probably closer to 70% on there. Frame and underbody, very little to no corrosion, just a little bit of dust on there. Front fender is in excellent shape. I really like this Graphite Metallic, it's got a lot of metal flake to it. You can see it right there, it looks really good. So it sparkles in the sun pretty good. Front lamp headlamps, factory fog lights. Front bumper is in excellent shape, no dents or dings on there. Headlight lenses are nice and clear. The hood is in very nice condition as well, you do get that cull induction right there and that's a true, that's actually functional on the Duramax. Passenger side front fender, no major imperfections there, looks really good. And the passenger side rim, no scuffs or scrapes. As you go down this side, the truck, take note of how clean the body is, how reflective and mirror-like that paint is. We take these HD videos so if you are far away or even if you're close by and just cannot make the trip down but you're still interested in purchasing the vehicle, you can see the truck here, the truck and have confidence in the vehicle that you're looking at before you even get here. So when you do get here, there's absolutely no surprises. And that's why we offer the Summit Auto Fast Pass option, we get a lot of customers from out of state, so you can have confidence that you're dealing with the right truck and the right people. Back rim is in excellent shape as well, no scuffs or scrapes in the back tires have just about as much tried as the front tires. Frame and underbody, other than being a little bit dusty, is in excellent shape. I didn't see any corrosion on there as all the remaining factory exhaust and the lower rockers all look really good as well. The rear chrome step bars coming around to the back of the vehicle, rear bumpers in really nice shape, no dents or dings in there. It does have the backup parking sensors, the rear bumper steps and the full towing package which includes the receiver hitch, four pin and seven pin wiring. Tailgate is in very nice shape as well, it is a locking tailgate and it does have a backup camera, a shock down assist so it's never going to slam down on you. This one does have the LED bed lighting right up there and it has a spray and bed liner. Bed itself is in nice shape and that tailgate shuts nice and solidly. As you go down the driver side just as clean as a passenger side, no dents or dings on that box side here, looks really good and for full disclosure this back rim, no scuffs or scrapes in there. Down the rest of the side of the vehicle, very nice and clean. You get the telescopic tow mirrors, they have built-in directional signals, LED side lights, they do telescope out like that, they also fold in and they're in really nice shape. Inside the LT1 package gives you the black cloth interior, there are no rips, there are no tears on the seats, they look pretty good. Power driver seat, factory all-weather floor mats, auto headlamps turned out four wheel drive and factory brake controller, it does have the tilt and telescopic steering wheel, power windows, power locks and power mirrors. We'll hop inside here and we will turn the ignition on and then check out the radio, the miles and all that good stuff. This truck has 39,717 miles, instrument cluster is very nice and clean.  Under wrap steering wheel, cruise controls on the left, Bluetooth and information center controls on the right, Allison six speed heavy duty transmission with the optional tap shift. So it comes with the Chevy MyLink system, AMFM and Sirius XM radio capabilities. You do get the projection manager here as well where you can project your cell phone to the screen via Android Auto or Apple CarPlay and if you've got a navigation system on your cell phone, project it right to there and it's like you have nav right on the screen. Down here, your heated seat buttons as well as your climate controls, notice you do get the dual climate controls, power pedals, stability control, that's for your cargo lamps, that's how you turn on those side lamps on the mirrors and in the bed, parking sensors, you can turn those off, downhill assist control and factory exhaust brake does have a 12 volt power point and then underneath here, there's a 110 volt, 150 watt plug-in, carpeting and passenger side format, very nice and clean, no rips or tears on the passenger side seat, smells very clean inside this truck, I don't think it's ever been smoked in and the headliner is in excellent condition as well. Up here you get your map lights, this button right here tells me that you have the snow plow prep package on this truck and it does have on-star capabilities in the rearview mirror. We'll take a quick look at the back seats and then we will start it up and check out under the hood. Back seats are just as clean as the front seats, no rips or tears back here, it does have the latch child safety system, fixed glass rear window with the built-in rear defrost, factory all weather floor mats back here, these seats fold up for extra storage and the carpeting is very nice and clean back here, no rips or tears, bottoms of the doors all look really good and we'll start it up, starts right up, no check engine lights or anything like that. We'll check out under the hood, there are those LED side lights, they are ultra bright, light up the truck on the side at night and I would personally like to thank you for checking out the video today and hopefully from this HD video you'll have been able to tell just how clean this truck is all the way around inside. Now under the hood we have the 6.6 liter Duramax diesel with the L5B motor, engine base very clean, runs very smooth, there's your mission sticker, it does have a engine block heater right there, this is where that air comes in from the hood, see it vents right into there, anyways this truck has been fully safety inspected as a fresh oil and filter change, all the fluids have been checked and topped off and this truck is 100% ready to go, I would highly recommend this truck from a quality and condition standpoint and to see more pictures of this truck or one of our other 450 new and used cars, SUVs, minivans, ringos, halftones, three quarter tons, one tons of you name what we got to go to our website right there at www.summitauto.com, full pictures and descriptions of every single vehicle from two locations all at www.summitauto.com and if you'd like to check out more HD videos you can go to www.youtube.com slash www.summitauto.com remember to like, subscribe, and share on this video and all the videos that you see there, remember to click the bell notifications to get updates of videos we do each and every day, in fact any second you will see a link to subscribe to our YouTube channel on the upper left to link to more Chevy 3500 truck videos like this one on the upper right, a link to this vehicle on our website on the lower left and a link to one of our latest YouTube videos in the lower right, click those check us out and we really look forward to help you with this super clean 2018 Chevy Silverado 3500 crew cab, short box, single rear wheel, LT1 Z71 and graphite metallic, thanks again for checking out the video and click those bell notifications.


Environmental risk factors, meaning non-genetic risk factors, may play a significant role in autism, given the fact that even identical twins that share the same DNA may not share the disease more than half the time. A variety of risk factors have been proposed, lead, mercury, persistent organic pollutants like PCBs, or birth complications might cause a pro-inflammatory state and oxidative damage in the brain. But what's that base, though? You see a lot of correlational studies like this speculate about the possibility that one of the hidden agents spurring the rise in autism is something within the food supply, especially industrialized meat production, particularly poultry, based on the fact that the rise in poultry consumption, particularly parental poultry consumption, appeared to correlate with the rise in autism. They suggest it's the massive contamination of meat with antibiotics and growth hormones and toxic pollutants, such as dioxin in the meat. There are certainly toxicological issues associated with meat production, not just the pollutants, but the cooked meat carcinogens, leukotoxins. This review in the journal Meat Science came up with a whole list. But if anything, the main chronic toxic response of consuming meat and meat products is cancer, not autism, there's tons of confounding factors that could explain this correlation. Same thing with fish consumption and autism. On a state-by-state level, mercury-related fish advisories were found to be a surprisingly strong predictor of autism rates, suggesting that mercury-contaminated fish was to blame. But how many people tend to even eat the fish from their own state? That in no way proves a cause-and-effect mercury-autism connection. Why would they even think to make that connection? Well, heavy metals like mercury and lead do cause brain damage, and there are some similarities in terms of the symptoms they can cause. But don't really know until you put it to the test. Urine mobilization tests, challenge tests, or provoked urine tests are all terms used to describe the administration of a chelating agent, a heavy metal binding agent to a person prior to the collection of their urine, to test to see the level of heavy metal burden within their bodies. But pediatric, public health, and toxicology authorities recommend against the use of these tests, based on a lack of scientific validation and a lack of demonstrated benefits to the patients. Usually promoted by alternative practitioners is the basis for recommending, promoting, and selling to the patient questionable and often inappropriate therapies supposedly aimed at detoxification. Despite this disapproval, the tests are still commonly used and recommended by some practitioners. This is what the results end up looking like. Uh-oh, looks like mercury is in the red. It's easy for uninformed patients and providers to infer that a result that falls on the yellow or red background signifies heavy metal poisoning, but that's because they're not reading the fine print. Not reference interval. That normal green range is the level under non-provoked conditions, meaning normal urine, not urine from someone who has just given a chelating drug to provoke the response, to intentionally grab onto heavy metals in the body and pull them out into the urine. That's like giving someone a drug that raises their heart rate like a shot of adrenaline, then taking their pulse and being like, wow, you've gotten an abnormally high heart rate. Compared to other people who just got a shot of adrenaline? No, just compared to a regular resting heart rate. Uh, well, duh. See, there's no established reference ranges for provoked urine samples, so they're using the wrong reference range, so we have no idea what the results mean. And given the potential harm of whatever treatment the practitioner then tries to sell you on, these tests should not be utilized. Most commonly that treatment means chronic chelation therapy. A half million people with autism are subjected to chelation therapy in the U.S. every year. Despite no clinical trial evidence suggesting there's any benefit. Why not just give it a try, though? Because there's potential for side effects, like death. They're referring to this case, where doctors were like, oops, they just gave the wrong drug. Should have been given Edite Calcium Dysodium, not just straight Edite Dysodium. But this may have been no accident. That's exactly what's recommended by leading chelation proponents. As such, it would have been surprising only if the practitioner had not chosen it. So this may not just be a simple matter of the wrong medication being administered. That may just be a distraction from the prospect that the killer was quackery. This is not to say that heavy metals aren't toxic. It's just that instead of trying to give people chelation drugs after the fact, we should try to not get exposed in the first place. For example, in this study, they compared the blood mercury levels of physicians who ate no fish, compared to those who ate one or two servings a week, compared to those who ate three or more. Here's where the three or more servings a week group started out. And after a single chelation drug dose, mercury levels dropped down to here. And perhaps better to eat less fish or no fish at all.


Welcome back to Kids Fun Science. My name is Ken. Today's experiment is the safe solar eclipse viewer. Very easy to make. As always, adult supervision is required. What you need for this experiment is a Pringles can, a push pin, or a drill bit, a paper, box cutter, glue, and a tripod is optional. Start off the experiment. Take off the plastic lid of the Pringles can, trace it on a piece of paper and cut that out right on the line there a little bit inside the line because we're going to place it inside the plastic lid so right like that and it should look like this goes right in the lid like that then take some glue i'm using elmer school glue any kind of glue will work just kind of put a thin coat on the inside of the plastic lid this is just going to help us view the sun a lot easier so you're just going to take that and then take your cutout piece if it's a little too big just you know trim it up a little bit press it down and i'll let it dry it should just take a little while to dry uh while we do the rest of the project shouldn't take that long now we're going to flip the can over to the bottom part which is the aluminum tin we're going to measure halfway to the middle um so it does not have to be exact but it makes it a lot nicer if it's right you know right in the middle so kind of like just get a good rough draft for the middle there now you can either take a push pin and push it in or a drill bit um i'm going to show you the uh three different sizes in the drill bit as the larger you get the more um not as crisp of a view of the sun you're going to get uh with the drill bits uh this is uh a one sixteenth one sixteenth drill bit here and um it's a little bit bigger than a push pin so you're going to get a little bit bigger viewing of the sun so i i typically like to use the one sixteen i also will show you a couple other sizes and show you what they look like with the full sun of course because we don't have the eclipse up yet so go ahead and mark that um be very carefully i want to push down too hard and go very easy and uh make sure it's lined up and um and drill that through just a little like i said nice and easy doesn't have to be exactly centered and you're there you are you're set you got a hole in the bottom of the can and if you don't have a drill bit you're just going to take a push pin and push very hard into the center and pop a hole it's just going to be a little bit smaller now we're going to measure the sides we need to cut out with a box cutter um six centimeters um up uh directly deep you know uh straight up there so six centimeters and then we're going to make it uh four centimeters wide so mark a couple um six centimeters kind of make a line there just guessing how far four centimeters is and now we're going to mark the four centimeters and um once we get that marked um used to going to inches there it'll go centimeters you have four right there mark that you're going to go all the way to the edge there so we'll draw a line up in just a second um doesn't have to be exact uh this is just that you know if we get it in this ball park you're going to be okay i'm going to draw a couple straight lines and then we're going to cut it out so i use a box cutter you can use scissors uh whatever you do make sure you have an adult um because you know any sharp objects uh is dangerous you have to be very careful with this and so i take my box cutter i always find it uh to be pretty safe using a box cutter push it out with an adult and then i always pull away so it should end up looking like this and then we're just going to put the cap on the end of it that we made with the white cut out so now we're outside and what i did is i uh took a rubber band and i just wrapped it around the can i actually had two rubber bands tied together and then it kind of looks like a telescope and then with the push pin that's the size it's going to be when it's 1 16th so it's a little bit smaller but you can see when the the sun when the moon comes across and covers the sun um it's going to block out the part and you're able to safely see the solar eclipse without looking at the sun you're going to be able to see the image and what it looks like there so this is a smaller one at 1 16th i'm going to show you a couple other sizes that i drilled um it goes a little bit more out of focus but here we go here's the 1 eighth or 3.1 millimeters so you can see i'm just holding it here it's a little bit bigger um it's still not out two out of focus so it's pretty nice and then i have one more after this i have a 5 30 seconds uh 3.96 millimeters and that is very large so you can experiment through larger holes um you will get um some results you can see my finger going over how low is the solar eclipse anyway so the total solar eclipse begins august 21st 2017 at 901 a.m pacific standard time california maximum 10 15 and it ends at 11 37 a.m pacific standard time all across the united states to south carolina and um if you're not in that part of the view then you won't see a total but a partial eclipse i hope you enjoyed this video remember to click thumbs up and to subscribe and thanks for watching


And now, for your U.S. Army Europe spotlight. Soldiers from 1st Squadron's 2nd Calvary Regiment at a Vilsek, Germany, began returning home from Afghanistan. They were processed and loaded on buses, then quickly escorted home, where friends and family were anxiously waiting. After a brief ceremony, these soldiers were released, some to families, others to the comfort of their own home. I'm just going to get some dinner, take a nice hot shower, and enjoy some rest. Honestly, I just want to go home and relax, you know, working 24 hours, seven days a week, going 100 miles per hour. This is my chance to slow down and take it at my speed. These soldiers will help with the transition of a remaining 1st Squadron's soldiers still deployed, which will take place over the next few months. For more information, go to er.army.new.