And first of all, 1.1 reception of guests. Welcome, welcome. A lot of people here tonight. Thank you for coming. We have under 1.2 agenda reviewing revisions. Are there any revisions? OK. OK, would you like to do that first? We'll get, how about we put that on as a discussion item bill as the first item for discussion. We'll keep that as 3.1. And bump the rest of them down. Before we do that, any public comments or correspondence? Anyone wants to bring up the start of the meeting? Yeah, I don't think there's anything that we won't cover again under the Act 46 update here. Bill did walk through the different things to be voted on on Tuesday the 19th. And there's a handout for that if you didn't get it. So we can get you a copy of that handout. And I'll discuss this again. But just very generally, the lawsuit is up in the air. The legislature is up in the air. We don't know what might happen. But we are going to have our organizational meeting on the there is a court meeting on Friday. Something could possibly happen on Friday. Yep. Any other public comments or correspondence? Future meetings. Like I said, we have the organizational meeting on the 19th. This is at the U32 auditorium. Bill, just remind me, I think I have on my calendar. Not everyone is on these committees, but a transition board meeting on the 20th and an articles meeting on the 21st. Down below under 3.3 calendar planning, I think we'll also want to talk about town meeting day, pre-town meeting, and any budget information meetings if any we want to try to put together. Consent agenda, approve the minutes. We have three sets of minutes to approve. January 7th, January 28th, and January 29th. We're all of our special meetings, scrambling to put together a local rolling budget. I'm assuming everyone's had a chance to take a look at those. If not, you can take a few more minutes. And then I would entertain a motion to approve those as a group or if you have individual corrections you'd like to make, you can pull out any movement. Okay, is there a second? Any discussion? Those in favor of approving the three sets of minutes are signified by saying aye. Aye. As opposed, no. The ayes have it, the motion carries and those three sets of minutes are approved. Now we'll go into the discussion agenda. Bill has asked that we talk about contract negotiations. It's still in process. It's not officially ratified yet. So we'd like to have a motion to go into executive session to briefly talk about the status of contract negotiations. Go into executive associate discussed contract negotiations. In favor say aye. Aye. And the last members of the public to step outside will make this as quick as possible. We heard chocolate. Heard the word chocolate and said open the door. Yes, please. Can you talk to us about the town sewer easement, which is item 3.2? So any concerns, either of you, any concerns about when construction might take place or where it is on the school property or anything like that we need to be thinking about? Sounds like it's fairly close to the back of the school. We made it fairly clear last time that we would prefer it. I think it'd be a good idea to have whoever their representative would always find and see it. Here's where we have to interrupt and see. And it's good digging it won't take a minute. You've been digging out there recently? Not recently, but I'll say to you for caution. And we've had an attorney review it. Any concern about the sign up by this board and the timing of the sign up so that it's done before? When it's complete, I forgot the act. Bill, I guess in town meeting preparation, will either you or Laurie be available for pre-town meeting or town meeting since we have a budget presentation that we need to make? I can't do it. They put together the PowerPoint and then the chair would marry. So we can talk more about that about outreach. But it's his way to another meeting. We've made a little bit of a mess of this agenda, but I think we've covered contract negotiation. And just for clarity in the minutes, I think we could say that that was 3.1A. As contract negotiation, we went into executive session. It came out to action. 3.1B is town meeting preparation. Anything for further discussion for town meeting preparation? Knowing that Bill will be there or Laurie knowing that we're going to get a lot of questions, 46, about the budget itself. And we have yet to really do a lot of outreach, 46, which is problematic. And so Bill, as our superintendent, is only opening meeting as all these perpetrators are allowed to do. And then we will somehow be empowered to do that. It's like we've been hearing a lot about it for quite some time. I think there are people in that group that saw the other room that are prepared to talk about it. And I think the same thing probably is true. We'll be sure that Bill is pre-talling the town meeting at least to give him a thumbnail. And I think it's important. It'll be important for us, I believe, to talk about our budget in relation to that. My understanding is that we're not required to present a budget compare and present a Berlin budget. That's a good question. It's a related question. According to the sequence and the act and the sequence of implementation of the act, the new budget will replace Berlin's and all the other budgets. And therefore, we vote a local. Now, authority has spent it as one thing, presenting a budget to ask for an amount is another. But we have done that. We have done that. So we should be able to, and I think that shows good faith on part four. It doesn't mean that our budget either will be approved or that it will be meaningful in any way. If a larger budget, who's up for this? We have to explain all these things on town meeting today. You can send them to me. And it's, I think, is it Calis that kind of reversed course? They were gonna present an individual budget and then decided middle six just recently. So because they thought it would be more confusing to have a local budget and then have another vote if it happened. So difference of opinion in different towns, we wanted to present the local budget. We felt we had a statutory obligation to do it despite what A.O.E. was saying. Responsibility to, at least an opportunity to talk to the Berlin voters and say, here's what we're planning to do. Because for the most part, it's just all the local budgets getting rolled up into one if there is a consolidation. It's everybody believe, every other town believing it's going to go to a consolidated district and we'll have a special vote. Yep. In a healthier way, there would end up being another vote. That's right. Or, or, emerge on it and that needs to happen before the way. That's correct. Anything else around town meeting preparation? So I think we should, we talked a little bit at our last special meeting when we approved the budget, the local budget about doing a very simple communication strategy of picking out three or, and I'm trying to remember what those elements were, but I think it was that we asked for a level funded budget. Our increase in expenses over last year was less than 3%, and I'm trying to remember what the other, because as warned, it's still, it has the mandatory language that talks about spending for equalized people and that it's 4.41% higher than spending for the current year, which is. We still don't have the current equalized people. Those numbers may change. Input is the how, you know, the best way to message this budget out. In the last year, we did an explanation versus that complicated formula of the different factors that are involved in calculating budgets, you know, half of which we don't have control as we do. There was, we talked more than half by three quarters. The common level of appraisal is down in the town, so that accounts for some of it. State-wide education tax rate is set by the state. There's the yield, anything that we can control, and then there's the local budgets, you know, they made sure that was, that what we thought was a responsible level. This is in salaries and in comments. How did the mealing go? The last time around? Did we get it under a postcard? I'm trying to remember. What do you say? I think we. A postcard meal? That'll get to the people who don't have, that you're talking about. It'll get to either or. Yeah, and I think we will do immediate outreach. Your news to now is always helpful and reaches a lot of people who start to reach out immediately. So I can put together a communication tool and also use that for things like pho-tronic ways to get the word out. And you also post that on the website. Where do you have a sense of residents who don't have cars organizing and mailing? I don't think we get the stickers. What are the typical ways that we engage residents? So everything you've mentioned. Yep, the things we've mentioned. Just because I don't know. Although I think the U32 budget is a very, from what we've seen so far. And that's in the town report here. So the U32 budget and the defined tax rate won't be in, there's an estimate. Okay, so with U32 and Berlin's budgets as proposed. Okay. This one's better than the merch one. Anything else under town meeting preparation? On at 3.2 we covered the town sewer easement. 3.3 is calendar planning. Like we said, we've got three meetings happening next week. The organizational meeting, the transition board meeting and the articles committee meetings. Tuesday, Wednesday, Thursday. Transition board. So that's the board chair and the board secretary which is me and Vera. I think Bill also said there's a transition board meeting immediately after the organizational meeting. Right after that meeting, the transition to get us through Tuesday to VCSU, the Wednesday, the Tuesday one is definitely here in the auditorium. Tuesday organization. You know the resources page, any resources? The resources. Yeah, I don't see them on articles. So this is articles group that's been trying to iron out some articles that we would possibly put before. At this point it would be a recommendation rather than all the times. And it's really trying to send a message to the new unified board that this is what the towns want. They could still go a different way. It's essentially customized in the district. And at every turn when we're talking about coming up with different articles, we're told you can't modify this when you can't modify that one. It's in statute, state board is interpreted this way. So we've really struggled with that. Even if we vote on this, we're not saying we want it. Do you have a microphone that's for you, Pastor? It's for you. I just wanted to add that one of the other articles, as an example of what we're struggling with, one is about school closures. And the default articles say there shall be no school closures, I think for the first two years. And we're debating whether we want to modify that after the two years, it can be a vote of the entire district can close it. We want to modify that in any way to make it harder to close a particular town's school. Peter and I have had different opinions on this. A lot of different opinions around the table on this. Would you want to ever close a school over a town's objection? And one of the comments is a town could hold your hostage where they're down to just a couple of students and they still want to keep their school open. We as a whole have to pay for that. So I shouldn't be able to do it over there. Dare they demand sovereignty? I know. So it's a really tricky question for people come at it from a lot of different angles. That's a good question. The budget items cannot be changed, but originally you might please. So it's unclear that it has to be used for certain purpose. There's been so many amendments to this, it's worried. Whether it's fulfilled, it's... Also, it's related to the fire station. So we're in touch with the folks at the fire station, the prior two or after. So we've wandered from calendar planning into Act 46, I believe. So I think that that's the update that we know about what's gonna happen to Act 46. There's a lot that's gonna happen in the next couple of weeks. There's a status meeting on the court case on Friday. So something could come out of that. There's the legislature where the Senate could take up the House passage of a bill that extended the timeline for implementation for one year for this district. So they kind of parsed through the districts that are part of the lawsuit. And we were in the group that they said could have another year. I didn't specifically heard why they thought that was good for us and not good for other towns, but somebody made this decision. Six or eight of them. Yep. I have no idea what the Senate will do with it. I don't think anyone does. I think it's, I've heard different things. We'll see how that one plays out and how soon, but it's not gonna happen. There's a group of people who are very active in the State House from this district. I think they have Janet Ansel's ear, for sure. But I have heard others saying, we'll give them another year, but there's no way we're undoing this. They're merging in a year. They haven't given us much other than to say, give you a little more time to get ready for that. It's the law. What's the answer we got? I think it's there to stay. I went on. Yeah, right. Let's not forget that. I'm giving you the answer that we got. Okay, I'm sorry. That's all right. It's not what I believe. It's not that we'll want to stay. There's no place in law, especially if we're not police officers. That's one of the big... And it doesn't allow for that? It does not. Cannot. One budget. That's it. Oh, I see what you're saying. Yeah. Once it's consolidated, all physical property goes to the law. And that's been an issue for since 2015, suggested. I think the real difficulty in them going back in any way at this point is that a lot of towns said, oh, they had the incentives. They were afraid of what was going to happen to them. So they went ahead with it. So they've already done it. So they'll undo it for these towns that haven't gone along yet. These are doing their... Right, on that happy note. I'm sure. It doesn't sit in the law. I do think if you're going to talk to David Kelly, you should. There's a lot of different elements to that lawsuit. One of them is debt. Yeah, one of them is property transfer. They have 30-some towns represented, and they all have different facts on the ground. So that leaves us in a place where we're preparing for both situations, hopefully. Maybe merger is not happening. Maybe merger is happening in a year. Maybe merger is happening very, very soon. The plan for all those scenarios. And it leaves some... I just want to acknowledge again that it leaves the administration, the teachers. It leaves everybody in a bad place with this hanging over, this uncertainty hanging over them. And we certainly can appreciate that and to have a... We're proud that they can continue to focus on education while we're all running through this stuff. Anything else under the discussion agenda? So under 4.0, we have reports to the board. Sure, yep. Not to the local board. I know of a couple of people who I won't name, who may be interested in the merged board. And that's going to come around soon. That's one thing we did hear from Bill tonight that you may already be familiar with being in the town clerk's office, but that if this organizational meeting chooses as an April 2nd as the date, our annual meeting, that the petitions to be on the full board, that the merged board would be due on February 25th. Yeah. So I need to get that word out. You said we have the full board out for that petition. Yeah, the secretary of state's office, the town clerk's office has those petitions. So in other words, on the 19th... Pick the annual meeting, that's communicated to the two people. And I will have to do another petition? No, so you're running for the local board. Okay. You've already gotten your petition in, you are on the ballot, if I understand correctly. Okay. And so you and Vera will be on the ballot for the five positions. So after town meeting day, this board and the select board will need to... Who do they... Unless there's a right in candidate one of 20 signatures, something like that. Who would be 20 signatures on it? All in the same position. Oh. Correct. So they have to know. Why I was wondering, is anybody interested to try to help point that out? But so they could also be interested in the other? Sure. That's what I was asking. Okay, that's what you were asking. Got it. So yes, if you were interested in that. Okay.  I just did it. Could you sign this again? Yeah? Right. Vera does. She does. Vera's definitely does. All right. Nice to meet you, Nicole. Nicole's new to the board, but she's jumped right in. I'm good. You guys need people that have more history. Vera's got more history than any of us. Wow. Peter's got more history. And this history goes farther back. Who's got more history? Each of us. All of us. It's not the way it used to be. Can I ask who they, who do they appoint for the three vacancies if they're not free? Anybody who's interested. Anybody, like how do they determine? Where does that? If you just, like you. If anything, and you raise your hand, I hope you get a lift. Oh my God. It might be. If you make a phone call and somebody's going to tell you you need to actually write up something. This has been an answer. And I've got to make sure that I reach out to the select board and warn them that this is coming if they don't know already. Get it on their next meeting. Therefore, they're planning on keeping it on days to Thursday meetings. Yep. They realize that they should keep that Thursday meeting, but they won't necessarily have much money today. Okay, yeah. Yeah, yeah. That's what Bill said, yeah. Okay. I heard him say that also. That sounded like he thought there would still be one-on-one spending. He just didn't hear what he was talking about. Did he hear what he was talking about? Did he hear what he was talking about? No, in here. Oh. He said that. Okay. I think the organizational meeting could be a very long meeting, so it might be a very quick transitional board meeting after it would be my guess, and then maybe more business than I expected. But so then he also said in the particles meeting on Thursday. Yeah. But again, he also said that. SOS to Crystal. So reports to the board, 4.1 administration. Anything? Well, there was one in the carousel package. This is a big one. Oh, yes? Not the carousel, the bigger one. Yeah, I'm sorry. It was your first time. It's awesome. Okay. Page 40. Yep, page 40. So as usual, I'd like to... You got it, buddy. And if not, then through our nature trail, we also realize that we can get some facts out of a food service audit for regulation. Some of the more talked about art. I'll just say that I attended a really nice winter concert and the art show. And something you said at the beginning of that, I'm gonna put you on the spot a little bit. You said that this was the best school you'd ever worked in. And I was wondering what made you say that? Thanks for sharing that. It's really good to hear. Sure. A lot about having, but maybe it has been. Oh, that's definitely the goal. It's coming from, and there might be sources that you guys are... You think these were there? Did the kids ever able to integrate that with cooking? Taste the food, like cooking the food, I don't know. Well, we've done a lot of that most of the time with our own garden. We don't have anything on our action agenda. We do have approved board orders under 6.0. And I just wanna make sure in the call. So these are, I don't know if you've done this before, but these are the board orders. So these are all the expenses that we need to authorize. They send them out in advance so that we can. Once everybody has signed off on them, we need a motion to approve the 87... Is there a second? Any discussion? In favor of the motion, signified by saying aye. Oh, we did. Oh, so sorry, Laurie. Yep, let's go back to 4.2 finance and if there's anything you wanna point out to us there. Sorry about that. The only plan is I think it's setting aside money and capital fund on it and we have to do it. I would love it. So I think we just found a future agenda item. I would love to talk about it. The historical perspective, when I was on the board before we were talking about paving the park, the front was fine. Yeah, and I think there might be some... I think there might be some wetland issues with paving the parking lot, that's what I've heard. There would be drainage or runoff. You know, suddenly. Right around the mountain. Seriously. We'll put paving on there. Before we get off this, any other questions for Laurie about the... We have paving, any other future agenda items? Of course, we'll be talking about Act 46. Of course, we'll be talking about Town Meeting Day. Are there any school issues that we'll put aside since... I guess I'm just... Since 2005, things that were of utmost importance as a board member. I also was wondering about the discipline, not just the discipline program, but what was the other program Kelly was talking about? Yeah, and how is that working at our school? And what... Like, I don't know, do we have teachers participating in that, or... I just... Yeah. Maybe... Or is it enough to put on a future agenda item? Yeah, let's do that. Let's set it on the next agenda. We'll see. It wasn't, I will. No, it may have just been...


