Excuse me. Thanks for coming out. You people didn't want to ask these questions, no? Alright, I appreciate it. This is a hard time slot. So, my name is David Moore. I'm a Drupal developer at NPR. What are we going to talk about today? As I just said, I'm a developer. I'm going to tell you again, you will definitely get the point by the end of this hour that I am a developer. And this is going to come from a developer's point of view. I'm not a product owner, a scrum master, an ops guy.  And keep that in mind as I'm talking. That's the lens through which I look at these problems. I'm going to be talking about my experience with Core Publisher. And I'll talk a little bit more about what that is. I was on the Core Publisher project for three and a half years. I'm on a new project now as of January, which still involves Drupal, I'm happy to say. But I learned a lot of things over those three and a half years and I've tried to distill them down into an hour's talk and hopefully you can get something out of it. Now, this is more of an abstract sort of general talk about building a Drupal team, building a big Drupal project, things like that. I'm not sort of a nuts and bolts what's under the hood of Core Publisher. If you're interested in that, it's still very interesting, but it is very specific. If you need to know how to build a public media specific platform starting on Drupal 7 Alpha, there is a talk out there and I've given it before and you can email me and I can send you a link. But I thought I'd do something a little more general and hopefully it'd be a little more useful. Not too abstract, but not too detailed. This might seem like a strange thing. I'm assuming everyone here has heard of knows of NPR, yes? All right. There is some nuance here though that often gets overlooked. We are not, just so you know, we're not a government entity. We're not a government radio station. We don't have really anything directly to do with radio stations. What we do is we produce content and your local independent public radio station purchases that content and then plays it over the airwaves. You can also get the content obviously through NPR.org, any regular users of NPR.org out here.  But I'm just bringing this up because I get a lot of, there's some ambiguity there and it's often times intentional because the NPR brand is so powerful. It behooves a local station to say, this is your NPR station. And what that really means is we purchase an awful lot of content from NPR and you hear NPR content an awful lot on us. You hear that especially during pledge time. Anyway, that's who NPR is. What's core publisher? These are, like I said, we provide content to public radio stations but we also provide services. Digital services, that's the name of the division I work for. We're based in Boston, not D.C. where the rest of, most of the rest of NPR is located. Started in 2010, it is a turnkey solution. So most public radio stations, as you can imagine as I just alluded to, have to beg for money. They do not have huge tech staffs on hand. Some of the bigger ones do BUR and WNYC, KQED. But for a mid-market or small market radio station, they just don't have the means to do a lot of digital outreach. And so we provide that with core publisher. It was built on a Drupal 7 Alpha. If anyone went to Schnitzel's talk yesterday, Amazee Labs re-launched their website on Drupal 8 Alpha.  And I'm not going to disagree with him. Do not try to build a big project on Drupal 7 Alpha. I learned a ton about core and all sorts of stuff in Drupal 7, but it was a very rocky ride. In fact, it was on, when we launched, we started building on an Alpha. We launched live on a beta fall of 2010. And I think there was about six pilot sites when it actually went to 7.0. So don't try this at home. There's now pushing, I think that's a little high on the estimate, but pushing 150 different stations using it to one big multi-site. It obviously has a lot of bells and whistles for public media, particularly radio, but some TV. And the biggest thing is integration with the NPR API. As I mentioned prior, NPR is a very large news organization that creates an awful lot of content. Some of it you hear on the radio, some of it you see on NPR.org. And we also have an API that draws that content out and places it in your local public radio website. So a very small station can have a very good-looking website that every morning automatically pulls good, fresh, original NPR content onto their home page. And that's, as you can imagine, that's a real attraction. So four easy steps if you're about to build a big Drupal project. Piece of cake. Build a strong team. This seems pretty obvious, right? If you don't have a good team, you're going nowhere. And we're going to talk a lot about building that, hiring and building a good team. Everyone needs to be on the same page. That is crucial. Notice it says keep developers happy and motivated. I'm going to include front-end guys as developers and maybe designers too if I'm in a good mood. But that's the core of your team. If your core of your team is not happy and motivated, things are going to fizzle out. You're not going to get that great product out. And if you get the first three bullet points, the fourth should follow relatively stress-free, right? So as I said, first and foremost, you don't have a team. You want a team. Jeff Bezos, who I think is probably, you might probably have opinions about him, but he seems like a pretty smart guy. I probably wrenched this rule completely out of context, but I like it. The two pizza rule. How big should your team be? Can you feed them with two pizzas? I know things are bigger in Texas, but up in Boston, a large pie is like, yay. Eight sort of medium-sized slices, two large pizzas, 16 medium-sized slices. It's about six people. Similarly, when we're talking about keeping things consistent at NPR and the core publisher team, we went through a lot of different phases. Small team and medium-sized team, two pretty big teams. One enormous team. And now they're back to one sort of tight two pizza team. And that seems to be what's working best. Keeping things consistent, it's important to have the same people working on the same code base for as long as possible, getting to know each other, getting to know how each other works. The more cohesive unit you have, the more productive things are going to be. Be patient when hiring. They talk about fail fast in the startup world. Don't do that with hiring. Take the time. I'm sure if you're looking to hire or looking for a job, especially here at DrupalCon, you've heard people saying, everyone's hiring and there's no good Drupal developers.  If you make a bad hire, especially a bad key hire and don't realize it until six months in, your project is going to falter. And you got to start with a hub. Now what on earth is a hub? Hub is your lead developer. Is the man or woman who stirs the drink on that project. They need to be good and they need to be experienced at Drupal. And I think those are two different things, okay? They need to have been in the Drupal world for a while and understood the community and the idioms. And they also need to code well. More than that, they need to be a leader. They need to be someone who's respected by the other people on the team, people look up to who knows how to lead. You can find a very good Drupal developer out there who is just a little too introverted, a little too thin skinned. It's not going to work. You need to vet the hub. You need to find out if this hub, this man or woman is everything they say they are. Now sort of a catch 22 if you don't have a hub already, how do you know this person is that good? Do whatever it takes. You know, hire Aquia to pour through their code. Hire some consultant that you trust to go in and say thumbs up or thumbs down on this guy. Again, be patient. It makes all the difference in the world if you start with a great lead developer. And give that developer real authority. Don't just thrown to the junior developers and say, this guy's good. Do what he says. Allow him to actually veto things. Give him the ability to say, that commits no good. Roll it back. Or don't merge that branch. It's not ready. Things like that. You've got a hub. You need some spokes. And spokes are the junior and mid-level developers that complement the lead developer and the designers and the front-end guys. I thought about all the adjectives used to describe developers that I like and respect and think are very good at their job. And I kept on coming to these two points. They're passionate. They're enthusiastic. They love coding. They code in their spare time. And they're also very careful and cautious and thoughtful. They're fastidious. There's lots of good coders out there that are too sloppy. And there's lots of very careful coders out there that are a little overly cautious and sort of get paralyzed and move very slowly and don't write that code that well. So you need both. You need a breadth of skills these days. Front-end, they need to, at least some experience with the front-end, they need to be able to be knowledgeable about markup and CSS, jQuery and JavaScript. They don't need to know all the ins and outs of CSS3, but they need to be familiar with it at least. Some DevOps, the line, and I'll talk a little bit more about this in infrastructure. The line between operations and code, especially in Drupal, gets blurrier and blurrier. And the more they can help out with deployment scripts and moving things around, the better. They should be able to write a little bit of bash. And not Drupal. The phrase that Larry Garfield Crell coined a couple of years ago, get off the island, which you might have heard this week, that's even more important. It's good to see Drupal 8 seriously getting off the island with all the symphony and other things in it. If they only know Drupal, I think that's a little bit of a red flag. They got to know any signs of playing with other frameworks, other languages is always a good thing. And what do they do from 6 to 8? I just alluded to this, but do they have hobby sites? Do they have stuff on GitHub that's totally unrelated to Drupal? The last point is sort of obvious. Start with just pouring over what code they have available. The incredible advantage of hiring an open-source developer is everything is or should be public. And so you can go over, you can look at so much of their code and really get a good grasp. It's a good way to weed out things. Other ways to weed out people, you know, I get questions all the time like, what's a killer interview question? What's a really specific like, if I'm using the Form API on a multi-step form and what should this pound, whatever be, that's ridiculous. No one knows that stuff off the top of their head. Everyone Googles that. It doesn't matter who you are. It's much better in my mind to ask more generalized questions. You're going to know much more about the person. If you ask, these are what? One, two, three, four, five crucial things that just sort of ask. Not even a question like, tell me what you think about technical tech. You know, tell me how do you do version control? And if you get any kind of faltering around these, that might be a red flag. I mean, no developer likes writing tests, but if they say, I don't write tests because my code's great and it doesn't need to be tested, or I don't write tests, I do it all manually, that's a red flag. Version control, this is, I've actually heard this. Someone said, I don't do version control because I don't work with other people, or I don't do version control because if you write it right the first time, you don't need version control. Like, these are serious red flags. So these are just great ways to very easily just weed out people. I'm going to talk a little more about interviews, which might seem a little weird and obvious, but I think most tech shops and most companies, they're doing interviews wrong. I'm going to explain. The bad interview is also the typical interview, right?  They're either overly specific or overly broad. There's very little give and take. It's an interrogation. It's 45 minutes by a developer who isn't really a stakeholder, doesn't have a whole lot of skin in the game, and just wants to go to lunch. That is a bad interview, and like I said, that is the typical interview I think these days. It's unfortunate. Here, my radical solution is this is what I think is the great interview for a developer. And I've done this once before. I've been on this interview before, and it was by far the best interview I've ever had. Hands down. Bring the person in, bring the candidate in, buy them lunch. At the very least buy them lunch, but I'm a bear at the end too. And take a existing module that you have that's fairly simple. Show them what it looks like and say, can you reverse engineer this? Take all the time you want. It's a completely open book. We're going to put your code up on the screen, so it's completely conversational. You can ask questions of us. We'll ask questions of you. We just want to know the process. We want to know how you code. I don't care that you're Googling really simple Drupal functions. I do that. I'm not embarrassed by that. I can't keep that all in my head. Now, the common reaction to this is, yeah, that's a lot of time. So don't, first of all, don't do this with every candidate. Do this when you're down to a final three or two or one. And also four hours isn't a lot of time if it means you're hiring the right. If you are much more confident about hiring the right developer. I'd rather spend four hours early on than find out six months from now that this person just isn't right and sort of passed that 45 minute interview but kind of bluffed his way through it. So once you've got the team, set the ground rules. And as you'll see on my list of regrets, we didn't do enough of this at Core Publisher and any project I do it from NPR here on in where there's going to be a lot of assumptions and ground rules. How to deal with TechDet. How are you going to deal with TechDet? I've used TechDet twice now. Does everyone know what TechDet technical bet is? You familiar with that term? Oh, not many. I'm going to completely oversimplify this. And Ward Cunningham is going to kill me for saying this. But TechDet is bad code that still works. It's not a bug because it still works. But it is an accident waiting to happen. It's a little, you know, grenade with a pin in it. It drives developers crazy every time they do it. It's unmaintainable. It needs to be fixed as soon as possible. It's often, I'll talk a little more about TechDet in a second. Coding standard, that's obviously the syntax. They greet upon set of rules. Your curly braces go here. There's a space here. Your comments look like this. Code reviews is having developers look at each other's code. Making sure it's okay. Making sure you're on the same page there. DrupalCon, I'm sure you've heard this all week. This is the whole ethos of open source and Drupal is contributing your code back to the community. Snippets, best practices. It doesn't just have to be modules and themes, but hopefully you're kicking that back as well. Scrum rules, I'm assuming you're doing Scrum Agile. Most people are these days. Do everyone know what Scrum and Agile are? Again, I'm not a Scrum master. It's basically a way of working. You iterate usually over a two-week period. You plan at the beginning. You work on... I'll talk a little bit more about Scrum in a second. Testing, what tests suite are you going to use? How much coverage are you going to get? Things like that. And VCS is just version control system. These days, especially now that Drupal.org and Drupal is on Git, you probably should be on Git too if you're not using Git. If you're using version control, get on version control ASAP. If you're not using Git, you need to have a really compelling reason why not. Okay, tech debt. I'm going to sound like I'm overstating here, but I'm going to say I can't overstate this. I feel like I should take off my shoe and bang it on the podium here.  It will just absolutely destroy developers' morale and motivation. By its very nature, it's sort of viral and self-replicating. You often see the broken windows theory from sociology or anthropology used to describe that and what that means is if a developer is looking at existing code and sees some bad code, some hacks, some shortcuts, some laziness, he'll say, oh, that's okay to do that. I guess I'm going to do it here as well. And suddenly you have twice as much tech debt in your module than you did yesterday. Yeah, absolutely. If you don't have a firm plan to deal with it, first step is to document it. Know that it is tech debt, right? Say, okay, we need to get this out tomorrow, but this is tech debt. This is a shortcut. We need to fix this as soon as possible. Go back to the Wiki and document it. Write a ticket in your ticketing system saying we need to fix this ASAP. Have maintenance packs and trigger deals. So true story on another project that wasn't core publisher was a side project we were doing. I literally made a pinky swear with the product owner and said, if we get a fifth radio station on this product, we have to write a UI. We're not writing configuration in code anymore. The sad part is that the project got spiked before we got to five radio stations, but I felt very confident and I kept on reminding her that we did this pinky swear. I felt confident that we would deal with that tech debt if we had to. Coding standard. I can talk about this all day and all night. This is probably my biggest passion. The good news is Drupal has an existing coding standard that's pretty exhaustive. 90, I say 97, that's a pretty good number. 97% of the time, if your two developers have a dispute about a bracket, a comment, a space, something like that, just go to the coding standard end of discussion. The developers I used to work with on core publisher, we actually had a good time about this. We'd go racing over to the coding standard and say, I think I'm right. No, I'm right. Someone's right and someone's wrong. It's pretty black and white. And this is another talk I give, another talk I give that I am very passionate about is, I would highly encourage you to go well beyond the Drupal coding standard. So, look at common idioms and design patterns in your code and codify those and say, and basically create a style guide for your code. You know, always we say, we have a saying in the core publisher of each team, WWCD, what would core do? If it's not spelled out in the coding standard, then we look, is there an example in core? Which isn't always the best. Core is not super consistent, but it should provide you with some guidelines. If you start writing these guidelines down, the fewer debates you're going to have on your team and the cleaner and more maintainable and predictable your code is going to be. Like I said, I have a whole other talk about this. I like to talk about how Drupal's cookie cutter code. I love coding Drupal, but 70, 80% of it is very rote. You know, I need a page, okay? That's a hook menu, but only certain people can see this page. That's a hook permission. It's black and white. Like, just do that. There's no alternate way of doing that. And then the more you rootinize these things, I think that's a word. I'm pretty sure, anyway. The more you make these routine, the more time you'll have for like the really fun stuff, the really creative stuff where there is no black and white answer. Code reviews. Well, I'll talk about, I'll do the big reveal about regrets later on, but not only is this, your developers have to be looking at the code base as a whole, and they have to be looking at it in real time as other developers commit you code to the code base. And it's not just good to have sort of another set of eyes so it's more consistent and whatnot. It's just a great learning experience because you learn things as you look at other people's code and you also interact more with your other developers. You get to know them better. It does require a baseline of respect, which again, if you've done hiring right, that shouldn't be a problem. If you can't get developers to look at each other's code because they're too proud or they're too thin-skinned, they're too defensive, that's indicative of, you've got an iceberg there. You've got bigger problems underneath the surface. Also, if they can't do it with a modicum of fun, that might be a problem as well. Honestly, when I was on the core publisher team with the last iteration of developers, I loved doing code review and we would give each other a fair amount of grief but we had that baseline of respect that no one took it personally and we learned so much. You need to be a mixture of confident but also a little bit humble and not thinking you know everything. Kicking code back. I talked about how this is the whole driving force of open source and Drupal. The more you can kick back, the better your code is going to be. If I'm just writing a one-off custom model, it's going to be a little sloppy. I'll admit that. If I know it's going to be on Drupal.org for anyone to see, it's going to be written a lot better and it's also going to be sort of more Drupal-y. That's definitely a word. Don't tell me that's not a word. I use that every day. It's going to be modular. Drupal is very modular so instead of one big Uber module that has seven features, it's going to be broken apart into small, maintainable pieces. Free beta testers. Some of that we have not related. I'll admit we have not released enough stuff to Drupal.org but the stuff we have released, people have immediately picked up on feedback, all free of charge. And to be perfectly selfish, it's really better for your resume. If you walk into a job interview and say, yeah, I've been doing Drupal in open source for two years. I wrote, you know, thousands and lines of code and 10,000 commits and the hiring manager can say, well, show me. Oh, I can't. Is it an NDA? No, we just never got around to releasing it. It's not going to help your job prospects. It's much better to say, this is what I did and here you can see it and I'm proud of it. It's nice and shiny because I know anyone can look at it at any time. Scrum Agile. So again, this is a way you work. It's very common these days.  Again, I'm not a Scrum Master. I don't have any little certifications on my wall. There's things I like about it, things I don't like about it, but mostly like it. Everyone I talk to out there always, they seem a little sheepish and say, well, we run a slightly modified version of Scrum. I don't think you should be embarrassed by that. You know, there's all these rules and books and whatnot about this is how Scrum should run. The bottom line is does it work or does it not work? If it's not working but the Scrum Master says you should do this, that's a bad idea. I was at a Scrum training session one time and the guy next to me had a question about multiple product owners and the certification guy sort of hemmed it hard and said this and that and I just wanted to step in and say, is it working? You know, if multiple product owners isn't working, stop it, change it. The fact that it's okay by the Scrum Master doesn't matter. So what do devs and yeah, I'm a developer, I can speak for developers or at least developers I know but I think designers in front end and I think probably a lot of people agree with this. So you have a daily stand up usually at the beginning of the day or the end of the day so it doesn't break up your day. Maybe lunchtime, that might work. It's got to be brief. I think a great idea which ensures that it should be brief. You're only supposed to say three things. What did you do yesterday? What are you doing today? Are there any blockages? But it's a great way for we already think good communication on the core publisher team but it's a great way if you're not paying attention or you're out that day or you're buried in your code to say oh, that guy's working on that, you're having a problem with that? I remember that. I know how to fix that. Another great thing about Scrum is tickets. Manageable tickets. You write out a task, a very explicit task and task actually has a specific meaning in Scrum. I know, I know, but bear with me. You write out a ticket that I want to add this feature. I want to fix this bug and developers love that. Give me tunnel vision, that's all I'm working on right now and in a broader sense you have sanctity of the sprint as well but that means is unless something is on fire on fire new tickets don't get added to the existing sprint. You have some priority it better be, you know, a site needs to be broken before we interrupt the sprint. Come back to me in two weeks at the end of the sprint.  Clear prioritization of issues, which is important when you do your planning you can see what's happening this week what's important, what's not, what's got bumped down and the retro as I mentioned at the end of your sprint usually in two weeks you sit down and you have an airing of the grievances basically or a celebration of the successes of what's happened in those past two weeks. And again looking for warning signs if you have everyone sitting there looking at their fingernails for two weeks that's not a good sign it means they're not communicating honestly because there's no way something didn't happen in those two weeks, either good or bad. By the same token if everyone is yelling and screaming every single retro that obviously, I don't have to tell you this but that's not a good sign but if it happens a couple times a year once a quarter it's a decent sign you guys are working on hard stuff with deadlines people make mistakes people check out for a week people are preoccupied with something at home maybe there's going to be problems and as long as you're communicating honestly I think that's a good way to go with the retro what don't they love as I mentioned before blindly following procedures and saying hey, we have to use this tool to manage our tickets because we've always done it that way or hey, this is exactly the way sprint, you know, this is the way Agile says we have to do things even though no one likes it and it doesn't make any sense we still have to do it this way similarly, people particularly on the product side who don't get you know, horror developers they might see Agile and their eyes light up and say oh, this means we can if it works on the screen during the demo live server, right? no, no, no, no this is a proof of concept we have a saying a POC proof of concept plus a live server is a POS and it's very true you know, people also just hear the word Agile and think oh, that means we can jump from project to project and it's just a messy way to do things developers can tell you when tests have been written when it's passing tests when there's little to no technical debt and that's when things should go live word or two about architecture when I was asking for advice from some of the developers I worked with one of the guys said architecture is a feature and he was paraphrasing I'm sure from performance as a feature which is also true I don't know what architecture as a feature means but I really like it so no one steal that but I think it was getting at was ABA, this is from Glen Gary Glen Ross always be architecting always be thinking this goes out to developers put everyone on the team don't just develop features in a vacuum, you know if you get a feature think about it and say go back to the product owner and say this feature is too broad or this feature is too narrow if we make this feature a little more abstract that use case comes up which it probably is this feature will be able to deal with that you know when you get a feature say is this a stand-alone feature should I build a separate module or can this go into an existing module always thinking about that stuff don't abstract things too much but don't just take the feature as is and say okay this is what the product owner wants I should build it that way small pieces loosely coupled I wish this were my phrase but this is all over software books and blogs and what not is actually relevant when you're building with Drupal which is a modular system it's always better to say to build one feature per module couple them together you can turn it off and turn it on without breaking stuff you can write small this is Larry Garfield channeling Larry Garfield again write small manageable testable functions don't write what we call God functions that do eight different things err on the side of releaseability that's a word too releaseability I use it every day what do I mean by that I always think there's a JD Salinger story I want to say it's Franny and Zoe it has these deep theological implications implications but at the end of the story one character is telling the other character shine your shoes even if you know no one is going to see your shoes right that's the same thing with your code write your code as if it is going to be on the homepage of Drupal.org even if you know it isn't it's just such a good practice to get into it's always easier to just push a button that says release rather than say oh man do I have to tidy this up and also you're going to see this in my list of regrets but we again we were building on an alpha so we did have to write an awful lot of custom code early on but there are times when you know your first choice should be a contrib module product owner says I want this feature say okay well we have this you know a good I should say a good well maintained contrib module that's not an alpha I guess that goes without saying you can say okay I want this feature say okay we have this contrib module it gets you 80% of the way there is that good enough no then go back to writing custom but say is there sort of a shim layer a tiny little you know hundred line module I can write that interacts with that contrib module that does what it should do that should be your priority list contrib plus a tiny bit of custom and then only as a last resort custom every module gets a real true API this is this is another 45 minute talk and it's really just aimed at developers but what it means is every module should have easily accessible functions that other modules and Drush can use again this is a I was inspired by Larry Garfield who gave a great talk about this given a great talk about this several times you should not be cramming all your functionality and business logic into a hook submit into any kind of hook a hook cron they should be your Drupal functions should be calling other functions work with Drupal this is my most abstract point so please bear with me on this Drupal is a CMS this is a long standing debate no it's a framework no it's a CMS no it's both 90% 95% of the time you're going to be using Drupal as a CMS you're going to take the minimal or the standard profile copy that or just use it out of the box and modify it you're going to be using the Drupal admin it's a CMS it's a CMS as such your approach to it should be extend and theme rather than I'm going to build this from the ground up and let me give you an example because this is kind of abstract okay this is a screenshot from the current project I'm working on I don't know how well you can see that but it's a very basic Drupal UI and it doesn't really matter what I'm doing you need to I'm modifying certain objects in a third party API but I want to use it I want to make a user friendly version of this that's all it's doing but as you can see it doesn't look great and it doesn't look great especially when I take a screenshot of the Drupal 7 theme you know you've got your ad group that's called an action link that's not incredibly intuitive you've got a lot of trapped white space you've got edit delete and the link say edit and delete if I'm a product owner and my developer comes back with something like this and I'm not fully immersed in Drupal and understand the Drupal's a CMS and not a framework I might say oh you know what I'm going to give this to the developer and he's going to make a better UI that's not part of the ticket though this is what the UI organically comes up with and this is the following existing here I'll go back on this slide you're following what did I say pre-existing well-worn core patterns so when you go back to this you write a separate ticket that says I'm not wild about the admin theme particularly I'm not wild about the trapped white space and the zebra stripes and the trapped white space and the action links and all that stuff that's what you say and it's a completely separate ticket it has nothing to do with this UI in particular similarly I would worry what I call comp driven development this is going to sound like a broadside against designers it really isn't I love designers I love working with them we have some very talented designers at NPR but if you give if you're starting on a project and you start with a designer and say go nuts write a fully formed web page give me a comp back it's inevitable that that person is going to put in inherent information architecture and features and all sorts of stuff which if they're not working with developers as they're doing this the developers have to then reverse engineer all this stuff based off of a PDF and things can get really strange and sloppy and I have a real use case of that but keep that in mind Drupal's a CMS think extend think theme don't think I have this feature I want to see what this feature looks like from top to bottom I want this UI to look different from the other core UIs a few notes on infrastructure again I'm not an ops guy I knew very little about ops when I got there four years ago I know a lot more but I still know very very little did anyone go to the caching session the two hour caching session yesterday it was kind of detailed it was amazing I can't believe what these guys pulled off in two hours really really valuable you should know this even if you have no technical skills at all but Drupal is very expensive it takes up a lot of memory and processing power you need to start caching ASAP you're running a multi site and you have like five pilot sites that's about the max you want to get to before you start thinking about caching if you have a big Drupal project do not go live without many many layers of caching it's just imperative your site will go down so fast similarly this is front end performance you know big images huge javascript files you got to keep those in check at the beginning or else it's basically another form of technical that fortunately ten years ago sorry four years ago 2010 that was a bigger problem 2014 now people think mobile first all the time so they're thinking you know very lightweight websites from the beginning which is nice to see so that's less of a problem as I said before the line between ops and code gets blurrier and blurrier the more you as a developer can write bash and glue code and what not and help out ops the happier they're going to be and this goes without saying as well but it's good to be able to write these bash scripts and stuff but the more you can automate and outsource Nagios we use Nagios to make sure our servers are up in the middle of the night uh agar which we don't use we built our own agar but again that's another talk that allows non-technical people to deploy sites new relic for monitoring performance if your site's kind of sluggish you can go to new relic these all cost money and time and everything but I'd much rather get a ping in the middle of the night from Nagios saying hey this site is might be down can you do something about it then getting a ping 45 minutes later from a general manager who's you know has our VP's personal cell phone number saying hey the site's down Jenkins for various levels of automation all kind of standard stuff but stuff you need to be thinking pretty much from day one again being all being on the same page uh advice for product owners again I'm not a product owner um and this is advice I've given to product owners I know I think um this first point actually is something that our product owner came up with and I find it incredibly valuable and she's actually asked us to repeat this phrase to us when she seems to be strained from it and what do I mean by that provide the dev team with problems so when you write a ticket for a feature it should say something like as KUT which is the one of the local Austin radio stations as KUT this is weird um this is how issues are written in scrum if you don't know as KUT I would like to have a list of local stories on my homepage there's not any local stuff it's all national that's the way to write that ticket that's the problem don't write it as as KUT I would like a view with the following parameters on my homepage in a block with the weight of such and such that's for the developers and the frontend guys and the designers to figure out and again it provides a nice clear line of distinction of what the product owner should contribute and what the team as a whole should contribute uh be a leader not a dictator um probably goes without saying the first time you say to your team that's for something kind of out of the blue with no really good explanation you're gonna start to lose people and lose respect communicate or over communicate you notice under communicate is not an option here I feel like I'm giving you uh the top five number one pet peeves of developers like well I only have one peeve as a developer but there's five of them right uh but one of them is definitely getting sandbagged in the middle of a meeting with some bizarre request or feature you know some bizarre feature request that comes out in the middle of nowhere with no good explanation you know if we know that's coming a couple weeks ahead of time if we see that in planning it's much easier to to a argue against it and b be ready for it stay focused I've touched on this a couple times now it's it's tempting to say oh wow this is you know there's a nice shiny new toy over here I think we should start working on this or hey let's do uh let's do a responsive theme but at the same time let's cut down on tech debt but at the same time let's build up um you know a TV API at the same time like stay focused the developers are going to like you a lot more for it and stay positive you're a leader and this goes out to the to the dev lead as well stay positive don't stay positive to the point of insincerity because people can smell it a mile away if things are bad admit that things are bad and talk about how to make things good but uh you know don't be a grump just because you're feeling grumpy uh basically it's you know people will follow your lead if you um if you show low morale then the developers will follow okay so the um the talk summary promised a uh short I think I should have a short list of regrets it's a little longer than I expected uh so I have to deliver on this uh this is this is sort of the practical stuff you probably could have guessed this from the first uh whatever 45 minutes of this talk um all this stuff basically boils down to I feel really good about where core publisher is today I'm happy to be doing something different after three and a half years but I think it's it's in a good place right now it's a huge project so there's always going to be tech debt there's always going to be bugs uh but it's in a much better place than it was before I just wish we'd come to a lot of this stuff sooner rather than later basically and so like I said I think at the beginning um these are lessons for you as well as lessons for NPR the next time we start a project I think we want to go down this checklist and say you know uh what's our plan to deal with tech debt uh what's our plan to deal with testing coding standard who's going to enforce the coding standard um how are we going to treat this uh what's our what's our process on grabbing custom code versus contrib uh like I said before are we going to do this on you know early early adapters are early adapters um we had to just make so many changes because we did this on an alpha it might have behooved us to wait a little bit and we stayed on the island a little too much we started uh you know uh I'm going to get this wrong Drupal uh we picked up a hammer that was Drupal and then everything we looked at was a nail basically sometimes that was good sometimes not so good um we uh focused a little too much on Drupal basically um this is my this is my touchy feely finale uh but I think it's important uh might have been a little negative there so I want to end on a high note uh we live in a fascinating time it's eerie and creepy I admit but it's fascinating and it's it's nice to be part of the fascinating thing things that are going on you know uh driverless cars solar powered roads does everyone watch the solar powered roads video on youtube google it there's there's two different ones there's like a nuts and bolts one and then there's a more fun one but uh it'll make you feel a lot more hopeful about the future and about technology and make you want to wake up in the morning I don't know about you but I get to do my hobby is a well paying job I don't know a lot of people that get to do that and um it's a real privilege and never take that for granted I mean it's really especially working in public radio which is something I love and I listen to every day um you know I have friends and co-workers who have the whole TGIF vibe and it's not like I don't really enjoy spending time with my friends and family on the weekends but I don't dread Monday morning either so don't take that for granted you know if things are going bad on your team take a step back and take a deep breath and remember that you get to do something really great every day um this third point I almost put in the PO slide but it really is for everyone stay humble and curious you're right I don't know I was wrong those are the three most important things you can say at a stand up at a retro at planning don't be so thin skinned and defensive you know don't be overconfident you will gain so much more respect if you stop your product owner and say yeah you're right I was wrong there that person will respect you so much more and I don't know I'm a like a lot of people out there I think I'm a pretty good developer but I'm also self-taught like most I'm a former theology major who's pretty good at math that's basically you know my back story I know nothing about hardware I know nothing about CS I knew very little about servers until I started at NPR I asked my boss and my director of ops the most naive questions but I know they respect me and they'll make fun of me but in a good natured and respectful way you know say it's perfectly fine to say I don't know like you don't know everything no one knows everything um any fans of the wire out there alright so if you want to know more google this last phrase you'll see a little clip as much as I talk about hiring people who do development as a hobby and are working from six to eight don't let it consume you I mean it's great and I love it and I'm obsessed with it but it doesn't consume me the video is the video clip from the wire I'm sure it's not safe for work but it's all about Lester Freeman who's a good cop and dedicated cop but he has a girlfriend and he makes dollhouse furniture and he has a life outside of the job and he just is giving it to McNulty who's a womanizing alcoholic who has nothing besides the job giving him full barrel saying the job will not save you Jimmy you know so um go outside and see your friends and family and um take some time off have a beer and enjoy yourself and that's me if you want to talk about Drupal if you want to follow me on twitter talk about nothing except this stuff on twitter basically um which is good I don't talk about food I don't talk about my daughter I don't talk about anything except Drupal minutia basically and tech debt and what not so if you're into that I'm a good person to follow if you something want something more casual than don't if you want to talk Drupal that's my email address um there's the if you want to comment on this talk please do there's the link there's no way you're going to write that down easily enough on the Austin Drupal con site we are if you're a developer I believe we still have one more position open Boston based if you know anyone who's Boston based or you're Boston based it's more of a general web generalist job it's less Drupal I think it would start I don't know I'm not doing the hiring at all so I wouldn't know about it but I I think it's more um we're looking for someone with note or willing to learn note so come see me I'll give you a card and that's about it we have seven minutes for questions can you get up to the mic maybe while we're waiting for him great talk I think perspective and humility are very often lacking in this industry and I think that's it's good to promote those principles sort of being a little bit newer to Drupal and adopting it I'm also doing a lot of web application work in our agency curious what your comments on Drupal don't treat Drupal as a framework it's a CMS and there's boundaries what in your experience are those boundaries and how would you know given your experience the last four or five years what would you have done differently when you start to hit those edges of where Drupal is not a framework um yeah this is like I said this is some of the that's the more sort of abstract and not fully fleshed out and I have like two really good examples but I don't have enough good examples to really write like a whole talk and treat us about it but it does go back to um you know if we could travel back in time and I think it should come clear in this talk that I have the greatest respect for our core publisher product owner but she didn't know a lot about Drupal she came from a different sort of I think dream we very kind of background and so it was the it was the thought was we need this feature let's pump it out first with the design and then build it as opposed to um because it's harder to it's easy to write a comp to to to drop a comp it's much harder to make a list of sort of features and what not um it's much more abstract but if you do it that way like I said the UI and everything sort of organically comes up you know if you the more sort of generalize the task the the feature say um I want this and then your Drupal experts can come in and say oh you know what that's a view and that's a block and we're going to give it this way and we're going to put it here um again um it's hard for me to the real example is uh when core publisher started out as a as a uh it first started out first iteration with something called news destination which was a um it was just a very very simple reverse chron block a river of news and we we didn't have views yet we didn't have features yet um but we needed this and I'd have made sense to do it in WordPress off the record this is being recorded damn um but we started with a comp which is bad because there was all these weird things that got a comp we started with like two modules in a theme instead of five or six smaller more discrete modules in a theme you know um we did too much custom work which again early on we really our hand was forced and at the time I argued that we didn't need views because our our uh our query was so simple it really is just give me everything paginated um but we we took us forever until we actually did move over to views when views was available um so I don't know if that answers your question it's it's it's um uh work with the designers early on grab as much custom as possible make sure your product owner understands that it's better to grab a custom mod like give us a very very abstract idea of what you want and then let's look at contrip let's browse through contrip there's what 20 that is an insane number of modules like something's got to get you most of the way there and either you're okay with that or we write a shin layer so that's uh I can probably talk more about that but uh if you want to talk later but that's those are my general thoughts off top of the head thank you more questions so knowing what you know after three and a half years of building a poser which is awesome by the way we use it um as I mentioned before on our site would you have still built it in Drupal if you could go back well as I was talking to my coworkers and trying to get ideas about this talk uh there was the question am I going back in time to 2010 or am I starting right now in 2014 so there's things I'd still do it in Drupal yeah um like I alluded to some of the other sort of side iterations news destination and some other things we might have done in something different but I definitely do it in Drupal I would have waited uh until uh core publisher was sorry Drupal was actually stable Drupal 7 was stable uh would have used much less custom stuff finer grained things but yeah I would have stuck with Drupal I I actually talking to product owner about this I also would have been more and I think I just sort of said this already been a little more uh forceful at saying stop treating it like a framework right like hey we've got a module that does 80% of this please say you want this you know I know it's not how your designer drew it up but it will save everyone time and hassle if we can just use the group stuff you know the contrib stuff there's a lot of uh changes I would have done in the infrastructure and um some deep dive Drush make stuff and things like that but but all in all yeah anyone else last call alright let's go eat lunch then thank you very much I appreciate it


