All right, so we'll go ahead and get started. You have come to the future of commerce on Drupal 8 and Beyond presentation. And I am Ryan Sarama with Commerce Guys. I am a longtime community member starting with UberCart on Drupal 5 and even did some stuff before that. And my first blog was on Drupal 4.7, and I got my first ever freelance contract by putting up a two-page blog post about, you know, QuickBooks integration, so it's always been about e-commerce and it's been fun and I've, you know, grown and learned a lot through being a part of the Drupal community. For commerce, 2.x on Drupal 8, we've actually brought in a co-maintainer, so Boyan Savanovich, who could not be here, so I'm presenting on his behalf, really, is the co-maintainer for Commerce 2 with special focus on the PHP libraries that we are developing outside of our Drupal modules, and then I'm more focused on the actual Drupal side with entity development and all that kind of stuff. But we are both employees at Commerce Guys. Boyan works remotely from Serbia. I work remotely from South Carolina, probably very similar states. And we are the creators of, of course, both Platform.sh and Drupal Commerce, Drupal Commerce itself being born in, you know, 2010, late 2010, early 2011, finally launching at DrupalCon London. So it's, you know, been around for a while, and really our vision since the beginning has been for Drupal Commerce to be like the number one open source e-commerce platform in the world. It's very visionary because it's supposed to be, but we've always said that we power truly flexible e-commerce because, you know, because we're built on Drupal, anything can be altered. Nothing has to be hard-coded. A lot of what we do depends on rules and views and other things that can be overwritten, disabled, changed, et cetera. And I'll just start now by, by providing that sort of an introduction. I'm not sure, you know, by, by show of hands, has anybody here never used Drupal Commerce on a project? That's new to a few people, yeah, okay. So the big idea behind Drupal Commerce is that it was built from scratch on Drupal 7 to take full advantage of Drupal's Entity API. So the fact that in Drupal 7 anything can be fieldable, anything can have multiple types and then you can display them in a variety of different ways, including using views for any type of entity. You know, we built everything around this system, so all of our administrative lists like product lists, orders, line items, all that stuff are built using views so anything can be customized from the user interface and of course exported to code or altered by whatever module you use to maintain your project.  So in Drupal Commerce on D7, we contributed a patch to views to allow views to render a form so you can actually customize the shopping cart form in the same way you would customize the shopping cart block, among other things that you use views for. We also use rules for all of our business logic. So determining pricing, determining schedules, product availability, and you know, payment method applicability for any different order, you know, maybe based on country, you have different payment options or shipping options. All of that sort of business logic is handled via the rules module, although you can use equivalent Drupal hooks to do the same things. And of course, as I mentioned before, the big idea here is that we wanted to hard code no business logic so that you didn't have to undo something that's in code in order to make Drupal Commerce work for your particular client or use case. If anybody used UberCart before on D6 or 5, you might be familiar with the fact that, you know, everything had to be a product and a node was a product and so you had to have a node, you know, whether there was actually any need to display product data or not. So such as a, like an event ticket, like buying your ticket for DrupalCon. You know, it doesn't necessarily need a standalone product page. It's just a skew that then gets added to the cart via some other form. So we sort of tried to roll back a lot of the hard coded things like that in both the data model and the business logic in Drupal Commerce. And then we also rely on essential contributed modules that really round out the feature set. So we really tried to be minimalistic in what we included in the core feature set of commerce. For example, there is no shipping module in the core of commerce. It's a standalone project. There is no PayPal or authorize.net module or any other payment module. Because the core framework is really just about defining the basic systems and interfaces you need to do business online. And then all of the modules that, you know, that we have for Drupal Commerce, there are several hundred offer payment method integration, shipping integration, different ways to promote and discount your products. Integrate with third party services like MailChimp or other mailing services or marketing services. And some of these, you know, we consider as essential contrives. These are the ones that we maintain. We put them into commerce kickstart, which is a distribution. And so, you know, we're making sure that they're being maintained, kept up to date, certainly addressing any security issues. And, you know, where possible, working with other community members to keep these up to date and keep them all moving forward. And, you know, at the end of the day, we believe we're doing something right, because, you know, we're up to about 55,000 or so sites reporting into Drupal.org as using Drupal Commerce. Of course, not all of those are live sites because Drupal.org statistics include, you know, development sites as well. Or maybe sites that use parts of the module but don't actually represent live stores. But in any event, there's thousands of sites that are using Drupal Commerce to power their online business. And I'm sure that there are many represented in this room here. Including myself, I use it to sell cheese on the internet. So there's, you know, plenty of use cases out there. But as I said, commerce kickstart is actually a distribution of Drupal that was built to round out the user experience for Drupal Commerce. Because out of the box, it's really bare bones. It's just a teaser list and that's it. There's nothing, there's really nothing to look at when you install commerce itself. So we said, first of all, we wanted to optimize the stored administrator user experience. Because again, bare bones commerce out of the box requires you to do things like manage your product skews in one place and then your product displays in another and reference, you know, link them together via a reference field. Within kickstart, you know, we have the inline entity form module that, you know, can actually let you edit both entities on one form. A few other things, like using a new module we wrote called the views mega row module, which lets you look at a view. This one is orders and you can actually expand, you know, any row to include just a summary of the order and update the order status. Things, you know, just things like that that make the admin UX just a little better. In all of these modules that we, you know, we use the inline entity form, entity referencing, of course, views bulk operations for commerce. The views mega row, those are all standalone projects that you can use outside of commerce. And so if you have an existing Drupal commerce site and want to optimize the administrator user experience, you could look at commerce kickstart, find the modules, put them into your project and, you know, not have to worry about using the full distribution. On the front end, we also created a fully responsive theme, including add to cart forms and checkout and everything. And then optimize, you know, product pages with a few best practices, big, pretty images, and a fully functioning faceted product search that was built using the search API, facet API, views. And then, of course, you know, it can connect to solar on the back end if you want to. And for this we did just some neat things like added support for price field facets so you could have like a, you know, a range of prices that you're searching for, that kind of thing. And it also really demonstrates how to create a search index for, you know, using search API that combines both product data and node data. If you're using a node to display product information, that's essential. So you can look into here to see how we constructed that index if you're curious. And then finally we also built into the back end what we called the marketplace, which is just an easy way to find all of those modules that I've mentioned that either integrate with, you know, third party services who have partnered with us to make sure that the integrations are robust and supported. And then we also linked to, you know, a variety of just community contributed modules that would also improve the store UX. So once again, you know, we like to see the graph going up. There are about 13,000 or so sites reporting usage of commerce kickstart. And that's, you know, probably more weighted toward demonstration sites and test sites than commerce itself. But there are, you know, a fair number of examples even in our showcase on DrupalCommerce.org where people successfully took the distribution, put a different theme on it, and then were able to launch a store very quickly. So, you know, we have positive indicators that what we're doing is useful, we're headed in the right direction, and this talk is all about the things that we believe we can do better on Drupal8. Are there any questions? I can pause here just about like DrupalCommerce itself or commerce kickstart the distribution. Or should I just jump right in? Okay, so I'm obviously happy to answer more afterwards. And of course, if you have any other, you know, questions, you can always go to DrupalCommerce.org and read the documentation that Josh has produced, or, you know, find questions and answers there, or even there's a pretty vibrant group of folks in the DrupalStackExchange if you go to Drupal.StackExchange.com that answers a lot of DrupalCommerce related questions, myself included. So, DrupalCommerce 2.x is of course going to be on Drupal8, and one of the first questions that comes up when we start talking about D8 is, well, when will DrupalCommerce be ready? And it's really impossible to say. It's obviously dependent on Drupal8 being ready. The good news is that we'll have fewer dependencies we have to wait for before we can consider DrupalCommerce, you know, ready for use. I'm not sure who was following along progress during the Drupal7 development cycle, but we actually were writing DrupalCommerce at the same time that views was unstable and rules was in alpha and the entity API was changing on a weekly basis, and so we were always having to rush to keep up with the changes. And that's not the case in Drupal8 because, of course, views is in core, and we are not going to have a hard dependency on rules anymore. It will obviously enhance, you know, your ability to customize the store, but we've just decided that we won't hold up the release of DrupalCommerce for a release of rules. And, of course, the entity API is much more robust in Drupal8 than it was in Drupal7. So a lot better tools means we'll have a DrupalCommerce release a lot sooner after the Drupal8 release, but I don't have, like, a date. I just tell that my salespeople not to sale any Drupal8 project until at least, you know, the second half of this year probably wouldn't be able to launch anything until, you know, early next year that depends on a lot of other contributed modules in the Drupal space. But to start, you know, DrupalCommerce 2.x development, we actually gathered a crew in our office in Paris to host a sprint that was really based around validating the architecture of the core commerce framework itself, but also our strategy of using standalone PHP libraries and using Composer to pull those into Drupal as dependencies for the modules themselves. And we actually had a variety of contributors from other e-commerce projects and then a few other Drupal guys and also the creator of Symphony himself, Fabien Potentier came by to give us his input. And the one bit of feedback that I remember of verbatim was that he said, I'm glad I'm not developing an e-commerce solution. This sounds really hard. But he was very helpful in just helping us understand, you know, how to create our libraries in such a way that not only are they useful to us, but they're also useful to Symphony and therefore other Symphony-based e-commerce projects such as Sonata. He's from the Sonata project and we had a few other Symphony-based projects represented as well. And they've even seen since this time uptake in collaboration from other PHP-based e-commerce developers, which has been a huge win for us. So once again, we are starting from scratch with a clean repository, much like we did on Drupal 7. And that's, you know, just because everything is different. The difference between Drupal 7 code and Drupal 8 code is as stark as, you know, as big as the difference between Drupal 7 code and like Drupal 4.6, like it's really, really different. And so we're starting from scratch to take the opportunity to re-architect around the new, you know, concepts and programming models and whatnot that you have in Drupal 8, just simply because we're using object-oriented programming now with namespaces and dependencies and Symphony components and a variety of other things that we wanted to make sure we were making the best use of them instead of just kind of carrying forward our old hooks and our old data structures. So we started by reviewing the entity model. So our entity diagram for commerce1.x looks like this. We have five entity types that we define in commerce. That's the order, the product, the line item, the payment transaction, and the customer profile. We define a few different field types like the product reference field, the customer profile reference field, and the price field. And that's it. That's all the core of commerce1.x defines out of the box. And we actually decided that, you know, one entities are easier and cheaper to define now thanks to the, you know, the patterns we can follow in Drupal 8. And so we decided to add a few more entity types to the mix. This is a little bit out of date, but the gist is, you know, we won't be including variance as a standalone entity type and we'll actually have one or two other payment-related entity types in core. But the big idea is that you'll have a store entity through which everything is, you know, managed. So products belong to a store and this would hold your global configuration for the site and store logos, email addresses, contact information and that sort of stuff. So my products would be related to that. Orders would also be related to stores. So then you can end up with a multi-store scenario where access control is governed by what store a product or an order belong to.  We also have an entity type already in commerce2 that we're using to represent your card-on-file data. So the payment tokens that you would use to process recurring transactions or card-on-file payments and a few other things going on. But, you know, the other, you know, basic ones remain, product orders, customer profiles, payment transactions and line items. But we're going to change the way that some of those work together. And also, thanks to the fact that Drupal 8 now has the entity reference field in core which was developed for Drupal commerce on D7, we no longer have our custom reference fields to relate these together, just entity reference fields, no more customer profile reference field or line item reference field or anything like that. So the first big entity change that we brought is to really implement a hierarchical product model that does not depend on nodes for displaying products. So I'm not sure how familiar everyone is with products on Drupal 7 in commerce, but whenever you define a product entity, it doesn't have a front-end URL by default. You have to create that by creating a node and then associating that node to a SKU or a set of SKUs using a product reference or an entity reference field. And then we look at the products that you've referenced and we will sort of create the hierarchy on the fly as part of the add to cart forms logic. So if you have a product with attributes like sizes of a shirt, you would reference the individual SKUs and then the add to cart form knows that you should render this group of products on the add to cart form with a select list for choosing a size. So pretty simple, but what it ends up doing is it makes you have to manage a lot more data at the point of display. So it would be nice, for example, if I could just reference the parent product and have it include every product in the group. So that's one thing that we probably could implement on Commerce One. We just, you know, nobody's done it yet. But it also would be nice if we just didn't need nodes at all. So the idea here is that in Drupal 7 we continued to use nodes as product displays because nodes were still very important. You needed nodes if you wanted to have comments. A lot of other modules were still built around a node-based, you know, node-based content model. We just didn't feel comfortable at the time, and this was 2010, just abandoning nodes entirely. But we knew that products still needed to be a standalone entity type, and we still needed to define individual variations of our product as unique SKUs for accounting and fulfillment purposes. But now we believe that, you know, the entity API has advanced such that we don't need nodes anymore as a sort of intermediate layer. And we will just instead support products having their own, you know, URL in the front and, you know, product slash one, product slash two. That, of course, similar to Path Auto you would be able to create, you know, URL tokens for those. But what we want is to be able to define a hierarchy for my product type and choose at which point in the hierarchy should a unique URL be created. So I might have a URL that lets me choose the colder of my shirt and the size or for the same product, you know, product group I could do, I could support both the combined interface and standalone interfaces if I wanted to. We haven't actually programmed that all yet, but we have designed it to create a new interface mocked up and this is where we're headed. And the big win here is for the bulk creation and management of groups of SKUs because right now you have to manually essentially enter in all of the different variations and then reference them in what we would prefer to do is to define the hierarchy and create a new group and have it automatically create all of the different SKUs beneath it and, you know, manage that. Oh, there goes my... Sorry. And it's probably going to take a second to come back now. Naturally. Are there any questions about products while this is coming back up? Yeah? I'll repeat the questions. Yeah, so the question was how might we make Drupal 8, you know, commerce 2.x on Drupal 8 more friendly out of the box since we aren't dependent on this node-based configuration and, you know, immediately, just by the fact that every product will have a URL by default, you know, as far as a merchant is concerned, they're adding a product page and once they do that, like, it has a URL and they don't have to, you know, they don't have to manage references or any other, you know, content type configuration or anything. I'm not sure that we'll have, like, a catalog out of the box. Although since views is in core, I guess we could have just, like, a disabled view that could be enabled or something like that. But I'm not sure how rich the out of the box experience would be. So, certainly open to feedback on anything that you think might, you know, enrich the product, you know, catalog management experience and be, you know, broadly applicable to a majority of users. But, you know, it's kind of hard to know because, you know, a lot of different vertical markets have very different needs out of their product model. If anything, though, like, it would make the most sense to optimize for, you know, a physical-based product catalog and, you know, I wouldn't have a problem even having multiple different types of catalog views. But maybe that would be best as even a standalone module just because you could, you know, change it faster. That's really it so far. Any other questions that would be related to products or, yeah, coming in? Yeah, so the question is about data mining and business intelligence, you know, plugins. To be honest, I mean, we certainly aren't thinking there yet that we're just building out the core framework.  It shows what products convert more and all that kind of stuff. So I would look into that. It's giraffe with a J, so J-I-R-A-F-E. And that might be a good place to start. So another thing that we want to do beyond just making it easier to build out your product catalog and manage your product database is to actually have more opinions about checkout user experience. In commerce 1.x we basically just we didn't do much to support checkout best practices beyond allowing you to basically choose between anonymous versus authenticated only checkouts. So there's no reason for us not to have that. Or at least, you know, yeah, it would be a block so it could be moved around, disabled, whatever. But to bring more, you know, conversion oriented tools like this to the core framework would be useful. But also, we want to be able to actually support multivariate testing or split A, B testing on the checkout form. Or even just multiple checkout paths based on the product that's being purchased. So just to explain a little further in Drupal Commerce right now you have one checkout form configuration and you can alter it using an alter hook but it's really kind of flaky. It's not the best system for creating a different checkout experience whether it, you know, whether because you want to do A, B testing or because you have a different checkout workflow for your B2B customers versus B2C you know, whatever it is we just want to support that and the way that we'll do that is ideally by using Drupal's form modes so I'm not sure how familiar we are with Drupal 8 but in Drupal 7 you have the concept of view modes where any node for example could be displayed as a teaser or as a full page or as a search result or an RSS, you know, entry. Drupal 8 extends this concept of different ways to display the rendered content to supporting different ways to display the edit form and since the checkout form is really just an order edit form that may or may not have multiple steps we believe that we can use form modes to define both the back end order editing interface and the front end checkout workflows and then basically just have the checkout module give you some sort of mechanism to choose or indicate which particular form mode should be used for this current user so I do believe it's going to be possible but again I haven't researched it yet and tried to implement it so once you've worked with form modes I'd love to hear about your experience but the idea would then be to not have to maintain anymore our drag and drop checkout form builder but just build that all into the form modes interface and you know have one less thing that's unique to commerce and just be more natively using Drupal concepts and we're also going to be very more controlled from status to status so right now in commerce and uberkart before it we basically just implemented order status updates as a select list so any administrator can go in and change a value in a select list and basically say this order is now cancelled this order is now complete but there is no check and balance that ensures that this order was paid for or that a refund was issued and so really when we're dealing with an order it has a very complex workflow that's more defined and controlled with state transitions that actually control moving from one status to another and don't support invalid transitions so you wouldn't be able to move from a completed order to a cancelled order without first going through our refund step that sort of thing and the model or the paradigm that I'm following here is the has anybody used JIRA for project management? yeah so in JIRA every project can have a number of types of issues and the issue has an assigned workflow and in this workflow you define the steps you define the state transitions you give them a name so as a developer I come in and I say start progress and it moves it to the in progress status and then I can either stop progress or complete it or mark it as done but these buttons actually give me sort of a user interface text to put on the button to initiate the state transition there might be in this transition some intermediate form we have to put in additional information or explain why you're reopening a closed issue that kind of stuff and so this sort of functionality is what we are now implementing for orders so that no longer can you just randomly move an order from one state to another nor would you be able to sort of daisy chain together via rules a bunch of different order status updates there's a lot of trouble on commerce 1.x just because it's really difficult through rules to manage the dependencies of one state automatically moving to another to another and so this is actually already being worked on in a workflow module I don't think it's on Drupal.org yet I think it might just be in Pedro Canberra's GitHub but we'll be continuing to flesh this out ideally as a standalone entity workflow module one of which does already exist on Drupal 7 so we're pursuing either reusing that or making this part of the roadmap for that project but then we will implement it specifically for orders and I have a hunch that we'll also implement it for line items because oftentimes the order status is derived from the line item statuses so an order is shipped whenever all of the line items have been actually shipped so in the case of like a back ordered product you wouldn't mark the order as complete until all of the products have come into the warehouse and shipped out and so on so I'm really excited about this because there are just a lot of things that aren't easy with the way order statuses work in commerce one and I have a blog post about it that I haven't published for like six months so shame on me I'll make sure I do that after this conference finally we are not finally we do want to support discounting core this is the current commerce discount user interface which I'm not a huge fan of but the concept is good which is that just throwing a merchant at the rules user interface is a losing strategy for happy customers because none of our merchants are equipped to navigate the rules UI and not break something and manage their discounts that way and so the discounts module in commerce 1.x provides a simpler user interface with the ability to still use some conditions and it also integrates with the coupon module and a few other things but we're actually pursuing better opportunities to support discounts in core and finally because of the addition of the store entity to the core of commerce 2.x we will support both multi store and multi vendor scenarios out of the box so right now there's the commerce marketplace module that facilitates some of this but for an example is in commerce 1 you cannot say like easily use different payment credentials if you had a multi vendor website where I was supplying my paypal credentials and wanted customers buying from me to submit payment to my paypal account that's actually a little bit difficult in commerce 1 and does require the commerce marketplace module to provide both a user interface where merchants can enter their credentials but also kind of hack around some limitations in the payment method to make that work. Another big thing though is and we're not sure how far we're going to go down this rabbit hole is that a multi store or a multi seller website needs to decide what it should do when customers try to order products from multiple vendors you know should it be two separate shopping carts should it just all be one who actually gets paid, who's responsible for fulfillment we haven't answered all of those questions to decide just how much will support in core commerce which will depend on contributed modules for but again if that's a discussion that's relevant to you Boyan would be more than happy to discuss that I'm happy to discuss that at the very least we'll have the data types in the core of commerce that we need to support any scenario but when it comes to systems and interfaces we're not quite decided so as far as actual progress goes I'm not sure if I should try this live or not looking at Drupal 8 right now I do have a commerce menu item where I can come and access my store because the resolution soloed season the sidebar so it's not going to look great up here but you know you can create orders you can create products that have no fields and no information on them that's useful but the entities are there the pattern has been set so that we can continue to define all of our entity types and then you can also do some configuration like manage your currencies and import currency settings import you know tax settings number formats and the like and then also set your store information which is where you manage your store entities and their fields so this is the current status of things there's no front end work yet as far as add to cart form or checkout form goes and that's kind of on me so I'll be looking to do that over the next few months and hopefully have a great demo for DrupalCon LA are there any feature related questions as it pertains to the development of commerce on Drupal 8 right now okay let's talk about what may be actually the most exciting part of Drupal commerce on Drupal 8 we are actually whenever we got wind that Drupal 8 was adopting symphony and that there would be composer as a core concept now for managing a Drupal site that got our gears going where we realized well we have the opportunity now to move functionality from our modules out into standalone libraries where we can still depend on them in our modules but we can also invite other projects to collaborate around them and influence the development of other projects and basically collaborate around the essential things for doing business online that aren't specific to Drupal and certainly don't need to be specific to our solution so we started out by researching the deficiencies in our own software we looked into pre-existing price management and currency management libraries pre-existing e-commerce bundles for symphony even some non-symphony and even non-php based applications to see who is solving things like locale specific currency formatting and locale management address formatting and validation price management and currency management all that stuff and Boyan Zavanovich I mentioned previously is our commerce 2.x my co-maintenor in Drupal commerce now in general and he's also an e-commerce machine and he just hammered out this research over the course of a couple of weeks and basically just identified some age old tax management issues as deficiencies that we could address in generic solutions a price management API that doesn't actually really have an API right now if you're manipulating prices in Drupal commerce you have to really interface or interact with the data array of a price field to set your price components and we just never really finished the API around that also every new point release of Drupal commerce brings with it yet another currency that we didn't support previously in terms of formatting it appropriately for that locale but even with every currency covered we still wouldn't accommodate the fact that each country may render the same currency differently so the euro looks differently from country to country around Europe much like the peso is going to be rendered differently from a formatting standpoint from country to country and the dollar between the US and Canada and Australia it's just we don't have support for that right now in our currency API we also have really abused the address field implementation for managing addresses and Boyan has actually improved it based on our library work but it just was difficult again to customize address formats to know in advance which countries require you to select a state which ones depend on a postal code whereas different fields optional all that kind of stuff and also we identified as a weakness not something to do with our code but really just to do with our community which was we had a real inability to collaborate with other PHP app developers that are doing e-commerce because all of our logic and all of our knowledge that we've amassed over the last six or seven years was locked away in our Drupal modules so not useful to any other project and we wanted to fix those things so we proposed standalone solutions for internationalization which is managing locales and then also managing number formatting for each locale and then additionally extending that to currency formatting that's locale specific we also proposed to solve once and for all address form generation validation and locale specific formatting for every country in the world lofty goal we also proposed to support territory grouping for the sake of simplifying taxing shipping payment selection all that stuff and then also as far as we can encapsulate like tax rate management and price calculation and manipulation in standalone libraries I'm not sure how relevant European style VAT management is to Latin American stores but I'm definitely happy to talk about that afterwards so we we knew that we didn't want to just create based on Boyan's research again presenting on behalf of him we did know that we weren't going to just produce a set of interfaces that other applications had to develop and provide all of the logic and data for we also wanted to bundle in unprecedented data like all of the address formatting rules for every country in the world that's unprecedented for any e-commerce library anywhere as far as we know we also decided we wanted minimal dependencies so we weren't going to create these as symphony bundles and make them dependent on other things certainly weren't going to make them dependent on Drupal or its APIs we certainly are striving for simple APIs with clear documentation and examples for everything and full test coverage so that's a very high goal actually this is interesting in doing the address library our test coverage has turned up actual bugs in the data source that we were using and we have been improving our data source that we're now consuming for all of our address rules it's been fun to see how that's worked out finally we wanted these to be reusable by any PHP based e-commerce application so we started with CommerceGuysINTL and this was a PHP 5.4 internationalization library powered by data from CLDR which manages number formatting rules for every country and locale in the world and so we built a library and we set it up to manage countries currencies, languages, etc and then also have number formatting rules and currency formatting rules for everywhere and it was so good that symphony is actually adopting our internationalization library into the core of symphony itself in future versions and even now in the current long term support version they've been accepting patches from boyan which is a huge win so we're not just feeding off of symphony we're also feeding back into symphony so really creating a very healthy partnership so the CLDR project just sort of lets us know exactly how to render the dollar, the euro the peso, any currency that did kind of different formatting for different regions the proper way for every country in the world and that's already done and we've already used it to improve the currency definitions in commerce 1.x then we have the pricing library which provides a price object where we are managing the storage the formatting, display, etc of a price which in commerce is defined as a numeric amount with a currency code and then right now we just support rendering that in one format for each currency here it will be locale specific currency formatting with additional class methods for managing like manipulating the price and tracking changes to a price object over time so exactly what in commerce 1.x we use price components for there's a bit of a holy grail goal here which is to also be able to properly apply discounts relative to taxes and that sort of thing but that may be stretching a bit far for a generic library and then the one that I thought was most exciting was the addressing library we found a data set from the android SDK that Google let us reformat and re-license I can't remember the license, BSD or something they let us reformat it from their giant flat file into JSON files put it out under an MIT license and now use that to do form generation and validation through symphonies form generators and validators and then also do again locale specific ordering of the elements on the address form and then rendering when you actually print it out basically on the screen versus print it out for usage on a label so all of that stuff the data set had that knowledge and we've now converted that into JSON files that we're consuming by this library to build all of our address forms for commerce and now we're getting other e-commerce projects to use the same library and build into it again just the power of the community is going to drive its accuracy and its feature set over time and so this being able to get that knowledge when Burnham's written about it on the Drupal commerce blog and again this solves so many problems for so many people that we really can't wait to start using it now and you've already begun to use this data set to improve all of our address formatting rules for address field on Drupal commerce 1.x and so I'm not sure this is just one example where the address form that's generated one is dependent on the country because you have different fields that are going to be required for each country some countries have provinces and cities you have to select some don't in some cases the postal code might be all that you need to submit an address form that kind of thing but how it's rendered might actually differ based on the language you're using to build the form so in this case this is a Chinese address rendered in English and so they have the address go from followed by my company, my street address district city province and postal code and that's maybe a more traditional like western sort of ordering of the address fields but if you're doing the same form in Chinese it would actually reverse you know the postal code province city and district so that you're selecting them in reverse order for Japanese addresses you also have to select a title so not just my first and last name but am I Mr, Mrs, Doctor, etc so all of these different requirements from each country for each locale are already working in the addressing library and being used by live projects right now so super super exciting and huge kudos to Boyan for driving that forward and also to Damien our CTO for finding the data set and convincing Google to let us re-license that and redistribute it I mentioned we had the zone library and this is just handling grouping territories together so for example you might have one payment method for any country in the EU but a different payment method for all international orders or the same might apply to Latin American countries where you're using the pay you as a payment method for only specific countries in South America but then internationally using some other payment method like PayPal or something but it also lets us do fun things like well shoot like prepare international tax zones so I know I've heard that you know Colombia can be difficult to implement and report on after the fact well it's even worse elsewhere in the US you know we're a total mess but even in the EU where VAT is supposed to be simpler to account for you literally have a German VAT that applies to any German address but also five postal codes in Austria which means you have to know that when you're calculating tax for the order and you have to know the inverse so if you're calculating Austrian VAT it applies to Austria except those five postal codes and the good thing is that all of these types of groupings are pre-defined and they don't change that often so the PHP library you know the zone library can amount to the tax library just sort of codifies this knowledge and then we'll again crowdsource it and get these other people that are developing other solutions that are specific to different markets to contribute to these definitions and help us keep them up to date and help us make better use of them in our own software and you know once again we feel like we're doing something right whenever we put out the addressing library for a bright shining moment we were the top trending developer on github and that is of course because all of these libraries are hosted on github and you can go find them, fork them, contribute to them we'd be more than happy to have you use them whether it's in a Drupal project or not we're already seeing collaboration around the tax library from other systems like Foxycart and shoot there was a new one in Kong recently that started to adopt the library so we're getting good participation and expect to see that continue to grow before I move on are there any questions about the libraries or where they stand or what we're up to with those so the question is how then, since these are all hosted on github is standalone libraries do we get them into Drupal and right now the installation process requires the composer manager module which is a standalone module for Drupal 8 that basically reads all of your contributed modules looking for a composer.json file and then updates the composer.json in your Drupal 8 vendor directory to in your Drupal 8 directory to include all of the necessary dependencies so it does just a bit of dependency negotiation make sure there aren't any duplicates but then ultimately when you run your composer update it's putting all of those dependencies in the one core or the one vendor brand the one vendor directory that Drupal 8 is using to fetch all of the other libraries and components that it's depending on so it's a bit of a manual process right now ideally that will become more automatic because it's a bit of a stretch to require everyone running this to also go and install a composer and do the updates and all that kind of stuff but that's where things stand right now any other questions about libraries before I move on so boyonsavanovich is leading the development on these and giving Drupal a great name to open source communities and also finding good partners to collaborate around them so huge kudos to him finally at commerce guys we're not just concerned about improving the data model behind our modules themselves but also improving the tooling that we have to build and deliver commerce projects and we believe that commerce projects are somewhat unique in the Drupal realm in the sense that they are exposed to more rapid changes they oftentimes have more rigorous and more involved testing testing processes and you also have to very often respond to the midnight whims of your merchants that want to see a new type of discount or promotion or whatever deployed immediately the next day so that they can run a sale or something so we ask ourselves the questions a lot how do we actually manage and scale complex e-commerce applications especially when code bases stretch across Drupal.org, GitHub, public repositories private repositories, site specific code, how do we actually manage that so that we don't take down someone's store when they're ready to take a sale live additionally how can we continue to deliver new features without disrupting existing shopping sessions because the last thing you want is to take the site down for maintenance to roll out a new update when somebody is in the middle of putting in their credit card information additionally merchants are often non-technical or almost always non-technical but they still want to be able to do QA and seal a live preview of the code changes that we're making in an exact replica of their live environment and oftentimes that includes all of the data whether it's products, users, customer profiles, etc that's just kind of what they need and so these sorts of things they're not specific to e-commerce, any Drupal project is going to have similar requirements but we found it to be especially true for our commerce projects so answering those questions drives a lot of our philosophy and approach to platform.sh which is just our Drupal based platform as a service that basically manages your code base via a Drushmake file so you can pull in any project from d.o from GitHub, from private repositories using a project specific SSH key, you can apply patches and basically just manage your code base with a lot more transparency into what is actually compiled into the project so I can just look at my project.make file and see all of the contributed modules that Josh has added since the last time that we rolled out a new version of a customer website then once you do that you commit a change and push it up to platform, it actually rebuilds the entire environment but it doesn't go down it just sort of puts the pending HTTP request in a bit of a loop while it basically rebuilds the environment and then deploys it so your customers might see a bit of a lag but nobody is actually losing a session or the site is not apparently going down even while you are rolling out new features in real time so there are a few other things that platform brings to the table related to QA of course we have just a branching strategy where any branch you create in your repository has a live environment for someone to do QA on and you can branch any number of ways that you want to and we maintain the parent-child relationship between your branches so you can basically create any number of workflows for developing, testing and deploying new changes to the live site we have also optimized it both for Drupal and commerce projects and just for bare bone symphony projects basically deploying a different tool stack depending on what type of project you are identifying your application as so in your Git repository you have these YAML configuration files where you say I am Drupal 8 versus Drupal 7 and then Git Composer and Drush and a few other tools out of the box or say your symphony and then you just get Composer and no Drush, no anything else and the idea is that you are actually managing the services that you are using including PHP, MariaDB, solar, etc from these configuration files so you can actually deploy like a whole new feature set like a whole new service to your live site so from an e-commerce standpoint that might mean turning on a faceted search powered by solar but you would want to test that downstream enable the solar service, configure it, tweak it and then immediately roll out the infrastructure change to the live website at the same time as you roll out the code and configuration change and so that is what Platform.sh enables you to do if anybody is interested in giving it a whirl I am happy to hand out free voucher codes or whatever but that is all that we are up to to support Drupal commerce and e-commerce in general on Drupal 8 it involves both the framework itself and the Drupal modules it involves standalone libraries and it involves improving the tools and processes that we use to actually manage these projects together if there are any questions I am happy to field them now otherwise we can go find more coffee do we have any data about market penetration? No, not particularly I only have a few examples of stores that I know that have launched I know that the LUSH website just launched in Brazil and that was started in London and then rolled out through a local partner in Brazil that is probably the largest one that I know about and then just a handful of other smaller projects that we see come in I am happy to hang around and take questions after the session is over if you are camera shy or whatever but thank you very much for your attention and hope you have a good rest of your day