the comic weekly man the jolly comic weekly man and I'm here to read the funnies to you happy boys and honnies yes boys and girls it's comic weekly time and here I come right into your house to bring a little fun and happiness right out of the pages have popped the comic weekly straight into your living room your friend the comic weekly man the jolly comic weekly man hello a little miss honey how are you today I'm fine and I have another surprise for you oh that's wonderful what is it two more of my friends told me I should tell you that you're their favorite story teller so now will you read the funnies today especially so that I can tell them that I told you what they told me to tell you why certainly well what are their names Michael and Christopher well then we'll read the funnies today for Michael and Christopher and all of their friends fine now I can tell them I told you what they told me to tell you to read the funny pock the comic weekly very well I will in just a moment but before I do let's listen to this nice man now here we go with pock the comic weekly and on the first page hop along Cassidy magic words for the music please very well my lady six guns blazing as he thunders along give us music for hop along slow thought hoppy and his pals would lose their way in the rock maze and die there but fortunately topper missed hoppy and Nate hoppy followed the sound of toppers winning and found their way out hoppy and his pals pick up sloth's trail first picture second row hoppy says his mounts hoof prints with a dented shoe are still with us headed straight toward buckskin meanwhile slow it has been sent to Dr. Wiley by brand the head of the three crooks that had found him in the rock maze first picture third row he enters the doctor's office doctor says well what can I do for you strange slope replies I had little shooting accident out of the rock maze brand sent me the doctor looks at slow it's arm last picture third row saying well you're fortunate brand doesn't approve of everybody the freshman ever look at that arm after that if you're interested maybe I can put you next to some easy spending money slow it looks at the doctor and says slyly you can do better than that doc I don't say me what kind of game you're running here I suppose you cut me in on it 50 50 doctor answers first picture fourth row why you two bit tin horn who do you think you are don't remember me you were calling yourself dr. worth when they ran you out of st. Joe then there was that phony mail order prescription racket you worked in Denver the doctor pours hot water into a basin saying slow didn't recognize you with those without those chin whiskers slow answers last picture fifth row you seem to have last time to some easy pickings I wouldn't want to ruin it are we agreed in a partnership the doctor answers sure slow sure I only hope you weren't slow replies don't worry the gluten named hop along Cassidy and to his parks try that a brand and his boys took care of at this moment underneath the very window where slowton doc Wally are talking hoppy in his pals last picture are riding down the street standing in the window right above him I hope the slow doesn't see hoppy so do I if he did that would spoil any chance of hoppy's catching slope by surprise later we'll find out more about that next week we certainly will now let's turn over the page and let's see if Prince value is on page three all right over we go was successful on his mission yes he was the Pope has agreed to send missionaries to Val's father and bring word of Christianity to the land of fool and then Val got that young boy left behind was dying and Val left his friends to arrange to bring the missionaries and rode on by himself to see his young friend are I want to very well here we go with Prince valiant in the days of King Arthur heck at break it grim hulking and quince music romantic for a fair fair prince Prince valiant rides into Torino and slides stiffly from his spent horse at the convent door on the long journey he had time to realize how much he loves his young squire and he hopes he has arrived in time as he goes in the door the doctor gives a tragic report young off for his agony like a warrior despite his tender years but now he's dying for he has no will to live Val walks into the room where our fears last picture top roll by a sunny window our flies white faced still as death one foot is still swayed and bandages and the other with a shock Val sees first picture next row there's no other foot he sits down and takes the lads hand a bright smile lights off spales face for an instant and then drains away and then he speaks bitterly last picture second row I aim too high I was to be sir off Jeffery night of the roundtable a great warrior all my life I've dreamed of vain dream of being a champion and then in serving my lady Alitas or night errant and he laughs cynically first picture bottom roll as his head falls back on the pillow whoever heard of a one-legged warrior Val answers coldly I have our flukes up sharply he'd expected simply from his generous warm hearted chief he hears Val say last picture but I've never heard of a great warrior quitting the field when the fights to be one of Val's being this way to make our stop feeling sorry for himself because if off doesn't feel sorry for himself then he'll think of all the things he can still do in life oh then he'll work harder to do those things that's exactly what Val hopes will happen but Val still loves and he really does feel sorry doesn't oh I'm sure that Val's heart so almost breaking over our son fortunate situation and he's doing this really to do our for kindness and to help him my I hope that I understand that I'm sure he will well now what do you say we read Donald Duck oh I just love Donald Duck very well then let's turn over the page go past jungle gym turn over another page and there in the middle of page 7 is Donald Duck or good for a chuckle say the magic words with me squeegee jump squeegee jump squarely chicken track let's have music today Donald has decided to go fox hunting you know hunters chase foxes on a horse and Donald is all dressed up in hunting clothes and he says proudly I'll show him how to catch a fox Donald's nephew Dewey is holding his horse and as Donald prepares to climb on Dewey says now don't fall off and get right back to Donald and Donald replies not me son I'm an expert and Donald climbs in the saddle Dewey says I still think you'll fall off at this moment the fox has turned loose and the others gallop off Donald exclaims and away he gallops his horse approaches a high fence up in the air he goes higher higher well don't stay there come on down Donald closes his eyes and down the horse comes and over the fence he goes last picture top row and Donald is thrown forward in the horse's neck and almost falls off he hangs on to the horse's mane first picture next row as the horse thunders after the box Donald sees the box run into a hollow log quickly he comes to a halt Donald leaps off the horse and runs for the hollow log saying Donald sticks his hand in the hollow log to grab the fox when all of a sudden and last picture Donald is home sitting in a chair his hand bandaged up and he says patiently to Dewey and Dewey answers yes and Donald won't tell Dewey that he was stupid enough to stick his hand in the hollow log where the fox could fight it so do I and now it's time for Dagwit and Blondie yes yes indeed and here they are in the first page of the second section and here we go with Dagwit and Blondie I'm a fool I'm a fumsim Sam zombie conjure me music for Dagwit and Blondie everybody's busy working down at the office when all of a sudden mr. jithers door opens and he roars they'll bumpster they're coming to my office at once and then mr. jithers slams his door everyone looks very sad you can hear a pin drop whoops wrong pin one of the men says who the bosses in a rage and other says yeah he sounds like a maniac Dagwit very timidly walks toward mr. jithers office he goes in closes the door when suddenly there's a terrific fight everybody in the office is terrified and one of the men says sadly suddenly everything is quiet again first picture next row mr. jithers is standing over Dagwit with a broken ball bat in his hands and Dagwit lies on the floor covered with bruises mr. jithers snarls did you put this note on my desk asking for a raise Dagwood replies yes sir mr. jithers leaps at him again as they both pause for breath last picture second row Dagwood answers $10 a week mr. jithers greets his hand dollars and leaps to Dagwit again first picture next row it's robbery suddenly there's an extra loud crash one of the men outside the office yells hey quick somebody run to the first aid room get a stretcher for Dagwood the male boy runs for stretcher while back inside the room mr. jithers last picture the row smashes a water cooler over Dagwit's head and then first picture bottom row mr. jithers picks Dagwood up and bumps his head on the desk and then mr. jithers all worn out from his struggles collapses on Dagwit who collapses to the floor and mr. jithers says okay Dagwood I'll tell the cashier to increase your salary $10 a week starting today and Dagwood looking like a mop rag says weekly thank you boss last picture the office employees picked Dagwood up from the ruined office lay him on a stretcher and carry him out and Dagwood gives a crooked smile and says weekly he's a sweet old guy after you learn to understand him fighting like that just because he has to give Dagwood a raise in pain I'm sure this could only happen in the funny papers but I'm sure also that that's the way some people feel about you having to give a raise yes oh here's Roy Rogers blow Dagwood and Blondie read that please I'll read that in just a moment but first here's that nice man again with something interesting to say now here we go again with Puck the comic weekly and on page one of the second section bottom of the page Roy Rogers king of the cowboy magic words for the music please very well my lady a yep I owe now here we go with Roy and trigger a yep I owe Stogie Grimes riding trigger Roy's horse is closing in on the spot where Roy is hiding suddenly Roy whistles and trigger Bucks Grimes off Roy runs for Grimes who pulls his gun the girl while would have doubt sees what's happening and throws a rock knocking the gun out of Trogie's hand Roy hollers nice going Wildwood and gives Stogie Grimes a punch in the draw saying now you and glib Mason can tell the sheriff how you plan to rustle the cattle Mason bought for the raw hide ranchers with their money later last picture top row in raw hide Roy and his friend doleful Hawkins and Wildwood are bringing Grimes and Mason into the sheriff ahead of the herd of cattle which blackjack has led over the mountain safely Roy says well there's a sheriff's office I'll deliver Mason and Stogie while you deliver the herd first picture bottom row the townspeople see doleful Hawkins at the head of the herd and one of the men shouts Hawkins with a fresh rain stock there's a big celebration later in the day and the mayor of the town after making a speech is giving doleful a key to the city and he says and doleful Hawkins and doleful who seems to find something wrong with everything in life answers thanks mayor but it won't open nothing will it I'll probably drop it on my foot and bust a toe later the celebration over Roy's preparing to leave the sheriff is saying to him well I'll take care of Mason and Grimes Rogers hey that Palomino looks familiar saw one just like him yesterday even had the same markings a curious look comes in Roy's eyes and he says why there's not another Palomino with these markings except trigger junior and he's supposed to be at the double our bar ranch yeah let's go boy and he leaves on trigger heading out of town the sheriff calls a strange home ray let him through town seemed to the hurry I think that's what Roy's worried about and that's why he's riding off in such a hurry there's never a moment's rest for Roy the minute he's turned one crack over the sheriff there's something else he has to do yes it seems that way well maybe next week we'll begin a new adventure that'll center around trigger junior that'll be wonderful fine well now let's go over the page and remember he's on the moon and last week he and Dale and professor bright had found an entrance to an underground town yes but they were seen by rock a man from earth who is apparently the leader of the Beetleman and yes and and you remember rocks all flies through a special kind of machine which he had he could see anything through it and then as flashed near his chamber he fired the whip tentacles a strange kind of weapon that sails swiftly through the air and tangled Dale and professor bright up in a lot of strings so that they couldn't see what happens very well here we go with flash Gordon rega rega dune dune saskum attach let's have music for heroic flash deep under the moon surface flash finds his mysterious foe is a human hampered by the whip tentacles that have entangled him flash fires at the villainous rock but misses and flash charges toward rock and his enemy retaliates by shooting a cloud of numbing brain gas holding his breath flash flies to fire his ray gun but the gas fills his eyes and ears making him feel strangely weak and dizzy last picture top row choking from the accurate fumes flash tears off his space suit in an agonized attempt to breathe rack brings evil Ian says now you pay the penalty for following me from the doom first picture bottom row while flash is struggling for air a group of wax beetle men enter the fray dazed by the gas flash can only put up a feeble resistance as the beetle men bind him and deal with spun glass ropes then last picture flash Dale and professor bright are lined up against the cavern wall and given an impromptu trial rock acts as prosecutor he harangues I came from earth to make you beetle men powerful these strangers wrecked our moon gun they want to conquer your planet flash tries to reply but the beetle men shout him down that verdict is unanimous and instead of that those tentacles that were wrapped around flash his arms spoiled his aim and now flash is in rocks power and all the beetle men want flash to be destroyed well does that mean that they'll be killed that's something we'll find out next week why certainly won't miss this but I hope I shall find some way of fooling them off so do I now now it's time for Dix adventures isn't it it certainly is so let's go past buzz Sawyer the lone ranger the phantom to the last page and Dix adventures something very mysterious is happening because dick is there at West Point and that's a famous American fork in the early days of America yes in general Benedict Arnold is the commander there and Arnold had told dick there was to be an exchange of English and American prisoners of war and had sent dick to wait at the river's edge for an Englishman major Andre who was to represent the English but you said that usually this is done in the daytime under a special kind of a flag but this is all being done very mysteriously at night and dick thinks that there's something wrong about all this yes there is well yes we don't see what there really is very well here we go with Dix adventures say the magic words with me rickety pack is that a dick let's have music for this dick mystery and something more disturbing surrounds the secretive midnight arrival of a British officer named Major Andre outside the closely guarded ramparts of West Point uneasily dick reports to the American commandant general Benedict Arnold dick tells the general that Major Andre is waiting for him outside the fort showing little surprise the general accompanies dick to a thickly wooded section on the banks of the Hudson where the enemy officer waits dick sees the two general shake hands then he walks a short distance off to stand guard over them while the two talk last picture of the row for an hour in darkness the two men converse cautiously while dick obeying orders stands guard just out of earshot yet first picture next row he catches a glimpse of papers being passed from general Arnold to major Andre and sees them being stuffed into the British officer's boot then general Arnold calls dick over saying sergeant you will escort major Andre back to the place where he can reboard the ship he is not to be stopped by any of our men as dick leads major Andre back to the edge of the river he's thinking about general Arnold it told him and major Andre has come to arrange for the exchange of colonial and British prisoners of war but dick wonders why all the secrecy just as they reach the river's edge last picture the row they hear it's American cannon atop the ramparts of West Point which have opened thunderous fire the British loop awaiting major Andre's return has been spotted at the door and as they watched the shots striking the water around the ship major Andre seeing that has become bright dawn cries to dick I can't leave now hide me somewhere indeed he is because now major Andre can't get out to his ship and get away well maybe it's a good thing because I think you'll find out you're right and maybe next week we'll learn more about the mysterious papers and major Andre I can hardly wait over look last week Rusty and Tex couldn't get all that sort of island they were on it and they found that train engine yes that's right and they put their horse blaze on a flat car and luckily enough got the train started and now they're on the way across the trembling trestle hoping it won't crash beneath the weight of the engine yes and just as that happened that man Smith as they were trying to get away from because he has a gun that came up to the top of the hill and aimed at him and I'm anxious to see whether he hurts rusty or Tex well let's find right now read right now and find out so here we go with rusty rally got up and run till the road is dusty give us music for his horse and rusty as the train moves faster and faster across the trestle leading from the lumber camp Smith throws his gun to his shoulder and calls rusty shouts hey text he's gonna shoot text replies turn your back on him rusty we're way out of range of that bird shot can't do more than sting a little smith fires blaze wears up and France is about rusty holding his holder says well now blaze easy boy hey golly taxi fired both barrels of some of the first shot must his son blaze takes calls back now we're over the trestle now rusty we're on even terms with him now ever only two shells in the gun last picture top row in a cabin in the valley a man dressed in the woodsman's outfit is having a cup of coffee suddenly he exclaims hey by Germany it sounds like a whistle in the lumber company's little tank engine rain's supposed to be anybody working up there he gets up those to the phone first picture bottom row saying better call the forestry look out in the fire child maybe there's a fire in the fire tower high at the top of the mountain the fire rangers sitting in front of a telescope gets the call as he answers the man in the phone says hello this is deputy cam warden Cox something must be up at the deep gorge lumber camp I heard the whistle of their dinky locomotive can you see anything the man in the tower replies my yeah link I heard it too and somebody ran the engine in the flat car over the old trestle I notified the sheriff meanwhile back in the woods taxa stopped the train and they've let blaze off dex says to rusty all right rusty get blaze back into the woods stay there with him I'd look oh humbrey is crossing the trestle I can handle him now that his ammunition's gone rusty replies okay text but golly be careful he's dangerous text walks toward the trestle with Smith has just crossed the men meet last picture and Smith snarl well thought you tricked me didn't you well now we're gonna have a showdown give me the paper that was in the back of that picture frame or I'll take you apart text replies okay mr. just take off them specs and now Texan Smith they're gonna fight it out you bet and Texas a mighty grim look on his face and he's mad because he doesn't like crooks I hope that Smith doesn't have a pistol or a knife I think Tex will be careful and I heard that forest ranger say that he'd called the sheriff my I hope he gets there in time because then text could turn this man over to the sheriff and then we could find out what those secret plans are that's missed off yes there's a lot of things we have to find out next week yes and I'll certainly be here good now that's all the time I have but before I go here's that nice man with some more interesting information well honey and all your boys and girls I got to go now mr. comic weekly man but I'll be waiting for you next week okay that's a date and a date with all your boys and girls be sure to meet me with a little friend miss honey next week when I read Puck the comic weekly for I'm the comic weekly man the jolly comic weekly man I'll be back to read the funnies to you happy boys and honey don't forget boys and girls see you all next week your friend the comic weekly man the jolly comic weekly man