So here we are, Revelation chapter 11, beginning at verse 15, reading to verse 19. And John writes, then the seventh angel sounded. And there were loud voices in heaven saying, The kingdoms of this world have become the kingdoms of our Lord and of His Christ. And He shall reign forever and ever.  The one who is and who was and who is to come, because you have taken your great power and reigned. The nations were angry and your wrath has come.  Then the temple of God was opened in heaven and the ark of His covenant was seen in His temple. And there were lightnings, noises, thunderings, an earthquake and great hail. And so what we're doing at this point here in chapter 11 is we're resuming the judgments that are part of what are called the trumpet judgments. I had mentioned to you, and I'll just briefly say it, that chapter 10 and into chapter 11 verse 14 was kind of like a parenthesis. But now John is resuming writing concerning the judgments that are yet to come. Now as we've been looking at Revelation chapter 8 concluded with what are called the seal judgments. And they introduce what are also called the trumpet judgments. The trumpet judgments, as I've mentioned to you already, are also referred to as the judgment of thirds. And so each judgment, since we've seen the seal and the trumpets and all, each judgment continues to escalate and each judgment is building in intensity. And we're seeing that as we go through these particular judgments leading to what has been called the bold judgments. So at this point what we have in verse 15 is the seventh angel sounding. And as he does so notice that there's an immediate response in heaven because heaven begins to erupt, it erupts with praise. And heaven erupts with praise for what is about to be done. And it'll be done in the near future. And the rejoicing occurs because Satan's power is soon to be broken forever. Heaven is rejoicing because Satan's rebellion will be ended and Jesus' reign will occur. And I don't know about you, but just reading that thrills my heart to know that the enemy will be judged, rebellion will be quelled and God will be praised throughout the world. And that's what we're seeing here. This one ruler, it's called the ruler of the world, is about to be dealt with completely. And this one who is a ruler is known by many titles and many names. When you read your Bible, he is called our adversary. He is called Belial. He is called Beelzebub. He's referred to as the dragon. He's called the God of this world, the prince of the power of the air. He's spoken of as a roaring lion. He's called the serpent. He's also known as the devil and Satan. This evil, this evil being works constantly to undermine all that God would have done. In his tireless efforts, the unregenerate person is open to his plans as well as Satan's designs. You see the Bible in 1 John 5 verse 19 says to us that the whole world lies under the sway of the wicked one. And that's because when you don't have God's spirit within you, your flesh will yield to the temptations of the enemy. You see, before you're saved, the Bible says that you were unsaved and your flesh is at war with God. In Romans 8, 6 through 8 it says to be carnally minded is death, but to be spiritually minded is life and peace because the carnal mind is enmity against God for it is not subject to the law of God nor indeed can be so then those who are in the flesh cannot please God. Those who don't have the spirit of Christ, those who haven't been born again, no matter what they do, no matter how hard they try, no matter how good people think them to be, if they're living in the flesh, if they haven't been regenerated, if they haven't been born again, nothing they do is pleasing to God. Everything that we do before we're saved is tainted by sin. And so those that are in the flesh cannot please God. The fact is an unregenerate, a person who is not saved, an unregenerate person can't please God as a matter of fact is hostily opposed to him. And that's what Satan uses to influence and control those who don't know Christ.  They are energized spiritually and philosophically by Satan. They oppose the ways of God. And though they speak different languages and though they worship different gods, they're all lost. There are many nations. There are many leaders. But the spiritual fact is they have one ruler. There are not many religions.  Oh, there are many religions. No, there are only two. Keep that in mind. Gods and Satan's. There's only two. And God's faith is revealed through Jesus Christ. So to know Christ is to know life. It's to know God. So you can call God by another name. And if you do so, you don't know Jesus Christ because God is not Allah. God is Jehovah God. And he revealed himself by taking upon himself human flesh. And Jesus Christ came dwelt amongst us and he took our sins and he paid for our sins on a cross. That comes through Christ. It comes no other way. But the enemy would have us to think that we might be able to do good things in order to somehow be in good terms with God. But the Bible makes it very clear that doesn't happen. The spiritual fact is there are not many religions. There are only two. There is God's and then the ones that are presented by Satan. And the one who is actually energizing and directing each of these religions as well as individuals is Satan himself. In Ephesians chapter two verses one and two, Paul said, You he made alive who were dead in trespasses and sins in which you once walked according to the course of this world, according to the prince of the power of the air, the spirit who now works in the sons of disobedience. The spirit who now works within the sons of disobedience. You see, everything he does is intended to usurp and undermine God's designs as well as his desires. Jesus said it like this in John 10 verse 10. He said, The thief comes only to steal and kill and destroy. But he went on to say, I have come that they may have life and have it to the full. This is something we as believers who read our Bibles, we see and we understand. We see that Satan will continue to oppose the Lord, but we know that God will overcome his efforts as well as his rule. And it's so sure that John writes as if the event has already taken place. Notice in verse 15, how he says the kingdoms of this world have become the kingdoms of our Lord and of his Christ. Now as I was preparing the study, I used various commentators and one of the writers made comment on the words have become. And he said this, he said the verb tense means that this is so certain it can be spoken of as already happening. Though the event is in the future, it is so certain it is described as actual fact. And heaven rejoices. Heaven rejoices over the fact that God's rule is assured. Heaven rejoices because Jesus is going to reign forever. And once Jesus begins to reign, it will never end. In Luke chapter 1 verses 31 through 33, Gabriel the angel was speaking to Mary, the mother of Jesus. And Gabriel said, behold, you will conceive in your womb and bring forth a son. And shall call his name Jesus. He will be great and will be called the son of the highest. And the Lord God will give him the throne of his father, David. And he will reign over the house of Jacob forever and of his kingdom. There will be no end. And so there's this praise and worship that's going on in verse 16 of chapter 11.  Oh, I'm sorry.  These elders that we see here, these 24 elders were mentioned in chapters 4 as well as chapter 5. And they have eagerly awaited Jesus taking the earth away from Satan. And now you see them rejoicing. They rejoice because Jesus is going to reign. That prayer, thy kingdom come. Well, that prayer is about to be fulfilled. In verse 17, we give you thanks, oh Lord God Almighty, who is and was and who is to come.  We give you thanks because you dwell in eternity. We give you thanks because you will reign. But how do the nations respond? Verse 18, the nations were angry. Your wrath has come. And the time of the dead that they should be judged.  Now, earlier we had seen that the people had become afraid at what was taking place. We had read that a tenth of Jerusalem had fallen, that 7,000 people were killed, and that the people began to fear. But here in verse 18, they're enraged. They're enraged at the Lord, and now they're defiant towards Him. So what is God's response? Well, your wrath has come. His wrath is not yet exhausted. But it is as certain as if it had been completed at that time. You see, when His kingdom comes, the wicked dead will be judged, and the righteous will be rewarded. We'll see that more clearly in chapter 20. Notice in verse 19, it says, the temple of God was opened in heaven. The ark of His covenant was seen in His temple. There were lightnings, noises, thunderings and earthquake and great hail. And so the temple of God was opened in heaven, and the ark of His covenant was seen. That's where God dwells. The ark symbolizes that God's promises are now being fully realized. And it says in verse 19, there were lightnings and noises, thunderings and earthquake, great hail. For those who reject God's judgment is being poured out. We're going to see that more clearly in chapter 16. And so as this draws to a conclusion, we pick up at verse 1 in chapter 12. And John says this. Now, a great sign appeared in heaven. A woman clothed with the sun, with the moon under her feet. And on her head, a garland of 12 stars. Then being with child, she cried out in labor and in pain to give birth. And another sign appeared in heaven behold, a great fiery red dragon having seven heads and ten horns and seven diadems on his heads. His tail drew a third of the stars of heaven and threw them to the earth. And the dragon stood before the woman who was ready to give birth to devour her child as soon as it was born.   Then the woman fled into the wilderness where she has a place prepared by God that they should feed her there 1,260 days, which makes up three and a half years. So chapter 11 proclaims the sounding of the seventh trumpet, but the effects are going to be found later in chapter 15 through 18. But chapters 12 through 14 will give us a deeper look at the things that have already been spoken of in chapters 6 through 11. What we have here is a picture of Satan's attempt to resist God's judgments. And it reveals his attempt to circumvent God's purposes that are realized through his son. And so that's what we'll be looking at here in chapter 12. And so we begin at verse 1 where it says a great sign appeared in heaven. It's a woman clothed with the sun and the moon stars. So when he says a great sign just to give you a little information, that appears noticed in heaven. But it's speaking of events that take place on earth. What we're going to have is a panorama, a panorama of Jewish history and Satan's war that he has had against God. Now he is speaking here concerning signs. And this is the first of seven signs in the last half of the book of Revelation. This sign is referred to in verse 1 as a great sign. And John will use the word great four more times because he wants to emphasize the significance of what's taking place. So what he sees is a great sign. Now notice it says in verse 1 a great sign appeared in heaven. A woman clothed with the sun, with the moon under her feet and on her head a garland of 12 stars. And so he speaks concerning this sign. This sign. He's not seeing a literal woman. In verse 17 it'll speak concerning her offspring. And it's not literal offspring per se. What this woman is is representing. And this woman is representing the nation of Israel. Though Israel has been unfaithful, God is restoring her to himself. When you read the book of Hosea, it's a book that really speaks concerning the unfaithfulness of Israel. And he speaks of her as being his wife who's been unfaithful. And so he's seeing a woman, this woman symbolizing the nation. And it speaks concerning a great sign. And the question has to be asked, well when he says a great sign appeared in heaven and then describes it as a woman clothed with the sun, etc. What is this great sign? It's the miracle. It's a miracle of the nation of Israel. In Daniel chapter 9 verses 27 and 28, Israel plays a major part in what is called the tribulation. And they have what is called a 70 week prophecy. His 70th week in that prophecy concerns Israel as she goes through the tribulation. You see, this is a miracle, a miracle of Israel. The nation that truly has been a sign and a witness of God's existence is Israel. In Isaiah 43 verse 10, it says, you are my witnesses, sayeth the Lord, and my servant whom I have chosen, that you may know and believe me and understand that I am he. Before me there was no God form, nor shall there be after me. The nation of Israel is the sign. It's a witness of the existence of God. You see, the fact that there's even a nation of Israel today is a miracle by itself. No other of the ancient peoples that you read of in Scripture have ever been dispersed and regathered. And you could read in your Bible of all of these people, different people. There are seven great nations and all that are spoken of. And God speaks of the Canaanites and the Parasites. He speaks of Jebusites and Malachites. He speaks of the various aites throughout the Scripture. There are all kinds of aites. And then there's the salulites. You usually see the salulites in gyms. But anyway, I love saying that. I don't know why. So many aites, uptites, out-of-sight, salulites, Israelites. When has it ever happened that a nation has been dispersed throughout the world and regathered? When has that ever happened? Where are the Philistines today? Where are these different peoples? You read them in your Bible. You read of them. All of these people. Where are they? The miracle of Israel. There are books. I had a book. I was in a comparative religions class years ago now. And I had to read a textbook that was called The Miracle of Israel. The Miracle of Israel. And it wasn't even a Christian college. It was a secular college. But part of the textbooks that I had to read was related to what was called The Miracle of Israel. Because it really is an amazing thing that you have a nation whose people had been scattered all around the known world at that time. That in 1948 became a nation once again. Don't take that for granted. Don't think that that is something that is normal. It isn't. It's a miracle. And so there have never been any other ancient peoples that have been dispersed and then regathered and made once again into a nation. This woman that we're looking at symbolizes Israel. And again, Israel in the Old Testament is often identified as a woman. It's actually what is called a common metaphor in the Old Testament. She's referred to as the wife of God. She's also spoken of as an adulteress. So a feminine application to the nation of Israel is found in the Old Testament. And so what we're looking at is the woman. A great sign appeared in heaven, a woman. And this woman would have been the regathering of Israel. And so it says in verse one that she's clothed with the sun. So being clothed with the sun obviously reveals the glory of God that has been given to the nation. And Psalm 33 verse 12, it says, blessed is the nation whose God is the Lord, the people he has chosen as his own inheritance. Clothed with the sun, God's glory. The sun, moon and stars reminds us of a portion in the book of Genesis concerning a young man named Joseph. In Genesis 37, 9 and 10, the Bible tells us that Joseph had dreamed, still another dream, told it to his brothers and said, look, I've dreamed another dream. And this time the sun, the moon and the 11 stars bowed down to me. So he told it to his father and his brothers and his father rebuked him and said to him, what is this dream that you've dreamed?  And Joseph was part of the lineage of Abraham and Israel was going to be coming from Abraham. And so when Joseph is speaking this way, he's speaking concerning the nation and all. And so the father gets upset. And he says, what are you saying?  So this represents the nation of Israel. It says in verse two, being with child should cry out in labor and in pain to give birth. Cry out in labor and pain. Israel has a history of painful persecution. And Satan continues his onslaught on the nation. Even as the nation today is in pain during the tribulation, the persecution, the persecution increases. I was just reading of some Jewish people in Argentina who were driving and people were pulling up next to them and yelling anti-Jewish things at them and all. The persecution continues, synagogues continue to be vandalized and all. Antisemitism is still in existence obviously and isn't continuing to increase. I'll say something about that in just a moment. Again, verse three. Verse three says, another sign appeared in heaven, behold, a great fiery red dragon having seven heads, ten horns, seven diadems, a diadem is a crown, seven diadems on his heads. And so another sign appears and it's a great fiery red dragon. Well, verse nine tells us who this dragon is. We'll see that in a moment. It is Satan and Satan is red with blood and destruction. So the power behind anti-Christ is revealed. It is Satan. And John 8.44, Jesus said it like this. He said, you are of your father, the devil and the desires of your father you want to do. He was a murderer from the beginning and does not stand in the truth because there is no truth in him. When he speaks a lie, he speaks from his own resources for he is a liar and the father of it. So this power is Satan. Notice he has seven heads, ten horns and seven crowns. That's a way of expressing or revealing his kingdom. Now seven heads with seven crowns represents world empires that have been energized and written. And when you see in the Old Testament these great nations, you can see these nations, these seven crowns. You have Egypt and Assyria. You have Babylon. You have Middle Persia, Greece, Rome. And the seventh will be the future kingdom of anti-Christ. We'll see that in chapter 17. Anti-Christ future kingdom will be a ten nation confederacy symbolized by horns. I mentioned to you that in Scripture one horn speaks of strength or power. So anti-Christ future kingdom will be a ten nation confederacy symbolized by the horns. Again that is predicted by Daniel the Old Testament prophet. In the book of Daniel chapter 7 24 through 26, it says it this way. The ten horns are ten kings who shall arise from this kingdom and another shall rise after them. He shall be different from the first ones and shall subdue three kings. He shall speak pompous words against the most high. Shall persecute the saints of the most high and shall intend to change times and law. Then the saints shall be given into his hand for a time and times and half a time. That's three and a half years. But the court shall be seated. They shall take away his dominion to consume and destroy it forever. Notice in verse 4. His tail drew a third of the stars of heaven through them to the earth. And the dragon stood before the woman who was ready to give birth to devour her child as soon as it was born. Now when it speaks of his tail drawing a third of the stars, the reference to angels in verse 7 as well as verse 9 reveals these stars to actually be angels. It says a third. The amount is not revealed but it's vast. And these are those who followed Satan when he rebelled. Now notice in verse 4 that the dragon stood before the woman ready to devour her child. And that's a picture of his constant attempt to destroy God's people and resist Messiah. You need to remember that Satan has a deep hatred for Israel because God loves Israel and Israel had Messiah. Messiah was born from Israel. So the enemy hates and resists the people of God. The enemy hates the nation of Israel. The enemy hates Jesus Christ. You see Satan has a deep hatred for Israel because God loves it. When you read your Bible, remember in the time of Moses how Pharaoh hated the Jews or in the book of Esther how Haman hated them enough to try and obliterate them as a people. And in our day I was looking at this week in our day, Israel is hated and anti-Semitism exists worldwide. The Palestinian territories are the most anti-Semitic territories in the world, number one. But they are followed in order by Iraq and Yemen, Algeria, Libya, Tunisia, Kuwait, Bahrain, Jordan and Morocco. Those are all nations that hate Israel and want Israel to be obliterated. So the nations today continue, many nations today continue hating the nation of Israel. But this is something we've seen in the old as well as the New Testament, the hatred. When Jesus was born, Satan tried to kill Messiah through Herod. Satan tried to get the people of Nazareth to kill Jesus by pushing him off of a hill. Satan instigated his death because he had healed on the Sabbath and called himself God's Son. He actually had instigated people to want to stone Jesus to death and he also provoked people to try to stone him to death on more than one occasion.  But notice in verse five she bore a male child who was to rule all nations. Israel gave the world Messiah.  He is the descendant of David and he is the ruler over the nations. In Romans nine three through five it says, Paul says, I could wish that I myself were a curse from Christ for my brethren, my countrymen according to the flesh who are Israelites to whom pertain the adoption, the glory, the covenants, the given of the law, the service of God and the promises of whom are the fathers and from whom according to the flesh Christ came who is over all the eternally blessed God. Amen. And so he's taken of Christ and notice this, Jesus rules with what is called a rod of iron. A rod of iron is a picture of strength and authority. He's going to rule. He will rule in the millennium. He's going to end individual nations. He's going to unify all underneath him and so he has a rule. A rod of iron is a rule that cannot be broken and he's going to deal with all sin and he's going to put down any rebellion.  What is that referring to? That would be referring to Jesus' ascension after he had died and been buried and resurrected caught up to his throne. In Psalm chapter 2 verses 6 through 9 it says, yet I have set my king on my holy hill of Zion I will declare the decree the Lord has said to me you are my son today I have begotten you ask of me and I will give you the nations for your inheritance the ends of the earth for your possession you shall break them with a rod of iron you shall dash them to pieces like a potter's vessel and so what we have here is a picture of the one who rules Jesus Christ and we see his ascension in verse 9 it says when he had spoken these things while they watched he was taken up a cloud received him out of their sight and so it says her child was caught up to God and his throne is a picture of his ascension Satan couldn't stop Jesus from saving people but though he can't stop him from doing that that doesn't mean he can't attack Satan has instigated hatred for Jews throughout their history he continues doing so to this day and during the tribulation he'll do his best to destroy the Jews but God is going to protect them notice verse 6 the woman fled into the wilderness where she has a place prepared by God that they should feed her there 1260 days and 60 days 3.5 years Israel will be protected in Jordan it would seem during the last 3.5 years of the tribulation notice how it says in verse 6 the woman fled into the wilderness where she has a place prepared by God and she'll be protected for those 3.5 years we're going to look at that closely in a moment when we get to verse 13 and now we have war in heaven verse 7 look out in heaven Michael and his angels fought with the dragon and the dragon and his angels fought but they did not prevail nor was a place found for them in heaven any longer so the great dragon was cast out that serpent of old called the devil and Satan who deceives the whole world he was cast to the earth and his angels were cast out with him this is interesting here up until this time in the book of Revelation chapter 12 which is still in the future obviously Satan has had access to heaven all you need to do is read your Bible and you look at the book of Job for example and in Job chapters 1 and 2 you have Satan there speaking to God concerning God's servant Job and when God had the sons of God also referred to as angels are also referred to as sons of God Satan was there also when you look in the book of Zechariah in chapter 3 verses 1 and 2 Satan is shown to be there before God and so he has a continuing access and so in the future he will no longer have access you see Satan and his demons have actively opposed God and they have actively opposed his angels and they have actively opposed his people since the fall it's Satan who opposes evangelism it's Satan who oppresses believers it's Satan who instigates pollution into the church with sin and doctrinal error Satan and I don't want it to sound dramatic because I feel it so intensely I have to be careful how I present this to you but Satan hates you he hates you he hates God when you hear of all the evil that this world has that's not God doing it Satan's provoking us he's done it from the fall he has called God's goodness into question and his word into question from the beginning when he came and he spoke to Eve he asked the question has God said from the very beginning he has questioned what God's word says and then he says he has not said that that's not what's going to happen he has done that from the beginning Satan hates God and he hates you you know the word of God teaches us how much God loved the world God so loved the world he gave his only begotten son God's intense love for you there's something else called Satan's he hates the gospel he does what he can to get it outlawed he does what he can to keep people assembling like we are right now he does he tries to keep us from assembling right now I mentioned to you of a friend of mine Don McClure's son Michael I know Michael also but Michael's a pastor of Calvary Chapel San Jose and Calvary Chapel San Jose I was mentioning just last week because they're doing what you're doing right now they meet together and as their fines have gone up to 1.8 million dollars for just gathering together as we are right now and you know what Michael's doing the pastor he's preaching the gospel and he's still in his pulpit and he's ministering to his people because the enemy doesn't want the word to go forth but Michael knows that God's word sets people free and that's what he's doing and that's what we're doing important in the word of God the enemy oppresses it he wants to keep the word of God from being spoken he opposes evangelism he tries to find ways to keep the word of God from being put out I've seen it even in facebook and all of that where somebody posts something a scripture and they take it down this goes against our policy I've seen that you've seen that if you use social media that's happening now it happens now we don't want to hear about this and so he opposes evangelism he most certainly does and he also oppresses believers he attacks and tries to destroy constantly and he pollutes the church he dumps it down and he causes the church to because the message is being polluted he causes those who claim to be Christians perhaps they are I'm not saying by not having the word of God taught in many places what happens is you have people who are Christian in name only they've never even had a relationship with Jesus Christ they never known him they've never had the sins forgiven they go to church on Sunday but they don't practice what they learn throughout the week that's been going on from the beginning really the enemy has been oppressing and opposing and polluting all along and believers must be aware of this in 1 Peter 5 8 and 9 it says be sober be vigilant because your adversary the devil walks around like a roaring lion seeking whom he may devour resist him steadfast in the faith knowing that the same sufferings are experienced by your brotherhood in the world he is seeking whom he may devour resist him withstand him resist him withstand him in the faith it's not simply saying I have faith and therefore my faith is going to move a mountain very often in the New Testament the term the faith is not speaking of my subjective faith it's speaking of God's word which is the faith that has been once for all time delivered to us it's the word of God the enemy was trying to attempt Christ and Jesus with each one of the temptations said it is written it is written because he used the sword of the spirit which is the word of God and so if you are not in the word of God and you're not growing in the word of God and knowing the word of God then the enemy will come and he'll use his devices to undermine God's work in you and you can be deceived by the things that he's saying so we resist him by staying steadfast in the word of God and in a time in the church where we have many people who are very popular because of personality sadly many times the personality is overshadowing the word of God so the word of God is what we are to stand in because we have to be sober and we have to be on the alert vigilant because he's walking out to destroy and so we have a war that's taking place here and it says in verse 7 war broke out in heaven Michael and his angels fought with the dragon there's been a continual war between demons and angels but now it goes full scale the spiritual war is going to take part this will reach its peak rather during the tribulation you see one of the things that we don't understand I mean when you read this and I'll read it again just to try and make a point it says verse 7 war broke out in heaven Michael and his angels fought with the dragon the dragon and his angels fought they didn't prevail nor was a place found for them in heaven any longer it's easy just to read that not imagine what that is because we all of us we don't really realize how powerful angels are we really don't I remember hearing of a guy who was talking to a well-known teacher this guy was a pastor talking to a well-known teacher named John MacArthur and the guy said to John MacArthur every morning when I shave Jesus stands next to me and we have a conversation and then he asked John do you believe this and John says that he looked at him and he says no I don't but that's not what troubles me what troubles me is I think you do there are people who have minimized the unbelievable power and just what angels are you know we say angels are on assignment or you know we minimize let me give you something in scripture in bible teaches us they're incredibly powerful and second kings Hezekiah the king of Judah was being threatened by the king of Assyria and what happens is the Assyrian king sent his army to destroy the city of Jerusalem and Hezekiah was greatly afraid because the Assyrians were the dominant power of his day so Hezekiah did the wise thing he sent to the prophet Isaiah and he said I'm concerned what's taking place and Isaiah sends word back and says don't worry about it God has this and in 2 Kings chapter 19 verse 35 it says it came to pass on a certain night that the angel of the Lord went out and killed in the camp of the Assyrians 185,000 and when people arose early in the morning there were the corpses all dead one angel 185,000 he took out how powerful do you think angels are how powerful they're amazingly powerful so I can't envision this war in heaven I can't envision how it must be just on a scale that's unparalleled unparalleled but what it says to us in verse 8 is they didn't prevail and it also says nor was a place found for them in heaven any longer this all out war that will take place while Satan tries to keep Jesus from establishing his kingdom but it isn't going to succeed you see up until this time it appears that demons also had access to heaven but heaven is now being thoroughly purged it's off limits to these demons they're all cast out the exact time of this isn't set most likely is going to occur during the middle of the tribulation so it says in verse 9 the great dragon was cast out and is named that serpent of old called the devil and Satan the dragon, the serpent the devil, Satan he's the dragon he's the serpent the serpent of old would speak of the serpent he's the devil the word devil in the greek is diabolos and diabolos means slanderer false accuser he's called satan because satan literally means the adversary and in verse 9 it says that this slanderer adversary, the serpent is the deceiver of the whole world he's the one who leads the world astray he's the one who misleads people into false security but satan and his host are cast down into the earth joining other demons that are already there we've already seen that demons have been released from the abuso, the abyss there's an additional 200 million that we've seen in chapter 9 there are millions and these evil forces combine and create unimaginable pain and terror on earth and notice in verse 9 he's the one who is guilty of deceiving the whole world he's the one who deceives he's the one who has spiritually kept people blind he's the one who instigates people to say you can have religion but don't be so exclusive you see, you Christians think I have a problem with you with, it's very simple as you act as if you're exclusive an exclusive club but the fact is Jesus said I am the way, the truth and the life no man comes to the Father but by me we did not invent that that's what he told us Peter said there's no other name given amongst men whereby we must be saved Peter said that it isn't something we decided to have our Christian club and keep everybody out we're all exclusive, no we're welcoming we want people to be part of the family of God we want people to be saved but it's the enemy who keeps the world deceived in history and forth Paul said it like this he said even if our gospel is veiled it's veiled to those who are perishing whose minds the God of this age has blinded who do not believe lest the light of the gospel of the glory of Christ who is the image of God she shone on them they refuse to believe and so as all of this is taking place verse 10 I heard a loud voice saying in heaven now salvation and strength and the kingdom of our God and the power of his Christ have come for the accuser of our brethren who accused them before our God day and night has been cast down let me spend a moment with you the accuser of our brethren I may have some lawyers in here and you'll understand this the word accuser is actually could be used as a legal term the accuser of our brethren can also be looked at as being the prosecuting attorney the one who brings the case against the defendant and so the word adversary when he speaks of the accuser of our brethren the adversary the adversary is the way of speaking of a prosecuting attorney and so it's like this guys the enemy is before the throne of God and notice it says he accused before the throne of God both day and night there's a constant flow of accusations you may think of yourself as being inconsequential but you're really not because when if you're a believer in Christ if you gave your heart to Christ if you've been transformed you have become his enemy and he thinks that the adversary will do is accuse you before the throne and you think me little oh me yes little oh you and so he will say that one claims to be your follower but did you see the way he got mad at that guy who cut him off on the freeway as he's on his way to work did you see how he is watching those people rolling through stop signs condemning every one of them for not stopping he treated his wife how they were fighting before they got to church and argue until they got to the holy site the driveway and suddenly praise God did you see that and he does that did you see the way did you hear the way and that's what he means he is constantly before God he just constantly is saying something about God's children that's what he does with you that's what he does with me and no I'm not kind of weird paranoid somebody's following me around no that is spiritually true the enemy accuses you before the throne of God night and day not you independently but perhaps sometimes your name may come up in his lips I don't know he certainly knew who Job was because God said have you considered my servant Job and Satan said well of course yeah because God had said where have you been on earth what does that mean God was saying I know what you've been up to you tell me and Satan when you look at it in the original language Satan is saying I've been up to no good finding someone to find fault in have you considered my servant Job oh yeah of course I have that's what he does all you need to do is take everything he owns all you need to do is touch his skin he'll curse you to your faith and what happens well we've been going through Job even his own wife begins to say how long will you hold on to your integrity curse God and die then his three buddies show up for ten days they're quiet and that's a good thing because once they open their mouth we have nothing but problems the rest of Job till God speaks and so what does the enemy do guys the enemy accuses you before the throne of God night and day these are your believers these are your believers you think you can defeat me with that motley crew those weaklings they can't even pray for an hour those people and God's listening as the judge but John in first John says to us we have an advocate Jesus Christ the righteous adversary is the prosecuting attorney John says but we have an advocate our advocate all of you know what an advocate is he's our defense attorney so when the enemy is saying you see that this is what they did blah blah blah they're guilty they did that and you know it then Jesus walks in I like that kind of courtroom drama picture he walks in and he says father may I say something he's our defense attorney he never loses and he says that one that's mine and God's mighty gavel hits that table and he says not guilty see that's what you have in Christ that's what you have in Christ if any man sins and we confess our sin God is faithful and just to forgive us our sin and to cleanse us from all unrighteousness I am a new creation I have been born again by the spirit of God the blood of Christ has washed and cleansed me I belong to him my name is written in the Lamb's Book of Life and no matter what the enemy says Jesus just says he's not guilty and I have life because of that see so the enemy can do all he wants but he cannot win and thank you Jesus for that thank you that he cannot win and we have overcome him and notice what it says in verse 11 it says they overcame him by the blood of the Lamb by the word of their testimony they did not love their lives to the death they overcame him by the blood salvation nullifies Satan's accusations they overcame him by the word which combats and exposes his lies and false promises and they overcome because they love not their lives which speaks of their total dedication to Jesus Christ we are saved because of him and we live for him therefore verse 12 rejoice oh heavens and you who dwell in them woe to the inhabitants of the earth and the sea for the devil has come down to you having great wrath he knows that he has a short time he's going to work harder he only has in this point three and a half years to go and he's working overtime and so in verse 13 roll into the conclusion now when the dragon saw that he had been cast to the earth he persecuted the woman who gave birth to the male child but the woman was given two wings of a great eagle that she might fly into the wilderness to her place where she's nourished for a time and times and half a time from the presence of the serpent three and a half years so the serpent spewed water out of his mouth like a flood after the woman that he might cause her to be carried away by the flood but the earth helped the woman the earth opened its mouth and swallowed up the flood which the dragon had spewed out of his mouth the dragon was enraged with the woman he went to make war with the rest of her offspring who keep the commandments of God and have the testimony of Jesus Christ Satan unleashes his fury he's going to do his best to exterminate the Jews but Israel flies to a place of protection now Jesus spoke of this when he was teaching his men about the last days it's in Matthew 24 verses 15 through 18 he said when you see the abomination of desolation spoken of by Daniel the prophet standing in the holy place whoever reads let him understand then let those who are in Judea flee to the mountains let him who is on the house top not go down to take anything out of his house and let him who is in the field not go back to get his clothes there are many conservative scholars who believe that the place that is being spoken of here is Jordan and the location in Jordan Petra you see in the Old Testament book of Daniel chapter 11 verse 41 that verse reads that antichrist shall also enter the glorious land and many countries shall be overthrown but these shall escape from his hand Edom Moab is the ancient name for Jordan and the prominent people of Ammon in the Old Testament book of Isaiah chapter 16 verses 1 through 4 the Lamb to the ruler of the land from Sela which is Petra to the wilderness to the mount of the daughter of Zion for it shall be as a wandering bird thrown out of the nest so shall be the daughters of Moab the daughters of Jordan at the fords of the Arnon take counsel, execute judgment make your shadow like the night in the middle of the day hide the outcast do not betray him who escapes let my outcast dwell with you, O Moab Jordan, be a shelter to them from the face of the spoiler for the extortioner is at an end devastation ceases your oppressors are consumed out of the land we've been to Petra more than one time we've been to Petra and we've seen the place that they have this city there Petra and many scholars believe there will be a strategic place that the Lord uses to let the outcast dwell Petra and then finally the dragon was enraged he goes after believers who are holding fast to Christ know this for sure he doesn't let up he doesn't let up sometimes his onslaught against you may feel like a wave after wave after wave and you just endure one attack and then you come to the top only to have another one if you're going through that I it's not unusual the enemy goes after us because he wants to make us inconsequential one of the things that I discovered in this biblical you didn't make this up is that going through trials has a refining effect if you've ever said to the Lord I want to be used by you now close with this if you've ever said to the Lord I want to be used by you and then suddenly it seems like everything's going wrong has that happened to you oh god oh I love you so much Jesus I've been going through that for a long time I kind of understand that when I gave my heart to Christ to where I am right now I understand that I'm going to follow you Lord oh really the enemy will go he works over time see I've discovered the enemy doesn't necessarily concern himself too much with the backslider doesn't really concern himself too much with the carnal person carnal Christians make a great impact on unbelievers and makes unbelievers not want anything to do with Jesus you have Jesus in your life hasn't changed you at all we actually when we're carnal and backsliding and living lives like that loving our sin more than we love him we're a great tool in his hand but when you're on fire when you say you know what Lord no matter what I'm going to follow you but you get to discover what no matter what means and I've been doing that I can tell you that for 50 years Lord I want to serve you oh really there comes a refining fire but after you go through the refining fire your faith has been purified your prayer has been answered because you become when you want it to be you just didn't know it was going to come that way when I first was saying I want to be used by you I kind of thought he'd say great here's an office talk about me thank you Jesus but it didn't come that way it came through a lot of purging a lot of trials a lot of and it'll be real a lot of pain a lot of pain because he wanted to break my hardened heart so that it would be soft and hardened hearts need to be broken if they're going to be used by God always understand that until you know you have nothing but him you're not going to be used by him the way he wants to use you understand that so if you're saying God use me understand understand it's not something scary because some of you are saying I ain't I'm never going to do that I'm not saying that you just took me out of the mission field no that may be a good thing God use me because the one the Lord uses he first breaks and then after he breaks he shapes and after he shapes he uses he's going to break you and he's going to shape you but he is also going to use you when you see him face to face you're not going to whine and cry oh it was so hard I wanted that car I wanted that guy no you didn't I wanted that girl I knew she was the one you ended up giving me this one no that's how I work best with you at the end there's no complaining in heaven there are no tears there is no sorrow there is no joy there is only joy because he fashioned you and he used you and guess what he even rewards you for just doing what you should have done all along what a faithful god we serve what a wonderful god we serve


This research has developed a novel nanoplatform consisting of mulberry leaf-derived nanoparticles loaded with resveratrol nanocrystals and fluorinated pleuronic polymer. The nanoplatform can be used to treat ulcerative colitis through its ability to improve mucus penetration, reduce inflammation, and restore integrity of the intestinal wall. This article was authored by Wenjin Yang, Yang Ma, Hading Su, and others.