There are no secrets to deliverance. Everything that we need to know about walking in freedom is found in Scripture. The Scripture says in 2 Corinthians 3, 17, For the Lord is the Spirit, and wherever the Spirit of the Lord is, there is freedom. I want to bring you to the simplicity of the Scripture. I want to go to the Scripture and talk to you about this wonderful ministry of the Holy Spirit that is deliverance. What is deliverance? Well, deliverance is simply to be set free. When someone is said to be delivered, they are said to be free. So we don't want to complicate this. We want to just go through the Scripture and bring clarification where there is a lot of confusion. And I believe that you will walk away with a deeper and more stable understanding of the topic of deliverance if you're willing to throw out the old mindset and pick up what the Scripture says. Often we're told things from the traditions of man. We're told things from religious establishments that don't necessarily align with Scripture. In fact, sometimes the things that we're taught are nowhere to be found in the Bible. And so as I take you through the Scripture, I pray that there would be great clarity that comes. Confusion can only abound if we're not willing to let go of old mindsets. And so as we look at what the Bible says here, I believe that you'll experience freedom not just deliverance from attack, not just deliverance from torment, not just deliverance from temptation, but also deliverance from confusion because as you begin to look at the truth of Scripture, light begins to shine brighter and darkness begins to dissipate. So I'll begin by saying that deliverance is a simple term. Again, to be delivered means to be set free. To be delivered is to be released from a bondage. Now often, and this is where a lot of the confusion arises, especially in discussions about deliverance, often Christians conflate deliverance for exorcism. Now there's a subtle difference between deliverance and exorcism, and this is not something that's talked about very often. In fact, we kind of just mesh these together and we use the terms interchangeably where deliverance always means exorcism and exorcism always means deliverance. To be clear, deliverance is the umbrella term. Deliverance is the general term. It's the generic statement. Again, to be delivered simply means to be set free. Now, depending upon what you're being set free from is what you will call that deliverance. So exorcism is a very specific kind of deliverance. If you're set free from temptation, that's deliverance from temptation. If you're set free from torment, that's freedom from torment. If you're set free specifically from demonic possession, you have a demon cast out of you, that is what is commonly referred to as exorcism. Now the scripture refers to this as having demons cast out. You don't necessarily see that term exorcism in every translation of the Bible, but that is simply describing when someone is being set free from a demon inhabiting their being. And this of course is something that we perform on the unbeliever. We understand that Christians can be attacked by demons. Some people use the term oppressed, which is fine as long as you're describing demonic attack. Christians can be oppressed, but we understand they cannot be possessed. They cannot be a possession of the demon where the demon is dwelling in them and they need an exorcism. In fact, the Bible says quite clearly in Colossians 1.13 and 14, who hath delivered us, and this is past tense talking to Christians, who hath delivered us from the power of darkness, and hath translated us into the kingdom of his dear Son, in whom we have redemption through his blood, even the forgiveness of sin. So that's Colossians 1.13 and 14. Those powers of darkness being described there are demonic powers. And so we see blatantly the scripture describing the fact that the born again believer has already been delivered from that form of demonic influence. And so we understand that deliverance from demonic possession or exorcism takes place before salvation or in the moments leading right up to it. And in fact, in many cases, exorcism is what inspires an individual to receive salvation. As I said, there's more than one type of deliverance. Again, when we think of deliverance, we think, oh, casting a demon out, that's only one kind. There's also deliverance from the penalty of sin. Ephesians 2.1-6 says, Once you were dead because of your disobedience and your many sins, you used to live in sin just like the rest of the world, obeying the devil, the commander of the powers in this unseen world. He is the spirit at work in the hearts of those who refuse to obey God. All of us used to live that way, following the passionate desires and inclinations of our sinful nature. By our very nature, we were subject to God's anger just like everyone else. But God is so rich in mercy and he loved us so much that even though we were dead because of our sins, he gave us life when he raised Christ from the dead. It is only by God's grace that you have been saved, for he raised us from the dead along with Christ and seated us with him in heavenly realms because we are united with Christ Jesus. Now here, I'm really going to turn some things on its head. Whenever you talk about deliverance and you see it in Scripture, for the believer, deliverance is most often referred to as something that is past tense. In other words, it's something that's already occurred. Deliverance is not like a liquid or a substance where you can get more of it or less of it. Deliverance is yours. The moment you were born again, you were set free. Now whether or not you choose to experience that deliverance, whether or not you choose to walk in that deliverance, all depends upon your submission to God. But we were already delivered from the penalty of sin. Everything about the new nature indicates that we've been completely rescued from the powers of darkness. There is no darkness in us. Romans chapter 6 verse 23, for the wages of sin is death, there's the punishment. But the gift of God is eternal life through Christ Jesus our Lord. Okay, so Romans 6.23 makes it clear that the penalty of sin has been removed from our lives, from our record. We are now delivered from the penalty of sin. Thank God for the blood of Jesus. The believer's responsibility is now to walk in that deliverance how? By the renewing of the mind. For the believer, spiritual warfare and deliverance are simply about fighting to believe the truth over the enemy's lies. There's an illustration that I use about elephants. And there was a gentleman who was noticing that several elephants were tied by their legs to a rope that was placed on a stake in the ground. So you have to picture this now.  Well, the gentleman asked the man who was taking care of the elephants, why don't they just break that rope? I mean, here we have these giant creatures tied down by comparison what looks like dental floss. They won't even move. And the man who was taking care of the elephants explained, well, ever since they were little babies, we would tie them to that rope and place the wooden stake in the ground. Now, when they were young, when they were baby elephants, that rope, that stake in the ground, that was enough to hold them in place. Now that they're older, they can break out of it if they want. They can move forward if they so choose. But they simply do not move forward because of the simple belief that they can't. And this is the case for many believers. We have this defeated victim's mentality, even this celebration of spiritual bondage, like this idea that, oh, I'm more spiritual because I'm bound, oh, I'm more spiritual because I'm attacked by the enemy so often or his attacks are working on me. And often we get confused between the attacks of the enemy and just the circumstances of life. But aside from that point, many believers don't realize what's available to them. And so they live in a certain way, under a certain power, simply because they don't realize that they can walk away from it. Now, I'm not talking about just positive thinking alone. Of course, renewing the mind is a bit of a task. But as believers, we have been delivered. You don't need more deliverance. How free can you get than free indeed? How much more free can you get than free indeed? Whom the sun sets free is free indeed.   We miss something if we think that bondage is a part of the Christian life. It's not. Or we go through deliverance after deliverance after deliverance or what many think is exorcism after exorcism after exorcism. Why? Because they don't realize that what the Christian life is. They don't recognize what's available to them. Now, I'm not saying we're not going to struggle with the flesh. I'm not saying that we're not going to struggle with deception. I'm not even saying that the enemy can't attack us. Of course, the enemy can attack us. What I'm saying is that we can choose to continue to walk in victory recognizing that we already have been delivered from these things. We just have to walk them out. Watch this now, Matthew chapter 6 verses 8 through 13. Don't be like them for your father knows exactly what you need even before you ask him. This is the Lord's prayer here. Pray like this. Our Father in heaven, may your name be kept holy. May your kingdom come soon. May your will be done on earth as it is in heaven. Give us today the food we need and forgive us our sins as we have forgiven those who sin against us. Watch this now and don't let us yield the temptation but rescue us from the evil one. That's one complete thought right there. How are we not led? How are we not submitted to? How are we to find ourselves distance from temptation? Well, we're rescued from the evil one. Why? Because the evil one tempts. So this portion of scripture is describing a prayer for deliverance from temptation. Do Christians need deliverance? Absolutely. It's right there. Now, of course, we understand that demons can tempt us but demons don't do the sinning for you. This is why Christians love the lie that they can be demonized because now they have something to blame for their undisciplined flesh. Oh, I'm telling you, itching ears don't want to hear this. I'm just going to give it to you straight like it is. People want to blame demons because they don't want to take up responsibility for the work of the flesh. The flesh that they fed, the flesh that they give into, the flesh that they listen to on a daily basis. No, better to blame a demon. And then they say like, I can't stop. Why? Because it's a demon. No, my friend, you're a born again believer. You cannot be possessed. We've been through this a thousand times. I'll go through it a thousand times more. The day will never come when I stop teaching this because many people are experiencing freedom when they recognize the enemy does not have that kind of power over them.  Why? Because the Christian life is not a life of defeat. If you're in spiritual bondage, you're not living the Christian life. Now, some might say, brother David, that's a hard standard. I don't get why you're saying that. Well, the reason some people say that is because they confuse trials for demonic bondage. You're not under demonic bondage just because your car won't start. You're not under demonic bondage just because you're struggling financially. You're not under demonic bondage just because you have issues in your relationship. In fact, many of those things often result because of the choices that we make. And so we have to recognize that as believers, we're going to face persecution. We're going to face trials. We're going to face tragedy. We're going to face challenges. Not everything is going to go the way that we want it. This doesn't mean that we're cursed. This doesn't mean that we're under the power of the enemy. Know, my friend, even in these things, I have victory. Even when I'm struggling, I have victory. Even when the circumstances aren't what I want them to be, I have victory. And in this circumstance of temptation, the Lord has made a way out. He will rescue us from the evil one who tempts us. Galatians 2.20 says, I am crucified with Christ. Nevertheless, I live, yet not I, but Christ liveth in me. And the life which I now live in the flesh, I live by the faith of the Son of God. By his faith, I live in this flesh, who loved me and gave himself for me. Galatians 5.16 says this. So I say, let the Holy Spirit guide your lives. Then you won't be doing what your sinful nature craves. Verse 17 in the sinful nature wants to do evil, which is just the opposite of what the Spirit wants. Now this is where most Christians, including myself, need continual deliverance. Deliverance from the flesh, that's a process. We call that process sanctification. Now I've already been delivered from the flesh in the sense that I've now been given the power to overcome it because of the grace of God, the grace of God being his empowering presence within me. But even though I now have the choice to say, no to sin, sometimes I don't always exercise my will in that way. And therein we see this constant cry unto God, Lord, help me overcome sin. Lord, help me get over this. See here's the thing, exorcism, that's quick. Ah, but deliverance from the flesh, that's the journey of sanctification. And so do Christians need deliverance? Absolutely. We need deliverance from old mindsets. We need deliverance from deception. And we need deliverance from the sin nature. But in order to be delivered, we have to walk this out. We have to continually obey God. What does the scripture talk about? The scripture tells us plainly, submit to God, resist the devil and he will flee. Well, does it say the devil will fight? No, it says he'll flee. So you need to be delivered from the flesh, those cravings, the sin nature. Notice there that the scripture does not say that if you resist the devil, he'll come at you harder. No, what does it say? Resist the devil and he will what? Well, that's the Bible. That's scripture. Resist the devil and he will flee. Think about this. The enemy so fears the believer who knows who they are that the moment they submit themselves to God and resist him, he's out of there. He doesn't fight. He doesn't linger. He doesn't try to stick around. When you live a life submitted to God, he doesn't even bother. He says, I'm out of here.  That's how weak he is compared to a believer who is submitted to the authority of God. What does it mean to submit to God? To the basics. Live the Christian life. Live holy. Read your word. Be in prayer. Be a solid Christian and he cannot defeat you. Now I want to pray with you. I want to pray that God would help you to walk in the deliverance that he's given to you. Father, I pray in the name of Jesus that you would cause that one watching now to be free in mind. Help them to realize the truth that the truth might set them free. Holy Spirit, I pray that when they start to think according to the flesh, according to the lies of the enemy, that you would call them back to truthful thinking. In the mighty name of Jesus, we pray. I want you to say it because you believe it. Say amen. And I want to encourage you if you appreciate what's happening in this ministry, you appreciate the teachings that you're receiving or the sermons that you're receiving, or maybe you watched the events live and you can feel the beautiful presence of the Holy Spirit. And you're being blessed by this ministry. I want to ask you to do your part to help us continue with our mission, to spread the gospel of Jesus Christ all around the world in the power of the Holy Spirit through events and mediates. Because of your support that we're able to continue to bless people all around the world. This is the Holy Spirit's work. Let's rally together for one cause, which is the gospel of Jesus Christ. If you believe in what we're doing, then go to davidhernanisministries.com slash donate to give a single gift. Go to davidhernanisministries.com slash partner to become a monthly ministry supporter. There's no gift so small that it doesn't count. No gift so large that we wouldn't know what to do with that we have a massive vision. We need the resources to continue to expand. Go and do that today. Do your part. That is it for the message. Until next time, remember nothing is impossible with God.