Welcome to dominate the theme layer. This is a redo. Yesterday, the sound didn't get recorded, probably. So we're redoing this session with a tiny, but very enthusiastic audience of hardcore themas. And I see a single developer in the corner. So welcome. Let me shortly introduce myself. My name is Jesper Völtke. I work as a themeer and, well, I have a fancier title on that, but I work as a themeer and a front end developer at a company called Bustel. I'm a regular front end developer, Mark of Marine. My background is in journalism. I started developing and doing CSS a couple years back. And I'm one of the front end United organizers. And I have promised myself to sneak in a short advert next year in spring in the UK, front end United UK 2013. And you should definitely be there. Right. This is a bit different presentation that I'm usually giving. Like in the Drupal Design Camp Berlin, I shared a hotel room with a very famous, very loud Danish Drupal and modern DK. And ever since then, I've been using pictures of a sleeping half-naked modern in all my presentations as revenge for his snoring. Since this is DrupalCon, I will be giving a modern DK free presentation. So if I look nervous or a bit like on edge, that's why. You get it's like a comfort thing, like football players are their favorite jockstrap or something. So just like a few words before we get started. This is a theming session. And there will be slides with code. But these slides are not necessary to understand the high level of the session. The session should hopefully be interesting for both designers who want to get themselves better integrated into the workflow, also for site builders and for project managers. There will be more slides here without code. And these are necessary to understand the high level and most important part. So developers, I apologize. It seems that PowerPoint slides are not very well suited to do code. So what I've done instead is I have created a GitHub repository where there's like 500 or 600 lines of documented code that goes through and has examples of the things I will be talking about today. So the session will mainly be about what you should be doing and why you should be doing it. But the how of it you can go through at GitHub at your own time. There's also a link at the end. It's like a toolbox for domination, I call it. So let's take a quick look at what we will be doing in this session. The session is about Drupal's theming layer. Like the Drupal's theming layer is a beautiful beast. With the right touch, everything can be overwritten. It can be controlled. It can be styled. But it's still a beast, and it requires a firm hand. If you try to just be gentle, light touch, gentle strokes of CSS, the beast will get the better of you, and you will not realize your mistake before it's too late. This session is about making your theming more efficient by dominating your mug up early on in the process. Submissive mug up is a efficient mug up. That's an important point. And this session is broken down in four parts. First, I'll take a look at not necessarily the common approach, but a very common approach to styling Drupal sites. And I deliberately call it styling, not theming Drupal sites. And I'll try to show you why that's a bad idea, and we will take a look at some specific pitfall that you might fall into doing that. After that, we'll take a look at another way to do it, like the dominating way, and some of the benefits of that. And I'll try to argue why this makes sense from a theming point of view and also find a financial point of view. Then I'll try to show you how to get this into your workflow, how do you go from having a design delivered by a designer until you have your finished theme and how to make this get into your workflow. And then finally, we will take a quick look at some specific code examples and techniques to do this in a way that's easy and scalable and fast for you for the themers. So the first thing we look at is, like I call it the gentle touch or the gentle way. It seems to me that a lot of themers take this approach. And maybe you guys don't, but I bet you do somebody who does. And especially for new themers, it seems, or people coming into Drupal from other platforms. It seems to me that they try to do as much styling as absolutely possible using only CSS. And only when absolutely necessary, they would go in and they would adjust the markup here and there and maybe create a template file or two. And whoops, I'm not supposed to do that. And one of the reasons this happened is that people often let core and trick them. Out of the box, Drupal has no idea how your site will look like. You have no idea of the business logic or the design system behind your site. So what core developers and contract developers try to do out of the box is to give you as comprehensive set of styling hooks and as a flexible and often very verbose markup to work with. And that makes it possible to more or less style every single element on a website out of the box without having to do anything with the markup. If you're happy with four nested divs, you can style everything as it is. And that's the trap. And this is the trap a lot of people fall into. The result when you do this is often the same. You get like large, bloated CSS, a lot of redundant code. We get styles that are tied to markup.   We get low extensibility. We have to put in more effort into our project every time we want to extend it with new features and new layouts and new page types. And this in the end gives us sites with a high maintenance. And in the first round, we did a racing of hands. How many people liked building new Drupal sites? And luckily it seemed like 95% of the room really liked building new Drupal sites. We had three people who really liked maintaining Drupal sites. So we want to reduce maintenance. We don't want to build beautiful stuff. We don't want to spend a lot of time cleaning up CSS files. If we, let's try to look at some of the specifics. There's like four common pitfalls, I see. I don't know if even it's fair to call them pitfalls, but four common ways to style Drupal sites that gives us some issues. The most grievous one is when you start styling your site by Drupal module. This is so easy to do because everything has like a huge ID, very specific, it has 17 classes. You can style everything and you often style it by Drupal module. This like, this leads us back to the issue like this is going to possess low extensibility. If we want to reuse this visual in other places on our site, we need to add, keep adding rows and rows of selectors. Okay, so maybe our campaign monitor block looks the same way as our newsletter block. It looks the same way as our list of, I don't know, Twitter comments. And we keep adding those rows to our selectors and our star sheet keeps growing. Another issue with this is like we're building web systems and that block from this module might appear different in different contexts and in different regions on our site and it might look different. It might look different depending on the user who sees it. It might look different depending on whether it's output in the photo and the site bar and the header or maybe it's output deep in the site node and it will look differently. And if we style by Drupal module, we not only have to like keep repeating these for like for, keep repeating for like every time we repeat like every time we style a new kind of module and we also have to do different versions of it. One when it's at site bar, one in the photo, one in the header and so on. A lot of redundant code. This like, if you only decide to change one thing today, this is what you should be changing. Like you should totally stop styling stuff by Drupal module, it's very important. A related one is when we start styling things by page or maybe by content type. Like it's a very common variation. I see it very often when I inherit sites from others and I've done it too many times myself. Like we style things based on, okay, this is the new space on the new page. We have a header and that header. Maybe that header looks different than the one on the article page. We have some metadata that again looks different on the event page and we start styling things by content type or by region. Again, we get a lot of redundant code. Often there will be a lot of properties shared between like these styles. They will have something in common and we have to style that multiple times. Gives us a lot of lines of CSS. Or maybe it gives us a lot of overrides because we style it once and then we overwrite it and we overwrite it and we overwrite it. This makes it very expensive to maintain. It makes it expensive to maintain because we have more lines of CSS. Like every time we add a line of code, it's one more line to maintain. But it also becomes unpredictable what consequences your changes will have. You go into your style sheet, you change something and you have to go through all the different page types to see what was the other consequences of this. Especially in common, if you inherit sites, you didn't code it yourself.  But not really 100% sure that that styling is not used somewhere else. So, basically to maintain. This is not a Drupal-specific thing but styling by tag, my experience, it's the hardest thing to convince designers or themas to stop doing. Because this is how we started out. Like, we started out styling paragraphs and M and strong and you know. And that's great for web pages. But we're working with web systems. I promise to come back to the difference. But we're styling web systems. And when we tie our styles to markup, it becomes really hard to reuse. Again, often the same visual style is used several times throughout our site. And when we style by markup, we can reuse it. It makes it less portable. Another thing is that in Drupal's steaming layer, controlling the markup takes a lot more work than controlling stuff like classes. And sometimes, maybe for good reason, your, the date you've been styling will be a P tag. Sometimes it will be a span. Sometimes it will be a data element with some attributes on it. If we start styling by tag, we have to, again, we have to keep adding rows and rows of selectors. We have to tell that date, dot date class span is the same as the date class data and so on. There's some exceptions to this. The most notable being stuff like image. Because image have some unique properties. It makes sense to go in and say, all my images should have this, the magical max width 100% that suddenly makes them responsive. But another example could be links, but not even always. Maybe your button sometimes looks like your links. Maybe you have spans with JavaScript elements on them that look like your links. And if we style them by tag, again, we have to keep adding selectors and keep adding selectors. A variation of this, a very common one, is to style headings by tag. Again, this is like a lot of us learned this as best practices. To style your headings once and it will be effective throughout your site. I think one of the reasons that this is a bad idea is because your visual hierarchy, the one, like the hierarchy your designer created, will not always match your document outline. We're creating a web system and blocks and content will be output in different contexts in different places. Sometimes inside the node, sometimes in the site bar, sometimes in the footer. And the visual hierarchy will not match, not always match the document outline. Again, it makes it hard to port things around. Like if we style by heading, well, again, if it's in the site bar, it will look different than when it's your main content on your site and it will look different when it's in your footer. So it gives us low portability. And with the arrival of HTML5 and sectioning elements, well, all your headings might be H1s. All your headings might be H1s wrapped in sectioning elements and H groups. So if you style by heading, not really going away. So this was the, try to give a short overview of what you shouldn't be doing, which is always easy to tell people what you shouldn't be doing. Let's try to take a look at what we want, take a look at what we want to achieve instead. The first and absolutely most important takeaway is that you should create your own front-end architecture that's built on the design and the business logic behind your site. Shouldn't be built on the backend architecture. Shouldn't be built on the group of modules involved. Your front-end architecture should be built on what you wanna achieve with your front-end, the system behind your design and the logic, like your business logic behind it. Another thing we have to look at is that we're styling, most of us are styling or theming web systems, not web pages. If you're styling a web page, doing it with absolute minimal markup and some advanced combination of pseudo-selectors and the specific markup can be beautiful and the right thing to do. But we're building web systems. And web systems have some other success criteria. These systems need to be extensible, they need to be robust, they need to be portable. They need to be extensible in the sense that you can change the markup, we can add new page types, we can add new features, we can add new layouts to our site without having to redo our work all the time.  People will start adding new blocks, they will take blocks away, they will move stuff around, they will change the markup involved. And your styling needs to be able to handle that. Your styling needs to be robust.  And we want them to be portable. We want them to be able to take something you style over here, move it to the other site and it should still be styled correctly. Maybe they wanna duplicate it four times in the footer and it should come out styled correctly. So it needs to be portable. And the way we can do this is when we style styling objects, not tags or elements. We wanna style objects. I promise to come back to what I mean by styling objects. And the requirement to do this is that we upfront before we start coding, before we start writing our CSS, we need to invest or you need to invest time to dominate your markup early on. I think maybe that's the second most important takeaway for this, like spend time dominating your markup. And I'm not saying this because it's like some hippie idea of doing it the right way or out of theoretical purity.  It pays off in time, it pays off in dollars and cents, it pays off in happy theme. All three are very important. It gives you lower maintenance. And we already, well, at least I claim that the last group who saw this session didn't wanna maintain their website. It makes it, it gives us a cheaper introduction of new features. Like if we're doing it perfectly, your site builders and content editors can add new features to the site and they will come out styled already. They'll be magically styled without the theme of having to go into the site and doing a thing. As long as they stay within the same, like the same design patterns that we already established. We will get linear CSS. In my experience, when I switched from style doing all the pitfalls and going to an obvious going to approach, I was able to reduce the amount of CSS in my websites to about 30%. I could cut away 70% of the CSS in my website. It gives me a linear CSS, give me a lower footprint, it's faster to download. Also the object oriented approach gives me faster rendering performance. Not normally something you should worry about, but it gives you a faster rendering performance in most browsers. Okay, so this is what we wanna achieve on a high level. This is what we wanna take away. We wanna build web systems that are robust, extensible, portable. We wanna style objects, whatever they are. And we don't wanna fall into these pitfalls. So the way to, like my way of thinking is when I build this mental model for myself and how to get this into my workflow. These days, I rarely design anything myself anymore. So I will receive a design from a UX person or from a graphic designer and I will be expected to either convert that into a theme or expect to take up the site builders and help them architect the site. So I've broken that down into these four steps. We could probably do five steps or three steps. But the idea is that we will analyze our design and the specifications and we will understand the thinking that went into this design. We will try to streamline it and make it faster, easier and cheaper to theme. We will define objects from it and then we will go in and dominate that margo. Let's look at, I'll try to look at each of the four faces and turn. The first one is like the analysis phase. When I, I think it goes for a lot of us but when I get a theme or get the design a lot of the specifications have already been established. And often a lot of the systems architecture behind us have already been established. We wanna know, we know what we wanna build and we probably already know how we want to build it when I receive the design. So what happens is that when I get this design like somebody has been sitting there maybe for weeks putting their, like putting all their blood and tears into it, what I see is this. Like this is what my mind shows me. It's a systems architecture. Oh yeah, like yeah sure that's a field collection and over there we have a view and there's the header. Like there's the ugly part that the team don't really know how to do it. I have to call up a developer and make that magic stuff up there. The first step before we can even start analyzing the design is just to look beyond this and see what the designer actually designed. What is this, like yeah. Like try to understand the design and the system behind it and the logic and the thinking that went into it. And when we get there and we have like we back to scratch a clean slate, we have a design. What we will try to do is look for recurring patterns. We will analyze our design and try to find visual or structural patterns that are recurring, that appear more than once on our site. Here's an example. This is like the sign I received. And I would go through it and look for patterns that reappear more than once. In this case, we seem to have these blocks that share the same width. They have the same background color. They have the same padding. They act the same way inside the flow of the page. This is definitely like a pattern that is recurring. Another example is these headings. Like they share font family, they share size, they share color. And they have repeated not only in the four blocks we saw below, but it seems it's also appearing at another place in the site. And we will do this analysis of recurring patterns not within the page, but across the entire site. Here's an example of the same pattern of the recurring heading. Still same font size, same color, same font family, now recurring within some other patterns. These blocks, it's not easy to see, but these blocks are different than the first ones. And then we'll try to break down these patterns, like to organize them and understand them. Like roughly we have three different kinds of patterns. We will have structural patterns. Structural patterns are things that organize like the control, how the pattern itself reacts to stuff around it and how it organizes what it's within it. So there could be flows, orders, lists, types of content. Another pattern is visual patterns. Could be stuff like borders, colors, fonts, topography, general icons. And try to group them. In this case, I try to like go through the topography on my site and try to group it and order it and look for recurring patterns. And then we have patterns that are variations on other patterns. Patterns that are identical except for some systematic change. In this case, we have these three patterns, these three blocks that are completely identical structurally. At the same content, this content is layouted in the same way, same height, same width, but they are just varying backgrounds and the text colors varies based on the backgrounds. So this is a variation. And you should go in and look at your variations as patterns themselves. And this is like a really great time to bring your designer on board.  No, because it makes great sense from both points of view. Like the designer can help you as a themeer to understand what was the logic behind this. They can explain the system, like the patterns. Maybe they can explain all these patterns for you and break it down. And if you're the designer, this is also the way that you can make sure that the person who is gonna take your weeks of work and convert it into a product understands what you designed. This is also important. Like it's a way of making sure that what comes out in the other end follows the thinking that we're entering. And depending on the project, this can be done in as little as half an hour like this whole analysis phase. Sit down, if you're in the same office and it's a smallish project, you can go to the coffee machine with the designer. Print these stuff out and have a talk and write on the printouts. For larger projects, it takes longer time depending on the amount of page types and layouts. But it always pays off. It's a good investment of your time. Next up is the process of streamlining. We've gone in, we've analyzed our design and we have all these different patterns. We maybe regroup them into structural and visual patterns. What we wanna do now is try to streamline it. And by streamline, I mean we want to take variations of patterns and try to consolidate them into fewer patterns. You wanna reduce the like, every time we can reduce two patterns to one pattern, it's one pattern less that you need to spend time styling and maintaining. And we can do this in two ways. The one is simply to unify it. Maybe we have 14 pixel padding. Here we have 15 pixel padding there. And we can just all agree that 14 pixel padding is great. That's no reason to have two different versions. So we'll streamline it. Sometimes like these are just differences that have been, variations that have been introduced through the design process and they're not deliberate. Other times the designer can like make new choices and have you streamline it. If you cannot just unify it, another option is to define rules for these variations. Maybe there's a system to this. Maybe we have two pixel margin below every block. Unless it's the last block, then it has 15 pixel padding. And if it's the only block, then it's also 15 pixel padding. Sorry, margin. And the reason we wanna do this is because rules can often be stylable. You can style these rules, but you can't style variations without a system behind them. Again, bringing the designer on board, the designer can help you do this and like explain the system behind it. Or maybe you can develop a system behind it together. So we analyzed our project. We broke it, we now have all these patterns. We streamlined them into fewer patterns. And what we have left is what we absolutely necessarily need to have on our website. This is what our website is based on. We will also have some unique patterns and just note them down. Yes, that will be a logo and maybe it's the only logo. Doesn't matter, those will be unique patterns. It's fine, they should be there. So we'll try to take these patterns and from the patterns we want to define objects. So we wanna define objects. And we can do this in different ways. There's no, in my opinion, there's no right way to do it. What is important is that you find a system that works for you. This is a, the details are not important, but this is an example of me breaking down these patterns into objects. I'm defining some objects that define some objects that control the size of this, the layout, other objects control the typography, other objects define colors and variations. And use the system that works for you.  You can take a look at Jonathan Snook's Smacks. It's a very popular system for structuring your objects as a free version online. There's also a book and an e-book you can buy. Of you, the more academic sort, you could look at Nicole Sullivan's object-oriented CSS. I think Smacks is a nice place to start. I prefer, I have my own system. Again, how you do it is not important. I break it down into these five, six layers. I have grits as a layer of my objects because the grits often are separate from the rest of the structure. So I have grits, I have structure objects that define how things flow and how they order stuff inside them. I have style objects that control the colors, the paddings, borders, stuff like that. I would have topography because the topographic objects are often shared between a lot of other objects. I will define a set of topographic objects I use. Stuff like block titles, page titles, label titles, et cetera. And then I have my variations as a layer. An important part here is to write it down. If you're working with others, definitely write it down. If you're just working with yourself, write it down. It doesn't have to take long. And it doesn't have to be high-five. If you're only working with yourself, this is great. Write it just, print out the design of the wireframes and write on it. Good, as long as you can understand what you wrote down, it's fine. Another way to do it is just to do an outline in a style sheet. After you have defined all your objects, you can go down, you can write a style sheet, and you can define your topography, for instance. Okay, I'll have three different sizes of three different kinds of body text. I have four different headings. I have these like four other different kinds of text. And just like in this case, I've just added, I've given the class name, given the short comments to understand them. And actually, this is, I cheated, I lied, because in this example, I also wrote all the CSS immediately, because I knew how it would look.  So you can write your CSS immediately. You don't actually have to wait for any manga. You can just write your CSS. And when they finish building your website, you can inject these objects and classes into your website, and it will magically be styled. Third option, if you, is to do an extra layer in your Photoshop comp or in your fireworks, and just write on top of it. I made some simple stencils for myself, and I used this when I worked with my developers in Bulgaria, and allows me to go in and define objects, allows me to define a markup, and I can send it down there to the site builders. And they can build things as I wanted out of the box. So I don't have to all write it afterwards. And it takes the same time for them. So we analyzed it. We streamlined it. We now defined our objects. Maybe if we are really hardcore, we already wrote our CSS. So what's left is to actually go in and dominate the markup. This is, maybe for some, this is the fun part. We want to dominate our markup. And one of the ways we do this is for web systems, I highly recommend going with classes. Because we don't want to style text. We don't want to style pages or elements. Tags are amazing. Our classes are amazing. They're reusable objects, even when in the same page. You can use them as many times as you want. They can be combined with other classes. And they inherit without any problem. You can add 17 classes to the same element if you need to. They're separate from the markup. So we can get this robust styling. People can, we can have our developers and site builders change the markup if you don't have to worry about it. And they are, and that's the good thing. They're very easy to add and inject into your markup to do with Drupal's streaming layer. So I can use what naming scheme works for you. But use classes, also in using classes, use a low specificity. High specificity, again, reduces the reusability. But using low, like often, you can get away with just nesting classes at a maximum two levels deep. Often people wrap stuff in IDs, or they have a lot of classes, because they are afraid that their classes will collide with somebody else's. And the way to solve that is not to nest your classes and add more. The way to solve that is to namespace your classes. Like, if you're afraid that using something, a class like heading, will collide with some module that applies style to heading, then I don't call it heading. Like, if you really want to go extreme, add your theme name to every class. Or just use classes that are different from the Drupal naming. Like, I use stuff like title hyphen blog, title hyphen page.  And I have yet to see them collide with Drupal's standard styling. Like, most of you already know what standard classes are at Drupal. Also, the third option is to go in and just strip out all Drupal's standard classes before we even start dominating it. That's very dominating, actually.  And especially if you use preprocessors like SAS and less, be wary of nesting things too deep. So we have our objects. And we want to layer them. Morton hates this part. When I come to it, I say, you want to layer your objects. Because when I say you want to layer your objects, it's stuff like add three classes to the same element. In this case, I've gone in and I've layered three kinds of objects on this side. I have a block secondary, which is one of three block styles that defines it. It's something that is tangentially relevant to the main content, but not in the main focus itself. It could also have been just block default, or maybe block feature. I've applied a style alternate variation, because in this place, it uses alternate color scheme. And I've applied a grid two, because that's how I control my grid styles. If you don't like non-smanty grid classes, you could go in use your preprocessor and use extend, for instance, in SAS. I prefer these grid classes. The title I've given a title block, styles as a block title. And I've defined that on the content wrapper, that every text output here is text secondary. In this case, it's like a slightly smaller font, slightly lighter color than the main content of this page. And we wrapped everything in an aside, which matches perfectly with this tangentially related content. Yes, it's a little more markup than just giving it one class and adding all your markup to it. But there's two reasons it's still OK. One is that this easily saves in your style sheet what extra characters you use here. And two, if you start out with stripping out Drupal's classes, you'll still be way ahead of the rest of the pack with a lower footprint. So that's the high-level overview of the process.  So what's left now is to take a look at how we actually go in the theming layer and dominate this. We want classes. We want objects represented by classes. And we want to inject those into Drupal's theming layer. Let's take a look at how we want to achieve this. What are the tools available to us? The first question we have to ask ourselves is, how do we add classes to elements in Drupal in a way that's fast and scalable and easy to maintain? One option we have is we can go in and we can add some template files and add some classes to them. Or we could create some template files for fences and use fences module to use different kinds of template files for this. Both of them are not really good ideas. It's like, who want to maintain five different versions of block, TBL, PHP, if the only difference is the classes applied to it? So what we want to do instead, we want to use our template PHP, and we will use preprocess functions and alterhooks. And we can go in and we can inject our classes very easily through almost any kind of content output in Drupal. And we always only have one template PHP, hopefully. We can have 200 template files, but we only have one template PHP. And when we change something there, that changes affected throughout our site. That's a really great idea. Before we do that, though, we want to go back to views. I talked earlier about you could define your markup, send it to your silentbindles, and have them build stuff out of the box to use the right classes. Well, if they didn't, you should go back to views. And views allows you to override both the markup and the classes for both the wrappers, for fields, for rows, for almost anything labels. You can go in and you can add your own classes. There's no reason to go in and override stuff later on if we can just define it to be correct to begin with. So this usually solves 50% of your theming needs views. Like your mileage may vary depending on the kind of site. But for the rest, we need to go into template PHP, and we need to take a look at these scary render arrays. Render arrays was introduced in Drupal 7. And it's a set of nested arrays and objects, and they can be nested almost infinitely deep. And when your new theme are coming into Drupal, they can be really scary. I think, actually, that the render arrays and the templates of PHP is one of the reasons that so many people try to do everything without having to touch it. We understand CSS, and we just want to apply that CSS, don't have to worry about doing some recursive manipulation of a huge nested array, which structure we don't understand anyway. I'm just curious, like, what today? How many of this very small, intimate crowd I have are comfortable manipulating render arrays in preprocessed functions of hooks? OK, some, but definitely not all. Good. The good thing for us is render arrays are not consistent, I'm afraid. But they are mostly predictable. And for our needs, they are especially predictable. These three nested arrays will get you 90% of the way injecting classes into your theme. So when you go into your preprocessed function, and you look at the array, we have three nested arrays. One is the classes array, and the classes array contains all the classes that are added to the outer wrapper, for instance, around the block. We have a title attribute array, class array. These are the classes that are added to the title. And we have a content attribute array that is added to the content wrapper within the outer wrapper. And by adding or manipulating, by adding or overriding to these arrays, we can control which classes gets output in Drupal by Drupal theming layer. Some modules do even some base themes. If you saw in the Jane session, you would know that especially annex base themes will go in, and they will change your render array. The themes like omega will strip out. No, we won't even strip out. But the classes array certainly no longer adds anything to your wrapper classes. You need to go into the attributes array, class array, and add things. But go in, print it out. You can use functions like KPR or DSM. You can inspect the render array, using tools, and just figure out the structure.  I still don't know what the difference is between the content inside the element block array and the stuff inside the block object, because it seems to be the same. But it's not important for us. And this is the result we get out. So what do we add to our classes array? It gets output on the outer wrapper. What do we add to our title attribute array, class array? It gets output on the title. And what do we add to a content attribute array? It gets output on the content wrapper. And this is, more or less, what we need to know about render arrays for now. This will allow us to inject classes. And it will actually allow us to keep a separation of content and presentation, just not the same separation of content and presentation you are used to from web pages. With web pages, we had a content that was usually our markup. Then we would have our presentation layer that was usually our CSS, or always our CSS. And maybe sometimes we had a behavioral layer that was some JavaScript. In Drupal, we have a separation between content and logic and presentation. So we have all our nice content inside a database. And we all know we can present that content in 17 different ways, using Drupal and views and panels and this space read. We have our structure and logic, which is handled by all our Drupal modules and our configuration. And then we have our presentation layer, which now not only includes our CSS, but also templates, PHP, and all our files. So we still have separation of presentation and content. Developers can change the structure and logic all they want. The content editors can change their content. And we just go in when rendering our presentation. And we inject our classes and dominate their markup. The way I prefer to do this is with a switch. And switches have several advantages. One is that they are very easy to maintain and easy to understand. In this case, I'm going in and I'm manipulating the field and I'm adding classes to fields based on the field name. And it's just one long list of all my field names. And I can group them. I can say, all these share this same class. I can group them, and I only need to write the class name once. I can even omit the break, and they can inherit from the stuff that comes below them. So I can say that whatever is on my body and my field deadline should also always be on my field location. But what's on my field location should not be inherited to my body. This makes it ideal because it's fast to write up. It's very easy to go in. You don't have to spend a long time doing this. And when you have to add to it, it's easy to go in and just add new rows to this. It's also easy to inherit from others. So if you take over a project, it doesn't take a lot of time to go in, take a template pre-process field, and see the list of field names, and see what's going on. Often you want to combine this with some kind of condition. Maybe when you are rendering your panel panes, if you're using panels, if what you're rendering as a panel pane is a field, you want to manipulate that field and add classes based on the field name. It could be other things. We could switch and anything. You could go in and say, well, if the block has A, I want to do a switch based on B. More or less only your imagination and that of your designer that puts limits to this. We can switch on a lot of different things. These are some of my favorite field name or block name. Field name allows us to maybe have four different styles for our fields, but we have 52 different fields. We could go in and just easily group those fields in these four styles in one pre-processed field function. Defining module could be useful if maybe you want everything that's navigation in a logical sense. You want to output that in a certain way. You could say, if this is defined by menu module, menu block module, or taxonomy module, I want it to look in a certain way. Again, you could theme by region.  This allows your content just to move stuff around. Just go in and move the block from the footer to the header, and it will still be styled correctly. Again, you can combine this. You could do it by path. You can add classes to your body tag based on the path, for instance. We can go in and we can combine these switches with different functions. We can do this on the page, on the HTML template, if you want to add to the body element. Blocks, regions, fields, preprocessed panes, views would take up in a complete slide with all the views preprocessed function we have. So when we start combining these switches with all these preprocessed functions, we get a high degree of flexibility in injecting what classes we want into our theme and defining objects. There are three exceptions to this. What's menus? Menus don't have a render array in the same way as a block would have. But we can still go in and we could add classes to the wrapper around the menu. In this case, if we wanted, we could call theme menu tree and we could add the same class to any module, any menu that was output. Or in this case, we could call the theme menu tree and the menu name. And for this specific menu, it would get some other classes added to the wrapper. Another one that usually throws a wrench in the smooth object-oriented theming engine is multi-fields. Because out of the box, what Drupal will do is all these nice classes that you define in the render array that just showed you will get added to the wrapper around your fields and not to the fields themselves. It gives a lot of trouble because we didn't want four fields inside a huge button. We wanted four buttons after each other. And you can solve it in seven different ways. You could overwrite the theme field function. And you could add the classes to the fields themselves, not the wrapper. The easiest thing to do, the quickest thing to do, was go in, take a copy of field to BLPHP, throw in your theme. And then there, you can see that the classes are output on the wrapper and just move them down and output them on the field itself. If you're worried that if you want to control and say, OK, in some situations, I want to put my classes on the field themselves, in certain situations, I want to put my classes on the wrapper, create a field multiple to BLPHP. And just when you need it, go in. Use a switch, exactly like you saw with the classes, and just give it another theme hook suggestion. I won't show how, but in the code examples I linked to, there are comprehensive examples of pointing fields to your own template suggestions. And you can do it in the same way as you do with the classes. You can say, like, for these 17 fields, they should use the multi-field, and for these four fields, they should use the single-field BLPHP. The third one is forms, like forms. I'm lying now, but forms is the only thing that's scarier than the render array. Just believe me, because it'll make everything easier for you. If you realize how many scary things there are in Drupal, you don't want them. But forms are tricky, because they can nest inside themselves. The elements inside your form can be nested inside field sets, and these field sets can actually be nested inside other field sets. And sometimes things are just nested inside something that's not really anything that just the developer would like to group stuff. So what you need to do is go through your array recursively, and look for anything that's maybe an input button and add the class. And what I did was I called up a developer, and I helped him write an example function for us. So I put it into the toolbox, and you can go in there. You only have to define your switch once, and it will recursively go through your form, and it will add these classes where we want them in the form. Again, I won't be going through the code itself, but it's in there, and you're very welcome to just copy-paste code from there. So that was about it. So what we did was we took a look at what was wrong with a very common approach to theming. I tried to show you another way to do it, and what some of the benefits are of that. I outlined a four-step plan of getting this into your workflow that was analyze, streamline, define, dominate. After the session, we shall be chanting this outside.  So that was about it. Online I have the slides. I took the liberty of creating a short link, but you can also go into the DrupalCon website. Or if you're watching this on the DrupalCon website, later further down the side, there's a link to the domination tools, and there's also a link to the fireworks stencils I created. They're very simple, but again, it's just a quick way of writing markup on site fireworks comps. Thank you. Are there any questions from this very intimate group? Yeah? OK. The question was, how can you sleep when Morton is snoring? The answer to that is you actually can't. I have often experienced I had difficulty falling asleep when people were snoring. But this is the only case in my life where I experienced being woken up by somebody who was snoring, because he was snoring so badly, even after I fell asleep drunk. He woke me up. I had a question earlier today. I just repeated, which was about I keep saying that we want to do this in template PHP and inject all our classes. And then I suddenly said, you should go back to views and start adding classes inside views. Isn't that inconsistent? And it is, but for good reason, it's inconsistent. When we go in and we add our classes in views instead of adding them in preprocessed function, we give our site builders the ability to output completely styled new content and new page types on our site. So if you create them a style guide, or if they have seen your handwriting on the printouts, they can go in and they can define new lists with completely new content in it, but just by adding your objects into different fields and wrappers and list items, that content will get output styled completely. And so this is what I was talking about with extensibility. You want to be able to deploy new content. You want to be able to expand your site. This is a living, breathing thing. It's a web system. It's not a page. And you want to do that without having to call up the FEMA every time you add a new list to your website. And that's the reason we want to do it. And we want to do it in views. And the reason we want to do it consistently is to help you find it.  If it's a view, the first place to go is going to view and look in the style overrides. If it's not a view, we're going to template PHP and look there. So it's not consistent. But it makes sense from a business standpoint. It allows you to deploy new features much cheaper. Yes? This is perhaps not only CSS, but overall structure changes. I've often had problems where I'm trying to modify the output in some way. And I've found a hook that should work, and the documentation sneakily says, modules can use this hook. And what I find is that I can't use it in my theme or my template file, because somehow it just doesn't work well. Are there any tricks to solving these problems or handling them better, or is it just a floor and dribble that they also don't work on the theme layout? The question was, you can go in and you want to achieve something, and you find a hook to do it. And it turns out that hook can only be called from modules. I'm not sure it's a floor. And the question was, how do you get around this? I'm not always sure it's a floor. Sometimes there are good reasons that certain hooks are only called at certain times in the rendering process. Other times, maybe we're talking a floor. In Drupal 7, I think almost any alter hook can be called in your theme.   So you can do a lot of things in your template PHP you can't do now. But the only workaround is just write a module. I was very intimidated by writing modules until I found out that modules consist of two things. They have an info file that says what the module name is, and if that module has dependencies, you have to write them on a line. And then it has something that's completely the same as template PHP. It's just called .module. And in there, you write your alter hook. So just create a module. I always have a stack of site-specific modules that I've created. It could be something like maybe I have a bunch of ready-made features on my site that defines everything. But for this site, the image styles are different. Don't fret about it. I'll just write a module. It's literally 10 lines of PHP. And I will have customly overwritten my features with new image styles, for instance. So if you need to invent a new image effect, just do it in a module. I don't know if anybody else has a good solution for it. But it turns out modules are even simpler than themes. Or they can, at the basis, they're even simpler than themes. I'm not saying you should try to figure out how C-tools work, but writing a module that consists of two files doesn't take long. This is my best back. Cool. This is the end of the dominate the theme layer, redo, director's cut. There will be an unrated edition that will include pictures of Morton DK, and they will be uploaded online. And if anybody is able to get their hands on the famous video of Morton stripping at the DrupalCamp, DrupalCon DC, I'm very happy to include that also. Thank you. My name is Gordon. I saw me here.