At first I was confused why I came with two charging cables and then I remembered that's the number of feet people have. Two is the number of feet that a human has. You sure about that? How sure? Are you sure about that? Hi Leo.


Hello and welcome to This Week in Longmont for September 11, 2020. I'm your host, Sergio Angelis, with Longmont Public Media. Hear the voices of change. Join the Longmont Museum and the Longmont Multicultural Action Committee for a panel discussion on the history of race and social justice in Longmont. Moderated by KGNU, the panel of local civic leaders and activists will share their perspectives on Longmont's history and race relations and ongoing efforts to create a more just, equitable, and inclusive community for the many diverse people who call Longmont home. You can watch at 7.30 p.m. on Thursday, September 17, on the Longmont Museum's Facebook page on LongmontPublicMedia.org or on local Comcast Channel 8 or 880. Longmont Community Memorial Project. We recognize that the pandemic has affected people's ability to memorize lost loved ones. Senior Services is organizing a community altar for the annual Dia de los Muertos event this fall at the Longmont Museum. To include a remembrance on the Longmont Community altar, please fill out a submission form and submit your photograph, poetry, art, or other writings for inclusion by Wednesday, September 23. Submissions will not be returned, so please submit only copies. To receive a submission form or ask questions, please email brandy.queen at longmontcolorado.gov or call<PHONE_NUMBER>. Learn how to navigate election media. Independent journalist and CU Data Journalism Instructor Sandra Fish will help you cut through the political spin during the election season in Being an Informed Voter in 2020. An online program offered by the Longmont Public Library from 7 to 8.30 p.m. on Thursday, September 24. The program is free, but registration is required. Once registered, attendees will be sent information to join the program. Learn more in register at bit.ly forward slash lib programs hashtag voter. Receive an eco-home improvement. The City of Longmont's new sustainable opportunities, lifestyle and leadership program, or SOL for short, is accepting applications from Longmont households to receive free home eco upgrades and sustainable lifestyle tips and resources. Trained local volunteers are heading this effort. Home visits are starting in the Lou Miller and Kitely neighborhoods. You can complete an application to receive your upgrade or to be added to the neighborhood wait list. Boulder County Public Health guidelines will be followed for household visits. To learn more, please visit bit.ly forward slash longmont soll or email soll at longmont colorado.gov or call<PHONE_NUMBER>. Take a free ride around town. Sit back, relax and let someone else do the driving. Ride the bus to help reduce pollution and improve air quality. Extra cleaning, masks and social distancing are helping keep buses a safe way to get around town. Hazardous waste drop-off cancelled. The 2020 chemical drop-off day scheduled for Saturday, September 12th has been cancelled. Residents can take items at no charge to the Boulder County Hazardous Materials Management Facility located at 1901 63rd Street in Boulder. You can schedule your appointment at bowco.org forward slash HMMF appointment. Businesses can also schedule appointments at bowco.org forward slash HMMF biz app. For more information for more options and information about disposing of various types of waste please visit longmont colorado.gov forward slash waste services or call<PHONE_NUMBER>. Annual citywide cleanup green up. Businesses, civic groups, schools, neighborhoods, families and individuals are invited to help spruce up Longmont. Volunteers can pick a park, greenway, street, alley or open space to clean up or an area of need can be assigned. The grand kickoff for the month-long campaign from 7 30 to 10 30 a.m on Saturday, September 19th at Sunset Campus located at 7 South Sunset Street. You can register at joinus.longmontcolorado.gov forward slash calendar. If you can't participate on kickoff day you can help clean up green up through October 10th. For more information you can visit bit.ly forward slash clean up green up call<PHONE_NUMBER> or email lore.blattner at longmontcolorado.gov. Sunset pool to remain open through September 20th by reservation only. Sunset pool has been extended has extended its outdoor swimming season through September 20th 2020. As with previous months this summer guests will be asked to make a reservation before their visit and to follow all of the current Colorado COVID visitors guidelines. So that's it for this week in Longmont for September 11 2020. I'm your host Sergio Angelis with Longmont Public Media. Thank you for watching and we'll catch you next week.


Hi I'm Kyle and this video is brought to you by the Old Road Zine. Today we are going to figure out how to get from here to here. The first step is to print out an isometric grid on some cardstock. There are plenty of places to download isometric templates so just just a quick Google search will really get you what you need. I like to print mine out with very light cyan blue lines because that makes it easier to remove in the digital process afterwards. But before we can contend with our grid paper we must first conquer the sketch page. This is the most intimidating part of the whole process is just looking at a blank sheet of paper and not really knowing what's going to go on it. So there's a couple of things that we can do to help us get through this process but oftentimes you'll sit down you'll want to draw something but you won't know what to draw and that is exactly where I found myself today so we'll see if I can dig my way out of it. Our first strategy against this foe is the humble sketchbook. Now if you are as intimidated by a blank paper that I am you can buy all the moleskin beautiful leather bound sketchbooks in the world and they'll just sit on your shelf and you'll never use them which is why I like to hand make my sketchbook. And as you go through you can kind of see just me playing around with all these different ideas and any words that pop into my head any images any concepts they all live here. I really owe the this breakthrough of using a handmade sketchbook to overcome that first step that fear of this pristine white paper to my good friend Sean who gave me this and it absolutely transformed my artistic practice so it came with a couple of advantages. First of all it has this wonderful illustration on the front of it and it's just kind of made out of chipboard and stapled together. There was this wonderful gift in here though if I don't know if you can see it but the first couple of pages it seems that Sean had used this first couple of pages and then just tore them out and gave this sketchbook to me when I think I bought a commission from him or something and then on the back it has this little post-it note that just says turn undead and I just left that there. I thought that's so beautiful and for the first time in my life I was able to just fill this sketchbook with ideas and drawings and words and studies. I didn't use all of it because I really just wanted to make one of my own but I got through most of it and I'm very proud of it. So the second sketchbook that I made I made this one right here. This is again one of Sean's images that I just kind of glued to the front here and yeah I used my own I used my own grid paper for this and again just it was so easy just to carry this around in my pocket and have it for whenever I needed to take notes. I've made a few more of these and I think this one was the first hand stitched one that I made and it's holding together pretty nicely. Yeah sketchbooks make them. Something else that I have been doing for things that don't fit in sketchbooks things that are on like loose leaf pieces of paper. I just put them in this old nut jar. Let's take a look see let's see what we have. This is the map of the spheres that I was working on. What are some other things in here? This is the sheet that I was using to test out different inks on for the secret map so this was accomplished just by diluting some highlighter ink. What else do we have? I'll probably get to it later. Let's see some notes. What is this? Luckily we have I have solved this problem for myself already. Take a look at this okay so this is our big regional map. When I'm thinking about what to work on next I don't have to come up with a brand new idea because I already have so many of these evocative ideas just right here right before me on this page. For now I think I want to zoom in on this Soul Cypress Valley and see if I can't pull some kind of like ghost forest idea out of that. I have folded this paper because I want I want to remind myself not to draw any important details too close to this fold right here because that's where we're going to lose important details between the pages. To start off it's always a good idea just to kind of rough in our grid just to remind us that we are going to be working isometrically. This doesn't need to be perfect. It doesn't need to be measured. This just needs to kind of keep us from accidentally slipping out of the perspective. We've solved a lot of our initial problem of staring at this blank page right. We've already ruined it so it's no longer blank but the idea is just they aren't coming out right now so how do we solve this problem? My my secret favorite tool is just making a list write down a couple of things that sound like they would fit well in this map. That will probably get me started. There's plenty of things to draw now we just need to figure out where to put it. The best thing to do at this point break down the composition into components and think about which ones are going to take up the most room which ones need to be considered first for the overall composition. I think this river right here is going to be where we start. So something like that if we have a river maybe we have a bridge maybe that bridge is broken and I'm not trying to make any of this pretty I'm just trying to balance out this composition and make things clear and evocative. So if we have a river going through here and a bridge crossing it right here that bridge must connect to a path so rivers are also at the bottoms of hills. As a result we know that we could probably put some kind of hill or something on the opposite side of this putting taller items over here will do well. So maybe we'll put even some of these big old cypress trees kind of leading into this path right here and then maybe some creepy doors. When in doubt creepy doors. I like the idea of there are these like creepy zombie hands that are kind of always grasping around. I can imagine if you were a DM you could make all sorts of creepy voices to whatever is inside of these. Oh stay hydrated folks probably we'll have these cypress trees kind of like whipping around in the wind a little bit add a little bit of movement into it. You have the freedom if not the mandate to draw poorly at this stage in the process. What we could do is have like a fallen tree that blocks the path so you're warned before you go into the forest uh that you aren't uh you you are not by any means to leave the marked path that is no longer an option to you and and then you have to kind of go one way. It's the same thing in both directions so I need to think of something else to put over here. I think we'll put some mushrooms over here. Now because we are isometric we want to put our shorter mushrooms down here in front. Something that draws you in. Something that really uh uh makes this place seem mysterious and purposeful but also vague and evocative as Dale Kingsmill would say. I think what we'll do with this doleman is have kind of like this black fog. We'll put our ferry station over here uh this this will be good we'll have some like torches or something around here to kind of let people know there's a ferry station but again you would have to leave the road to get to it so we need to put some kind of uh other other obstacle but these will of the wisps are going to be um kind of like coming in and out and kind of swerving. I want I think I want to put some kind of like lamp rays in in in the water what what does that mean what's he up to? I'm kind of thinking what I want to do is put like a sleeping beauty snow white kind of coffin right here like a glass coffin but I don't actually think that that goes well with every all the other seeming that we have going on here but I am going to write that down in my notebook for later a prayer labyrinth so I think I'm going to put in one of those and I think we're just ready to go for for the blue pencil on the actual grid paper I think this is a really excellent start we are going to start in much the same way we started our rough pencils I have my rough pencils up here off-screen for easy reference but our angles are going to be a little bit different things scale is going to be a little bit different now that we actually have a grid in front of us but I'm going to do all of this step basically with this this and this before I forget I am going to measure where the seam in the middle is going to go that seems like a reasonably wide river to me I want my bridge to kind of go up like this so I figured because I'm basically drawing everything three times in a row that I didn't really need to explain the blue penciling I do want to bring your attention to a few changes we made from the rough pencils to the blue pencil stage now that we have an actual grid in front of us that scale is going to become very specific I did swap the places of the barrows and kind of where this sacred beast is going to be hanging out I also decided to leave this harp out of the middle of these of this mushroom ring so let's start inking I ink all in micron 05 so I don't really switch between this all that much if I have to fill in I'll use this brush pen right here I talked a lot at the beginning about how important it is to just be messy and get stuff down this phase it's important to take care and move from top left to bottom right if you can I'm right-handed so I don't want to smear over anything if you don't really know where these lines are going if you just kind of make an indistinct kind of meandery dotty line and then fill it in with hatching it'll look like you knew what you were doing all along to really achieve that sense of overlapping and depth there's this technique called haloing which is where you just leave an empty trough of white paper in between things that are overlapping so generally whatever is in front is the thing that gets completely drawn and then whatever is behind is the thing that gets abbreviated I like to do contour at the same time that I'm doing cross hatching but it really shortens the amount of time that you have to spend at your drawing table it's very easy to get discouraged and stressed out and anxious when you are inking a page and there's no undo button but don't be intimidated just keep pushing through and if you are noticed that you keep overworking something because you're not happy with it step away from it a little bit and probably just solve it by blacking it out and really making sure that those values are clear we have implied that the lighting is kind of heading from the northwest and and so we have these deep shadows on the sides of these trees and this dolmen that are facing us so we just need to make sure that we keep that consistent as we are shading the tree trunks and well you know everything else in this image it is important not only to move from the top left to the bottom right as we go to prevent smudging but it's also important to keep in mind that we need to as we ink move from foreground to background so you might look at this and see that i will oftentimes incorporate the grid into this map even though it's not a tactical map i still like to put in the grid because it it brings out the mappiness of the map it lets people know kind of where the ground is i've said what i need to do and i could stop talking about this there's always this magical moment that happens during a piece it's coming together and you've crossed the halfway point and it's just you just get in the zone after that and um boy i just love that part i don't know i get the feeling that people never get to that part sometimes like ever that bombs me out my back was telling me that it was time to call it a night so i arise first thing to get back to it i decided to add thorns amongst uh the cypress trees to the exit here um because i felt like a fallen tree you could just say well i chop it up or i hop over it it wasn't enough of an obstacle and it wasn't exciting now i've made my first real smudge my first real accident of the of the drawing um so pretty good overall but uh this one is going to be a problem so because it's crossing over this kind of torch that was going to be at this ferry station probably what i will do is just see if i can blend it into the boat with some clever hatching one of the big reasons i left the ferryman in here um i often don't like to draw characters in here um but i think the ferryman he has sort of like an eternal supernatural quality to him and it also adds this idea of verbs um into the map but not verbs so much for the player but verbs for the gm i think that's one of the big differences between tabletop rpgs and video games you need verbs both for the person who's running the game and kind of generating the fictional scenarios and you need verbs for the players who are interacting with that so we we need to equip both sides of the table so to speak with things to do things to draw from activities to engage in so as i was drawing i wrote down this note in my notebook about snow white's coffin and uh it as i was drawing as i was thinking about things i kept thinking about like what how could we make this strange it kind of made me think about something else to put on my big old map here this is why it's important to have notebooks and sketches and and working rough drafts out and available i want to do this big earthworm earthworms are of the uh i think it's phylum or or subspecies of lumber kid i'm just going to put that on on my map and i think that might be one of the next maps that we do is just like this great big snoring earthworm a big part of my creative process is funnel aesthetics things that sound fun to say like soul cypress valley is something that is is fun saying soul cypress it's so juicy um in slumbering lumber kid is uh it's another one of those it has a a meter and a poetry to it um that i feel like it or it agitates creativity within me so i wanted to write that down so i think this is done i i i think i have what i want out of this map i'm just going to go through take one final pass see if there's any line weights that need to be beefed up or values that need to be adjusted here and there um but uh i think i'm uh maybe five ten minutes away from being finished with this wouldn't you know it in five minutes on the dot basically uh boy you know that's what happens when you draw for a few decades you sort of get a sense for these things or maybe i'm just calling it quits all right well that's about it for this map so if you found something i said useful or nifty leave a like if you have any questions for me i will answer them down in the comments and maybe one day we'll meet on the old roads