You and your family could travel coast to coast without a single tank of gas on board a high-speed train. I am obsessed with trains. I love trains. How long is it going to take before I get my high-speed rail? Well, I'll tell you, I can't wait. I feel the same way you do. In Liberals Dreams, this is what America's high-speed rail network looks like, was the headline of a Slate article about this map by graphic designer and transit advocate Alfred Tuw. That was eight years ago, but the map has started to get attention amid thoughts of new high-speed rail funding. In January 2020, I Want Her So Fucking Much was retweeted or quote-tweeted fifty-three thousand times from an account with under a thousand followers. The user then reply-tweeted with a rendering of the US if we had a high-speed rail system. While a lot of people on Twitter say hyperbolic things for retweets and jokes, even Transportation Secretary Pete Buttigieg shared a recent Vox article featuring the map saying, Gen Z is dreaming big, it's time we all did the same. What these people may not be paying attention to is that in the real world, high-speed rail is wildly expensive and predictably destructive to communities. Building it requires bulldozing and disrupting neighborhoods to lay down the track. The Transportation Secretary's definition of dreaming big is applying 20th century technology to the problems of the 21st. When funding for the initial part of the California high-speed rail line was voted on in 2008, it was supposed to link Los Angeles with San Francisco for about $33 billion and take about a decade to complete. As the years dragged on, the cost ballooned to $100 billion at one point, and the project had to be scaled back significantly. I like trains and I like high-speed trains even better. In 2019, after Governor Gavin Newsom replaced Jerry Brown, he scaled the project back to a section running between Merced and Bakersfield. Current project, as planned, would cost too much and respectfully take too long. What Gavin Newsom has done is he's spitting Jerry Brown's eye. Newsom basically said, you know, Jerry, this is your little choo-choo, and you know what, I can't afford to pay for your dream. Joel Cockin is a fellow of Urban Studies at Chapman University and a longtime critic of high-speed rail. This is the ultimate train to nowhere. Going from two places that, first of all, don't have any particular relationship with each other. You have to get a car once you get to the station, and it doesn't go to any job center that anyone's going to commute to. So it's really almost like a vestigial organ that's been left. You know, it's like the transportation appendix. While people dream on Twitter about high-speed trains connecting American cities, California's project is an example of what it actually costs to build. What we're talking about is a vision for high-speed rail in America. In 2009, President Barack Obama proposed building 8,600 miles of high-speed rail and received $10.1 billion from Congress toward that goal. 12 years later, there's nothing to show after the money went to upgrading Amtrak instead. The Kato Institute's Rando O'Toole estimates that based on the cost overruns and setbacks of the California project, building 8,600 miles of high-speed rail would have cost well over $1 trillion. I don't think there should be any additional funding because I think it has been poorly managed, and I think the project needs to be canceled. Baruch Feigenbaum is the senior managing director of transportation policy at the Reason Foundation, which publishes Reason TV. Feigenbaum says we could be on the verge of a dramatic shift in how Americans work and live that makes high-speed rail even more absurd. But high-speed rail typically is business travelers. And if we're going to see more substitution with Zoom and more of meetings that are remote and fewer in-person trips, that's going to make high-speed rail even less viable than it already is. We've got to take things to the next level. You look at what our counterparts in Japan are able to enjoy, but really across the world, a place like the UK or Turkey, I want the US to be leading the world. Comparing the US to Europe and Japan, well, we are not those other countries. We have an interstate system. We have much lower population density overall. Less density means fewer passengers, which means less revenue. Modern trains typically require massive taxpayer subsidies, the same as expected for California's high-speed rail. So you're actually having some subsidies from lower-income Californians, subsidizing business travel, which seems to me to be a very odd policy. Right now, there simply isn't a path. Governor Newsom has taken some very interesting positions. From my point, he has some good position. When he came into office, he basically pared down the rail system and said we are going to focus on the Central Valley. We're not going to focus on San Francisco and Los Angeles at that time. Because we don't have the money and basically because high-speed rail is something for upper-income Californians who are not the group that voted for me anyway and not really my priority is, you know, someone who's pretty far the left and pretty progressive. We'll see what happens. I don't think he would turn down federal money for the California high-speed rail project. This is the future. This is the future of transportation in California. 100% electrified system cleaning up here. Newsom, along with a few other politicians, are already vying for those federal dollars, now that the White House, at least in theory, is behind the idea. There is a transportation reauthorization bill that is the same as the infrastructure bill. It's passed every five to six years by Congress. Traditionally, there has not been money for high-speed rail in that bill. The other way they could do it is supplemental funding. Feigenbaum says neither is likely to happen in the near future, nor are two new bills that would fund an interstate high-speed rail network likely to pass, one that would provide 32 billion and the other 205 billion. So the question is, will there be money? What we're seeing is a lot of talk about high-speed rail money, but not a lot of action. I want the U.S. to be leading the world when it comes to access to high-speed rail and I think we have a real opportunity to do that, especially with the bipartisan appetite for real investments that we have before us this year. President Biden promised to make sure that America had the cleanest, safest, and fastest rail system in the world during the 2020 campaign. As Congress plans to vote on a massive infrastructure bill that President Biden has already signaled should include some type of high-speed rail, politicians should pay more attention to California's costly disaster than a map they find on Twitter.


Hi everyone, Joe for jaspyscasebreaks.com coming at you with a random number block randomizer that'll knock out, that'll finally fill picker team number 50, featuring 9 teams here, these teams right over here. This is how the number block works, I think most everyone by now should be familiar with it. Big thanks to this group for making it happen. There are the numbers right there, did I grab the right? Yeah I did. There are the numbers right there. Let's roll it and randomize names and numbers 4 and a 5, 9 times, 1, 2, 3, 4, 5, 6, 7, 8, and 9th and final time. We got Michael down to Mark after 9 and 4 and a 5, 9 times, 4 the numbers 1, 2, 3, 4, 5, 6, and 9th and final time. After 9 we got 5 down to 9. Alright Michael with 5, Mark with 7, Steve Birch with 4 and 8, Joel with 0, Mark with 2, Tim with 3, Michael with 1, Mark with 6 and 9, nice. We're at column B and coming up in the next video will be the break itself, jaspyscasebreaks.com.